@ai-matrx/design-system 0.48.16 → 0.49.2

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +16 -0
  3. package/dist/data-table/copy-helpers.d.cts +1 -1
  4. package/dist/data-table/copy-helpers.d.ts +1 -1
  5. package/dist/data-table/filter-engine.d.cts +1 -1
  6. package/dist/data-table/filter-engine.d.ts +1 -1
  7. package/dist/data-table/host.d.cts +1 -1
  8. package/dist/data-table/host.d.ts +1 -1
  9. package/dist/data-table/index.cjs +191 -48
  10. package/dist/data-table/index.cjs.map +1 -1
  11. package/dist/data-table/index.d.cts +2 -2
  12. package/dist/data-table/index.d.ts +2 -2
  13. package/dist/data-table/index.js +191 -48
  14. package/dist/data-table/index.js.map +1 -1
  15. package/dist/data-table/infer-filter.d.cts +1 -1
  16. package/dist/data-table/infer-filter.d.ts +1 -1
  17. package/dist/data-table/layered-filters.d.cts +1 -1
  18. package/dist/data-table/layered-filters.d.ts +1 -1
  19. package/dist/data-table/pagination.cjs +12 -2
  20. package/dist/data-table/pagination.cjs.map +1 -1
  21. package/dist/data-table/pagination.d.cts +6 -1
  22. package/dist/data-table/pagination.d.ts +6 -1
  23. package/dist/data-table/pagination.js +12 -2
  24. package/dist/data-table/pagination.js.map +1 -1
  25. package/dist/data-table/query-control.d.cts +1 -1
  26. package/dist/data-table/query-control.d.ts +1 -1
  27. package/dist/data-table/types.cjs.map +1 -1
  28. package/dist/data-table/types.d.cts +1 -1
  29. package/dist/data-table/types.d.ts +1 -1
  30. package/dist/data-table/url-state.d.cts +1 -1
  31. package/dist/data-table/url-state.d.ts +1 -1
  32. package/dist/data-table/xlsx.d.cts +1 -1
  33. package/dist/data-table/xlsx.d.ts +1 -1
  34. package/dist/index.cjs +1 -1
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.js +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/{types-bIcXnlYS.d.cts → types-ClxgLUFi.d.cts} +34 -1
  39. package/dist/{types-DVTNnzU5.d.ts → types-DlgTSJsC.d.ts} +34 -1
  40. package/package.json +1 -1
@@ -1033,6 +1033,37 @@ interface MatrxDataTableRead {
1033
1033
  /** What was read, in the reader's words ("your tasks"). Default "these rows". */
1034
1034
  what?: string | undefined;
1035
1035
  }
1036
+ /** The rows a table summary is allowed to describe. */
1037
+ interface MatrxDataTableSummaryContext<T> {
1038
+ /** Filtered and sorted rows, always before pagination. */
1039
+ rows: readonly T[];
1040
+ /** True when any table-owned search, facet, or column filter is active. */
1041
+ isFiltered: boolean;
1042
+ /** Whether the browser holds all matching rows, loaded rows, or one controlled page. */
1043
+ coverage: "all" | "loaded" | "page";
1044
+ }
1045
+ interface MatrxDataTableSummaryMetric<T> {
1046
+ id: string;
1047
+ /** Plain text keeps the KPI's visible label and unavailable announcement identical. */
1048
+ label: string;
1049
+ value: (context: MatrxDataTableSummaryContext<T>) => ReactNode;
1050
+ }
1051
+ /**
1052
+ * Optional KPIs and aligned column totals owned by the canonical table.
1053
+ *
1054
+ * Callback totals run over the filtered/sorted row set before pagination. A
1055
+ * source override is for an externally computed aggregate: once declared, the
1056
+ * table never substitutes its loaded rows for a missing source value.
1057
+ */
1058
+ interface MatrxDataTableSummaryConfig<T> {
1059
+ metrics: MatrxDataTableSummaryMetric<T>[];
1060
+ totals?: Record<string, (context: MatrxDataTableSummaryContext<T>) => ReactNode>;
1061
+ source?: {
1062
+ isFiltered: boolean;
1063
+ metrics?: Record<string, ReactNode>;
1064
+ totals?: Record<string, ReactNode>;
1065
+ };
1066
+ }
1036
1067
  /** Pending cell edits keyed by row id → partial field map. */
1037
1068
  type CellEditsMap = Record<string, Record<string, unknown>>;
1038
1069
  interface MatrxDataTableEditConfig<T> {
@@ -1577,6 +1608,8 @@ interface MatrxDataTableProps<T> {
1577
1608
  rowActions?: (row: T, controls: MatrxDataTableRecordControls) => ReactNode;
1578
1609
  /** Extra rows rendered in the table footer with the same columns as data rows. */
1579
1610
  footerRows?: T[];
1611
+ /** Optional KPIs above the toolbar and aligned totals in the canonical footer. */
1612
+ summary?: MatrxDataTableSummaryConfig<T>;
1580
1613
  /** Per-row presentation class, after canonical selection/highlight state. */
1581
1614
  rowClassName?: (row: T, index: number) => string | undefined;
1582
1615
  /**
@@ -1718,4 +1751,4 @@ interface MatrxDataTableProps<T> {
1718
1751
  onRowOpen?: (row: T) => void;
1719
1752
  }
1720
1753
 
1721
- 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 };
1754
+ export { type TableSearchScope 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 MatrxDataTableSummaryConfig as J, type MatrxDataTableSummaryContext as K, type LayeredFilterRule as L, type MatrxColumnDef as M, type MatrxDataTableSummaryMetric as N, type MatrxDataTableToolbar as O, type MatrxDataTableUrlStateConfig as P, type MatrxDataTableVirtualizeConfig as Q, type MatrxDataTableWindowConfig as R, type SortState as S, type TableSearchMatchMode as T, type MatrxTablePagination as U, type NumberFilterOp as V, type SavedTableViewTab as W, type SortDirection as X, type SpreadsheetSelection as Y, type TableRankedSearchOptions as Z, type TableSearchRole as _, type ColumnFilterValue as a, type TableViewQuery as a0, type TableViewTab as a1, TableViewTabs as a2, type TableViewTabsProps as a3, type TableViewTabsStore as a4, type TextFilterMode as a5, type ToolbarFacet as a6, inferTableSearchRole as a7, rankTableSearchRows as a8, resolveTableSearchScopes as a9, LAYERED_FILTER_OPERATORS as aa, LAYERED_FILTER_OPERATOR_LABELS as ab, type LayeredFilterField as ac, type LayeredFilterOperator as ad, columnFiltersToLayeredRules as ae, completeLayeredFilterRules as af, decodeLayeredFilterRules as ag, encodeLayeredFilterRules as ah, isCompleteLayeredFilterRule as ai, isLayeredFilterOperator as aj, layeredFilterMatchesValue as ak, layeredFilterNeedsValue as al, layeredFilterRuleSummary as am, operatorsForLayeredField as an, 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 };
@@ -1033,6 +1033,37 @@ interface MatrxDataTableRead {
1033
1033
  /** What was read, in the reader's words ("your tasks"). Default "these rows". */
1034
1034
  what?: string | undefined;
1035
1035
  }
1036
+ /** The rows a table summary is allowed to describe. */
1037
+ interface MatrxDataTableSummaryContext<T> {
1038
+ /** Filtered and sorted rows, always before pagination. */
1039
+ rows: readonly T[];
1040
+ /** True when any table-owned search, facet, or column filter is active. */
1041
+ isFiltered: boolean;
1042
+ /** Whether the browser holds all matching rows, loaded rows, or one controlled page. */
1043
+ coverage: "all" | "loaded" | "page";
1044
+ }
1045
+ interface MatrxDataTableSummaryMetric<T> {
1046
+ id: string;
1047
+ /** Plain text keeps the KPI's visible label and unavailable announcement identical. */
1048
+ label: string;
1049
+ value: (context: MatrxDataTableSummaryContext<T>) => ReactNode;
1050
+ }
1051
+ /**
1052
+ * Optional KPIs and aligned column totals owned by the canonical table.
1053
+ *
1054
+ * Callback totals run over the filtered/sorted row set before pagination. A
1055
+ * source override is for an externally computed aggregate: once declared, the
1056
+ * table never substitutes its loaded rows for a missing source value.
1057
+ */
1058
+ interface MatrxDataTableSummaryConfig<T> {
1059
+ metrics: MatrxDataTableSummaryMetric<T>[];
1060
+ totals?: Record<string, (context: MatrxDataTableSummaryContext<T>) => ReactNode>;
1061
+ source?: {
1062
+ isFiltered: boolean;
1063
+ metrics?: Record<string, ReactNode>;
1064
+ totals?: Record<string, ReactNode>;
1065
+ };
1066
+ }
1036
1067
  /** Pending cell edits keyed by row id → partial field map. */
1037
1068
  type CellEditsMap = Record<string, Record<string, unknown>>;
1038
1069
  interface MatrxDataTableEditConfig<T> {
@@ -1577,6 +1608,8 @@ interface MatrxDataTableProps<T> {
1577
1608
  rowActions?: (row: T, controls: MatrxDataTableRecordControls) => ReactNode;
1578
1609
  /** Extra rows rendered in the table footer with the same columns as data rows. */
1579
1610
  footerRows?: T[];
1611
+ /** Optional KPIs above the toolbar and aligned totals in the canonical footer. */
1612
+ summary?: MatrxDataTableSummaryConfig<T>;
1580
1613
  /** Per-row presentation class, after canonical selection/highlight state. */
1581
1614
  rowClassName?: (row: T, index: number) => string | undefined;
1582
1615
  /**
@@ -1718,4 +1751,4 @@ interface MatrxDataTableProps<T> {
1718
1751
  onRowOpen?: (row: T) => void;
1719
1752
  }
1720
1753
 
1721
- 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 };
1754
+ export { type TableSearchScope 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 MatrxDataTableSummaryConfig as J, type MatrxDataTableSummaryContext as K, type LayeredFilterRule as L, type MatrxColumnDef as M, type MatrxDataTableSummaryMetric as N, type MatrxDataTableToolbar as O, type MatrxDataTableUrlStateConfig as P, type MatrxDataTableVirtualizeConfig as Q, type MatrxDataTableWindowConfig as R, type SortState as S, type TableSearchMatchMode as T, type MatrxTablePagination as U, type NumberFilterOp as V, type SavedTableViewTab as W, type SortDirection as X, type SpreadsheetSelection as Y, type TableRankedSearchOptions as Z, type TableSearchRole as _, type ColumnFilterValue as a, type TableViewQuery as a0, type TableViewTab as a1, TableViewTabs as a2, type TableViewTabsProps as a3, type TableViewTabsStore as a4, type TextFilterMode as a5, type ToolbarFacet as a6, inferTableSearchRole as a7, rankTableSearchRows as a8, resolveTableSearchScopes as a9, LAYERED_FILTER_OPERATORS as aa, LAYERED_FILTER_OPERATOR_LABELS as ab, type LayeredFilterField as ac, type LayeredFilterOperator as ad, columnFiltersToLayeredRules as ae, completeLayeredFilterRules as af, decodeLayeredFilterRules as ag, encodeLayeredFilterRules as ah, isCompleteLayeredFilterRule as ai, isLayeredFilterOperator as aj, layeredFilterMatchesValue as ak, layeredFilterNeedsValue as al, layeredFilterRuleSummary as am, operatorsForLayeredField as an, 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-matrx/design-system",
3
- "version": "0.48.16",
3
+ "version": "0.49.2",
4
4
  "description": "AI Matrx semantic React primitives shared across Vite, Next.js, desktop, and customer-built applications.",
5
5
  "type": "module",
6
6
  "license": "MIT",