@ahrowe/ui 0.31.0 → 0.33.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.
- package/dist/esm/common/actionButtons/actionButtons.mjs +1 -1
- package/dist/esm/common/actionButtons/actionButtons.mjs.map +1 -1
- package/dist/esm/common/alert/alert.mjs +1 -1
- package/dist/esm/common/alert/alert.mjs.map +1 -1
- package/dist/esm/common/alert/alert.types.mjs.map +1 -1
- package/dist/esm/common/breadcrumb/breadcrumb.mjs +1 -1
- package/dist/esm/common/breadcrumb/breadcrumb.mjs.map +1 -1
- package/dist/esm/common/card/Card.mjs +1 -1
- package/dist/esm/common/card/Card.mjs.map +1 -1
- package/dist/esm/common/card/card.types.mjs.map +1 -1
- package/dist/esm/common/carousel/carousel.mjs +1 -1
- package/dist/esm/common/carousel/carousel.mjs.map +1 -1
- package/dist/esm/common/chip/chip.mjs +1 -1
- package/dist/esm/common/chip/chip.mjs.map +1 -1
- package/dist/esm/common/chip/chip.types.mjs.map +1 -1
- package/dist/esm/common/colorPicker/colorPicker.mjs +1 -1
- package/dist/esm/common/colorPicker/colorPicker.mjs.map +1 -1
- package/dist/esm/common/configProvider/useLabels.mjs +2 -0
- package/dist/esm/common/configProvider/useLabels.mjs.map +1 -0
- package/dist/esm/common/confirmModal/confirmModal.mjs +1 -1
- package/dist/esm/common/confirmModal/confirmModal.mjs.map +1 -1
- package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.mjs +1 -1
- package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.mjs.map +1 -1
- package/dist/esm/common/datePicker/datePicker.mjs +1 -1
- package/dist/esm/common/datePicker/datePicker.mjs.map +1 -1
- package/dist/esm/common/drawer/drawer.mjs +1 -1
- package/dist/esm/common/drawer/drawer.mjs.map +1 -1
- package/dist/esm/common/dropdown/dropdown.mjs +1 -1
- package/dist/esm/common/dropdown/dropdown.mjs.map +1 -1
- package/dist/esm/common/emptyState/emptyState.mjs +1 -1
- package/dist/esm/common/emptyState/emptyState.mjs.map +1 -1
- package/dist/esm/common/fab/components/fabBase/fabBase.mjs +1 -1
- package/dist/esm/common/fab/components/fabBase/fabBase.mjs.map +1 -1
- package/dist/esm/common/fab/fab.mjs +1 -1
- package/dist/esm/common/fab/fab.mjs.map +1 -1
- package/dist/esm/common/infiniteBlock/infiniteBlock.mjs +1 -1
- package/dist/esm/common/infiniteBlock/infiniteBlock.mjs.map +1 -1
- package/dist/esm/common/input/input.mjs +1 -1
- package/dist/esm/common/input/input.mjs.map +1 -1
- package/dist/esm/common/input/input.types.mjs.map +1 -1
- package/dist/esm/common/klipyPicker/klipyPicker.mjs +1 -1
- package/dist/esm/common/klipyPicker/klipyPicker.mjs.map +1 -1
- package/dist/esm/common/modal/modal.mjs +1 -1
- package/dist/esm/common/modal/modal.mjs.map +1 -1
- package/dist/esm/common/multiSelect/multiSelect.mjs +1 -1
- package/dist/esm/common/multiSelect/multiSelect.mjs.map +1 -1
- package/dist/esm/common/numberInput/numberInput.mjs +1 -1
- package/dist/esm/common/numberInput/numberInput.mjs.map +1 -1
- package/dist/esm/common/otpInput/otpInput.mjs +1 -1
- package/dist/esm/common/otpInput/otpInput.mjs.map +1 -1
- package/dist/esm/common/otpInput/otpInput.types.mjs.map +1 -1
- package/dist/esm/common/pagination/pagination.mjs +1 -1
- package/dist/esm/common/pagination/pagination.mjs.map +1 -1
- package/dist/esm/common/progressBar/progressBar.mjs +1 -1
- package/dist/esm/common/progressBar/progressBar.mjs.map +1 -1
- package/dist/esm/common/roomDrawer/roomDrawer.mjs +1 -1
- package/dist/esm/common/roomDrawer/roomDrawer.mjs.map +1 -1
- package/dist/esm/common/searchInput/searchInput.mjs +1 -1
- package/dist/esm/common/searchInput/searchInput.mjs.map +1 -1
- package/dist/esm/common/splitButton/splitButton.mjs +1 -1
- package/dist/esm/common/splitButton/splitButton.mjs.map +1 -1
- package/dist/esm/common/timer/timer.mjs +1 -1
- package/dist/esm/common/timer/timer.mjs.map +1 -1
- package/dist/esm/common/toast/toast.mjs +1 -1
- package/dist/esm/common/toast/toast.mjs.map +1 -1
- package/dist/esm/common/toast/toastProvider.mjs +1 -1
- package/dist/esm/common/toast/toastProvider.mjs.map +1 -1
- package/dist/esm/common/tree/tree.mjs +1 -1
- package/dist/esm/common/tree/tree.mjs.map +1 -1
- package/dist/esm/common/virtualList/virtualList.mjs +1 -1
- package/dist/esm/common/virtualList/virtualList.mjs.map +1 -1
- package/dist/esm/common/virtualList/virtualListHeader.mjs +1 -1
- package/dist/esm/common/virtualList/virtualListHeader.mjs.map +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/types/common/actionButtons/actionButtons.types.d.ts +9 -2
- package/dist/types/common/alert/alert.types.d.ts +7 -0
- package/dist/types/common/breadcrumb/breadcrumb.types.d.ts +7 -0
- package/dist/types/common/card/card.types.d.ts +6 -1
- package/dist/types/common/carousel/carousel.types.d.ts +13 -0
- package/dist/types/common/chip/chip.types.d.ts +13 -2
- package/dist/types/common/colorPicker/colorPicker.d.ts +1 -1
- package/dist/types/common/colorPicker/colorPicker.types.d.ts +13 -1
- package/dist/types/common/configProvider/configProvider.types.d.ts +26 -1
- package/dist/types/common/configProvider/index.d.ts +1 -0
- package/dist/types/common/configProvider/useLabels.d.ts +22 -0
- package/dist/types/common/confirmModal/confirmModal.types.d.ts +13 -4
- package/dist/types/common/datePicker/components/datePickerMonth/datePickerMonth.d.ts +2 -14
- package/dist/types/common/datePicker/components/datePickerMonth/datePickerMonth.types.d.ts +23 -0
- package/dist/types/common/datePicker/datePicker.d.ts +1 -22
- package/dist/types/common/datePicker/datePicker.types.d.ts +60 -0
- package/dist/types/common/datePicker/index.d.ts +1 -0
- package/dist/types/common/drawer/drawer.d.ts +1 -1
- package/dist/types/common/drawer/drawer.types.d.ts +7 -1
- package/dist/types/common/dropdown/dropdown.types.d.ts +6 -6
- package/dist/types/common/emptyState/emptyState.d.ts +1 -1
- package/dist/types/common/emptyState/emptyState.types.d.ts +13 -1
- package/dist/types/common/fab/components/fabBase/fabBase.d.ts +1 -1
- package/dist/types/common/fab/components/fabBase/fabBase.types.d.ts +3 -1
- package/dist/types/common/fab/fab.d.ts +1 -1
- package/dist/types/common/fab/fab.types.d.ts +6 -1
- package/dist/types/common/infiniteBlock/infiniteBlock.d.ts +1 -1
- package/dist/types/common/infiniteBlock/infiniteBlock.types.d.ts +2 -0
- package/dist/types/common/input/input.types.d.ts +13 -0
- package/dist/types/common/klipyPicker/klipyPicker.d.ts +1 -1
- package/dist/types/common/klipyPicker/klipyPicker.types.d.ts +7 -0
- package/dist/types/common/modal/modal.types.d.ts +7 -0
- package/dist/types/common/multiSelect/multiSelect.types.d.ts +13 -6
- package/dist/types/common/numberInput/numberInput.types.d.ts +15 -2
- package/dist/types/common/otpInput/otpInput.types.d.ts +9 -0
- package/dist/types/common/pagination/pagination.types.d.ts +15 -0
- package/dist/types/common/progressBar/progressBar.d.ts +1 -1
- package/dist/types/common/progressBar/progressBar.types.d.ts +6 -1
- package/dist/types/common/roomDrawer/roomDrawer.types.d.ts +6 -0
- package/dist/types/common/searchInput/searchInput.d.ts +1 -1
- package/dist/types/common/searchInput/searchInput.types.d.ts +13 -1
- package/dist/types/common/splitButton/splitButton.types.d.ts +7 -0
- package/dist/types/common/timer/timer.types.d.ts +7 -0
- package/dist/types/common/toast/toast.d.ts +4 -2
- package/dist/types/common/toast/toast.types.d.ts +11 -1
- package/dist/types/common/toast/toastProvider.d.ts +1 -1
- package/dist/types/common/tree/tree.types.d.ts +7 -2
- package/dist/types/common/virtualList/virtualList.types.d.ts +15 -6
- package/dist/types/common/virtualList/virtualListHeader.d.ts +3 -3
- package/docs/ActionButtons.md +7 -6
- package/docs/Alert.md +2 -0
- package/docs/Breadcrumb.md +2 -0
- package/docs/Card.md +2 -0
- package/docs/Carousel.md +2 -0
- package/docs/Chip.md +5 -1
- package/docs/ColorPicker.md +4 -0
- package/docs/ConfigProvider.md +23 -0
- package/docs/ConfirmModal.md +7 -5
- package/docs/DatePicker.md +6 -1
- package/docs/Drawer.md +2 -0
- package/docs/Dropdown.md +2 -0
- package/docs/EmptyState.md +4 -0
- package/docs/Fab.md +2 -0
- package/docs/FormValidatorGroup.md +1 -1
- package/docs/Input.md +2 -0
- package/docs/KlipyPicker.md +2 -0
- package/docs/Modal.md +2 -0
- package/docs/MultiSelect.md +7 -5
- package/docs/NumberInput.md +8 -2
- package/docs/OtpInput.md +2 -0
- package/docs/Pagination.md +2 -0
- package/docs/ProgressBar.md +2 -0
- package/docs/RoomDrawer.md +2 -0
- package/docs/SearchInput.md +4 -0
- package/docs/SplitButton.md +2 -0
- package/docs/Timer.md +2 -0
- package/docs/Toast.md +2 -0
- package/docs/Tree.md +3 -1
- package/docs/VirtualList.md +3 -2
- package/docs/Wizard.md +1 -2
- package/package.json +1 -1
package/docs/Modal.md
CHANGED
|
@@ -71,3 +71,5 @@ A sheet-presented Modal takes 90% of the screen height rather than the 70% a men
|
|
|
71
71
|
The panel also takes the full native `div` attribute set (`id`, `role`, `aria-*`, `data-*`, …). Pass `aria-label` when using `hideHeader`, since there is then no title to label the dialog with.
|
|
72
72
|
|
|
73
73
|
**Slots:** `container` `backdrop` `modal` `header` `title` `closeButton` `body`
|
|
74
|
+
|
|
75
|
+
**Labels:** `close` — the text this component renders of its own. Pass `labels` to override any of them, on the component or app-wide through `ConfigProvider`; they merge per key. Type: `ModalLabels`.
|
package/docs/MultiSelect.md
CHANGED
|
@@ -28,10 +28,10 @@ const [value, setValue] = useState<MultiSelectValue[]>([]);
|
|
|
28
28
|
<MultiSelect items={items} defaultValue={['apple']} onChange={(value) => console.log(value)} />
|
|
29
29
|
|
|
30
30
|
// Searchable, for a list too long to scan
|
|
31
|
-
<MultiSelect items={countries} searchable searchPlaceholder
|
|
31
|
+
<MultiSelect items={countries} searchable labels={{ searchPlaceholder: 'Filter countries…' }} />
|
|
32
32
|
|
|
33
33
|
// Tag entry: type a value that isn't in `items` and pick the "add" row
|
|
34
|
-
<MultiSelect items={commonTags} allowCustomValues
|
|
34
|
+
<MultiSelect items={commonTags} allowCustomValues labels={{ create: (value) => `Neu: ${value }}`} />
|
|
35
35
|
|
|
36
36
|
// Cap the selection — unselected options disable once the cap is reached
|
|
37
37
|
<MultiSelect items={items} maxSelected={3} />
|
|
@@ -72,9 +72,9 @@ import { Presentation } from '@ahrowe/ui';
|
|
|
72
72
|
| `placeholder` | `string` | Shown while nothing is selected. With a `label`, it fades in only after the label has finished floating clear |
|
|
73
73
|
| `searchable` | `boolean` | Show a search box in the panel (default `false`) |
|
|
74
74
|
| `allowCustomValues` | `boolean` | Let the user add a value not in `items`. Implies `searchable` |
|
|
75
|
-
| `
|
|
76
|
-
| `searchPlaceholder` | `string` | Placeholder for that box (default `'Search…'`) |
|
|
77
|
-
| `
|
|
75
|
+
| `labels.create` | `(value: string) => string` | Label for the add row (default `Add "…"`) |
|
|
76
|
+
| `labels.searchPlaceholder` | `string` | Placeholder for that box (default `'Search…'`) |
|
|
77
|
+
| `labels.empty` | `string` | Shown when nothing matches (default `'No matches'`) |
|
|
78
78
|
| `maxSelected` | `number` | Cap the selection; unselected options disable at the cap |
|
|
79
79
|
| `clearable` | `boolean` | Show the clear-all button (default `true`) |
|
|
80
80
|
| `disabled` | `boolean` | Dims the field and blocks interaction |
|
|
@@ -98,3 +98,5 @@ import { Presentation } from '@ahrowe/ui';
|
|
|
98
98
|
**Global defaults:** adopts `ConfigProvider`, e.g. `defaultProps={{ MultiSelect: { searchable: true } }}`. See [ConfigProvider.md](ConfigProvider.md).
|
|
99
99
|
|
|
100
100
|
**Slots:** `root` `label` `fieldset` `control` `values` `chip` `placeholder` `clearButton` `icon` `panel` `search` `options` `option` `optionCheck` `optionLabel` `empty`
|
|
101
|
+
|
|
102
|
+
**Labels:** `clearSelection` `create(value)` `searchPlaceholder` `empty` — the text this component renders of its own. Pass `labels` to override any of them, on the component or app-wide through `ConfigProvider`; they merge per key. Type: `MultiSelectLabels`.
|
package/docs/NumberInput.md
CHANGED
|
@@ -74,8 +74,8 @@ const priceValidator = new FormValidator<number | undefined>(undefined, [Validat
|
|
|
74
74
|
| `min` | `number` | Lower bound — see the note below |
|
|
75
75
|
| `max` | `number` | Upper bound — see the note below |
|
|
76
76
|
| `arrowsLayout` | `'auto' \| 'stacked' \| 'split'` | Stepper layout. Default: `'auto'` |
|
|
77
|
-
| `
|
|
78
|
-
| `
|
|
77
|
+
| `labels.increase` | `string` | Accessible name for the increase button. Default: `'Increase'` |
|
|
78
|
+
| `labels.decrease` | `string` | Accessible name for the decrease button. Default: `'Decrease'` |
|
|
79
79
|
|
|
80
80
|
**Steppers (`showArrows`):** two layouts, picked by `arrowsLayout`:
|
|
81
81
|
|
|
@@ -124,3 +124,9 @@ const qty = new FormValidator<number | undefined>(undefined, [inRange(10, 100)])
|
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
**Mobile keyboard layout:** shows the numeric on-screen keyboard automatically (`inputMode="numeric"` when `decimalScale={0}`, `"decimal"` otherwise, so a decimal separator key is available whenever fractional values are allowed). Pass `inputMode` directly to override.
|
|
127
|
+
|
|
128
|
+
**Labels:** `increase` `decrease` — the text this component renders of its own. Pass `labels` to override any of them, on the component or app-wide through `ConfigProvider`; keys merge individually. Type: `NumberInputLabels`.
|
|
129
|
+
|
|
130
|
+
**Slots:** `root` `input` `arrows` `increaseButton` `decreaseButton`
|
|
131
|
+
|
|
132
|
+
With `arrowsLayout='split'` the root is the group around the two buttons and the field; otherwise it is the field itself.
|
package/docs/OtpInput.md
CHANGED
|
@@ -91,6 +91,8 @@ const codeValidator = new FormValidator('', [Validators.required(), Validators.m
|
|
|
91
91
|
|
|
92
92
|
**Slots:** `root` `label` `inputs` `input` `separator`
|
|
93
93
|
|
|
94
|
+
**Labels:** `field` `digit(position, length)` — the text this component renders of its own. Pass `labels` to override any of them, on the component or app-wide through `ConfigProvider`; they merge per key. Type: `OtpInputLabels`.
|
|
95
|
+
|
|
94
96
|
## Sizing
|
|
95
97
|
|
|
96
98
|
The code boxes, the digit inside them, the gaps and the separator all scale with the theme's text, so the field stays in proportion with its label.
|
package/docs/Pagination.md
CHANGED
|
@@ -70,3 +70,5 @@ const [page, setPage] = useState(1);
|
|
|
70
70
|
**Global defaults:** adopts `ConfigProvider`, e.g. `defaultProps={{ Pagination: { showEdges: true } }}`. See [ConfigProvider.md](ConfigProvider.md).
|
|
71
71
|
|
|
72
72
|
**Slots:** `root` `item` `control` `ellipsis`
|
|
73
|
+
|
|
74
|
+
**Labels:** `goToPage(page)` `first` `previous` `next` `last` — the text this component renders of its own. Pass `labels` to override any of them, on the component or app-wide through `ConfigProvider`; they merge per key. Type: `PaginationLabels`.
|
package/docs/ProgressBar.md
CHANGED
package/docs/RoomDrawer.md
CHANGED
|
@@ -373,3 +373,5 @@ The previous `RoomDrawer` had no data contract at all: `RoomDrawerProps` was `{
|
|
|
373
373
|
- Removing a corner was a double-click, which was undiscoverable and impossible on touch. Select it and press `Delete` instead.
|
|
374
374
|
|
|
375
375
|
**Slots:** `root` `toolbar` `toolButton` `toolIcon` `viewControls` `viewButton` `zoomLabel` `canvasWrapper` `canvas` `grid` `rooms` `roomFill` `roomLabel` `walls` `wallBody` `openings` `opening` `overlay` `measureLine` `floorBar` `floorTab` `inspector` `inspectorLabel` `inspectorField` `hint`
|
|
376
|
+
|
|
377
|
+
**Labels:** every string the drawer's own chrome renders, including `tools`, `storeyHeightHint` and `sillHeightHint`. Type: `RoomDrawerLabels`.
|
package/docs/SearchInput.md
CHANGED
|
@@ -55,3 +55,7 @@ import { SearchInput } from '@ahrowe/ui';
|
|
|
55
55
|
| `showAmount` | `boolean` | Show the result count line (default `true`) |
|
|
56
56
|
| `width` | `number \| string` | Fixed width for the wrapper |
|
|
57
57
|
| `className` | `string` | Root wrapper class |
|
|
58
|
+
|
|
59
|
+
**Slots:** `root` `input` `resultCount`
|
|
60
|
+
|
|
61
|
+
**Labels:** `results(count)` — the line under the field (default `12 results`). Pass `labels` to override it, on the component or app-wide through `ConfigProvider`. Type: `SearchInputLabels`.
|
package/docs/SplitButton.md
CHANGED
|
@@ -79,3 +79,5 @@ import { ButtonStyleType } from '@ahrowe/ui';
|
|
|
79
79
|
**Global defaults:** adopts `ConfigProvider`, e.g. `defaultProps={{ SplitButton: { styleType: ButtonStyleType.Default } }}`. See [ConfigProvider.md](ConfigProvider.md).
|
|
80
80
|
|
|
81
81
|
**Slots:** `root` `primaryButton` `triggerButton` `menu` `menuItem`
|
|
82
|
+
|
|
83
|
+
**Labels:** `moreActions` — the text this component renders of its own. Pass `labels` to override any of them, on the component or app-wide through `ConfigProvider`; they merge per key. Type: `SplitButtonLabels`.
|
package/docs/Timer.md
CHANGED
|
@@ -140,6 +140,8 @@ function Example() {
|
|
|
140
140
|
|
|
141
141
|
**Slots:** `root` `ringWrapper` `ringSvg` `ringTrack` `ringProgress` `ripples` `ripple` `display` `time` `label` `controls` `addButton` `removeButton` `pauseButton` `cancelButton`
|
|
142
142
|
|
|
143
|
+
**Labels:** `cancel` — the text this component renders of its own. Pass `labels` to override any of them, on the component or app-wide through `ConfigProvider`; they merge per key. Type: `TimerLabels`.
|
|
144
|
+
|
|
143
145
|
## Sizing
|
|
144
146
|
|
|
145
147
|
The ring follows the theme's text size, because the readout inside it does: `--timer-size` falls back to `10em`, i.e. 160px at a 16px base, and the gaps and padding around it are `em` too. The `size` prop still wins where it is given.
|
package/docs/Toast.md
CHANGED
|
@@ -75,6 +75,8 @@ showToast('Done', {
|
|
|
75
75
|
|
|
76
76
|
**Slots:** `root` `icon` `content` `closeButton` `progressBar`
|
|
77
77
|
|
|
78
|
+
**Labels:** `close` — the dismiss button's screen-reader name. Set it on `ToastProvider` for the whole app (`labels={{ close: 'Schließen' }}`), or per toast through the `showToast` options. Type: `ToastLabels`.
|
|
79
|
+
|
|
78
80
|
## Sizing
|
|
79
81
|
|
|
80
82
|
A toast is sized and spaced by its font: the padding, the gap, the body copy, the icon, the close button, the variant accent bar and the progress bar all scale with the theme's text, as does the gap between stacked toasts.
|
package/docs/Tree.md
CHANGED
|
@@ -62,7 +62,7 @@ import { faWarehouse } from '@fortawesome/free-solid-svg-icons';
|
|
|
62
62
|
| `toggleIcon` | `IconDefinition \| ReactElement` | Toggle icon, rotated 90° when open (default a right chevron) |
|
|
63
63
|
| `height` | `number \| string` | Windows the rows through `VirtualList` at this viewport height |
|
|
64
64
|
| `estimatedRowHeight` | `number` | Row height for the windowed renderer (default `32`) |
|
|
65
|
-
| `
|
|
65
|
+
| `labels.empty` | `string` | Shown when `nodes` is empty (default `'Nothing here'`) |
|
|
66
66
|
| `disabled` | `boolean` | Dims the tree and blocks interaction |
|
|
67
67
|
| `aria-label` | `string` | Accessible name for the tree (default `'Tree'`) |
|
|
68
68
|
|
|
@@ -93,3 +93,5 @@ Two things change in that mode. Rows must be a uniform height, so size them with
|
|
|
93
93
|
**Global defaults:** adopts `ConfigProvider`, e.g. `defaultProps={{ Tree: { indent: 30 } }}`. See [ConfigProvider.md](ConfigProvider.md).
|
|
94
94
|
|
|
95
95
|
**Slots:** `root` `node` `toggle` `icon` `label` `empty`
|
|
96
|
+
|
|
97
|
+
**Labels:** `empty` — the text this component renders of its own. Pass `labels` to override any of them, on the component or app-wide through `ConfigProvider`; keys merge individually. Type: `TreeLabels`.
|
package/docs/VirtualList.md
CHANGED
|
@@ -144,7 +144,6 @@ const columns: VirtualListColumn<User>[] = [
|
|
|
144
144
|
| `resizableColumns` | `boolean` | Let the user drag column edges to resize (see **Column resizing**) |
|
|
145
145
|
| `columnWidths` | `Record<string, number>` | Controlled column widths in px, keyed by column key |
|
|
146
146
|
| `onColumnWidthsChange` | `(widths) => void` | Called with the full width map after every resize or auto-fit |
|
|
147
|
-
| `resetColumnWidthsLabel` | `ReactNode` | Text of the gear-menu reset entry (default `'Reset column widths'`) |
|
|
148
147
|
| `showColumnToggle` | `boolean` | Show gear button to show/hide columns (default `true` when columns present) |
|
|
149
148
|
| `visibleColumnKeys` | `string[]` | Controlled visible column keys |
|
|
150
149
|
| `onVisibleColumnsChange` | `(keys) => void` | Column visibility change callback |
|
|
@@ -199,7 +198,7 @@ const [sort, setSort] = useState<VirtualListSort | null>(null);
|
|
|
199
198
|
- **Keyboard**: `Alt` plus the arrow keys on the focused header cell, 10px a press (`Alt+Shift` for 1px). `Alt+Home` goes to the column's minimum, `Alt+End` auto-fits. The strip itself is a mouse affordance and is not a tab stop.
|
|
200
199
|
- **Undo it**: once anything has been resized, the gear menu grows a **Reset column widths** entry, and the same thing is on the imperative handle as `resetColumnWidths()`. Both also clear the saved widths.
|
|
201
200
|
|
|
202
|
-
|
|
201
|
+
Its text, like every other string the table renders of its own, is set through `labels` (see below): `labels={{ resetColumnWidths: 'Spaltenbreiten zurücksetzen' }}`.
|
|
203
202
|
|
|
204
203
|
```tsx
|
|
205
204
|
<VirtualList
|
|
@@ -366,4 +365,6 @@ This needs the list to have a **bounded height** (the default `height="100%"` in
|
|
|
366
365
|
|
|
367
366
|
**Slots:** `root` `header` `headerCell` `headerSort` `sortIcon` `resizeHandle` `headerToggle` `togglePopover` `toggleItem` `toggleReset` `body` `row` `cell` `selectCell` `activeRow` `loadingIndicator` `dropIndicator` `columnChip`
|
|
368
367
|
|
|
368
|
+
**Labels:** `selectRow` `selectAllRows` `toggleColumns` `columnsHidden(count)` `resetColumnWidths` — the text this component renders of its own. Pass `labels` to override any of them, on the component or app-wide through `ConfigProvider`; they merge per key. Type: `VirtualListLabels`.
|
|
369
|
+
|
|
369
370
|
**In-row popovers:** Rows support inline popover content that overflows the row's bottom edge — e.g. a `Dropdown`, `InputDropdown`, `Tooltip`, or `FloatingMenu` whose list opens below its trigger. All four render their popover through a `BodyEnd` portal and track their trigger's position directly, so they always escape row/cell clipping and paint above the rows below, regardless of focus — no special CSS is needed on the row or cell for this. Cells still clip their own content by default (ellipsis / neighbour-spill guard); that's unaffected. This works in both list mode (`renderRow`) and table mode (`columns`). Stop the row's click handler from firing when interacting with the control (`onClick={(e) => e.stopPropagation()}` on the cell) if the row is also selectable.
|
package/docs/Wizard.md
CHANGED
|
@@ -26,8 +26,7 @@ const [step, setStep] = useState(0);
|
|
|
26
26
|
/>
|
|
27
27
|
|
|
28
28
|
<ActionButtons
|
|
29
|
-
|
|
30
|
-
cancelLabel={step > 0 ? 'Back' : 'Cancel'}
|
|
29
|
+
labels={{ submit: step < STEPS.length - 1 ? 'Next' : 'Finish', cancel: step > 0 ? 'Back' : 'Cancel' }}
|
|
31
30
|
onSubmit={() => step < STEPS.length - 1 ? setStep(step + 1) : handleFinish()}
|
|
32
31
|
onClose={() => step > 0 ? setStep(step - 1) : handleCancel()}
|
|
33
32
|
/>
|