@ai-matrx/design-system 0.48.1 → 0.48.5
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 +47 -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/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 +87 -27
- package/dist/data-table/index.cjs.map +1 -1
- package/dist/data-table/index.d.cts +3 -21
- package/dist/data-table/index.d.ts +3 -21
- package/dist/data-table/index.js +184 -124
- 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 +4 -1
- package/dist/data-table/pagination.cjs.map +1 -1
- package/dist/data-table/pagination.js +4 -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/xlsx.d.cts +1 -1
- package/dist/data-table/xlsx.d.ts +1 -1
- package/dist/index.cjs +43 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +40 -2
- package/dist/index.d.ts +40 -2
- package/dist/index.js +43 -13
- package/dist/index.js.map +1 -1
- package/dist/tap-target.css +4 -1
- package/dist/{types-DuvXeW4i.d.cts → types-Dh3wRc0N.d.cts} +52 -1
- package/dist/{types-oza_vuRW.d.ts → types-hMqC2Fwn.d.ts} +52 -1
- package/package.json +1 -1
package/dist/tap-target.css
CHANGED
|
@@ -191,7 +191,10 @@
|
|
|
191
191
|
align-items: center;
|
|
192
192
|
justify-content: center;
|
|
193
193
|
}
|
|
194
|
-
|
|
194
|
+
/* A phone-width table (its cards layout) is held to the touch floor too, not only a
|
|
195
|
+
coarse pointer: a 375px view measured 32x32 kebabs and pager buttons (page-pass
|
|
196
|
+
2026-09-27) — the same width contract `.matrx-touch-targets` uses. */
|
|
197
|
+
@media (pointer: coarse), (max-width: 639px) {
|
|
195
198
|
[data-matrx-table][data-matrx-table-density] :is([data-matrx-table-search], [data-matrx-table-footer], [data-matrx-table-row-actions], [data-matrx-table-toolbar-action]) :is(button, input, a, [role="combobox"]),
|
|
196
199
|
[data-matrx-table][data-matrx-table-density] :is([data-matrx-table-scroll-control], [data-matrx-table-selection-target]) {
|
|
197
200
|
min-height: 2.75rem !important;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ContentTransferReference } from './content-transfer.cjs';
|
|
2
|
+
import * as React from 'react';
|
|
2
3
|
import { ReactNode } from 'react';
|
|
3
4
|
import { AgentPayloadInput, AiVariant, AiCustomSource, CopyExportConfig } from './data-table/copy-types.cjs';
|
|
4
5
|
import { TableStyle, ChoiceColorLookup } from './data-table/table-style.cjs';
|
|
@@ -10,6 +11,45 @@ import { SpreadsheetIntent, SpreadsheetPastePlan, SpreadsheetController } from '
|
|
|
10
11
|
import { DateColumnFilterValue } from './data-table/date-filter.cjs';
|
|
11
12
|
import { MatrxTableMenuItem, MatrxTableMenuPayload, MatrxTableMenuSection } from './data-table/menu-targets.cjs';
|
|
12
13
|
|
|
14
|
+
interface TableViewTab {
|
|
15
|
+
id: string;
|
|
16
|
+
label: string;
|
|
17
|
+
count?: number;
|
|
18
|
+
}
|
|
19
|
+
interface TableViewTabsProps {
|
|
20
|
+
tabs: readonly TableViewTab[];
|
|
21
|
+
activeId: string;
|
|
22
|
+
onSelect: (id: string) => void;
|
|
23
|
+
onAdd: () => void;
|
|
24
|
+
onClose: (id: string) => void;
|
|
25
|
+
onRename: (id: string, label: string) => void;
|
|
26
|
+
/** Related-data doors use the same row, without creating another table. */
|
|
27
|
+
related?: ReactNode;
|
|
28
|
+
/** Open this tab's name field now (a just-created tab asks for its name). */
|
|
29
|
+
editingId?: string | null;
|
|
30
|
+
/** The name field closed with Escape (a just-created tab is then discarded). */
|
|
31
|
+
onEditCancel?: (id: string) => void;
|
|
32
|
+
/** The name field closed (committed or cancelled). */
|
|
33
|
+
onEditDone?: () => void;
|
|
34
|
+
}
|
|
35
|
+
/** One shared tab strip; hosts may own URL state without copying its UI. */
|
|
36
|
+
declare function TableViewTabs({ tabs, activeId, onSelect, onAdd, onClose, onRename, related, editingId, onEditCancel, onEditDone }: TableViewTabsProps): React.JSX.Element;
|
|
37
|
+
/** A named view the host persists (its preferences store); the default tab is never stored. */
|
|
38
|
+
interface SavedTableViewTab {
|
|
39
|
+
id: string;
|
|
40
|
+
label: string;
|
|
41
|
+
snapshot: TableViewSnapshot;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Where working view tabs live. Without a store they are in memory (gone on reload) —
|
|
45
|
+
* a host that offers the "+" on a page people come back to passes one, so a view
|
|
46
|
+
* made with "+" is named and survives a reload (page-pass 2026-09-27).
|
|
47
|
+
*/
|
|
48
|
+
interface TableViewTabsStore {
|
|
49
|
+
views: readonly SavedTableViewTab[];
|
|
50
|
+
onChange: (views: SavedTableViewTab[]) => void;
|
|
51
|
+
}
|
|
52
|
+
|
|
13
53
|
type TableSearchRole = "id" | "name" | "description" | "other";
|
|
14
54
|
interface TableSearchScope {
|
|
15
55
|
id: string;
|
|
@@ -631,6 +671,12 @@ interface MatrxDataTableToolbar {
|
|
|
631
671
|
portalInto?: HTMLElement | null;
|
|
632
672
|
/** Keep the toolbar on ONE row at every width; a narrow screen scrolls it sideways. */
|
|
633
673
|
singleRow?: boolean;
|
|
674
|
+
/**
|
|
675
|
+
* `false`: no Columns button — the placing page already owns the ONE column picker (a list
|
|
676
|
+
* shell with its own picker that hands the table only the visible columns; two pickers that
|
|
677
|
+
* disagree about which columns exist is worse than one). Default: shown.
|
|
678
|
+
*/
|
|
679
|
+
columns?: boolean;
|
|
634
680
|
/**
|
|
635
681
|
* WHERE THE ROW'S CONTROLS GO WHEN IT HAS NO ROOM (lane C, merged-grid review 2026-09-26):
|
|
636
682
|
* `inline` (default) draws them on the row; `menu` puts the table's controls and `actions`
|
|
@@ -1413,6 +1459,11 @@ interface MatrxDataTableProps<T> {
|
|
|
1413
1459
|
defaultViewSnapshot?: TableViewSnapshot;
|
|
1414
1460
|
/** Working view tabs, on by default. Disable for embedded/single-purpose tables. */
|
|
1415
1461
|
viewTabs?: boolean;
|
|
1462
|
+
/**
|
|
1463
|
+
* Where the working view tabs are kept. Absent: in memory, gone on reload. A page people
|
|
1464
|
+
* return to passes its preferences store, so a view made with "+" is named and survives.
|
|
1465
|
+
*/
|
|
1466
|
+
viewTabsStore?: TableViewTabsStore;
|
|
1416
1467
|
/** Related-data controls shown at the right of the working-view tab strip. */
|
|
1417
1468
|
relatedTableActions?: ReactNode;
|
|
1418
1469
|
/** Optional URL/source-owned column order and visibility. */
|
|
@@ -1639,4 +1690,4 @@ interface MatrxDataTableProps<T> {
|
|
|
1639
1690
|
onRowOpen?: (row: T) => void;
|
|
1640
1691
|
}
|
|
1641
1692
|
|
|
1642
|
-
export {
|
|
1693
|
+
export { TableViewTabs as $, type AnyOfColumnSearch as A, type MatrxDataTableQueryControl as B, type ColumnFiltersState as C, type MatrxDataTableReadStatus as D, type MatrxDataTableSelectionConfig as E, type MatrxDataTableSingleExpandedDetailConfig as F, type MatrxDataTableSourceProcessing as G, type MatrxDataTableSpreadsheetConfig as H, type MatrxDataTableStyleConfig as I, type MatrxDataTableToolbar as J, type MatrxDataTableUrlStateConfig as K, type LayeredFilterRule as L, type MatrxColumnDef as M, type MatrxDataTableVirtualizeConfig as N, type MatrxDataTableWindowConfig as O, type MatrxTablePagination as P, type NumberFilterOp as Q, type SavedTableViewTab as R, type SortState as S, type TableSearchMatchMode as T, type SortDirection as U, type SpreadsheetSelection as V, type TableRankedSearchOptions as W, type TableSearchRole as X, type TableSearchScope as Y, type TableViewQuery as Z, type TableViewTab as _, type ColumnFilterValue as a, type TableViewTabsProps as a0, type TableViewTabsStore as a1, type TextFilterMode as a2, type ToolbarFacet as a3, inferTableSearchRole as a4, rankTableSearchRows as a5, resolveTableSearchScopes as a6, LAYERED_FILTER_OPERATORS as a7, LAYERED_FILTER_OPERATOR_LABELS as a8, type LayeredFilterField as a9, type LayeredFilterOperator as aa, columnFiltersToLayeredRules as ab, completeLayeredFilterRules as ac, decodeLayeredFilterRules as ad, encodeLayeredFilterRules as ae, isCompleteLayeredFilterRule as af, isLayeredFilterOperator as ag, layeredFilterMatchesValue as ah, layeredFilterNeedsValue as ai, layeredFilterRuleSummary as aj, operatorsForLayeredField as ak, type TableSavedViewsProps as b, type MatrxDataTableDensity as c, type MatrxDataTableRecordControls as d, type MatrxDataTableQueryState as e, type ColumnFilterKind as f, type MatrxDataTableCopyConfig as g, type MatrxDataTableProps as h, type TableViewSnapshot as i, type MatrxDataTableRead as j, type ColumnMarker as k, type CellEditType as l, type CellEditsMap as m, type MatrxDataTableContextMenuConfig as n, type MatrxDataTableCoverageConfig as o, type MatrxDataTableDetailConfig as p, type MatrxDataTableEditConfig as q, type MatrxDataTableEmptyState as r, type MatrxDataTableExpandedDetailConfig as s, type MatrxDataTableFacetsConfig as t, type MatrxDataTableFilterUi as u, type MatrxDataTableGroupingConfig as v, type MatrxDataTableHierarchyConfig as w, type MatrxDataTableHierarchyMove as x, type MatrxDataTableMobileCardControls as y, type MatrxDataTableMultiExpandedDetailConfig as z };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ContentTransferReference } from './content-transfer.js';
|
|
2
|
+
import * as React from 'react';
|
|
2
3
|
import { ReactNode } from 'react';
|
|
3
4
|
import { AgentPayloadInput, AiVariant, AiCustomSource, CopyExportConfig } from './data-table/copy-types.js';
|
|
4
5
|
import { TableStyle, ChoiceColorLookup } from './data-table/table-style.js';
|
|
@@ -10,6 +11,45 @@ import { SpreadsheetIntent, SpreadsheetPastePlan, SpreadsheetController } from '
|
|
|
10
11
|
import { DateColumnFilterValue } from './data-table/date-filter.js';
|
|
11
12
|
import { MatrxTableMenuItem, MatrxTableMenuPayload, MatrxTableMenuSection } from './data-table/menu-targets.js';
|
|
12
13
|
|
|
14
|
+
interface TableViewTab {
|
|
15
|
+
id: string;
|
|
16
|
+
label: string;
|
|
17
|
+
count?: number;
|
|
18
|
+
}
|
|
19
|
+
interface TableViewTabsProps {
|
|
20
|
+
tabs: readonly TableViewTab[];
|
|
21
|
+
activeId: string;
|
|
22
|
+
onSelect: (id: string) => void;
|
|
23
|
+
onAdd: () => void;
|
|
24
|
+
onClose: (id: string) => void;
|
|
25
|
+
onRename: (id: string, label: string) => void;
|
|
26
|
+
/** Related-data doors use the same row, without creating another table. */
|
|
27
|
+
related?: ReactNode;
|
|
28
|
+
/** Open this tab's name field now (a just-created tab asks for its name). */
|
|
29
|
+
editingId?: string | null;
|
|
30
|
+
/** The name field closed with Escape (a just-created tab is then discarded). */
|
|
31
|
+
onEditCancel?: (id: string) => void;
|
|
32
|
+
/** The name field closed (committed or cancelled). */
|
|
33
|
+
onEditDone?: () => void;
|
|
34
|
+
}
|
|
35
|
+
/** One shared tab strip; hosts may own URL state without copying its UI. */
|
|
36
|
+
declare function TableViewTabs({ tabs, activeId, onSelect, onAdd, onClose, onRename, related, editingId, onEditCancel, onEditDone }: TableViewTabsProps): React.JSX.Element;
|
|
37
|
+
/** A named view the host persists (its preferences store); the default tab is never stored. */
|
|
38
|
+
interface SavedTableViewTab {
|
|
39
|
+
id: string;
|
|
40
|
+
label: string;
|
|
41
|
+
snapshot: TableViewSnapshot;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Where working view tabs live. Without a store they are in memory (gone on reload) —
|
|
45
|
+
* a host that offers the "+" on a page people come back to passes one, so a view
|
|
46
|
+
* made with "+" is named and survives a reload (page-pass 2026-09-27).
|
|
47
|
+
*/
|
|
48
|
+
interface TableViewTabsStore {
|
|
49
|
+
views: readonly SavedTableViewTab[];
|
|
50
|
+
onChange: (views: SavedTableViewTab[]) => void;
|
|
51
|
+
}
|
|
52
|
+
|
|
13
53
|
type TableSearchRole = "id" | "name" | "description" | "other";
|
|
14
54
|
interface TableSearchScope {
|
|
15
55
|
id: string;
|
|
@@ -631,6 +671,12 @@ interface MatrxDataTableToolbar {
|
|
|
631
671
|
portalInto?: HTMLElement | null;
|
|
632
672
|
/** Keep the toolbar on ONE row at every width; a narrow screen scrolls it sideways. */
|
|
633
673
|
singleRow?: boolean;
|
|
674
|
+
/**
|
|
675
|
+
* `false`: no Columns button — the placing page already owns the ONE column picker (a list
|
|
676
|
+
* shell with its own picker that hands the table only the visible columns; two pickers that
|
|
677
|
+
* disagree about which columns exist is worse than one). Default: shown.
|
|
678
|
+
*/
|
|
679
|
+
columns?: boolean;
|
|
634
680
|
/**
|
|
635
681
|
* WHERE THE ROW'S CONTROLS GO WHEN IT HAS NO ROOM (lane C, merged-grid review 2026-09-26):
|
|
636
682
|
* `inline` (default) draws them on the row; `menu` puts the table's controls and `actions`
|
|
@@ -1413,6 +1459,11 @@ interface MatrxDataTableProps<T> {
|
|
|
1413
1459
|
defaultViewSnapshot?: TableViewSnapshot;
|
|
1414
1460
|
/** Working view tabs, on by default. Disable for embedded/single-purpose tables. */
|
|
1415
1461
|
viewTabs?: boolean;
|
|
1462
|
+
/**
|
|
1463
|
+
* Where the working view tabs are kept. Absent: in memory, gone on reload. A page people
|
|
1464
|
+
* return to passes its preferences store, so a view made with "+" is named and survives.
|
|
1465
|
+
*/
|
|
1466
|
+
viewTabsStore?: TableViewTabsStore;
|
|
1416
1467
|
/** Related-data controls shown at the right of the working-view tab strip. */
|
|
1417
1468
|
relatedTableActions?: ReactNode;
|
|
1418
1469
|
/** Optional URL/source-owned column order and visibility. */
|
|
@@ -1639,4 +1690,4 @@ interface MatrxDataTableProps<T> {
|
|
|
1639
1690
|
onRowOpen?: (row: T) => void;
|
|
1640
1691
|
}
|
|
1641
1692
|
|
|
1642
|
-
export {
|
|
1693
|
+
export { TableViewTabs as $, type AnyOfColumnSearch as A, type MatrxDataTableQueryControl as B, type ColumnFiltersState as C, type MatrxDataTableReadStatus as D, type MatrxDataTableSelectionConfig as E, type MatrxDataTableSingleExpandedDetailConfig as F, type MatrxDataTableSourceProcessing as G, type MatrxDataTableSpreadsheetConfig as H, type MatrxDataTableStyleConfig as I, type MatrxDataTableToolbar as J, type MatrxDataTableUrlStateConfig as K, type LayeredFilterRule as L, type MatrxColumnDef as M, type MatrxDataTableVirtualizeConfig as N, type MatrxDataTableWindowConfig as O, type MatrxTablePagination as P, type NumberFilterOp as Q, type SavedTableViewTab as R, type SortState as S, type TableSearchMatchMode as T, type SortDirection as U, type SpreadsheetSelection as V, type TableRankedSearchOptions as W, type TableSearchRole as X, type TableSearchScope as Y, type TableViewQuery as Z, type TableViewTab as _, type ColumnFilterValue as a, type TableViewTabsProps as a0, type TableViewTabsStore as a1, type TextFilterMode as a2, type ToolbarFacet as a3, inferTableSearchRole as a4, rankTableSearchRows as a5, resolveTableSearchScopes as a6, LAYERED_FILTER_OPERATORS as a7, LAYERED_FILTER_OPERATOR_LABELS as a8, type LayeredFilterField as a9, type LayeredFilterOperator as aa, columnFiltersToLayeredRules as ab, completeLayeredFilterRules as ac, decodeLayeredFilterRules as ad, encodeLayeredFilterRules as ae, isCompleteLayeredFilterRule as af, isLayeredFilterOperator as ag, layeredFilterMatchesValue as ah, layeredFilterNeedsValue as ai, layeredFilterRuleSummary as aj, operatorsForLayeredField as ak, type TableSavedViewsProps as b, type MatrxDataTableDensity as c, type MatrxDataTableRecordControls as d, type MatrxDataTableQueryState as e, type ColumnFilterKind as f, type MatrxDataTableCopyConfig as g, type MatrxDataTableProps as h, type TableViewSnapshot as i, type MatrxDataTableRead as j, type ColumnMarker as k, type CellEditType as l, type CellEditsMap as m, type MatrxDataTableContextMenuConfig as n, type MatrxDataTableCoverageConfig as o, type MatrxDataTableDetailConfig as p, type MatrxDataTableEditConfig as q, type MatrxDataTableEmptyState as r, type MatrxDataTableExpandedDetailConfig as s, type MatrxDataTableFacetsConfig as t, type MatrxDataTableFilterUi as u, type MatrxDataTableGroupingConfig as v, type MatrxDataTableHierarchyConfig as w, type MatrxDataTableHierarchyMove as x, type MatrxDataTableMobileCardControls as y, type MatrxDataTableMultiExpandedDetailConfig as z };
|
package/package.json
CHANGED