@ai-matrx/design-system 0.32.0 → 0.35.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/CHANGELOG.md +62 -0
- package/dist/content-transfer.cjs +3 -1
- package/dist/content-transfer.cjs.map +1 -1
- package/dist/content-transfer.js +3 -1
- package/dist/content-transfer.js.map +1 -1
- package/dist/data-table/copy-helpers.d.cts +1 -1
- package/dist/data-table/copy-helpers.d.ts +1 -1
- package/dist/data-table/data-row-inspector.cjs +3 -1
- package/dist/data-table/data-row-inspector.cjs.map +1 -1
- package/dist/data-table/data-row-inspector.js +3 -1
- package/dist/data-table/data-row-inspector.js.map +1 -1
- package/dist/data-table/data-row-window.cjs +3 -1
- package/dist/data-table/data-row-window.cjs.map +1 -1
- package/dist/data-table/data-row-window.js +3 -1
- package/dist/data-table/data-row-window.js.map +1 -1
- package/dist/data-table/filter-engine.d.cts +1 -1
- package/dist/data-table/filter-engine.d.ts +1 -1
- package/dist/data-table/host.d.cts +1 -1
- package/dist/data-table/host.d.ts +1 -1
- package/dist/data-table/index.cjs +95 -34
- package/dist/data-table/index.cjs.map +1 -1
- package/dist/data-table/index.d.cts +2 -2
- package/dist/data-table/index.d.ts +2 -2
- package/dist/data-table/index.js +95 -34
- package/dist/data-table/index.js.map +1 -1
- package/dist/data-table/infer-filter.d.cts +1 -1
- package/dist/data-table/infer-filter.d.ts +1 -1
- package/dist/data-table/layered-filters.d.cts +1 -1
- package/dist/data-table/layered-filters.d.ts +1 -1
- package/dist/data-table/query-control.d.cts +1 -1
- package/dist/data-table/query-control.d.ts +1 -1
- package/dist/data-table/types.cjs.map +1 -1
- package/dist/data-table/types.d.cts +1 -1
- package/dist/data-table/types.d.ts +1 -1
- package/dist/data-table/url-state.d.cts +1 -1
- package/dist/data-table/url-state.d.ts +1 -1
- package/dist/data-table/xlsx.d.cts +1 -1
- package/dist/data-table/xlsx.d.ts +1 -1
- package/dist/index.cjs +33 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +28 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +33 -4
- package/dist/index.js.map +1 -1
- package/dist/{types-CFmCZXVn.d.ts → types-Cxm5XK0L.d.ts} +25 -7
- package/dist/{types-CYkwg9jR.d.cts → types-kiV-CAuZ.d.cts} +25 -7
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as MatrxColumnDef, C as ColumnFiltersState, S as SortState, L as LayeredFilterRule, T as TableSearchMatchMode, a as ColumnFilterValue } from '../types-
|
|
1
|
+
import { M as MatrxColumnDef, C as ColumnFiltersState, S as SortState, L as LayeredFilterRule, T as TableSearchMatchMode, a as ColumnFilterValue } from '../types-kiV-CAuZ.cjs';
|
|
2
2
|
import '../content-transfer.cjs';
|
|
3
3
|
import 'react';
|
|
4
4
|
import '@ai-matrx/kit/content-transfer';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as MatrxColumnDef, C as ColumnFiltersState, S as SortState, L as LayeredFilterRule, T as TableSearchMatchMode, a as ColumnFilterValue } from '../types-
|
|
1
|
+
import { M as MatrxColumnDef, C as ColumnFiltersState, S as SortState, L as LayeredFilterRule, T as TableSearchMatchMode, a as ColumnFilterValue } from '../types-Cxm5XK0L.js';
|
|
2
2
|
import '../content-transfer.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import '@ai-matrx/kit/content-transfer';
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { ComponentType, ReactNode, MouseEventHandler } from 'react';
|
|
3
3
|
import { CopyControlProps } from './copy-types.cjs';
|
|
4
4
|
export { AgentPayloadInput, AiCustomSource, AiVariant, CopyExportConfig } from './copy-types.cjs';
|
|
5
|
-
import { b as TableSavedViewsProps, c as MatrxDataTableDensity, d as MatrxDataTableRecordControls } from '../types-
|
|
5
|
+
import { b as TableSavedViewsProps, c as MatrxDataTableDensity, d as MatrxDataTableRecordControls } from '../types-kiV-CAuZ.cjs';
|
|
6
6
|
import { MatrxTableMenuTarget, MatrxTableMenuPayload } from './menu-targets.cjs';
|
|
7
7
|
import '../content-transfer.cjs';
|
|
8
8
|
import '@ai-matrx/kit/content-transfer';
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { ComponentType, ReactNode, MouseEventHandler } from 'react';
|
|
3
3
|
import { CopyControlProps } from './copy-types.js';
|
|
4
4
|
export { AgentPayloadInput, AiCustomSource, AiVariant, CopyExportConfig } from './copy-types.js';
|
|
5
|
-
import { b as TableSavedViewsProps, c as MatrxDataTableDensity, d as MatrxDataTableRecordControls } from '../types-
|
|
5
|
+
import { b as TableSavedViewsProps, c as MatrxDataTableDensity, d as MatrxDataTableRecordControls } from '../types-Cxm5XK0L.js';
|
|
6
6
|
import { MatrxTableMenuTarget, MatrxTableMenuPayload } from './menu-targets.js';
|
|
7
7
|
import '../content-transfer.js';
|
|
8
8
|
import '@ai-matrx/kit/content-transfer';
|
|
@@ -2594,6 +2594,7 @@ var PopoverContent = React13.forwardRef(
|
|
|
2594
2594
|
sideOffset = 4,
|
|
2595
2595
|
container,
|
|
2596
2596
|
animated = true,
|
|
2597
|
+
sizing = "fixed",
|
|
2597
2598
|
...props
|
|
2598
2599
|
}, ref) => {
|
|
2599
2600
|
const portalContainer = usePortalContainer(container);
|
|
@@ -2610,7 +2611,8 @@ var PopoverContent = React13.forwardRef(
|
|
|
2610
2611
|
// z, DOM portal order decides, so a dialog opened FROM a popover stacks
|
|
2611
2612
|
// above it, and a popover opened from a dialog still stacks above the
|
|
2612
2613
|
// dialog. z-[10001] buried dialogs behind fullscreen popovers.
|
|
2613
|
-
"z-[10000]
|
|
2614
|
+
"z-[10000] max-h-[var(--radix-popover-content-available-height)] overflow-y-auto overscroll-contain rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none",
|
|
2615
|
+
sizing === "content" ? "w-auto min-w-[min(max(var(--radix-popover-trigger-width),20rem),calc(100vw-2rem))] max-w-[min(28rem,calc(100vw-2rem))]" : "w-72",
|
|
2614
2616
|
animated && MOTION_POPPER,
|
|
2615
2617
|
className
|
|
2616
2618
|
),
|
|
@@ -6296,8 +6298,9 @@ function ColumnHeaderCell({
|
|
|
6296
6298
|
const menuContent = /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
6297
6299
|
PopoverContent,
|
|
6298
6300
|
{
|
|
6301
|
+
sizing: "content",
|
|
6299
6302
|
align: "start",
|
|
6300
|
-
className: "
|
|
6303
|
+
className: "p-2",
|
|
6301
6304
|
onClick: (e) => e.stopPropagation(),
|
|
6302
6305
|
onOpenAutoFocus: (event) => {
|
|
6303
6306
|
const content = event.currentTarget;
|
|
@@ -10084,8 +10087,26 @@ function pixelWidth(width) {
|
|
|
10084
10087
|
}
|
|
10085
10088
|
return void 0;
|
|
10086
10089
|
}
|
|
10087
|
-
var FROZEN_CELL_CLASS = "sm:sticky sm:left-[var(--matrx-frozen-left)] sm:z-20 sm:bg-
|
|
10088
|
-
var FROZEN_HEADER_CLASS = "sm:sticky sm:left-[var(--matrx-frozen-left)] sm:z-30";
|
|
10090
|
+
var FROZEN_CELL_CLASS = "sm:sticky sm:left-[var(--matrx-frozen-left)] sm:z-20 sm:bg-card";
|
|
10091
|
+
var FROZEN_HEADER_CLASS = "sm:sticky sm:left-[var(--matrx-frozen-left)] sm:z-30 sm:bg-muted";
|
|
10092
|
+
var FROZEN_ROW_TINT_CLASS = {
|
|
10093
|
+
slate: "sm:bg-[color-mix(in_oklab,var(--color-slate-100)_70%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-slate-800)_40%,var(--color-card))]",
|
|
10094
|
+
green: "sm:bg-[color-mix(in_oklab,var(--color-green-50)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-green-950)_40%,var(--color-card))]",
|
|
10095
|
+
amber: "sm:bg-[color-mix(in_oklab,var(--color-amber-50)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-amber-950)_40%,var(--color-card))]",
|
|
10096
|
+
red: "sm:bg-[color-mix(in_oklab,var(--color-red-50)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-red-950)_40%,var(--color-card))]",
|
|
10097
|
+
blue: "sm:bg-[color-mix(in_oklab,var(--color-blue-50)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-blue-950)_40%,var(--color-card))]",
|
|
10098
|
+
violet: "sm:bg-[color-mix(in_oklab,var(--color-violet-50)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-violet-950)_40%,var(--color-card))]",
|
|
10099
|
+
teal: "sm:bg-[color-mix(in_oklab,var(--color-teal-50)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-teal-950)_40%,var(--color-card))]"
|
|
10100
|
+
};
|
|
10101
|
+
var FROZEN_CELL_TINT_CLASS = {
|
|
10102
|
+
slate: "sm:bg-[color-mix(in_oklab,var(--color-slate-200)_70%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-slate-700)_50%,var(--color-card))]",
|
|
10103
|
+
green: "sm:bg-[color-mix(in_oklab,var(--color-green-100)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-green-900)_50%,var(--color-card))]",
|
|
10104
|
+
amber: "sm:bg-[color-mix(in_oklab,var(--color-amber-100)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-amber-900)_50%,var(--color-card))]",
|
|
10105
|
+
red: "sm:bg-[color-mix(in_oklab,var(--color-red-100)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-red-900)_50%,var(--color-card))]",
|
|
10106
|
+
blue: "sm:bg-[color-mix(in_oklab,var(--color-blue-100)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-blue-900)_50%,var(--color-card))]",
|
|
10107
|
+
violet: "sm:bg-[color-mix(in_oklab,var(--color-violet-100)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-violet-900)_50%,var(--color-card))]",
|
|
10108
|
+
teal: "sm:bg-[color-mix(in_oklab,var(--color-teal-100)_100%,var(--color-card))] dark:sm:bg-[color-mix(in_oklab,var(--color-teal-900)_50%,var(--color-card))]"
|
|
10109
|
+
};
|
|
10089
10110
|
var FROZEN_EDGE_CLASS = "sm:shadow-[inset_-1px_0_0_var(--border)]";
|
|
10090
10111
|
|
|
10091
10112
|
// src/field-formats/registry.ts
|
|
@@ -10977,8 +10998,9 @@ function EditableTableCell({
|
|
|
10977
10998
|
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
10978
10999
|
PopoverContent,
|
|
10979
11000
|
{
|
|
11001
|
+
sizing: "content",
|
|
10980
11002
|
align: "start",
|
|
10981
|
-
className: "
|
|
11003
|
+
className: "p-2",
|
|
10982
11004
|
onClick: (e) => e.stopPropagation(),
|
|
10983
11005
|
children: [
|
|
10984
11006
|
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
@@ -12749,23 +12771,29 @@ function MatrxDataTableCore({
|
|
|
12749
12771
|
const styleFieldOf = tableStyle?.fieldOf ?? ((id) => id);
|
|
12750
12772
|
const styleDocumentOf = tableStyle?.documentOf ?? ((row) => row);
|
|
12751
12773
|
const noChoiceColor = () => void 0;
|
|
12752
|
-
const
|
|
12753
|
-
if (!tableStyle) return
|
|
12754
|
-
|
|
12774
|
+
const rowTintColor = (row, id) => {
|
|
12775
|
+
if (!tableStyle) return null;
|
|
12776
|
+
return resolveRowColor(
|
|
12755
12777
|
tableStyle.style,
|
|
12756
12778
|
{ id, data: styleDocumentOf(row) },
|
|
12757
12779
|
tableStyle.choiceColorFor ?? noChoiceColor
|
|
12758
12780
|
);
|
|
12781
|
+
};
|
|
12782
|
+
const rowTintClass = (row, id) => {
|
|
12783
|
+
const color = rowTintColor(row, id);
|
|
12759
12784
|
return color ? ROW_TINT_CLASS[color] : void 0;
|
|
12760
12785
|
};
|
|
12761
|
-
const
|
|
12762
|
-
if (!tableStyle) return
|
|
12763
|
-
|
|
12786
|
+
const cellTintColor = (row, id, colId) => {
|
|
12787
|
+
if (!tableStyle) return null;
|
|
12788
|
+
return resolveCellColor(
|
|
12764
12789
|
tableStyle.style,
|
|
12765
12790
|
{ id, data: styleDocumentOf(row) },
|
|
12766
12791
|
styleFieldOf(colId),
|
|
12767
12792
|
tableStyle.choiceColorFor ?? noChoiceColor
|
|
12768
12793
|
);
|
|
12794
|
+
};
|
|
12795
|
+
const cellTintClass = (row, id, colId) => {
|
|
12796
|
+
const color = cellTintColor(row, id, colId);
|
|
12769
12797
|
return color ? CELL_TINT_CLASS[color] : void 0;
|
|
12770
12798
|
};
|
|
12771
12799
|
const declaredVisibleCopyColumns = (0, import_react21.useMemo)(
|
|
@@ -13134,14 +13162,14 @@ function MatrxDataTableCore({
|
|
|
13134
13162
|
const coverageResult = (0, import_react21.useMemo)(() => {
|
|
13135
13163
|
if (!coverage) return null;
|
|
13136
13164
|
return describeCoverage({
|
|
13137
|
-
loaded:
|
|
13165
|
+
loaded: data.length,
|
|
13138
13166
|
...coverage.matched === void 0 ? {} : { matched: coverage.matched },
|
|
13139
13167
|
...coverage.total === void 0 ? {} : { total: coverage.total },
|
|
13140
13168
|
...coverage.cap === void 0 ? {} : { cap: coverage.cap },
|
|
13141
13169
|
answeredBy: coverage.answeredBy ?? "client",
|
|
13142
13170
|
...coverage.noun === void 0 ? {} : { noun: coverage.noun }
|
|
13143
13171
|
});
|
|
13144
|
-
}, [coverage,
|
|
13172
|
+
}, [coverage, data.length]);
|
|
13145
13173
|
const bodyEntries = (0, import_react21.useMemo)(() => {
|
|
13146
13174
|
const from = effectiveRowWindow ? effectiveRowWindow.start : 0;
|
|
13147
13175
|
const to = effectiveRowWindow ? effectiveRowWindow.end : void 0;
|
|
@@ -13362,13 +13390,26 @@ function MatrxDataTableCore({
|
|
|
13362
13390
|
setWindowRowSnapshot(null);
|
|
13363
13391
|
};
|
|
13364
13392
|
const canExpandRow = (row) => Boolean(expandedDetail && (expandedDetail.canExpand?.(row) ?? true));
|
|
13365
|
-
const
|
|
13393
|
+
const isMultiExpandedDetail = (detail2) => "expandedIds" in detail2;
|
|
13394
|
+
const isRowExpanded = (row) => {
|
|
13395
|
+
if (!expandedDetail || !canExpandRow(row)) return false;
|
|
13396
|
+
const id = getRowId(row);
|
|
13397
|
+
return isMultiExpandedDetail(expandedDetail) ? expandedDetail.expandedIds.has(id) : expandedDetail.expandedId === id;
|
|
13398
|
+
};
|
|
13366
13399
|
const toggleExpanded = (row) => {
|
|
13367
13400
|
if (!expandedDetail || !canExpandRow(row)) return;
|
|
13368
13401
|
const id = getRowId(row);
|
|
13369
|
-
expandedDetail
|
|
13370
|
-
|
|
13371
|
-
|
|
13402
|
+
if (isMultiExpandedDetail(expandedDetail)) {
|
|
13403
|
+
const nextExpandedIds = new Set(expandedDetail.expandedIds);
|
|
13404
|
+
if (nextExpandedIds.has(id)) {
|
|
13405
|
+
nextExpandedIds.delete(id);
|
|
13406
|
+
} else {
|
|
13407
|
+
nextExpandedIds.add(id);
|
|
13408
|
+
}
|
|
13409
|
+
expandedDetail.onExpandedIdsChange(nextExpandedIds);
|
|
13410
|
+
return;
|
|
13411
|
+
}
|
|
13412
|
+
expandedDetail.onExpandedIdChange(expandedDetail.expandedId === id ? null : id);
|
|
13372
13413
|
};
|
|
13373
13414
|
const openRow = (row) => {
|
|
13374
13415
|
if (canExpandRow(row)) {
|
|
@@ -14406,6 +14447,19 @@ function MatrxDataTableCore({
|
|
|
14406
14447
|
}
|
|
14407
14448
|
),
|
|
14408
14449
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { "data-matrx-table-body-region": true, className: "flex min-h-0 flex-1 flex-col gap-2", children: [
|
|
14450
|
+
coverageResult && coverageResult.notice ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
14451
|
+
"div",
|
|
14452
|
+
{
|
|
14453
|
+
"data-matrx-table-coverage": true,
|
|
14454
|
+
"data-matrx-table-coverage-scope": coverageResult.scope,
|
|
14455
|
+
role: "status",
|
|
14456
|
+
className: "flex shrink-0 items-start gap-2 rounded-md border border-amber-300/70 bg-amber-50 px-3 py-2 text-xs text-amber-900 dark:border-amber-500/40 dark:bg-amber-950/40 dark:text-amber-200",
|
|
14457
|
+
children: [
|
|
14458
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "font-semibold", children: coverageResult.badge }),
|
|
14459
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { children: coverageResult.notice })
|
|
14460
|
+
]
|
|
14461
|
+
}
|
|
14462
|
+
) : null,
|
|
14409
14463
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "relative min-h-0 flex-1", children: [
|
|
14410
14464
|
mobileCards ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
14411
14465
|
"div",
|
|
@@ -14512,19 +14566,6 @@ function MatrxDataTableCore({
|
|
|
14512
14566
|
]
|
|
14513
14567
|
}
|
|
14514
14568
|
) : null,
|
|
14515
|
-
coverageResult && coverageResult.notice ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
14516
|
-
"div",
|
|
14517
|
-
{
|
|
14518
|
-
"data-matrx-table-coverage": true,
|
|
14519
|
-
"data-matrx-table-coverage-scope": coverageResult.scope,
|
|
14520
|
-
role: "status",
|
|
14521
|
-
className: "mb-1 flex items-start gap-2 rounded-md border border-amber-300/70 bg-amber-50 px-3 py-2 text-xs text-amber-900 dark:border-amber-500/40 dark:bg-amber-950/40 dark:text-amber-200",
|
|
14522
|
-
children: [
|
|
14523
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "font-semibold", children: coverageResult.badge }),
|
|
14524
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { children: coverageResult.notice })
|
|
14525
|
-
]
|
|
14526
|
-
}
|
|
14527
|
-
) : null,
|
|
14528
14569
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
14529
14570
|
"div",
|
|
14530
14571
|
{
|
|
@@ -14611,7 +14652,10 @@ function MatrxDataTableCore({
|
|
|
14611
14652
|
"th",
|
|
14612
14653
|
{
|
|
14613
14654
|
"data-matrx-table-selection-column": true,
|
|
14614
|
-
className:
|
|
14655
|
+
className: cn(
|
|
14656
|
+
"h-9 w-9 px-2 text-left align-middle",
|
|
14657
|
+
frozenColumns.selectionOffset !== null && "sm:sticky sm:left-0 sm:z-30 sm:bg-muted"
|
|
14658
|
+
),
|
|
14615
14659
|
style: fixedUtilityWidth(fixedTableGeometry?.selectionWidth),
|
|
14616
14660
|
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
14617
14661
|
"div",
|
|
@@ -14873,6 +14917,9 @@ function MatrxDataTableCore({
|
|
|
14873
14917
|
const displayRow = applyRowEdits(row, rowEdits);
|
|
14874
14918
|
const controls = buildRecordControls(displayRow);
|
|
14875
14919
|
const isChecked = selectedIdSet.has(id);
|
|
14920
|
+
const rowTint = rowTintColor(row, id);
|
|
14921
|
+
const canHoverFrozenCell = !rowTint && (detailEnabled || Boolean(onRowOpen) || canExpandRow(row));
|
|
14922
|
+
const frozenRowBackgroundClass = rowTint ? FROZEN_ROW_TINT_CLASS[rowTint] : highlightedIndex === index || isSelected ? "sm:bg-muted" : isChecked ? "sm:bg-[color-mix(in_oklab,var(--color-primary)_5%,var(--color-card))]" : zebra && index % 2 === 1 ? "sm:bg-[color-mix(in_oklab,var(--color-muted)_20%,var(--color-card))]" : "sm:bg-card";
|
|
14876
14923
|
const rowNode = /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
14877
14924
|
"tr",
|
|
14878
14925
|
{
|
|
@@ -14900,7 +14947,7 @@ function MatrxDataTableCore({
|
|
|
14900
14947
|
// Keep the mobile row opaque while the complete row scrolls
|
|
14901
14948
|
// horizontally. The translucent zebra/hover tints remain
|
|
14902
14949
|
// desktop-only so densely layered mobile content stays crisp.
|
|
14903
|
-
"border-b border-border/60 bg-card transition-colors",
|
|
14950
|
+
"group/matrx-row border-b border-border/60 bg-card transition-colors",
|
|
14904
14951
|
(detailEnabled || Boolean(onRowOpen) || canExpandRow(row)) && "cursor-pointer sm:hover:bg-muted/50",
|
|
14905
14952
|
isSelected && "bg-muted",
|
|
14906
14953
|
isChecked && "bg-primary/5",
|
|
@@ -14924,7 +14971,11 @@ function MatrxDataTableCore({
|
|
|
14924
14971
|
// When a data column is frozen the checkbox
|
|
14925
14972
|
// column has to freeze with it, or the first
|
|
14926
14973
|
// frozen column slides over the checkboxes.
|
|
14927
|
-
frozenColumns.selectionOffset !== null &&
|
|
14974
|
+
frozenColumns.selectionOffset !== null && cn(
|
|
14975
|
+
"sm:sticky sm:left-0 sm:z-20",
|
|
14976
|
+
frozenRowBackgroundClass,
|
|
14977
|
+
canHoverFrozenCell && "sm:group-hover/matrx-row:bg-[color-mix(in_oklab,var(--color-muted)_50%,var(--color-card))]"
|
|
14978
|
+
)
|
|
14928
14979
|
),
|
|
14929
14980
|
style: fixedUtilityWidth(fixedTableGeometry?.selectionWidth),
|
|
14930
14981
|
onClick: (e) => e.stopPropagation(),
|
|
@@ -14964,6 +15015,12 @@ function MatrxDataTableCore({
|
|
|
14964
15015
|
const isColumnDragShadow = columnDragPreview?.draggedId === columnId(col) && columnDragPreview.targetId !== null;
|
|
14965
15016
|
const sheetCell = spreadsheetEnabled ? sheet.cellProps(id, columnId(col)) : null;
|
|
14966
15017
|
const carriesFillHandle = sheetCell !== null && sheet.isFillHandleCell(id, columnId(col));
|
|
15018
|
+
const frozen = frozenColumns.offsets[columnId(col)] !== void 0;
|
|
15019
|
+
const frozenCellTint = cellTintColor(
|
|
15020
|
+
row,
|
|
15021
|
+
id,
|
|
15022
|
+
columnId(col)
|
|
15023
|
+
);
|
|
14967
15024
|
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
14968
15025
|
"td",
|
|
14969
15026
|
{
|
|
@@ -14994,12 +15051,16 @@ function MatrxDataTableCore({
|
|
|
14994
15051
|
isColumnDragShadow && "bg-primary/10 shadow-[inset_2px_0_0_var(--primary),inset_-2px_0_0_var(--primary)]",
|
|
14995
15052
|
alignForFormat(col) === "center" && "text-center",
|
|
14996
15053
|
alignForFormat(col) === "right" && "text-right",
|
|
14997
|
-
|
|
15054
|
+
frozen && FROZEN_CELL_CLASS,
|
|
15055
|
+
frozen && frozenRowBackgroundClass,
|
|
15056
|
+
frozen && sheetCell?.["data-matrx-cell-selected"] && "sm:bg-[color-mix(in_oklab,var(--color-primary)_10%,var(--color-card))]",
|
|
15057
|
+
frozen && canHoverFrozenCell && "sm:group-hover/matrx-row:bg-[color-mix(in_oklab,var(--color-muted)_50%,var(--color-card))]",
|
|
14998
15058
|
frozenEdgeId === columnId(col) && FROZEN_EDGE_CLASS,
|
|
14999
15059
|
// A cell tint paints OVER the row tint beneath
|
|
15000
15060
|
// it, and the consumer's own hook comes last so
|
|
15001
15061
|
// it can always win.
|
|
15002
15062
|
cellTintClass(row, id, columnId(col)),
|
|
15063
|
+
frozen && frozenCellTint && FROZEN_CELL_TINT_CLASS[frozenCellTint],
|
|
15003
15064
|
cellClassName?.(row, columnId(col), index)
|
|
15004
15065
|
),
|
|
15005
15066
|
style: {
|