@ai-matrx/design-system 0.49.29 → 0.49.33

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.
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { h as MatrxDataTableProps, i as TableViewSnapshot, d as MatrxDataTableRecordControls, j as MatrxDataTableRead, k as ColumnMarker, M as MatrxColumnDef } from '../layered-filters-8S8wob5N.cjs';
4
- export { A as AnyOfColumnSearch, l as CellEditType, m as CellEditsMap, f as ColumnFilterKind, a as ColumnFilterValue, C as ColumnFiltersState, n as MatrxDataTableContextMenuConfig, g as MatrxDataTableCopyConfig, o as MatrxDataTableCoverageConfig, c as MatrxDataTableDensity, p as MatrxDataTableDetailConfig, q as MatrxDataTableEditConfig, r as MatrxDataTableEmptyState, s as MatrxDataTableExpandedDetailConfig, t as MatrxDataTableFacetsConfig, u as MatrxDataTableFilterUi, v as MatrxDataTableGroupingConfig, w as MatrxDataTableHierarchyConfig, x as MatrxDataTableHierarchyMove, y as MatrxDataTableMobileCardControls, z as MatrxDataTableMultiExpandedDetailConfig, B as MatrxDataTableQueryControl, e as MatrxDataTableQueryState, D as MatrxDataTableReadStatus, E as MatrxDataTableSelectionConfig, F as MatrxDataTableSingleExpandedDetailConfig, G as MatrxDataTableSourceProcessing, H as MatrxDataTableSpreadsheetConfig, I as MatrxDataTableStyleConfig, J as MatrxDataTableSummaryConfig, K as MatrxDataTableSummaryContext, N as MatrxDataTableSummaryMetric, O as MatrxDataTableToolbar, P as MatrxDataTableUrlStateConfig, Q as MatrxDataTableVirtualizeConfig, R as MatrxDataTableWindowConfig, U as MatrxTablePagination, V as NumberFilterOp, W as SavedTableViewTab, X as SortDirection, S as SortState, Y as SpreadsheetSelection, Z as TableRankedSearchOptions, b as TableSavedViewsProps, T as TableSearchMatchMode, _ as TableSearchRole, $ as TableSearchScope, a0 as TableViewQuery, a1 as TableViewTab, a2 as TableViewTabs, a3 as TableViewTabsProps, a4 as TableViewTabsStore, a5 as TextFilterMode, a6 as ToolbarFacet, a7 as inferTableSearchRole, a8 as rankTableSearchRows, a9 as resolveTableSearchScopes } from '../layered-filters-8S8wob5N.cjs';
3
+ import { h as MatrxDataTableProps, i as TableViewSnapshot, d as MatrxDataTableRecordControls, j as MatrxDataTableRead, k as ColumnMarker, M as MatrxColumnDef, l as MatrxDrillDimension, m as MatrxDrillMeasure, n as MatrxDrillQuestion, o as MatrxDrillAnswers } from '../layered-filters-Bxc5mB6_.cjs';
4
+ export { A as AnyOfColumnSearch, p as CellEditType, q as CellEditsMap, f as ColumnFilterKind, a as ColumnFilterValue, C as ColumnFiltersState, r as MATRX_DRILL_GRAINS, s as MATRX_DRILL_MAX_LEVELS, t as MATRX_DRILL_NONE, u as MATRX_DRILL_OTHER_COLUMN, v as MATRX_DRILL_PIVOT_COLUMNS, w as MatrxDataTableContextMenuConfig, g as MatrxDataTableCopyConfig, x as MatrxDataTableCoverageConfig, c as MatrxDataTableDensity, y as MatrxDataTableDetailConfig, z as MatrxDataTableDrillConfig, B as MatrxDataTableEditConfig, D as MatrxDataTableEmptyState, E as MatrxDataTableExpandedDetailConfig, F as MatrxDataTableFacetsConfig, G as MatrxDataTableFilterUi, H as MatrxDataTableGroupingConfig, I as MatrxDataTableHierarchyConfig, J as MatrxDataTableHierarchyMove, K as MatrxDataTableMobileCardControls, N as MatrxDataTableMultiExpandedDetailConfig, O as MatrxDataTableQueryControl, e as MatrxDataTableQueryState, P as MatrxDataTableReadStatus, Q as MatrxDataTableSelectionConfig, R as MatrxDataTableSingleExpandedDetailConfig, U as MatrxDataTableSourceProcessing, V as MatrxDataTableSpreadsheetConfig, W as MatrxDataTableStyleConfig, X as MatrxDataTableSummaryConfig, Y as MatrxDataTableSummaryContext, Z as MatrxDataTableSummaryMetric, _ as MatrxDataTableToolbar, $ as MatrxDataTableUrlStateConfig, a0 as MatrxDataTableVirtualizeConfig, a1 as MatrxDataTableWindowConfig, a2 as MatrxDrillAnswerRow, a3 as MatrxDrillCrumb, a4 as MatrxDrillDimensionKind, a5 as MatrxDrillFilter, a6 as MatrxDrillGrain, a7 as MatrxDrillNode, a8 as MatrxDrillOther, a9 as MatrxDrillPivotColumn, aa as MatrxDrillRequest, ab as MatrxTablePagination, ac as NumberFilterOp, ad as SavedTableViewTab, ae as SortDirection, S as SortState, af as SpreadsheetSelection, ag as TableRankedSearchOptions, b as TableSavedViewsProps, T as TableSearchMatchMode, ah as TableSearchRole, ai as TableSearchScope, aj as TableViewQuery, ak as TableViewTab, al as TableViewTabs, am as TableViewTabsProps, an as TableViewTabsStore, ao as TextFilterMode, ap as ToolbarFacet, aq as addressHasDrill, ar as bucketLabel, as as bucketWindow, at as buildDrillTree, au as dimensionFor, av as dimensionRefLabel, aw as dimensionRefs, ax as drillCrumbs, ay as drillInto, az as drillIsGrouped, aA as drillPath, aB as drillQuestionFromParams, aC as drillQuestionToParams, aD as drillRequestKey, aE as drillRequests, aF as drillToRecords, aG as drillValueLabel, aH as emptyDrillQuestion, aI as inferTableSearchRole, aJ as nextDrillLevel, aK as otherOf, aL as parseDimensionRef, aM as pivotCell, aN as pivotColumns, aO as rankTableSearchRows, aP as resolveTableSearchScopes, aQ as sameDrillQuestion, aR as zoomOutTo } from '../layered-filters-Bxc5mB6_.cjs';
5
5
  import { TableReadFailureProps, TableStaleNoticeProps } from './host.cjs';
6
6
  export { MatrxDataTableHost, MatrxDataTableProvider, MatrxTableRowAlchemy, TableContextMenuBoundaryProps, TableDoors, TableEntityRefProps, TableLinkProps, TableMenuIconProps, TablePeekProps, TableSidePanelProps, TableToolbarActionProps, TableWindowPanelProps, useMatrxDataTableHost, useMatrxTableRowAlchemy } from './host.cjs';
7
7
  import { CopyControlProps } from './copy-types.cjs';
@@ -260,4 +260,118 @@ declare function ToolbarListedLabel({ label, children }: {
260
260
  children: ReactNode;
261
261
  }): React.JSX.Element;
262
262
 
263
- export { ColumnMarker, DefaultTableReadFailure, DefaultTableStaleNotice, FORMAT_MISMATCH_CLASS, FormattedCell, type FrozenColumns, MatrxColumnDef, MatrxDataTable, MatrxDataTableProps, MatrxDataTableRead, MatrxDataTableRecordControls, MatrxTableRowAlchemyProvider, NO_FROZEN_COLUMNS, type ResolvedColumnMarker, SavedViewsControl, type SavedViewsControlProps, TOOLBAR_CONTROL_HEIGHT, TableReadFailureProps, type TableReadView, TableStaleNoticeProps, TableTitleRow, type TableTitleRowProps, TableViewSnapshot, type ToggleSelectionArgs, type ToggleSelectionResult, ToolbarListedLabel, ToolbarOverflowMenu, type ToolbarOverflowMode, ToolbarOverflowSheet, alignForFormat, formatColumnValue, parseTableViewSnapshot, pixelWidth, resolveColumnMarker, resolveFrozenColumns, tableReadView, toggleSelection, useToolbarListed };
263
+ /**
264
+ * ONE CELL of a group header after the label cell: a subtotal under its own column.
265
+ */
266
+ interface MatrxTableGroupHeaderCell {
267
+ id: string;
268
+ align?: "left" | "center" | "right" | undefined;
269
+ /** Hidden below `sm`, like the column it sits under. */
270
+ mobileHidden?: boolean | undefined;
271
+ content?: ReactNode;
272
+ /** Marks the cell `data-matrx-table-group-aggregate=<id>` when it holds a subtotal. */
273
+ aggregate?: boolean | undefined;
274
+ }
275
+ interface MatrxTableGroupHeaderRowProps {
276
+ /** The section's stable key (`data-matrx-table-group-row`). */
277
+ groupKey: string;
278
+ /** The section's words, used for the toggle's accessible name. */
279
+ label: string;
280
+ /** Replaces the plain label (a drill button, an entity chip); the toggle stays. */
281
+ labelSlot?: ReactNode;
282
+ /** "12 records" — the count, beside the label. */
283
+ summary: string;
284
+ collapsed: boolean;
285
+ /** A section with nothing inside has no toggle. Default true. */
286
+ collapsible?: boolean | undefined;
287
+ /** Nesting depth (0 = outermost), drawn as indent. */
288
+ depth?: number | undefined;
289
+ /** Id of the label column, so its cell can be told apart. */
290
+ labelColumnId?: string | undefined;
291
+ labelMobileHidden?: boolean | undefined;
292
+ /** Every other column's cell, in column order. */
293
+ cells: readonly MatrxTableGroupHeaderCell[];
294
+ /** Selection / expand gutters before the first column. */
295
+ leadingCols?: number | undefined;
296
+ /** Virtualized column spacers, when the table windows its columns. */
297
+ spacers?: {
298
+ start: number;
299
+ end: number;
300
+ } | null | undefined;
301
+ showActionsCol?: boolean | undefined;
302
+ /** What the actions cell holds (a drill menu), when there is one. */
303
+ actions?: ReactNode;
304
+ onToggle: () => void;
305
+ /** Extra data attributes for a caller's own markers (`data-matrx-drill-level`). */
306
+ dataAttributes?: Record<string, string> | undefined;
307
+ }
308
+ /**
309
+ * A GROUP'S HEADER ROW — the one primitive every grouped table draws.
310
+ *
311
+ * It is a real `<tr>` with a real `<td>` per column, NOT one cell spanning the table —
312
+ * because the whole point of a subtotal is that it sits UNDER its own column. Airtable,
313
+ * Sheets and Notion all do it this way, and a colspan banner with the numbers crammed into it
314
+ * is the version that looks like a group and is useless as one.
315
+ *
316
+ * The chevron is a real button with the section's name on it, so the section can be opened and
317
+ * shut from the keyboard and a screen reader says which one.
318
+ *
319
+ * Exported (lane D3) so a page-grouped table, the server-grouped drill answer and any consumer
320
+ * draw ONE markup — nobody copies it again.
321
+ */
322
+ declare function MatrxTableGroupHeaderRow({ groupKey, label, labelSlot, summary, collapsed, collapsible, depth, labelColumnId, labelMobileHidden, cells, leadingCols, spacers, showActionsCol, actions, onToggle, dataAttributes, }: MatrxTableGroupHeaderRowProps): React.JSX.Element;
323
+
324
+ interface MatrxDrillAnswerTableProps {
325
+ dimensions: readonly MatrxDrillDimension[];
326
+ measures: readonly MatrxDrillMeasure[];
327
+ question: MatrxDrillQuestion;
328
+ onQuestionChange: (next: MatrxDrillQuestion) => void;
329
+ answers: MatrxDrillAnswers;
330
+ /** Declared drill paths; a click follows the one its level sits on. */
331
+ paths?: readonly (readonly string[])[] | undefined;
332
+ /** A read that failed, in words. */
333
+ error?: string | null | undefined;
334
+ rowNoun?: string | undefined;
335
+ emptyLabel?: string | undefined;
336
+ className?: string | undefined;
337
+ }
338
+ declare function MatrxDrillAnswerTable({ dimensions, measures, question, onQuestionChange, answers, paths, error, rowNoun, emptyLabel, className, }: MatrxDrillAnswerTableProps): React.JSX.Element;
339
+
340
+ declare function MatrxDrillGroupByMenu({ dimensions, question, onQuestionChange, }: {
341
+ dimensions: readonly MatrxDrillDimension[];
342
+ question: MatrxDrillQuestion;
343
+ onQuestionChange: (next: MatrxDrillQuestion) => void;
344
+ }): React.JSX.Element;
345
+ declare function MatrxDrillMeasurePicker({ measures, question, onQuestionChange, }: {
346
+ measures: readonly MatrxDrillMeasure[];
347
+ question: MatrxDrillQuestion;
348
+ onQuestionChange: (next: MatrxDrillQuestion) => void;
349
+ }): React.JSX.Element;
350
+ /**
351
+ * THE BREADCRUMB. `All records › Needs repair › Room 3`. Each crumb but the last zooms back out
352
+ * to it; the × clears every drill filter. Drawn only while the question is narrowed.
353
+ */
354
+ declare function MatrxDrillTrail({ dimensions, question, onQuestionChange, rootLabel, emptyLabel, className, }: {
355
+ dimensions: readonly MatrxDrillDimension[];
356
+ question: MatrxDrillQuestion;
357
+ onQuestionChange: (next: MatrxDrillQuestion) => void;
358
+ rootLabel: string;
359
+ emptyLabel?: string | undefined;
360
+ className?: string | undefined;
361
+ }): React.JSX.Element | null;
362
+
363
+ interface DrillUrlState {
364
+ question: MatrxDrillQuestion;
365
+ /** True when the address carries the question (it overrides the Saved view for this visit). */
366
+ fromAddress: boolean;
367
+ setQuestion: (next: MatrxDrillQuestion) => void;
368
+ /** Drop every drill parameter, so the Saved view's own question answers again. */
369
+ clearAddress: () => void;
370
+ }
371
+ declare function useDrillUrlState({ fallback, prefix, }: {
372
+ fallback: MatrxDrillQuestion;
373
+ /** Namespaces the keys (`<prefix>.by`) when a page holds more than one drill table. */
374
+ prefix?: string | undefined;
375
+ }): DrillUrlState;
376
+
377
+ export { ColumnMarker, DefaultTableReadFailure, DefaultTableStaleNotice, type DrillUrlState, FORMAT_MISMATCH_CLASS, FormattedCell, type FrozenColumns, MatrxColumnDef, MatrxDataTable, MatrxDataTableProps, MatrxDataTableRead, MatrxDataTableRecordControls, MatrxDrillAnswerTable, type MatrxDrillAnswerTableProps, MatrxDrillAnswers, MatrxDrillDimension, MatrxDrillGroupByMenu, MatrxDrillMeasure, MatrxDrillMeasurePicker, MatrxDrillQuestion, MatrxDrillTrail, type MatrxTableGroupHeaderCell, MatrxTableGroupHeaderRow, type MatrxTableGroupHeaderRowProps, MatrxTableRowAlchemyProvider, NO_FROZEN_COLUMNS, type ResolvedColumnMarker, SavedViewsControl, type SavedViewsControlProps, TOOLBAR_CONTROL_HEIGHT, TableReadFailureProps, type TableReadView, TableStaleNoticeProps, TableTitleRow, type TableTitleRowProps, TableViewSnapshot, type ToggleSelectionArgs, type ToggleSelectionResult, ToolbarListedLabel, ToolbarOverflowMenu, type ToolbarOverflowMode, ToolbarOverflowSheet, alignForFormat, formatColumnValue, parseTableViewSnapshot, pixelWidth, resolveColumnMarker, resolveFrozenColumns, tableReadView, toggleSelection, useDrillUrlState, useToolbarListed };
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { h as MatrxDataTableProps, i as TableViewSnapshot, d as MatrxDataTableRecordControls, j as MatrxDataTableRead, k as ColumnMarker, M as MatrxColumnDef } from '../layered-filters-CsbrucEC.js';
4
- export { A as AnyOfColumnSearch, l as CellEditType, m as CellEditsMap, f as ColumnFilterKind, a as ColumnFilterValue, C as ColumnFiltersState, n as MatrxDataTableContextMenuConfig, g as MatrxDataTableCopyConfig, o as MatrxDataTableCoverageConfig, c as MatrxDataTableDensity, p as MatrxDataTableDetailConfig, q as MatrxDataTableEditConfig, r as MatrxDataTableEmptyState, s as MatrxDataTableExpandedDetailConfig, t as MatrxDataTableFacetsConfig, u as MatrxDataTableFilterUi, v as MatrxDataTableGroupingConfig, w as MatrxDataTableHierarchyConfig, x as MatrxDataTableHierarchyMove, y as MatrxDataTableMobileCardControls, z as MatrxDataTableMultiExpandedDetailConfig, B as MatrxDataTableQueryControl, e as MatrxDataTableQueryState, D as MatrxDataTableReadStatus, E as MatrxDataTableSelectionConfig, F as MatrxDataTableSingleExpandedDetailConfig, G as MatrxDataTableSourceProcessing, H as MatrxDataTableSpreadsheetConfig, I as MatrxDataTableStyleConfig, J as MatrxDataTableSummaryConfig, K as MatrxDataTableSummaryContext, N as MatrxDataTableSummaryMetric, O as MatrxDataTableToolbar, P as MatrxDataTableUrlStateConfig, Q as MatrxDataTableVirtualizeConfig, R as MatrxDataTableWindowConfig, U as MatrxTablePagination, V as NumberFilterOp, W as SavedTableViewTab, X as SortDirection, S as SortState, Y as SpreadsheetSelection, Z as TableRankedSearchOptions, b as TableSavedViewsProps, T as TableSearchMatchMode, _ as TableSearchRole, $ as TableSearchScope, a0 as TableViewQuery, a1 as TableViewTab, a2 as TableViewTabs, a3 as TableViewTabsProps, a4 as TableViewTabsStore, a5 as TextFilterMode, a6 as ToolbarFacet, a7 as inferTableSearchRole, a8 as rankTableSearchRows, a9 as resolveTableSearchScopes } from '../layered-filters-CsbrucEC.js';
3
+ import { h as MatrxDataTableProps, i as TableViewSnapshot, d as MatrxDataTableRecordControls, j as MatrxDataTableRead, k as ColumnMarker, M as MatrxColumnDef, l as MatrxDrillDimension, m as MatrxDrillMeasure, n as MatrxDrillQuestion, o as MatrxDrillAnswers } from '../layered-filters-rDTFmgfK.js';
4
+ export { A as AnyOfColumnSearch, p as CellEditType, q as CellEditsMap, f as ColumnFilterKind, a as ColumnFilterValue, C as ColumnFiltersState, r as MATRX_DRILL_GRAINS, s as MATRX_DRILL_MAX_LEVELS, t as MATRX_DRILL_NONE, u as MATRX_DRILL_OTHER_COLUMN, v as MATRX_DRILL_PIVOT_COLUMNS, w as MatrxDataTableContextMenuConfig, g as MatrxDataTableCopyConfig, x as MatrxDataTableCoverageConfig, c as MatrxDataTableDensity, y as MatrxDataTableDetailConfig, z as MatrxDataTableDrillConfig, B as MatrxDataTableEditConfig, D as MatrxDataTableEmptyState, E as MatrxDataTableExpandedDetailConfig, F as MatrxDataTableFacetsConfig, G as MatrxDataTableFilterUi, H as MatrxDataTableGroupingConfig, I as MatrxDataTableHierarchyConfig, J as MatrxDataTableHierarchyMove, K as MatrxDataTableMobileCardControls, N as MatrxDataTableMultiExpandedDetailConfig, O as MatrxDataTableQueryControl, e as MatrxDataTableQueryState, P as MatrxDataTableReadStatus, Q as MatrxDataTableSelectionConfig, R as MatrxDataTableSingleExpandedDetailConfig, U as MatrxDataTableSourceProcessing, V as MatrxDataTableSpreadsheetConfig, W as MatrxDataTableStyleConfig, X as MatrxDataTableSummaryConfig, Y as MatrxDataTableSummaryContext, Z as MatrxDataTableSummaryMetric, _ as MatrxDataTableToolbar, $ as MatrxDataTableUrlStateConfig, a0 as MatrxDataTableVirtualizeConfig, a1 as MatrxDataTableWindowConfig, a2 as MatrxDrillAnswerRow, a3 as MatrxDrillCrumb, a4 as MatrxDrillDimensionKind, a5 as MatrxDrillFilter, a6 as MatrxDrillGrain, a7 as MatrxDrillNode, a8 as MatrxDrillOther, a9 as MatrxDrillPivotColumn, aa as MatrxDrillRequest, ab as MatrxTablePagination, ac as NumberFilterOp, ad as SavedTableViewTab, ae as SortDirection, S as SortState, af as SpreadsheetSelection, ag as TableRankedSearchOptions, b as TableSavedViewsProps, T as TableSearchMatchMode, ah as TableSearchRole, ai as TableSearchScope, aj as TableViewQuery, ak as TableViewTab, al as TableViewTabs, am as TableViewTabsProps, an as TableViewTabsStore, ao as TextFilterMode, ap as ToolbarFacet, aq as addressHasDrill, ar as bucketLabel, as as bucketWindow, at as buildDrillTree, au as dimensionFor, av as dimensionRefLabel, aw as dimensionRefs, ax as drillCrumbs, ay as drillInto, az as drillIsGrouped, aA as drillPath, aB as drillQuestionFromParams, aC as drillQuestionToParams, aD as drillRequestKey, aE as drillRequests, aF as drillToRecords, aG as drillValueLabel, aH as emptyDrillQuestion, aI as inferTableSearchRole, aJ as nextDrillLevel, aK as otherOf, aL as parseDimensionRef, aM as pivotCell, aN as pivotColumns, aO as rankTableSearchRows, aP as resolveTableSearchScopes, aQ as sameDrillQuestion, aR as zoomOutTo } from '../layered-filters-rDTFmgfK.js';
5
5
  import { TableReadFailureProps, TableStaleNoticeProps } from './host.js';
6
6
  export { MatrxDataTableHost, MatrxDataTableProvider, MatrxTableRowAlchemy, TableContextMenuBoundaryProps, TableDoors, TableEntityRefProps, TableLinkProps, TableMenuIconProps, TablePeekProps, TableSidePanelProps, TableToolbarActionProps, TableWindowPanelProps, useMatrxDataTableHost, useMatrxTableRowAlchemy } from './host.js';
7
7
  import { CopyControlProps } from './copy-types.js';
@@ -260,4 +260,118 @@ declare function ToolbarListedLabel({ label, children }: {
260
260
  children: ReactNode;
261
261
  }): React.JSX.Element;
262
262
 
263
- export { ColumnMarker, DefaultTableReadFailure, DefaultTableStaleNotice, FORMAT_MISMATCH_CLASS, FormattedCell, type FrozenColumns, MatrxColumnDef, MatrxDataTable, MatrxDataTableProps, MatrxDataTableRead, MatrxDataTableRecordControls, MatrxTableRowAlchemyProvider, NO_FROZEN_COLUMNS, type ResolvedColumnMarker, SavedViewsControl, type SavedViewsControlProps, TOOLBAR_CONTROL_HEIGHT, TableReadFailureProps, type TableReadView, TableStaleNoticeProps, TableTitleRow, type TableTitleRowProps, TableViewSnapshot, type ToggleSelectionArgs, type ToggleSelectionResult, ToolbarListedLabel, ToolbarOverflowMenu, type ToolbarOverflowMode, ToolbarOverflowSheet, alignForFormat, formatColumnValue, parseTableViewSnapshot, pixelWidth, resolveColumnMarker, resolveFrozenColumns, tableReadView, toggleSelection, useToolbarListed };
263
+ /**
264
+ * ONE CELL of a group header after the label cell: a subtotal under its own column.
265
+ */
266
+ interface MatrxTableGroupHeaderCell {
267
+ id: string;
268
+ align?: "left" | "center" | "right" | undefined;
269
+ /** Hidden below `sm`, like the column it sits under. */
270
+ mobileHidden?: boolean | undefined;
271
+ content?: ReactNode;
272
+ /** Marks the cell `data-matrx-table-group-aggregate=<id>` when it holds a subtotal. */
273
+ aggregate?: boolean | undefined;
274
+ }
275
+ interface MatrxTableGroupHeaderRowProps {
276
+ /** The section's stable key (`data-matrx-table-group-row`). */
277
+ groupKey: string;
278
+ /** The section's words, used for the toggle's accessible name. */
279
+ label: string;
280
+ /** Replaces the plain label (a drill button, an entity chip); the toggle stays. */
281
+ labelSlot?: ReactNode;
282
+ /** "12 records" — the count, beside the label. */
283
+ summary: string;
284
+ collapsed: boolean;
285
+ /** A section with nothing inside has no toggle. Default true. */
286
+ collapsible?: boolean | undefined;
287
+ /** Nesting depth (0 = outermost), drawn as indent. */
288
+ depth?: number | undefined;
289
+ /** Id of the label column, so its cell can be told apart. */
290
+ labelColumnId?: string | undefined;
291
+ labelMobileHidden?: boolean | undefined;
292
+ /** Every other column's cell, in column order. */
293
+ cells: readonly MatrxTableGroupHeaderCell[];
294
+ /** Selection / expand gutters before the first column. */
295
+ leadingCols?: number | undefined;
296
+ /** Virtualized column spacers, when the table windows its columns. */
297
+ spacers?: {
298
+ start: number;
299
+ end: number;
300
+ } | null | undefined;
301
+ showActionsCol?: boolean | undefined;
302
+ /** What the actions cell holds (a drill menu), when there is one. */
303
+ actions?: ReactNode;
304
+ onToggle: () => void;
305
+ /** Extra data attributes for a caller's own markers (`data-matrx-drill-level`). */
306
+ dataAttributes?: Record<string, string> | undefined;
307
+ }
308
+ /**
309
+ * A GROUP'S HEADER ROW — the one primitive every grouped table draws.
310
+ *
311
+ * It is a real `<tr>` with a real `<td>` per column, NOT one cell spanning the table —
312
+ * because the whole point of a subtotal is that it sits UNDER its own column. Airtable,
313
+ * Sheets and Notion all do it this way, and a colspan banner with the numbers crammed into it
314
+ * is the version that looks like a group and is useless as one.
315
+ *
316
+ * The chevron is a real button with the section's name on it, so the section can be opened and
317
+ * shut from the keyboard and a screen reader says which one.
318
+ *
319
+ * Exported (lane D3) so a page-grouped table, the server-grouped drill answer and any consumer
320
+ * draw ONE markup — nobody copies it again.
321
+ */
322
+ declare function MatrxTableGroupHeaderRow({ groupKey, label, labelSlot, summary, collapsed, collapsible, depth, labelColumnId, labelMobileHidden, cells, leadingCols, spacers, showActionsCol, actions, onToggle, dataAttributes, }: MatrxTableGroupHeaderRowProps): React.JSX.Element;
323
+
324
+ interface MatrxDrillAnswerTableProps {
325
+ dimensions: readonly MatrxDrillDimension[];
326
+ measures: readonly MatrxDrillMeasure[];
327
+ question: MatrxDrillQuestion;
328
+ onQuestionChange: (next: MatrxDrillQuestion) => void;
329
+ answers: MatrxDrillAnswers;
330
+ /** Declared drill paths; a click follows the one its level sits on. */
331
+ paths?: readonly (readonly string[])[] | undefined;
332
+ /** A read that failed, in words. */
333
+ error?: string | null | undefined;
334
+ rowNoun?: string | undefined;
335
+ emptyLabel?: string | undefined;
336
+ className?: string | undefined;
337
+ }
338
+ declare function MatrxDrillAnswerTable({ dimensions, measures, question, onQuestionChange, answers, paths, error, rowNoun, emptyLabel, className, }: MatrxDrillAnswerTableProps): React.JSX.Element;
339
+
340
+ declare function MatrxDrillGroupByMenu({ dimensions, question, onQuestionChange, }: {
341
+ dimensions: readonly MatrxDrillDimension[];
342
+ question: MatrxDrillQuestion;
343
+ onQuestionChange: (next: MatrxDrillQuestion) => void;
344
+ }): React.JSX.Element;
345
+ declare function MatrxDrillMeasurePicker({ measures, question, onQuestionChange, }: {
346
+ measures: readonly MatrxDrillMeasure[];
347
+ question: MatrxDrillQuestion;
348
+ onQuestionChange: (next: MatrxDrillQuestion) => void;
349
+ }): React.JSX.Element;
350
+ /**
351
+ * THE BREADCRUMB. `All records › Needs repair › Room 3`. Each crumb but the last zooms back out
352
+ * to it; the × clears every drill filter. Drawn only while the question is narrowed.
353
+ */
354
+ declare function MatrxDrillTrail({ dimensions, question, onQuestionChange, rootLabel, emptyLabel, className, }: {
355
+ dimensions: readonly MatrxDrillDimension[];
356
+ question: MatrxDrillQuestion;
357
+ onQuestionChange: (next: MatrxDrillQuestion) => void;
358
+ rootLabel: string;
359
+ emptyLabel?: string | undefined;
360
+ className?: string | undefined;
361
+ }): React.JSX.Element | null;
362
+
363
+ interface DrillUrlState {
364
+ question: MatrxDrillQuestion;
365
+ /** True when the address carries the question (it overrides the Saved view for this visit). */
366
+ fromAddress: boolean;
367
+ setQuestion: (next: MatrxDrillQuestion) => void;
368
+ /** Drop every drill parameter, so the Saved view's own question answers again. */
369
+ clearAddress: () => void;
370
+ }
371
+ declare function useDrillUrlState({ fallback, prefix, }: {
372
+ fallback: MatrxDrillQuestion;
373
+ /** Namespaces the keys (`<prefix>.by`) when a page holds more than one drill table. */
374
+ prefix?: string | undefined;
375
+ }): DrillUrlState;
376
+
377
+ export { ColumnMarker, DefaultTableReadFailure, DefaultTableStaleNotice, type DrillUrlState, FORMAT_MISMATCH_CLASS, FormattedCell, type FrozenColumns, MatrxColumnDef, MatrxDataTable, MatrxDataTableProps, MatrxDataTableRead, MatrxDataTableRecordControls, MatrxDrillAnswerTable, type MatrxDrillAnswerTableProps, MatrxDrillAnswers, MatrxDrillDimension, MatrxDrillGroupByMenu, MatrxDrillMeasure, MatrxDrillMeasurePicker, MatrxDrillQuestion, MatrxDrillTrail, type MatrxTableGroupHeaderCell, MatrxTableGroupHeaderRow, type MatrxTableGroupHeaderRowProps, MatrxTableRowAlchemyProvider, NO_FROZEN_COLUMNS, type ResolvedColumnMarker, SavedViewsControl, type SavedViewsControlProps, TOOLBAR_CONTROL_HEIGHT, TableReadFailureProps, type TableReadView, TableStaleNoticeProps, TableTitleRow, type TableTitleRowProps, TableViewSnapshot, type ToggleSelectionArgs, type ToggleSelectionResult, ToolbarListedLabel, ToolbarOverflowMenu, type ToolbarOverflowMode, ToolbarOverflowSheet, alignForFormat, formatColumnValue, parseTableViewSnapshot, pixelWidth, resolveColumnMarker, resolveFrozenColumns, tableReadView, toggleSelection, useDrillUrlState, useToolbarListed };