@ai-matrx/design-system 0.49.54 → 0.49.56

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 (37) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/data-table/copy-helpers.d.cts +2 -2
  3. package/dist/data-table/copy-helpers.d.ts +2 -2
  4. package/dist/data-table/drill-chart.cjs +44 -6
  5. package/dist/data-table/drill-chart.cjs.map +1 -1
  6. package/dist/data-table/drill-chart.d.cts +8 -3
  7. package/dist/data-table/drill-chart.d.ts +8 -3
  8. package/dist/data-table/drill-chart.js +44 -6
  9. package/dist/data-table/drill-chart.js.map +1 -1
  10. package/dist/data-table/filter-engine.d.cts +2 -2
  11. package/dist/data-table/filter-engine.d.ts +2 -2
  12. package/dist/data-table/host.d.cts +2 -2
  13. package/dist/data-table/host.d.ts +2 -2
  14. package/dist/data-table/index.cjs +116 -40
  15. package/dist/data-table/index.cjs.map +1 -1
  16. package/dist/data-table/index.d.cts +28 -6
  17. package/dist/data-table/index.d.ts +28 -6
  18. package/dist/data-table/index.js +116 -40
  19. package/dist/data-table/index.js.map +1 -1
  20. package/dist/data-table/infer-filter.d.cts +2 -2
  21. package/dist/data-table/infer-filter.d.ts +2 -2
  22. package/dist/data-table/layered-filters.d.cts +2 -2
  23. package/dist/data-table/layered-filters.d.ts +2 -2
  24. package/dist/data-table/query-control.d.cts +2 -2
  25. package/dist/data-table/query-control.d.ts +2 -2
  26. package/dist/data-table/types.d.cts +2 -2
  27. package/dist/data-table/types.d.ts +2 -2
  28. package/dist/data-table/url-state.d.cts +2 -2
  29. package/dist/data-table/url-state.d.ts +2 -2
  30. package/dist/data-table/xlsx.d.cts +2 -2
  31. package/dist/data-table/xlsx.d.ts +2 -2
  32. package/dist/{drill-cISpem5b.d.cts → drill-qJ5gHL2F.d.cts} +11 -0
  33. package/dist/{drill-cISpem5b.d.ts → drill-qJ5gHL2F.d.ts} +11 -0
  34. package/dist/{layered-filters-ma_P0GDG.d.ts → layered-filters-CTdPPgxf.d.ts} +1 -1
  35. package/dist/{layered-filters-RHe2Kzrs.d.cts → layered-filters-HFquDviC.d.cts} +1 -1
  36. package/dist/styles.css +5 -2
  37. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { M as MatrxColumnDef, f as ColumnFilterKind } from '../layered-filters-RHe2Kzrs.cjs';
1
+ import { M as MatrxColumnDef, f as ColumnFilterKind } from '../layered-filters-HFquDviC.cjs';
2
2
  import '../content-transfer.cjs';
3
3
  import 'react';
4
4
  import '@ai-matrx/kit/content-transfer';
@@ -7,7 +7,7 @@ import './copy-types.cjs';
7
7
  import './table-style.cjs';
8
8
  import '../types-JnZD8wM0.cjs';
9
9
  import './grouping.cjs';
10
- import '../drill-cISpem5b.cjs';
10
+ import '../drill-qJ5gHL2F.cjs';
11
11
  import './fill.cjs';
12
12
  import './facets.cjs';
13
13
  import './spreadsheet.cjs';
@@ -1,4 +1,4 @@
1
- import { M as MatrxColumnDef, f as ColumnFilterKind } from '../layered-filters-ma_P0GDG.js';
1
+ import { M as MatrxColumnDef, f as ColumnFilterKind } from '../layered-filters-CTdPPgxf.js';
2
2
  import '../content-transfer.js';
3
3
  import 'react';
4
4
  import '@ai-matrx/kit/content-transfer';
@@ -7,7 +7,7 @@ import './copy-types.js';
7
7
  import './table-style.js';
8
8
  import '../types-JnZD8wM0.js';
9
9
  import './grouping.js';
10
- import '../drill-cISpem5b.js';
10
+ import '../drill-qJ5gHL2F.js';
11
11
  import './fill.js';
12
12
  import './facets.js';
13
13
  import './spreadsheet.js';
@@ -1,4 +1,4 @@
1
- export { ac as LAYERED_FILTER_OPERATORS, ad as LAYERED_FILTER_OPERATOR_LABELS, ae as LayeredFilterField, af as LayeredFilterOperator, L as LayeredFilterRule, ag as columnFiltersToLayeredRules, ah as completeLayeredFilterRules, ai as decodeLayeredFilterRules, aj as encodeLayeredFilterRules, ak as isCompleteLayeredFilterRule, al as isLayeredFilterOperator, am as layeredFilterMatchesValue, an as layeredFilterNeedsValue, ao as layeredFilterRuleSummary, ap as operatorsForLayeredField } from '../layered-filters-RHe2Kzrs.cjs';
1
+ export { ac as LAYERED_FILTER_OPERATORS, ad as LAYERED_FILTER_OPERATOR_LABELS, ae as LayeredFilterField, af as LayeredFilterOperator, L as LayeredFilterRule, ag as columnFiltersToLayeredRules, ah as completeLayeredFilterRules, ai as decodeLayeredFilterRules, aj as encodeLayeredFilterRules, ak as isCompleteLayeredFilterRule, al as isLayeredFilterOperator, am as layeredFilterMatchesValue, an as layeredFilterNeedsValue, ao as layeredFilterRuleSummary, ap as operatorsForLayeredField } from '../layered-filters-HFquDviC.cjs';
2
2
  import '../content-transfer.cjs';
3
3
  import 'react';
4
4
  import '@ai-matrx/kit/content-transfer';
@@ -7,7 +7,7 @@ import './copy-types.cjs';
7
7
  import './table-style.cjs';
8
8
  import '../types-JnZD8wM0.cjs';
9
9
  import './grouping.cjs';
10
- import '../drill-cISpem5b.cjs';
10
+ import '../drill-qJ5gHL2F.cjs';
11
11
  import './fill.cjs';
12
12
  import './facets.cjs';
13
13
  import './spreadsheet.cjs';
@@ -1,4 +1,4 @@
1
- export { ac as LAYERED_FILTER_OPERATORS, ad as LAYERED_FILTER_OPERATOR_LABELS, ae as LayeredFilterField, af as LayeredFilterOperator, L as LayeredFilterRule, ag as columnFiltersToLayeredRules, ah as completeLayeredFilterRules, ai as decodeLayeredFilterRules, aj as encodeLayeredFilterRules, ak as isCompleteLayeredFilterRule, al as isLayeredFilterOperator, am as layeredFilterMatchesValue, an as layeredFilterNeedsValue, ao as layeredFilterRuleSummary, ap as operatorsForLayeredField } from '../layered-filters-ma_P0GDG.js';
1
+ export { ac as LAYERED_FILTER_OPERATORS, ad as LAYERED_FILTER_OPERATOR_LABELS, ae as LayeredFilterField, af as LayeredFilterOperator, L as LayeredFilterRule, ag as columnFiltersToLayeredRules, ah as completeLayeredFilterRules, ai as decodeLayeredFilterRules, aj as encodeLayeredFilterRules, ak as isCompleteLayeredFilterRule, al as isLayeredFilterOperator, am as layeredFilterMatchesValue, an as layeredFilterNeedsValue, ao as layeredFilterRuleSummary, ap as operatorsForLayeredField } from '../layered-filters-CTdPPgxf.js';
2
2
  import '../content-transfer.js';
3
3
  import 'react';
4
4
  import '@ai-matrx/kit/content-transfer';
@@ -7,7 +7,7 @@ import './copy-types.js';
7
7
  import './table-style.js';
8
8
  import '../types-JnZD8wM0.js';
9
9
  import './grouping.js';
10
- import '../drill-cISpem5b.js';
10
+ import '../drill-qJ5gHL2F.js';
11
11
  import './fill.js';
12
12
  import './facets.js';
13
13
  import './spreadsheet.js';
@@ -1,5 +1,5 @@
1
1
  import { ResolvedFilterKind } from './infer-filter.cjs';
2
- import { e as MatrxDataTableQueryState, M as MatrxColumnDef } from '../layered-filters-RHe2Kzrs.cjs';
2
+ import { e as MatrxDataTableQueryState, M as MatrxColumnDef } from '../layered-filters-HFquDviC.cjs';
3
3
  import '../content-transfer.cjs';
4
4
  import 'react';
5
5
  import '@ai-matrx/kit/content-transfer';
@@ -8,7 +8,7 @@ import './copy-types.cjs';
8
8
  import './table-style.cjs';
9
9
  import '../types-JnZD8wM0.cjs';
10
10
  import './grouping.cjs';
11
- import '../drill-cISpem5b.cjs';
11
+ import '../drill-qJ5gHL2F.cjs';
12
12
  import './fill.cjs';
13
13
  import './facets.cjs';
14
14
  import './spreadsheet.cjs';
@@ -1,5 +1,5 @@
1
1
  import { ResolvedFilterKind } from './infer-filter.js';
2
- import { e as MatrxDataTableQueryState, M as MatrxColumnDef } from '../layered-filters-ma_P0GDG.js';
2
+ import { e as MatrxDataTableQueryState, M as MatrxColumnDef } from '../layered-filters-CTdPPgxf.js';
3
3
  import '../content-transfer.js';
4
4
  import 'react';
5
5
  import '@ai-matrx/kit/content-transfer';
@@ -8,7 +8,7 @@ import './copy-types.js';
8
8
  import './table-style.js';
9
9
  import '../types-JnZD8wM0.js';
10
10
  import './grouping.js';
11
- import '../drill-cISpem5b.js';
11
+ import '../drill-qJ5gHL2F.js';
12
12
  import './fill.js';
13
13
  import './facets.js';
14
14
  import './spreadsheet.js';
@@ -1,11 +1,11 @@
1
1
  import '../content-transfer.cjs';
2
2
  import 'react';
3
- export { A as AnyOfColumnSearch, m as CellEditType, n as CellEditsMap, f as ColumnFilterKind, a as ColumnFilterValue, C as ColumnFiltersState, l as ColumnMarker, M as MatrxColumnDef, i as MatrxDataTableAppearance, o as MatrxDataTableContextMenuConfig, g as MatrxDataTableCopyConfig, p as MatrxDataTableCoverageConfig, c as MatrxDataTableDensity, q as MatrxDataTableDetailConfig, r as MatrxDataTableDrillConfig, s as MatrxDataTableEditConfig, t as MatrxDataTableEmptyState, u as MatrxDataTableExpandedDetailConfig, v as MatrxDataTableFacetsConfig, w as MatrxDataTableFilterUi, x as MatrxDataTableGroupingConfig, y as MatrxDataTableHierarchyConfig, z as MatrxDataTableHierarchyMove, B as MatrxDataTableMobileCardControls, D as MatrxDataTableMultiExpandedDetailConfig, h as MatrxDataTableProps, E as MatrxDataTableQueryControl, e as MatrxDataTableQueryState, k as MatrxDataTableRead, F as MatrxDataTableReadStatus, d as MatrxDataTableRecordControls, G as MatrxDataTableSelectionConfig, H as MatrxDataTableSingleExpandedDetailConfig, I as MatrxDataTableSourceProcessing, J as MatrxDataTableSpreadsheetConfig, K as MatrxDataTableStyleConfig, N as MatrxDataTableSummaryConfig, O as MatrxDataTableSummaryContext, P as MatrxDataTableSummaryMetric, Q as MatrxDataTableToolbar, R as MatrxDataTableUrlStateConfig, U as MatrxDataTableVirtualizeConfig, V as MatrxDataTableWindowConfig, W as MatrxTablePagination, X as NumberFilterOp, Z as SortDirection, S as SortState, _ as SpreadsheetSelection, b as TableSavedViewsProps, T as TableSearchMatchMode, a2 as TableViewQuery, j as TableViewSnapshot, a7 as TextFilterMode, a8 as ToolbarFacet } from '../layered-filters-RHe2Kzrs.cjs';
3
+ export { A as AnyOfColumnSearch, m as CellEditType, n as CellEditsMap, f as ColumnFilterKind, a as ColumnFilterValue, C as ColumnFiltersState, l as ColumnMarker, M as MatrxColumnDef, i as MatrxDataTableAppearance, o as MatrxDataTableContextMenuConfig, g as MatrxDataTableCopyConfig, p as MatrxDataTableCoverageConfig, c as MatrxDataTableDensity, q as MatrxDataTableDetailConfig, r as MatrxDataTableDrillConfig, s as MatrxDataTableEditConfig, t as MatrxDataTableEmptyState, u as MatrxDataTableExpandedDetailConfig, v as MatrxDataTableFacetsConfig, w as MatrxDataTableFilterUi, x as MatrxDataTableGroupingConfig, y as MatrxDataTableHierarchyConfig, z as MatrxDataTableHierarchyMove, B as MatrxDataTableMobileCardControls, D as MatrxDataTableMultiExpandedDetailConfig, h as MatrxDataTableProps, E as MatrxDataTableQueryControl, e as MatrxDataTableQueryState, k as MatrxDataTableRead, F as MatrxDataTableReadStatus, d as MatrxDataTableRecordControls, G as MatrxDataTableSelectionConfig, H as MatrxDataTableSingleExpandedDetailConfig, I as MatrxDataTableSourceProcessing, J as MatrxDataTableSpreadsheetConfig, K as MatrxDataTableStyleConfig, N as MatrxDataTableSummaryConfig, O as MatrxDataTableSummaryContext, P as MatrxDataTableSummaryMetric, Q as MatrxDataTableToolbar, R as MatrxDataTableUrlStateConfig, U as MatrxDataTableVirtualizeConfig, V as MatrxDataTableWindowConfig, W as MatrxTablePagination, X as NumberFilterOp, Z as SortDirection, S as SortState, _ as SpreadsheetSelection, b as TableSavedViewsProps, T as TableSearchMatchMode, a2 as TableViewQuery, j as TableViewSnapshot, a7 as TextFilterMode, a8 as ToolbarFacet } from '../layered-filters-HFquDviC.cjs';
4
4
  export { AgentPayloadInput } from './copy-types.cjs';
5
5
  import './table-style.cjs';
6
6
  import '../types-JnZD8wM0.cjs';
7
7
  import './grouping.cjs';
8
- import '../drill-cISpem5b.cjs';
8
+ import '../drill-qJ5gHL2F.cjs';
9
9
  import './fill.cjs';
10
10
  import './facets.cjs';
11
11
  export { SpreadsheetPastePlan } from './spreadsheet.cjs';
@@ -1,11 +1,11 @@
1
1
  import '../content-transfer.js';
2
2
  import 'react';
3
- export { A as AnyOfColumnSearch, m as CellEditType, n as CellEditsMap, f as ColumnFilterKind, a as ColumnFilterValue, C as ColumnFiltersState, l as ColumnMarker, M as MatrxColumnDef, i as MatrxDataTableAppearance, o as MatrxDataTableContextMenuConfig, g as MatrxDataTableCopyConfig, p as MatrxDataTableCoverageConfig, c as MatrxDataTableDensity, q as MatrxDataTableDetailConfig, r as MatrxDataTableDrillConfig, s as MatrxDataTableEditConfig, t as MatrxDataTableEmptyState, u as MatrxDataTableExpandedDetailConfig, v as MatrxDataTableFacetsConfig, w as MatrxDataTableFilterUi, x as MatrxDataTableGroupingConfig, y as MatrxDataTableHierarchyConfig, z as MatrxDataTableHierarchyMove, B as MatrxDataTableMobileCardControls, D as MatrxDataTableMultiExpandedDetailConfig, h as MatrxDataTableProps, E as MatrxDataTableQueryControl, e as MatrxDataTableQueryState, k as MatrxDataTableRead, F as MatrxDataTableReadStatus, d as MatrxDataTableRecordControls, G as MatrxDataTableSelectionConfig, H as MatrxDataTableSingleExpandedDetailConfig, I as MatrxDataTableSourceProcessing, J as MatrxDataTableSpreadsheetConfig, K as MatrxDataTableStyleConfig, N as MatrxDataTableSummaryConfig, O as MatrxDataTableSummaryContext, P as MatrxDataTableSummaryMetric, Q as MatrxDataTableToolbar, R as MatrxDataTableUrlStateConfig, U as MatrxDataTableVirtualizeConfig, V as MatrxDataTableWindowConfig, W as MatrxTablePagination, X as NumberFilterOp, Z as SortDirection, S as SortState, _ as SpreadsheetSelection, b as TableSavedViewsProps, T as TableSearchMatchMode, a2 as TableViewQuery, j as TableViewSnapshot, a7 as TextFilterMode, a8 as ToolbarFacet } from '../layered-filters-ma_P0GDG.js';
3
+ export { A as AnyOfColumnSearch, m as CellEditType, n as CellEditsMap, f as ColumnFilterKind, a as ColumnFilterValue, C as ColumnFiltersState, l as ColumnMarker, M as MatrxColumnDef, i as MatrxDataTableAppearance, o as MatrxDataTableContextMenuConfig, g as MatrxDataTableCopyConfig, p as MatrxDataTableCoverageConfig, c as MatrxDataTableDensity, q as MatrxDataTableDetailConfig, r as MatrxDataTableDrillConfig, s as MatrxDataTableEditConfig, t as MatrxDataTableEmptyState, u as MatrxDataTableExpandedDetailConfig, v as MatrxDataTableFacetsConfig, w as MatrxDataTableFilterUi, x as MatrxDataTableGroupingConfig, y as MatrxDataTableHierarchyConfig, z as MatrxDataTableHierarchyMove, B as MatrxDataTableMobileCardControls, D as MatrxDataTableMultiExpandedDetailConfig, h as MatrxDataTableProps, E as MatrxDataTableQueryControl, e as MatrxDataTableQueryState, k as MatrxDataTableRead, F as MatrxDataTableReadStatus, d as MatrxDataTableRecordControls, G as MatrxDataTableSelectionConfig, H as MatrxDataTableSingleExpandedDetailConfig, I as MatrxDataTableSourceProcessing, J as MatrxDataTableSpreadsheetConfig, K as MatrxDataTableStyleConfig, N as MatrxDataTableSummaryConfig, O as MatrxDataTableSummaryContext, P as MatrxDataTableSummaryMetric, Q as MatrxDataTableToolbar, R as MatrxDataTableUrlStateConfig, U as MatrxDataTableVirtualizeConfig, V as MatrxDataTableWindowConfig, W as MatrxTablePagination, X as NumberFilterOp, Z as SortDirection, S as SortState, _ as SpreadsheetSelection, b as TableSavedViewsProps, T as TableSearchMatchMode, a2 as TableViewQuery, j as TableViewSnapshot, a7 as TextFilterMode, a8 as ToolbarFacet } from '../layered-filters-CTdPPgxf.js';
4
4
  export { AgentPayloadInput } from './copy-types.js';
5
5
  import './table-style.js';
6
6
  import '../types-JnZD8wM0.js';
7
7
  import './grouping.js';
8
- import '../drill-cISpem5b.js';
8
+ import '../drill-qJ5gHL2F.js';
9
9
  import './fill.js';
10
10
  import './facets.js';
11
11
  export { SpreadsheetPastePlan } from './spreadsheet.js';
@@ -1,4 +1,4 @@
1
- import { S as SortState, e as MatrxDataTableQueryState } from '../layered-filters-RHe2Kzrs.cjs';
1
+ import { S as SortState, e as MatrxDataTableQueryState } from '../layered-filters-HFquDviC.cjs';
2
2
  import { UrlHistoryMode } from '@ai-matrx/kit/url-state';
3
3
  import '../content-transfer.cjs';
4
4
  import 'react';
@@ -8,7 +8,7 @@ import './copy-types.cjs';
8
8
  import './table-style.cjs';
9
9
  import '../types-JnZD8wM0.cjs';
10
10
  import './grouping.cjs';
11
- import '../drill-cISpem5b.cjs';
11
+ import '../drill-qJ5gHL2F.cjs';
12
12
  import './fill.cjs';
13
13
  import './facets.cjs';
14
14
  import './spreadsheet.cjs';
@@ -1,4 +1,4 @@
1
- import { S as SortState, e as MatrxDataTableQueryState } from '../layered-filters-ma_P0GDG.js';
1
+ import { S as SortState, e as MatrxDataTableQueryState } from '../layered-filters-CTdPPgxf.js';
2
2
  import { UrlHistoryMode } from '@ai-matrx/kit/url-state';
3
3
  import '../content-transfer.js';
4
4
  import 'react';
@@ -8,7 +8,7 @@ import './copy-types.js';
8
8
  import './table-style.js';
9
9
  import '../types-JnZD8wM0.js';
10
10
  import './grouping.js';
11
- import '../drill-cISpem5b.js';
11
+ import '../drill-qJ5gHL2F.js';
12
12
  import './fill.js';
13
13
  import './facets.js';
14
14
  import './spreadsheet.js';
@@ -1,4 +1,4 @@
1
- import { M as MatrxColumnDef } from '../layered-filters-RHe2Kzrs.cjs';
1
+ import { M as MatrxColumnDef } from '../layered-filters-HFquDviC.cjs';
2
2
  import '../content-transfer.cjs';
3
3
  import 'react';
4
4
  import '@ai-matrx/kit/content-transfer';
@@ -7,7 +7,7 @@ import './copy-types.cjs';
7
7
  import './table-style.cjs';
8
8
  import '../types-JnZD8wM0.cjs';
9
9
  import './grouping.cjs';
10
- import '../drill-cISpem5b.cjs';
10
+ import '../drill-qJ5gHL2F.cjs';
11
11
  import './fill.cjs';
12
12
  import './facets.cjs';
13
13
  import './spreadsheet.cjs';
@@ -1,4 +1,4 @@
1
- import { M as MatrxColumnDef } from '../layered-filters-ma_P0GDG.js';
1
+ import { M as MatrxColumnDef } from '../layered-filters-CTdPPgxf.js';
2
2
  import '../content-transfer.js';
3
3
  import 'react';
4
4
  import '@ai-matrx/kit/content-transfer';
@@ -7,7 +7,7 @@ import './copy-types.js';
7
7
  import './table-style.js';
8
8
  import '../types-JnZD8wM0.js';
9
9
  import './grouping.js';
10
- import '../drill-cISpem5b.js';
10
+ import '../drill-qJ5gHL2F.js';
11
11
  import './fill.js';
12
12
  import './facets.js';
13
13
  import './spreadsheet.js';
@@ -55,6 +55,8 @@ interface MatrxDrillDimension {
55
55
  * table host's `resolveEntityDoors`, in the row's ⋯ menu and on a right-click.
56
56
  */
57
57
  entity?: string | undefined;
58
+ /** What it groups by, at most 140 characters: the column header's tooltip (lane DRILL-FLIP-FIXES). */
59
+ description?: string | undefined;
58
60
  }
59
61
  /** A chart token as the colour a style reads (`--matrx-chart-3` → `hsl(var(--matrx-chart-3))`); null when it is not one. */
60
62
  declare function drillTokenColor(token: string | null | undefined): string | null;
@@ -79,6 +81,8 @@ interface MatrxDrillMeasure {
79
81
  * against the prior window, never a Pareto line — only the moment itself.
80
82
  */
81
83
  moment?: boolean | undefined;
84
+ /** What the number counts, at most 140 characters: the column header's tooltip (lane DRILL-FLIP-FIXES). */
85
+ description?: string | undefined;
82
86
  }
83
87
  /** One step of the breadcrumb: a Dimension reference and the value it was narrowed to. */
84
88
  interface MatrxDrillFilter {
@@ -426,6 +430,11 @@ interface MatrxDrillChartPlan {
426
430
  /** The Dimension the stack splits by; `null` = one series. */
427
431
  split: string | null;
428
432
  measure: string;
433
+ /**
434
+ * STACKED MEASURES (lane DRILL-FLIP-FIXES L3, the CX tab's input vs output tokens): two or more
435
+ * Measures that add up, one series each, stacked per period; no split. Absent = one Measure.
436
+ */
437
+ stack?: string[] | undefined;
429
438
  seriesLimit: number;
430
439
  /** Why the chart cannot be drawn, in words — or `null`. */
431
440
  refused: string | null;
@@ -440,6 +449,8 @@ interface MatrxDrillChartContext {
440
449
  measures: readonly MatrxDrillMeasure[];
441
450
  /** The Measure stacked. Default: the question's first shown Measure. */
442
451
  measure?: string | null | undefined;
452
+ /** Stack these Measures (two or more that add up) instead of splitting one — see `MatrxDrillChartPlan.stack`. */
453
+ stack?: readonly string[] | null | undefined;
443
454
  /**
444
455
  * The time reference when the question does not group by time (`at:day`). Default: the first
445
456
  * time Dimension at the grain the window reads best at (`drillAutoGrain`).
@@ -55,6 +55,8 @@ interface MatrxDrillDimension {
55
55
  * table host's `resolveEntityDoors`, in the row's ⋯ menu and on a right-click.
56
56
  */
57
57
  entity?: string | undefined;
58
+ /** What it groups by, at most 140 characters: the column header's tooltip (lane DRILL-FLIP-FIXES). */
59
+ description?: string | undefined;
58
60
  }
59
61
  /** A chart token as the colour a style reads (`--matrx-chart-3` → `hsl(var(--matrx-chart-3))`); null when it is not one. */
60
62
  declare function drillTokenColor(token: string | null | undefined): string | null;
@@ -79,6 +81,8 @@ interface MatrxDrillMeasure {
79
81
  * against the prior window, never a Pareto line — only the moment itself.
80
82
  */
81
83
  moment?: boolean | undefined;
84
+ /** What the number counts, at most 140 characters: the column header's tooltip (lane DRILL-FLIP-FIXES). */
85
+ description?: string | undefined;
82
86
  }
83
87
  /** One step of the breadcrumb: a Dimension reference and the value it was narrowed to. */
84
88
  interface MatrxDrillFilter {
@@ -426,6 +430,11 @@ interface MatrxDrillChartPlan {
426
430
  /** The Dimension the stack splits by; `null` = one series. */
427
431
  split: string | null;
428
432
  measure: string;
433
+ /**
434
+ * STACKED MEASURES (lane DRILL-FLIP-FIXES L3, the CX tab's input vs output tokens): two or more
435
+ * Measures that add up, one series each, stacked per period; no split. Absent = one Measure.
436
+ */
437
+ stack?: string[] | undefined;
429
438
  seriesLimit: number;
430
439
  /** Why the chart cannot be drawn, in words — or `null`. */
431
440
  refused: string | null;
@@ -440,6 +449,8 @@ interface MatrxDrillChartContext {
440
449
  measures: readonly MatrxDrillMeasure[];
441
450
  /** The Measure stacked. Default: the question's first shown Measure. */
442
451
  measure?: string | null | undefined;
452
+ /** Stack these Measures (two or more that add up) instead of splitting one — see `MatrxDrillChartPlan.stack`. */
453
+ stack?: readonly string[] | null | undefined;
443
454
  /**
444
455
  * The time reference when the question does not group by time (`at:day`). Default: the first
445
456
  * time Dimension at the grain the window reads best at (`drillAutoGrain`).
@@ -5,7 +5,7 @@ import { AgentPayloadInput, AiVariant, AiCustomSource, CopyExportConfig } from '
5
5
  import { TableStyle, ChoiceColorLookup } from './data-table/table-style.js';
6
6
  import { F as FieldFormatConfig } from './types-JnZD8wM0.js';
7
7
  import { GroupAggregateSpec, GroupOrder, TableGroup } from './data-table/grouping.js';
8
- import { M as MatrxDrillDimension, a as MatrxDrillMeasure, b as MatrxDrillQuestion, u as MatrxDrillAnswers } from './drill-cISpem5b.js';
8
+ import { M as MatrxDrillDimension, a as MatrxDrillMeasure, b as MatrxDrillQuestion, u as MatrxDrillAnswers } from './drill-qJ5gHL2F.js';
9
9
  import { CellPatch } from './data-table/fill.js';
10
10
  import { ColumnFacets } from './data-table/facets.js';
11
11
  import { SpreadsheetIntent, SpreadsheetPastePlan, SpreadsheetController } from './data-table/spreadsheet.js';
@@ -5,7 +5,7 @@ import { AgentPayloadInput, AiVariant, AiCustomSource, CopyExportConfig } from '
5
5
  import { TableStyle, ChoiceColorLookup } from './data-table/table-style.cjs';
6
6
  import { F as FieldFormatConfig } from './types-JnZD8wM0.cjs';
7
7
  import { GroupAggregateSpec, GroupOrder, TableGroup } from './data-table/grouping.cjs';
8
- import { M as MatrxDrillDimension, a as MatrxDrillMeasure, b as MatrxDrillQuestion, u as MatrxDrillAnswers } from './drill-cISpem5b.cjs';
8
+ import { M as MatrxDrillDimension, a as MatrxDrillMeasure, b as MatrxDrillQuestion, u as MatrxDrillAnswers } from './drill-qJ5gHL2F.cjs';
9
9
  import { CellPatch } from './data-table/fill.cjs';
10
10
  import { ColumnFacets } from './data-table/facets.cjs';
11
11
  import { SpreadsheetIntent, SpreadsheetPastePlan, SpreadsheetController } from './data-table/spreadsheet.cjs';
package/dist/styles.css CHANGED
@@ -909,9 +909,12 @@
909
909
  /* h-7 rows (list rows, search fields) are below the 44pt touch target. Raise
910
910
  the floor with min-height — it wins over the utility's height without
911
911
  unpinning it. Square icon buttons (h-7 w-7) are excluded so they stay
912
- square. */
912
+ square. 2.75rem (44px), never less: this rule is UNLAYERED, so it also
913
+ beats a host's own layered 44px floor — at 2.25rem it pinned the Tools /
914
+ Skills rows of the chat-options sheet to 36px on a phone even inside
915
+ `matrx-touch-targets` (W-72, PB-08 dry run, 2026-10-01). */
913
916
  .matrx-mobile-sheet .h-7:not([class*="w-7"]) {
914
- min-height: 2.25rem;
917
+ min-height: 2.75rem;
915
918
  }
916
919
 
917
920
  /* Portaled action footers escape host touch-target subtrees. Own the floor
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-matrx/design-system",
3
- "version": "0.49.54",
3
+ "version": "0.49.56",
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",