@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
@@ -4,7 +4,7 @@ Generated from the TypeScript program at build time — do not edit by hand.
4
4
 
5
5
  **Everything below is imported from the package root:** `import { X } from '@ssa-ui-kit/core'`
6
6
 
7
- 194 components · 20 contexts · 23 hooks · 21 functions · 16 constants · 346 exported types
7
+ 198 components · 20 contexts · 23 hooks · 21 functions · 16 constants · 359 exported types
8
8
 
9
9
  ## Reading this file
10
10
 
@@ -16,11 +16,11 @@ Generated from the TypeScript program at build time — do not edit by hand.
16
16
 
17
17
  ## Component roster
18
18
 
19
- **Action & Form Controls** — BreadcrumbMenu, Breadcrumbs, Button, ButtonGroup, ButtonGroupButton, Checkbox, ColorPicker, ContextMenu, DatePicker, DateRangePicker, DateRangePickerFormBridge, Dropdown, DropdownArrow, DropdownBase, DropdownOption, DropdownOptions, DropdownToggle, FileAttachment, FileUpload, FloatingActionButton, IconButton, Input, MultipleDropdown, MultipleDropdownNotification, MultipleDropdownOptions, NumberField, Radio, RadioGroup, SearchBox, SearchBoxCrossIcon, SearchBoxInput, SearchBoxWrapper, Slider, SliderInputsRow, SliderLabel, SliderMarkItem, SliderMarkLabel, SliderMarksRow, SliderMarkTick, SliderNumberInput, SliderRangeInput, SliderRoot, SliderTrackBg, SliderTrackFill, SliderTrackRow, SliderTrackWrapper, SliderValueLabel, SliderValueLabelsContainer, Switch, Textarea, TextField, Typeahead, TypeaheadItemIcon, TypeaheadItemImage, TypeaheadOption, TypeaheadOptions
19
+ **Action & Form Controls** — BreadcrumbMenu, Breadcrumbs, Button, ButtonGroup, ButtonGroupButton, Checkbox, ColorPicker, ContextMenu, DatePicker, DateRangePicker, DateRangePickerFormBridge, Dropdown, DropdownArrow, DropdownBase, DropdownOption, DropdownOptionGroup, DropdownOptions, DropdownToggle, FileAttachment, FileUpload, FloatingActionButton, IconButton, Input, MultipleDropdown, MultipleDropdownNotification, MultipleDropdownOptions, NumberField, Radio, RadioGroup, SearchBox, SearchBoxCrossIcon, SearchBoxInput, SearchBoxWrapper, Slider, SliderInputsRow, SliderLabel, SliderMarkItem, SliderMarkLabel, SliderMarksRow, SliderMarkTick, SliderNumberInput, SliderRangeInput, SliderRoot, SliderTrackBg, SliderTrackFill, SliderTrackRow, SliderTrackWrapper, SliderValueLabel, SliderValueLabelsContainer, Switch, Textarea, TextField, Typeahead, TypeaheadItemIcon, TypeaheadItemImage, TypeaheadOption, TypeaheadOptionGroup, TypeaheadOptions
20
20
 
21
21
  **Form Structure** — Filters, FiltersMultiSelect, FiltersMultiSelectEmpty, FiltersMultiSelectOption, FiltersMultiSelectOptions, Form, FormAction, FormCheckbox, FormGroup, FormHelperText, FormRadioGroup
22
22
 
23
- **Data Display** — Avatar, Badge, BarGaugeChart, BarGaugeChartComponent, BarLineComplexChart, BigNumberChart, BigNumberChartComponent, Calendar, CalendarEventDetails, CandlestickChart, CandlestickChartComponent, Card, CardBase, CardContent, CardHeader, CardList, Carousel, ChartBackground, Chip, ColumnFreezeMenu, ColumnResizeHandle, Counter, FunnelChart, GaugeChart, ImageItem, Indicator, Label, NestedTable, NestedTableCell, NestedTableCellHeader, NestedTableCellSubHeader, NestedTableRow, PieChart, PieChartComponent, PieChartLegend, Progress, ProgressBar, ProgressCircle, ProgressInfo, ProgressInfoTotals, ProgressLegend, ProgressLegendItem, ProgressVertical, ResponsiveImage, SegmentedPieChart, SegmentedPieChartComponent, Table, TableBody, TableCell, TableCellHeader, TableContainer, TableFilterCheckbox, TableFilters, TableFiltersAccordion, TableFiltersAccordionContent, TableFiltersButtons, TableFiltersCancelButton, TableFiltersClearButton, TableFilterTrigger, TableFilterTriggerWithNotification, TableHead, TableRow, Tag, TreeMapChart, TreeMapChartComponent, TreeMapTooltipBase, Typography, WithNestedTableRow
23
+ **Data Display** — Avatar, Badge, BarGaugeChart, BarGaugeChartComponent, BarLineComplexChart, BigNumberChart, BigNumberChartComponent, Calendar, CalendarEventDetails, CandlestickChart, CandlestickChartComponent, Card, CardBase, CardContent, CardHeader, CardList, Carousel, ChartBackground, Chip, ColumnFreezeMenu, ColumnResizeHandle, Counter, DataTable, DataTableColumnPicker, FunnelChart, GaugeChart, ImageItem, Indicator, Label, NestedTable, NestedTableCell, NestedTableCellHeader, NestedTableCellSubHeader, NestedTableRow, PieChart, PieChartComponent, PieChartLegend, Progress, ProgressBar, ProgressCircle, ProgressInfo, ProgressInfoTotals, ProgressLegend, ProgressLegendItem, ProgressVertical, ResponsiveImage, SegmentedPieChart, SegmentedPieChartComponent, Table, TableBody, TableCell, TableCellHeader, TableContainer, TableFilterCheckbox, TableFilters, TableFiltersAccordion, TableFiltersAccordionContent, TableFiltersButtons, TableFiltersCancelButton, TableFiltersClearButton, TableFilterTrigger, TableFilterTriggerWithNotification, TableHead, TableRow, Tag, TreeMapChart, TreeMapChartComponent, TreeMapTooltipBase, Typography, WithNestedTableRow
24
24
 
25
25
  **Navigation & Layout** — CollapsibleNavBar, CollapsibleNavBarCustomIconSVG, Footer, Header, History, LargeTab, Link, LinksTabBar, NavBar, Pagination, Step, StepConnector, StepLabel, Stepper, Tab, TabBar, TreeView, WithLink, WithPagination, WithVisibleLG, WithVisibleMD, WithVisibleSM, WithVisibleUpToLG, Wrapper
26
26
 
@@ -135,7 +135,7 @@ The list of options shown inside a dropdown, typeahead, filter or action menu.
135
135
  - `renderGroupLabel?: (group: ContextMenuGroup<V>) => ReactNode` — Replaces the content of group titles.
136
136
  - `emptyState?: ReactNode` `= 'No items'` — Shown when `items` has no options.
137
137
  - `maxHeight?: string | number` — Scrolls the list beyond this height (px or any CSS length).
138
- - `selectionMode?: 'none' | 'multiple' | 'single' | 'includeExclude'`
138
+ - `selectionMode?: 'none' | 'single' | 'multiple' | 'includeExclude'`
139
139
  - `value?: V | V[] | ContextMenuIncludeExcludeEntry<V>[] | null` — Controlled selected value. `null` for none. Controlled selected values. Controlled chosen rows.
140
140
  - `defaultValue?: V | V[] | ContextMenuIncludeExcludeEntry<V>[] | null` — Initially selected value when uncontrolled. Initially selected values when uncontrolled. Initially chosen…
141
141
  - `onChange?: ((value: V) => void) | ((value: V[], toggled: V) => void) | …(1 more)` — Fires with the newly selected value. Choosing the selected option again keeps it selected. Fires with the new…
@@ -285,6 +285,13 @@ A single selectable row inside `Dropdown` or `MultipleDropdown`.
285
285
  - `avatar?: React.ReactNode` — Avatar or icon to display before the option content (e.g. <Avatar size={20} image={url} />)
286
286
  - _plus native element attributes_
287
287
 
288
+ #### DropdownOptionGroup
289
+ A titled section of options inside `Dropdown` or `MultipleDropdown`.
290
+
291
+ - `label: ReactNode` — Group title. Not selectable and skipped by keyboard navigation.
292
+ - `id?: string` — Unique per dropdown. Defaults to one derived from the element key (or position).
293
+ - `children?: ReactNode` — The group's `DropdownOption`s.
294
+
288
295
  #### DropdownOptions
289
296
  Options menu container for Dropdown component
290
297
 
@@ -747,6 +754,7 @@ Advanced autocomplete search component with dropdown functionality
747
754
  - `placeholder?: string | null` `= 'Select something'` — Placeholder text for the input
748
755
  - `filterOptions?: boolean` `= true` — Whether to filter options based on input When false, all options are always shown
749
756
  - `autoSelect?: boolean` `= true` — Whether to automatically select the first option on filter
757
+ - `searchByGroup?: boolean` `= false` — Also match the input against `TypeaheadOptionGroup` titles. A group whose title matches is shown with all of…
750
758
  - `allowCustomValues?: boolean` `= true` — Allow adding custom values not in the options list. When true, the current input is shown as the first…
751
759
  - `onChange?: (selectedItem: TypeaheadValue, isSelected: boolean) => void` — Callback fired when an option is selected/deselected Receives the selected item value and whether it's…
752
760
  - `onClearAll?: () => void` — Callback fired when "Clear All" is clicked (multiple mode)
@@ -781,6 +789,14 @@ Props for TypeaheadOption component Record type that allows any string or number
781
789
  - `role?: string` — ARIA role for the option (e.g. 'option')
782
790
  - `aria-selected?: boolean` — ARIA selected state
783
791
 
792
+ #### TypeaheadOptionGroup
793
+ A titled section of options inside `Typeahead`.
794
+
795
+ - `label: ReactNode` — Group title. Not selectable and skipped by keyboard navigation.
796
+ - `textValue?: string` — Plain-text form of `label`, matched against the input when the Typeahead has `searchByGroup`. Defaults to…
797
+ - `id?: string` — Unique per Typeahead. Defaults to the group's position among the Typeahead's children.
798
+ - `children?: ReactNode` — The group's `TypeaheadOption`s.
799
+
784
800
  #### TypeaheadOptions
785
801
  The Typeahead's option list: a `ContextMenu` driven from the Typeahead's input. The options themselves come from the `TypeaheadOption` children of `Typeahead`, filtered…
786
802
 
@@ -999,7 +1015,17 @@ Shows entries on a month grid or on a single day's hour timeline.
999
1015
  - `timeFormat?: '24h' | '12h'` `= '24h'` — Clock used for event times and the hour labels of the day view.
1000
1016
  - `dayHeader?: 'weekday' | 'monthYear'` `= 'monthYear'` — Header of the day view: the weekday name, or the month and year.
1001
1017
  - `locale?: string` — Locale for weekday and month names, e.g. `'uk'`. Defaults to the browser's.
1002
- - `scrollToHour?: number` — Hour the day view scrolls to when it opens. Defaults to an hour before the current time on today, and to 8:00…
1018
+ - `scrollToHour?: number` — Hour the day view scrolls to when it opens. Defaults to an hour before the current time on today, and to the…
1019
+ - `workingHours?: CalendarWorkingHours | …(1 more)` — Working time of the day view: the hours outside it get a grey background. They stay open for adding entries —…
1020
+ - `hourHeight?: number` — Height of one hour on the day view's timeline, in px. Passing it makes it controlled: change it from…
1021
+ - `defaultHourHeight?: number` `= 68` — Hour height to start with when `hourHeight` isn't controlled, and the one a double click on the hour labels…
1022
+ - `onHourHeightChange?: (hourHeight: number) => void` — Called as the user resizes the hours — see `resizableHours`.
1023
+ - `resizableHours?: boolean` `= false` — Lets the user make the day view's hours taller or shorter by dragging the hour labels column up or down, or…
1024
+ - `timeZone?: string` `= the browser's time zone` — IANA time zone the calendar shows times in, e.g. `'Europe/Kyiv'` or `'UTC'`. Passing it makes it controlled:…
1025
+ - `defaultTimeZone?: string` — Time zone to start in when `timeZone` isn't controlled.
1026
+ - `onTimeZoneChange?: (timeZone: string) => void` — Called when the user picks a time zone — see `timeZoneSelector`.
1027
+ - `timeZoneSelector?: boolean` `= false` — Shows a time zone button that opens a searchable list of zones. It sits in the toolbar next to the Month/Day…
1028
+ - `timeZones?: string[]` `= every zone the browser knows` — Zones the selector offers.
1003
1029
  - `aria-label?: string` — Accessible name of the calendar region.
1004
1030
  - `style?: CSSProperties`
1005
1031
 
@@ -1138,6 +1164,52 @@ Compact numeric indicator for displaying counts or notification badges.
1138
1164
  - `size?: keyof MainSizes` `= 'medium'` — Size of the counter. Ignored when `count` is undefined — the component uses `dot` automatically.
1139
1165
  - `color?: string` — Optional color override. Accepts a `theme.colors` key or any valid CSS color string. When provided, overrides…
1140
1166
 
1167
+ #### DataTable<Row>
1168
+ A table driven by data: give it rows and column definitions and it renders, sorts and lays out the columns itself.
1169
+
1170
+ - `data: Row[]` — Rows to show, in the order to show them unless a column sorts them.
1171
+ - `columns: DataTableColumn<Row>[]` — Column definitions. Every `id` must be unique. Need not be memoised: the table only rebuilds its model when…
1172
+ - `getRowId?: (row: Row, index: number) => string` `= (row) => String(row.id)` — Stable id of a row, for rows whose id is not in an `id` field, such as `employeeId` or a key built from…
1173
+ - `columnState?: Partial<DataTableColumnState>` — Column layout, for the controlled case. Partial values are filled in with defaults. Hold it in state and…
1174
+ - `defaultColumnState?: Partial<DataTableColumnState>` — Starting column layout, for the uncontrolled case.
1175
+ - `onColumnStateChange?: (columnState: DataTableColumnState) => void` — Called whenever the user changes the layout: on every frame of a resize drag, when moving or hiding a column,…
1176
+ - `resizableColumns?: boolean` `= false` — Lets the user resize columns by dragging the right edge of the header.
1177
+ - `columnResizeMode?: ColumnResizeMode` `= 'fit'` — How a resize spends width. `fit` keeps the table's width: the resizable columns to the right share the…
1178
+ - `minColumnWidth?: number` `= 64` — Narrowest a column can be resized to, in pixels. A column's own `minWidth` wins.
1179
+ - `maxColumnWidth?: number` — Widest a column can be resized to, in pixels. A column's own `maxWidth` wins. Unbounded when omitted.
1180
+ - `freezeControls?: boolean` `= false` — Gives every header a menu to freeze its column to either edge.
1181
+ - `reorderableColumns?: boolean` `= false` — Lets the user move columns: by dragging the grip at the left of the header, or with "Move left" and "Move…
1182
+ - `hideableColumns?: boolean` `= false` — Adds "Hide column" to the header menu. The last visible column cannot be hidden. Hidden columns are kept in…
1183
+ - `stickyHeader?: boolean` `= false` — Keeps the header in view while the rows scroll. Give the table a height limit through `maxHeight`.
1184
+ - `maxHeight?: string | number` — Tallest the table gets before it scrolls vertically. Any CSS value. Unbounded when omitted, so only…
1185
+ - `sort?: DataTableSort | null` — Sorted column, for the controlled case. `null` for none.
1186
+ - `defaultSort?: DataTableSort | null` — Starting sort, for the uncontrolled case.
1187
+ - `onSortChange?: (sort: DataTableSort | null, sortKey: string | null) => void` — Called when a sortable header is clicked. A column starts ascending and toggles between ascending and…
1188
+ - `isLoading?: boolean` `= false` — Marks the table busy. Rows already shown stay, dimmed, so a re-fetch after sorting does not make the table…
1189
+ - `loadingState?: ReactNode` `= 'Loading…'` — Shown in place of the rows while loading with none to show.
1190
+ - `emptyState?: ReactNode` `= 'No results'` — Shown in place of the rows when there are none.
1191
+ - `onRowClick?: (row: Row, event: MouseEvent<HTMLTableRowElement> | KeyboardEvent<HTMLT…` — Called when a row is clicked, or when Enter is pressed on a focused row; rows become focusable when this is…
1192
+ - `getRowProps?: (row: Row, rowIndex: number) => DataTableElementProps` — Class name, style, background or data attributes for a body row, such as tinting rows that need attention.…
1193
+ - `getSubRows?: (row: Row) => Row[] | undefined` — Children of a row, shown nested under it, to any depth. Rows with children get an expand button in a column…
1194
+ - `expandedRowIds?: string[]` — Ids of the expanded rows, for the controlled case.
1195
+ - `defaultExpanded?: boolean | string[]` `= false` — Which rows start expanded, for the uncontrolled case: `true` for all, including rows that arrive later, or a…
1196
+ - `onExpandedChange?: (expandedRowIds: string[]) => void` — Called with the ids of the expanded rows whenever the user changes them.
1197
+ - `selectionMode?: DataTableSelectionMode` `= 'none'` — Lets the user select rows: `multiple` adds a checkbox column whose header checkbox selects or clears the rows…
1198
+ - `selectedRowIds?: string[]` — Ids of the selected rows, for the controlled case.
1199
+ - `defaultSelectedRowIds?: string[]` — Ids of the rows selected at first, for the uncontrolled case.
1200
+ - `onSelectionChange?: (selectedRowIds: string[]) => void` — Called with the ids of the selected rows whenever the user changes them.
1201
+ - `isRowSelectable?: (row: Row) => boolean` — Whether a row can be selected. Rows that cannot get a disabled checkbox and are skipped by the header…
1202
+ - `getRowLabel?: (row: Row, rowIndex: number) => string` `= (row, rowIndex) => `Select row ${rowIndex + 1}`` — Accessible name of a row's selection checkbox, such as the person's name. Without it the row is named by its…
1203
+ - `footer?: ReactNode` — Rendered below the table, such as `Pagination`.
1204
+
1205
+ #### DataTableColumnPicker<Row>
1206
+ A button that opens a checklist of a {@link DataTable }'s columns, to show or hide each one.
1207
+
1208
+ - `columns: DataTableColumn<Row>[]` — The same columns the table gets.
1209
+ - `columnState?: Partial<DataTableColumnState>` — The table's column state, as passed to its `columnState`.
1210
+ - `onColumnStateChange: (columnState: DataTableColumnState) => void` — Called with the whole new column state when a column is shown or hidden.
1211
+ - `label?: ReactNode` `= 'Columns'` — Text of the button that opens the list.
1212
+
1141
1213
  #### FunnelChart
1142
1214
  Stage diagram drawn as a funnel or a triangle
1143
1215
 
@@ -1205,17 +1277,17 @@ Stage diagram drawn as a funnel or a triangle
1205
1277
  Table whose rows collapse into expandable groups.
1206
1278
 
1207
1279
  - `resizableColumns?: boolean` `= false` — Lets columns be resized by dragging the right edge of each header cell.
1208
- - `columnWidths?: number[]` — Column widths in pixels, one per column. Passing this prop puts the table into controlled mode for the life…
1209
- - `defaultColumnWidths?: number[]` — Starting column widths in pixels, for the uncontrolled case. Omit it and the table measures its own columns…
1210
- - `onColumnWidthsChange?: (columnWidths: number[]) => void` — Called on every width change, including each frame of a drag. Persisting widths is the caller's job — write…
1211
- - `minColumnWidth?: number` `= 64` — Narrowest a column can be dragged, in pixels.
1212
- - `maxColumnWidth?: number` — Widest a column can be dragged, in pixels. Unbounded when omitted.
1213
- - `columnResizeMode?: ColumnResizeMode` `= 'fit'` — Whether a resize is paid for by the next column or by the table's own width. Defaults to `fit`, which keeps…
1214
- - `frozenColumns?: FrozenColumns` — Columns frozen to each edge. Passing this prop puts freezing into controlled mode — hold the value in state…
1215
- - `defaultFrozenColumns?: FrozenColumns` — Columns frozen to each edge to begin with, for the uncontrolled case.
1216
- - `onFrozenColumnsChange?: (frozenColumns: Required<FrozenColumns>) => void` — Called whenever the user freezes or unfreezes columns from the header controls. Always receives both lists.
1217
- - `freezeControls?: boolean` `= false` — Gives every `TableCellHeader` a menu to freeze its column to either edge, or unfreeze it. Independent of…
1218
- - `stickyHeader?: boolean` `= false` — Keeps the header row in view while the table scrolls vertically. Needs a scroll container with a height…
1280
+ - `columnWidths?: number[]` — Column widths in pixels, one per column, for the controlled case.
1281
+ - `defaultColumnWidths?: number[]` — Starting column widths in pixels, for the uncontrolled case.
1282
+ - `onColumnWidthsChange?: (columnWidths: number[]) => void` — Called on every width change, including each frame of a drag.
1283
+ - `minColumnWidth?: number` — Narrowest a column can be dragged, in pixels.
1284
+ - `maxColumnWidth?: number` — Widest a column can be dragged, in pixels.
1285
+ - `columnResizeMode?: ColumnResizeMode` — Whether a resize is paid for by the columns to the right or by the table's own width.
1286
+ - `frozenColumns?: FrozenColumns` — Columns frozen to each edge, for the controlled case.
1287
+ - `defaultFrozenColumns?: FrozenColumns` — Columns frozen to each edge to begin with.
1288
+ - `onFrozenColumnsChange?: (frozenColumns: Required<FrozenColumns>) => void` — Called whenever the user freezes or unfreezes columns.
1289
+ - `freezeControls?: boolean` — Gives every `TableCellHeader` a menu to freeze its column.
1290
+ - `stickyHeader?: boolean` — Keeps the header row in view while the table scrolls vertically.
1219
1291
  - `collapsedIconName?: 'reset' | 'archive' | 'arrow-down' | 'arrow-up' | …(237 more — full list under "Icon.name")` `= 'carrot-up'` — Toggle icon shown while a group is collapsed.
1220
1292
  - `expandedIconName?: 'reset' | 'archive' | 'arrow-down' | 'arrow-up' | …(237 more — full list under "Icon.name")` `= 'carrot-down'` — Toggle icon shown while a group is expanded.
1221
1293
  - `defaultCollapsed?: boolean` `= false` — Whether groups start collapsed. Applies to every group in the table; a single `WithNestedTableRow` can…
@@ -1232,6 +1304,8 @@ Column header cell for a `NestedTable`.
1232
1304
 
1233
1305
  - `resizable?: boolean` `= true` — Whether this column can be resized inside a `Table` with `resizableColumns`. Set it to `false` to pin a…
1234
1306
  - `freezable?: boolean` `= true` — Whether this header cell offers the freeze menu inside a `Table` with `freezeControls`. Set it to `false` for…
1307
+ - `minWidth?: number` — Narrowest this column can be resized to, in pixels, inside a `Table` with `resizableColumns`. Overrides the…
1308
+ - `maxWidth?: number` — Widest this column can be resized to, in pixels, inside a `Table` with `resizableColumns`. Overrides the…
1235
1309
  - `columnId?: ColumnId` — Stable id for this column, used by `frozenColumns` on the `Table`. Give every header one when the app can…
1236
1310
  - `align?: 'center' | 'left' | 'right' | 'justify'` `= 'left'` — Text alignment for the cell content
1237
1311
  - _plus native element attributes_
@@ -1395,17 +1469,17 @@ A simple wrapper over the `<img />` tag.
1395
1469
  Base table component for displaying tabular data
1396
1470
 
1397
1471
  - `resizableColumns?: boolean` `= false` — Lets columns be resized by dragging the right edge of each header cell.
1398
- - `columnWidths?: number[]` — Column widths in pixels, one per column. Passing this prop puts the table into controlled mode for the life…
1399
- - `defaultColumnWidths?: number[]` — Starting column widths in pixels, for the uncontrolled case. Omit it and the table measures its own columns…
1400
- - `onColumnWidthsChange?: (columnWidths: number[]) => void` — Called on every width change, including each frame of a drag. Persisting widths is the caller's job — write…
1401
- - `minColumnWidth?: number` `= 64` — Narrowest a column can be dragged, in pixels.
1402
- - `maxColumnWidth?: number` — Widest a column can be dragged, in pixels. Unbounded when omitted.
1403
- - `columnResizeMode?: ColumnResizeMode` `= 'fit'` — Whether a resize is paid for by the next column or by the table's own width. Defaults to `fit`, which keeps…
1404
- - `frozenColumns?: FrozenColumns` — Columns frozen to each edge. Passing this prop puts freezing into controlled mode — hold the value in state…
1405
- - `defaultFrozenColumns?: FrozenColumns` — Columns frozen to each edge to begin with, for the uncontrolled case.
1406
- - `onFrozenColumnsChange?: (frozenColumns: Required<FrozenColumns>) => void` — Called whenever the user freezes or unfreezes columns from the header controls. Always receives both lists.
1407
- - `freezeControls?: boolean` `= false` — Gives every `TableCellHeader` a menu to freeze its column to either edge, or unfreeze it. Independent of…
1408
- - `stickyHeader?: boolean` `= false` — Keeps the header row in view while the table scrolls vertically. Needs a scroll container with a height…
1472
+ - `columnWidths?: number[]` — Column widths in pixels, one per column, for the controlled case.
1473
+ - `defaultColumnWidths?: number[]` — Starting column widths in pixels, for the uncontrolled case.
1474
+ - `onColumnWidthsChange?: (columnWidths: number[]) => void` — Called on every width change, including each frame of a drag.
1475
+ - `minColumnWidth?: number` — Narrowest a column can be dragged, in pixels.
1476
+ - `maxColumnWidth?: number` — Widest a column can be dragged, in pixels.
1477
+ - `columnResizeMode?: ColumnResizeMode` — Whether a resize is paid for by the columns to the right or by the table's own width.
1478
+ - `frozenColumns?: FrozenColumns` — Columns frozen to each edge, for the controlled case.
1479
+ - `defaultFrozenColumns?: FrozenColumns` — Columns frozen to each edge to begin with.
1480
+ - `onFrozenColumnsChange?: (frozenColumns: Required<FrozenColumns>) => void` — Called whenever the user freezes or unfreezes columns.
1481
+ - `freezeControls?: boolean` — Gives every `TableCellHeader` a menu to freeze its column.
1482
+ - `stickyHeader?: boolean` — Keeps the header row in view while the table scrolls vertically.
1409
1483
  - _plus native element attributes_
1410
1484
 
1411
1485
  #### TableBody
@@ -1425,6 +1499,8 @@ Table header cell component
1425
1499
 
1426
1500
  - `resizable?: boolean` `= true` — Whether this column can be resized inside a `Table` with `resizableColumns`. Set it to `false` to pin a…
1427
1501
  - `freezable?: boolean` `= true` — Whether this header cell offers the freeze menu inside a `Table` with `freezeControls`. Set it to `false` for…
1502
+ - `minWidth?: number` — Narrowest this column can be resized to, in pixels, inside a `Table` with `resizableColumns`. Overrides the…
1503
+ - `maxWidth?: number` — Widest this column can be resized to, in pixels, inside a `Table` with `resizableColumns`. Overrides the…
1428
1504
  - `columnId?: ColumnId` — Stable id for this column, used by `frozenColumns` on the `Table`. Give every header one when the app can…
1429
1505
  - `align?: 'center' | 'left' | 'right' | 'justify'` `= 'left'` — Text alignment for the cell content
1430
1506
  - _plus native element attributes_
@@ -1722,11 +1798,11 @@ A nestable list of rows, up to three levels deep.
1722
1798
  - `expandedIds?: string[]` — Ids of expanded nodes. Pass to control expansion yourself.
1723
1799
  - `defaultExpandedIds?: string[]` — Ids expanded on mount, when expansion is uncontrolled.
1724
1800
  - `onExpandedIdsChange?: (ids: string[]) => void`
1725
- - `expandMode?: 'multiple' | 'single'` `= 'multiple'` — `single` collapses siblings when a node expands, accordion-style.
1801
+ - `expandMode?: 'single' | 'multiple'` `= 'multiple'` — `single` collapses siblings when a node expands, accordion-style.
1726
1802
  - `selectedIds?: string[]` — Ids of selected nodes. Always an array, even in `single` mode — which is what lets a consumer move to…
1727
1803
  - `defaultSelectedIds?: string[]`
1728
1804
  - `onSelectedIdsChange?: (ids: string[], item: AnyTreeItem<TMeta>) => void` — Receives the full next selection, plus the node that was acted on.
1729
- - `selectionMode?: 'multiple' | 'single'` `= 'single'` — `single` replaces the selection on click, `multiple` toggles membership.
1805
+ - `selectionMode?: 'single' | 'multiple'` `= 'single'` — `single` replaces the selection on click, `multiple` toggles membership.
1730
1806
  - `renderItem?: (props: TreeItemRenderProps<TMeta>) => React.ReactNode` — Replaces the row's interior. The `li`, ARIA and keyboard stay with `TreeView`.
1731
1807
  - `activeColor?: string` — Overrides the selected row's colour (and the chevron and icon on it), for a consumer whose accent isn't the…
1732
1808
  - `semantics?: 'list' | 'tree'` `= 'tree'` — `tree` gives a real `role="tree"` with roving focus and arrow-key navigation — right for a file tree. `list`…
@@ -2437,69 +2513,73 @@ _Names only — read the `.d.ts` for their shape._
2437
2513
  `CalendarEventDetailsControls` · `CalendarEventDetailsField` · `CalendarEventDetailsProps`
2438
2514
  `CalendarEventProps` · `CalendarEventRenderContext` · `CalendarEventSlotContext` · `CalendarEvent`
2439
2515
  `CalendarHighlightColor` · `CalendarProps` · `CalendarRange` · `CalendarType` · `CalendarVariant`
2440
- `CalendarView` · `CalendarWeek` · `CandlestickChartFeatures` · `CandlestickChartProps`
2441
- `CardListProps` · `CardProps` · `CarouselControlsPosition` · `CarouselFit` · `CarouselItem`
2442
- `CarouselOpenFullMode` · `CarouselProps` · `CarouselThumbnailsPosition` · `CheckboxProps`
2443
- `ChildrenDataProps` · `ChipColor` · `ChipProps` · `ChipSize` · `ChipVariant`
2444
- `CollapsibleNavBarExtendedProps` · `CollapsibleNavBarGroup` · `CollapsibleNavBarHeader`
2445
- `CollapsibleNavBarItem` · `ColoredButtonTextProps` · `ColorsKeys` · `ColumnFreezeApi`
2446
- `ColumnFreezeMenuProps` · `ColumnFreezeOptions` · `ColumnId` · `ColumnResizeApi`
2447
- `ColumnResizeHandleProps` · `ColumnResizeMode` · `ColumnResizeOptions` · `CommonProps`
2448
- `ContextMenuBaseProps` · `ContextMenuEntry` · `ContextMenuGroup` · `ContextMenuIncludeExcludeEntry`
2516
+ `CalendarView` · `CalendarWeek` · `CalendarWeekday` · `CalendarWorkingHoursByWeekday`
2517
+ `CalendarWorkingHours` · `CandlestickChartFeatures` · `CandlestickChartProps` · `CardListProps`
2518
+ `CardProps` · `CarouselControlsPosition` · `CarouselFit` · `CarouselItem` · `CarouselOpenFullMode`
2519
+ `CarouselProps` · `CarouselThumbnailsPosition` · `CheckboxProps` · `ChildrenDataProps` · `ChipColor`
2520
+ `ChipProps` · `ChipSize` · `ChipVariant` · `CollapsibleNavBarExtendedProps`
2521
+ `CollapsibleNavBarGroup` · `CollapsibleNavBarHeader` · `CollapsibleNavBarItem`
2522
+ `ColoredButtonTextProps` · `ColorsKeys` · `ColumnFreezeApi` · `ColumnFreezeMenuProps`
2523
+ `ColumnFreezeOptions` · `ColumnId` · `ColumnResizeApi` · `ColumnResizeHandleProps`
2524
+ `ColumnResizeMode` · `ColumnResizeOptions` · `CommonProps` · `ContextMenuBaseProps`
2525
+ `ContextMenuEntry` · `ContextMenuGroup` · `ContextMenuIncludeExcludeEntry`
2449
2526
  `ContextMenuIncludeExcludeSelectionProps` · `ContextMenuIncludeExcludeType` · `ContextMenuIndicator`
2450
2527
  `ContextMenuItemState` · `ContextMenuItem` · `ContextMenuMultipleSelectionProps`
2451
2528
  `ContextMenuNoSelectionProps` · `ContextMenuProps` · `ContextMenuSelectionProps`
2452
2529
  `ContextMenuSingleSelectionProps` · `ContextMenuValue` · `ContextType` · `ControlledButtonProps`
2453
2530
  `CounterProps` · `CounterSizes` · `CounterVariants` · `CustomIconProps` · `CustomTagStyles`
2531
+ `DataTableColumnPickerProps` · `DataTableColumnState` · `DataTableColumn` · `DataTableElementProps`
2532
+ `DataTableProps` · `DataTableSelectionMode` · `DataTableSortDirection` · `DataTableSort`
2454
2533
  `DatePickerContextProps` · `DatePickerFormat` · `DatePickerProps` · `DateRangePickerContextProps`
2455
2534
  `DateRangePickerFormBridgeProps` · `DateRangePickerFormBridgeValue` · `DateRangePickerOnChangeDates`
2456
2535
  `DateRangePickerProps` · `DateRangePresetValue` · `DateRangePreset` · `DateTimeTuple`
2457
- `DeprecatedOpenStateProps` · `DropdownContextType` · `DropdownOptionProps` · `DropdownPositions`
2458
- `DropdownProps` · `DropdownToggleProps` · `DynamicAlertParams` · `DynamicNotificationParams`
2459
- `DynamicToastParams` · `FieldContextValue` · `FieldControlProps` · `FieldDescriptionProps`
2460
- `FieldErrorProps` · `FieldLabelProps` · `FieldProps` · `FieldSuccessProps` · `FileAttachmentFile`
2461
- `FileAttachmentProps` · `FileRejectionReason` · `FileUploadProgressEntry` · `FileUploadProgress`
2462
- `FileUploadProps` · `Filter` · `FiltersMultiSelectEmptyProps` · `FiltersMultiSelectOptionProps`
2463
- `FiltersMultiSelectProps` · `FloatingActionButtonAction` · `FloatingActionButtonColor`
2464
- `FloatingActionButtonIcon` · `FloatingActionButtonPosition` · `FloatingActionButtonProps`
2465
- `FloatingActionButtonSize` · `FloatingSurfaceColor` · `FloatingSurfaceSize` · `FooterColumn`
2466
- `FooterLink` · `FooterProps` · `FooterSize` · `FooterTheme` · `Format` · `FrozenColumns`
2467
- `FullscreenModeContextType` · `FunnelChartItem` · `FunnelChartProps` · `FunnelChartRender`
2468
- `FunnelChartType` · `GaugeBarProps` · `GaugeBarThreshold` · `GaugeBarValueFormatter`
2469
- `GaugeChartFeature` · `GaugeChartProps` · `HeaderNavItem` · `HeaderProps` · `HeaderSize`
2470
- `HeaderTheme` · `HistoryItemType` · `HistoryProps` · `IFormCheckboxProps` · `IconButtonProps`
2471
- `IconProps` · `ImageItemProps` · `IndicatorProps` · `InputColors` · `InputProps`
2472
- `InputStatusColors` · `InteractionsEnabled` · `Item` · `LabelBadge` · `LabelProps` · `LargeTabProps`
2473
- `LastFocusedElement` · `LinkProps` · `LinksTabBarProps` · `MainColors` · `MainSizes`
2474
- `MapIconsType` · `ModalContextProps` · `ModalDialogProps` · `ModalProps` · `ModalRootProps`
2475
- `MountMode` · `MultipleStylesProps` · `NavBarExtendedGroup` · `NavBarExtendedItem`
2476
- `NavBarExtendedProps` · `NavBarExtendedSubItem` · `NavBarProps` · `NestedTableCellHeaderProps`
2477
- `NestedTableContextType` · `NestedTableContextValue` · `NestedTableProps`
2478
- `NestedTableRowContextType` · `NotificationCardProps` · `NotificationDynamicProps`
2479
- `NotificationGlobalSharedProps` · `NotificationMenuProps` · `NotificationPositions`
2480
- `NotificationProps` · `NotificationSharedProps` · `NotificationSizes` · `NotificationStyleOverrides`
2481
- `NotificationType` · `NotificationVariants` · `NumberFieldProps` · `OpenStateProps`
2482
- `OpenedAccordion` · `PageButtonProps` · `PaginationButtonsProps` · `PaginationContextProps`
2483
- `PaginationContextProviderProps` · `PaginationProps` · `PaletteColor` · `Palette` · `PeriodOption`
2484
- `Period` · `PersonInfoAvatarProps` · `PersonInfoCounterProps` · `PersonInfoCounterTooltipUser`
2485
- `PersonInfoCounterTooltip` · `PersonInfoLinkAttributes` · `PersonInfoProps` · `PersonInfoStyles`
2486
- `PersonInfoValueProps` · `PickerType` · `PieChartFeatures` · `PieChartLegendItem`
2487
- `PieChartLegendProps` · `PieChartProps` · `PieChartTooltipProps` · `PieChartTooltipViewProps`
2488
- `PopoverArrowProps` · `PopoverContentProps` · `PopoverOptions` · `PopoverTriggerProps`
2489
- `ProgressBarProps` · `ProgressChartTooltipProps` · `ProgressCircleProps` · `ProgressInfoItemProps`
2490
- `ProgressInfoProps` · `ProgressInfoResp` · `ProgressInfoTotalsProps` · `ProgressProps` · `RGBString`
2491
- `RadioGroupProps` · `RadioProps` · `RangePickerType` · `RenderContentProps` · `ResizeHandleProps`
2492
- `ResolveDeprecatedPropOptions` · `ResolvedOpenState` · `ResponsiveImageProps` · `SVGProps`
2493
- `SearchBoxProps` · `SelectedFilter` · `SetIDs` · `SimpleChartTooltipProps` · `SizeStyles`
2494
- `SliderMark` · `SliderProps` · `SliderSize` · `SmallTabProps` · `StepperContextType`
2495
- `StepperProps` · `SwitchContext` · `SwitchProps` · `TabBarContextProps` · `TabBarLink`
2496
- `TabBarProps` · `TabBaseProps` · `TabProps` · `TableContainerProps` · `TableProps` · `TagsProps`
2497
- `TextFieldProps` · `TextareaProps` · `Theme` · `ToastProps` · `ToastVariants` · `TooltipArrowProps`
2498
- `TooltipColor` · `TooltipContentProps` · `TooltipContentSizes` · `TooltipContextType`
2499
- `TooltipProps` · `TooltipSize` · `TooltipTriggerProps` · `TranslationContextContent`
2500
- `TreeItemBase` · `TreeItemLevel2` · `TreeItemLevel3` · `TreeItemRenderProps` · `TreeItem`
2501
- `TreeLevel` · `TreeMapChartFeature` · `TreeMapChartProps` · `TreeNode` · `TreeViewProps`
2502
- `TypeaheadItemProps` · `TypeaheadItemsListProps` · `TypeaheadOptionProps` · `TypeaheadProps`
2536
+ `DeprecatedOpenStateProps` · `DropdownContextType` · `DropdownOptionGroupProps`
2537
+ `DropdownOptionProps` · `DropdownPositions` · `DropdownProps` · `DropdownToggleProps`
2538
+ `DynamicAlertParams` · `DynamicNotificationParams` · `DynamicToastParams` · `FieldContextValue`
2539
+ `FieldControlProps` · `FieldDescriptionProps` · `FieldErrorProps` · `FieldLabelProps` · `FieldProps`
2540
+ `FieldSuccessProps` · `FileAttachmentFile` · `FileAttachmentProps` · `FileRejectionReason`
2541
+ `FileUploadProgressEntry` · `FileUploadProgress` · `FileUploadProps` · `Filter`
2542
+ `FiltersMultiSelectEmptyProps` · `FiltersMultiSelectOptionProps` · `FiltersMultiSelectProps`
2543
+ `FloatingActionButtonAction` · `FloatingActionButtonColor` · `FloatingActionButtonIcon`
2544
+ `FloatingActionButtonPosition` · `FloatingActionButtonProps` · `FloatingActionButtonSize`
2545
+ `FloatingSurfaceColor` · `FloatingSurfaceSize` · `FooterColumn` · `FooterLink` · `FooterProps`
2546
+ `FooterSize` · `FooterTheme` · `Format` · `FrozenColumns` · `FullscreenModeContextType`
2547
+ `FunnelChartItem` · `FunnelChartProps` · `FunnelChartRender` · `FunnelChartType` · `GaugeBarProps`
2548
+ `GaugeBarThreshold` · `GaugeBarValueFormatter` · `GaugeChartFeature` · `GaugeChartProps`
2549
+ `HeaderNavItem` · `HeaderProps` · `HeaderSize` · `HeaderTheme` · `HistoryItemType` · `HistoryProps`
2550
+ `IFormCheckboxProps` · `IconButtonProps` · `IconProps` · `ImageItemProps` · `IndicatorProps`
2551
+ `InputColors` · `InputProps` · `InputStatusColors` · `InteractionsEnabled` · `Item` · `LabelBadge`
2552
+ `LabelProps` · `LargeTabProps` · `LastFocusedElement` · `LinkProps` · `LinksTabBarProps`
2553
+ `MainColors` · `MainSizes` · `MapIconsType` · `ModalContextProps` · `ModalDialogProps`
2554
+ `ModalProps` · `ModalRootProps` · `MountMode` · `MultipleStylesProps` · `NavBarExtendedGroup`
2555
+ `NavBarExtendedItem` · `NavBarExtendedProps` · `NavBarExtendedSubItem` · `NavBarProps`
2556
+ `NestedTableCellHeaderProps` · `NestedTableContextType` · `NestedTableContextValue`
2557
+ `NestedTableProps` · `NestedTableRowContextType` · `NotificationCardProps`
2558
+ `NotificationDynamicProps` · `NotificationGlobalSharedProps` · `NotificationMenuProps`
2559
+ `NotificationPositions` · `NotificationProps` · `NotificationSharedProps` · `NotificationSizes`
2560
+ `NotificationStyleOverrides` · `NotificationType` · `NotificationVariants` · `NumberFieldProps`
2561
+ `OpenStateProps` · `OpenedAccordion` · `PageButtonProps` · `PaginationButtonsProps`
2562
+ `PaginationContextProps` · `PaginationContextProviderProps` · `PaginationProps` · `PaletteColor`
2563
+ `Palette` · `PeriodOption` · `Period` · `PersonInfoAvatarProps` · `PersonInfoCounterProps`
2564
+ `PersonInfoCounterTooltipUser` · `PersonInfoCounterTooltip` · `PersonInfoLinkAttributes`
2565
+ `PersonInfoProps` · `PersonInfoStyles` · `PersonInfoValueProps` · `PickerType` · `PieChartFeatures`
2566
+ `PieChartLegendItem` · `PieChartLegendProps` · `PieChartProps` · `PieChartTooltipProps`
2567
+ `PieChartTooltipViewProps` · `PopoverArrowProps` · `PopoverContentProps` · `PopoverOptions`
2568
+ `PopoverTriggerProps` · `ProgressBarProps` · `ProgressChartTooltipProps` · `ProgressCircleProps`
2569
+ `ProgressInfoItemProps` · `ProgressInfoProps` · `ProgressInfoResp` · `ProgressInfoTotalsProps`
2570
+ `ProgressProps` · `RGBString` · `RadioGroupProps` · `RadioProps` · `RangePickerType`
2571
+ `RenderContentProps` · `ResizeHandleProps` · `ResolveDeprecatedPropOptions` · `ResolvedOpenState`
2572
+ `ResponsiveImageProps` · `SVGProps` · `SearchBoxProps` · `SelectedFilter` · `SetIDs`
2573
+ `SimpleChartTooltipProps` · `SizeStyles` · `SliderMark` · `SliderProps` · `SliderSize`
2574
+ `SmallTabProps` · `StepperContextType` · `StepperProps` · `SwitchContext` · `SwitchProps`
2575
+ `TabBarContextProps` · `TabBarLink` · `TabBarProps` · `TabBaseProps` · `TabProps`
2576
+ `TableContainerProps` · `TableProps` · `TagsProps` · `TextFieldProps` · `TextareaProps` · `Theme`
2577
+ `ToastProps` · `ToastVariants` · `TooltipArrowProps` · `TooltipColor` · `TooltipContentProps`
2578
+ `TooltipContentSizes` · `TooltipContextType` · `TooltipProps` · `TooltipSize`
2579
+ `TooltipTriggerProps` · `TranslationContextContent` · `TreeItemBase` · `TreeItemLevel2`
2580
+ `TreeItemLevel3` · `TreeItemRenderProps` · `TreeItem` · `TreeLevel` · `TreeMapChartFeature`
2581
+ `TreeMapChartProps` · `TreeNode` · `TreeViewProps` · `TypeaheadItemProps`
2582
+ `TypeaheadItemsListProps` · `TypeaheadOptionGroupProps` · `TypeaheadOptionProps` · `TypeaheadProps`
2503
2583
  `TypeaheadValue` · `TypographyProps` · `UseBreadcrumbsOptions` · `UseChartInfo`
2504
2584
  `UseColumnResizeOptions` · `UseDrawerOptions` · `UseFiltersMultiSelectOptions`
2505
2585
  `UseFiltersMultiSelectStore` · `UsePopover` · `UseTooltipArgs` · `UseTooltipContext` · `UseTooltip`
@@ -22,10 +22,18 @@ import { CalendarProps } from './types';
22
22
  * adds anything up itself — totals are whatever the consumer renders.
23
23
  *
24
24
  * ### Day view
25
- * Untimed entries are listed above 00:00; timed ones are placed on the hour
26
- * timeline, side by side where they overlap. A timed entry that runs past
25
+ * Untimed entries are listed in a row above 00:00, shown only when there are
26
+ * some; timed ones are placed on the hour timeline, side by side where they
27
+ * overlap, with text that grows with their box. A timed entry that runs past
27
28
  * midnight continues on the next day's timeline. Today shows a line at the
28
- * current time.
29
+ * current time. `workingHours` shades the hours outside the working time
30
+ * (per weekday if needed); `resizableHours` lets the user drag the hour
31
+ * labels to make the hours taller or shorter.
32
+ *
33
+ * ### Time zones
34
+ * `timeZone` (or `defaultTimeZone`) shows timed entries in another IANA
35
+ * zone; untimed entries and day values stay on their date.
36
+ * `timeZoneSelector` adds a button that lets the user pick the zone.
29
37
  *
30
38
  * ### Multi-day entries
31
39
  * An untimed entry with an `end`, or a timed one lasting 24 hours or more,
@@ -1,11 +1,22 @@
1
+ import { ReactNode } from 'react';
1
2
  import { DateTime } from 'luxon';
2
3
  import { CalendarEvent, CalendarProps } from './types';
3
4
  /**
4
5
  * Props every part of the calendar reads, shared through context so the
5
6
  * views don't have to pass them down level by level.
6
7
  */
7
- export type CalendarContextValue = Pick<CalendarProps, 'getDayProps' | 'onAddEvent' | 'onTaskToggle' | 'onDayClick' | 'renderEvent' | 'renderEventActions' | 'getEventProps' | 'locale'> & {
8
+ export type CalendarContextValue = Pick<CalendarProps, 'getDayProps' | 'onAddEvent' | 'onTaskToggle' | 'onDayClick' | 'renderEvent' | 'renderEventActions' | 'getEventProps' | 'locale' | 'workingHours'> & {
8
9
  timeFormat: '24h' | '12h';
10
+ /** Zone times are shown in; `undefined` — local time. */
11
+ timeZone?: string;
12
+ /** Height of one hour on the day view's timeline, in px. */
13
+ hourHeight: number;
14
+ /** Resizes the hours; `undefined` when they can't be resized. */
15
+ setHourHeight?: (height: number) => void;
16
+ /** Hour height a double click on the hour labels goes back to. */
17
+ defaultHourHeight: number;
18
+ /** Extra controls for the day view's header, e.g. the time zone picker. */
19
+ dayHeaderEnd?: ReactNode;
9
20
  /**
10
21
  * Whether a day gets an add button, going by `onAddEvent` and
11
22
  * `minAddDate` / `maxAddDate` (not `getDayProps`, which the views apply).
@@ -5,6 +5,10 @@ type CalendarToolbarProps = {
5
5
  view: CalendarView;
6
6
  date: DateTime;
7
7
  locale?: string;
8
+ /** Zone "Today" is taken in; `undefined` — local time. */
9
+ timeZone?: string;
10
+ /** The time zone button, when the calendar offers one. */
11
+ timeZonePicker?: ReactNode;
8
12
  /** Moves to a date; `undefined` when the date can't move. */
9
13
  onNavigate?: (date: DateTime) => void;
10
14
  /** Views to toggle between; the toggle shows with two or more. */
@@ -16,5 +20,5 @@ type CalendarToolbarProps = {
16
20
  * The bar above the grid: previous / today / next, the date on show, the
17
21
  * consumer's content and the view toggle.
18
22
  */
19
- export declare const CalendarToolbar: ({ view, date, locale, onNavigate, views, onViewChange, end, }: CalendarToolbarProps) => import("@emotion/react/jsx-runtime").JSX.Element;
23
+ export declare const CalendarToolbar: ({ view, date, locale, timeZone, timeZonePicker, onNavigate, views, onViewChange, end, }: CalendarToolbarProps) => import("@emotion/react/jsx-runtime").JSX.Element;
20
24
  export {};
@@ -7,8 +7,10 @@ type DayViewProps = {
7
7
  scrollToHour?: number;
8
8
  };
9
9
  /**
10
- * A single day: header, untimed entries above 00:00, and an hour timeline
11
- * with the timed entries placed by time. Overlapping entries share the width.
10
+ * A single day: header, untimed entries above 00:00 (a row shown only when
11
+ * there are some), and an hour timeline with the timed entries placed by
12
+ * time. Overlapping entries share the width; hours outside the working time
13
+ * are shaded.
12
14
  */
13
15
  export declare const DayView: ({ date, items, header, scrollToHour, }: DayViewProps) => import("@emotion/react/jsx-runtime").JSX.Element;
14
16
  export {};
@@ -0,0 +1,14 @@
1
+ type TimeZoneSelectProps = {
2
+ value: string;
3
+ /** Zones to offer; every zone the browser knows when missing. */
4
+ options?: string[];
5
+ onChange: (zone: string) => void;
6
+ };
7
+ /** `GMT+2`, `GMT-3:30`, or `GMT` for UTC — the zone's offset right now. */
8
+ export declare const formatTimeZoneOffset: (zone: string) => string;
9
+ /**
10
+ * The calendar's time zone button: shows the zone's offset and opens a
11
+ * searchable list of zones, sorted by offset.
12
+ */
13
+ export declare const TimeZoneSelect: ({ value, options, onChange, }: TimeZoneSelectProps) => import("@emotion/react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -7,8 +7,21 @@ export declare const TOTAL_COLUMN_WIDTH: {
7
7
  readonly 7: 91;
8
8
  readonly 5: 160;
9
9
  };
10
- /** Height of one hour on the day view's timeline. */
10
+ /** Height of one hour on the day view's timeline, unless resized. */
11
11
  export declare const HOUR_HEIGHT = 68;
12
+ /**
13
+ * Resize limits for when the view can't be measured (before layout, or with
14
+ * no height). Otherwise an hour goes from the whole day fitting the view to
15
+ * a single hour filling it.
16
+ */
17
+ export declare const HOUR_HEIGHT_FALLBACK_LIMITS: {
18
+ readonly min: 16;
19
+ readonly max: 480;
20
+ };
21
+ /** Shortest an hour is ever drawn, whatever `hourHeight` says. */
22
+ export declare const HOUR_HEIGHT_FLOOR = 8;
23
+ /** Hour height change per arrow key press on the resize handle. */
24
+ export declare const HOUR_HEIGHT_STEP = 8;
12
25
  /**
13
26
  * Space above the 00:00 line. It holds untimed entries, and leaves room for
14
27
  * the 00:00 label, which is centred on its line.
@@ -12,6 +12,9 @@ export declare const toolbar: (theme: Theme) => import("@emotion/react").Seriali
12
12
  export declare const toolbarNav: import("@emotion/react").SerializedStyles;
13
13
  export declare const toolbarTitle: import("@emotion/react").SerializedStyles;
14
14
  export declare const toolbarViews: import("@emotion/react").SerializedStyles;
15
+ export declare const timeZoneButton: (theme: Theme) => import("@emotion/react").SerializedStyles;
16
+ export declare const timeZonePopover: (theme: Theme) => import("@emotion/react").SerializedStyles;
17
+ export declare const timeZoneSearch: (theme: Theme) => import("@emotion/react").SerializedStyles;
15
18
  export declare const toolbarEnd: import("@emotion/react").SerializedStyles;
16
19
  /**
17
20
  * The header and the week rows scroll together, so the header can't drift
@@ -103,6 +106,8 @@ export declare const dayLeadRow: (theme: Theme) => import("@emotion/react").Seri
103
106
  export declare const hourLabelFirst: import("@emotion/react").SerializedStyles;
104
107
  /** Above 00:00. Grows to fit untimed entries. */
105
108
  export declare const dayLead: (theme: Theme) => import("@emotion/react").SerializedStyles;
109
+ /** Set on the timeline to the hour height in px; the hour cells follow it. */
110
+ export declare const HOUR_HEIGHT_VARIABLE = "--calendar-hour-height";
106
111
  export declare const hourCell: (theme: Theme) => import("@emotion/react").SerializedStyles;
107
112
  export declare const hourCellLast: import("@emotion/react").SerializedStyles;
108
113
  export declare const hourCellAddable: (theme: Theme) => import("@emotion/react").SerializedStyles;
@@ -110,14 +115,45 @@ export declare const dayHighlight: (outline: string | undefined, tint: string) =
110
115
  export declare const dayHighlightLabel: import("@emotion/react").SerializedStyles;
111
116
  /** Where the timeline's hours start, below the lead area. */
112
117
  export declare const timeline: import("@emotion/react").SerializedStyles;
118
+ /** Holds the shading of the hours outside the working time. */
119
+ export declare const offHoursLayer: import("@emotion/react").SerializedStyles;
120
+ /**
121
+ * Multiplied over the cells rather than painted on them, so the hour lines
122
+ * and the cells' hover still show through.
123
+ */
124
+ export declare const offHours: (theme: Theme) => import("@emotion/react").SerializedStyles;
125
+ /** Lies over the hour labels; dragging it resizes the hours. */
126
+ export declare const hourResizer: (theme: Theme) => import("@emotion/react").SerializedStyles;
113
127
  /** Holds the timed events over the hour cells, right of the labels. */
114
128
  export declare const dayEventsLayer: import("@emotion/react").SerializedStyles;
115
129
  /** Places a timed entry; its content fills it. */
116
130
  export declare const dayEventBox: import("@emotion/react").SerializedStyles;
117
- export type DayEventSize = 'large' | 'medium' | 'small';
131
+ export type DayEventSize = 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge';
132
+ /**
133
+ * Text of a timed entry by its size, and the box height each size starts
134
+ * at. `small` lays the title and time out in a row; the rest stack them.
135
+ */
136
+ export declare const DAY_EVENT_TEXT: Record<DayEventSize, {
137
+ minHeight: number;
138
+ padding: number;
139
+ title: {
140
+ fontSize: number;
141
+ fontWeight: number;
142
+ lineHeight: string;
143
+ };
144
+ titleLineHeight: number;
145
+ time: {
146
+ fontSize: number;
147
+ fontWeight: number;
148
+ lineHeight: string;
149
+ };
150
+ timeLineHeight: number;
151
+ }>;
118
152
  export declare const dayEvent: (theme: Theme, stripe: string | undefined, size: DayEventSize) => import("@emotion/react").SerializedStyles;
119
153
  export declare const dayEventContent: (size: DayEventSize) => import("@emotion/react").SerializedStyles;
120
154
  export declare const dayEventTitle: (size: DayEventSize) => import("@emotion/react").SerializedStyles;
155
+ /** A title with room for more lines; the line count is set inline. */
156
+ export declare const dayEventTitleWrap: import("@emotion/react").SerializedStyles;
121
157
  export declare const dayEventTime: (size: DayEventSize) => import("@emotion/react").SerializedStyles;
122
158
  export declare const dayTask: import("@emotion/react").SerializedStyles;
123
159
  export declare const nowPointer: (theme: Theme) => import("@emotion/react").SerializedStyles;