@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-600)); } /* 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: var(--primary-bright); color: var(--primary); } /* First cell gets a stronger left border to indicate new row */ .rdg-cell:first-child { box-shadow: inset 2px 0 0 0 var(--primary-bright); } } /* 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 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-dash-canvas 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-200 border-default rounded-xs border; } .rdg-header-row .rdg-checkbox-input:checked + .rdg-checkbox { @apply border-default border-4 bg-green-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-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-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; } /* 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-primary-bright text-primary; } /* 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 border-background-surface-100; }