@ssa-ui-kit/core 3.26.3 → 3.27.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 (47) hide show
  1. package/dist/ai/source-map.md +164 -84
  2. package/dist/components/Calendar/Calendar.d.ts +11 -3
  3. package/dist/components/Calendar/CalendarContext.d.ts +12 -1
  4. package/dist/components/Calendar/components/CalendarToolbar.d.ts +5 -1
  5. package/dist/components/Calendar/components/DayView.d.ts +4 -2
  6. package/dist/components/Calendar/components/TimeZoneSelect.d.ts +14 -0
  7. package/dist/components/Calendar/consts.d.ts +14 -1
  8. package/dist/components/Calendar/styles.d.ts +37 -1
  9. package/dist/components/Calendar/types.d.ts +93 -5
  10. package/dist/components/Calendar/utils.d.ts +35 -5
  11. package/dist/components/DataTable/DataTable.d.ts +79 -0
  12. package/dist/components/DataTable/DataTableColumnPicker.d.ts +66 -0
  13. package/dist/components/DataTable/ExpanderCell.d.ts +10 -0
  14. package/dist/components/DataTable/SelectionCell.d.ts +25 -0
  15. package/dist/components/DataTable/index.d.ts +4 -0
  16. package/dist/components/DataTable/styles.d.ts +47 -0
  17. package/dist/components/DataTable/types.d.ts +378 -0
  18. package/dist/components/DataTable/useColumnReorder.d.ts +31 -0
  19. package/dist/components/DataTable/useDataTableModel.d.ts +36 -0
  20. package/dist/components/DataTable/utils.d.ts +82 -0
  21. package/dist/components/DropdownOptionGroup/DropdownOptionGroup.d.ts +40 -0
  22. package/dist/components/DropdownOptionGroup/index.d.ts +2 -0
  23. package/dist/components/DropdownOptions/useToggleListKeys.d.ts +2 -2
  24. package/dist/components/DropdownOptions/utils.d.ts +11 -4
  25. package/dist/components/NestedTable/WithNestedTableRow.d.ts +4 -0
  26. package/dist/components/NestedTable/components/NestedTable.d.ts +4 -0
  27. package/dist/components/NestedTable/components/NestedTableCell.d.ts +4 -0
  28. package/dist/components/NestedTable/components/NestedTableCellHeader.d.ts +4 -0
  29. package/dist/components/NestedTable/components/NestedTableRow.d.ts +4 -0
  30. package/dist/components/Table/ColumnFreezeMenu.d.ts +11 -1
  31. package/dist/components/Table/ColumnMenu.d.ts +30 -0
  32. package/dist/components/Table/Table.d.ts +4 -4
  33. package/dist/components/Table/types.d.ts +77 -6
  34. package/dist/components/TableCellHeader/TableCellHeader.d.ts +1 -1
  35. package/dist/components/TableCellHeader/types.d.ts +14 -5
  36. package/dist/components/Typeahead/Typeahead.context.d.ts +1 -1
  37. package/dist/components/Typeahead/Typeahead.d.ts +1 -1
  38. package/dist/components/Typeahead/components/TypeaheadOptionGroup.d.ts +43 -0
  39. package/dist/components/Typeahead/components/index.d.ts +1 -0
  40. package/dist/components/Typeahead/index.d.ts +1 -0
  41. package/dist/components/Typeahead/types.d.ts +9 -1
  42. package/dist/components/Typeahead/useTypeahead.d.ts +3 -3
  43. package/dist/components/index.d.ts +4 -0
  44. package/dist/index.js +2785 -599
  45. package/dist/index.mjs +2783 -600
  46. package/dist/tsbuildcache +1 -1
  47. package/package.json +6 -5
@@ -99,10 +99,33 @@ export type CalendarDayHighlight = {
99
99
  /** Makes the badge row clickable. */
100
100
  onClick?: () => void;
101
101
  };
102
+ /**
103
+ * A day's working time on the day view's timeline, in hours from midnight —
104
+ * `{ start: 8, end: 20 }` is 08:00–20:00, `17.5` is 17:30. The hours
105
+ * outside it are shaded grey, but stay open for adding entries.
106
+ */
107
+ export type CalendarWorkingHours = {
108
+ /** Hour the working time starts, 0–24. */
109
+ start: number;
110
+ /** Hour the working time ends, 0–24; after `start`. */
111
+ end: number;
112
+ };
113
+ /** A weekday, as keyed in {@link CalendarWorkingHoursByWeekday}. */
114
+ export type CalendarWeekday = 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun';
115
+ /**
116
+ * Working time per weekday. A weekday left out, or set to `null`, has no
117
+ * working time — the whole day is shaded.
118
+ */
119
+ export type CalendarWorkingHoursByWeekday = Partial<Record<CalendarWeekday, CalendarWorkingHours | null>>;
102
120
  /**
103
121
  * Per-day options returned by `getDayProps`.
104
122
  */
105
123
  export type CalendarDayProps = {
124
+ /**
125
+ * The day's working time, over `workingHours` — e.g. a short day before a
126
+ * holiday. `null` shades the whole day.
127
+ */
128
+ workingHours?: CalendarWorkingHours | null;
106
129
  /** Turns the day into a highlighted, whole-day cell. */
107
130
  highlight?: CalendarDayHighlight;
108
131
  /**
@@ -189,13 +212,16 @@ export type CalendarEventDetailsControls = {
189
212
  close: () => void;
190
213
  };
191
214
  /**
192
- * The days a view shows, handed to `onRangeChange`.
215
+ * The days a view shows, handed to `onRangeChange`. Unlike the calendar's
216
+ * other day values, `start` and `end` are moments — the span to fetch timed
217
+ * entries for — so with a `timeZone` they're that zone's midnights, not
218
+ * local ones.
193
219
  */
194
220
  export type CalendarRange = {
195
221
  view: CalendarView;
196
- /** Start of the first day shown. */
222
+ /** Start of the first day shown, in the calendar's time zone. */
197
223
  start: Date;
198
- /** End of the last day shown (23:59:59.999). */
224
+ /** End of the last day shown (23:59:59.999), in the calendar's time zone. */
199
225
  end: Date;
200
226
  };
201
227
  /**
@@ -302,7 +328,9 @@ export type CalendarProps<TData = unknown> = {
302
328
  getDayProps?: (date: Date) => CalendarDayProps | undefined;
303
329
  /**
304
330
  * Shows an add button on each day (on hover in the month grid) and in the
305
- * day view header. Receives the day clicked.
331
+ * day view header. Receives the day clicked (its start, in local time
332
+ * like every day value), or the hour clicked on the day view's timeline
333
+ * — a moment, which in another `timeZone` reads differently locally.
306
334
  */
307
335
  onAddEvent?: (date: Date) => void;
308
336
  /**
@@ -373,9 +401,69 @@ export type CalendarProps<TData = unknown> = {
373
401
  locale?: string;
374
402
  /**
375
403
  * Hour the day view scrolls to when it opens. Defaults to an hour before
376
- * the current time on today, and to 8:00 on other days.
404
+ * the current time on today, and to the start of the working time (see
405
+ * `workingHours`) or 8:00 on other days.
377
406
  */
378
407
  scrollToHour?: number;
408
+ /**
409
+ * Working time of the day view: the hours outside it get a grey
410
+ * background. They stay open for adding entries — the shading is only a
411
+ * hint. One range for every day, or a range per weekday; for one-off days
412
+ * use `getDayProps(date).workingHours`.
413
+ *
414
+ * Unset, no hours are shaded.
415
+ */
416
+ workingHours?: CalendarWorkingHours | CalendarWorkingHoursByWeekday;
417
+ /**
418
+ * Height of one hour on the day view's timeline, in px. Passing it makes
419
+ * it controlled: change it from `onHourHeightChange`.
420
+ */
421
+ hourHeight?: number;
422
+ /**
423
+ * Hour height to start with when `hourHeight` isn't controlled, and the
424
+ * one a double click on the hour labels goes back to.
425
+ * @default 68
426
+ */
427
+ defaultHourHeight?: number;
428
+ /** Called as the user resizes the hours — see `resizableHours`. */
429
+ onHourHeightChange?: (hourHeight: number) => void;
430
+ /**
431
+ * Lets the user make the day view's hours taller or shorter by dragging
432
+ * the hour labels column up or down, or with the arrow keys when it's
433
+ * focused — from the whole day fitting the view to a single hour filling
434
+ * it. A double click on the column goes back to `defaultHourHeight`.
435
+ * @default false
436
+ */
437
+ resizableHours?: boolean;
438
+ /**
439
+ * IANA time zone the calendar shows times in, e.g. `'Europe/Kyiv'` or
440
+ * `'UTC'`. Passing it makes it controlled: change it from
441
+ * `onTimeZoneChange`.
442
+ *
443
+ * Timed entries are moved into the zone — an entry at 09:00 in Kyiv shows
444
+ * at 07:00 in `'UTC'`. Untimed entries, `date` and the other day values
445
+ * are calendar days and stay on their day. "Today" and the now line follow
446
+ * the zone.
447
+ *
448
+ * @default the browser's time zone
449
+ */
450
+ timeZone?: string;
451
+ /** Time zone to start in when `timeZone` isn't controlled. */
452
+ defaultTimeZone?: string;
453
+ /** Called when the user picks a time zone — see `timeZoneSelector`. */
454
+ onTimeZoneChange?: (timeZone: string) => void;
455
+ /**
456
+ * Shows a time zone button that opens a searchable list of zones. It sits
457
+ * in the toolbar next to the Month/Day toggle; without `toolbar`, in the
458
+ * day view's header.
459
+ * @default false
460
+ */
461
+ timeZoneSelector?: boolean;
462
+ /**
463
+ * Zones the selector offers.
464
+ * @default every zone the browser knows
465
+ */
466
+ timeZones?: string[];
379
467
  /** Accessible name of the calendar region. */
380
468
  'aria-label'?: string;
381
469
  className?: string;
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { DateTime } from 'luxon';
3
- import { CalendarDateInput, CalendarEvent } from './types';
3
+ import { CalendarDateInput, CalendarEvent, CalendarWorkingHours, CalendarWorkingHoursByWeekday } from './types';
4
4
  /** Length given to a timed event that has no `end`. */
5
5
  export declare const DEFAULT_EVENT_MINUTES = 30;
6
6
  /**
@@ -8,8 +8,23 @@ export declare const DEFAULT_EVENT_MINUTES = 30;
8
8
  * otherwise fill every cell up to it.
9
9
  */
10
10
  export declare const MAX_SPAN_DAYS = 366;
11
- /** `Date` or ISO string → luxon, in local time. */
12
- export declare const toDateTime: (value: CalendarDateInput) => DateTime;
11
+ /**
12
+ * `Date` or ISO string → luxon. A string without an offset is read in local
13
+ * time. With a `zone`, the moment is then shown in that zone.
14
+ */
15
+ export declare const toDateTime: (value: CalendarDateInput, zone?: string) => DateTime;
16
+ /**
17
+ * A day value (`date`, an untimed entry, an add limit): its local calendar
18
+ * date, as the start of that day in `zone`. Days stay on their date whatever
19
+ * the zone — only moments move.
20
+ */
21
+ export declare const toZonedDay: (value: CalendarDateInput, zone?: string) => DateTime;
22
+ /** The reverse of `toZonedDay`: the same calendar day, as local midnight. */
23
+ export declare const toLocalDayDate: (day: DateTime) => Date;
24
+ /** The current moment, in `zone` when given. */
25
+ export declare const nowIn: (zone?: string) => DateTime<true> | DateTime<false>;
26
+ /** The browser's IANA time zone. */
27
+ export declare const getLocalTimeZone: () => string;
13
28
  /** `yyyy-MM-dd` of a date — the key events are grouped by. */
14
29
  export declare const toDayKey: (value: DateTime) => string;
15
30
  /**
@@ -26,7 +41,7 @@ export type NormalizedEvent<TData = unknown> = {
26
41
  /** Which of those days this copy is on, from 1. */
27
42
  dayOfSpan: number;
28
43
  };
29
- export declare const normalizeEvent: <TData>(event: CalendarEvent<TData>) => NormalizedEvent<TData> | undefined;
44
+ export declare const normalizeEvent: <TData>(event: CalendarEvent<TData>, zone?: string) => NormalizedEvent<TData> | undefined;
30
45
  /**
31
46
  * Whether an entry fills a day: untimed, or timed and running from before
32
47
  * the day starts to after it ends. Such entries are listed above the day
@@ -38,7 +53,7 @@ export declare const isWholeDay: (item: NormalizedEvent, day: DateTime) => boole
38
53
  * spanning several days (see `NormalizedEvent.spanDays`) is repeated on
39
54
  * each, with its `dayOfSpan`. Events with an unparsable `start` are dropped.
40
55
  */
41
- export declare const groupEventsByDay: <TData>(events: CalendarEvent<TData>[]) => Map<string, NormalizedEvent<TData>[]>;
56
+ export declare const groupEventsByDay: <TData>(events: CalendarEvent<TData>[], zone?: string) => Map<string, NormalizedEvent<TData>[]>;
42
57
  /** A cell of the month grid. */
43
58
  export type MonthDay = {
44
59
  date: DateTime;
@@ -98,6 +113,21 @@ export type PositionedEvent<TData = unknown> = {
98
113
  * past either midnight are clipped to the day; events not on it are skipped.
99
114
  */
100
115
  export declare const layoutDayEvents: <TData>(items: NormalizedEvent<TData>[], day: DateTime) => PositionedEvent<TData>[];
116
+ /**
117
+ * A day's working time: the day's own override, else its weekday's entry or
118
+ * the single range. `null` — none, the whole day is shaded; `undefined` —
119
+ * working hours aren't set, nothing is shaded.
120
+ */
121
+ export declare const resolveWorkingHours: (workingHours: CalendarWorkingHours | CalendarWorkingHoursByWeekday | undefined, day: DateTime, override?: CalendarWorkingHours | null) => CalendarWorkingHours | null | undefined;
122
+ /**
123
+ * The stretches of a day outside its working time, in minutes from
124
+ * midnight. Hours are clamped to the day; a range that ends before it
125
+ * starts leaves the whole day outside.
126
+ */
127
+ export declare const getNonWorkingRanges: (hours: CalendarWorkingHours | null) => {
128
+ start: number;
129
+ end: number;
130
+ }[];
101
131
  /** Applies `locale` when given; otherwise keeps luxon's default. */
102
132
  export declare const withLocale: (value: DateTime, locale?: string) => DateTime<boolean>;
103
133
  /**
@@ -0,0 +1,79 @@
1
+ import { DataTableProps } from './types';
2
+ /**
3
+ * DataTable - A table driven by data: give it rows and column definitions
4
+ * and it renders, sorts and lays out the columns itself.
5
+ *
6
+ * Use it for interactive data tables. For a static table whose markup you
7
+ * want to write by hand, use `Table` and its row and cell components, which
8
+ * this is built from.
9
+ *
10
+ * ### Sorting
11
+ *
12
+ * Mark a column `sortable` and clicking its header reports a new sort through
13
+ * `onSortChange`: ascending first, then toggling. By default the table only
14
+ * reports it, expecting the server to send the rows back sorted, and passes
15
+ * the column's `sortKey` along for the request. Give the column a `sortFn` to
16
+ * sort the rows in the browser instead.
17
+ *
18
+ * ### Column layout
19
+ *
20
+ * Widths, frozen columns, order and hidden columns live in one
21
+ * `DataTableColumnState`, keyed by column id. Read it from
22
+ * `onColumnStateChange`, store it, and pass it back through
23
+ * `defaultColumnState` to remember a user's layout.
24
+ *
25
+ * With `reorderableColumns` the user can move columns, by dragging the grip
26
+ * in the header or from the header menu. A column only moves among columns
27
+ * frozen to the same edge, or among the unfrozen ones.
28
+ *
29
+ * ### Nested rows
30
+ *
31
+ * `getSubRows` nests rows under rows, to any depth, with an expand button
32
+ * per parent; `expandedRowIds` or `defaultExpanded` say which are open.
33
+ *
34
+ * ### Selection and hidden columns
35
+ *
36
+ * `selectionMode` adds a checkbox (or radio) column; the selection is a list
37
+ * of row ids, reported through `onSelectionChange`. `hideableColumns` adds
38
+ * "Hide column" to the header menu, and `DataTableColumnPicker` brings
39
+ * hidden columns back.
40
+ *
41
+ * @category Components
42
+ * @subcategory Data Display
43
+ *
44
+ * @example
45
+ * ```tsx
46
+ * const columns: DataTableColumn<Employee>[] = [
47
+ * { id: 'name', header: 'Name', cell: (row) => row.name, sortable: true },
48
+ * { id: 'role', header: 'Role', cell: (row) => row.role },
49
+ * ];
50
+ *
51
+ * <DataTable
52
+ * data={employees}
53
+ * columns={columns}
54
+ * sort={sort}
55
+ * onSortChange={(next, sortKey) => {
56
+ * setSort(next);
57
+ * refetch({ sortBy: sortKey, descending: next?.direction === 'desc' });
58
+ * }}
59
+ * isLoading={isFetching}
60
+ * />
61
+ * ```
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * // Resizable, freezable columns whose layout is remembered
66
+ * <DataTable
67
+ * data={rows}
68
+ * columns={columns}
69
+ * resizableColumns
70
+ * freezeControls
71
+ * defaultColumnState={loadLayout()}
72
+ * onColumnStateChange={saveLayout}
73
+ * />
74
+ * ```
75
+ *
76
+ * @see {@link Table} - the building blocks, for hand-written tables
77
+ */
78
+ declare const DataTable: <Row>(props: DataTableProps<Row>) => import("@emotion/react/jsx-runtime").JSX.Element;
79
+ export default DataTable;
@@ -0,0 +1,66 @@
1
+ import { ReactNode } from 'react';
2
+ import { DataTableColumn, DataTableColumnState } from './types';
3
+ /**
4
+ * Props of {@link DataTableColumnPicker}.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <DataTableColumnPicker
9
+ * columns={columns}
10
+ * columnState={columnState}
11
+ * onColumnStateChange={setColumnState}
12
+ * />
13
+ * ```
14
+ */
15
+ export interface DataTableColumnPickerProps<Row> {
16
+ /** The same columns the table gets. */
17
+ columns: DataTableColumn<Row>[];
18
+ /** The table's column state, as passed to its `columnState`. */
19
+ columnState?: Partial<DataTableColumnState>;
20
+ /** Called with the whole new column state when a column is shown or hidden. */
21
+ onColumnStateChange: (columnState: DataTableColumnState) => void;
22
+ /**
23
+ * Text of the button that opens the list.
24
+ * @default 'Columns'
25
+ */
26
+ label?: ReactNode;
27
+ /** Class name of the button. */
28
+ className?: string;
29
+ }
30
+ /**
31
+ * DataTableColumnPicker - A button that opens a checklist of a
32
+ * {@link DataTable}'s columns, to show or hide each one.
33
+ *
34
+ * Place it wherever the page keeps its table controls, such as next to the
35
+ * filters, and share a controlled `columnState` between it and the table.
36
+ * Columns are listed in display order. Columns with `hideable: false` stay
37
+ * checked and cannot be cleared, and neither can the last one shown.
38
+ *
39
+ * @category Components
40
+ * @subcategory Data Display
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * const [columnState, setColumnState] = useState<Partial<DataTableColumnState>>({});
45
+ *
46
+ * <DataTableColumnPicker
47
+ * columns={columns}
48
+ * columnState={columnState}
49
+ * onColumnStateChange={setColumnState}
50
+ * />
51
+ * <DataTable
52
+ * data={rows}
53
+ * columns={columns}
54
+ * columnState={columnState}
55
+ * onColumnStateChange={setColumnState}
56
+ * />
57
+ * ```
58
+ *
59
+ * @see {@link DataTable} - `hideableColumns` adds "Hide column" to its header menu
60
+ *
61
+ * @accessibility
62
+ * - The list is a multi-select listbox: arrows move, Space or Enter toggles
63
+ * - Escape closes it and returns focus to the button
64
+ */
65
+ export declare const DataTableColumnPicker: <Row>({ columns, columnState, onColumnStateChange, label, className, }: DataTableColumnPickerProps<Row>) => import("@emotion/react/jsx-runtime").JSX.Element;
66
+ export default DataTableColumnPicker;
@@ -0,0 +1,10 @@
1
+ /** The empty header above the expand buttons. */
2
+ export declare const ExpanderHeaderCell: () => import("@emotion/react/jsx-runtime").JSX.Element;
3
+ interface ExpanderCellProps {
4
+ hasChildren: boolean;
5
+ isExpanded: boolean;
6
+ onToggle: () => void;
7
+ }
8
+ /** A row's expand/collapse button, or nothing for a row without children. */
9
+ export declare const ExpanderCell: ({ hasChildren, isExpanded, onToggle, }: ExpanderCellProps) => import("@emotion/react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,25 @@
1
+ import { DataTableSelectionMode } from './types';
2
+ interface SelectionHeaderCellProps {
3
+ mode: Exclude<DataTableSelectionMode, 'none'>;
4
+ checked: boolean;
5
+ indeterminate: boolean;
6
+ disabled: boolean;
7
+ onToggle: () => void;
8
+ }
9
+ /** The header of the selection column: select-all, or a label for radios. */
10
+ export declare const SelectionHeaderCell: ({ mode, checked, indeterminate, disabled, onToggle, }: SelectionHeaderCellProps) => import("@emotion/react/jsx-runtime").JSX.Element;
11
+ interface SelectionCellProps {
12
+ mode: Exclude<DataTableSelectionMode, 'none'>;
13
+ /** Groups the radios of one table. */
14
+ name: string;
15
+ rowId: string;
16
+ label: string;
17
+ checked: boolean;
18
+ /** Some of the rows below are selected, not all. */
19
+ indeterminate?: boolean;
20
+ disabled: boolean;
21
+ onChange: (checked: boolean) => void;
22
+ }
23
+ /** A row's checkbox or radio. */
24
+ export declare const SelectionCell: ({ mode, name, rowId, label, checked, indeterminate, disabled, onChange, }: SelectionCellProps) => import("@emotion/react/jsx-runtime").JSX.Element;
25
+ export {};
@@ -0,0 +1,4 @@
1
+ export { default } from './DataTable';
2
+ export { DataTableColumnPicker } from './DataTableColumnPicker';
3
+ export type { DataTableColumnPickerProps } from './DataTableColumnPicker';
4
+ export * from './types';
@@ -0,0 +1,47 @@
1
+ import { Theme } from '@emotion/react';
2
+ export declare const root: import("@emotion/react").SerializedStyles;
3
+ /** A header button that looks like the header text it wraps. */
4
+ export declare const sortButton: (theme: Theme) => import("@emotion/react").SerializedStyles;
5
+ export declare const headerLabel: import("@emotion/react").SerializedStyles;
6
+ /** Rows stay readable but plainly stale while a re-fetch is in flight. */
7
+ export declare const busyBody: import("@emotion/react").SerializedStyles;
8
+ export declare const clickableRow: (theme: Theme) => import("@emotion/react").SerializedStyles;
9
+ export declare const stateCell: (theme: Theme) => import("@emotion/react").SerializedStyles;
10
+ /**
11
+ * Every header cell. Relative so the grip, the menu and the drop line have
12
+ * something to sit against; a frozen header keeps its sticky position, whose
13
+ * rule in TableBase is the more specific one.
14
+ */
15
+ export declare const header: (theme: Theme) => import("@emotion/react").SerializedStyles;
16
+ /** Room on the right for the menu, so long header text never runs under it. */
17
+ export declare const headerWithMenu: import("@emotion/react").SerializedStyles;
18
+ /**
19
+ * Pinned to the right edge of the header, clear of the resize handle, so it
20
+ * lines up from column to column whatever the header text.
21
+ */
22
+ export declare const headerMenu: import("@emotion/react").SerializedStyles;
23
+ /**
24
+ * Sits in the cell's left padding, so showing it never moves the header
25
+ * text. Hidden until the header is hovered, like the column menu.
26
+ */
27
+ export declare const grip: import("@emotion/react").SerializedStyles;
28
+ /** The checkbox or radio column: narrow, its control centred. */
29
+ export declare const selectionCell: import("@emotion/react").SerializedStyles;
30
+ export declare const selectedRow: (theme: Theme) => import("@emotion/react").SerializedStyles;
31
+ export declare const visuallyHidden: import("@emotion/react").SerializedStyles;
32
+ /** The expand/collapse column. */
33
+ export declare const expanderCell: import("@emotion/react").SerializedStyles;
34
+ export declare const expanderButton: (theme: Theme) => import("@emotion/react").SerializedStyles;
35
+ /**
36
+ * A row given a `background` by getRowProps. The colour arrives as a custom
37
+ * property, so every tinted row shares this one class whatever its colour.
38
+ * Layered over white: frozen cells must stay opaque. Hover and selection
39
+ * rules come later or weigh more, so they paint over it.
40
+ */
41
+ export declare const tintedRow: import("@emotion/react").SerializedStyles;
42
+ /** A row with children, as NestedTable draws its group rows. */
43
+ export declare const parentRow: (theme: Theme) => import("@emotion/react").SerializedStyles;
44
+ /** A tinted row with children: the row's tint over the parent grey. */
45
+ export declare const tintedParentRow: (theme: Theme) => import("@emotion/react").SerializedStyles;
46
+ /** A selected row with children: the selected tint over the parent grey. */
47
+ export declare const selectedParentRow: (theme: Theme) => import("@emotion/react").SerializedStyles;