@ai-matrx/design-system 0.19.8 → 0.19.10
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 +16 -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.cjs.map +1 -1
- package/dist/data-table/host.d.cts +3 -2
- package/dist/data-table/host.d.ts +3 -2
- package/dist/data-table/host.js.map +1 -1
- package/dist/data-table/index.cjs +78 -28
- 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 +78 -28
- 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/pagination.cjs +2 -1
- package/dist/data-table/pagination.cjs.map +1 -1
- package/dist/data-table/pagination.js +2 -1
- package/dist/data-table/pagination.js.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/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/tap-target.css +95 -10
- package/dist/{types-BcIcmIxd.d.cts → types-DqlfNcC5.d.cts} +4 -1
- package/dist/{types-xTXSqmR7.d.ts → types-lNw7TnTM.d.ts} +4 -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-DqlfNcC5.cjs';
|
|
2
2
|
import 'react';
|
|
3
3
|
import './copy-types.cjs';
|
|
4
4
|
|
|
@@ -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-lNw7TnTM.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import './copy-types.js';
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/data-table/host.tsx"],"sourcesContent":["\"use client\";\nimport { createContext, useContext, type Context, type ComponentType, type ReactNode, type MouseEventHandler } from \"react\";\nimport type { CopyControlProps } from \"./copy-types\";\nimport type { TableSavedViewsProps } from \"./types\";\n\nexport type {\n AgentPayloadInput,\n AiCustomSource,\n AiVariant,\n CopyControlProps,\n CopyExportConfig,\n} from \"./copy-types\";\n\nexport interface TableLinkProps { href: string; children: ReactNode; className?: string; onClick?: MouseEventHandler<HTMLAnchorElement>; }\n/**\n * Host-owned toolbar affordance. The table package keeps operation state and\n * labels; an application can supply its canonical icon-button primitive\n * without making the shared package depend on an application UI package.\n */\nexport interface TableToolbarActionProps { ariaLabel: string; tooltip?: string | undefined; disabled?: boolean | undefined; busy?: boolean | undefined; /** Indicates a selected mutually-exclusive action such as the current page. */ active?: boolean | undefined; onClick: () => void; children: ReactNode; }\nexport interface TableSidePanelProps { title: string; titleNode?: ReactNode; description?: ReactNode; onClose: () => void; defaultWidth?: number; headerActions?: ReactNode; children: ReactNode; }\nexport interface TableWindowPanelProps { id: string; title: string; onClose: () => void; width?: number; height?: number; minWidth?: number; minHeight?: number; actionsRight?: ReactNode; bodyClassName?: string; sidebarDefaultSize?: number; sidebarMinSize?: number; sidebar?: ReactNode; children: ReactNode; }\nexport interface TableEntityRefProps { token: string; id: string; href?: string; children: ReactNode; className?: string; }\nexport interface TablePeekProps { kind: string; id: string; href?: string; onClose: () => void; }\nexport interface TableDoors { href?: string; peekKind?: string; canPeek?: boolean; }\nexport interface MatrxDataTableHost { Link?: ComponentType<TableLinkProps>; CopyControls?: ComponentType<CopyControlProps>; ToolbarAction?: ComponentType<TableToolbarActionProps>; SidePanelSurface?: ComponentType<TableSidePanelProps>; WindowPanel?: ComponentType<TableWindowPanelProps>; EntityRef?: ComponentType<TableEntityRefProps>; resolveEntityDoors?: (token: string, id: string, href?: string | null) => TableDoors | null; ResourcePeek?: ComponentType<TablePeekProps>; SavedViews?: ComponentType<TableSavedViewsProps>; notify?: { success(message: string): void; error(message: string): void }; }\n// Public entrypoints are independently bundled in ESM and CJS. The context\n// identity must survive those bundle boundaries; values stay provider-scoped.\nconst HOST_SLOT = Symbol.for(\"ai-matrx.design-system.table-host-context\");\nconst hostRegistry = globalThis as typeof globalThis & { [HOST_SLOT]?: Context<MatrxDataTableHost> };\nconst HostContext = hostRegistry[HOST_SLOT] ??= createContext<MatrxDataTableHost>({});\nexport function MatrxDataTableProvider({ value, children }: { value: MatrxDataTableHost; children: ReactNode }) { return <HostContext.Provider value={value}>{children}</HostContext.Provider>; }\nexport function useMatrxDataTableHost(): MatrxDataTableHost { return useContext(HostContext); }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAoH;AA8BK;AAHzH,IAAM,YAAY,uBAAO,IAAI,2CAA2C;AACxE,IAAM,eAAe;AACrB,IAAM,cAAc,aAAa,SAAS,UAAM,4BAAkC,CAAC,CAAC;AAC7E,SAAS,uBAAuB,EAAE,OAAO,SAAS,GAAuD;AAAE,SAAO,4CAAC,YAAY,UAAZ,EAAqB,OAAe,UAAS;AAAyB;AACzL,SAAS,wBAA4C;AAAE,aAAO,yBAAW,WAAW;AAAG;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/data-table/host.tsx"],"sourcesContent":["\"use client\";\nimport { createContext, useContext, type Context, type ComponentType, type ReactNode, type MouseEventHandler } from \"react\";\nimport type { CopyControlProps } from \"./copy-types\";\nimport type { MatrxDataTableDensity, TableSavedViewsProps } from \"./types\";\n\nexport type {\n AgentPayloadInput,\n AiCustomSource,\n AiVariant,\n CopyControlProps,\n CopyExportConfig,\n} from \"./copy-types\";\n\nexport interface TableLinkProps { href: string; children: ReactNode; className?: string; onClick?: MouseEventHandler<HTMLAnchorElement>; }\n/**\n * Host-owned toolbar affordance. The table package keeps operation state and\n * labels; an application can supply its canonical icon-button primitive\n * without making the shared package depend on an application UI package.\n */\nexport interface TableToolbarActionProps { ariaLabel: string; tooltip?: string | undefined; disabled?: boolean | undefined; busy?: boolean | undefined; /** Indicates a selected mutually-exclusive action such as the current page. */ active?: boolean | undefined; onClick: () => void; children: ReactNode; }\nexport interface TableSidePanelProps { title: string; titleNode?: ReactNode; description?: ReactNode; onClose: () => void; defaultWidth?: number; headerActions?: ReactNode; children: ReactNode; }\nexport interface TableWindowPanelProps { id: string; title: string; onClose: () => void; width?: number; height?: number; minWidth?: number; minHeight?: number; actionsRight?: ReactNode; bodyClassName?: string; sidebarDefaultSize?: number; sidebarMinSize?: number; sidebar?: ReactNode; children: ReactNode; }\nexport interface TableEntityRefProps { token: string; id: string; href?: string; children: ReactNode; className?: string; }\nexport interface TablePeekProps { kind: string; id: string; href?: string; onClose: () => void; }\nexport interface TableDoors { href?: string; peekKind?: string; canPeek?: boolean; }\nexport interface MatrxDataTableHost { Link?: ComponentType<TableLinkProps>; CopyControls?: ComponentType<CopyControlProps>; ToolbarAction?: ComponentType<TableToolbarActionProps>; SidePanelSurface?: ComponentType<TableSidePanelProps>; WindowPanel?: ComponentType<TableWindowPanelProps>; EntityRef?: ComponentType<TableEntityRefProps>; resolveEntityDoors?: (token: string, id: string, href?: string | null) => TableDoors | null; ResourcePeek?: ComponentType<TablePeekProps>; SavedViews?: ComponentType<TableSavedViewsProps>; /** Host default; a table's explicit density takes precedence. */ defaultDensity?: MatrxDataTableDensity; notify?: { success(message: string): void; error(message: string): void }; }\n// Public entrypoints are independently bundled in ESM and CJS. The context\n// identity must survive those bundle boundaries; values stay provider-scoped.\nconst HOST_SLOT = Symbol.for(\"ai-matrx.design-system.table-host-context\");\nconst hostRegistry = globalThis as typeof globalThis & { [HOST_SLOT]?: Context<MatrxDataTableHost> };\nconst HostContext = hostRegistry[HOST_SLOT] ??= createContext<MatrxDataTableHost>({});\nexport function MatrxDataTableProvider({ value, children }: { value: MatrxDataTableHost; children: ReactNode }) { return <HostContext.Provider value={value}>{children}</HostContext.Provider>; }\nexport function useMatrxDataTableHost(): MatrxDataTableHost { return useContext(HostContext); }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAoH;AA8BK;AAHzH,IAAM,YAAY,uBAAO,IAAI,2CAA2C;AACxE,IAAM,eAAe;AACrB,IAAM,cAAc,aAAa,SAAS,UAAM,4BAAkC,CAAC,CAAC;AAC7E,SAAS,uBAAuB,EAAE,OAAO,SAAS,GAAuD;AAAE,SAAO,4CAAC,YAAY,UAAZ,EAAqB,OAAe,UAAS;AAAyB;AACzL,SAAS,wBAA4C;AAAE,aAAO,yBAAW,WAAW;AAAG;","names":[]}
|
|
@@ -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 } from '../types-
|
|
5
|
+
import { b as TableSavedViewsProps, c as MatrxDataTableDensity } from '../types-DqlfNcC5.cjs';
|
|
6
6
|
|
|
7
7
|
interface TableLinkProps {
|
|
8
8
|
href: string;
|
|
@@ -75,7 +75,8 @@ interface MatrxDataTableHost {
|
|
|
75
75
|
EntityRef?: ComponentType<TableEntityRefProps>;
|
|
76
76
|
resolveEntityDoors?: (token: string, id: string, href?: string | null) => TableDoors | null;
|
|
77
77
|
ResourcePeek?: ComponentType<TablePeekProps>;
|
|
78
|
-
SavedViews?: ComponentType<TableSavedViewsProps>;
|
|
78
|
+
SavedViews?: ComponentType<TableSavedViewsProps>; /** Host default; a table's explicit density takes precedence. */
|
|
79
|
+
defaultDensity?: MatrxDataTableDensity;
|
|
79
80
|
notify?: {
|
|
80
81
|
success(message: string): void;
|
|
81
82
|
error(message: string): void;
|
|
@@ -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 } from '../types-
|
|
5
|
+
import { b as TableSavedViewsProps, c as MatrxDataTableDensity } from '../types-lNw7TnTM.js';
|
|
6
6
|
|
|
7
7
|
interface TableLinkProps {
|
|
8
8
|
href: string;
|
|
@@ -75,7 +75,8 @@ interface MatrxDataTableHost {
|
|
|
75
75
|
EntityRef?: ComponentType<TableEntityRefProps>;
|
|
76
76
|
resolveEntityDoors?: (token: string, id: string, href?: string | null) => TableDoors | null;
|
|
77
77
|
ResourcePeek?: ComponentType<TablePeekProps>;
|
|
78
|
-
SavedViews?: ComponentType<TableSavedViewsProps>;
|
|
78
|
+
SavedViews?: ComponentType<TableSavedViewsProps>; /** Host default; a table's explicit density takes precedence. */
|
|
79
|
+
defaultDensity?: MatrxDataTableDensity;
|
|
79
80
|
notify?: {
|
|
80
81
|
success(message: string): void;
|
|
81
82
|
error(message: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/data-table/host.tsx"],"sourcesContent":["\"use client\";\nimport { createContext, useContext, type Context, type ComponentType, type ReactNode, type MouseEventHandler } from \"react\";\nimport type { CopyControlProps } from \"./copy-types\";\nimport type { TableSavedViewsProps } from \"./types\";\n\nexport type {\n AgentPayloadInput,\n AiCustomSource,\n AiVariant,\n CopyControlProps,\n CopyExportConfig,\n} from \"./copy-types\";\n\nexport interface TableLinkProps { href: string; children: ReactNode; className?: string; onClick?: MouseEventHandler<HTMLAnchorElement>; }\n/**\n * Host-owned toolbar affordance. The table package keeps operation state and\n * labels; an application can supply its canonical icon-button primitive\n * without making the shared package depend on an application UI package.\n */\nexport interface TableToolbarActionProps { ariaLabel: string; tooltip?: string | undefined; disabled?: boolean | undefined; busy?: boolean | undefined; /** Indicates a selected mutually-exclusive action such as the current page. */ active?: boolean | undefined; onClick: () => void; children: ReactNode; }\nexport interface TableSidePanelProps { title: string; titleNode?: ReactNode; description?: ReactNode; onClose: () => void; defaultWidth?: number; headerActions?: ReactNode; children: ReactNode; }\nexport interface TableWindowPanelProps { id: string; title: string; onClose: () => void; width?: number; height?: number; minWidth?: number; minHeight?: number; actionsRight?: ReactNode; bodyClassName?: string; sidebarDefaultSize?: number; sidebarMinSize?: number; sidebar?: ReactNode; children: ReactNode; }\nexport interface TableEntityRefProps { token: string; id: string; href?: string; children: ReactNode; className?: string; }\nexport interface TablePeekProps { kind: string; id: string; href?: string; onClose: () => void; }\nexport interface TableDoors { href?: string; peekKind?: string; canPeek?: boolean; }\nexport interface MatrxDataTableHost { Link?: ComponentType<TableLinkProps>; CopyControls?: ComponentType<CopyControlProps>; ToolbarAction?: ComponentType<TableToolbarActionProps>; SidePanelSurface?: ComponentType<TableSidePanelProps>; WindowPanel?: ComponentType<TableWindowPanelProps>; EntityRef?: ComponentType<TableEntityRefProps>; resolveEntityDoors?: (token: string, id: string, href?: string | null) => TableDoors | null; ResourcePeek?: ComponentType<TablePeekProps>; SavedViews?: ComponentType<TableSavedViewsProps>; notify?: { success(message: string): void; error(message: string): void }; }\n// Public entrypoints are independently bundled in ESM and CJS. The context\n// identity must survive those bundle boundaries; values stay provider-scoped.\nconst HOST_SLOT = Symbol.for(\"ai-matrx.design-system.table-host-context\");\nconst hostRegistry = globalThis as typeof globalThis & { [HOST_SLOT]?: Context<MatrxDataTableHost> };\nconst HostContext = hostRegistry[HOST_SLOT] ??= createContext<MatrxDataTableHost>({});\nexport function MatrxDataTableProvider({ value, children }: { value: MatrxDataTableHost; children: ReactNode }) { return <HostContext.Provider value={value}>{children}</HostContext.Provider>; }\nexport function useMatrxDataTableHost(): MatrxDataTableHost { return useContext(HostContext); }\n"],"mappings":";;;;AACA,SAAS,eAAe,kBAA4F;AA8BK;AAHzH,IAAM,YAAY,uBAAO,IAAI,2CAA2C;AACxE,IAAM,eAAe;AACrB,IAAM,cAAc,aAAa,SAAS,MAAM,cAAkC,CAAC,CAAC;AAC7E,SAAS,uBAAuB,EAAE,OAAO,SAAS,GAAuD;AAAE,SAAO,oBAAC,YAAY,UAAZ,EAAqB,OAAe,UAAS;AAAyB;AACzL,SAAS,wBAA4C;AAAE,SAAO,WAAW,WAAW;AAAG;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/data-table/host.tsx"],"sourcesContent":["\"use client\";\nimport { createContext, useContext, type Context, type ComponentType, type ReactNode, type MouseEventHandler } from \"react\";\nimport type { CopyControlProps } from \"./copy-types\";\nimport type { MatrxDataTableDensity, TableSavedViewsProps } from \"./types\";\n\nexport type {\n AgentPayloadInput,\n AiCustomSource,\n AiVariant,\n CopyControlProps,\n CopyExportConfig,\n} from \"./copy-types\";\n\nexport interface TableLinkProps { href: string; children: ReactNode; className?: string; onClick?: MouseEventHandler<HTMLAnchorElement>; }\n/**\n * Host-owned toolbar affordance. The table package keeps operation state and\n * labels; an application can supply its canonical icon-button primitive\n * without making the shared package depend on an application UI package.\n */\nexport interface TableToolbarActionProps { ariaLabel: string; tooltip?: string | undefined; disabled?: boolean | undefined; busy?: boolean | undefined; /** Indicates a selected mutually-exclusive action such as the current page. */ active?: boolean | undefined; onClick: () => void; children: ReactNode; }\nexport interface TableSidePanelProps { title: string; titleNode?: ReactNode; description?: ReactNode; onClose: () => void; defaultWidth?: number; headerActions?: ReactNode; children: ReactNode; }\nexport interface TableWindowPanelProps { id: string; title: string; onClose: () => void; width?: number; height?: number; minWidth?: number; minHeight?: number; actionsRight?: ReactNode; bodyClassName?: string; sidebarDefaultSize?: number; sidebarMinSize?: number; sidebar?: ReactNode; children: ReactNode; }\nexport interface TableEntityRefProps { token: string; id: string; href?: string; children: ReactNode; className?: string; }\nexport interface TablePeekProps { kind: string; id: string; href?: string; onClose: () => void; }\nexport interface TableDoors { href?: string; peekKind?: string; canPeek?: boolean; }\nexport interface MatrxDataTableHost { Link?: ComponentType<TableLinkProps>; CopyControls?: ComponentType<CopyControlProps>; ToolbarAction?: ComponentType<TableToolbarActionProps>; SidePanelSurface?: ComponentType<TableSidePanelProps>; WindowPanel?: ComponentType<TableWindowPanelProps>; EntityRef?: ComponentType<TableEntityRefProps>; resolveEntityDoors?: (token: string, id: string, href?: string | null) => TableDoors | null; ResourcePeek?: ComponentType<TablePeekProps>; SavedViews?: ComponentType<TableSavedViewsProps>; /** Host default; a table's explicit density takes precedence. */ defaultDensity?: MatrxDataTableDensity; notify?: { success(message: string): void; error(message: string): void }; }\n// Public entrypoints are independently bundled in ESM and CJS. The context\n// identity must survive those bundle boundaries; values stay provider-scoped.\nconst HOST_SLOT = Symbol.for(\"ai-matrx.design-system.table-host-context\");\nconst hostRegistry = globalThis as typeof globalThis & { [HOST_SLOT]?: Context<MatrxDataTableHost> };\nconst HostContext = hostRegistry[HOST_SLOT] ??= createContext<MatrxDataTableHost>({});\nexport function MatrxDataTableProvider({ value, children }: { value: MatrxDataTableHost; children: ReactNode }) { return <HostContext.Provider value={value}>{children}</HostContext.Provider>; }\nexport function useMatrxDataTableHost(): MatrxDataTableHost { return useContext(HostContext); }\n"],"mappings":";;;;AACA,SAAS,eAAe,kBAA4F;AA8BK;AAHzH,IAAM,YAAY,uBAAO,IAAI,2CAA2C;AACxE,IAAM,eAAe;AACrB,IAAM,cAAc,aAAa,SAAS,MAAM,cAAkC,CAAC,CAAC;AAC7E,SAAS,uBAAuB,EAAE,OAAO,SAAS,GAAuD;AAAE,SAAO,oBAAC,YAAY,UAAZ,EAAqB,OAAe,UAAS;AAAyB;AACzL,SAAS,wBAA4C;AAAE,SAAO,WAAW,WAAW;AAAG;","names":[]}
|
|
@@ -1880,7 +1880,7 @@ function PaginationAction({
|
|
|
1880
1880
|
...props
|
|
1881
1881
|
}) {
|
|
1882
1882
|
if (HostAction) {
|
|
1883
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: visibilityClassName, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1883
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { "data-matrx-table-icon-action": true, className: visibilityClassName, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1884
1884
|
HostAction,
|
|
1885
1885
|
{
|
|
1886
1886
|
...props,
|
|
@@ -1905,6 +1905,7 @@ function PaginationAction({
|
|
|
1905
1905
|
fallbackClassName
|
|
1906
1906
|
),
|
|
1907
1907
|
"aria-current": active ? "page" : void 0,
|
|
1908
|
+
"data-matrx-table-icon-action": true,
|
|
1908
1909
|
children: props.children
|
|
1909
1910
|
}
|
|
1910
1911
|
);
|
|
@@ -7896,10 +7897,10 @@ function TableToolbarAction({
|
|
|
7896
7897
|
children
|
|
7897
7898
|
}) {
|
|
7898
7899
|
if (HostAction) {
|
|
7899
|
-
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(HostAction, { ariaLabel, tooltip, disabled, busy, onClick, children });
|
|
7900
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { "data-matrx-table-toolbar-action": true, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(HostAction, { ariaLabel, tooltip, disabled, busy, onClick, children }) });
|
|
7900
7901
|
}
|
|
7901
7902
|
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Tooltip, { children: [
|
|
7902
|
-
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "inline-flex", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Button, { type: "button", variant: "ghost", size: "icon", className: "h-11 w-11 [&_svg]:size-5", "aria-label": ariaLabel, "aria-busy": busy || void 0, disabled, onClick, children: (0, import_react17.isValidElement)(children) ? (0, import_react17.cloneElement)(children, { className: cn("h-5 w-5", children.props.className) }) : children }) }) }),
|
|
7903
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { "data-matrx-table-toolbar-action": true, className: "inline-flex", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Button, { type: "button", variant: "ghost", size: "icon", className: "h-11 w-11 [&_svg]:size-5", "aria-label": ariaLabel, "aria-busy": busy || void 0, disabled, onClick, children: (0, import_react17.isValidElement)(children) ? (0, import_react17.cloneElement)(children, { className: cn("h-5 w-5", children.props.className) }) : children }) }) }),
|
|
7903
7904
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(TooltipContent, { children: tooltip ?? ariaLabel })
|
|
7904
7905
|
] });
|
|
7905
7906
|
}
|
|
@@ -8070,7 +8071,8 @@ function MatrxDataTableCore({
|
|
|
8070
8071
|
tableClassName,
|
|
8071
8072
|
mobileCards,
|
|
8072
8073
|
mobileCardsBreakpoint = "sm",
|
|
8073
|
-
onRowOpen
|
|
8074
|
+
onRowOpen,
|
|
8075
|
+
density
|
|
8074
8076
|
}) {
|
|
8075
8077
|
const appendQuery = query?.mode === "controlled-append" ? query : null;
|
|
8076
8078
|
const appendQueryKey = appendQuery?.pagination.queryKey ?? null;
|
|
@@ -8080,6 +8082,7 @@ function MatrxDataTableCore({
|
|
|
8080
8082
|
const isLoading = appendQuery ? appendQuery.pagination.loading : suppliedLoading;
|
|
8081
8083
|
const isFetching = appendQuery ? appendQuery.pagination.isFetchingNextPage : suppliedFetching;
|
|
8082
8084
|
const host = useMatrxDataTableHost();
|
|
8085
|
+
const resolvedDensity = density ?? host.defaultDensity ?? "normal";
|
|
8083
8086
|
const SavedViews = host.SavedViews;
|
|
8084
8087
|
const Link = host.Link ?? DefaultTableLink;
|
|
8085
8088
|
const SidePanelSurface = host.SidePanelSurface ?? DefaultTableSidePanel;
|
|
@@ -8088,7 +8091,7 @@ function MatrxDataTableCore({
|
|
|
8088
8091
|
const [toolbarActionError, setToolbarActionError] = (0, import_react17.useState)(null);
|
|
8089
8092
|
const [toolbarActionPending, setToolbarActionPending] = (0, import_react17.useState)({ refresh: false, add: false });
|
|
8090
8093
|
const toolbarActionPendingRef = (0, import_react17.useRef)({ refresh: false, add: false });
|
|
8091
|
-
const CHECKBOX_TAP_AREA = "
|
|
8094
|
+
const CHECKBOX_TAP_AREA = "h-4 w-4 touch-manipulation";
|
|
8092
8095
|
const mobileCardsClass = mobileCardsBreakpoint === "lg" ? "lg:hidden" : "sm:hidden";
|
|
8093
8096
|
const tableWithCardsClass = mobileCardsBreakpoint === "lg" ? "max-lg:hidden" : "max-sm:hidden";
|
|
8094
8097
|
const controlledQuery = query?.mode === "controlled" || query?.mode === "controlled-local" || query?.mode === "controlled-append" ? query : null;
|
|
@@ -8509,13 +8512,23 @@ function MatrxDataTableCore({
|
|
|
8509
8512
|
0
|
|
8510
8513
|
);
|
|
8511
8514
|
const selectionWidth = widthFor("th[data-matrx-table-selection-column]");
|
|
8512
|
-
const
|
|
8515
|
+
const headerActionsWidth = widthFor("th[data-matrx-table-actions-column]");
|
|
8516
|
+
const visibleActionStrips = Array.from(
|
|
8517
|
+
table?.querySelectorAll("[data-matrx-table-row-actions]") ?? []
|
|
8518
|
+
).filter(
|
|
8519
|
+
(element) => element.closest("table") === table && element.getClientRects().length > 0
|
|
8520
|
+
);
|
|
8521
|
+
const actionContentWidth = Math.max(
|
|
8522
|
+
0,
|
|
8523
|
+
...visibleActionStrips.map((element) => Math.ceil(element.scrollWidth))
|
|
8524
|
+
);
|
|
8525
|
+
const actionsWidth = actionContentWidth || headerActionsWidth;
|
|
8513
8526
|
return {
|
|
8514
8527
|
...headerTotal > 0 ? { tableWidth: Math.ceil(headerTotal) } : {},
|
|
8515
8528
|
...selectionWidth === void 0 ? {} : { selectionWidth },
|
|
8516
8529
|
...actionsWidth === void 0 ? {} : { actionsWidth }
|
|
8517
8530
|
};
|
|
8518
|
-
}, []);
|
|
8531
|
+
}, [resolvedDensity]);
|
|
8519
8532
|
const captureResizeGestureSnapshot = (0, import_react17.useCallback)(() => {
|
|
8520
8533
|
resizeGestureSnapshotRef.current = {
|
|
8521
8534
|
widths: measureVisibleColumnWidths(),
|
|
@@ -8586,6 +8599,27 @@ function MatrxDataTableCore({
|
|
|
8586
8599
|
}
|
|
8587
8600
|
if (fixedTableGeometry === null) setFixedTableGeometry(measureFixedTableGeometry());
|
|
8588
8601
|
}, [fixedTableGeometry, measureFixedTableGeometry, usesMeasuredFixedLayout]);
|
|
8602
|
+
(0, import_react17.useLayoutEffect)(() => {
|
|
8603
|
+
if (!usesMeasuredFixedLayout) return;
|
|
8604
|
+
const table = tableRef.current;
|
|
8605
|
+
if (!table) return;
|
|
8606
|
+
const utilityHeaders = Array.from(table.querySelectorAll(
|
|
8607
|
+
"th[data-matrx-table-selection-column], th[data-matrx-table-actions-column]"
|
|
8608
|
+
));
|
|
8609
|
+
const utilityStyles = utilityHeaders.map((header) => header.getAttribute("style"));
|
|
8610
|
+
const resizedWidth = table.style.getPropertyValue("--matrx-resized-table-width");
|
|
8611
|
+
for (const header of utilityHeaders) header.removeAttribute("style");
|
|
8612
|
+
table.style.removeProperty("--matrx-resized-table-width");
|
|
8613
|
+
void table.getBoundingClientRect();
|
|
8614
|
+
const geometry = measureFixedTableGeometry();
|
|
8615
|
+
utilityHeaders.forEach((header, index) => {
|
|
8616
|
+
const style = utilityStyles[index];
|
|
8617
|
+
if (style == null) header.removeAttribute("style");
|
|
8618
|
+
else header.setAttribute("style", style);
|
|
8619
|
+
});
|
|
8620
|
+
table.style.setProperty("--matrx-resized-table-width", resizedWidth);
|
|
8621
|
+
setFixedTableGeometry(geometry);
|
|
8622
|
+
}, [resolvedDensity, measureFixedTableGeometry, usesMeasuredFixedLayout]);
|
|
8589
8623
|
const fixedLayoutActive = usesMeasuredFixedLayout && fixedTableGeometry !== null;
|
|
8590
8624
|
const declaredVisibleCopyColumns = (0, import_react17.useMemo)(
|
|
8591
8625
|
() => visibleColumns.filter((column) => column.accessorFn !== void 0 || column.accessorKey !== void 0),
|
|
@@ -9391,16 +9425,10 @@ function MatrxDataTableCore({
|
|
|
9391
9425
|
{
|
|
9392
9426
|
ref: setDiagnosticBoundaryRef,
|
|
9393
9427
|
"data-matrx-table": true,
|
|
9428
|
+
"data-matrx-table-density": resolvedDensity,
|
|
9394
9429
|
"data-url-state-table": urlState?.id,
|
|
9395
9430
|
className: cn(
|
|
9396
|
-
|
|
9397
|
-
// switches. Radix renders those as `<button role="checkbox">`, so the
|
|
9398
|
-
// blanket `[&_button]` rule inflated a 14px checkbox into a 44×44
|
|
9399
|
-
// bordered empty box — measured on Search Console → Queries at 375px,
|
|
9400
|
-
// where every row read as an empty text input rather than a selection
|
|
9401
|
-
// control. The control keeps its own size and gains the 44px tap area
|
|
9402
|
-
// as an invisible ::before below.
|
|
9403
|
-
"flex h-full min-h-0 flex-col gap-2 px-0 py-2 max-lg:[&_button:not([role=checkbox]):not([role=radio]):not([role=switch])]:min-h-11 max-lg:[&_button:not([role=checkbox]):not([role=radio]):not([role=switch])]:min-w-11 max-lg:[&_input]:min-h-11 max-lg:[&_table_a]:inline-flex max-lg:[&_table_a]:min-h-11 max-lg:[&_table_a]:items-center",
|
|
9431
|
+
"flex h-full min-h-0 flex-col gap-2 px-0 py-2",
|
|
9404
9432
|
className
|
|
9405
9433
|
),
|
|
9406
9434
|
children: [
|
|
@@ -9412,7 +9440,7 @@ function MatrxDataTableCore({
|
|
|
9412
9440
|
TableTitleRow,
|
|
9413
9441
|
{
|
|
9414
9442
|
...toolbar?.title === void 0 ? {} : { title: toolbar.title },
|
|
9415
|
-
context: tableId && SavedViews ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
9443
|
+
context: tableId && SavedViews ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { "data-matrx-table-view-control": true, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
9416
9444
|
SavedViews,
|
|
9417
9445
|
{
|
|
9418
9446
|
tableId,
|
|
@@ -9420,7 +9448,7 @@ function MatrxDataTableCore({
|
|
|
9420
9448
|
defaultSnapshot: declaredDefaultViewSnapshot,
|
|
9421
9449
|
onApply: applySavedView
|
|
9422
9450
|
}
|
|
9423
|
-
) : void 0,
|
|
9451
|
+
) }) : void 0,
|
|
9424
9452
|
search: showSearch ? intelligentSearchEnabled ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
9425
9453
|
TableSearch,
|
|
9426
9454
|
{
|
|
@@ -9902,13 +9930,24 @@ function MatrxDataTableCore({
|
|
|
9902
9930
|
className: "h-9 w-9 px-2 text-left align-middle",
|
|
9903
9931
|
style: fixedUtilityWidth(fixedTableGeometry?.selectionWidth),
|
|
9904
9932
|
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
9905
|
-
|
|
9933
|
+
"div",
|
|
9906
9934
|
{
|
|
9907
|
-
|
|
9908
|
-
|
|
9909
|
-
|
|
9910
|
-
|
|
9911
|
-
|
|
9935
|
+
"data-matrx-table-selection-target": true,
|
|
9936
|
+
onClick: (event) => {
|
|
9937
|
+
if (event.target === event.currentTarget) {
|
|
9938
|
+
event.currentTarget.querySelector('[role="checkbox"]')?.click();
|
|
9939
|
+
}
|
|
9940
|
+
},
|
|
9941
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
9942
|
+
Checkbox,
|
|
9943
|
+
{
|
|
9944
|
+
className: CHECKBOX_TAP_AREA,
|
|
9945
|
+
checked: allOnPageSelected ? true : someOnPageSelected ? "indeterminate" : false,
|
|
9946
|
+
disabled: selectableRows.length === 0,
|
|
9947
|
+
onCheckedChange: toggleAllOnPage,
|
|
9948
|
+
"aria-label": allOnPageSelected ? "Clear selection on this page" : "Select every row on this page"
|
|
9949
|
+
}
|
|
9950
|
+
)
|
|
9912
9951
|
}
|
|
9913
9952
|
)
|
|
9914
9953
|
}
|
|
@@ -10083,12 +10122,23 @@ function MatrxDataTableCore({
|
|
|
10083
10122
|
style: fixedUtilityWidth(fixedTableGeometry?.selectionWidth),
|
|
10084
10123
|
onClick: (e) => e.stopPropagation(),
|
|
10085
10124
|
children: selection.isRowSelectable?.(row) ?? true ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
10086
|
-
|
|
10125
|
+
"div",
|
|
10087
10126
|
{
|
|
10088
|
-
|
|
10089
|
-
|
|
10090
|
-
|
|
10091
|
-
|
|
10127
|
+
"data-matrx-table-selection-target": true,
|
|
10128
|
+
onClick: (event) => {
|
|
10129
|
+
if (event.target === event.currentTarget) {
|
|
10130
|
+
event.currentTarget.querySelector('[role="checkbox"]')?.click();
|
|
10131
|
+
}
|
|
10132
|
+
},
|
|
10133
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
10134
|
+
Checkbox,
|
|
10135
|
+
{
|
|
10136
|
+
className: CHECKBOX_TAP_AREA,
|
|
10137
|
+
checked: isChecked,
|
|
10138
|
+
"aria-label": `Select this ${selectionNoun}`,
|
|
10139
|
+
onClick: (e) => toggleRowSelected(index, e.shiftKey)
|
|
10140
|
+
}
|
|
10141
|
+
)
|
|
10092
10142
|
}
|
|
10093
10143
|
) : null
|
|
10094
10144
|
}
|