@ai-matrx/design-system 0.36.0 → 0.38.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 +31 -0
- package/dist/content-transfer.cjs +81 -17
- package/dist/content-transfer.cjs.map +1 -1
- package/dist/content-transfer.js +81 -17
- 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 +81 -17
- package/dist/data-table/data-row-inspector.cjs.map +1 -1
- package/dist/data-table/data-row-inspector.js +83 -19
- package/dist/data-table/data-row-inspector.js.map +1 -1
- package/dist/data-table/data-row-window.cjs +81 -17
- package/dist/data-table/data-row-window.cjs.map +1 -1
- package/dist/data-table/data-row-window.js +83 -19
- 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 +127 -25
- 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 +223 -121
- 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 +81 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +21 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +91 -27
- package/dist/index.js.map +1 -1
- package/dist/{types-Cxm5XK0L.d.ts → types-B8vwElPz.d.ts} +25 -1
- package/dist/{types-kiV-CAuZ.d.cts → types-BuMHbFjs.d.cts} +25 -1
- package/package.json +7 -7
|
@@ -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-BuMHbFjs.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-B8vwElPz.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-BuMHbFjs.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-B8vwElPz.js';
|
|
6
6
|
import { MatrxTableMenuTarget, MatrxTableMenuPayload } from './menu-targets.js';
|
|
7
7
|
import '../content-transfer.js';
|
|
8
8
|
import '@ai-matrx/kit/content-transfer';
|
|
@@ -1617,7 +1617,8 @@ var Dialog = ({
|
|
|
1617
1617
|
children,
|
|
1618
1618
|
...props
|
|
1619
1619
|
}) => {
|
|
1620
|
-
const
|
|
1620
|
+
const isMobile = useIsMobile();
|
|
1621
|
+
const modal = props.modal ?? isMobile;
|
|
1621
1622
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DialogPrimitive.Root, { ...props, modal, children }) });
|
|
1622
1623
|
};
|
|
1623
1624
|
Dialog.displayName = "Dialog";
|
|
@@ -1663,6 +1664,11 @@ DialogContentPrimitive.displayName = "DialogContentPrimitive";
|
|
|
1663
1664
|
var DIALOG_DESKTOP_CLASSES = "matrx-dialog-card fixed inset-0 z-[10000] m-auto grid h-fit min-w-0 w-full max-w-lg gap-4 max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem] overflow-x-clip border bg-background p-6 shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full sm:rounded-lg";
|
|
1664
1665
|
var DIALOG_MOBILE_SHEET_CLASSES = "matrx-mobile-sheet matrx-dialog-card fixed inset-x-0 bottom-0 left-0 right-0 top-auto z-[10000] flex min-w-0 flex-col w-full max-w-full max-h-[90dvh] gap-4 [--dialog-pad:1rem] overflow-x-clip border-t bg-background p-4 pb-safe shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full rounded-t-2xl rounded-b-none overflow-y-auto overscroll-contain";
|
|
1665
1666
|
var DIALOG_MOBILE_SHEET_OVERRIDE = "inset-x-0 bottom-0 left-0 right-0 top-auto translate-none w-full max-w-full max-h-[90dvh] rounded-b-none rounded-t-2xl overflow-y-auto";
|
|
1667
|
+
var DialogWindowHandleContext = React10.createContext(null);
|
|
1668
|
+
var WINDOW_KEEP_VISIBLE = 80;
|
|
1669
|
+
function isInteractiveTarget(target) {
|
|
1670
|
+
return target instanceof Element && Boolean(target.closest("button, a, input, textarea, select, [role='button'], [contenteditable='true']"));
|
|
1671
|
+
}
|
|
1666
1672
|
var DialogContent = React10.forwardRef(
|
|
1667
1673
|
({
|
|
1668
1674
|
className,
|
|
@@ -1671,15 +1677,50 @@ var DialogContent = React10.forwardRef(
|
|
|
1671
1677
|
animated = true,
|
|
1672
1678
|
showCloseButton = true,
|
|
1673
1679
|
container,
|
|
1680
|
+
dismissOnOutsideClick = false,
|
|
1681
|
+
onInteractOutside,
|
|
1682
|
+
onEscapeKeyDown,
|
|
1683
|
+
style,
|
|
1674
1684
|
...props
|
|
1675
1685
|
}, ref) => {
|
|
1676
1686
|
const isMobile = useIsMobile();
|
|
1677
1687
|
const isModal = useRadixDialogModal();
|
|
1678
1688
|
const injectedContainer = usePortalContainer(container);
|
|
1679
1689
|
const asSheet = mobileSheet && isMobile;
|
|
1690
|
+
const windowed = !isModal && !asSheet;
|
|
1680
1691
|
const [containerEl, setContainerEl] = React10.useState(
|
|
1681
1692
|
null
|
|
1682
1693
|
);
|
|
1694
|
+
const [offset, setOffset] = React10.useState({ x: 0, y: 0 });
|
|
1695
|
+
const dragRef = React10.useRef(null);
|
|
1696
|
+
const handle = React10.useMemo(() => {
|
|
1697
|
+
if (!windowed) return null;
|
|
1698
|
+
const clamp = (value, limit) => Math.max(-limit, Math.min(limit, value));
|
|
1699
|
+
return {
|
|
1700
|
+
onPointerDown: (event) => {
|
|
1701
|
+
if (event.button !== 0 || isInteractiveTarget(event.target)) return;
|
|
1702
|
+
dragRef.current = { x: event.clientX, y: event.clientY, baseX: offset.x, baseY: offset.y };
|
|
1703
|
+
event.currentTarget.setPointerCapture?.(event.pointerId);
|
|
1704
|
+
},
|
|
1705
|
+
onPointerMove: (event) => {
|
|
1706
|
+
const start = dragRef.current;
|
|
1707
|
+
if (!start) return;
|
|
1708
|
+
setOffset({
|
|
1709
|
+
x: clamp(start.baseX + event.clientX - start.x, window.innerWidth / 2 - WINDOW_KEEP_VISIBLE / 2),
|
|
1710
|
+
y: clamp(start.baseY + event.clientY - start.y, window.innerHeight / 2 - WINDOW_KEEP_VISIBLE / 2)
|
|
1711
|
+
});
|
|
1712
|
+
},
|
|
1713
|
+
onPointerUp: (event) => {
|
|
1714
|
+
if (!dragRef.current) return;
|
|
1715
|
+
dragRef.current = null;
|
|
1716
|
+
event.currentTarget.releasePointerCapture?.(event.pointerId);
|
|
1717
|
+
},
|
|
1718
|
+
onPointerCancel: () => {
|
|
1719
|
+
dragRef.current = null;
|
|
1720
|
+
},
|
|
1721
|
+
onDoubleClick: () => setOffset({ x: 0, y: 0 })
|
|
1722
|
+
};
|
|
1723
|
+
}, [windowed, offset.x, offset.y]);
|
|
1683
1724
|
const mergedRef = React10.useCallback(
|
|
1684
1725
|
(node) => {
|
|
1685
1726
|
setContainerEl(node);
|
|
@@ -1707,19 +1748,33 @@ var DialogContent = React10.forwardRef(
|
|
|
1707
1748
|
// can sit beside a host's floating window manager (which starts at
|
|
1708
1749
|
// z=1000); staying below that boundary makes a newly focused window
|
|
1709
1750
|
// usable without coupling the two systems.
|
|
1710
|
-
!isModal && "z-[900]"
|
|
1751
|
+
!isModal && "z-[900]",
|
|
1752
|
+
// Without an overlay the card needs its own separation from the page.
|
|
1753
|
+
windowed && "shadow-2xl ring-1 ring-border/60"
|
|
1711
1754
|
),
|
|
1755
|
+
style: windowed && (offset.x !== 0 || offset.y !== 0) ? { ...style, translate: `${offset.x}px ${offset.y}px` } : style,
|
|
1756
|
+
onInteractOutside: (event) => {
|
|
1757
|
+
onInteractOutside?.(event);
|
|
1758
|
+
if (windowed && !dismissOnOutsideClick) event.preventDefault();
|
|
1759
|
+
},
|
|
1760
|
+
onEscapeKeyDown: (event) => {
|
|
1761
|
+
onEscapeKeyDown?.(event);
|
|
1762
|
+
const pressedIn = event.target instanceof Node && event.target !== document.body ? event.target : document.activeElement;
|
|
1763
|
+
if (windowed && containerEl && !(pressedIn && containerEl.contains(pressedIn))) {
|
|
1764
|
+
event.preventDefault();
|
|
1765
|
+
}
|
|
1766
|
+
},
|
|
1712
1767
|
...hasDescription ? {} : { "aria-describedby": void 0 },
|
|
1713
1768
|
...props,
|
|
1714
1769
|
children: [
|
|
1715
1770
|
hasTitle ? null : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(VisuallyHidden.Root, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DialogPrimitive.Title, { children: "Dialog" }) }),
|
|
1716
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1771
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DialogWindowHandleContext.Provider, { value: handle, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1717
1772
|
PortalContainerProvider,
|
|
1718
1773
|
{
|
|
1719
1774
|
container: containerEl ?? injectedContainer ?? null,
|
|
1720
1775
|
children
|
|
1721
1776
|
}
|
|
1722
|
-
) }),
|
|
1777
|
+
) }) }),
|
|
1723
1778
|
showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
1724
1779
|
DialogPrimitive.Close,
|
|
1725
1780
|
{
|
|
@@ -1742,19 +1797,28 @@ DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
|
1742
1797
|
var DialogHeader = ({
|
|
1743
1798
|
className,
|
|
1744
1799
|
...props
|
|
1745
|
-
}) =>
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
"
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1800
|
+
}) => {
|
|
1801
|
+
const handle = React10.useContext(DialogWindowHandleContext);
|
|
1802
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1803
|
+
"div",
|
|
1804
|
+
{
|
|
1805
|
+
"data-slot": "dialog-header",
|
|
1806
|
+
...handle ? {
|
|
1807
|
+
...handle,
|
|
1808
|
+
"data-window-handle": "",
|
|
1809
|
+
title: "Drag to move \xB7 double-click to recenter"
|
|
1810
|
+
} : {},
|
|
1811
|
+
className: cn(
|
|
1812
|
+
// DialogContent owns an absolute close control. Reserve its hit area in
|
|
1813
|
+
// every header so trailing actions never render underneath it.
|
|
1814
|
+
"flex flex-col space-y-1.5 pr-12 text-center sm:text-left",
|
|
1815
|
+
handle && "cursor-grab select-none active:cursor-grabbing",
|
|
1816
|
+
className
|
|
1817
|
+
),
|
|
1818
|
+
...props
|
|
1819
|
+
}
|
|
1820
|
+
);
|
|
1821
|
+
};
|
|
1758
1822
|
DialogHeader.displayName = "DialogHeader";
|
|
1759
1823
|
var DialogFooter = ({
|
|
1760
1824
|
className,
|
|
@@ -12144,6 +12208,7 @@ function MatrxDataTableCore({
|
|
|
12144
12208
|
toolbar,
|
|
12145
12209
|
hideToolbar = false,
|
|
12146
12210
|
hidePagination = false,
|
|
12211
|
+
paginationLabelFormat,
|
|
12147
12212
|
filterUi,
|
|
12148
12213
|
detail,
|
|
12149
12214
|
expandedDetail,
|
|
@@ -13180,7 +13245,7 @@ function MatrxDataTableCore({
|
|
|
13180
13245
|
const coverageResult = (0, import_react21.useMemo)(() => {
|
|
13181
13246
|
if (!coverage) return null;
|
|
13182
13247
|
return describeCoverage({
|
|
13183
|
-
loaded: data.length,
|
|
13248
|
+
loaded: coverage.loaded ?? data.length,
|
|
13184
13249
|
...coverage.matched === void 0 ? {} : { matched: coverage.matched },
|
|
13185
13250
|
...coverage.total === void 0 ? {} : { total: coverage.total },
|
|
13186
13251
|
...coverage.cap === void 0 ? {} : { cap: coverage.cap },
|
|
@@ -14183,11 +14248,12 @@ function MatrxDataTableCore({
|
|
|
14183
14248
|
notice,
|
|
14184
14249
|
savedViewError ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("p", { role: "alert", className: "shrink-0 text-xs text-destructive", children: savedViewError }) : null,
|
|
14185
14250
|
toolbarActionError ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("p", { role: "alert", className: "shrink-0 text-xs text-destructive", children: toolbarActionError }) : null,
|
|
14186
|
-
!hideToolbar && (viewTabs || toolbar?.title || showSearch || toolbar?.anyOf || toolbar?.layeredFilters || toolbar?.facets && toolbar.facets.length > 0 || toolbar?.leading || toolbar?.actions || toolbar?.refresh || toolbar?.add || tableId && SavedViews || hasActiveFilters || showToolbarCopy || columns.length > 0) && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
14251
|
+
!hideToolbar && (viewTabs || toolbar?.title || toolbar?.titleCount || showSearch || toolbar?.customSearch || toolbar?.anyOf || toolbar?.layeredFilters || toolbar?.facets && toolbar.facets.length > 0 || toolbar?.leading || toolbar?.actions || toolbar?.refresh || toolbar?.add || tableId && SavedViews || hasActiveFilters || showToolbarCopy || columns.length > 0) && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
14187
14252
|
TableTitleRow,
|
|
14188
14253
|
{
|
|
14189
14254
|
tabs: viewTabs ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TableViewWorkspace, { snapshot: currentViewSnapshot, onApply: applySavedView, related: relatedTableActions }, tableId ?? "table") : void 0,
|
|
14190
14255
|
...toolbar?.title === void 0 ? {} : { title: toolbar.title },
|
|
14256
|
+
...toolbar?.titleCount === void 0 ? {} : { count: toolbar.titleCount },
|
|
14191
14257
|
context: tableId && SavedViews ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { "data-matrx-table-view-control": true, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
14192
14258
|
SavedViews,
|
|
14193
14259
|
{
|
|
@@ -14197,7 +14263,7 @@ function MatrxDataTableCore({
|
|
|
14197
14263
|
onApply: applySavedView
|
|
14198
14264
|
}
|
|
14199
14265
|
) }) : void 0,
|
|
14200
|
-
search: showSearch ? intelligentSearchEnabled ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
14266
|
+
search: toolbar?.customSearch ?? (showSearch ? intelligentSearchEnabled ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
14201
14267
|
TableSearch,
|
|
14202
14268
|
{
|
|
14203
14269
|
value: searchValue,
|
|
@@ -14268,7 +14334,7 @@ function MatrxDataTableCore({
|
|
|
14268
14334
|
] }) : null
|
|
14269
14335
|
]
|
|
14270
14336
|
}
|
|
14271
|
-
) : null,
|
|
14337
|
+
) : null),
|
|
14272
14338
|
children: [
|
|
14273
14339
|
toolbar?.layeredFilters ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
14274
14340
|
LayeredFilterBuilder,
|
|
@@ -14922,6 +14988,7 @@ function MatrxDataTableCore({
|
|
|
14922
14988
|
leadingCols,
|
|
14923
14989
|
showActionsCol,
|
|
14924
14990
|
rowNoun: grouping?.rowNoun ?? "row",
|
|
14991
|
+
...grouping?.renderLabel ? { renderLabel: grouping.renderLabel } : {},
|
|
14925
14992
|
onToggle: () => setCollapsedGroups(toggleGroupCollapsed(collapsedGroups, entry.group.key))
|
|
14926
14993
|
},
|
|
14927
14994
|
`matrx-group-${entry.group.key}`
|
|
@@ -15095,7 +15162,7 @@ function MatrxDataTableCore({
|
|
|
15095
15162
|
"div",
|
|
15096
15163
|
{
|
|
15097
15164
|
className: cn(
|
|
15098
|
-
colIdx === 0 && hierarchy && "flex min-w-0 items-center"
|
|
15165
|
+
colIdx === 0 && (hierarchy || canExpandRow(row)) && "flex min-w-0 items-center"
|
|
15099
15166
|
),
|
|
15100
15167
|
children: [
|
|
15101
15168
|
colIdx === 0 && hierarchy ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
@@ -15106,6 +15173,40 @@ function MatrxDataTableCore({
|
|
|
15106
15173
|
disabled: !(hierarchy.canReparent?.(row) ?? true)
|
|
15107
15174
|
}
|
|
15108
15175
|
) : null,
|
|
15176
|
+
colIdx === 0 && canExpandRow(row) ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Tooltip, { children: [
|
|
15177
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
15178
|
+
Button,
|
|
15179
|
+
{
|
|
15180
|
+
type: "button",
|
|
15181
|
+
variant: "ghost",
|
|
15182
|
+
size: "icon",
|
|
15183
|
+
"data-matrx-table-expand-toggle": true,
|
|
15184
|
+
className: "mr-1 h-7 w-7 shrink-0 text-muted-foreground hover:text-foreground [&_svg]:size-4",
|
|
15185
|
+
"aria-label": isRowExpanded(row) ? "Collapse row details" : "Expand row details",
|
|
15186
|
+
"aria-expanded": isRowExpanded(row),
|
|
15187
|
+
onClick: (event) => {
|
|
15188
|
+
event.stopPropagation();
|
|
15189
|
+
toggleExpanded(row);
|
|
15190
|
+
},
|
|
15191
|
+
onKeyDown: (event) => {
|
|
15192
|
+
if (event.key !== "Enter" && event.key !== " ") return;
|
|
15193
|
+
event.preventDefault();
|
|
15194
|
+
event.stopPropagation();
|
|
15195
|
+
toggleExpanded(row);
|
|
15196
|
+
},
|
|
15197
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
15198
|
+
ChevronRight,
|
|
15199
|
+
{
|
|
15200
|
+
className: cn(
|
|
15201
|
+
"transition-transform",
|
|
15202
|
+
isRowExpanded(row) && "rotate-90"
|
|
15203
|
+
)
|
|
15204
|
+
}
|
|
15205
|
+
)
|
|
15206
|
+
}
|
|
15207
|
+
) }),
|
|
15208
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipContent, { children: isRowExpanded(row) ? "Collapse details" : "Expand details" })
|
|
15209
|
+
] }) : null,
|
|
15109
15210
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
15110
15211
|
"div",
|
|
15111
15212
|
{
|
|
@@ -15448,7 +15549,7 @@ function MatrxDataTableCore({
|
|
|
15448
15549
|
GenericTablePagination,
|
|
15449
15550
|
{
|
|
15450
15551
|
totalItems,
|
|
15451
|
-
...sourceTotal === void 0 ? {} : { labelFormat: (start, end, total) => `${(0, import_format5.formatCount)(start)}\u2013${(0, import_format5.formatCount)(end)} of ${(0, import_format5.formatCount)(total)} matching \xB7 ${(0, import_format5.formatCount)(data.length)} / ${(0, import_format5.formatCount)(sourceTotal)} loaded` },
|
|
15552
|
+
...paginationLabelFormat ? { labelFormat: paginationLabelFormat } : sourceTotal === void 0 ? {} : { labelFormat: (start, end, total) => `${(0, import_format5.formatCount)(start)}\u2013${(0, import_format5.formatCount)(end)} of ${(0, import_format5.formatCount)(total)} matching \xB7 ${(0, import_format5.formatCount)(data.length)} / ${(0, import_format5.formatCount)(sourceTotal)} loaded` },
|
|
15452
15553
|
...localProgressiveEnabled ? { progressive: {
|
|
15453
15554
|
shownCount: progressiveRows.shownCount,
|
|
15454
15555
|
loadedCount: data.length,
|
|
@@ -15966,6 +16067,7 @@ function TableGroupHeaderRow({
|
|
|
15966
16067
|
leadingCols,
|
|
15967
16068
|
showActionsCol,
|
|
15968
16069
|
rowNoun,
|
|
16070
|
+
renderLabel,
|
|
15969
16071
|
onToggle
|
|
15970
16072
|
}) {
|
|
15971
16073
|
const count = group.rows.length;
|
|
@@ -15996,7 +16098,7 @@ function TableGroupHeaderRow({
|
|
|
15996
16098
|
children: collapsed ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ChevronRight, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ChevronDown, { className: "h-4 w-4" })
|
|
15997
16099
|
}
|
|
15998
16100
|
),
|
|
15999
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "truncate text-sm font-semibold text-foreground", children: group.label }),
|
|
16101
|
+
renderLabel ? renderLabel(group) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "truncate text-sm font-semibold text-foreground", children: group.label }),
|
|
16000
16102
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "whitespace-nowrap text-xs text-muted-foreground", children: summary })
|
|
16001
16103
|
] }) }, id);
|
|
16002
16104
|
}
|
|
@@ -16342,7 +16444,7 @@ function SavedViewsControl({
|
|
|
16342
16444
|
] })
|
|
16343
16445
|
] }),
|
|
16344
16446
|
dirty ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { id: unsavedChangesId, className: "sr-only", children: "This table view has unsaved changes. Open the view menu to save or update it." }) : null,
|
|
16345
|
-
visibleError ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { role: "alert", className: "basis-full break-words text-xs text-destructive", children: visibleError }) : null,
|
|
16447
|
+
visibleError && !saveOpen ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { role: "alert", className: "basis-full break-words text-xs text-destructive", children: visibleError }) : null,
|
|
16346
16448
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Dialog, { open: saveOpen, onOpenChange: setSaveOpen, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(DialogContent, { children: [
|
|
16347
16449
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(DialogHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(DialogTitle, { children: "Save current view" }) }),
|
|
16348
16450
|
visibleError ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { role: "alert", className: "text-sm text-destructive", children: visibleError }) : null,
|