@ai-matrx/design-system 0.21.4 → 0.21.6
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 +8 -0
- 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.map +1 -1
- package/dist/data-table/data-row-inspector.js.map +1 -1
- package/dist/data-table/data-row-window.cjs.map +1 -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 +101 -22
- package/dist/data-table/index.cjs.map +1 -1
- package/dist/data-table/index.d.cts +10 -3
- package/dist/data-table/index.d.ts +10 -3
- package/dist/data-table/index.js +101 -22
- package/dist/data-table/index.js.map +1 -1
- package/dist/data-table/infer-filter.cjs +16 -0
- package/dist/data-table/infer-filter.cjs.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/infer-filter.js +16 -0
- package/dist/data-table/infer-filter.js.map +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/pagination.cjs.map +1 -1
- package/dist/data-table/pagination.js.map +1 -1
- package/dist/data-table/query-control.cjs +19 -0
- package/dist/data-table/query-control.cjs.map +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/query-control.js +19 -0
- package/dist/data-table/query-control.js.map +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/uuid-cell.cjs.map +1 -1
- package/dist/data-table/uuid-cell.js.map +1 -1
- package/dist/data-table/xlsx.d.cts +1 -1
- package/dist/data-table/xlsx.d.ts +1 -1
- package/dist/{types-CbGNfo7r.d.ts → types-Dpl8OW_m.d.ts} +17 -1
- package/dist/{types-DRusLYrU.d.cts → types-DsmrqJHN.d.cts} +17 -1
- 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-DsmrqJHN.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-Dpl8OW_m.js';
|
|
2
2
|
import '../content-transfer.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import '@ai-matrx/kit/content-transfer';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { ComponentType, ReactNode, MouseEventHandler } from 'react';
|
|
3
|
-
import { b as TableSavedViewsProps, c as MatrxDataTableRecordControls, d as MatrxDataTableDensity } from '../types-
|
|
3
|
+
import { b as TableSavedViewsProps, c as MatrxDataTableRecordControls, d as MatrxDataTableDensity } from '../types-DsmrqJHN.cjs';
|
|
4
4
|
import { CopyControlProps } from './copy-types.cjs';
|
|
5
5
|
export { AgentPayloadInput, AiCustomSource, AiVariant, CopyExportConfig } from './copy-types.cjs';
|
|
6
6
|
import '../content-transfer.cjs';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { ComponentType, ReactNode, MouseEventHandler } from 'react';
|
|
3
|
-
import { b as TableSavedViewsProps, c as MatrxDataTableRecordControls, d as MatrxDataTableDensity } from '../types-
|
|
3
|
+
import { b as TableSavedViewsProps, c as MatrxDataTableRecordControls, d as MatrxDataTableDensity } from '../types-Dpl8OW_m.js';
|
|
4
4
|
import { CopyControlProps } from './copy-types.js';
|
|
5
5
|
export { AgentPayloadInput, AiCustomSource, AiVariant, CopyExportConfig } from './copy-types.js';
|
|
6
6
|
import '../content-transfer.js';
|
|
@@ -48,6 +48,7 @@ __export(data_table_exports, {
|
|
|
48
48
|
downloadTableAsXlsx: () => downloadTableAsXlsx,
|
|
49
49
|
filterKindLabel: () => filterKindLabel,
|
|
50
50
|
parseTableViewSnapshot: () => parseTableViewSnapshot,
|
|
51
|
+
resolveColumnMarker: () => resolveColumnMarker,
|
|
51
52
|
resolveFilterKind: () => resolveFilterKind,
|
|
52
53
|
rowsToCsvFromColumns: () => rowsToCsvFromColumns,
|
|
53
54
|
rowsToMarkdownTable: () => rowsToMarkdownTable,
|
|
@@ -84,6 +85,8 @@ var Search = (p) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Icon, { ...p, c
|
|
|
84
85
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "m16 16 4 4" })
|
|
85
86
|
] });
|
|
86
87
|
var Plus = (p) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { ...p, children: path });
|
|
88
|
+
var Star = (p) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { ...p, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" }) });
|
|
89
|
+
var Pin = (p) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { ...p, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 17v5M9 3h6l1 7 3 3v2H5v-2l3-3 1-7z" }) });
|
|
87
90
|
var Eraser = (p) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { ...p, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "m16 3 5 5-11 11H5l-3-3L13 5l3-2Z M8 10l6 6 M10 19h12" }) });
|
|
88
91
|
var GripVertical = (p) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Icon, { ...p, children: [
|
|
89
92
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "9", cy: "6", r: "1" }),
|
|
@@ -5774,6 +5777,34 @@ var CommandShortcut = ({
|
|
|
5774
5777
|
};
|
|
5775
5778
|
CommandShortcut.displayName = "CommandShortcut";
|
|
5776
5779
|
|
|
5780
|
+
// src/data-table/column-marker.ts
|
|
5781
|
+
var MARKER_ACCESSORS = {
|
|
5782
|
+
favorite: "favorite",
|
|
5783
|
+
is_favorite: "favorite",
|
|
5784
|
+
favourite: "favorite",
|
|
5785
|
+
is_favourite: "favorite",
|
|
5786
|
+
pinned: "pin",
|
|
5787
|
+
is_pinned: "pin"
|
|
5788
|
+
};
|
|
5789
|
+
function resolveColumnMarker(column) {
|
|
5790
|
+
if (column.marker === false) return void 0;
|
|
5791
|
+
if (column.marker) return column.marker;
|
|
5792
|
+
return column.accessorKey ? MARKER_ACCESSORS[column.accessorKey] : void 0;
|
|
5793
|
+
}
|
|
5794
|
+
function markerCopy(marker) {
|
|
5795
|
+
return marker === "favorite" ? {
|
|
5796
|
+
label: "Favorites",
|
|
5797
|
+
lowerLabel: "favorites",
|
|
5798
|
+
onlyLabel: "Favorites only",
|
|
5799
|
+
notLabel: "Not favorites"
|
|
5800
|
+
} : {
|
|
5801
|
+
label: "Pins",
|
|
5802
|
+
lowerLabel: "pins",
|
|
5803
|
+
onlyLabel: "Pins only",
|
|
5804
|
+
notLabel: "Not pinned"
|
|
5805
|
+
};
|
|
5806
|
+
}
|
|
5807
|
+
|
|
5777
5808
|
// src/data-table/ColumnHeaderCell.tsx
|
|
5778
5809
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
5779
5810
|
var HeaderButton = (0, import_react13.forwardRef)(({ dragDescription, "aria-describedby": tooltipDescription, ...props }, ref) => {
|
|
@@ -5806,6 +5837,7 @@ function ColumnHeaderCell({
|
|
|
5806
5837
|
align = "left",
|
|
5807
5838
|
className,
|
|
5808
5839
|
compact = false,
|
|
5840
|
+
marker,
|
|
5809
5841
|
filterApplyLabel,
|
|
5810
5842
|
filterShowCancel = false,
|
|
5811
5843
|
filterFooterHint,
|
|
@@ -5857,7 +5889,9 @@ function ColumnHeaderCell({
|
|
|
5857
5889
|
if (deferredFilter) setDraftFilter(next);
|
|
5858
5890
|
else onFilterChange(next);
|
|
5859
5891
|
};
|
|
5860
|
-
const
|
|
5892
|
+
const markerLabels = marker ? markerCopy(marker) : void 0;
|
|
5893
|
+
const accessibleLabel = markerLabels?.label ?? labelText;
|
|
5894
|
+
const menuLabel = accessibleLabel ? `Sort or filter ${accessibleLabel}` : "Sort or filter column";
|
|
5861
5895
|
const menuContent = /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
5862
5896
|
PopoverContent,
|
|
5863
5897
|
{
|
|
@@ -5886,7 +5920,7 @@ function ColumnHeaderCell({
|
|
|
5886
5920
|
onClick: onSortAsc,
|
|
5887
5921
|
children: [
|
|
5888
5922
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ArrowUp, { className: "h-3.5 w-3.5" }),
|
|
5889
|
-
"Sort ascending"
|
|
5923
|
+
markerLabels ? `${markerLabels.label} last` : "Sort ascending"
|
|
5890
5924
|
]
|
|
5891
5925
|
}
|
|
5892
5926
|
),
|
|
@@ -5899,7 +5933,7 @@ function ColumnHeaderCell({
|
|
|
5899
5933
|
onClick: onSortDesc,
|
|
5900
5934
|
children: [
|
|
5901
5935
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ArrowDown, { className: "h-3.5 w-3.5" }),
|
|
5902
|
-
"Sort descending"
|
|
5936
|
+
markerLabels ? `${markerLabels.label} first` : "Sort descending"
|
|
5903
5937
|
]
|
|
5904
5938
|
}
|
|
5905
5939
|
),
|
|
@@ -5912,7 +5946,7 @@ function ColumnHeaderCell({
|
|
|
5912
5946
|
onClick: onClearSort,
|
|
5913
5947
|
children: [
|
|
5914
5948
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ListX, { className: "h-3.5 w-3.5" }),
|
|
5915
|
-
"Clear sort"
|
|
5949
|
+
markerLabels ? `Clear ${markerLabels.lowerLabel} sort` : "Clear sort"
|
|
5916
5950
|
]
|
|
5917
5951
|
}
|
|
5918
5952
|
) : null
|
|
@@ -5931,6 +5965,13 @@ function ColumnHeaderCell({
|
|
|
5931
5965
|
},
|
|
5932
5966
|
selectOptions,
|
|
5933
5967
|
selectSingle,
|
|
5968
|
+
...markerLabels ? {
|
|
5969
|
+
booleanLabels: {
|
|
5970
|
+
all: "All",
|
|
5971
|
+
true: markerLabels.onlyLabel,
|
|
5972
|
+
false: markerLabels.notLabel
|
|
5973
|
+
}
|
|
5974
|
+
} : {},
|
|
5934
5975
|
allowNullModes
|
|
5935
5976
|
}
|
|
5936
5977
|
) : null,
|
|
@@ -6146,7 +6187,8 @@ function FilterBody({
|
|
|
6146
6187
|
onChange,
|
|
6147
6188
|
selectOptions,
|
|
6148
6189
|
selectSingle = false,
|
|
6149
|
-
allowNullModes = false
|
|
6190
|
+
allowNullModes = false,
|
|
6191
|
+
booleanLabels
|
|
6150
6192
|
}) {
|
|
6151
6193
|
if (kind === "text") {
|
|
6152
6194
|
const text = value?.kind === "text" ? value.value : "";
|
|
@@ -6233,9 +6275,9 @@ function FilterBody({
|
|
|
6233
6275
|
children: [
|
|
6234
6276
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectTrigger, { className: "h-8 text-xs", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectValue, {}) }),
|
|
6235
6277
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(SelectContent, { children: [
|
|
6236
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectItem, { value: "__all__", children: "All" }),
|
|
6237
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectItem, { value: "true", children: "Yes" }),
|
|
6238
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectItem, { value: "false", children: "No" })
|
|
6278
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectItem, { value: "__all__", children: booleanLabels?.all ?? "All" }),
|
|
6279
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectItem, { value: "true", children: booleanLabels?.true ?? "Yes" }),
|
|
6280
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectItem, { value: "false", children: booleanLabels?.false ?? "No" })
|
|
6239
6281
|
] })
|
|
6240
6282
|
]
|
|
6241
6283
|
}
|
|
@@ -8335,6 +8377,7 @@ var SELECT_CARDINALITY_CAP = 24;
|
|
|
8335
8377
|
function resolveFilterKind(col, sampleRows) {
|
|
8336
8378
|
if (col.filter === false) return null;
|
|
8337
8379
|
if (col.filter && col.filter !== "auto") return col.filter;
|
|
8380
|
+
if (resolveColumnMarker(col)) return "boolean";
|
|
8338
8381
|
const values = sampleRows.slice(0, 200).map((row) => getCellValue(row, col)).filter((v) => v != null);
|
|
8339
8382
|
if (values.length === 0) return "text";
|
|
8340
8383
|
if (values.every((v) => typeof v === "boolean")) return "boolean";
|
|
@@ -8400,6 +8443,9 @@ function resolveQueryFilterMeta(column, rows, controlled) {
|
|
|
8400
8443
|
};
|
|
8401
8444
|
}
|
|
8402
8445
|
if (column.filter === false) return { kind: null, options: [] };
|
|
8446
|
+
if (resolveColumnMarker(column) && (column.filter === void 0 || column.filter === "auto")) {
|
|
8447
|
+
return { kind: "boolean", options: [] };
|
|
8448
|
+
}
|
|
8403
8449
|
const declared = column.filter;
|
|
8404
8450
|
const kind = declared && declared !== "auto" ? declared : column.filterOptions?.length ? "select" : "text";
|
|
8405
8451
|
return {
|
|
@@ -10641,6 +10687,10 @@ function MatrxDataTableCore({
|
|
|
10641
10687
|
const defaultSortDirection = col.defaultSortDirection ?? "asc";
|
|
10642
10688
|
const isColumnDragShadow = columnDragPreview?.draggedId === id && columnDragPreview.targetId !== null;
|
|
10643
10689
|
const columnResizable = resizableColumns && col.resizable !== false;
|
|
10690
|
+
const marker = resolveColumnMarker(col);
|
|
10691
|
+
const compact = col.compact || marker !== void 0;
|
|
10692
|
+
const width = marker && col.width === void 0 ? 40 : col.width;
|
|
10693
|
+
const minWidth = marker && col.minWidth === void 0 ? 40 : col.minWidth;
|
|
10644
10694
|
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
10645
10695
|
"th",
|
|
10646
10696
|
{
|
|
@@ -10652,7 +10702,7 @@ function MatrxDataTableCore({
|
|
|
10652
10702
|
// ICON COLUMN (MatrxColumnDef.compact): a 40px star
|
|
10653
10703
|
// column cannot honor `width: 40` while paying 16px of
|
|
10654
10704
|
// padding for a 14px glyph.
|
|
10655
|
-
|
|
10705
|
+
compact ? "px-1" : "px-2",
|
|
10656
10706
|
// An intentional mobile column set (see
|
|
10657
10707
|
// MatrxColumnDef.mobileHidden). CSS, not a JS
|
|
10658
10708
|
// breakpoint — no hydration mismatch, and the column
|
|
@@ -10663,13 +10713,13 @@ function MatrxDataTableCore({
|
|
|
10663
10713
|
// it, a crowded table crushes a declared 190px column to a
|
|
10664
10714
|
// few characters wide instead of using the canonical
|
|
10665
10715
|
// horizontal-scroll surface.
|
|
10666
|
-
(
|
|
10716
|
+
(width !== void 0 || columnResizable) && "sm:w-[var(--matrx-col-w)] sm:min-w-[var(--matrx-col-w)]",
|
|
10667
10717
|
col.headerClassName,
|
|
10668
10718
|
isColumnDragShadow && "bg-primary/10 shadow-[inset_2px_0_0_var(--primary),inset_-2px_0_0_var(--primary)]",
|
|
10669
10719
|
col.align === "center" && "text-center",
|
|
10670
10720
|
col.align === "right" && "text-right"
|
|
10671
10721
|
),
|
|
10672
|
-
style: columnWidthVar(
|
|
10722
|
+
style: columnWidthVar(width, effectiveColumnWidths[id], id, columnResizable),
|
|
10673
10723
|
children: [
|
|
10674
10724
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ColumnHeaderDropZone, { id, enabled: reorderableColumns, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
10675
10725
|
ColumnHeaderCell,
|
|
@@ -10704,7 +10754,8 @@ function MatrxDataTableCore({
|
|
|
10704
10754
|
allowNegation: filterUi?.allowNegation,
|
|
10705
10755
|
allowNullModes: filterUi?.allowNullModes,
|
|
10706
10756
|
align: col.align,
|
|
10707
|
-
compact
|
|
10757
|
+
compact,
|
|
10758
|
+
marker,
|
|
10708
10759
|
reorderColumn: reorderableColumns ? { id, label: headerLabel } : void 0
|
|
10709
10760
|
}
|
|
10710
10761
|
) }),
|
|
@@ -10714,12 +10765,12 @@ function MatrxDataTableCore({
|
|
|
10714
10765
|
columnId: id,
|
|
10715
10766
|
label: headerLabel,
|
|
10716
10767
|
tableRef,
|
|
10717
|
-
minWidth
|
|
10768
|
+
minWidth,
|
|
10718
10769
|
maxWidth: col.maxWidth,
|
|
10719
10770
|
onResizeStart: captureResizeGestureSnapshot,
|
|
10720
10771
|
onResizeCancel: clearResizeGestureSnapshot,
|
|
10721
|
-
onResizeCommit: (columnId2,
|
|
10722
|
-
{ ...effectiveColumnWidths, [columnId2]:
|
|
10772
|
+
onResizeCommit: (columnId2, width2) => commitColumnWidths(
|
|
10773
|
+
{ ...effectiveColumnWidths, [columnId2]: width2 },
|
|
10723
10774
|
true
|
|
10724
10775
|
)
|
|
10725
10776
|
}
|
|
@@ -10749,7 +10800,7 @@ function MatrxDataTableCore({
|
|
|
10749
10800
|
{
|
|
10750
10801
|
className: cn(
|
|
10751
10802
|
"py-2",
|
|
10752
|
-
col.compact ? "px-1" : "px-2",
|
|
10803
|
+
col.compact || resolveColumnMarker(col) !== void 0 ? "px-1" : "px-2",
|
|
10753
10804
|
col.mobileHidden && "max-sm:hidden"
|
|
10754
10805
|
),
|
|
10755
10806
|
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Skeleton, { className: "h-5 w-full" })
|
|
@@ -10835,19 +10886,19 @@ function MatrxDataTableCore({
|
|
|
10835
10886
|
"data-matrx-column-drag-shadow": isColumnDragShadow ? "true" : void 0,
|
|
10836
10887
|
className: cn(
|
|
10837
10888
|
"py-1.5 align-middle lg:py-0.5",
|
|
10838
|
-
col.compact ? "px-1" : "px-2",
|
|
10889
|
+
col.compact || resolveColumnMarker(col) !== void 0 ? "px-1" : "px-2",
|
|
10839
10890
|
// nowrap (NOT truncate — truncate clips the cell and
|
|
10840
10891
|
// defeats w-max, killing the horizontal scroll).
|
|
10841
10892
|
"max-sm:whitespace-nowrap",
|
|
10842
10893
|
col.mobileHidden && "max-sm:hidden",
|
|
10843
|
-
(col.width !== void 0 || resizableColumns && col.resizable !== false) && "sm:w-[var(--matrx-col-w)] sm:min-w-[var(--matrx-col-w)] sm:max-w-[var(--matrx-col-w)]",
|
|
10894
|
+
((resolveColumnMarker(col) && col.width === void 0 ? 40 : col.width) !== void 0 || resizableColumns && col.resizable !== false) && "sm:w-[var(--matrx-col-w)] sm:min-w-[var(--matrx-col-w)] sm:max-w-[var(--matrx-col-w)]",
|
|
10844
10895
|
col.className,
|
|
10845
10896
|
isColumnDragShadow && "bg-primary/10 shadow-[inset_2px_0_0_var(--primary),inset_-2px_0_0_var(--primary)]",
|
|
10846
10897
|
col.align === "center" && "text-center",
|
|
10847
10898
|
col.align === "right" && "text-right"
|
|
10848
10899
|
),
|
|
10849
10900
|
style: columnWidthVar(
|
|
10850
|
-
col.width,
|
|
10901
|
+
resolveColumnMarker(col) && col.width === void 0 ? 40 : col.width,
|
|
10851
10902
|
effectiveColumnWidths[columnId(col)],
|
|
10852
10903
|
columnId(col),
|
|
10853
10904
|
resizableColumns && col.resizable !== false
|
|
@@ -10979,13 +11030,13 @@ function MatrxDataTableCore({
|
|
|
10979
11030
|
{
|
|
10980
11031
|
className: cn(
|
|
10981
11032
|
"px-2 py-2 align-middle",
|
|
10982
|
-
column.compact && "px-1",
|
|
11033
|
+
(column.compact || resolveColumnMarker(column) !== void 0) && "px-1",
|
|
10983
11034
|
column.className,
|
|
10984
11035
|
column.align === "center" && "text-center",
|
|
10985
11036
|
column.align === "right" && "text-right"
|
|
10986
11037
|
),
|
|
10987
11038
|
style: columnWidthVar(
|
|
10988
|
-
column.width,
|
|
11039
|
+
resolveColumnMarker(column) && column.width === void 0 ? 40 : column.width,
|
|
10989
11040
|
effectiveColumnWidths[columnId(column)],
|
|
10990
11041
|
columnId(column),
|
|
10991
11042
|
resizableColumns && column.resizable !== false
|
|
@@ -11577,7 +11628,11 @@ function normalizeColumnWidthsForColumns(widths, columns) {
|
|
|
11577
11628
|
return Object.fromEntries(
|
|
11578
11629
|
Object.entries(normalized).map(([id, width]) => {
|
|
11579
11630
|
const column = byId.get(id);
|
|
11580
|
-
const
|
|
11631
|
+
const marker = column ? resolveColumnMarker(column) : void 0;
|
|
11632
|
+
const bounds = resolveColumnResizeBounds(
|
|
11633
|
+
marker && column?.minWidth === void 0 ? 40 : column?.minWidth,
|
|
11634
|
+
column?.maxWidth
|
|
11635
|
+
);
|
|
11581
11636
|
return [id, clampColumnWidth(width, bounds)];
|
|
11582
11637
|
})
|
|
11583
11638
|
);
|
|
@@ -11611,6 +11666,28 @@ function DefaultJsonCell({ value }) {
|
|
|
11611
11666
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(DataRowWindow, { isOpen: open, onClose: () => setOpen(false), title: "JSON value", row: value, viewContent: Viewer ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Viewer, { data: value }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("pre", { className: "overflow-auto whitespace-pre-wrap p-3 text-xs", children: text }) })
|
|
11612
11667
|
] });
|
|
11613
11668
|
}
|
|
11669
|
+
function DefaultMarkerCell({
|
|
11670
|
+
marker,
|
|
11671
|
+
value
|
|
11672
|
+
}) {
|
|
11673
|
+
const label = marker === "favorite" ? value ? "Favorite" : "Not favorite" : value ? "Pinned" : "Not pinned";
|
|
11674
|
+
const Icon3 = marker === "favorite" ? Star : Pin;
|
|
11675
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Tooltip, { children: [
|
|
11676
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
11677
|
+
"span",
|
|
11678
|
+
{
|
|
11679
|
+
role: "img",
|
|
11680
|
+
"aria-label": label,
|
|
11681
|
+
className: cn(
|
|
11682
|
+
"inline-flex size-5 items-center justify-center",
|
|
11683
|
+
value ? "text-amber-500" : "text-muted-foreground/45"
|
|
11684
|
+
),
|
|
11685
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icon3, { className: "size-4", ...value ? { fill: "currentColor" } : {} })
|
|
11686
|
+
}
|
|
11687
|
+
) }),
|
|
11688
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipContent, { children: label })
|
|
11689
|
+
] });
|
|
11690
|
+
}
|
|
11614
11691
|
function renderCell(row, col, index) {
|
|
11615
11692
|
if (col.cell) return col.cell(row, index);
|
|
11616
11693
|
const raw = getCellValue(row, col);
|
|
@@ -11633,6 +11710,8 @@ function renderCell(row, col, index) {
|
|
|
11633
11710
|
}
|
|
11634
11711
|
if (raw !== null && typeof raw === "object" && !(raw instanceof Date)) return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(DefaultJsonCell, { value: raw });
|
|
11635
11712
|
if (typeof raw === "boolean") {
|
|
11713
|
+
const marker = resolveColumnMarker(col);
|
|
11714
|
+
if (marker) return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(DefaultMarkerCell, { marker, value: raw });
|
|
11636
11715
|
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: raw ? "rounded bg-emerald-500/10 px-1.5 py-0.5 text-xs text-emerald-600" : "rounded bg-slate-500/10 px-1.5 py-0.5 text-xs text-muted-foreground", children: raw ? "Yes" : "No" });
|
|
11637
11716
|
}
|
|
11638
11717
|
const formatted = formatTableDisplayValue(raw);
|