| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558 |
- @reference "./globals.css";
- .sb-grid {
- @apply flex h-full flex-col;
- }
- .sb-grid-fill-container:after {
- content: '';
- display: inline-block;
- width: 100%;
- }
- .rdg-cell {
- @apply flex;
- @apply text-grid;
- @apply border-secondary border-r border-b;
- @apply text-foreground;
- padding-inline: 0.5rem;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- line-height: inherit;
- }
- /* Apply parent bg colour while editing */
- .rdg-cell.rdg-editor-container > * {
- background-color: inherit;
- }
- .rdg-cell > div[draggable='true'] {
- @apply h-full;
- }
- .rdg-row .rdg-cell-frozen:nth-last-child(1 of .rdg-cell-frozen) {
- @apply border-secondary border-r;
- }
- .rdg-cell[aria-selected='true'] {
- box-shadow: inset 0 0 0 1px #24b47e;
- }
- .rdg:not(:focus-within):not(.rdg-context-menu-open) .rdg-cell[aria-selected='true'] {
- box-shadow: none;
- outline: none;
- }
- /* Cell with unsaved changes - warning (amber) background/text color */
- .rdg-cell.rdg-cell--dirty {
- background-color: hsl(var(--warning-300) / 0.75);
- color: hsl(var(--warning-default));
- }
- /* Row pending addition - green background, green text */
- .rdg-row.rdg-row--added {
- background-color: hsl(var(--brand-200) / 0.3);
- &:hover {
- background-color: hsl(var(--brand-200) / 0.5);
- }
- .rdg-cell {
- border-left-color: hsl(var(--brand-default));
- color: hsl(var(--brand-link));
- }
- /* First cell gets a stronger left border to indicate new row */
- .rdg-cell:first-child {
- box-shadow: inset 2px 0 0 0 hsl(var(--brand-default));
- }
- }
- /* Row pending deletion - red background with strikethrough effect, red text */
- .rdg-row.rdg-row--deleted {
- background-color: hsl(var(--destructive-300) / 0.3);
- &:hover {
- background-color: hsl(var(--destructive-300) / 0.5);
- }
- .rdg-cell {
- text-decoration: line-through;
- text-decoration-color: hsl(var(--destructive-default));
- border-left-color: hsl(var(--destructive-default));
- color: hsl(var(--destructive-default));
- }
- /* First cell gets a stronger left border to indicate deleted row */
- .rdg-cell:first-child {
- box-shadow: inset 2px 0 0 0 hsl(var(--destructive-default));
- }
- }
- .rdg {
- @apply box-border select-none overflow-x-auto overflow-y-scroll bg-dash-canvas;
- @apply border-t border-r-0 border-l-0;
- contain: strict;
- font-size: 14px;
- }
- .rdg *,
- .rdg ::after,
- .rdg ::before {
- box-sizing: inherit;
- }
- @supports not (contain: strict) {
- .rdg {
- position: relative;
- z-index: 0;
- }
- }
- .rdg-focus-sink {
- position: sticky;
- top: 0;
- left: 0;
- height: 0;
- width: 0;
- outline: 0;
- }
- /*
- Row header
- */
- .rdg-header-row {
- @apply bg-surface-200 select-none border-none;
- }
- .rdg-header-row {
- height: var(--header-row-height);
- line-height: var(--header-row-height);
- top: 0;
- }
- .rdg-header-row .rdg-cell {
- @apply bg-surface-200 border-default border-b;
- }
- .rdg-header-row .rdg-cell-frozen:nth-last-child(1 of .rdg-cell-frozen) {
- @apply border-default border-r border-b;
- }
- [data-theme='dark'] .rdg-row .rdg-cell-frozen:nth-last-child(1 of .rdg-cell-frozen),
- [data-theme='dark'] .rdg-header-row .rdg-cell-frozen:nth-last-child(1 of .rdg-cell-frozen) {
- @apply border-r-strong;
- }
- .rdg-header-row .rdg-cell p {
- @apply text-typography-body-light [[data-theme*=dark]_&]:text-typography-body-dark;
- }
- .rdg-header-row .rdg-checkbox {
- @apply bg-surface-200 border-default rounded-xs border;
- }
- .rdg-header-row .rdg-checkbox-input:checked + .rdg-checkbox {
- @apply border-default border-4 bg-brand-900;
- }
- .rdg-header-row .rdg-checkbox-input:focus + .rdg-checkbox {
- box-shadow: none;
- }
- .rdg-cell .Select {
- max-height: 30px;
- font-size: 12px;
- font-weight: 400;
- }
- /*
- Row
- */
- .rdg-row {
- @apply bg-dash-sidebar transition-colors;
- @apply hover:bg-surface-200;
- }
- /* edit button */
- .rdg-row__select-column__edit-action {
- @apply opacity-0;
- }
- .rdg-row:hover .rdg-row__select-column__edit-action {
- @apply opacity-100;
- }
- .rdg-row__select-column__edit-action:hover {
- opacity: 1 !important;
- }
- /* select row */
- .rdg-row[aria-selected='true'] {
- @apply bg-surface-200;
- }
- .tab-cursor {
- cursor: pointer !important;
- }
- /*
- Checkbox
- */
- .sb-grid {
- /* reset styles */
- [type='checkbox'] {
- webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- padding: 0;
- -webkit-print-color-adjust: exact;
- print-color-adjust: exact;
- display: inline-block;
- vertical-align: middle;
- background-origin: border-box;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- flex-shrink: 0;
- height: 1rem;
- width: 1rem;
- color: #2563eb;
- background-color: #fff;
- border-color: #6b7280;
- border-width: 1px;
- }
- [type='checkbox']:checked {
- @apply bg-foreground;
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='hsl(0, 0%, 100%)'%3E%3Cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3E%3C/svg%3E") !important;
- }
- [type='checkbox']:indeterminate {
- @apply bg-foreground;
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='hsl(0, 0%, 100%)'%3E%3Crect x='3' y='7' width='10' height='2'/%3E%3C/svg%3E") !important;
- [data-theme='dark'] & {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='hsl(0, 0%, 0%)'%3E%3Crect x='3' y='7' width='10' height='2'/%3E%3C/svg%3E") !important;
- }
- }
- [type='checkbox'] {
- @apply cursor-pointer rounded-sm border border-solid;
- @apply text-foreground border-strong transition-all;
- @apply hover:border-foreground focus:ring-0 focus:outline-hidden;
- @apply bg-control;
- margin-top: 2px;
- }
- }
- /* Dark mode */
- [data-theme='dark'] .sb-grid [type='checkbox']:checked {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='hsl(0, 0%, 0%)'%3E%3Cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3E%3C/svg%3E") !important;
- }
- .rdg__segmented-control {
- @apply border-default relative mx-2 h-8 rounded-md border;
- }
- .rdg__segmented-control__button {
- @apply absolute top-0 inline-flex h-full items-center justify-center;
- @apply text-xs font-medium;
- @apply text-border-muted;
- @apply active:bg-alternative hover:text-white focus:z-10 focus:outline-hidden;
- @apply transition duration-150 ease-in-out;
- @apply cursor-pointer;
- z-index: 1;
- }
- .rdg__segmented-control__button--option {
- @apply text-background;
- }
- .rdg__segmented-control__button--right {
- @apply right-0;
- }
- .rdg__segmented-control__button--left {
- @apply left-0;
- }
- .rdg__segmented-control__label {
- @apply bg-overlay-hover border-control z-0 inline-block h-full transform rounded-sm border shadow-sm transition duration-200 ease-in-out;
- }
- .rdg__segmented-control__label--left {
- @apply translate-x-0;
- }
- .rdg__segmented-control__label--right {
- @apply translate-x-12;
- }
- .rdg__segmented-control__options-label {
- @apply uppercase;
- color: inherit;
- }
- /*
- DropdownControl
- */
- .dropdown-control {
- @apply overflow-auto;
- }
- .dropdown-control .sbui-typography {
- @apply block px-2 py-4;
- }
- /*
- NullValue
- */
- .null-value {
- @apply block;
- }
- /*
- CheckboxEditor
- */
- .sb-grid-checkbox-editor {
- @apply flex h-full w-full;
- }
- .sb-grid-checkbox-editor__input {
- @apply h-4 w-4;
- outline: 4px auto -webkit-focus-ring-color;
- }
- /*
- JsonEditor
- */
- .sb-grid-json-editor__trigger {
- @apply text-grid overflow-hidden text-ellipsis px-2;
- }
- /*
- NumberEditor
- */
- .sb-grid-number-editor {
- @apply h-full w-full px-2;
- }
- /*
- SelectEditor
- */
- .sb-grid-select-editor {
- button {
- @apply border-none rounded-none shadow-none;
- box-shadow: none !important;
- }
- }
- /*
- TextEditor
- */
- .sb-grid-text-editor__trigger {
- @apply text-grid overflow-hidden text-ellipsis px-2;
- }
- /*
- TimeEditor
- */
- .sb-grid-time-editor {
- @apply h-full w-full px-2;
- }
- /*
- Footer
- */
- .sb-grid-footer {
- @apply bg-surface-100 flex h-10 items-center justify-between px-2;
- }
- .sb-grid-footer__inner {
- @apply flex items-center;
- }
- /*
- ForeignKeyFormatter
- */
- .sb-grid-foreign-key-formatter {
- @apply flex w-full items-center justify-between;
- }
- .sb-grid-foreign-key-formatter__text {
- @apply m-0 grow overflow-hidden text-ellipsis;
- }
- /*
- ColumnHeader
- */
- .sb-grid-column-header {
- @apply flex h-full w-full items-center justify-between;
- }
- .sb-grid-column-header--cursor {
- @apply cursor-default;
- }
- .sb-grid-column-header__inner {
- @apply flex items-center gap-2 overflow-hidden text-ellipsis;
- }
- .sb-grid-column-header__inner__name {
- @apply text-foreground overflow-hidden text-ellipsis text-xs select-text;
- }
- .sb-grid-column-header__inner__format {
- @apply text-xs;
- @apply overflow-hidden text-ellipsis font-normal;
- @apply text-foreground-light;
- }
- .sb-grid-column-header__inner__primary-key {
- @apply flex rotate-45 transform items-center;
- }
- .sb-grid-column-header__inner svg {
- @apply border-brand text-brand;
- }
- /*
- Grid
- */
- .sb-grid-grid--loading {
- @apply flex justify-center bg-transparent;
- }
- .sb-grid-grid--loading__inner {
- @apply flex items-center;
- }
- .sb-grid-grid--loading__inner__text {
- @apply m-8;
- }
- /*
- SelectColumn
- */
- .sb-grid-select-cell__formatter {
- @apply flex h-full w-full items-center justify-between;
- }
- .sb-grid-select-cell__header {
- @apply flex h-full w-full items-center justify-between;
- }
- .sb-grid-select-cell__header__input {
- /* @apply focus:ring-brand-300; */
- @apply border-background-surface-100;
- }
- /*
- Header
- */
- .sb-grid-header {
- @apply bg-surface-100 flex h-10 justify-between px-2;
- }
- .sb-grid-header__inner {
- @apply flex items-center space-x-2;
- }
- .sb-grid-header__inner__divider {
- @apply py-2;
- }
- .row_header__selected-rows {
- @apply ml-2 mr-2;
- }
- /*
- StatusLabel
- */
- .sb-grid-status-label {
- @apply text-grid text-white;
- }
- .sb-grid-status-label__no-msg {
- @apply flex h-5 w-5;
- }
- .sb-grid-status-label__no-msg > div {
- @apply m-auto h-2 w-2 rounded-full bg-brand-900;
- }
- /*
- Empty value
- */
- .sb-grid-empty-value {
- @apply block;
- }
- /*
- header/sort/SortDropdown
- */
- .sb-grid-sort-popover {
- @apply w-96;
- }
- .sb-grid-dropdown__empty {
- @apply py-2;
- }
- .sb-grid-dropdown__empty__text {
- @apply block;
- }
- .sb-grid-dropdown__item-trigger {
- @apply my-1;
- }
- /*
- header/sort/SortRow
- */
- .sb-grid-sort-row {
- @apply flex justify-between space-x-3;
- }
- .sb-grid-sort-row__item {
- @apply flex items-center space-x-3;
- }
- .sb-grid-sort-row__item__remove {
- @apply bg-transparent p-0 hover:bg-transparent;
- }
- .sb-grid-sort-row__item__label {
- @apply flex items-center space-x-2;
- }
- .sb-grid-sort-row__item_toogle {
- @apply flex w-28 items-center gap-0 space-x-3;
- }
- .sb-grid-sort-row__item__move {
- @apply flex cursor-move;
- }
|