@crispy-seed/data-table 0.12.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data-table-recipe.css +6 -0
- package/dist/data-table-recipe.layered.css +8 -0
- package/dist/index.cjs +97 -30
- package/dist/index.d.ts +4 -2
- package/dist/index.js +97 -30
- package/dist/styles.css +8 -0
- package/package.json +1 -1
|
@@ -538,6 +538,9 @@ tr:hover .seed-data-table__entityActions {
|
|
|
538
538
|
.seed-data-table__footerCell:last-child {
|
|
539
539
|
border-inline-end: none;
|
|
540
540
|
}
|
|
541
|
+
.seed-data-table__footerCell[data-sticky] {
|
|
542
|
+
z-index: 3;
|
|
543
|
+
}
|
|
541
544
|
.seed-data-table__footerCell .seed-data-table-column-calc-trigger {
|
|
542
545
|
display: flex;
|
|
543
546
|
align-items: center;
|
|
@@ -678,6 +681,9 @@ tr:hover .seed-data-table__entityActions {
|
|
|
678
681
|
font-weight: var(--seed-font-weight-medium);
|
|
679
682
|
white-space: nowrap;
|
|
680
683
|
}
|
|
684
|
+
.seed-data-table__bulkBar[data-above-footer] {
|
|
685
|
+
bottom: calc(var(--seed-dimension-x4) + var(--seed-dimension-x9));
|
|
686
|
+
}
|
|
681
687
|
.seed-data-table__bulkBarCount {
|
|
682
688
|
flex-shrink: 0;
|
|
683
689
|
color: var(--seed-color-fg-neutral);
|
|
@@ -603,6 +603,10 @@
|
|
|
603
603
|
border-inline-end: none;
|
|
604
604
|
}
|
|
605
605
|
|
|
606
|
+
.seed-data-table__footerCell[data-sticky] {
|
|
607
|
+
z-index: 3;
|
|
608
|
+
}
|
|
609
|
+
|
|
606
610
|
.seed-data-table__footerCell .seed-data-table-column-calc-trigger {
|
|
607
611
|
align-items: center;
|
|
608
612
|
gap: var(--seed-dimension-x1_5);
|
|
@@ -760,6 +764,10 @@
|
|
|
760
764
|
transform: translateX(-50%);
|
|
761
765
|
}
|
|
762
766
|
|
|
767
|
+
.seed-data-table__bulkBar[data-above-footer] {
|
|
768
|
+
bottom: calc(var(--seed-dimension-x4) + var(--seed-dimension-x9));
|
|
769
|
+
}
|
|
770
|
+
|
|
763
771
|
.seed-data-table__bulkBarCount {
|
|
764
772
|
color: var(--seed-color-fg-neutral);
|
|
765
773
|
font-variant-numeric: tabular-nums;
|
package/dist/index.cjs
CHANGED
|
@@ -1187,7 +1187,7 @@ function isStringArray(value) {
|
|
|
1187
1187
|
// per-row measurement, no ResizeObserver per row.
|
|
1188
1188
|
/** The recipe's own row height (`--seed-dimension-x9` = 36px, `row.height`). */ const DEFAULT_VIRTUAL_ROW_HEIGHT = 36;
|
|
1189
1189
|
/** Rows rendered beyond each edge of the viewport, so a fast scroll never outruns the
|
|
1190
|
-
* render and flashes an empty gap. */ const DEFAULT_VIRTUAL_OVERSCAN =
|
|
1190
|
+
* render and flashes an empty gap. */ const DEFAULT_VIRTUAL_OVERSCAN = 16;
|
|
1191
1191
|
/** Distance from the bottom (px) at which `onLoadMore` fires in virtualized mode --
|
|
1192
1192
|
* the same 160px look-ahead the IntersectionObserver's rootMargin gives a non-
|
|
1193
1193
|
* virtualized table. */ const LOAD_MORE_THRESHOLD = 160;
|
|
@@ -1340,13 +1340,15 @@ const EMPTY_RECORD = {};
|
|
|
1340
1340
|
})), [
|
|
1341
1341
|
setColumnWidths
|
|
1342
1342
|
]);
|
|
1343
|
-
const moveColumn = React.useCallback((key, direction)=>setRawOrder((current)=>moveColumnKey(current ?? columnKeys, key, direction)), [
|
|
1343
|
+
const moveColumn = React.useCallback((key, direction)=>setRawOrder((current)=>moveColumnKey(reconcileColumnOrder(current ?? columnKeys, columnKeys, actionsColumnKey), key, direction)), [
|
|
1344
1344
|
setRawOrder,
|
|
1345
|
-
columnKeys
|
|
1345
|
+
columnKeys,
|
|
1346
|
+
actionsColumnKey
|
|
1346
1347
|
]);
|
|
1347
|
-
const reorderColumn = React.useCallback((dragKey, dropKey)=>setRawOrder((current)=>reorderColumnKey(current ?? columnKeys, dragKey, dropKey)), [
|
|
1348
|
+
const reorderColumn = React.useCallback((dragKey, dropKey)=>setRawOrder((current)=>reorderColumnKey(reconcileColumnOrder(current ?? columnKeys, columnKeys, actionsColumnKey), dragKey, dropKey)), [
|
|
1348
1349
|
setRawOrder,
|
|
1349
|
-
columnKeys
|
|
1350
|
+
columnKeys,
|
|
1351
|
+
actionsColumnKey
|
|
1350
1352
|
]);
|
|
1351
1353
|
// -- drag-to-reorder ---------------------------------------------------------------
|
|
1352
1354
|
// Live state only (which column is currently being dragged) -- the styled layer's
|
|
@@ -1514,11 +1516,11 @@ function sameCell(a, id, key) {
|
|
|
1514
1516
|
key
|
|
1515
1517
|
});
|
|
1516
1518
|
result.then(()=>{
|
|
1517
|
-
setPendingCell(null);
|
|
1518
|
-
setEditingCell(null);
|
|
1519
|
+
setPendingCell((c)=>sameCell(c, id, key) ? null : c);
|
|
1520
|
+
setEditingCell((c)=>sameCell(c, id, key) ? null : c);
|
|
1519
1521
|
}, (err)=>{
|
|
1520
|
-
setPendingCell(null);
|
|
1521
|
-
setEditingCell(null);
|
|
1522
|
+
setPendingCell((c)=>sameCell(c, id, key) ? null : c);
|
|
1523
|
+
setEditingCell((c)=>sameCell(c, id, key) ? null : c);
|
|
1522
1524
|
setEditError({
|
|
1523
1525
|
id,
|
|
1524
1526
|
key,
|
|
@@ -2444,9 +2446,20 @@ DataTableCell$1.displayName = "DataTableCell";
|
|
|
2444
2446
|
|
|
2445
2447
|
const EMPTY_VIEWS = [];
|
|
2446
2448
|
function readStoredViews(storageKey) {
|
|
2447
|
-
if (!storageKey || typeof window === "undefined") return
|
|
2449
|
+
if (!storageKey || typeof window === "undefined") return null;
|
|
2448
2450
|
try {
|
|
2449
|
-
|
|
2451
|
+
const raw = window.localStorage.getItem(storageKey);
|
|
2452
|
+
if (raw === null) return null;
|
|
2453
|
+
// Only a well-formed array counts as "stored" -- `[]` is a real answer (the user
|
|
2454
|
+
// deleted every view), whereas garbage/non-array JSON is treated as absent so the
|
|
2455
|
+
// defaults still seed.
|
|
2456
|
+
let parsed;
|
|
2457
|
+
try {
|
|
2458
|
+
parsed = JSON.parse(raw);
|
|
2459
|
+
} catch {
|
|
2460
|
+
return null;
|
|
2461
|
+
}
|
|
2462
|
+
return Array.isArray(parsed) ? deserializeDataTableViews(raw) : null;
|
|
2450
2463
|
} catch {
|
|
2451
2464
|
// A private-browsing tab / blocked storage throws on access, not just on quota --
|
|
2452
2465
|
// this hook degrades to in-memory-only rather than crash the table over it.
|
|
@@ -2484,7 +2497,7 @@ function readStoredViews(storageKey) {
|
|
|
2484
2497
|
// Nothing in storage yet (first run, or no `storageKey` at all) -- seed from
|
|
2485
2498
|
// `defaultViews` instead of an empty list, matching every other hook's own
|
|
2486
2499
|
// `defaultProp` semantics.
|
|
2487
|
-
initialViewsRef.current = stored
|
|
2500
|
+
initialViewsRef.current = stored !== null ? stored : defaultViews;
|
|
2488
2501
|
}
|
|
2489
2502
|
}
|
|
2490
2503
|
const [views = EMPTY_VIEWS, setViews] = useControllableState$1({
|
|
@@ -4126,7 +4139,7 @@ const TextFieldTextarea = /*#__PURE__*/ React.forwardRef(({ className, autoresiz
|
|
|
4126
4139
|
});
|
|
4127
4140
|
TextFieldTextarea.displayName = "TextFieldTextarea";
|
|
4128
4141
|
|
|
4129
|
-
__insertCSS(".seed-data-table__root{box-sizing:border-box;position:relative;display:flex;flex-direction:column;width:100%;border-width:1px;border-style:solid;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}.seed-data-table__table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.seed-data-table__headerCell{box-sizing:border-box;position:sticky;top:0;z-index:2;vertical-align:middle;text-align:start;padding:0;height:var(--seed-dimension-x10);background-color:var(--seed-color-bg-layer-default);border-top:1px solid var(--seed-color-stroke-neutral-muted);border-bottom:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-inline-start:none;color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-medium);letter-spacing:-.14px}.seed-data-table__headerCell:last-child{border-inline-end:none}.seed-data-table__headerCell[data-sortable]{cursor:pointer;user-select:none}.seed-data-table__headerCell [data-chevron]{opacity:0;transition:opacity .12s}.seed-data-table__headerCell[data-sortable]:hover [data-chevron]{opacity:.6}.seed-data-table__headerCell[data-sorted] [data-chevron]{opacity:1;color:var(--seed-color-fg-neutral)}.seed-data-table__headerCell:hover [data-column-menu]{opacity:1}.seed-data-table__headerCell [data-column-menu]:focus-visible,.seed-data-table__headerCell [data-column-menu][data-open]{opacity:1}.seed-data-table__headerCell[data-dragging]{opacity:.5}.seed-data-table__headerCell[data-sticky]{position:sticky;z-index:3;background-color:var(--seed-color-bg-layer-default)}.seed-data-table__headerCell{outline:var(--seed-dimension-x0_5) solid transparent;outline-offset:calc(var(--seed-dimension-x0_5) * -1)}.seed-data-table__headerCell:is(:focus-visible,[data-focus-visible]){outline:var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);outline-offset:calc(var(--seed-dimension-x0_5) * -1)}.seed-data-table__headerCell .seed-data-table-resize-handle{position:absolute;top:0;inset-inline-end:calc(7px / -2);width:7px;height:100%;z-index:4;display:flex;align-items:center;justify-content:center;cursor:col-resize;touch-action:none}.seed-data-table__headerCell .seed-data-table-resize-handle-inner{width:3px;height:100%;border-radius:3px;background-color:#0298d9;opacity:0;transition:opacity .1s}.seed-data-table__headerCell .seed-data-table-resize-handle:hover .seed-data-table-resize-handle-inner,.seed-data-table__headerCell .seed-data-table-resize-handle[data-resizing] .seed-data-table-resize-handle-inner{opacity:1}.seed-data-table__headerCellInner{box-sizing:border-box;display:flex;align-items:center;width:100%;height:100%;min-width:0;gap:var(--seed-dimension-x1_5);padding-inline:var(--seed-dimension-x3)}.seed-data-table__headerCellLabel{min-width:0;flex:1 1 0%;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__headerCellIcon{flex-shrink:0;margin-inline-start:auto;display:inline-flex;align-items:center;justify-content:center;width:var(--seed-dimension-x4);height:var(--seed-dimension-x4);color:var(--seed-color-fg-neutral-subtle);border:none;background:0 0;padding:0;font:inherit;cursor:pointer}.seed-data-table__headerCellIcon[data-active]{color:var(--seed-color-fg-neutral)}.seed-data-table__headerCellIcon[data-column-menu]{opacity:0;transition:opacity .12s}.seed-data-table__row{position:relative;background-color:var(--seed-color-bg-layer-default);--seed-data-table-row-bg:var(--seed-color-bg-layer-default)}.seed-data-table__row[data-clickable]{cursor:pointer}.seed-data-table__row:is([aria-selected=true],[data-selected]){background-color:color-mix(in srgb,#0298d9 10%,var(--seed-color-bg-layer-default));--seed-data-table-row-bg:color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default))}.seed-data-table__row:is([aria-selected=true],[data-selected]):is(:hover,[data-hover]){background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 3%,color-mix(in srgb,#0298d9 10%,var(--seed-color-bg-layer-default)));--seed-data-table-row-bg:color-mix(in srgb, var(--seed-color-fg-neutral) 3%, color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default)))}.seed-data-table__cell{box-sizing:border-box;position:relative;vertical-align:middle;text-align:start;height:var(--seed-dimension-x9);border-bottom:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-top:none;border-inline-start:none;padding-block:0;padding-inline:var(--seed-dimension-x3);color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-regular);letter-spacing:-.14px;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__cell:not([data-editable]){user-select:none}.seed-data-table__cell:last-child{border-inline-end:none}tbody tr:last-child .seed-data-table__cell{border-bottom:none}.seed-data-table__cell[data-numeric]{text-align:end;font-variant-numeric:tabular-nums}.seed-data-table__cell[data-sticky]{position:sticky;z-index:1;background-color:var(--seed-data-table-row-bg)}.seed-data-table__cell[data-overlay-open]{overflow:visible;z-index:20}.seed-data-table__cell[data-editable]{cursor:default}.seed-data-table__cell .seed-data-table-edit-picker{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);min-width:0}.seed-data-table__cell .seed-data-table-edit-pending{flex-shrink:0;color:var(--seed-color-fg-neutral-subtle);animation:rotate .6s linear infinite}.seed-data-table__cell .seed-data-table-edit-error{position:absolute;top:100%;inset-inline-start:var(--seed-dimension-x3);inset-inline-end:var(--seed-dimension-x3);z-index:2;padding-top:2px;font-size:12px;line-height:1.3;color:var(--seed-color-fg-critical);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__entity{display:flex;align-items:center;min-width:0;gap:var(--seed-dimension-x1_5)}.seed-data-table__entityName{min-width:0;font-weight:var(--seed-font-weight-medium);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__entityName[data-clickable]{cursor:pointer;border:none;background:0 0;padding:0;margin:0;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;text-align:start}.seed-data-table__entityName[data-clickable]:is(:hover,[data-hover]){text-decoration:underline}.seed-data-table__tagList{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);overflow:hidden;min-width:0}.seed-data-table__entityActions{display:flex;align-items:center;gap:6px;margin-inline-start:auto;flex-shrink:0;opacity:0;transition:opacity .15s}tr:hover .seed-data-table__entityActions{opacity:1}.seed-data-table__entityActions:focus-within{opacity:1}.seed-data-table__entityAction{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin:0;padding:2px;border:none;border-radius:6px;background:0 0;font-family:inherit;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent);cursor:pointer;flex-shrink:0;transition:background-color .2s,color .2s,box-shadow .2s}.seed-data-table__entityAction:hover{background:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__link{color:var(--seed-color-fg-neutral);text-decoration:none;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__link:is(:hover,[data-hover]){text-decoration:underline}.seed-data-table__chip{box-sizing:border-box;display:inline-flex;align-items:center;flex-shrink:0;max-width:100%;height:22px;padding:0 4px;border-radius:7px;font-size:13px;font-weight:var(--seed-font-weight-medium);line-height:15px;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__chipList{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:3px;overflow:hidden;min-width:0;width:100%}.seed-data-table__chipOverflow{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;height:20px;padding:0 4px;border-radius:6px;background-color:#f6f7f7;color:#000;font-size:10px;font-weight:var(--seed-font-weight-regular);line-height:15px;white-space:nowrap}.seed-data-table__chipListEditor{display:flex;align-items:center;flex-wrap:wrap;gap:3px;min-width:0;width:100%}.seed-data-table__chipRemove{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:12px;height:12px;margin:0;margin-inline-start:2px;padding:0;border:none;border-radius:999px;background:0 0;color:inherit;opacity:.6;cursor:pointer;transition:opacity .12s,background-color .12s}.seed-data-table__chipRemove:hover{opacity:1;background-color:rgba(0,0,0,.08)}.seed-data-table__chipInput{flex:1 1 auto;min-width:40px;height:22px;margin:0;padding:0;border:none;outline:0;background:0 0;font-family:inherit;font-size:var(--seed-font-size-t4);color:var(--seed-color-fg-neutral);letter-spacing:-.14px}.seed-data-table__expandOverlay{box-sizing:border-box;position:absolute;top:-1px;inset-inline-start:-1px;inset-inline-end:-1px;z-index:10;min-height:calc(100% + 2px);display:flex;align-items:flex-start;padding-inline:var(--seed-dimension-x3);padding-block:var(--seed-dimension-x3);background-color:var(--seed-color-bg-layer-floating);border-radius:4px;box-shadow:none;border:1px solid #266df0;color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);letter-spacing:-.14px;cursor:default}.seed-data-table__expandOverlayText{width:100%;min-width:0;white-space:normal;word-break:break-word}.seed-data-table__cellSuffixRow{display:flex;align-items:center;gap:4px;min-width:0;width:100%}.seed-data-table__cellSuffixText{flex:1 1 0%;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__cellSuffixIcon{flex-shrink:0;display:inline-flex;align-items:center;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent)}.seed-data-table__toolbar{box-sizing:border-box;display:flex;align-items:center;width:100%;flex-shrink:0;min-height:49px;gap:var(--seed-dimension-x2);padding-inline:var(--seed-dimension-x3);border-top:1px solid var(--seed-color-stroke-neutral-muted)}.seed-data-table__search{position:relative;display:inline-flex;align-items:center;flex:1 1 0%;max-width:280px}.seed-data-table__search svg{position:absolute;inset-inline-start:var(--seed-dimension-x2);width:var(--seed-dimension-x4);height:var(--seed-dimension-x4);color:var(--seed-color-fg-neutral-muted);pointer-events:none}.seed-data-table__search input{width:100%;height:var(--seed-dimension-x8);padding-inline-start:var(--seed-dimension-x7);padding-inline-end:var(--seed-dimension-x2);border:none;border-radius:var(--seed-radius-r2);background-color:var(--seed-color-bg-layer-default);box-shadow:inset 0 0 0 1px var(--seed-color-stroke-neutral-weak);font-family:inherit;font-size:var(--seed-font-size-t4);color:var(--seed-color-fg-neutral);outline:0;transition:box-shadow .1s var(--seed-timing-function-easing)}.seed-data-table__search input::placeholder{color:var(--seed-color-fg-neutral-subtle)}.seed-data-table__search input:focus{box-shadow:inset 0 0 0 2px var(--seed-color-stroke-neutral-contrast)}.seed-data-table__count{flex-shrink:0;color:var(--seed-color-fg-neutral-subtle);font-size:var(--seed-font-size-t3);font-variant-numeric:tabular-nums}.seed-data-table__toolbarEnd{flex-shrink:0;margin-inline-start:auto;display:inline-flex;align-items:center;gap:var(--seed-dimension-x2)}.seed-data-table__scrollArea{position:relative;display:flex;flex-direction:column;width:100%;min-width:0;flex:1 1 auto;min-height:0;overflow-x:auto;overflow-y:auto}.seed-data-table__scrollArea[data-scrolled-start] [data-sticky-edge]{clip-path:inset(0 -38px 0 0);box-shadow:6px 0 16px 4px rgba(0,0,0,.12)}.seed-data-table__scrollArea[data-scrolled-end] [data-sticky-edge-end]{clip-path:inset(0 0 0 -38px);box-shadow:-6px 0 16px 4px rgba(0,0,0,.12)}.seed-data-table__footerCell{box-sizing:border-box;position:sticky;bottom:0;z-index:2;vertical-align:middle;padding:0;height:var(--seed-dimension-x9);background-color:var(--seed-color-bg-layer-default);border-top:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-inline-start:none}.seed-data-table__footerCell:last-child{border-inline-end:none}.seed-data-table__footerCell .seed-data-table-column-calc-trigger{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);width:100%;height:100%;min-width:0;margin:0;padding:0 var(--seed-dimension-x3);border:none;background:0 0;color:var(--seed-color-fg-neutral-subtle);font-family:inherit;font-size:var(--seed-font-size-t4);font-weight:var(--seed-font-weight-medium);white-space:nowrap;overflow:clip;cursor:pointer;transition:background-color .12s,color .12s}.seed-data-table__footerCell .seed-data-table-column-calc-trigger:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__footerCell .seed-data-table-column-calc-trigger[data-align=right]{justify-content:flex-end}.seed-data-table__footerCell .seed-data-table-column-calc-trigger svg{flex-shrink:0;opacity:.7}.seed-data-table__footerCell .seed-data-table-column-calc-placeholder{overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__footerCell .seed-data-table-column-calc-value{min-width:0;flex-shrink:1;color:var(--seed-color-fg-neutral);font-variant-numeric:tabular-nums;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__footerCell .seed-data-table-column-calc-op{min-width:0;flex-shrink:1;color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__emptyState{box-sizing:border-box;text-align:center;padding-block:var(--seed-dimension-x8);padding-inline:var(--seed-dimension-x3);color:var(--seed-color-fg-neutral-subtle);font-size:var(--seed-font-size-t4)}.seed-data-table__loadingState{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:10px;padding-block:var(--seed-dimension-x8);padding-inline:var(--seed-dimension-x3);color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-medium)}.seed-data-table__loadingState[data-inline]{padding-block:0;padding-inline:0;height:var(--seed-dimension-x9)}.seed-data-table__loadingState .seed-data-table-loading-spinner{flex-shrink:0;color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);animation:rotate .6s linear infinite}.seed-data-table__addRowCell{box-sizing:border-box;padding:0;border-top:none}.seed-data-table__addRow{box-sizing:border-box;display:flex;align-items:center;width:100%;margin:0;border:none;border-top:1px solid var(--seed-color-stroke-neutral-muted);background-color:var(--seed-color-bg-layer-default);height:var(--seed-dimension-x9);gap:var(--seed-dimension-x2);padding-inline:var(--seed-dimension-x2);color:var(--seed-color-fg-neutral-subtle);font-family:inherit;font-size:var(--seed-font-size-t4);cursor:pointer;transition:background-color .12s,color .12s}.seed-data-table__addRow:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,var(--seed-color-bg-layer-default));color:var(--seed-color-fg-neutral)}.seed-data-table__addRow svg{flex-shrink:0}.seed-data-table__selectionCell{text-align:center;padding:0}.seed-data-table__bulkBar{box-sizing:border-box;position:absolute;inset-inline-start:50%;transform:translateX(-50%);bottom:var(--seed-dimension-x4);z-index:30;display:flex;align-items:center;gap:var(--seed-dimension-x3);min-height:36px;padding-inline:var(--seed-dimension-x3_5);padding-block:var(--seed-dimension-x2);border-radius:var(--seed-radius-full);box-shadow:var(--seed-shadow-s3);background-color:var(--seed-color-bg-layer-floating);color:var(--seed-color-fg-neutral);font-family:inherit;font-size:var(--seed-font-size-t4);font-weight:var(--seed-font-weight-medium);white-space:nowrap}.seed-data-table__bulkBarCount{flex-shrink:0;color:var(--seed-color-fg-neutral);font-variant-numeric:tabular-nums}.seed-data-table__bulkBarClear{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;margin:0;padding:2px;border:none;border-radius:6px;background:0 0;font-family:inherit;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent);cursor:pointer;transition:background-color .2s,color .2s}.seed-data-table__bulkBarClear:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 8%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__bulkBarActions{display:flex;align-items:center;flex-shrink:0;gap:var(--seed-dimension-x3);padding-inline-start:var(--seed-dimension-x3);border-inline-start:1px solid color-mix(in srgb,var(--seed-color-fg-neutral) 16%,transparent)}.seed-data-table__root--surface_card{border-color:var(--seed-color-stroke-neutral-muted);background-color:var(--seed-color-bg-layer-default);border-radius:var(--seed-radius-r3)}.seed-data-table__root--surface_bleed{border-color:var(--seed-color-bg-transparent);background-color:var(--seed-color-bg-transparent)}.seed-data-table__row--interactive_true{transition:background-color .12s}.seed-data-table__row--interactive_true:is(:hover,[data-hover]){background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 3%,transparent);--seed-data-table-row-bg:color-mix(in srgb, var(--seed-color-fg-neutral) 3%, var(--seed-color-bg-layer-default))}");
|
|
4142
|
+
__insertCSS(".seed-data-table__root{box-sizing:border-box;position:relative;display:flex;flex-direction:column;width:100%;border-width:1px;border-style:solid;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}.seed-data-table__table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.seed-data-table__headerCell{box-sizing:border-box;position:sticky;top:0;z-index:2;vertical-align:middle;text-align:start;padding:0;height:var(--seed-dimension-x10);background-color:var(--seed-color-bg-layer-default);border-top:1px solid var(--seed-color-stroke-neutral-muted);border-bottom:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-inline-start:none;color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-medium);letter-spacing:-.14px}.seed-data-table__headerCell:last-child{border-inline-end:none}.seed-data-table__headerCell[data-sortable]{cursor:pointer;user-select:none}.seed-data-table__headerCell [data-chevron]{opacity:0;transition:opacity .12s}.seed-data-table__headerCell[data-sortable]:hover [data-chevron]{opacity:.6}.seed-data-table__headerCell[data-sorted] [data-chevron]{opacity:1;color:var(--seed-color-fg-neutral)}.seed-data-table__headerCell:hover [data-column-menu]{opacity:1}.seed-data-table__headerCell [data-column-menu]:focus-visible,.seed-data-table__headerCell [data-column-menu][data-open]{opacity:1}.seed-data-table__headerCell[data-dragging]{opacity:.5}.seed-data-table__headerCell[data-sticky]{position:sticky;z-index:3;background-color:var(--seed-color-bg-layer-default)}.seed-data-table__headerCell{outline:var(--seed-dimension-x0_5) solid transparent;outline-offset:calc(var(--seed-dimension-x0_5) * -1)}.seed-data-table__headerCell:is(:focus-visible,[data-focus-visible]){outline:var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);outline-offset:calc(var(--seed-dimension-x0_5) * -1)}.seed-data-table__headerCell .seed-data-table-resize-handle{position:absolute;top:0;inset-inline-end:calc(7px / -2);width:7px;height:100%;z-index:4;display:flex;align-items:center;justify-content:center;cursor:col-resize;touch-action:none}.seed-data-table__headerCell .seed-data-table-resize-handle-inner{width:3px;height:100%;border-radius:3px;background-color:#0298d9;opacity:0;transition:opacity .1s}.seed-data-table__headerCell .seed-data-table-resize-handle:hover .seed-data-table-resize-handle-inner,.seed-data-table__headerCell .seed-data-table-resize-handle[data-resizing] .seed-data-table-resize-handle-inner{opacity:1}.seed-data-table__headerCellInner{box-sizing:border-box;display:flex;align-items:center;width:100%;height:100%;min-width:0;gap:var(--seed-dimension-x1_5);padding-inline:var(--seed-dimension-x3)}.seed-data-table__headerCellLabel{min-width:0;flex:1 1 0%;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__headerCellIcon{flex-shrink:0;margin-inline-start:auto;display:inline-flex;align-items:center;justify-content:center;width:var(--seed-dimension-x4);height:var(--seed-dimension-x4);color:var(--seed-color-fg-neutral-subtle);border:none;background:0 0;padding:0;font:inherit;cursor:pointer}.seed-data-table__headerCellIcon[data-active]{color:var(--seed-color-fg-neutral)}.seed-data-table__headerCellIcon[data-column-menu]{opacity:0;transition:opacity .12s}.seed-data-table__row{position:relative;background-color:var(--seed-color-bg-layer-default);--seed-data-table-row-bg:var(--seed-color-bg-layer-default)}.seed-data-table__row[data-clickable]{cursor:pointer}.seed-data-table__row:is([aria-selected=true],[data-selected]){background-color:color-mix(in srgb,#0298d9 10%,var(--seed-color-bg-layer-default));--seed-data-table-row-bg:color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default))}.seed-data-table__row:is([aria-selected=true],[data-selected]):is(:hover,[data-hover]){background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 3%,color-mix(in srgb,#0298d9 10%,var(--seed-color-bg-layer-default)));--seed-data-table-row-bg:color-mix(in srgb, var(--seed-color-fg-neutral) 3%, color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default)))}.seed-data-table__cell{box-sizing:border-box;position:relative;vertical-align:middle;text-align:start;height:var(--seed-dimension-x9);border-bottom:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-top:none;border-inline-start:none;padding-block:0;padding-inline:var(--seed-dimension-x3);color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-regular);letter-spacing:-.14px;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__cell:not([data-editable]){user-select:none}.seed-data-table__cell:last-child{border-inline-end:none}tbody tr:last-child .seed-data-table__cell{border-bottom:none}.seed-data-table__cell[data-numeric]{text-align:end;font-variant-numeric:tabular-nums}.seed-data-table__cell[data-sticky]{position:sticky;z-index:1;background-color:var(--seed-data-table-row-bg)}.seed-data-table__cell[data-overlay-open]{overflow:visible;z-index:20}.seed-data-table__cell[data-editable]{cursor:default}.seed-data-table__cell .seed-data-table-edit-picker{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);min-width:0}.seed-data-table__cell .seed-data-table-edit-pending{flex-shrink:0;color:var(--seed-color-fg-neutral-subtle);animation:rotate .6s linear infinite}.seed-data-table__cell .seed-data-table-edit-error{position:absolute;top:100%;inset-inline-start:var(--seed-dimension-x3);inset-inline-end:var(--seed-dimension-x3);z-index:2;padding-top:2px;font-size:12px;line-height:1.3;color:var(--seed-color-fg-critical);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__entity{display:flex;align-items:center;min-width:0;gap:var(--seed-dimension-x1_5)}.seed-data-table__entityName{min-width:0;font-weight:var(--seed-font-weight-medium);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__entityName[data-clickable]{cursor:pointer;border:none;background:0 0;padding:0;margin:0;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;text-align:start}.seed-data-table__entityName[data-clickable]:is(:hover,[data-hover]){text-decoration:underline}.seed-data-table__tagList{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);overflow:hidden;min-width:0}.seed-data-table__entityActions{display:flex;align-items:center;gap:6px;margin-inline-start:auto;flex-shrink:0;opacity:0;transition:opacity .15s}tr:hover .seed-data-table__entityActions{opacity:1}.seed-data-table__entityActions:focus-within{opacity:1}.seed-data-table__entityAction{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin:0;padding:2px;border:none;border-radius:6px;background:0 0;font-family:inherit;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent);cursor:pointer;flex-shrink:0;transition:background-color .2s,color .2s,box-shadow .2s}.seed-data-table__entityAction:hover{background:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__link{color:var(--seed-color-fg-neutral);text-decoration:none;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__link:is(:hover,[data-hover]){text-decoration:underline}.seed-data-table__chip{box-sizing:border-box;display:inline-flex;align-items:center;flex-shrink:0;max-width:100%;height:22px;padding:0 4px;border-radius:7px;font-size:13px;font-weight:var(--seed-font-weight-medium);line-height:15px;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__chipList{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:3px;overflow:hidden;min-width:0;width:100%}.seed-data-table__chipOverflow{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;height:20px;padding:0 4px;border-radius:6px;background-color:#f6f7f7;color:#000;font-size:10px;font-weight:var(--seed-font-weight-regular);line-height:15px;white-space:nowrap}.seed-data-table__chipListEditor{display:flex;align-items:center;flex-wrap:wrap;gap:3px;min-width:0;width:100%}.seed-data-table__chipRemove{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:12px;height:12px;margin:0;margin-inline-start:2px;padding:0;border:none;border-radius:999px;background:0 0;color:inherit;opacity:.6;cursor:pointer;transition:opacity .12s,background-color .12s}.seed-data-table__chipRemove:hover{opacity:1;background-color:rgba(0,0,0,.08)}.seed-data-table__chipInput{flex:1 1 auto;min-width:40px;height:22px;margin:0;padding:0;border:none;outline:0;background:0 0;font-family:inherit;font-size:var(--seed-font-size-t4);color:var(--seed-color-fg-neutral);letter-spacing:-.14px}.seed-data-table__expandOverlay{box-sizing:border-box;position:absolute;top:-1px;inset-inline-start:-1px;inset-inline-end:-1px;z-index:10;min-height:calc(100% + 2px);display:flex;align-items:flex-start;padding-inline:var(--seed-dimension-x3);padding-block:var(--seed-dimension-x3);background-color:var(--seed-color-bg-layer-floating);border-radius:4px;box-shadow:none;border:1px solid #266df0;color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);letter-spacing:-.14px;cursor:default}.seed-data-table__expandOverlayText{width:100%;min-width:0;white-space:normal;word-break:break-word}.seed-data-table__cellSuffixRow{display:flex;align-items:center;gap:4px;min-width:0;width:100%}.seed-data-table__cellSuffixText{flex:1 1 0%;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__cellSuffixIcon{flex-shrink:0;display:inline-flex;align-items:center;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent)}.seed-data-table__toolbar{box-sizing:border-box;display:flex;align-items:center;width:100%;flex-shrink:0;min-height:49px;gap:var(--seed-dimension-x2);padding-inline:var(--seed-dimension-x3);border-top:1px solid var(--seed-color-stroke-neutral-muted)}.seed-data-table__search{position:relative;display:inline-flex;align-items:center;flex:1 1 0%;max-width:280px}.seed-data-table__search svg{position:absolute;inset-inline-start:var(--seed-dimension-x2);width:var(--seed-dimension-x4);height:var(--seed-dimension-x4);color:var(--seed-color-fg-neutral-muted);pointer-events:none}.seed-data-table__search input{width:100%;height:var(--seed-dimension-x8);padding-inline-start:var(--seed-dimension-x7);padding-inline-end:var(--seed-dimension-x2);border:none;border-radius:var(--seed-radius-r2);background-color:var(--seed-color-bg-layer-default);box-shadow:inset 0 0 0 1px var(--seed-color-stroke-neutral-weak);font-family:inherit;font-size:var(--seed-font-size-t4);color:var(--seed-color-fg-neutral);outline:0;transition:box-shadow .1s var(--seed-timing-function-easing)}.seed-data-table__search input::placeholder{color:var(--seed-color-fg-neutral-subtle)}.seed-data-table__search input:focus{box-shadow:inset 0 0 0 2px var(--seed-color-stroke-neutral-contrast)}.seed-data-table__count{flex-shrink:0;color:var(--seed-color-fg-neutral-subtle);font-size:var(--seed-font-size-t3);font-variant-numeric:tabular-nums}.seed-data-table__toolbarEnd{flex-shrink:0;margin-inline-start:auto;display:inline-flex;align-items:center;gap:var(--seed-dimension-x2)}.seed-data-table__scrollArea{position:relative;display:flex;flex-direction:column;width:100%;min-width:0;flex:1 1 auto;min-height:0;overflow-x:auto;overflow-y:auto}.seed-data-table__scrollArea[data-scrolled-start] [data-sticky-edge]{clip-path:inset(0 -38px 0 0);box-shadow:6px 0 16px 4px rgba(0,0,0,.12)}.seed-data-table__scrollArea[data-scrolled-end] [data-sticky-edge-end]{clip-path:inset(0 0 0 -38px);box-shadow:-6px 0 16px 4px rgba(0,0,0,.12)}.seed-data-table__footerCell{box-sizing:border-box;position:sticky;bottom:0;z-index:2;vertical-align:middle;padding:0;height:var(--seed-dimension-x9);background-color:var(--seed-color-bg-layer-default);border-top:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-inline-start:none}.seed-data-table__footerCell:last-child{border-inline-end:none}.seed-data-table__footerCell[data-sticky]{z-index:3}.seed-data-table__footerCell .seed-data-table-column-calc-trigger{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);width:100%;height:100%;min-width:0;margin:0;padding:0 var(--seed-dimension-x3);border:none;background:0 0;color:var(--seed-color-fg-neutral-subtle);font-family:inherit;font-size:var(--seed-font-size-t4);font-weight:var(--seed-font-weight-medium);white-space:nowrap;overflow:clip;cursor:pointer;transition:background-color .12s,color .12s}.seed-data-table__footerCell .seed-data-table-column-calc-trigger:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__footerCell .seed-data-table-column-calc-trigger[data-align=right]{justify-content:flex-end}.seed-data-table__footerCell .seed-data-table-column-calc-trigger svg{flex-shrink:0;opacity:.7}.seed-data-table__footerCell .seed-data-table-column-calc-placeholder{overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__footerCell .seed-data-table-column-calc-value{min-width:0;flex-shrink:1;color:var(--seed-color-fg-neutral);font-variant-numeric:tabular-nums;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__footerCell .seed-data-table-column-calc-op{min-width:0;flex-shrink:1;color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__emptyState{box-sizing:border-box;text-align:center;padding-block:var(--seed-dimension-x8);padding-inline:var(--seed-dimension-x3);color:var(--seed-color-fg-neutral-subtle);font-size:var(--seed-font-size-t4)}.seed-data-table__loadingState{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:10px;padding-block:var(--seed-dimension-x8);padding-inline:var(--seed-dimension-x3);color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-medium)}.seed-data-table__loadingState[data-inline]{padding-block:0;padding-inline:0;height:var(--seed-dimension-x9)}.seed-data-table__loadingState .seed-data-table-loading-spinner{flex-shrink:0;color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);animation:rotate .6s linear infinite}.seed-data-table__addRowCell{box-sizing:border-box;padding:0;border-top:none}.seed-data-table__addRow{box-sizing:border-box;display:flex;align-items:center;width:100%;margin:0;border:none;border-top:1px solid var(--seed-color-stroke-neutral-muted);background-color:var(--seed-color-bg-layer-default);height:var(--seed-dimension-x9);gap:var(--seed-dimension-x2);padding-inline:var(--seed-dimension-x2);color:var(--seed-color-fg-neutral-subtle);font-family:inherit;font-size:var(--seed-font-size-t4);cursor:pointer;transition:background-color .12s,color .12s}.seed-data-table__addRow:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,var(--seed-color-bg-layer-default));color:var(--seed-color-fg-neutral)}.seed-data-table__addRow svg{flex-shrink:0}.seed-data-table__selectionCell{text-align:center;padding:0}.seed-data-table__bulkBar{box-sizing:border-box;position:absolute;inset-inline-start:50%;transform:translateX(-50%);bottom:var(--seed-dimension-x4);z-index:30;display:flex;align-items:center;gap:var(--seed-dimension-x3);min-height:36px;padding-inline:var(--seed-dimension-x3_5);padding-block:var(--seed-dimension-x2);border-radius:var(--seed-radius-full);box-shadow:var(--seed-shadow-s3);background-color:var(--seed-color-bg-layer-floating);color:var(--seed-color-fg-neutral);font-family:inherit;font-size:var(--seed-font-size-t4);font-weight:var(--seed-font-weight-medium);white-space:nowrap}.seed-data-table__bulkBar[data-above-footer]{bottom:calc(var(--seed-dimension-x4) + var(--seed-dimension-x9))}.seed-data-table__bulkBarCount{flex-shrink:0;color:var(--seed-color-fg-neutral);font-variant-numeric:tabular-nums}.seed-data-table__bulkBarClear{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;margin:0;padding:2px;border:none;border-radius:6px;background:0 0;font-family:inherit;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent);cursor:pointer;transition:background-color .2s,color .2s}.seed-data-table__bulkBarClear:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 8%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__bulkBarActions{display:flex;align-items:center;flex-shrink:0;gap:var(--seed-dimension-x3);padding-inline-start:var(--seed-dimension-x3);border-inline-start:1px solid color-mix(in srgb,var(--seed-color-fg-neutral) 16%,transparent)}.seed-data-table__root--surface_card{border-color:var(--seed-color-stroke-neutral-muted);background-color:var(--seed-color-bg-layer-default);border-radius:var(--seed-radius-r3)}.seed-data-table__root--surface_bleed{border-color:var(--seed-color-bg-transparent);background-color:var(--seed-color-bg-transparent)}.seed-data-table__row--interactive_true{transition:background-color .12s}.seed-data-table__row--interactive_true:is(:hover,[data-hover]){background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 3%,transparent);--seed-data-table-row-bg:color-mix(in srgb, var(--seed-color-fg-neutral) 3%, var(--seed-color-bg-layer-default))}");
|
|
4130
4143
|
|
|
4131
4144
|
const createClassName = (className, variants, compoundVariants = [])=>{
|
|
4132
4145
|
const variantKeys = Object.keys(variants);
|
|
@@ -4480,6 +4493,10 @@ const { ClassNamesProvider, withContext: withContext$1, useClassNames } = create
|
|
|
4480
4493
|
});
|
|
4481
4494
|
}
|
|
4482
4495
|
|
|
4496
|
+
/** Attribute on the floating-ui-portaled option list of the `select`/`reference`/`actor`
|
|
4497
|
+
* editors. The portal lands in `document.body`, outside the cell and its expand overlay,
|
|
4498
|
+
* so `body-cells.tsx`'s outside-click detector checks for this marker to avoid reading an
|
|
4499
|
+
* option click as "outside" and cancelling the edit before it commits. */ const EDITOR_PORTAL_ATTR = "data-datatable-editor-portal";
|
|
4483
4500
|
/** The raw value a live editor reads, distinct from `DataTableColumn.value` (the
|
|
4484
4501
|
* accessor sort/search/filter/export share): `editValue` returns whatever TYPE the
|
|
4485
4502
|
* editor itself expects -- a real `boolean` for `editor: "switch"`/`type:
|
|
@@ -4628,6 +4645,7 @@ function SelectEditor({ column, value, pending, onCommit, onCancel }) {
|
|
|
4628
4645
|
]
|
|
4629
4646
|
}),
|
|
4630
4647
|
/*#__PURE__*/ jsxRuntime.jsx(SelectPositioner, {
|
|
4648
|
+
[EDITOR_PORTAL_ATTR]: "",
|
|
4631
4649
|
children: /*#__PURE__*/ jsxRuntime.jsxs(SelectContent, {
|
|
4632
4650
|
children: [
|
|
4633
4651
|
searchable && /*#__PURE__*/ jsxRuntime.jsx(SelectSearchField, {
|
|
@@ -4703,6 +4721,7 @@ function ReferenceEditor({ column, value, pending, onCommit, onCancel }) {
|
|
|
4703
4721
|
]
|
|
4704
4722
|
}),
|
|
4705
4723
|
/*#__PURE__*/ jsxRuntime.jsx(SelectPositioner, {
|
|
4724
|
+
[EDITOR_PORTAL_ATTR]: "",
|
|
4706
4725
|
children: /*#__PURE__*/ jsxRuntime.jsxs(SelectContent, {
|
|
4707
4726
|
children: [
|
|
4708
4727
|
/*#__PURE__*/ jsxRuntime.jsx(SelectSearchField, {
|
|
@@ -5318,8 +5337,14 @@ function ColumnBodyCells({ columns, row, classNames, locale, selectable, stickyF
|
|
|
5318
5337
|
function isInside(target) {
|
|
5319
5338
|
return (cellRef.current?.contains(target) ?? false) || (popoverRef.current?.contains(target) ?? false) || (expandOverlayRef.current?.contains(target) ?? false);
|
|
5320
5339
|
}
|
|
5340
|
+
// The select/reference/actor editor's option list is portaled to `document.body` by
|
|
5341
|
+
// floating-ui, outside both `cellRef` and `expandOverlayRef`; `editors.tsx` marks its
|
|
5342
|
+
// positioner with `EDITOR_PORTAL_ATTR`, so a click on an option is not an outside click.
|
|
5343
|
+
function isInsideEditorPortal(target) {
|
|
5344
|
+
return target instanceof Element && target.closest(`[${EDITOR_PORTAL_ATTR}]`) != null;
|
|
5345
|
+
}
|
|
5321
5346
|
function handlePointerDown(event) {
|
|
5322
|
-
if (!isInside(event.target)) {
|
|
5347
|
+
if (!isInside(event.target) && !isInsideEditorPortal(event.target)) {
|
|
5323
5348
|
setOverlayOpen(false);
|
|
5324
5349
|
setPopoverStyle(null);
|
|
5325
5350
|
closePeek();
|
|
@@ -5658,13 +5683,14 @@ const DataTableBulkBarClear = withContext$1(Primitive.button, "bulkBarClear");
|
|
|
5658
5683
|
* exactly this reason -- see `data-table.ts`'s own `bulkBar` slot comment for why its
|
|
5659
5684
|
* geometry borrows `contextual-floating-button`'s already-measured vars rather than a
|
|
5660
5685
|
* guessed literal.
|
|
5661
|
-
*/ function DataTableBulkBar({ clearLabel = "Clear selection", children }) {
|
|
5686
|
+
*/ function DataTableBulkBar({ clearLabel = "Clear selection", aboveFooter, children }) {
|
|
5662
5687
|
const { selectedIds, clearSelection } = useDataTableContext();
|
|
5663
5688
|
if (selectedIds.length === 0) return null;
|
|
5664
5689
|
return /*#__PURE__*/ jsxRuntime.jsxs(DataTableBulkBarRoot, {
|
|
5665
5690
|
role: "toolbar",
|
|
5666
5691
|
"aria-label": "Bulk actions",
|
|
5667
5692
|
"aria-orientation": "horizontal",
|
|
5693
|
+
"data-above-footer": aboveFooter ? "" : undefined,
|
|
5668
5694
|
children: [
|
|
5669
5695
|
/*#__PURE__*/ jsxRuntime.jsxs(DataTableBulkBarCount, {
|
|
5670
5696
|
"aria-live": "polite",
|
|
@@ -5924,7 +5950,11 @@ const DEFAULT_SORT_ICON = {
|
|
|
5924
5950
|
* component (not inlined in `DataTableInner`'s render) so it alone re-renders when
|
|
5925
5951
|
* `visibleColumnOrder`/labels/widths change, without also re-deriving `sortedData`'s
|
|
5926
5952
|
* render above it. */ function ColumnHeaderCells({ columns, columnMenu, reorderable, resizable, sortIcon, selectable, stickyFirst, stickyLast }) {
|
|
5927
|
-
const { draggingColumnKey, beginColumnDrag, dragOverColumn, endColumnDrag } = useDataTableContext();
|
|
5953
|
+
const { draggingColumnKey, beginColumnDrag, dragOverColumn, endColumnDrag, visibleColumnOrder } = useDataTableContext();
|
|
5954
|
+
// Move left/right operate on the visible order, but never across the `actions`
|
|
5955
|
+
// column (the raw order re-pins it last, so a move onto/past it is a silent no-op).
|
|
5956
|
+
const actionsKey = columns.find((column)=>column.actions)?.key;
|
|
5957
|
+
const movableKeys = visibleColumnOrder.filter((key)=>key !== actionsKey);
|
|
5928
5958
|
const effective = useEffectiveColumns(columns, {
|
|
5929
5959
|
selectable,
|
|
5930
5960
|
stickyFirst
|
|
@@ -5972,6 +6002,8 @@ const DEFAULT_SORT_ICON = {
|
|
|
5972
6002
|
columnMenu && /*#__PURE__*/ jsxRuntime.jsx(ColumnMenu, {
|
|
5973
6003
|
column: column,
|
|
5974
6004
|
label: label,
|
|
6005
|
+
canMoveLeft: movableKeys.indexOf(column.key) > 0,
|
|
6006
|
+
canMoveRight: movableKeys.indexOf(column.key) !== -1 && movableKeys.indexOf(column.key) < movableKeys.length - 1,
|
|
5975
6007
|
onRename: ()=>setRenamingKey(column.key)
|
|
5976
6008
|
})
|
|
5977
6009
|
]
|
|
@@ -6063,8 +6095,8 @@ function ColumnRenameInput({ column, initialLabel, onDone }) {
|
|
|
6063
6095
|
* `data-table.ts`) -- crisp's own header shows the trigger only on hover, not
|
|
6064
6096
|
* permanently, so this one carries its own marker attribute distinct from that
|
|
6065
6097
|
* slot's OTHER occupants (the sort chevron, the filter trigger), which stay visible
|
|
6066
|
-
* under their own separate rules regardless of hover. */ function ColumnMenu({ column, label, onRename }) {
|
|
6067
|
-
const { moveColumn, hideColumn, isColumnPinned, togglePinColumn, sort, clearSort } = useDataTableContext();
|
|
6098
|
+
* under their own separate rules regardless of hover. */ function ColumnMenu({ column, label, canMoveLeft, canMoveRight, onRename }) {
|
|
6099
|
+
const { moveColumn, hideColumn, isColumnPinned, togglePinColumn, sort, setSort, clearSort } = useDataTableContext();
|
|
6068
6100
|
const columnLabel = typeof label === "string" ? label : column.key;
|
|
6069
6101
|
const pinned = isColumnPinned(column.key);
|
|
6070
6102
|
// Attio/GRC's "Remove sort" (live-review fix D) -- the header's own click-to-sort
|
|
@@ -6115,40 +6147,68 @@ function ColumnRenameInput({ column, initialLabel, onDone }) {
|
|
|
6115
6147
|
},
|
|
6116
6148
|
children: /*#__PURE__*/ jsxRuntime.jsxs(MenuScrollArea, {
|
|
6117
6149
|
children: [
|
|
6118
|
-
/*#__PURE__*/ jsxRuntime.
|
|
6119
|
-
|
|
6120
|
-
|
|
6121
|
-
|
|
6122
|
-
|
|
6150
|
+
column.sortable && /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
6151
|
+
children: [
|
|
6152
|
+
/*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
|
|
6153
|
+
role: "menuitemradio",
|
|
6154
|
+
"aria-checked": isSorted && sort?.dir === "asc",
|
|
6155
|
+
onClick: ()=>setSort({
|
|
6156
|
+
key: column.key,
|
|
6157
|
+
dir: "asc"
|
|
6158
|
+
}),
|
|
6159
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(MenuItemLabel, {
|
|
6160
|
+
children: "Sort ascending"
|
|
6161
|
+
})
|
|
6162
|
+
}),
|
|
6163
|
+
/*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
|
|
6164
|
+
role: "menuitemradio",
|
|
6165
|
+
"aria-checked": isSorted && sort?.dir === "desc",
|
|
6166
|
+
onClick: ()=>setSort({
|
|
6167
|
+
key: column.key,
|
|
6168
|
+
dir: "desc"
|
|
6169
|
+
}),
|
|
6170
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(MenuItemLabel, {
|
|
6171
|
+
children: "Sort descending"
|
|
6172
|
+
})
|
|
6173
|
+
}),
|
|
6174
|
+
isSorted && /*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
|
|
6175
|
+
onClick: clearSort,
|
|
6176
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(MenuItemLabel, {
|
|
6177
|
+
children: "Clear sort"
|
|
6178
|
+
})
|
|
6179
|
+
})
|
|
6180
|
+
]
|
|
6123
6181
|
}),
|
|
6124
6182
|
/*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
|
|
6183
|
+
disabled: !canMoveLeft,
|
|
6125
6184
|
onClick: ()=>moveColumn(column.key, "left"),
|
|
6126
6185
|
children: /*#__PURE__*/ jsxRuntime.jsx(MenuItemLabel, {
|
|
6127
6186
|
children: "Move left"
|
|
6128
6187
|
})
|
|
6129
6188
|
}),
|
|
6130
6189
|
/*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
|
|
6190
|
+
disabled: !canMoveRight,
|
|
6131
6191
|
onClick: ()=>moveColumn(column.key, "right"),
|
|
6132
6192
|
children: /*#__PURE__*/ jsxRuntime.jsx(MenuItemLabel, {
|
|
6133
6193
|
children: "Move right"
|
|
6134
6194
|
})
|
|
6135
6195
|
}),
|
|
6136
|
-
|
|
6137
|
-
onClick:
|
|
6196
|
+
/*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
|
|
6197
|
+
onClick: ()=>togglePinColumn(column.key),
|
|
6138
6198
|
children: /*#__PURE__*/ jsxRuntime.jsx(MenuItemLabel, {
|
|
6139
|
-
children: "
|
|
6199
|
+
children: pinned ? "Unpin column" : "Pin column"
|
|
6140
6200
|
})
|
|
6141
6201
|
}),
|
|
6142
6202
|
/*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
|
|
6143
|
-
onClick:
|
|
6203
|
+
onClick: onRename,
|
|
6144
6204
|
children: /*#__PURE__*/ jsxRuntime.jsx(MenuItemLabel, {
|
|
6145
|
-
children:
|
|
6205
|
+
children: "Edit column label"
|
|
6146
6206
|
})
|
|
6147
6207
|
}),
|
|
6148
6208
|
/*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
|
|
6149
6209
|
onClick: ()=>hideColumn(column.key),
|
|
6150
6210
|
children: /*#__PURE__*/ jsxRuntime.jsx(MenuItemLabel, {
|
|
6151
|
-
children: "Hide
|
|
6211
|
+
children: "Hide from view"
|
|
6152
6212
|
})
|
|
6153
6213
|
})
|
|
6154
6214
|
]
|
|
@@ -11193,7 +11253,13 @@ const toDateOrNull = (v)=>{
|
|
|
11193
11253
|
return f.op === "before" ? d < cd : d > cd;
|
|
11194
11254
|
}
|
|
11195
11255
|
const t = asText(raw).toLowerCase();
|
|
11196
|
-
if (f.op === "isanyof")
|
|
11256
|
+
if (f.op === "isanyof") {
|
|
11257
|
+
const wanted = (f.values ?? []).map((v)=>v.toLowerCase());
|
|
11258
|
+
const cells = Array.isArray(raw) ? raw.map((x)=>asText(x).toLowerCase()) : [
|
|
11259
|
+
t
|
|
11260
|
+
];
|
|
11261
|
+
return cells.some((c)=>wanted.includes(c));
|
|
11262
|
+
}
|
|
11197
11263
|
const v = f.value.trim().toLowerCase();
|
|
11198
11264
|
if (f.op === "contains") return t.includes(v);
|
|
11199
11265
|
if (f.op === "doesnotcontain") return !t.includes(v);
|
|
@@ -12186,6 +12252,7 @@ function DataTableInner(props, ref) {
|
|
|
12186
12252
|
}),
|
|
12187
12253
|
selectable && /*#__PURE__*/ jsxRuntime.jsx(DataTableBulkBar, {
|
|
12188
12254
|
clearLabel: clearSelectionLabel,
|
|
12255
|
+
aboveFooter: showFooter || !!onAddRow,
|
|
12189
12256
|
children: bulkActions
|
|
12190
12257
|
})
|
|
12191
12258
|
]
|
package/dist/index.d.ts
CHANGED
|
@@ -546,7 +546,7 @@ interface DataTableProps<TRow extends {
|
|
|
546
546
|
/** `virtualized`일 때 한 행의 높이(px)입니다. 레시피의 행 높이(36px)와 일치해야 합니다.
|
|
547
547
|
* @default 36 */
|
|
548
548
|
rowHeight?: number;
|
|
549
|
-
/** `virtualized`일 때 뷰포트 위/아래로 추가 렌더링할 행 수입니다. @default
|
|
549
|
+
/** `virtualized`일 때 뷰포트 위/아래로 추가 렌더링할 행 수입니다. @default 16 */
|
|
550
550
|
overscan?: number;
|
|
551
551
|
}
|
|
552
552
|
/**
|
|
@@ -602,6 +602,8 @@ declare namespace DataTableViewsControl {
|
|
|
602
602
|
interface DataTableBulkBarProps {
|
|
603
603
|
/** The clear ("x") button's accessible name. @default "Clear selection" */
|
|
604
604
|
clearLabel?: string;
|
|
605
|
+
/** Lift the pill above a sticky footer (calc row / add-row) instead of overlapping it. */
|
|
606
|
+
aboveFooter?: boolean;
|
|
605
607
|
/**
|
|
606
608
|
* The consumer's own bulk-action buttons, as a render prop receiving the current
|
|
607
609
|
* selected row ids -- e.g. `<DataTableBulkBar>{(ids) => <ActionButton
|
|
@@ -619,7 +621,7 @@ interface DataTableBulkBarProps {
|
|
|
619
621
|
* geometry borrows `contextual-floating-button`'s already-measured vars rather than a
|
|
620
622
|
* guessed literal.
|
|
621
623
|
*/
|
|
622
|
-
declare function DataTableBulkBar({ clearLabel, children, }: DataTableBulkBarProps): react_jsx_runtime.JSX.Element | null;
|
|
624
|
+
declare function DataTableBulkBar({ clearLabel, aboveFooter, children, }: DataTableBulkBarProps): react_jsx_runtime.JSX.Element | null;
|
|
623
625
|
|
|
624
626
|
type ResizablePanelSide = "left" | "right";
|
|
625
627
|
|
package/dist/index.js
CHANGED
|
@@ -1168,7 +1168,7 @@ function isStringArray(value) {
|
|
|
1168
1168
|
// per-row measurement, no ResizeObserver per row.
|
|
1169
1169
|
/** The recipe's own row height (`--seed-dimension-x9` = 36px, `row.height`). */ const DEFAULT_VIRTUAL_ROW_HEIGHT = 36;
|
|
1170
1170
|
/** Rows rendered beyond each edge of the viewport, so a fast scroll never outruns the
|
|
1171
|
-
* render and flashes an empty gap. */ const DEFAULT_VIRTUAL_OVERSCAN =
|
|
1171
|
+
* render and flashes an empty gap. */ const DEFAULT_VIRTUAL_OVERSCAN = 16;
|
|
1172
1172
|
/** Distance from the bottom (px) at which `onLoadMore` fires in virtualized mode --
|
|
1173
1173
|
* the same 160px look-ahead the IntersectionObserver's rootMargin gives a non-
|
|
1174
1174
|
* virtualized table. */ const LOAD_MORE_THRESHOLD = 160;
|
|
@@ -1321,13 +1321,15 @@ const EMPTY_RECORD = {};
|
|
|
1321
1321
|
})), [
|
|
1322
1322
|
setColumnWidths
|
|
1323
1323
|
]);
|
|
1324
|
-
const moveColumn = useCallback((key, direction)=>setRawOrder((current)=>moveColumnKey(current ?? columnKeys, key, direction)), [
|
|
1324
|
+
const moveColumn = useCallback((key, direction)=>setRawOrder((current)=>moveColumnKey(reconcileColumnOrder(current ?? columnKeys, columnKeys, actionsColumnKey), key, direction)), [
|
|
1325
1325
|
setRawOrder,
|
|
1326
|
-
columnKeys
|
|
1326
|
+
columnKeys,
|
|
1327
|
+
actionsColumnKey
|
|
1327
1328
|
]);
|
|
1328
|
-
const reorderColumn = useCallback((dragKey, dropKey)=>setRawOrder((current)=>reorderColumnKey(current ?? columnKeys, dragKey, dropKey)), [
|
|
1329
|
+
const reorderColumn = useCallback((dragKey, dropKey)=>setRawOrder((current)=>reorderColumnKey(reconcileColumnOrder(current ?? columnKeys, columnKeys, actionsColumnKey), dragKey, dropKey)), [
|
|
1329
1330
|
setRawOrder,
|
|
1330
|
-
columnKeys
|
|
1331
|
+
columnKeys,
|
|
1332
|
+
actionsColumnKey
|
|
1331
1333
|
]);
|
|
1332
1334
|
// -- drag-to-reorder ---------------------------------------------------------------
|
|
1333
1335
|
// Live state only (which column is currently being dragged) -- the styled layer's
|
|
@@ -1495,11 +1497,11 @@ function sameCell(a, id, key) {
|
|
|
1495
1497
|
key
|
|
1496
1498
|
});
|
|
1497
1499
|
result.then(()=>{
|
|
1498
|
-
setPendingCell(null);
|
|
1499
|
-
setEditingCell(null);
|
|
1500
|
+
setPendingCell((c)=>sameCell(c, id, key) ? null : c);
|
|
1501
|
+
setEditingCell((c)=>sameCell(c, id, key) ? null : c);
|
|
1500
1502
|
}, (err)=>{
|
|
1501
|
-
setPendingCell(null);
|
|
1502
|
-
setEditingCell(null);
|
|
1503
|
+
setPendingCell((c)=>sameCell(c, id, key) ? null : c);
|
|
1504
|
+
setEditingCell((c)=>sameCell(c, id, key) ? null : c);
|
|
1503
1505
|
setEditError({
|
|
1504
1506
|
id,
|
|
1505
1507
|
key,
|
|
@@ -2425,9 +2427,20 @@ DataTableCell$1.displayName = "DataTableCell";
|
|
|
2425
2427
|
|
|
2426
2428
|
const EMPTY_VIEWS = [];
|
|
2427
2429
|
function readStoredViews(storageKey) {
|
|
2428
|
-
if (!storageKey || typeof window === "undefined") return
|
|
2430
|
+
if (!storageKey || typeof window === "undefined") return null;
|
|
2429
2431
|
try {
|
|
2430
|
-
|
|
2432
|
+
const raw = window.localStorage.getItem(storageKey);
|
|
2433
|
+
if (raw === null) return null;
|
|
2434
|
+
// Only a well-formed array counts as "stored" -- `[]` is a real answer (the user
|
|
2435
|
+
// deleted every view), whereas garbage/non-array JSON is treated as absent so the
|
|
2436
|
+
// defaults still seed.
|
|
2437
|
+
let parsed;
|
|
2438
|
+
try {
|
|
2439
|
+
parsed = JSON.parse(raw);
|
|
2440
|
+
} catch {
|
|
2441
|
+
return null;
|
|
2442
|
+
}
|
|
2443
|
+
return Array.isArray(parsed) ? deserializeDataTableViews(raw) : null;
|
|
2431
2444
|
} catch {
|
|
2432
2445
|
// A private-browsing tab / blocked storage throws on access, not just on quota --
|
|
2433
2446
|
// this hook degrades to in-memory-only rather than crash the table over it.
|
|
@@ -2465,7 +2478,7 @@ function readStoredViews(storageKey) {
|
|
|
2465
2478
|
// Nothing in storage yet (first run, or no `storageKey` at all) -- seed from
|
|
2466
2479
|
// `defaultViews` instead of an empty list, matching every other hook's own
|
|
2467
2480
|
// `defaultProp` semantics.
|
|
2468
|
-
initialViewsRef.current = stored
|
|
2481
|
+
initialViewsRef.current = stored !== null ? stored : defaultViews;
|
|
2469
2482
|
}
|
|
2470
2483
|
}
|
|
2471
2484
|
const [views = EMPTY_VIEWS, setViews] = useControllableState$1({
|
|
@@ -4107,7 +4120,7 @@ const TextFieldTextarea = /*#__PURE__*/ forwardRef(({ className, autoresize = tr
|
|
|
4107
4120
|
});
|
|
4108
4121
|
TextFieldTextarea.displayName = "TextFieldTextarea";
|
|
4109
4122
|
|
|
4110
|
-
__insertCSS(".seed-data-table__root{box-sizing:border-box;position:relative;display:flex;flex-direction:column;width:100%;border-width:1px;border-style:solid;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}.seed-data-table__table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.seed-data-table__headerCell{box-sizing:border-box;position:sticky;top:0;z-index:2;vertical-align:middle;text-align:start;padding:0;height:var(--seed-dimension-x10);background-color:var(--seed-color-bg-layer-default);border-top:1px solid var(--seed-color-stroke-neutral-muted);border-bottom:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-inline-start:none;color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-medium);letter-spacing:-.14px}.seed-data-table__headerCell:last-child{border-inline-end:none}.seed-data-table__headerCell[data-sortable]{cursor:pointer;user-select:none}.seed-data-table__headerCell [data-chevron]{opacity:0;transition:opacity .12s}.seed-data-table__headerCell[data-sortable]:hover [data-chevron]{opacity:.6}.seed-data-table__headerCell[data-sorted] [data-chevron]{opacity:1;color:var(--seed-color-fg-neutral)}.seed-data-table__headerCell:hover [data-column-menu]{opacity:1}.seed-data-table__headerCell [data-column-menu]:focus-visible,.seed-data-table__headerCell [data-column-menu][data-open]{opacity:1}.seed-data-table__headerCell[data-dragging]{opacity:.5}.seed-data-table__headerCell[data-sticky]{position:sticky;z-index:3;background-color:var(--seed-color-bg-layer-default)}.seed-data-table__headerCell{outline:var(--seed-dimension-x0_5) solid transparent;outline-offset:calc(var(--seed-dimension-x0_5) * -1)}.seed-data-table__headerCell:is(:focus-visible,[data-focus-visible]){outline:var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);outline-offset:calc(var(--seed-dimension-x0_5) * -1)}.seed-data-table__headerCell .seed-data-table-resize-handle{position:absolute;top:0;inset-inline-end:calc(7px / -2);width:7px;height:100%;z-index:4;display:flex;align-items:center;justify-content:center;cursor:col-resize;touch-action:none}.seed-data-table__headerCell .seed-data-table-resize-handle-inner{width:3px;height:100%;border-radius:3px;background-color:#0298d9;opacity:0;transition:opacity .1s}.seed-data-table__headerCell .seed-data-table-resize-handle:hover .seed-data-table-resize-handle-inner,.seed-data-table__headerCell .seed-data-table-resize-handle[data-resizing] .seed-data-table-resize-handle-inner{opacity:1}.seed-data-table__headerCellInner{box-sizing:border-box;display:flex;align-items:center;width:100%;height:100%;min-width:0;gap:var(--seed-dimension-x1_5);padding-inline:var(--seed-dimension-x3)}.seed-data-table__headerCellLabel{min-width:0;flex:1 1 0%;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__headerCellIcon{flex-shrink:0;margin-inline-start:auto;display:inline-flex;align-items:center;justify-content:center;width:var(--seed-dimension-x4);height:var(--seed-dimension-x4);color:var(--seed-color-fg-neutral-subtle);border:none;background:0 0;padding:0;font:inherit;cursor:pointer}.seed-data-table__headerCellIcon[data-active]{color:var(--seed-color-fg-neutral)}.seed-data-table__headerCellIcon[data-column-menu]{opacity:0;transition:opacity .12s}.seed-data-table__row{position:relative;background-color:var(--seed-color-bg-layer-default);--seed-data-table-row-bg:var(--seed-color-bg-layer-default)}.seed-data-table__row[data-clickable]{cursor:pointer}.seed-data-table__row:is([aria-selected=true],[data-selected]){background-color:color-mix(in srgb,#0298d9 10%,var(--seed-color-bg-layer-default));--seed-data-table-row-bg:color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default))}.seed-data-table__row:is([aria-selected=true],[data-selected]):is(:hover,[data-hover]){background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 3%,color-mix(in srgb,#0298d9 10%,var(--seed-color-bg-layer-default)));--seed-data-table-row-bg:color-mix(in srgb, var(--seed-color-fg-neutral) 3%, color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default)))}.seed-data-table__cell{box-sizing:border-box;position:relative;vertical-align:middle;text-align:start;height:var(--seed-dimension-x9);border-bottom:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-top:none;border-inline-start:none;padding-block:0;padding-inline:var(--seed-dimension-x3);color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-regular);letter-spacing:-.14px;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__cell:not([data-editable]){user-select:none}.seed-data-table__cell:last-child{border-inline-end:none}tbody tr:last-child .seed-data-table__cell{border-bottom:none}.seed-data-table__cell[data-numeric]{text-align:end;font-variant-numeric:tabular-nums}.seed-data-table__cell[data-sticky]{position:sticky;z-index:1;background-color:var(--seed-data-table-row-bg)}.seed-data-table__cell[data-overlay-open]{overflow:visible;z-index:20}.seed-data-table__cell[data-editable]{cursor:default}.seed-data-table__cell .seed-data-table-edit-picker{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);min-width:0}.seed-data-table__cell .seed-data-table-edit-pending{flex-shrink:0;color:var(--seed-color-fg-neutral-subtle);animation:rotate .6s linear infinite}.seed-data-table__cell .seed-data-table-edit-error{position:absolute;top:100%;inset-inline-start:var(--seed-dimension-x3);inset-inline-end:var(--seed-dimension-x3);z-index:2;padding-top:2px;font-size:12px;line-height:1.3;color:var(--seed-color-fg-critical);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__entity{display:flex;align-items:center;min-width:0;gap:var(--seed-dimension-x1_5)}.seed-data-table__entityName{min-width:0;font-weight:var(--seed-font-weight-medium);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__entityName[data-clickable]{cursor:pointer;border:none;background:0 0;padding:0;margin:0;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;text-align:start}.seed-data-table__entityName[data-clickable]:is(:hover,[data-hover]){text-decoration:underline}.seed-data-table__tagList{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);overflow:hidden;min-width:0}.seed-data-table__entityActions{display:flex;align-items:center;gap:6px;margin-inline-start:auto;flex-shrink:0;opacity:0;transition:opacity .15s}tr:hover .seed-data-table__entityActions{opacity:1}.seed-data-table__entityActions:focus-within{opacity:1}.seed-data-table__entityAction{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin:0;padding:2px;border:none;border-radius:6px;background:0 0;font-family:inherit;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent);cursor:pointer;flex-shrink:0;transition:background-color .2s,color .2s,box-shadow .2s}.seed-data-table__entityAction:hover{background:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__link{color:var(--seed-color-fg-neutral);text-decoration:none;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__link:is(:hover,[data-hover]){text-decoration:underline}.seed-data-table__chip{box-sizing:border-box;display:inline-flex;align-items:center;flex-shrink:0;max-width:100%;height:22px;padding:0 4px;border-radius:7px;font-size:13px;font-weight:var(--seed-font-weight-medium);line-height:15px;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__chipList{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:3px;overflow:hidden;min-width:0;width:100%}.seed-data-table__chipOverflow{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;height:20px;padding:0 4px;border-radius:6px;background-color:#f6f7f7;color:#000;font-size:10px;font-weight:var(--seed-font-weight-regular);line-height:15px;white-space:nowrap}.seed-data-table__chipListEditor{display:flex;align-items:center;flex-wrap:wrap;gap:3px;min-width:0;width:100%}.seed-data-table__chipRemove{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:12px;height:12px;margin:0;margin-inline-start:2px;padding:0;border:none;border-radius:999px;background:0 0;color:inherit;opacity:.6;cursor:pointer;transition:opacity .12s,background-color .12s}.seed-data-table__chipRemove:hover{opacity:1;background-color:rgba(0,0,0,.08)}.seed-data-table__chipInput{flex:1 1 auto;min-width:40px;height:22px;margin:0;padding:0;border:none;outline:0;background:0 0;font-family:inherit;font-size:var(--seed-font-size-t4);color:var(--seed-color-fg-neutral);letter-spacing:-.14px}.seed-data-table__expandOverlay{box-sizing:border-box;position:absolute;top:-1px;inset-inline-start:-1px;inset-inline-end:-1px;z-index:10;min-height:calc(100% + 2px);display:flex;align-items:flex-start;padding-inline:var(--seed-dimension-x3);padding-block:var(--seed-dimension-x3);background-color:var(--seed-color-bg-layer-floating);border-radius:4px;box-shadow:none;border:1px solid #266df0;color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);letter-spacing:-.14px;cursor:default}.seed-data-table__expandOverlayText{width:100%;min-width:0;white-space:normal;word-break:break-word}.seed-data-table__cellSuffixRow{display:flex;align-items:center;gap:4px;min-width:0;width:100%}.seed-data-table__cellSuffixText{flex:1 1 0%;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__cellSuffixIcon{flex-shrink:0;display:inline-flex;align-items:center;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent)}.seed-data-table__toolbar{box-sizing:border-box;display:flex;align-items:center;width:100%;flex-shrink:0;min-height:49px;gap:var(--seed-dimension-x2);padding-inline:var(--seed-dimension-x3);border-top:1px solid var(--seed-color-stroke-neutral-muted)}.seed-data-table__search{position:relative;display:inline-flex;align-items:center;flex:1 1 0%;max-width:280px}.seed-data-table__search svg{position:absolute;inset-inline-start:var(--seed-dimension-x2);width:var(--seed-dimension-x4);height:var(--seed-dimension-x4);color:var(--seed-color-fg-neutral-muted);pointer-events:none}.seed-data-table__search input{width:100%;height:var(--seed-dimension-x8);padding-inline-start:var(--seed-dimension-x7);padding-inline-end:var(--seed-dimension-x2);border:none;border-radius:var(--seed-radius-r2);background-color:var(--seed-color-bg-layer-default);box-shadow:inset 0 0 0 1px var(--seed-color-stroke-neutral-weak);font-family:inherit;font-size:var(--seed-font-size-t4);color:var(--seed-color-fg-neutral);outline:0;transition:box-shadow .1s var(--seed-timing-function-easing)}.seed-data-table__search input::placeholder{color:var(--seed-color-fg-neutral-subtle)}.seed-data-table__search input:focus{box-shadow:inset 0 0 0 2px var(--seed-color-stroke-neutral-contrast)}.seed-data-table__count{flex-shrink:0;color:var(--seed-color-fg-neutral-subtle);font-size:var(--seed-font-size-t3);font-variant-numeric:tabular-nums}.seed-data-table__toolbarEnd{flex-shrink:0;margin-inline-start:auto;display:inline-flex;align-items:center;gap:var(--seed-dimension-x2)}.seed-data-table__scrollArea{position:relative;display:flex;flex-direction:column;width:100%;min-width:0;flex:1 1 auto;min-height:0;overflow-x:auto;overflow-y:auto}.seed-data-table__scrollArea[data-scrolled-start] [data-sticky-edge]{clip-path:inset(0 -38px 0 0);box-shadow:6px 0 16px 4px rgba(0,0,0,.12)}.seed-data-table__scrollArea[data-scrolled-end] [data-sticky-edge-end]{clip-path:inset(0 0 0 -38px);box-shadow:-6px 0 16px 4px rgba(0,0,0,.12)}.seed-data-table__footerCell{box-sizing:border-box;position:sticky;bottom:0;z-index:2;vertical-align:middle;padding:0;height:var(--seed-dimension-x9);background-color:var(--seed-color-bg-layer-default);border-top:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-inline-start:none}.seed-data-table__footerCell:last-child{border-inline-end:none}.seed-data-table__footerCell .seed-data-table-column-calc-trigger{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);width:100%;height:100%;min-width:0;margin:0;padding:0 var(--seed-dimension-x3);border:none;background:0 0;color:var(--seed-color-fg-neutral-subtle);font-family:inherit;font-size:var(--seed-font-size-t4);font-weight:var(--seed-font-weight-medium);white-space:nowrap;overflow:clip;cursor:pointer;transition:background-color .12s,color .12s}.seed-data-table__footerCell .seed-data-table-column-calc-trigger:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__footerCell .seed-data-table-column-calc-trigger[data-align=right]{justify-content:flex-end}.seed-data-table__footerCell .seed-data-table-column-calc-trigger svg{flex-shrink:0;opacity:.7}.seed-data-table__footerCell .seed-data-table-column-calc-placeholder{overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__footerCell .seed-data-table-column-calc-value{min-width:0;flex-shrink:1;color:var(--seed-color-fg-neutral);font-variant-numeric:tabular-nums;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__footerCell .seed-data-table-column-calc-op{min-width:0;flex-shrink:1;color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__emptyState{box-sizing:border-box;text-align:center;padding-block:var(--seed-dimension-x8);padding-inline:var(--seed-dimension-x3);color:var(--seed-color-fg-neutral-subtle);font-size:var(--seed-font-size-t4)}.seed-data-table__loadingState{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:10px;padding-block:var(--seed-dimension-x8);padding-inline:var(--seed-dimension-x3);color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-medium)}.seed-data-table__loadingState[data-inline]{padding-block:0;padding-inline:0;height:var(--seed-dimension-x9)}.seed-data-table__loadingState .seed-data-table-loading-spinner{flex-shrink:0;color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);animation:rotate .6s linear infinite}.seed-data-table__addRowCell{box-sizing:border-box;padding:0;border-top:none}.seed-data-table__addRow{box-sizing:border-box;display:flex;align-items:center;width:100%;margin:0;border:none;border-top:1px solid var(--seed-color-stroke-neutral-muted);background-color:var(--seed-color-bg-layer-default);height:var(--seed-dimension-x9);gap:var(--seed-dimension-x2);padding-inline:var(--seed-dimension-x2);color:var(--seed-color-fg-neutral-subtle);font-family:inherit;font-size:var(--seed-font-size-t4);cursor:pointer;transition:background-color .12s,color .12s}.seed-data-table__addRow:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,var(--seed-color-bg-layer-default));color:var(--seed-color-fg-neutral)}.seed-data-table__addRow svg{flex-shrink:0}.seed-data-table__selectionCell{text-align:center;padding:0}.seed-data-table__bulkBar{box-sizing:border-box;position:absolute;inset-inline-start:50%;transform:translateX(-50%);bottom:var(--seed-dimension-x4);z-index:30;display:flex;align-items:center;gap:var(--seed-dimension-x3);min-height:36px;padding-inline:var(--seed-dimension-x3_5);padding-block:var(--seed-dimension-x2);border-radius:var(--seed-radius-full);box-shadow:var(--seed-shadow-s3);background-color:var(--seed-color-bg-layer-floating);color:var(--seed-color-fg-neutral);font-family:inherit;font-size:var(--seed-font-size-t4);font-weight:var(--seed-font-weight-medium);white-space:nowrap}.seed-data-table__bulkBarCount{flex-shrink:0;color:var(--seed-color-fg-neutral);font-variant-numeric:tabular-nums}.seed-data-table__bulkBarClear{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;margin:0;padding:2px;border:none;border-radius:6px;background:0 0;font-family:inherit;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent);cursor:pointer;transition:background-color .2s,color .2s}.seed-data-table__bulkBarClear:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 8%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__bulkBarActions{display:flex;align-items:center;flex-shrink:0;gap:var(--seed-dimension-x3);padding-inline-start:var(--seed-dimension-x3);border-inline-start:1px solid color-mix(in srgb,var(--seed-color-fg-neutral) 16%,transparent)}.seed-data-table__root--surface_card{border-color:var(--seed-color-stroke-neutral-muted);background-color:var(--seed-color-bg-layer-default);border-radius:var(--seed-radius-r3)}.seed-data-table__root--surface_bleed{border-color:var(--seed-color-bg-transparent);background-color:var(--seed-color-bg-transparent)}.seed-data-table__row--interactive_true{transition:background-color .12s}.seed-data-table__row--interactive_true:is(:hover,[data-hover]){background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 3%,transparent);--seed-data-table-row-bg:color-mix(in srgb, var(--seed-color-fg-neutral) 3%, var(--seed-color-bg-layer-default))}");
|
|
4123
|
+
__insertCSS(".seed-data-table__root{box-sizing:border-box;position:relative;display:flex;flex-direction:column;width:100%;border-width:1px;border-style:solid;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}.seed-data-table__table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.seed-data-table__headerCell{box-sizing:border-box;position:sticky;top:0;z-index:2;vertical-align:middle;text-align:start;padding:0;height:var(--seed-dimension-x10);background-color:var(--seed-color-bg-layer-default);border-top:1px solid var(--seed-color-stroke-neutral-muted);border-bottom:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-inline-start:none;color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-medium);letter-spacing:-.14px}.seed-data-table__headerCell:last-child{border-inline-end:none}.seed-data-table__headerCell[data-sortable]{cursor:pointer;user-select:none}.seed-data-table__headerCell [data-chevron]{opacity:0;transition:opacity .12s}.seed-data-table__headerCell[data-sortable]:hover [data-chevron]{opacity:.6}.seed-data-table__headerCell[data-sorted] [data-chevron]{opacity:1;color:var(--seed-color-fg-neutral)}.seed-data-table__headerCell:hover [data-column-menu]{opacity:1}.seed-data-table__headerCell [data-column-menu]:focus-visible,.seed-data-table__headerCell [data-column-menu][data-open]{opacity:1}.seed-data-table__headerCell[data-dragging]{opacity:.5}.seed-data-table__headerCell[data-sticky]{position:sticky;z-index:3;background-color:var(--seed-color-bg-layer-default)}.seed-data-table__headerCell{outline:var(--seed-dimension-x0_5) solid transparent;outline-offset:calc(var(--seed-dimension-x0_5) * -1)}.seed-data-table__headerCell:is(:focus-visible,[data-focus-visible]){outline:var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);outline-offset:calc(var(--seed-dimension-x0_5) * -1)}.seed-data-table__headerCell .seed-data-table-resize-handle{position:absolute;top:0;inset-inline-end:calc(7px / -2);width:7px;height:100%;z-index:4;display:flex;align-items:center;justify-content:center;cursor:col-resize;touch-action:none}.seed-data-table__headerCell .seed-data-table-resize-handle-inner{width:3px;height:100%;border-radius:3px;background-color:#0298d9;opacity:0;transition:opacity .1s}.seed-data-table__headerCell .seed-data-table-resize-handle:hover .seed-data-table-resize-handle-inner,.seed-data-table__headerCell .seed-data-table-resize-handle[data-resizing] .seed-data-table-resize-handle-inner{opacity:1}.seed-data-table__headerCellInner{box-sizing:border-box;display:flex;align-items:center;width:100%;height:100%;min-width:0;gap:var(--seed-dimension-x1_5);padding-inline:var(--seed-dimension-x3)}.seed-data-table__headerCellLabel{min-width:0;flex:1 1 0%;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__headerCellIcon{flex-shrink:0;margin-inline-start:auto;display:inline-flex;align-items:center;justify-content:center;width:var(--seed-dimension-x4);height:var(--seed-dimension-x4);color:var(--seed-color-fg-neutral-subtle);border:none;background:0 0;padding:0;font:inherit;cursor:pointer}.seed-data-table__headerCellIcon[data-active]{color:var(--seed-color-fg-neutral)}.seed-data-table__headerCellIcon[data-column-menu]{opacity:0;transition:opacity .12s}.seed-data-table__row{position:relative;background-color:var(--seed-color-bg-layer-default);--seed-data-table-row-bg:var(--seed-color-bg-layer-default)}.seed-data-table__row[data-clickable]{cursor:pointer}.seed-data-table__row:is([aria-selected=true],[data-selected]){background-color:color-mix(in srgb,#0298d9 10%,var(--seed-color-bg-layer-default));--seed-data-table-row-bg:color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default))}.seed-data-table__row:is([aria-selected=true],[data-selected]):is(:hover,[data-hover]){background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 3%,color-mix(in srgb,#0298d9 10%,var(--seed-color-bg-layer-default)));--seed-data-table-row-bg:color-mix(in srgb, var(--seed-color-fg-neutral) 3%, color-mix(in srgb, #0298d9 10%, var(--seed-color-bg-layer-default)))}.seed-data-table__cell{box-sizing:border-box;position:relative;vertical-align:middle;text-align:start;height:var(--seed-dimension-x9);border-bottom:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-top:none;border-inline-start:none;padding-block:0;padding-inline:var(--seed-dimension-x3);color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-regular);letter-spacing:-.14px;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__cell:not([data-editable]){user-select:none}.seed-data-table__cell:last-child{border-inline-end:none}tbody tr:last-child .seed-data-table__cell{border-bottom:none}.seed-data-table__cell[data-numeric]{text-align:end;font-variant-numeric:tabular-nums}.seed-data-table__cell[data-sticky]{position:sticky;z-index:1;background-color:var(--seed-data-table-row-bg)}.seed-data-table__cell[data-overlay-open]{overflow:visible;z-index:20}.seed-data-table__cell[data-editable]{cursor:default}.seed-data-table__cell .seed-data-table-edit-picker{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);min-width:0}.seed-data-table__cell .seed-data-table-edit-pending{flex-shrink:0;color:var(--seed-color-fg-neutral-subtle);animation:rotate .6s linear infinite}.seed-data-table__cell .seed-data-table-edit-error{position:absolute;top:100%;inset-inline-start:var(--seed-dimension-x3);inset-inline-end:var(--seed-dimension-x3);z-index:2;padding-top:2px;font-size:12px;line-height:1.3;color:var(--seed-color-fg-critical);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__entity{display:flex;align-items:center;min-width:0;gap:var(--seed-dimension-x1_5)}.seed-data-table__entityName{min-width:0;font-weight:var(--seed-font-weight-medium);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__entityName[data-clickable]{cursor:pointer;border:none;background:0 0;padding:0;margin:0;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;text-align:start}.seed-data-table__entityName[data-clickable]:is(:hover,[data-hover]){text-decoration:underline}.seed-data-table__tagList{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);overflow:hidden;min-width:0}.seed-data-table__entityActions{display:flex;align-items:center;gap:6px;margin-inline-start:auto;flex-shrink:0;opacity:0;transition:opacity .15s}tr:hover .seed-data-table__entityActions{opacity:1}.seed-data-table__entityActions:focus-within{opacity:1}.seed-data-table__entityAction{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin:0;padding:2px;border:none;border-radius:6px;background:0 0;font-family:inherit;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent);cursor:pointer;flex-shrink:0;transition:background-color .2s,color .2s,box-shadow .2s}.seed-data-table__entityAction:hover{background:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__link{color:var(--seed-color-fg-neutral);text-decoration:none;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__link:is(:hover,[data-hover]){text-decoration:underline}.seed-data-table__chip{box-sizing:border-box;display:inline-flex;align-items:center;flex-shrink:0;max-width:100%;height:22px;padding:0 4px;border-radius:7px;font-size:13px;font-weight:var(--seed-font-weight-medium);line-height:15px;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__chipList{position:relative;display:flex;align-items:center;flex-wrap:nowrap;gap:3px;overflow:hidden;min-width:0;width:100%}.seed-data-table__chipOverflow{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;height:20px;padding:0 4px;border-radius:6px;background-color:#f6f7f7;color:#000;font-size:10px;font-weight:var(--seed-font-weight-regular);line-height:15px;white-space:nowrap}.seed-data-table__chipListEditor{display:flex;align-items:center;flex-wrap:wrap;gap:3px;min-width:0;width:100%}.seed-data-table__chipRemove{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:12px;height:12px;margin:0;margin-inline-start:2px;padding:0;border:none;border-radius:999px;background:0 0;color:inherit;opacity:.6;cursor:pointer;transition:opacity .12s,background-color .12s}.seed-data-table__chipRemove:hover{opacity:1;background-color:rgba(0,0,0,.08)}.seed-data-table__chipInput{flex:1 1 auto;min-width:40px;height:22px;margin:0;padding:0;border:none;outline:0;background:0 0;font-family:inherit;font-size:var(--seed-font-size-t4);color:var(--seed-color-fg-neutral);letter-spacing:-.14px}.seed-data-table__expandOverlay{box-sizing:border-box;position:absolute;top:-1px;inset-inline-start:-1px;inset-inline-end:-1px;z-index:10;min-height:calc(100% + 2px);display:flex;align-items:flex-start;padding-inline:var(--seed-dimension-x3);padding-block:var(--seed-dimension-x3);background-color:var(--seed-color-bg-layer-floating);border-radius:4px;box-shadow:none;border:1px solid #266df0;color:var(--seed-color-fg-neutral);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);letter-spacing:-.14px;cursor:default}.seed-data-table__expandOverlayText{width:100%;min-width:0;white-space:normal;word-break:break-word}.seed-data-table__cellSuffixRow{display:flex;align-items:center;gap:4px;min-width:0;width:100%}.seed-data-table__cellSuffixText{flex:1 1 0%;min-width:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__cellSuffixIcon{flex-shrink:0;display:inline-flex;align-items:center;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent)}.seed-data-table__toolbar{box-sizing:border-box;display:flex;align-items:center;width:100%;flex-shrink:0;min-height:49px;gap:var(--seed-dimension-x2);padding-inline:var(--seed-dimension-x3);border-top:1px solid var(--seed-color-stroke-neutral-muted)}.seed-data-table__search{position:relative;display:inline-flex;align-items:center;flex:1 1 0%;max-width:280px}.seed-data-table__search svg{position:absolute;inset-inline-start:var(--seed-dimension-x2);width:var(--seed-dimension-x4);height:var(--seed-dimension-x4);color:var(--seed-color-fg-neutral-muted);pointer-events:none}.seed-data-table__search input{width:100%;height:var(--seed-dimension-x8);padding-inline-start:var(--seed-dimension-x7);padding-inline-end:var(--seed-dimension-x2);border:none;border-radius:var(--seed-radius-r2);background-color:var(--seed-color-bg-layer-default);box-shadow:inset 0 0 0 1px var(--seed-color-stroke-neutral-weak);font-family:inherit;font-size:var(--seed-font-size-t4);color:var(--seed-color-fg-neutral);outline:0;transition:box-shadow .1s var(--seed-timing-function-easing)}.seed-data-table__search input::placeholder{color:var(--seed-color-fg-neutral-subtle)}.seed-data-table__search input:focus{box-shadow:inset 0 0 0 2px var(--seed-color-stroke-neutral-contrast)}.seed-data-table__count{flex-shrink:0;color:var(--seed-color-fg-neutral-subtle);font-size:var(--seed-font-size-t3);font-variant-numeric:tabular-nums}.seed-data-table__toolbarEnd{flex-shrink:0;margin-inline-start:auto;display:inline-flex;align-items:center;gap:var(--seed-dimension-x2)}.seed-data-table__scrollArea{position:relative;display:flex;flex-direction:column;width:100%;min-width:0;flex:1 1 auto;min-height:0;overflow-x:auto;overflow-y:auto}.seed-data-table__scrollArea[data-scrolled-start] [data-sticky-edge]{clip-path:inset(0 -38px 0 0);box-shadow:6px 0 16px 4px rgba(0,0,0,.12)}.seed-data-table__scrollArea[data-scrolled-end] [data-sticky-edge-end]{clip-path:inset(0 0 0 -38px);box-shadow:-6px 0 16px 4px rgba(0,0,0,.12)}.seed-data-table__footerCell{box-sizing:border-box;position:sticky;bottom:0;z-index:2;vertical-align:middle;padding:0;height:var(--seed-dimension-x9);background-color:var(--seed-color-bg-layer-default);border-top:1px solid var(--seed-color-stroke-neutral-muted);border-inline-end:1px solid var(--seed-color-stroke-neutral-muted);border-inline-start:none}.seed-data-table__footerCell:last-child{border-inline-end:none}.seed-data-table__footerCell[data-sticky]{z-index:3}.seed-data-table__footerCell .seed-data-table-column-calc-trigger{display:flex;align-items:center;gap:var(--seed-dimension-x1_5);width:100%;height:100%;min-width:0;margin:0;padding:0 var(--seed-dimension-x3);border:none;background:0 0;color:var(--seed-color-fg-neutral-subtle);font-family:inherit;font-size:var(--seed-font-size-t4);font-weight:var(--seed-font-weight-medium);white-space:nowrap;overflow:clip;cursor:pointer;transition:background-color .12s,color .12s}.seed-data-table__footerCell .seed-data-table-column-calc-trigger:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__footerCell .seed-data-table-column-calc-trigger[data-align=right]{justify-content:flex-end}.seed-data-table__footerCell .seed-data-table-column-calc-trigger svg{flex-shrink:0;opacity:.7}.seed-data-table__footerCell .seed-data-table-column-calc-placeholder{overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__footerCell .seed-data-table-column-calc-value{min-width:0;flex-shrink:1;color:var(--seed-color-fg-neutral);font-variant-numeric:tabular-nums;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__footerCell .seed-data-table-column-calc-op{min-width:0;flex-shrink:1;color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);overflow:clip;text-overflow:ellipsis;white-space:nowrap}.seed-data-table__emptyState{box-sizing:border-box;text-align:center;padding-block:var(--seed-dimension-x8);padding-inline:var(--seed-dimension-x3);color:var(--seed-color-fg-neutral-subtle);font-size:var(--seed-font-size-t4)}.seed-data-table__loadingState{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:10px;padding-block:var(--seed-dimension-x8);padding-inline:var(--seed-dimension-x3);color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);font-size:var(--seed-font-size-t4);line-height:var(--seed-line-height-t4);font-weight:var(--seed-font-weight-medium)}.seed-data-table__loadingState[data-inline]{padding-block:0;padding-inline:0;height:var(--seed-dimension-x9)}.seed-data-table__loadingState .seed-data-table-loading-spinner{flex-shrink:0;color:color-mix(in srgb,var(--seed-color-fg-neutral) 63%,transparent);animation:rotate .6s linear infinite}.seed-data-table__addRowCell{box-sizing:border-box;padding:0;border-top:none}.seed-data-table__addRow{box-sizing:border-box;display:flex;align-items:center;width:100%;margin:0;border:none;border-top:1px solid var(--seed-color-stroke-neutral-muted);background-color:var(--seed-color-bg-layer-default);height:var(--seed-dimension-x9);gap:var(--seed-dimension-x2);padding-inline:var(--seed-dimension-x2);color:var(--seed-color-fg-neutral-subtle);font-family:inherit;font-size:var(--seed-font-size-t4);cursor:pointer;transition:background-color .12s,color .12s}.seed-data-table__addRow:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 4%,var(--seed-color-bg-layer-default));color:var(--seed-color-fg-neutral)}.seed-data-table__addRow svg{flex-shrink:0}.seed-data-table__selectionCell{text-align:center;padding:0}.seed-data-table__bulkBar{box-sizing:border-box;position:absolute;inset-inline-start:50%;transform:translateX(-50%);bottom:var(--seed-dimension-x4);z-index:30;display:flex;align-items:center;gap:var(--seed-dimension-x3);min-height:36px;padding-inline:var(--seed-dimension-x3_5);padding-block:var(--seed-dimension-x2);border-radius:var(--seed-radius-full);box-shadow:var(--seed-shadow-s3);background-color:var(--seed-color-bg-layer-floating);color:var(--seed-color-fg-neutral);font-family:inherit;font-size:var(--seed-font-size-t4);font-weight:var(--seed-font-weight-medium);white-space:nowrap}.seed-data-table__bulkBar[data-above-footer]{bottom:calc(var(--seed-dimension-x4) + var(--seed-dimension-x9))}.seed-data-table__bulkBarCount{flex-shrink:0;color:var(--seed-color-fg-neutral);font-variant-numeric:tabular-nums}.seed-data-table__bulkBarClear{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;margin:0;padding:2px;border:none;border-radius:6px;background:0 0;font-family:inherit;color:color-mix(in srgb,var(--seed-color-fg-neutral) 55%,transparent);cursor:pointer;transition:background-color .2s,color .2s}.seed-data-table__bulkBarClear:hover{background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 8%,transparent);color:var(--seed-color-fg-neutral)}.seed-data-table__bulkBarActions{display:flex;align-items:center;flex-shrink:0;gap:var(--seed-dimension-x3);padding-inline-start:var(--seed-dimension-x3);border-inline-start:1px solid color-mix(in srgb,var(--seed-color-fg-neutral) 16%,transparent)}.seed-data-table__root--surface_card{border-color:var(--seed-color-stroke-neutral-muted);background-color:var(--seed-color-bg-layer-default);border-radius:var(--seed-radius-r3)}.seed-data-table__root--surface_bleed{border-color:var(--seed-color-bg-transparent);background-color:var(--seed-color-bg-transparent)}.seed-data-table__row--interactive_true{transition:background-color .12s}.seed-data-table__row--interactive_true:is(:hover,[data-hover]){background-color:color-mix(in srgb,var(--seed-color-fg-neutral) 3%,transparent);--seed-data-table-row-bg:color-mix(in srgb, var(--seed-color-fg-neutral) 3%, var(--seed-color-bg-layer-default))}");
|
|
4111
4124
|
|
|
4112
4125
|
const createClassName = (className, variants, compoundVariants = [])=>{
|
|
4113
4126
|
const variantKeys = Object.keys(variants);
|
|
@@ -4461,6 +4474,10 @@ const { ClassNamesProvider, withContext: withContext$1, useClassNames } = create
|
|
|
4461
4474
|
});
|
|
4462
4475
|
}
|
|
4463
4476
|
|
|
4477
|
+
/** Attribute on the floating-ui-portaled option list of the `select`/`reference`/`actor`
|
|
4478
|
+
* editors. The portal lands in `document.body`, outside the cell and its expand overlay,
|
|
4479
|
+
* so `body-cells.tsx`'s outside-click detector checks for this marker to avoid reading an
|
|
4480
|
+
* option click as "outside" and cancelling the edit before it commits. */ const EDITOR_PORTAL_ATTR = "data-datatable-editor-portal";
|
|
4464
4481
|
/** The raw value a live editor reads, distinct from `DataTableColumn.value` (the
|
|
4465
4482
|
* accessor sort/search/filter/export share): `editValue` returns whatever TYPE the
|
|
4466
4483
|
* editor itself expects -- a real `boolean` for `editor: "switch"`/`type:
|
|
@@ -4609,6 +4626,7 @@ function SelectEditor({ column, value, pending, onCommit, onCancel }) {
|
|
|
4609
4626
|
]
|
|
4610
4627
|
}),
|
|
4611
4628
|
/*#__PURE__*/ jsx(SelectPositioner, {
|
|
4629
|
+
[EDITOR_PORTAL_ATTR]: "",
|
|
4612
4630
|
children: /*#__PURE__*/ jsxs(SelectContent, {
|
|
4613
4631
|
children: [
|
|
4614
4632
|
searchable && /*#__PURE__*/ jsx(SelectSearchField, {
|
|
@@ -4684,6 +4702,7 @@ function ReferenceEditor({ column, value, pending, onCommit, onCancel }) {
|
|
|
4684
4702
|
]
|
|
4685
4703
|
}),
|
|
4686
4704
|
/*#__PURE__*/ jsx(SelectPositioner, {
|
|
4705
|
+
[EDITOR_PORTAL_ATTR]: "",
|
|
4687
4706
|
children: /*#__PURE__*/ jsxs(SelectContent, {
|
|
4688
4707
|
children: [
|
|
4689
4708
|
/*#__PURE__*/ jsx(SelectSearchField, {
|
|
@@ -5299,8 +5318,14 @@ function ColumnBodyCells({ columns, row, classNames, locale, selectable, stickyF
|
|
|
5299
5318
|
function isInside(target) {
|
|
5300
5319
|
return (cellRef.current?.contains(target) ?? false) || (popoverRef.current?.contains(target) ?? false) || (expandOverlayRef.current?.contains(target) ?? false);
|
|
5301
5320
|
}
|
|
5321
|
+
// The select/reference/actor editor's option list is portaled to `document.body` by
|
|
5322
|
+
// floating-ui, outside both `cellRef` and `expandOverlayRef`; `editors.tsx` marks its
|
|
5323
|
+
// positioner with `EDITOR_PORTAL_ATTR`, so a click on an option is not an outside click.
|
|
5324
|
+
function isInsideEditorPortal(target) {
|
|
5325
|
+
return target instanceof Element && target.closest(`[${EDITOR_PORTAL_ATTR}]`) != null;
|
|
5326
|
+
}
|
|
5302
5327
|
function handlePointerDown(event) {
|
|
5303
|
-
if (!isInside(event.target)) {
|
|
5328
|
+
if (!isInside(event.target) && !isInsideEditorPortal(event.target)) {
|
|
5304
5329
|
setOverlayOpen(false);
|
|
5305
5330
|
setPopoverStyle(null);
|
|
5306
5331
|
closePeek();
|
|
@@ -5639,13 +5664,14 @@ const DataTableBulkBarClear = withContext$1(Primitive.button, "bulkBarClear");
|
|
|
5639
5664
|
* exactly this reason -- see `data-table.ts`'s own `bulkBar` slot comment for why its
|
|
5640
5665
|
* geometry borrows `contextual-floating-button`'s already-measured vars rather than a
|
|
5641
5666
|
* guessed literal.
|
|
5642
|
-
*/ function DataTableBulkBar({ clearLabel = "Clear selection", children }) {
|
|
5667
|
+
*/ function DataTableBulkBar({ clearLabel = "Clear selection", aboveFooter, children }) {
|
|
5643
5668
|
const { selectedIds, clearSelection } = useDataTableContext();
|
|
5644
5669
|
if (selectedIds.length === 0) return null;
|
|
5645
5670
|
return /*#__PURE__*/ jsxs(DataTableBulkBarRoot, {
|
|
5646
5671
|
role: "toolbar",
|
|
5647
5672
|
"aria-label": "Bulk actions",
|
|
5648
5673
|
"aria-orientation": "horizontal",
|
|
5674
|
+
"data-above-footer": aboveFooter ? "" : undefined,
|
|
5649
5675
|
children: [
|
|
5650
5676
|
/*#__PURE__*/ jsxs(DataTableBulkBarCount, {
|
|
5651
5677
|
"aria-live": "polite",
|
|
@@ -5905,7 +5931,11 @@ const DEFAULT_SORT_ICON = {
|
|
|
5905
5931
|
* component (not inlined in `DataTableInner`'s render) so it alone re-renders when
|
|
5906
5932
|
* `visibleColumnOrder`/labels/widths change, without also re-deriving `sortedData`'s
|
|
5907
5933
|
* render above it. */ function ColumnHeaderCells({ columns, columnMenu, reorderable, resizable, sortIcon, selectable, stickyFirst, stickyLast }) {
|
|
5908
|
-
const { draggingColumnKey, beginColumnDrag, dragOverColumn, endColumnDrag } = useDataTableContext();
|
|
5934
|
+
const { draggingColumnKey, beginColumnDrag, dragOverColumn, endColumnDrag, visibleColumnOrder } = useDataTableContext();
|
|
5935
|
+
// Move left/right operate on the visible order, but never across the `actions`
|
|
5936
|
+
// column (the raw order re-pins it last, so a move onto/past it is a silent no-op).
|
|
5937
|
+
const actionsKey = columns.find((column)=>column.actions)?.key;
|
|
5938
|
+
const movableKeys = visibleColumnOrder.filter((key)=>key !== actionsKey);
|
|
5909
5939
|
const effective = useEffectiveColumns(columns, {
|
|
5910
5940
|
selectable,
|
|
5911
5941
|
stickyFirst
|
|
@@ -5953,6 +5983,8 @@ const DEFAULT_SORT_ICON = {
|
|
|
5953
5983
|
columnMenu && /*#__PURE__*/ jsx(ColumnMenu, {
|
|
5954
5984
|
column: column,
|
|
5955
5985
|
label: label,
|
|
5986
|
+
canMoveLeft: movableKeys.indexOf(column.key) > 0,
|
|
5987
|
+
canMoveRight: movableKeys.indexOf(column.key) !== -1 && movableKeys.indexOf(column.key) < movableKeys.length - 1,
|
|
5956
5988
|
onRename: ()=>setRenamingKey(column.key)
|
|
5957
5989
|
})
|
|
5958
5990
|
]
|
|
@@ -6044,8 +6076,8 @@ function ColumnRenameInput({ column, initialLabel, onDone }) {
|
|
|
6044
6076
|
* `data-table.ts`) -- crisp's own header shows the trigger only on hover, not
|
|
6045
6077
|
* permanently, so this one carries its own marker attribute distinct from that
|
|
6046
6078
|
* slot's OTHER occupants (the sort chevron, the filter trigger), which stay visible
|
|
6047
|
-
* under their own separate rules regardless of hover. */ function ColumnMenu({ column, label, onRename }) {
|
|
6048
|
-
const { moveColumn, hideColumn, isColumnPinned, togglePinColumn, sort, clearSort } = useDataTableContext();
|
|
6079
|
+
* under their own separate rules regardless of hover. */ function ColumnMenu({ column, label, canMoveLeft, canMoveRight, onRename }) {
|
|
6080
|
+
const { moveColumn, hideColumn, isColumnPinned, togglePinColumn, sort, setSort, clearSort } = useDataTableContext();
|
|
6049
6081
|
const columnLabel = typeof label === "string" ? label : column.key;
|
|
6050
6082
|
const pinned = isColumnPinned(column.key);
|
|
6051
6083
|
// Attio/GRC's "Remove sort" (live-review fix D) -- the header's own click-to-sort
|
|
@@ -6096,40 +6128,68 @@ function ColumnRenameInput({ column, initialLabel, onDone }) {
|
|
|
6096
6128
|
},
|
|
6097
6129
|
children: /*#__PURE__*/ jsxs(MenuScrollArea, {
|
|
6098
6130
|
children: [
|
|
6099
|
-
/*#__PURE__*/
|
|
6100
|
-
|
|
6101
|
-
|
|
6102
|
-
|
|
6103
|
-
|
|
6131
|
+
column.sortable && /*#__PURE__*/ jsxs(Fragment, {
|
|
6132
|
+
children: [
|
|
6133
|
+
/*#__PURE__*/ jsx(MenuItem, {
|
|
6134
|
+
role: "menuitemradio",
|
|
6135
|
+
"aria-checked": isSorted && sort?.dir === "asc",
|
|
6136
|
+
onClick: ()=>setSort({
|
|
6137
|
+
key: column.key,
|
|
6138
|
+
dir: "asc"
|
|
6139
|
+
}),
|
|
6140
|
+
children: /*#__PURE__*/ jsx(MenuItemLabel, {
|
|
6141
|
+
children: "Sort ascending"
|
|
6142
|
+
})
|
|
6143
|
+
}),
|
|
6144
|
+
/*#__PURE__*/ jsx(MenuItem, {
|
|
6145
|
+
role: "menuitemradio",
|
|
6146
|
+
"aria-checked": isSorted && sort?.dir === "desc",
|
|
6147
|
+
onClick: ()=>setSort({
|
|
6148
|
+
key: column.key,
|
|
6149
|
+
dir: "desc"
|
|
6150
|
+
}),
|
|
6151
|
+
children: /*#__PURE__*/ jsx(MenuItemLabel, {
|
|
6152
|
+
children: "Sort descending"
|
|
6153
|
+
})
|
|
6154
|
+
}),
|
|
6155
|
+
isSorted && /*#__PURE__*/ jsx(MenuItem, {
|
|
6156
|
+
onClick: clearSort,
|
|
6157
|
+
children: /*#__PURE__*/ jsx(MenuItemLabel, {
|
|
6158
|
+
children: "Clear sort"
|
|
6159
|
+
})
|
|
6160
|
+
})
|
|
6161
|
+
]
|
|
6104
6162
|
}),
|
|
6105
6163
|
/*#__PURE__*/ jsx(MenuItem, {
|
|
6164
|
+
disabled: !canMoveLeft,
|
|
6106
6165
|
onClick: ()=>moveColumn(column.key, "left"),
|
|
6107
6166
|
children: /*#__PURE__*/ jsx(MenuItemLabel, {
|
|
6108
6167
|
children: "Move left"
|
|
6109
6168
|
})
|
|
6110
6169
|
}),
|
|
6111
6170
|
/*#__PURE__*/ jsx(MenuItem, {
|
|
6171
|
+
disabled: !canMoveRight,
|
|
6112
6172
|
onClick: ()=>moveColumn(column.key, "right"),
|
|
6113
6173
|
children: /*#__PURE__*/ jsx(MenuItemLabel, {
|
|
6114
6174
|
children: "Move right"
|
|
6115
6175
|
})
|
|
6116
6176
|
}),
|
|
6117
|
-
|
|
6118
|
-
onClick:
|
|
6177
|
+
/*#__PURE__*/ jsx(MenuItem, {
|
|
6178
|
+
onClick: ()=>togglePinColumn(column.key),
|
|
6119
6179
|
children: /*#__PURE__*/ jsx(MenuItemLabel, {
|
|
6120
|
-
children: "
|
|
6180
|
+
children: pinned ? "Unpin column" : "Pin column"
|
|
6121
6181
|
})
|
|
6122
6182
|
}),
|
|
6123
6183
|
/*#__PURE__*/ jsx(MenuItem, {
|
|
6124
|
-
onClick:
|
|
6184
|
+
onClick: onRename,
|
|
6125
6185
|
children: /*#__PURE__*/ jsx(MenuItemLabel, {
|
|
6126
|
-
children:
|
|
6186
|
+
children: "Edit column label"
|
|
6127
6187
|
})
|
|
6128
6188
|
}),
|
|
6129
6189
|
/*#__PURE__*/ jsx(MenuItem, {
|
|
6130
6190
|
onClick: ()=>hideColumn(column.key),
|
|
6131
6191
|
children: /*#__PURE__*/ jsx(MenuItemLabel, {
|
|
6132
|
-
children: "Hide
|
|
6192
|
+
children: "Hide from view"
|
|
6133
6193
|
})
|
|
6134
6194
|
})
|
|
6135
6195
|
]
|
|
@@ -11174,7 +11234,13 @@ const toDateOrNull = (v)=>{
|
|
|
11174
11234
|
return f.op === "before" ? d < cd : d > cd;
|
|
11175
11235
|
}
|
|
11176
11236
|
const t = asText(raw).toLowerCase();
|
|
11177
|
-
if (f.op === "isanyof")
|
|
11237
|
+
if (f.op === "isanyof") {
|
|
11238
|
+
const wanted = (f.values ?? []).map((v)=>v.toLowerCase());
|
|
11239
|
+
const cells = Array.isArray(raw) ? raw.map((x)=>asText(x).toLowerCase()) : [
|
|
11240
|
+
t
|
|
11241
|
+
];
|
|
11242
|
+
return cells.some((c)=>wanted.includes(c));
|
|
11243
|
+
}
|
|
11178
11244
|
const v = f.value.trim().toLowerCase();
|
|
11179
11245
|
if (f.op === "contains") return t.includes(v);
|
|
11180
11246
|
if (f.op === "doesnotcontain") return !t.includes(v);
|
|
@@ -12167,6 +12233,7 @@ function DataTableInner(props, ref) {
|
|
|
12167
12233
|
}),
|
|
12168
12234
|
selectable && /*#__PURE__*/ jsx(DataTableBulkBar, {
|
|
12169
12235
|
clearLabel: clearSelectionLabel,
|
|
12236
|
+
aboveFooter: showFooter || !!onAddRow,
|
|
12170
12237
|
children: bulkActions
|
|
12171
12238
|
})
|
|
12172
12239
|
]
|
package/dist/styles.css
CHANGED
|
@@ -5262,6 +5262,10 @@ tr:hover .seed-data-table__entityActions, .seed-data-table__entityActions:focus-
|
|
|
5262
5262
|
border-inline-end: none;
|
|
5263
5263
|
}
|
|
5264
5264
|
|
|
5265
|
+
.seed-data-table__footerCell[data-sticky] {
|
|
5266
|
+
z-index: 3;
|
|
5267
|
+
}
|
|
5268
|
+
|
|
5265
5269
|
.seed-data-table__footerCell .seed-data-table-column-calc-trigger {
|
|
5266
5270
|
align-items: center;
|
|
5267
5271
|
gap: var(--seed-dimension-x1_5);
|
|
@@ -5419,6 +5423,10 @@ tr:hover .seed-data-table__entityActions, .seed-data-table__entityActions:focus-
|
|
|
5419
5423
|
transform: translateX(-50%);
|
|
5420
5424
|
}
|
|
5421
5425
|
|
|
5426
|
+
.seed-data-table__bulkBar[data-above-footer] {
|
|
5427
|
+
bottom: calc(var(--seed-dimension-x4) + var(--seed-dimension-x9));
|
|
5428
|
+
}
|
|
5429
|
+
|
|
5422
5430
|
.seed-data-table__bulkBarCount {
|
|
5423
5431
|
color: var(--seed-color-fg-neutral);
|
|
5424
5432
|
font-variant-numeric: tabular-nums;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crispy-seed/data-table",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Self-contained, publishable build of seed-design's Attio-measured DataTable, ResizablePanel and RecordPreview — one install, one CSS import.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|