@ai-matrx/design-system 0.19.7 → 0.19.9
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 +17 -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.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 +65 -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 +65 -25
- 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 +91 -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;
|
|
@@ -8515,7 +8518,7 @@ function MatrxDataTableCore({
|
|
|
8515
8518
|
...selectionWidth === void 0 ? {} : { selectionWidth },
|
|
8516
8519
|
...actionsWidth === void 0 ? {} : { actionsWidth }
|
|
8517
8520
|
};
|
|
8518
|
-
}, []);
|
|
8521
|
+
}, [resolvedDensity]);
|
|
8519
8522
|
const captureResizeGestureSnapshot = (0, import_react17.useCallback)(() => {
|
|
8520
8523
|
resizeGestureSnapshotRef.current = {
|
|
8521
8524
|
widths: measureVisibleColumnWidths(),
|
|
@@ -8586,6 +8589,27 @@ function MatrxDataTableCore({
|
|
|
8586
8589
|
}
|
|
8587
8590
|
if (fixedTableGeometry === null) setFixedTableGeometry(measureFixedTableGeometry());
|
|
8588
8591
|
}, [fixedTableGeometry, measureFixedTableGeometry, usesMeasuredFixedLayout]);
|
|
8592
|
+
(0, import_react17.useLayoutEffect)(() => {
|
|
8593
|
+
if (!usesMeasuredFixedLayout) return;
|
|
8594
|
+
const table = tableRef.current;
|
|
8595
|
+
if (!table) return;
|
|
8596
|
+
const utilityHeaders = Array.from(table.querySelectorAll(
|
|
8597
|
+
"th[data-matrx-table-selection-column], th[data-matrx-table-actions-column]"
|
|
8598
|
+
));
|
|
8599
|
+
const utilityStyles = utilityHeaders.map((header) => header.getAttribute("style"));
|
|
8600
|
+
const resizedWidth = table.style.getPropertyValue("--matrx-resized-table-width");
|
|
8601
|
+
for (const header of utilityHeaders) header.removeAttribute("style");
|
|
8602
|
+
table.style.removeProperty("--matrx-resized-table-width");
|
|
8603
|
+
void table.getBoundingClientRect();
|
|
8604
|
+
const geometry = measureFixedTableGeometry();
|
|
8605
|
+
utilityHeaders.forEach((header, index) => {
|
|
8606
|
+
const style = utilityStyles[index];
|
|
8607
|
+
if (style == null) header.removeAttribute("style");
|
|
8608
|
+
else header.setAttribute("style", style);
|
|
8609
|
+
});
|
|
8610
|
+
table.style.setProperty("--matrx-resized-table-width", resizedWidth);
|
|
8611
|
+
setFixedTableGeometry(geometry);
|
|
8612
|
+
}, [resolvedDensity, measureFixedTableGeometry, usesMeasuredFixedLayout]);
|
|
8589
8613
|
const fixedLayoutActive = usesMeasuredFixedLayout && fixedTableGeometry !== null;
|
|
8590
8614
|
const declaredVisibleCopyColumns = (0, import_react17.useMemo)(
|
|
8591
8615
|
() => visibleColumns.filter((column) => column.accessorFn !== void 0 || column.accessorKey !== void 0),
|
|
@@ -9391,16 +9415,10 @@ function MatrxDataTableCore({
|
|
|
9391
9415
|
{
|
|
9392
9416
|
ref: setDiagnosticBoundaryRef,
|
|
9393
9417
|
"data-matrx-table": true,
|
|
9418
|
+
"data-matrx-table-density": resolvedDensity,
|
|
9394
9419
|
"data-url-state-table": urlState?.id,
|
|
9395
9420
|
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 p-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",
|
|
9421
|
+
"flex h-full min-h-0 flex-col gap-2 px-0 py-2",
|
|
9404
9422
|
className
|
|
9405
9423
|
),
|
|
9406
9424
|
children: [
|
|
@@ -9902,13 +9920,24 @@ function MatrxDataTableCore({
|
|
|
9902
9920
|
className: "h-9 w-9 px-2 text-left align-middle",
|
|
9903
9921
|
style: fixedUtilityWidth(fixedTableGeometry?.selectionWidth),
|
|
9904
9922
|
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
9905
|
-
|
|
9923
|
+
"div",
|
|
9906
9924
|
{
|
|
9907
|
-
|
|
9908
|
-
|
|
9909
|
-
|
|
9910
|
-
|
|
9911
|
-
|
|
9925
|
+
"data-matrx-table-selection-target": true,
|
|
9926
|
+
onClick: (event) => {
|
|
9927
|
+
if (event.target === event.currentTarget) {
|
|
9928
|
+
event.currentTarget.querySelector('[role="checkbox"]')?.click();
|
|
9929
|
+
}
|
|
9930
|
+
},
|
|
9931
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
9932
|
+
Checkbox,
|
|
9933
|
+
{
|
|
9934
|
+
className: CHECKBOX_TAP_AREA,
|
|
9935
|
+
checked: allOnPageSelected ? true : someOnPageSelected ? "indeterminate" : false,
|
|
9936
|
+
disabled: selectableRows.length === 0,
|
|
9937
|
+
onCheckedChange: toggleAllOnPage,
|
|
9938
|
+
"aria-label": allOnPageSelected ? "Clear selection on this page" : "Select every row on this page"
|
|
9939
|
+
}
|
|
9940
|
+
)
|
|
9912
9941
|
}
|
|
9913
9942
|
)
|
|
9914
9943
|
}
|
|
@@ -10083,12 +10112,23 @@ function MatrxDataTableCore({
|
|
|
10083
10112
|
style: fixedUtilityWidth(fixedTableGeometry?.selectionWidth),
|
|
10084
10113
|
onClick: (e) => e.stopPropagation(),
|
|
10085
10114
|
children: selection.isRowSelectable?.(row) ?? true ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
10086
|
-
|
|
10115
|
+
"div",
|
|
10087
10116
|
{
|
|
10088
|
-
|
|
10089
|
-
|
|
10090
|
-
|
|
10091
|
-
|
|
10117
|
+
"data-matrx-table-selection-target": true,
|
|
10118
|
+
onClick: (event) => {
|
|
10119
|
+
if (event.target === event.currentTarget) {
|
|
10120
|
+
event.currentTarget.querySelector('[role="checkbox"]')?.click();
|
|
10121
|
+
}
|
|
10122
|
+
},
|
|
10123
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
10124
|
+
Checkbox,
|
|
10125
|
+
{
|
|
10126
|
+
className: CHECKBOX_TAP_AREA,
|
|
10127
|
+
checked: isChecked,
|
|
10128
|
+
"aria-label": `Select this ${selectionNoun}`,
|
|
10129
|
+
onClick: (e) => toggleRowSelected(index, e.shiftKey)
|
|
10130
|
+
}
|
|
10131
|
+
)
|
|
10092
10132
|
}
|
|
10093
10133
|
) : null
|
|
10094
10134
|
}
|