@galaxy-io/dls 2.8.1 → 2.10.0

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 (106) hide show
  1. package/README.md +2 -2
  2. package/dist/beacons/Beacon.d.ts +1 -1
  3. package/dist/beacons/Beacon.js +12 -28
  4. package/dist/brand/GalaxyAlchemyWordmark.d.ts +4 -1
  5. package/dist/brand/GalaxyAlchemyWordmark.js +7 -1
  6. package/dist/brand/GalaxyFilamentWordmark.d.ts +5 -2
  7. package/dist/brand/GalaxyFilamentWordmark.js +9 -2
  8. package/dist/brand/GalaxyLogomark.js +3 -0
  9. package/dist/brand/PoweredBy.d.ts +27 -0
  10. package/dist/brand/PoweredBy.js +96 -0
  11. package/dist/brand/internal/svg/GalaxyAlchemyWordmarkSvg.d.ts +1 -1
  12. package/dist/brand/internal/svg/GalaxyAlchemyWordmarkSvg.js +34 -8
  13. package/dist/brand/internal/svg/GalaxyFilamentWordmarkSvg.d.ts +1 -1
  14. package/dist/brand/internal/svg/GalaxyFilamentWordmarkSvg.js +2 -2
  15. package/dist/charts/Heatmap.js +25 -9
  16. package/dist/charts/Sparkline.d.ts +1 -1
  17. package/dist/charts/Sparkline.js +10 -26
  18. package/dist/charts/chartFormat.d.ts +1 -1
  19. package/dist/charts/chartFormat.js +2 -2
  20. package/dist/charts/heatmapGeometry.d.ts +14 -0
  21. package/dist/charts/heatmapGeometry.js +17 -1
  22. package/dist/chips/Chip.d.ts +2 -2
  23. package/dist/chips/Chip.js +15 -31
  24. package/dist/drawer/Drawer.d.ts +2 -2
  25. package/dist/drawer/Drawer.js +1 -1
  26. package/dist/editor/CodeEditor.d.ts +1 -1
  27. package/dist/editor/CodeEditor.js +2 -1
  28. package/dist/feedback/Alert.d.ts +36 -9
  29. package/dist/feedback/Alert.js +26 -8
  30. package/dist/feedback/ProgressBar.d.ts +4 -1
  31. package/dist/feedback/ProgressBar.js +17 -30
  32. package/dist/feedback/ProgressCircle.d.ts +1 -1
  33. package/dist/feedback/ProgressCircle.js +14 -30
  34. package/dist/hooks/useEndReached.d.ts +40 -0
  35. package/dist/hooks/useEndReached.js +69 -0
  36. package/dist/icons/Icon.d.ts +36 -8
  37. package/dist/icons/Icon.js +14 -7
  38. package/dist/inputs/CronInput.js +114 -78
  39. package/dist/inputs/DateInput.d.ts +1 -1
  40. package/dist/inputs/DateInput.js +10 -10
  41. package/dist/inputs/MultiSelectInput.d.ts +3 -1
  42. package/dist/inputs/MultiSelectInput.js +8 -3
  43. package/dist/inputs/SelectInput.d.ts +8 -1
  44. package/dist/inputs/SelectInput.js +52 -25
  45. package/dist/inputs/internal/selectAll.d.ts +11 -0
  46. package/dist/inputs/internal/selectAll.js +28 -0
  47. package/dist/json/JsonViewer.js +7 -6
  48. package/dist/layout/AppFrame.d.ts +20 -0
  49. package/dist/layout/AppFrame.js +71 -0
  50. package/dist/layout/EmptyLayout.d.ts +53 -0
  51. package/dist/layout/EmptyLayout.js +59 -0
  52. package/dist/layout/ErrorLayout.d.ts +42 -0
  53. package/dist/layout/ErrorLayout.js +60 -0
  54. package/dist/layout/PageLayout.d.ts +26 -0
  55. package/dist/layout/PageLayout.js +116 -0
  56. package/dist/layout/PendingLayout.d.ts +30 -0
  57. package/dist/layout/PendingLayout.js +57 -0
  58. package/dist/layout/internal/errorState.d.ts +14 -0
  59. package/dist/layout/internal/errorState.js +49 -0
  60. package/dist/layout/internal/region.d.ts +10 -0
  61. package/dist/layout/internal/region.js +24 -0
  62. package/dist/lists/DescriptionList.js +1 -0
  63. package/dist/menu/Menu.d.ts +2 -2
  64. package/dist/menu/Menu.js +6 -13
  65. package/dist/modal/Modal.d.ts +2 -2
  66. package/dist/modal/Modal.js +1 -1
  67. package/dist/navigation/CommandPalette.js +4 -11
  68. package/dist/navigation/SidebarNav.d.ts +5 -0
  69. package/dist/navigation/SidebarNav.js +41 -22
  70. package/dist/navigation/Topbar.js +4 -0
  71. package/dist/shapes/Circle.d.ts +1 -1
  72. package/dist/shapes/Circle.js +10 -26
  73. package/dist/shapes/Square.d.ts +1 -1
  74. package/dist/shapes/Square.js +10 -26
  75. package/dist/styles/internal/roleColor.d.ts +3 -0
  76. package/dist/styles/internal/roleColor.js +42 -0
  77. package/dist/styles/mixins.js +1 -1
  78. package/dist/styles.css +1 -1
  79. package/dist/table/InfiniteSpreadsheet.js +6 -6
  80. package/dist/table/InfiniteTable.d.ts +57 -18
  81. package/dist/table/InfiniteTable.js +5 -3
  82. package/dist/table/TableCore.d.ts +11 -2
  83. package/dist/table/TableCore.js +108 -87
  84. package/dist/table/VirtualizedInfiniteTable.d.ts +58 -19
  85. package/dist/table/VirtualizedInfiniteTable.js +9 -6
  86. package/dist/table/useInfiniteScrollSentinel.d.ts +13 -13
  87. package/dist/table/useInfiniteScrollSentinel.js +7 -51
  88. package/dist/table/useTableColumnLayout.d.ts +8 -2
  89. package/dist/table/useTableColumnLayout.js +36 -13
  90. package/dist/theme/tokens/dark.js +1 -1
  91. package/dist/theme/tokens/light.js +4 -3
  92. package/dist/theme/tokens/types.d.ts +7 -7
  93. package/dist/timeline/Timeline.d.ts +1 -1
  94. package/dist/timeline/Timeline.js +6 -24
  95. package/dist/tokens.css +1 -1
  96. package/dist/utils/format.d.ts +35 -10
  97. package/dist/utils/format.js +60 -12
  98. package/dist/utils/search.d.ts +15 -0
  99. package/dist/utils/search.js +24 -0
  100. package/dist/vite/index.d.ts +16 -2
  101. package/dist/vite/index.js +28 -19
  102. package/dist/vite/internal/themeBoot.d.ts +25 -0
  103. package/dist/vite/internal/themeBoot.js +44 -0
  104. package/dist/vite/internal/wywOptions.d.ts +46 -0
  105. package/dist/vite/internal/wywOptions.js +44 -0
  106. package/package.json +34 -1
@@ -8,6 +8,7 @@ import Beacon, { BeaconSize, BeaconVariant } from "../beacons/Beacon.js";
8
8
  import Icon, { IconVariant } from "../icons/Icon.js";
9
9
  import Button, { ButtonVariant } from "../buttons/Button.js";
10
10
  import EmptyState from "../feedback/EmptyState.js";
11
+ import { formatDate } from "../utils/format.js";
11
12
  import { InputSize } from "../inputs/Input.js";
12
13
  import { SelectInputSize } from "../inputs/SelectInput.js";
13
14
  import { DateInputSize } from "../inputs/DateInput.js";
@@ -198,7 +199,6 @@ var CELL_EDITING_CSS = "gx-InfiniteSpreadsheet-CELL_EDITING_CSS-c1dhzhlk";
198
199
  var TRAILING_CSS = "gx-InfiniteSpreadsheet-TRAILING_CSS-tfgc5gq";
199
200
  /** Spread on the row-actions trigger: the cell is the tab stop, not the button. */
200
201
  var UNTABBABLE = { tabIndex: -1 };
201
- var DATE_FORMAT_OPTIONS = { dateStyle: "medium" };
202
202
  /** Two cell values are the same (dates by time; a TEXT `null` edits as `""`). */
203
203
  function isSameValue(type, current, next) {
204
204
  if (current instanceof Date || next instanceof Date) return current instanceof Date && next instanceof Date && current.getTime() === next.getTime();
@@ -233,7 +233,7 @@ function CellDisplay({ column, value, metrics, iconPx, enumGapCss }) {
233
233
  shouldTooltipOnOverflow: true,
234
234
  isTabular: true,
235
235
  className: CELL_TEXT_CSS,
236
- children: new Intl.DateTimeFormat(void 0, DATE_FORMAT_OPTIONS).format(value)
236
+ children: formatDate(value)
237
237
  });
238
238
  return /* @__PURE__ */ jsx(TableCellText, {
239
239
  value,
@@ -263,7 +263,7 @@ var SpreadsheetRow = memo(function SpreadsheetRow({ row, rowIndex, rowId, column
263
263
  role: "row",
264
264
  "aria-rowindex": ariaRowIndex,
265
265
  ...isLoaded ? {} : { "aria-busy": true },
266
- className: cx(VIRTUAL_ROW_CSS, isBorderless && "gx-TableCore-ROW_NO_BORDER_CSS-rpsswqs"),
266
+ className: cx(VIRTUAL_ROW_CSS, isBorderless && "gx-TableCore-ROW_NO_BORDER_CSS-rwbqwrq"),
267
267
  style,
268
268
  children: [columns.map((resolved, columnIndex) => {
269
269
  const column = resolved.column;
@@ -331,7 +331,7 @@ var SpreadsheetRow = memo(function SpreadsheetRow({ row, rowIndex, rowId, column
331
331
  ...cellHandlers(actionsColumn),
332
332
  role: "gridcell",
333
333
  "aria-colindex": actionsColumn + 1,
334
- className: cx("gx-TableCore-SYNTHETIC_CELL_CSS-s1g01kh5", PIN_TO_CSS_MAP[Side.RIGHT], TRAILING_CSS, CELL_FOCUS_CSS, hasGridFocus && tabStopColumn === actionsColumn && CELL_SELECTED_CSS),
334
+ className: cx("gx-TableCore-SYNTHETIC_CELL_CSS-s1qwxx34", PIN_TO_CSS_MAP[Side.RIGHT], TRAILING_CSS, CELL_FOCUS_CSS, hasGridFocus && tabStopColumn === actionsColumn && CELL_SELECTED_CSS),
335
335
  children: actions !== null && actions !== void 0 && /* @__PURE__ */ jsx(Menu, {
336
336
  isOpen: isActionsOpen,
337
337
  onOpenChange: (isOpen) => callbacks.onActionsOpenChange(rowId, isOpen),
@@ -350,7 +350,7 @@ var SpreadsheetRow = memo(function SpreadsheetRow({ row, rowIndex, rowId, column
350
350
  role: "gridcell",
351
351
  "aria-colindex": actionsColumn + 1,
352
352
  "aria-readonly": true,
353
- className: cx("gx-TableCore-SYNTHETIC_CELL_CSS-s1g01kh5", PIN_TO_CSS_MAP[Side.RIGHT], TRAILING_CSS)
353
+ className: cx("gx-TableCore-SYNTHETIC_CELL_CSS-s1qwxx34", PIN_TO_CSS_MAP[Side.RIGHT], TRAILING_CSS)
354
354
  }))]
355
355
  });
356
356
  });
@@ -754,7 +754,7 @@ var InfiniteSpreadsheetInner = forwardRef(function InfiniteSpreadsheet(props, re
754
754
  }), showAddRow && isMounted && /* @__PURE__ */ jsx(AddRow, {
755
755
  role: "row",
756
756
  "aria-rowindex": rowCount + 2,
757
- className: "gx-TableCore-VIRTUAL_ROW_CSS-v1emgwoo",
757
+ className: "gx-TableCore-VIRTUAL_ROW_CSS-v1n5u17i",
758
758
  style: startStyle(totalSize),
759
759
  children: /* @__PURE__ */ jsx(AddRowCell, {
760
760
  role: "gridcell",
@@ -1,4 +1,5 @@
1
1
  import { type AriaAttributes, type CSSProperties, type KeyboardEvent, type MouseEvent, type ReactElement, type ReactNode, type RefAttributes } from "react";
2
+ import type { Space } from "../theme/enums.js";
2
3
  import type { TableColumn, TableColumnLayout, TableSort } from "./types.js";
3
4
  /** Row rung of the table (canonical subset; the 1.x TableDensity members). */
4
5
  export declare enum InfiniteTableSize {
@@ -9,7 +10,8 @@ export declare enum InfiniteTableSize {
9
10
  /** 52px rows, body_lg text. Rows with avatars or two-line cells. */
10
11
  LARGE = "LARGE"
11
12
  }
12
- export interface InfiniteTableProps<TData> extends AriaAttributes {
13
+ /** Every InfiniteTable prop except the header and what lives in it (`hasHeader`, sorting, resize, customize). */
14
+ interface InfiniteTableBaseProps<TData> extends AriaAttributes {
13
15
  /** The columns in their default order. See `TableColumn` in `@galaxy-io/dls/table/types`. */
14
16
  columns: TableColumn<TData>[];
15
17
  /** The rows loaded so far, in display order (unless the table sorts them). */
@@ -44,15 +46,6 @@ export interface InfiniteTableProps<TData> extends AriaAttributes {
44
46
  activeRowId?: string | null;
45
47
  /** Menu rows (`MenuItem`, `MenuSeparator`, …) for a row's actions menu, opened from a trailing "…" button. Return `null` for a row with no actions. */
46
48
  rowActions?: (row: TData, rowIndex: number) => ReactNode;
47
- /** Controlled sorted column. `null` is unsorted. */
48
- sort?: TableSort | null;
49
- /**
50
- * Initial sort while uncontrolled.
51
- * @default null
52
- */
53
- defaultSort?: TableSort | null;
54
- /** Called with the next sort when a sortable header is pressed: ascending, then descending, then unsorted. */
55
- onSortChange?: (sort: TableSort | null) => void;
56
49
  /**
57
50
  * Adds a leading checkbox column, a select-all checkbox in the header, and Space / Shift+Space to select rows.
58
51
  * @default false
@@ -88,15 +81,11 @@ export interface InfiniteTableProps<TData> extends AriaAttributes {
88
81
  /** Called with the full new arrangement when the user resizes, moves, hides, shows or resets columns. Fires on every resize step; debounce before saving. */
89
82
  onColumnLayoutChange?: (columnLayout: TableColumnLayout) => void;
90
83
  /**
91
- * Adds a drag handle at the end of each header cell (arrow keys too). Columns opt out with `canResize: false`.
92
- * @default false
93
- */
94
- canResizeColumns?: boolean;
95
- /**
96
- * Lets the user reorder columns (drag a header, or Alt+ArrowLeft / Alt+ArrowRight on it) and show or hide them from a Columns menu at the end of the header. Columns opt out of hiding with `canHide: false`.
97
- * @default false
84
+ * Space between the ends of each row and its first and last cell, on top of the cells' own padding; rows, hairlines and row fills still run the full width.
85
+ * For a table flush with a panel's edges whose content should sit on the page's padding line (a `SMALL` table takes `4`: 12px cell padding plus 4 is the island's 16), instead of a padded wrapper, which would cut the hairlines short.
86
+ * @default 0
98
87
  */
99
- canCustomizeColumns?: boolean;
88
+ inset?: Space;
100
89
  /** Accessible name of the table. Use `aria-labelledby` instead when a visible heading names it. */
101
90
  ariaLabel?: string;
102
91
  /** DOM id on the root `<div>`. */
@@ -108,6 +97,56 @@ export interface InfiniteTableProps<TData> extends AriaAttributes {
108
97
  /** Inline style on the root `<div>`; only for setting CSS custom properties. */
109
98
  style?: CSSProperties;
110
99
  }
100
+ /** A table with its header row (the default): sorting, resizing and customizing live in it. */
101
+ interface InfiniteTableWithHeaderProps {
102
+ /**
103
+ * Shows the header row. Without it the row stays in the DOM, visually hidden, so screen readers keep the column names; sorting, resizing, customizing and the select-all checkbox go with it (a type error to pass them). For a compact list whose columns explain themselves.
104
+ * @default true
105
+ */
106
+ hasHeader?: true;
107
+ /** Controlled sorted column. `null` is unsorted. */
108
+ sort?: TableSort | null;
109
+ /**
110
+ * Initial sort while uncontrolled.
111
+ * @default null
112
+ */
113
+ defaultSort?: TableSort | null;
114
+ /** Called with the next sort when a sortable header is pressed: ascending, then descending, then unsorted. */
115
+ onSortChange?: (sort: TableSort | null) => void;
116
+ /**
117
+ * Adds a drag handle at the end of each header cell (arrow keys too). Columns opt out with `canResize: false`.
118
+ * @default false
119
+ */
120
+ canResizeColumns?: boolean;
121
+ /**
122
+ * Lets the user reorder columns (drag a header, or Alt+ArrowLeft / Alt+ArrowRight on it) and show or hide them from a Columns menu at the end of the header. Columns opt out of hiding with `canHide: false`.
123
+ * @default false
124
+ */
125
+ canCustomizeColumns?: boolean;
126
+ }
127
+ /** A table without a visible header row: nothing that lives in the header can be passed. */
128
+ interface InfiniteTableHeaderlessProps {
129
+ /**
130
+ * Shows the header row. Without it the row stays in the DOM, visually hidden, so screen readers keep the column names; sorting, resizing, customizing and the select-all checkbox go with it (a type error to pass them). For a compact list whose columns explain themselves.
131
+ * @default true
132
+ */
133
+ hasHeader: false;
134
+ /** Controlled sorted column. Not without a header. */
135
+ sort?: undefined;
136
+ /** Initial sort while uncontrolled. Not without a header. */
137
+ defaultSort?: undefined;
138
+ /** Called with the next sort. Not without a header. */
139
+ onSortChange?: undefined;
140
+ /** Resize handles live in the header. Not without one. */
141
+ canResizeColumns?: false;
142
+ /** Reordering and the Columns menu live in the header. Not without one. */
143
+ canCustomizeColumns?: false;
144
+ }
145
+ /**
146
+ * InfiniteTable props. `hasHeader: false` with `sort`, `defaultSort`, `onSortChange`,
147
+ * `canResizeColumns` or `canCustomizeColumns` is a type error (the Widget `isCollapsible` precedent).
148
+ */
149
+ export type InfiniteTableProps<TData> = InfiniteTableBaseProps<TData> & (InfiniteTableWithHeaderProps | InfiniteTableHeaderlessProps);
111
150
  /**
112
151
  * The public, generic call signature (`TData` inferred from `data` and `columns`). Never called:
113
152
  * it only types the default export. An arrow function rather than a type literal, so
@@ -15,7 +15,7 @@ import { getCoreRowModel, getSortedRowModel, useReactTable } from "@tanstack/rea
15
15
  * and pages; the table sorts on its own only when it holds every row (no `onEndReached`).
16
16
  *
17
17
  * Built on the shared table core (`TableCore`, `useTableColumnLayout`,
18
- * `useTableKeyboardNavigation`, `useInfiniteScrollSentinel`), which VirtualizedInfiniteTable and
18
+ * `useTableKeyboardNavigation`, `useEndReached`), which VirtualizedInfiniteTable and
19
19
  * InfiniteSpreadsheet share. `@tanstack/react-table` (an optional peer) supplies the row model and
20
20
  * type-aware sorting; this is the only module that imports it.
21
21
  *
@@ -52,7 +52,7 @@ function splitPassthrough(rest) {
52
52
  }
53
53
  /** The read-only data table. */
54
54
  var InfiniteTableInner = forwardRef(function InfiniteTable(props, ref) {
55
- const { columns, data, getRowId, size: sizeProp, isLoading: isLoadingProp, error: errorProp, emptyState, onEndReached, onRowClick, activeRowId, rowActions, sort, defaultSort, onSortChange, isSelectable: isSelectableProp, value, defaultValue, onChange, renderExpandedRow, expandedIds, defaultExpandedIds, onExpandedIdsChange, columnLayout, defaultColumnLayout, onColumnLayoutChange, canResizeColumns: canResizeColumnsProp, canCustomizeColumns: canCustomizeColumnsProp, ariaLabel, id, className, style, ...rest } = props;
55
+ const { columns, data, getRowId, size: sizeProp, isLoading: isLoadingProp, error: errorProp, emptyState, onEndReached, onRowClick, activeRowId, rowActions, sort, defaultSort, onSortChange, isSelectable: isSelectableProp, value, defaultValue, onChange, renderExpandedRow, expandedIds, defaultExpandedIds, onExpandedIdsChange, columnLayout, defaultColumnLayout, onColumnLayoutChange, canResizeColumns: canResizeColumnsProp, canCustomizeColumns: canCustomizeColumnsProp, hasHeader = true, inset: insetProp, ariaLabel, id, className, style, ...rest } = props;
56
56
  const error = errorProp === "" ? void 0 : errorProp;
57
57
  const size = sizeProp ?? "MEDIUM";
58
58
  const isLoading = isLoadingProp ?? false;
@@ -135,7 +135,8 @@ var InfiniteTableInner = forwardRef(function InfiniteTable(props, ref) {
135
135
  canCustomizeColumns,
136
136
  leadingCount,
137
137
  hasTrailing: hasTrailingColumn,
138
- syntheticWidthPx: metrics.rowHeightPx
138
+ syntheticWidthPx: metrics.rowHeightPx,
139
+ insetPx: insetProp ?? 0
139
140
  });
140
141
  const latest = {
141
142
  columns,
@@ -234,6 +235,7 @@ var InfiniteTableInner = forwardRef(function InfiniteTable(props, ref) {
234
235
  if (hasExpandColumn) leadingHeaders.push(null);
235
236
  return /* @__PURE__ */ jsx(TableFrame, {
236
237
  metrics,
238
+ hasHeader,
237
239
  columnLayout: layout,
238
240
  leadingHeaders,
239
241
  trailingHeader: canCustomizeColumns ? /* @__PURE__ */ jsx(TableColumnsMenu, {
@@ -66,7 +66,10 @@ export declare const TABLE_LARGE_METRICS: TableMetrics;
66
66
  export declare const TableRow: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLTableRowElement> & import("react").HTMLAttributes<HTMLTableRowElement> & Record<never, unknown>>;
67
67
  /** @internal A body or footer cell. */
68
68
  export declare const TableCell: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLTableDataCellElement> & import("react").TdHTMLAttributes<HTMLTableDataCellElement> & Record<never, unknown>>;
69
- /** @internal Select, expand and row-actions columns: a square of the row height, content centered. */
69
+ /**
70
+ * @internal Select, expand and row-actions columns: a square of the row height, content centered.
71
+ * At an end of the row it also holds the table's inset (`--gx-table-cell-edge`, `TABLE_INSET_CSS`).
72
+ */
70
73
  export declare const SYNTHETIC_CELL_CSS: import("@linaria/core").LinariaClassName;
71
74
  /** @internal Alignment of a column's header and cells. */
72
75
  export declare const COLUMN_ALIGN_TO_CSS_MAP: Record<TableColumnAlign, string>;
@@ -205,6 +208,12 @@ export declare function TableExpandedRow({ panelId, colSpan, gutterPx, isLast, c
205
208
  export interface TableFrameProps {
206
209
  metrics: TableMetrics;
207
210
  columnLayout: TableColumnLayoutResult<unknown>;
211
+ /**
212
+ * The header row is shown. Without it the row is visually hidden, holds plain labels only and
213
+ * zeroes the header's scroll padding.
214
+ * @default true
215
+ */
216
+ hasHeader?: boolean;
208
217
  /** Header content of each leading synthetic column (select-all, expand). */
209
218
  leadingHeaders: ReactNode[];
210
219
  /** Header content of the trailing corner column; `undefined` when there is no trailing column. */
@@ -241,7 +250,7 @@ export interface TableFrameProps {
241
250
  style: CSSProperties | undefined;
242
251
  }
243
252
  /** Root → scroll container → table (header, body, status, footer) → sentinel → live region. */
244
- export declare function TableFrame({ metrics, columnLayout, leadingHeaders, trailingHeader, hasTrailingColumn, sort, onSortPress, canCustomizeColumns, rowCount, isLoading, error, emptyState, onEndReached, role, ariaLabel, tableAria, isMultiselectable, ariaRowCount, rootRef, scrollRef, rootProps, className, style, bodyClassName, bodyStyle, announcement, trailingClassName, children, }: TableFrameProps): import("react").JSX.Element;
253
+ export declare function TableFrame({ metrics, hasHeader, columnLayout, leadingHeaders, trailingHeader, hasTrailingColumn, sort, onSortPress, canCustomizeColumns, rowCount, isLoading, error, emptyState, onEndReached, role, ariaLabel, tableAria, isMultiselectable, ariaRowCount, rootRef, scrollRef, rootProps, className, style, bodyClassName, bodyStyle, announcement, trailingClassName, children, }: TableFrameProps): import("react").JSX.Element;
245
254
  /** @internal Header content of the select column: the select-all checkbox. */
246
255
  export declare function TableSelectAllCheckbox({ metrics, isChecked, isIndeterminate, isDisabled, onToggle, }: {
247
256
  metrics: TableMetrics;