@ahrowe/ui 0.27.0 → 0.29.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/accordion/accordion.mjs +1 -1
- package/dist/esm/common/accordion/accordion.mjs.map +1 -1
- package/dist/esm/common/accordion/accordion.module.mjs +1 -1
- package/dist/esm/common/accordion/accordion.module.mjs.map +1 -1
- package/dist/esm/common/accordion/accordion.plain.module.mjs +1 -1
- package/dist/esm/common/accordion/accordion.plain.module.mjs.map +1 -1
- package/dist/esm/common/accordion/accordion.primary.module.mjs +1 -1
- package/dist/esm/common/accordion/accordion.primary.module.mjs.map +1 -1
- package/dist/esm/common/actionButtons/actionButtons.mjs.map +1 -1
- package/dist/esm/common/actionButtons/actionButtons.module.mjs +1 -1
- package/dist/esm/common/actionButtons/actionButtons.module.mjs.map +1 -1
- package/dist/esm/common/actionIcon/actionIcon.mjs.map +1 -1
- package/dist/esm/common/actionIcon/actionIcon.module.mjs +1 -1
- package/dist/esm/common/actionIcon/actionIcon.module.mjs.map +1 -1
- package/dist/esm/common/alert/alert.mjs.map +1 -1
- package/dist/esm/common/alert/alert.module.mjs +1 -1
- package/dist/esm/common/animatedIcon/animatedIcon.mjs.map +1 -1
- package/dist/esm/common/animatedIcon/animatedIcon.module.mjs +1 -1
- package/dist/esm/common/animatedIcon/animatedIcon.module.mjs.map +1 -1
- package/dist/esm/common/animatedLogo/animatedLogo.mjs.map +1 -1
- package/dist/esm/common/animatedLogo/animatedLogo.module.mjs +1 -1
- package/dist/esm/common/animatedText/animatedText.mjs +1 -1
- package/dist/esm/common/animatedText/animatedText.mjs.map +1 -1
- package/dist/esm/common/animatedText/animatedText.module.mjs +1 -1
- package/dist/esm/common/animatedText/animatedText.module.mjs.map +1 -1
- package/dist/esm/common/avatar/avatar.mjs.map +1 -1
- package/dist/esm/common/avatar/avatar.module.mjs +1 -1
- package/dist/esm/common/avatar/avatar.module.mjs.map +1 -1
- package/dist/esm/common/avatar/avatarGroup.mjs.map +1 -1
- package/dist/esm/common/badge/badge.mjs.map +1 -1
- package/dist/esm/common/badge/badge.module.mjs +1 -1
- package/dist/esm/common/badge/badge.module.mjs.map +1 -1
- package/dist/esm/common/breadcrumb/breadcrumb.mjs.map +1 -1
- package/dist/esm/common/breadcrumb/breadcrumb.module.mjs +1 -1
- package/dist/esm/common/button/button.mjs.map +1 -1
- package/dist/esm/common/button/button.module.mjs +1 -1
- package/dist/esm/common/button/button.module.mjs.map +1 -1
- package/dist/esm/common/buttonGroup/buttonGroup.mjs.map +1 -1
- package/dist/esm/common/buttonGroup/buttonGroup.module.mjs +1 -1
- package/dist/esm/common/buttonGroup/buttonGroup.module.mjs.map +1 -1
- package/dist/esm/common/card/Card.mjs.map +1 -1
- package/dist/esm/common/card/CardActions.mjs.map +1 -1
- package/dist/esm/common/card/CardHeader.mjs.map +1 -1
- package/dist/esm/common/card/card.module.mjs +1 -1
- package/dist/esm/common/card/card.module.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/carousel/carousel.module.mjs +1 -1
- package/dist/esm/common/carousel/carousel.module.mjs.map +1 -1
- package/dist/esm/common/checkbox/checkbox.mjs.map +1 -1
- package/dist/esm/common/checkbox/checkbox.module.mjs +1 -1
- package/dist/esm/common/checkbox/checkbox.module.mjs.map +1 -1
- package/dist/esm/common/chip/chip.mjs.map +1 -1
- package/dist/esm/common/chip/chip.module.mjs +1 -1
- package/dist/esm/common/chip/chip.module.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/colorPicker/colorPicker.module.mjs +1 -1
- package/dist/esm/common/colorPicker/colorPicker.module.mjs.map +1 -1
- package/dist/esm/common/configProvider/configProvider.mjs.map +1 -1
- package/dist/esm/common/configProvider/useComponentDefaults.mjs.map +1 -1
- 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.map +1 -1
- package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.module.mjs +1 -1
- package/dist/esm/common/datePicker/components/datePickerMonth/datePickerMonth.module.mjs.map +1 -1
- package/dist/esm/common/datePicker/dateFunctions.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/datePicker/datePicker.module.mjs +1 -1
- package/dist/esm/common/divider/divider.mjs.map +1 -1
- package/dist/esm/common/divider/divider.module.mjs +1 -1
- package/dist/esm/common/drawer/drawer.mjs.map +1 -1
- package/dist/esm/common/drawer/drawer.module.mjs +1 -1
- package/dist/esm/common/drawer/drawer.module.mjs.map +1 -1
- package/dist/esm/common/dropZone/dropZone.mjs +1 -1
- package/dist/esm/common/dropZone/dropZone.mjs.map +1 -1
- package/dist/esm/common/dropZone/dropZone.module.mjs +1 -1
- package/dist/esm/common/dropZone/dropZone.module.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/dropdown/dropdown.module.mjs +1 -1
- package/dist/esm/common/dropdown/dropdown.module.mjs.map +1 -1
- package/dist/esm/common/emptyState/emptyState.mjs.map +1 -1
- package/dist/esm/common/emptyState/emptyState.module.mjs +1 -1
- package/dist/esm/common/errorBoundary/errorBoundary.mjs.map +1 -1
- package/dist/esm/common/errorBoundary/errorBoundary.module.mjs +1 -1
- package/dist/esm/common/errorBoundary/errorBoundary.module.mjs.map +1 -1
- package/dist/esm/common/fab/components/fabBase/fabBase.mjs.map +1 -1
- package/dist/esm/common/fab/components/fabBase/fabBase.module.mjs +1 -1
- package/dist/esm/common/fab/fab.mjs.map +1 -1
- package/dist/esm/common/fab/fab.module.mjs +1 -1
- package/dist/esm/common/fab/fab.module.mjs.map +1 -1
- package/dist/esm/common/flip/flip.mjs +1 -1
- package/dist/esm/common/flip/flip.mjs.map +1 -1
- package/dist/esm/common/flip/flip.module.mjs +1 -1
- package/dist/esm/common/floatingMenu/floatingMenu.mjs +1 -1
- package/dist/esm/common/floatingMenu/floatingMenu.mjs.map +1 -1
- package/dist/esm/common/floatingMenu/floatingMenu.module.mjs +1 -1
- package/dist/esm/common/floatingMenu/floatingMenu.module.mjs.map +1 -1
- package/dist/esm/common/floatingMenu/floatingMenu.types.mjs.map +1 -1
- package/dist/esm/common/floatingMenu/useFloatingPosition.mjs +1 -1
- package/dist/esm/common/floatingMenu/useFloatingPosition.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.faces.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.geometry.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.graph.mjs +1 -1
- package/dist/esm/common/floorPlan/floorPlan.graph.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.hit.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.json.mjs +1 -1
- package/dist/esm/common/floorPlan/floorPlan.json.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.mesh.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.path.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.plan.mjs +1 -1
- package/dist/esm/common/floorPlan/floorPlan.plan.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.rooms.mjs +1 -1
- package/dist/esm/common/floorPlan/floorPlan.rooms.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.snap.mjs.map +1 -1
- package/dist/esm/common/floorPlan/floorPlan.triangulate.mjs +1 -1
- package/dist/esm/common/floorPlan/floorPlan.triangulate.mjs.map +1 -1
- package/dist/esm/common/floorPlan/legacySvg.mjs.map +1 -1
- package/dist/esm/common/hooks/useAnchorTracking.mjs +2 -0
- package/dist/esm/common/hooks/useAnchorTracking.mjs.map +1 -0
- package/dist/esm/common/hooks/useCoarsePointer.mjs +1 -1
- package/dist/esm/common/hooks/useFocusBoundary.mjs.map +1 -1
- package/dist/esm/common/hooks/useMediaQuery.mjs +1 -1
- package/dist/esm/common/hooks/useMediaQuery.mjs.map +1 -1
- package/dist/esm/common/hooks/useOverlay.mjs.map +1 -1
- package/dist/esm/common/hooks/useSheet.mjs +1 -1
- package/dist/esm/common/hooks/useSheet.mjs.map +1 -1
- package/dist/esm/common/hooks/useSwipeDismiss.mjs +1 -1
- package/dist/esm/common/hooks/useSwipeDismiss.mjs.map +1 -1
- package/dist/esm/common/iconPicker/iconPicker.mjs +1 -1
- package/dist/esm/common/iconPicker/iconPicker.mjs.map +1 -1
- package/dist/esm/common/iconPicker/iconPicker.module.mjs +1 -1
- package/dist/esm/common/idleManager/idleManager.mjs +1 -1
- package/dist/esm/common/idleManager/idleManager.mjs.map +1 -1
- package/dist/esm/common/infiniteBlock/infiniteBlock.mjs.map +1 -1
- package/dist/esm/common/infiniteBlock/infiniteBlock.module.mjs +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.module.mjs +1 -1
- package/dist/esm/common/input/input.module.mjs.map +1 -1
- package/dist/esm/common/input/input.types.mjs.map +1 -1
- package/dist/esm/common/inputDropdown/inputDropdown.mjs +1 -1
- package/dist/esm/common/inputDropdown/inputDropdown.mjs.map +1 -1
- package/dist/esm/common/inputDropdown/inputDropdown.module.mjs +1 -1
- package/dist/esm/common/inputDropdown/inputDropdown.module.mjs.map +1 -1
- package/dist/esm/common/interactableDiv/interactableDiv.mjs.map +1 -1
- package/dist/esm/common/interactableDiv/interactableDiv.module.mjs +1 -1
- package/dist/esm/common/kanbanBoard/KanbanBoard.mjs +1 -1
- package/dist/esm/common/kanbanBoard/KanbanBoard.mjs.map +1 -1
- package/dist/esm/common/kanbanBoard/KanbanColumn.mjs +1 -1
- package/dist/esm/common/kanbanBoard/KanbanColumn.mjs.map +1 -1
- package/dist/esm/common/kanbanBoard/KanbanItem.mjs.map +1 -1
- package/dist/esm/common/kanbanBoard/kanbanBoard.module.mjs +1 -1
- package/dist/esm/common/kanbanBoard/kanbanBoard.module.mjs.map +1 -1
- package/dist/esm/common/kanbanBoard/kanbanBoard.utils.mjs +1 -1
- package/dist/esm/common/kanbanBoard/kanbanBoard.utils.mjs.map +1 -1
- package/dist/esm/common/klipyPicker/components/gifPreview/gifPreview.mjs.map +1 -1
- package/dist/esm/common/klipyPicker/components/gifPreview/gifPreview.module.mjs +1 -1
- package/dist/esm/common/klipyPicker/components/gifPreview/gifPreview.module.mjs.map +1 -1
- package/dist/esm/common/klipyPicker/components/gifView/gifView.mjs +1 -1
- package/dist/esm/common/klipyPicker/components/gifView/gifView.mjs.map +1 -1
- package/dist/esm/common/klipyPicker/components/gifView/gifView.module.mjs +1 -1
- package/dist/esm/common/klipyPicker/components/gifView/gifView.module.mjs.map +1 -1
- package/dist/esm/common/klipyPicker/klipyPicker.mjs.map +1 -1
- package/dist/esm/common/klipyPicker/klipyPicker.module.mjs +1 -1
- package/dist/esm/common/loading/iconLoading/iconLoading.mjs.map +1 -1
- package/dist/esm/common/loading/iconLoading/iconLoading.module.mjs +1 -1
- package/dist/esm/common/loading/iconLoading/iconLoading.module.mjs.map +1 -1
- package/dist/esm/common/loading/spinnerLoading/spinnerLoading.mjs.map +1 -1
- package/dist/esm/common/loading/spinnerLoading/spinnerLoading.module.mjs +1 -1
- package/dist/esm/common/modal/modal.mjs.map +1 -1
- package/dist/esm/common/modal/modal.module.mjs +1 -1
- package/dist/esm/common/modal/modal.module.mjs.map +1 -1
- package/dist/esm/common/multiSelect/multiSelect.mjs +2 -0
- package/dist/esm/common/multiSelect/multiSelect.mjs.map +1 -0
- package/dist/esm/common/multiSelect/multiSelect.module.mjs +2 -0
- package/dist/esm/common/multiSelect/multiSelect.module.mjs.map +1 -0
- package/dist/esm/common/numberInput/numberInput.mjs +1 -1
- package/dist/esm/common/numberInput/numberInput.mjs.map +1 -1
- package/dist/esm/common/numberInput/numberInput.module.mjs +1 -1
- package/dist/esm/common/numberInput/numberInput.module.mjs.map +1 -1
- package/dist/esm/common/numberInput/useStepRepeat.mjs +1 -1
- package/dist/esm/common/numberInput/useStepRepeat.mjs.map +1 -1
- package/dist/esm/common/optionPicker/optionPicker.mjs +1 -1
- package/dist/esm/common/optionPicker/optionPicker.mjs.map +1 -1
- package/dist/esm/common/optionPicker/optionPicker.module.mjs +1 -1
- package/dist/esm/common/optionPicker/optionPicker.module.mjs.map +1 -1
- package/dist/esm/common/otpInput/otpInput.mjs.map +1 -1
- package/dist/esm/common/otpInput/otpInput.module.mjs +1 -1
- package/dist/esm/common/otpInput/otpInput.module.mjs.map +1 -1
- package/dist/esm/common/overscroll/overscroll.mjs +1 -1
- package/dist/esm/common/overscroll/overscroll.mjs.map +1 -1
- package/dist/esm/common/overscroll/overscroll.module.mjs +1 -1
- package/dist/esm/common/pagination/pagination.mjs +2 -0
- package/dist/esm/common/pagination/pagination.mjs.map +1 -0
- package/dist/esm/common/pagination/pagination.module.mjs +2 -0
- package/dist/esm/common/pagination/pagination.module.mjs.map +1 -0
- package/dist/esm/common/planCanvas/planCanvas.mjs +1 -1
- package/dist/esm/common/planCanvas/planCanvas.mjs.map +1 -1
- package/dist/esm/common/planCanvas/planCanvas.module.mjs +1 -1
- package/dist/esm/common/planCanvas/planCanvas.module.mjs.map +1 -1
- package/dist/esm/common/popover/popover.mjs +1 -1
- package/dist/esm/common/popover/popover.mjs.map +1 -1
- package/dist/esm/common/popover/popover.module.mjs +1 -1
- package/dist/esm/common/popover/popover.module.mjs.map +1 -1
- package/dist/esm/common/popover/usePopoverPosition.mjs +1 -1
- package/dist/esm/common/popover/usePopoverPosition.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/progressBar/progressBar.module.mjs +1 -1
- package/dist/esm/common/progressBar/progressBar.module.mjs.map +1 -1
- package/dist/esm/common/radioGroup/radioGroup.mjs +1 -1
- package/dist/esm/common/radioGroup/radioGroup.mjs.map +1 -1
- package/dist/esm/common/radioGroup/radioGroup.module.mjs +1 -1
- package/dist/esm/common/radioGroup/radioGroup.module.mjs.map +1 -1
- package/dist/esm/common/rating/rating.mjs +1 -1
- package/dist/esm/common/rating/rating.mjs.map +1 -1
- package/dist/esm/common/rating/rating.module.mjs +1 -1
- package/dist/esm/common/revealLens/revealLens.mjs.map +1 -1
- package/dist/esm/common/revealLens/revealLens.module.mjs +1 -1
- package/dist/esm/common/revealLens/revealLens.module.mjs.map +1 -1
- package/dist/esm/common/ripple/ripple.mjs.map +1 -1
- package/dist/esm/common/ripple/ripple.module.mjs +1 -1
- package/dist/esm/common/ripple/ripple.module.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/roomDrawer/roomDrawer.module.mjs +1 -1
- package/dist/esm/common/roomDrawer/roomDrawer.module.mjs.map +1 -1
- package/dist/esm/common/roomDrawer/usePlanHistory.mjs.map +1 -1
- package/dist/esm/common/roomViewer/roomViewer.mjs +1 -1
- package/dist/esm/common/roomViewer/roomViewer.mjs.map +1 -1
- package/dist/esm/common/roomViewer/roomViewer.module.mjs +1 -1
- package/dist/esm/common/scrollbarProvider/scrollbarProvider.mjs.map +1 -1
- package/dist/esm/common/scrollbarProvider/scrollbarProvider.module.mjs +1 -1
- package/dist/esm/common/scrollbarProvider/scrollbarProvider.module.mjs.map +1 -1
- package/dist/esm/common/searchInput/searchInput.mjs.map +1 -1
- package/dist/esm/common/searchInput/searchInput.module.mjs +1 -1
- package/dist/esm/common/sectionHeader/sectionHeader.mjs.map +1 -1
- package/dist/esm/common/sectionHeader/sectionHeader.module.mjs +1 -1
- package/dist/esm/common/sectionHeader/sectionHeader.module.mjs.map +1 -1
- package/dist/esm/common/skeleton/skeleton.mjs.map +1 -1
- package/dist/esm/common/skeleton/skeleton.module.mjs +1 -1
- package/dist/esm/common/slider/slider.mjs +1 -1
- package/dist/esm/common/slider/slider.mjs.map +1 -1
- package/dist/esm/common/slider/slider.module.mjs +1 -1
- package/dist/esm/common/slider/slider.module.mjs.map +1 -1
- package/dist/esm/common/splitButton/splitButton.mjs.map +1 -1
- package/dist/esm/common/splitButton/splitButton.module.mjs +1 -1
- package/dist/esm/common/stepper/stepper.mjs.map +1 -1
- package/dist/esm/common/stepper/stepper.module.mjs +1 -1
- package/dist/esm/common/stepper/stepper.module.mjs.map +1 -1
- package/dist/esm/common/sticky/sticky.mjs.map +1 -1
- package/dist/esm/common/sticky/sticky.module.mjs +1 -1
- package/dist/esm/common/sticky/stickyStack.mjs.map +1 -1
- package/dist/esm/common/styles/sheet.module.mjs +1 -1
- package/dist/esm/common/styles/sheet.module.mjs.map +1 -1
- package/dist/esm/common/switch/switch.mjs.map +1 -1
- package/dist/esm/common/switch/switch.module.mjs +1 -1
- package/dist/esm/common/tabHeader/tabHeader.mjs.map +1 -1
- package/dist/esm/common/tabHeader/tabHeader.module.mjs +1 -1
- package/dist/esm/common/tabHeader/tabHeader.module.mjs.map +1 -1
- package/dist/esm/common/themeProvider/defaultTheme.mjs.map +1 -1
- package/dist/esm/common/themeProvider/theme.module.mjs +1 -1
- package/dist/esm/common/themeProvider/themeProvider.mjs +1 -1
- package/dist/esm/common/themeProvider/themeProvider.mjs.map +1 -1
- package/dist/esm/common/themeProvider/useTheme.mjs.map +1 -1
- package/dist/esm/common/tilt/tilt.mjs.map +1 -1
- package/dist/esm/common/tilt/tilt.module.mjs +1 -1
- package/dist/esm/common/tiltGroup/tiltGroup.mjs.map +1 -1
- package/dist/esm/common/timeInput/components/clockDial/clockDial.mjs +1 -1
- package/dist/esm/common/timeInput/components/clockDial/clockDial.mjs.map +1 -1
- package/dist/esm/common/timeInput/components/clockDial/clockDial.module.mjs +1 -1
- package/dist/esm/common/timeInput/components/clockDial/clockDial.module.mjs.map +1 -1
- package/dist/esm/common/timeInput/timeFunctions.mjs +1 -1
- package/dist/esm/common/timeInput/timeFunctions.mjs.map +1 -1
- package/dist/esm/common/timeInput/timeInput.mjs +1 -1
- package/dist/esm/common/timeInput/timeInput.mjs.map +1 -1
- package/dist/esm/common/timeInput/timeInput.module.mjs +1 -1
- package/dist/esm/common/timeInput/timeInput.module.mjs.map +1 -1
- package/dist/esm/common/timeline/timeline.mjs.map +1 -1
- package/dist/esm/common/timeline/timeline.module.mjs +1 -1
- package/dist/esm/common/timeline/timeline.module.mjs.map +1 -1
- package/dist/esm/common/timer/timer.chime.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/timer/timer.module.mjs +1 -1
- package/dist/esm/common/timer/timer.module.mjs.map +1 -1
- package/dist/esm/common/toast/toast.mjs.map +1 -1
- package/dist/esm/common/toast/toast.module.mjs +1 -1
- package/dist/esm/common/toast/toast.module.mjs.map +1 -1
- package/dist/esm/common/toast/toastProvider.mjs.map +1 -1
- package/dist/esm/common/tooltip/tooltip.mjs.map +1 -1
- package/dist/esm/common/tooltip/tooltip.module.mjs +1 -1
- package/dist/esm/common/tooltip/tooltip.module.mjs.map +1 -1
- package/dist/esm/common/tree/flattenTree.mjs +2 -0
- package/dist/esm/common/tree/flattenTree.mjs.map +1 -0
- package/dist/esm/common/tree/tree.mjs +2 -0
- package/dist/esm/common/tree/tree.mjs.map +1 -0
- package/dist/esm/common/tree/tree.module.mjs +2 -0
- package/dist/esm/common/tree/tree.module.mjs.map +1 -0
- package/dist/esm/common/utils/renderIcon.mjs +1 -1
- package/dist/esm/common/utils/renderIcon.mjs.map +1 -1
- package/dist/esm/common/virtualList/useColumns.mjs +1 -1
- package/dist/esm/common/virtualList/useColumns.mjs.map +1 -1
- package/dist/esm/common/virtualList/useRowDrag.mjs +1 -1
- package/dist/esm/common/virtualList/useRowDrag.mjs.map +1 -1
- package/dist/esm/common/virtualList/useSelection.mjs.map +1 -1
- package/dist/esm/common/virtualList/useVirtualWindow.mjs +1 -1
- package/dist/esm/common/virtualList/useVirtualWindow.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/virtualList.module.mjs +1 -1
- package/dist/esm/common/virtualList/virtualList.module.mjs.map +1 -1
- package/dist/esm/common/virtualList/virtualList.utils.mjs.map +1 -1
- package/dist/esm/common/virtualList/virtualRow.mjs +1 -1
- package/dist/esm/common/virtualList/virtualRow.mjs.map +1 -1
- package/dist/esm/common/wizard/wizard.mjs +1 -1
- package/dist/esm/common/wizard/wizard.mjs.map +1 -1
- package/dist/esm/common/wizard/wizard.module.mjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/services/formValidation/FormValidatorGroupWithForm.mjs.map +1 -1
- package/dist/esm/services/formValidation/index.mjs +1 -1
- package/dist/esm/services/formValidation/useFormValidatorGroup.mjs.map +1 -1
- package/dist/esm/services/formValidation/validatableComponent.mjs.map +1 -1
- package/dist/esm/services/klipy.mjs.map +1 -1
- package/dist/esm/services/localization.mjs.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/{package/common → common}/actionButtons/actionButtons.d.ts +1 -1
- package/dist/types/{package/common → common}/animatedIcon/animatedIcon.d.ts +1 -1
- package/dist/types/common/card/Card.d.ts +4 -0
- package/dist/types/{package/common → common}/card/CardActions.d.ts +2 -1
- package/dist/types/common/card/CardContent.d.ts +4 -0
- package/dist/types/{package/common → common}/card/CardHeader.d.ts +2 -1
- package/dist/types/common/card/CardMedia.d.ts +4 -0
- package/dist/types/common/carousel/carousel.d.ts +4 -0
- package/dist/types/common/chip/chip.d.ts +4 -0
- package/dist/types/{package/common → common}/configProvider/configProvider.d.ts +1 -1
- package/dist/types/{package/common → common}/configProvider/configProvider.types.d.ts +6 -0
- package/dist/types/{package/common → common}/datePicker/components/datePickerMonth/datePickerMonth.d.ts +1 -1
- package/dist/types/{package/common → common}/datePicker/datePicker.d.ts +1 -1
- package/dist/types/{package/common → common}/drawer/drawer.d.ts +1 -1
- package/dist/types/{package/common → common}/dropZone/dropZone.d.ts +2 -1
- package/dist/types/common/dropdown/dropdown.d.ts +4 -0
- package/dist/types/{package/common → common}/fab/components/fabBase/fabBase.d.ts +1 -1
- package/dist/types/{package/common → common}/fab/fab.d.ts +1 -1
- package/dist/types/{package/common → common}/floatingMenu/floatingMenu.d.ts +1 -1
- package/dist/types/{package/common → common}/floatingMenu/useFloatingPosition.d.ts +5 -7
- package/dist/types/common/hooks/useAnchorTracking.d.ts +40 -0
- package/dist/types/{package/common → common}/hooks/useOverlay.d.ts +1 -1
- package/dist/types/{package/common → common}/iconPicker/iconPicker.d.ts +2 -1
- package/dist/types/{package/common → common}/idleManager/idleManager.d.ts +1 -1
- package/dist/types/{package/common → common}/infiniteBlock/infiniteBlock.d.ts +2 -1
- package/dist/types/common/input/input.d.ts +4 -0
- package/dist/types/{package/common → common}/inputDropdown/inputDropdown.d.ts +2 -1
- package/dist/types/{package/common → common}/inputDropdown/inputDropdown.types.d.ts +6 -0
- package/dist/types/{package/common → common}/kanbanBoard/KanbanBoard.d.ts +1 -1
- package/dist/types/{package/common → common}/kanbanBoard/KanbanColumn.d.ts +1 -1
- package/dist/types/{package/common → common}/kanbanBoard/KanbanItem.d.ts +1 -1
- package/dist/types/{package/common → common}/loading/iconLoading/iconLoading.d.ts +2 -1
- package/dist/types/common/modal/modal.d.ts +3 -0
- package/dist/types/common/multiSelect/index.d.ts +2 -0
- package/dist/types/common/multiSelect/multiSelect.d.ts +4 -0
- package/dist/types/common/multiSelect/multiSelect.types.d.ts +62 -0
- package/dist/types/{package/common → common}/overscroll/overscroll.d.ts +1 -1
- package/dist/types/common/pagination/index.d.ts +2 -0
- package/dist/types/common/pagination/pagination.d.ts +4 -0
- package/dist/types/common/pagination/pagination.types.d.ts +30 -0
- package/dist/types/common/popover/popover.d.ts +3 -0
- package/dist/types/{package/common → common}/popover/usePopoverPosition.d.ts +4 -2
- package/dist/types/{package/common → common}/scrollbarProvider/scrollbarProvider.d.ts +1 -1
- package/dist/types/{package/common → common}/sheetBackdrop/sheetBackdrop.d.ts +1 -1
- package/dist/types/common/slider/slider.d.ts +3 -0
- package/dist/types/{package/common → common}/slider/slider.types.d.ts +35 -10
- package/dist/types/{package/common → common}/splitButton/splitButton.d.ts +1 -1
- package/dist/types/{package/common → common}/stepper/stepper.d.ts +2 -1
- package/dist/types/{package/common → common}/sticky/sticky.d.ts +2 -1
- package/dist/types/{package/common → common}/tabHeader/tabHeader.d.ts +2 -1
- package/dist/types/common/textarea/textarea.d.ts +3 -0
- package/dist/types/{package/common → common}/themeProvider/themeProvider.d.ts +1 -1
- package/dist/types/{package/common → common}/timeInput/components/clockDial/clockDial.d.ts +2 -1
- package/dist/types/{package/common → common}/timeInput/timeInput.d.ts +2 -1
- package/dist/types/{package/common → common}/timeline/timeline.d.ts +2 -1
- package/dist/types/{package/common → common}/toast/index.d.ts +1 -1
- package/dist/types/{package/common → common}/toast/toast.d.ts +2 -1
- package/dist/types/{package/common → common}/toast/toastProvider.d.ts +2 -2
- package/dist/types/{package/common → common}/tooltip/tooltip.d.ts +2 -1
- package/dist/types/common/tree/flattenTree.d.ts +3 -0
- package/dist/types/common/tree/index.d.ts +3 -0
- package/dist/types/common/tree/tree.d.ts +4 -0
- package/dist/types/common/tree/tree.types.d.ts +62 -0
- package/dist/types/{package/common → common}/virtualList/virtualList.types.d.ts +8 -0
- package/dist/types/{package/common → common}/virtualList/virtualRow.d.ts +2 -2
- package/dist/types/{package/common → common}/wizard/wizard.d.ts +2 -1
- package/dist/types/{package/index.d.ts → index.d.ts} +6 -0
- package/dist/types/{package/services → services}/formValidation/index.d.ts +1 -1
- package/docs/CLAUDE.md +3 -0
- package/docs/InputDropdown.md +3 -0
- package/docs/MultiSelect.md +100 -0
- package/docs/Pagination.md +72 -0
- package/docs/Slider.md +34 -4
- package/docs/Tree.md +95 -0
- package/docs/VirtualList.md +1 -0
- package/package.json +74 -70
- package/dist/types/package/common/card/Card.d.ts +0 -3
- package/dist/types/package/common/card/CardContent.d.ts +0 -3
- package/dist/types/package/common/card/CardMedia.d.ts +0 -3
- package/dist/types/package/common/carousel/carousel.d.ts +0 -3
- package/dist/types/package/common/chip/chip.d.ts +0 -3
- package/dist/types/package/common/dropdown/dropdown.d.ts +0 -3
- package/dist/types/package/common/input/input.d.ts +0 -3
- package/dist/types/package/common/modal/modal.d.ts +0 -3
- package/dist/types/package/common/popover/popover.d.ts +0 -3
- package/dist/types/package/common/slider/slider.d.ts +0 -3
- package/dist/types/package/common/textarea/textarea.d.ts +0 -2
- /package/dist/types/{package/common → common}/accordion/accordion.d.ts +0 -0
- /package/dist/types/{package/common → common}/accordion/accordion.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/accordion/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/actionButtons/actionButtons.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/actionButtons/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/actionIcon/actionIcon.d.ts +0 -0
- /package/dist/types/{package/common → common}/actionIcon/actionIcon.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/actionIcon/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/alert/alert.d.ts +0 -0
- /package/dist/types/{package/common → common}/alert/alert.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/alert/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/animatedIcon/animatedIcon.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/animatedIcon/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/animatedLogo/animatedLogo.d.ts +0 -0
- /package/dist/types/{package/common → common}/animatedLogo/animatedLogo.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/animatedLogo/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/animatedText/animatedText.d.ts +0 -0
- /package/dist/types/{package/common → common}/animatedText/animatedText.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/animatedText/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/avatar/avatar.d.ts +0 -0
- /package/dist/types/{package/common → common}/avatar/avatar.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/avatar/avatarGroup.d.ts +0 -0
- /package/dist/types/{package/common → common}/avatar/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/badge/badge.d.ts +0 -0
- /package/dist/types/{package/common → common}/badge/badge.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/badge/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/bodyEnd/bodyEnd.d.ts +0 -0
- /package/dist/types/{package/common → common}/bodyEnd/bodyEnd.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/bodyEnd/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/breadcrumb/breadcrumb.d.ts +0 -0
- /package/dist/types/{package/common → common}/breadcrumb/breadcrumb.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/breadcrumb/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/button/button.d.ts +0 -0
- /package/dist/types/{package/common → common}/button/button.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/button/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/buttonGroup/buttonGroup.d.ts +0 -0
- /package/dist/types/{package/common → common}/buttonGroup/buttonGroup.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/buttonGroup/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/card/card.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/card/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/carousel/carousel.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/carousel/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/checkbox/checkbox.d.ts +0 -0
- /package/dist/types/{package/common → common}/checkbox/checkbox.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/checkbox/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/chip/chip.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/chip/chipContainer.d.ts +0 -0
- /package/dist/types/{package/common → common}/chip/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/colorPicker/colorPicker.d.ts +0 -0
- /package/dist/types/{package/common → common}/colorPicker/colorPicker.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/colorPicker/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/configProvider/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/configProvider/useComponentDefaults.d.ts +0 -0
- /package/dist/types/{package/common → common}/configProvider/usePresentationDefault.d.ts +0 -0
- /package/dist/types/{package/common → common}/confirmModal/confirmModal.d.ts +0 -0
- /package/dist/types/{package/common → common}/confirmModal/confirmModal.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/confirmModal/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/datePicker/components/datePickerMonth/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/datePicker/dateFunctions.d.ts +0 -0
- /package/dist/types/{package/common → common}/datePicker/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/divider/divider.d.ts +0 -0
- /package/dist/types/{package/common → common}/divider/divider.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/divider/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/drawer/drawer.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/drawer/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/dropZone/dropZone.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/dropZone/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/dropdown/dropdown.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/dropdown/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/emptyState/emptyState.d.ts +0 -0
- /package/dist/types/{package/common → common}/emptyState/emptyState.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/emptyState/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/errorBoundary/errorBoundary.d.ts +0 -0
- /package/dist/types/{package/common → common}/errorBoundary/errorBoundary.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/errorBoundary/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/fab/components/fabBase/fabBase.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/fab/components/fabBase/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/fab/fab.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/fab/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/flip/flip.d.ts +0 -0
- /package/dist/types/{package/common → common}/flip/flip.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/flip/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/floatingMenu/floatingMenu.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/floatingMenu/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.faces.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.fixtures.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.geometry.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.graph.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.hit.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.json.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.mesh.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.path.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.plan.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.rooms.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.snap.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.triangulate.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/floorPlan.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/floorPlan/legacySvg.d.ts +0 -0
- /package/dist/types/{package/common → common}/hooks/useCoarsePointer.d.ts +0 -0
- /package/dist/types/{package/common → common}/hooks/useFocusBoundary.d.ts +0 -0
- /package/dist/types/{package/common → common}/hooks/useMediaQuery.d.ts +0 -0
- /package/dist/types/{package/common → common}/hooks/useSheet.d.ts +0 -0
- /package/dist/types/{package/common → common}/hooks/useSwipeDismiss.d.ts +0 -0
- /package/dist/types/{package/common → common}/hooks/useVisualViewportSize.d.ts +0 -0
- /package/dist/types/{package/common → common}/iconPicker/iconPicker.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/iconPicker/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/idleManager/idleManager.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/idleManager/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/infiniteBlock/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/infiniteBlock/infiniteBlock.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/input/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/input/input.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/inputDropdown/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/interactableDiv/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/interactableDiv/interactableDiv.d.ts +0 -0
- /package/dist/types/{package/common → common}/kanbanBoard/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/kanbanBoard/kanbanBoard.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/kanbanBoard/kanbanBoard.utils.d.ts +0 -0
- /package/dist/types/{package/common → common}/klipyPicker/components/gifPreview/gifPreview.d.ts +0 -0
- /package/dist/types/{package/common → common}/klipyPicker/components/gifPreview/gifPreview.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/klipyPicker/components/gifPreview/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/klipyPicker/components/gifView/gifView.d.ts +0 -0
- /package/dist/types/{package/common → common}/klipyPicker/components/gifView/gifView.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/klipyPicker/components/gifView/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/klipyPicker/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/klipyPicker/klipyPicker.d.ts +0 -0
- /package/dist/types/{package/common → common}/klipyPicker/klipyPicker.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/loading/iconLoading/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/loading/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/loading/spinnerLoading/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/loading/spinnerLoading/spinnerLoading.d.ts +0 -0
- /package/dist/types/{package/common → common}/modal/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/modal/modal.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/numberInput/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/numberInput/numberInput.d.ts +0 -0
- /package/dist/types/{package/common → common}/numberInput/numberInput.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/numberInput/useStepRepeat.d.ts +0 -0
- /package/dist/types/{package/common → common}/optionPicker/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/optionPicker/optionPicker.d.ts +0 -0
- /package/dist/types/{package/common → common}/optionPicker/optionPicker.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/otpInput/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/otpInput/otpInput.d.ts +0 -0
- /package/dist/types/{package/common → common}/otpInput/otpInput.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/overscroll/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/overscroll/overscroll.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/planCanvas/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/planCanvas/planCanvas.d.ts +0 -0
- /package/dist/types/{package/common → common}/planCanvas/planCanvas.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/popover/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/popover/popover.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/progressBar/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/progressBar/progressBar.d.ts +0 -0
- /package/dist/types/{package/common → common}/progressBar/progressBar.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/radioGroup/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/radioGroup/radioGroup.d.ts +0 -0
- /package/dist/types/{package/common → common}/radioGroup/radioGroup.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/rating/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/rating/rating.d.ts +0 -0
- /package/dist/types/{package/common → common}/rating/rating.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/revealLens/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/revealLens/revealLens.d.ts +0 -0
- /package/dist/types/{package/common → common}/revealLens/revealLens.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/ripple/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/ripple/ripple.d.ts +0 -0
- /package/dist/types/{package/common → common}/ripple/ripple.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/roomDrawer/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/roomDrawer/roomDrawer.d.ts +0 -0
- /package/dist/types/{package/common → common}/roomDrawer/roomDrawer.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/roomDrawer/usePlanHistory.d.ts +0 -0
- /package/dist/types/{package/common → common}/roomViewer/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/roomViewer/roomViewer.d.ts +0 -0
- /package/dist/types/{package/common → common}/roomViewer/roomViewer.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/scrollbarProvider/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/searchInput/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/searchInput/searchInput.d.ts +0 -0
- /package/dist/types/{package/common → common}/searchInput/searchInput.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/sectionHeader/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/sectionHeader/sectionHeader.d.ts +0 -0
- /package/dist/types/{package/common → common}/sectionHeader/sectionHeader.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/sheetBackdrop/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/sheetBackdrop/sheetBackdrop.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/skeleton/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/skeleton/skeleton.d.ts +0 -0
- /package/dist/types/{package/common → common}/skeleton/skeleton.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/slider/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/splitButton/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/splitButton/splitButton.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/stepper/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/stepper/stepper.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/sticky/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/sticky/sticky.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/sticky/stickyStack.d.ts +0 -0
- /package/dist/types/{package/common → common}/switch/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/switch/switch.d.ts +0 -0
- /package/dist/types/{package/common → common}/switch/switch.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/tabHeader/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/tabHeader/tabHeader.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/textarea/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/textarea/textarea.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/themeProvider/defaultTheme.d.ts +0 -0
- /package/dist/types/{package/common → common}/themeProvider/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/themeProvider/theme.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/themeProvider/useTheme.d.ts +0 -0
- /package/dist/types/{package/common → common}/tilt/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/tilt/tilt.d.ts +0 -0
- /package/dist/types/{package/common → common}/tilt/tilt.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/tilt/tiltMath.d.ts +0 -0
- /package/dist/types/{package/common → common}/tiltGroup/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/tiltGroup/tiltGroup.d.ts +0 -0
- /package/dist/types/{package/common → common}/tiltGroup/tiltGroup.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/timeInput/components/clockDial/clockDial.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/timeInput/components/clockDial/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/timeInput/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/timeInput/timeFunctions.d.ts +0 -0
- /package/dist/types/{package/common → common}/timeInput/timeInput.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/timeline/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/timeline/timeline.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/timer/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/timer/timer.chime.d.ts +0 -0
- /package/dist/types/{package/common → common}/timer/timer.d.ts +0 -0
- /package/dist/types/{package/common → common}/timer/timer.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/toast/toast.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/toast/toastService.d.ts +0 -0
- /package/dist/types/{package/common → common}/tooltip/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/tooltip/tooltip.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/types/actions.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/types/baseProps.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/types/icon.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/types/slots.types.d.ts +0 -0
- /package/dist/types/{package/common → common}/utils/renderIcon.d.ts +0 -0
- /package/dist/types/{package/common → common}/utils/scrollAncestors.d.ts +0 -0
- /package/dist/types/{package/common → common}/utils/visualViewport.d.ts +0 -0
- /package/dist/types/{package/common → common}/virtualList/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/virtualList/useColumns.d.ts +0 -0
- /package/dist/types/{package/common → common}/virtualList/useRowDrag.d.ts +0 -0
- /package/dist/types/{package/common → common}/virtualList/useSelection.d.ts +0 -0
- /package/dist/types/{package/common → common}/virtualList/useVirtualWindow.d.ts +0 -0
- /package/dist/types/{package/common → common}/virtualList/virtualList.d.ts +0 -0
- /package/dist/types/{package/common → common}/virtualList/virtualList.utils.d.ts +0 -0
- /package/dist/types/{package/common → common}/wizard/index.d.ts +0 -0
- /package/dist/types/{package/common → common}/wizard/wizard.types.d.ts +0 -0
- /package/dist/types/{package/hooks → hooks}/useWindowSize.d.ts +0 -0
- /package/dist/types/{package/services → services}/formValidation/FormValidatorGroupWithForm.d.ts +0 -0
- /package/dist/types/{package/services → services}/formValidation/useFormValidatorGroup.d.ts +0 -0
- /package/dist/types/{package/services → services}/formValidation/validatableComponent.d.ts +0 -0
- /package/dist/types/{package/services → services}/klipy.d.ts +0 -0
- /package/dist/types/{package/services → services}/localization.d.ts +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
1
2
|
import { ToastContextConfig } from './toast.types';
|
|
2
|
-
import { ReactNode } from 'react';
|
|
3
3
|
interface ToastProviderProps extends ToastContextConfig {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
}
|
|
6
|
-
declare function ToastProvider({ children, position, duration, showRemainingTime, showCloseButton, allowStacking, pauseOnHover, }: ToastProviderProps):
|
|
6
|
+
declare function ToastProvider({ children, position, duration, showRemainingTime, showCloseButton, allowStacking, pauseOnHover, }: ToastProviderProps): React.JSX.Element;
|
|
7
7
|
export default ToastProvider;
|
|
8
8
|
export type { ToastProviderProps };
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
1
2
|
import { TooltipProps } from './tooltip.types';
|
|
2
|
-
export default function Tooltip({ variant, message, isVisible, tooltipPosition, onClick
|
|
3
|
+
export default function Tooltip({ variant, message, isVisible, tooltipPosition, onClick }: TooltipProps): React.JSX.Element | null;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { FlatTreeNode, TreeNode, TreeValue } from './tree.types';
|
|
2
|
+
/** The visible nodes in render order. Flat, not nested, deliberately: see docs/Tree.md. */
|
|
3
|
+
export declare function flattenTree(nodes: TreeNode[], expandedKeys: TreeValue[], level?: number, parentKey?: TreeValue | null): FlatTreeNode[];
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { IconContent } from '../types/icon.types';
|
|
3
|
+
import { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types';
|
|
4
|
+
export type TreeValue = string | number;
|
|
5
|
+
export interface TreeNode {
|
|
6
|
+
key: TreeValue;
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/** Icon shown before the label. */
|
|
9
|
+
icon?: IconContent;
|
|
10
|
+
/** Child nodes. An empty array still renders a toggle, for a branch whose children load later. */
|
|
11
|
+
children?: TreeNode[];
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** One visible row produced by `flattenTree`. */
|
|
15
|
+
export interface FlatTreeNode {
|
|
16
|
+
node: TreeNode;
|
|
17
|
+
/** Depth from the roots, 0-based. */
|
|
18
|
+
level: number;
|
|
19
|
+
parentKey: TreeValue | null;
|
|
20
|
+
isBranch: boolean;
|
|
21
|
+
isExpanded: boolean;
|
|
22
|
+
/** Number of siblings at this level, for `aria-setsize`. */
|
|
23
|
+
setSize: number;
|
|
24
|
+
/** 1-based position among those siblings, for `aria-posinset`. */
|
|
25
|
+
posInSet: number;
|
|
26
|
+
}
|
|
27
|
+
export type TreeSlots = 'root' | 'node' | 'toggle' | 'icon' | 'label' | 'empty';
|
|
28
|
+
export interface TreeProps extends Omit<HtmlProps<HTMLDivElement>, 'onSelect'> {
|
|
29
|
+
nodes: TreeNode[];
|
|
30
|
+
/** Controlled set of expanded branch keys. Omit for uncontrolled. */
|
|
31
|
+
expandedKeys?: TreeValue[];
|
|
32
|
+
/** Branches expanded initially when uncontrolled (default `[]`). */
|
|
33
|
+
defaultExpandedKeys?: TreeValue[];
|
|
34
|
+
onExpandedChange?: (keys: TreeValue[]) => void;
|
|
35
|
+
/** Controlled selected key. Omit for uncontrolled. */
|
|
36
|
+
selectedKey?: TreeValue | null;
|
|
37
|
+
/** Key selected initially when uncontrolled. */
|
|
38
|
+
defaultSelectedKey?: TreeValue;
|
|
39
|
+
onSelect?: (key: TreeValue, node: TreeNode) => void;
|
|
40
|
+
/** Clicking a branch's label toggles it as well as selecting it (default `true`). */
|
|
41
|
+
expandOnSelect?: boolean;
|
|
42
|
+
/** Indent per level in px (default `20`). */
|
|
43
|
+
indent?: number;
|
|
44
|
+
/** Icon for the expand/collapse toggle. Rotates 90° when open (default a right chevron). */
|
|
45
|
+
toggleIcon?: IconContent;
|
|
46
|
+
/**
|
|
47
|
+
* Sets a fixed viewport height and windows the rows through `VirtualList`, so only the visible
|
|
48
|
+
* ones are in the DOM. Use it past a few hundred visible nodes. Rows must then be uniform
|
|
49
|
+
* height: set `--tree-node-height` rather than sizing individual rows.
|
|
50
|
+
*/
|
|
51
|
+
height?: number | string;
|
|
52
|
+
/** Row height used by the windowed renderer before measurement (default `32`). */
|
|
53
|
+
estimatedRowHeight?: number;
|
|
54
|
+
/** Shown when `nodes` is empty (default `'Nothing here'`). */
|
|
55
|
+
emptyLabel?: string;
|
|
56
|
+
disabled?: boolean;
|
|
57
|
+
'aria-label'?: string;
|
|
58
|
+
className?: string;
|
|
59
|
+
style?: CSSProperties;
|
|
60
|
+
classNames?: SlotClassNames<TreeSlots>;
|
|
61
|
+
styles?: SlotStyles<TreeSlots>;
|
|
62
|
+
}
|
|
@@ -83,6 +83,14 @@ export interface VirtualListProps<T> extends HtmlProps {
|
|
|
83
83
|
renderRow?: (item: T, index: number) => ReactNode;
|
|
84
84
|
/** Column definitions — presence enables table/header mode. */
|
|
85
85
|
columns?: VirtualListColumn<T>[];
|
|
86
|
+
/**
|
|
87
|
+
* Replaces the roles put on the container and rows (default `list`/`listitem`, or `grid`/`row`
|
|
88
|
+
* with columns). Pass `'none'` for both when the rows carry their own semantics, as `Tree` does.
|
|
89
|
+
*/
|
|
90
|
+
ariaRoles?: {
|
|
91
|
+
container: string;
|
|
92
|
+
row: string;
|
|
93
|
+
};
|
|
86
94
|
/** Height of the scroll viewport. Defaults to '100%' to fill the parent container. */
|
|
87
95
|
height?: number | string;
|
|
88
96
|
/** Estimated row height before measurement. Default: 40. */
|
|
@@ -14,7 +14,7 @@ export interface VirtualRowProps {
|
|
|
14
14
|
ariaRowIndex?: number;
|
|
15
15
|
ariaPosInSet?: number;
|
|
16
16
|
ariaSetSize?: number;
|
|
17
|
-
rowRole:
|
|
17
|
+
rowRole: string;
|
|
18
18
|
reorderable?: boolean;
|
|
19
19
|
/**
|
|
20
20
|
* Native mouse DnD is active for the list. Distinct from `draggable`, which in
|
|
@@ -45,5 +45,5 @@ export interface VirtualRowProps {
|
|
|
45
45
|
* grid (table mode), registering itself with the shared ResizeObserver and
|
|
46
46
|
* carrying all the drag / drop-indicator wiring the parent assigns it.
|
|
47
47
|
*/
|
|
48
|
-
declare function VirtualRow({ index, top, padding, columnTemplate, isSelected, showDivider, hover, onClick, observer, ariaRowIndex, ariaPosInSet, ariaSetSize, rowRole, reorderable, mouseDragEnabled, draggable, isDragging, reserveToggleGutter, onMouseDown, onMouseOver, onMouseLeave, onDragStart, onDragOver, onDragEnd, onDrop, onTouchStart, dropPosition, dropIndentPx, dropIndicatorClassName, dropIndicatorStyle, rowClassName, rowStyle, children, }: VirtualRowProps):
|
|
48
|
+
declare function VirtualRow({ index, top, padding, columnTemplate, isSelected, showDivider, hover, onClick, observer, ariaRowIndex, ariaPosInSet, ariaSetSize, rowRole, reorderable, mouseDragEnabled, draggable, isDragging, reserveToggleGutter, onMouseDown, onMouseOver, onMouseLeave, onDragStart, onDragOver, onDragEnd, onDrop, onTouchStart, dropPosition, dropIndentPx, dropIndicatorClassName, dropIndicatorStyle, rowClassName, rowStyle, children, }: VirtualRowProps): React.JSX.Element;
|
|
49
49
|
export default VirtualRow;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
1
2
|
import { WizardProps } from './wizard.types';
|
|
2
|
-
export default function Wizard({ currentStep, stepCount, renderStep, className, style, classNames, styles: slotStyles, ...rest }: WizardProps):
|
|
3
|
+
export default function Wizard({ currentStep, stepCount, renderStep, className, style, classNames, styles: slotStyles, ...rest }: WizardProps): React.JSX.Element;
|
|
@@ -75,6 +75,8 @@ export * from './common/klipyPicker';
|
|
|
75
75
|
export * from './common/loading';
|
|
76
76
|
export { default as Modal } from './common/modal';
|
|
77
77
|
export * from './common/modal';
|
|
78
|
+
export { default as MultiSelect } from './common/multiSelect';
|
|
79
|
+
export * from './common/multiSelect';
|
|
78
80
|
export { default as NumberInput } from './common/numberInput';
|
|
79
81
|
export * from './common/numberInput';
|
|
80
82
|
export { default as OptionPicker } from './common/optionPicker';
|
|
@@ -83,6 +85,8 @@ export { default as OtpInput } from './common/otpInput';
|
|
|
83
85
|
export * from './common/otpInput';
|
|
84
86
|
export { default as Overscroll } from './common/overscroll';
|
|
85
87
|
export * from './common/overscroll';
|
|
88
|
+
export { default as Pagination } from './common/pagination';
|
|
89
|
+
export * from './common/pagination';
|
|
86
90
|
export { default as Popover } from './common/popover';
|
|
87
91
|
export * from './common/popover';
|
|
88
92
|
export { default as ProgressBar } from './common/progressBar';
|
|
@@ -138,6 +142,8 @@ export { default as ToastProvider } from './common/toast';
|
|
|
138
142
|
export * from './common/toast';
|
|
139
143
|
export { default as Tooltip } from './common/tooltip';
|
|
140
144
|
export * from './common/tooltip';
|
|
145
|
+
export { default as Tree } from './common/tree';
|
|
146
|
+
export * from './common/tree';
|
|
141
147
|
export { default as VirtualList } from './common/virtualList';
|
|
142
148
|
export * from './common/virtualList';
|
|
143
149
|
export { default as Wizard } from './common/wizard';
|
|
@@ -2,4 +2,4 @@ export { default as FormValidatorGroup } from './FormValidatorGroupWithForm';
|
|
|
2
2
|
export { default as ValidatableComponent } from './validatableComponent';
|
|
3
3
|
export { useFormValidatorGroup } from './useFormValidatorGroup';
|
|
4
4
|
export { FormValidator, Validators, useFormValidator } from '@ahrowe/form-validation';
|
|
5
|
-
export type { ValidationError, ValidatorFunction, ErrorParser, FormValidatorGroupOptions, InferGroupValues, MergedValues } from '@ahrowe/form-validation';
|
|
5
|
+
export type { ValidationError, ValidatorFunction, ErrorParser, FormValidatorGroupOptions, InferGroupValues, MergedValues, } from '@ahrowe/form-validation';
|
package/docs/CLAUDE.md
CHANGED
|
@@ -156,10 +156,12 @@ FontAwesome internals, so they still take an `IconDefinition` only.
|
|
|
156
156
|
@KlipyPicker.md
|
|
157
157
|
@Loading.md
|
|
158
158
|
@Modal.md
|
|
159
|
+
@MultiSelect.md
|
|
159
160
|
@NumberInput.md
|
|
160
161
|
@OptionPicker.md
|
|
161
162
|
@OtpInput.md
|
|
162
163
|
@Overscroll.md
|
|
164
|
+
@Pagination.md
|
|
163
165
|
@Popover.md
|
|
164
166
|
@ProgressBar.md
|
|
165
167
|
@RadioGroup.md
|
|
@@ -186,5 +188,6 @@ FontAwesome internals, so they still take an `IconDefinition` only.
|
|
|
186
188
|
@Timer.md
|
|
187
189
|
@Toast.md
|
|
188
190
|
@Tooltip.md
|
|
191
|
+
@Tree.md
|
|
189
192
|
@VirtualList.md
|
|
190
193
|
@Wizard.md
|
package/docs/InputDropdown.md
CHANGED
|
@@ -58,6 +58,7 @@ interface InputDropdownItem {
|
|
|
58
58
|
| `value` | `string` | Controlled value |
|
|
59
59
|
| `items` | `InputDropdownItem[]` | Dropdown options |
|
|
60
60
|
| `allowCustomValue` | `boolean` | Allow free-text values not in `items` — the typed text is emitted via `onChange` on every keystroke (default `false`) |
|
|
61
|
+
| `maxItems` | `number` | Maximum number of filtered matches rendered in the list. Further matches are dropped, since the list is narrowed by typing rather than by scrolling. `0` renders all matches. Default `100` |
|
|
61
62
|
| `onSelect` | `(value: string) => void` | Called when an item is picked from the list |
|
|
62
63
|
| `onChange` | `(value: unknown) => void` | Called on every text change |
|
|
63
64
|
| `placeholder` | `string` | |
|
|
@@ -68,4 +69,6 @@ interface InputDropdownItem {
|
|
|
68
69
|
|
|
69
70
|
**Slots:** `root` `dropdown` `item`
|
|
70
71
|
|
|
72
|
+
Long lists are handled by capping how many matches are rendered (`maxItems`, default `100`) rather than by virtualizing: only about six rows fit in the scroll box, so anything past the cap is DOM the user never sees. Raise `maxItems` (or set it to `0`) if a list is genuinely meant to be scrolled end to end. For lists too large to pass as `items` at all, fetch on the server, keep the results in your own state and feed them in as `items`.
|
|
73
|
+
|
|
71
74
|
The list is rendered through a portal and tracks the trigger across scroll, so it always escapes clipping ancestors (cards, scroll containers, virtualized lists). It flips to open upward automatically when there's no room below, and shifts horizontally to stay within the viewport when the trigger sits near the left or right edge of the screen. It hides (without closing) if the trigger itself scrolls behind a clipping ancestor, reappearing once it's back in view. It also re-measures when its own content changes size while open, so a list that shrinks (e.g. filtered down to fewer entries) stays anchored to the trigger instead of hanging above it.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# MultiSelect
|
|
2
|
+
|
|
3
|
+
**When to use:** Pick several options from a list. Selections appear as removable chips in the control, and the list opens in a panel below it. For a single choice use [Dropdown](Dropdown.md); for a handful of options that should stay visible use [OptionPicker](OptionPicker.md) or [Checkbox](Checkbox.md); for type-ahead against one value use [InputDropdown](InputDropdown.md).
|
|
4
|
+
|
|
5
|
+
**Keywords:** tags, token input, multi-value, pick many, select multiple, facet, chips picker
|
|
6
|
+
|
|
7
|
+
**Import:** `import { MultiSelect } from '@ahrowe/ui'`
|
|
8
|
+
**Types:** `import type { MultiSelectProps, MultiSelectItem, MultiSelectValue } from '@ahrowe/ui'`
|
|
9
|
+
|
|
10
|
+
**Requires:** `<div id="bodyEnd"></div>` in your app — the panel renders through a portal.
|
|
11
|
+
|
|
12
|
+
```tsx
|
|
13
|
+
import { useState } from 'react';
|
|
14
|
+
import { MultiSelect } from '@ahrowe/ui';
|
|
15
|
+
import type { MultiSelectItem, MultiSelectValue } from '@ahrowe/ui';
|
|
16
|
+
|
|
17
|
+
const items: MultiSelectItem[] = [
|
|
18
|
+
{ key: 'apple', label: 'Apple' },
|
|
19
|
+
{ key: 'banana', label: 'Banana' },
|
|
20
|
+
{ key: 'fig', label: 'Fig', disabled: true },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
// Controlled
|
|
24
|
+
const [value, setValue] = useState<MultiSelectValue[]>([]);
|
|
25
|
+
<MultiSelect items={items} value={value} onChange={setValue} label="Fruit" placeholder="Pick some" />
|
|
26
|
+
|
|
27
|
+
// Uncontrolled
|
|
28
|
+
<MultiSelect items={items} defaultValue={['apple']} onChange={(value) => console.log(value)} />
|
|
29
|
+
|
|
30
|
+
// Searchable, for a list too long to scan
|
|
31
|
+
<MultiSelect items={countries} searchable searchPlaceholder="Filter countries…" />
|
|
32
|
+
|
|
33
|
+
// Tag entry: type a value that isn't in `items` and pick the "add" row
|
|
34
|
+
<MultiSelect items={commonTags} allowCustomValues createLabel={(value) => `Neu: ${value}`} />
|
|
35
|
+
|
|
36
|
+
// Cap the selection — unselected options disable once the cap is reached
|
|
37
|
+
<MultiSelect items={items} maxSelected={3} />
|
|
38
|
+
|
|
39
|
+
// Connected to a FormValidator, like Input and Dropdown
|
|
40
|
+
<MultiSelect items={items} formValidator={form.fruit} label="Fruit" />
|
|
41
|
+
|
|
42
|
+
// Manual error state, when there's no validator
|
|
43
|
+
<MultiSelect items={items} isValid={false} errorMessage="Pick at least one" />
|
|
44
|
+
|
|
45
|
+
// Always a bottom sheet, rather than only on a small touch screen
|
|
46
|
+
import { Presentation } from '@ahrowe/ui';
|
|
47
|
+
<MultiSelect items={items} presentation={Presentation.Sheet} />
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Value:** `onChange` gets the full new selection as an array of `key`s, in the order the user picked them, and the chips render in that same order. It is never called with a partial change, so `onChange={setValue}` is all a controlled field needs.
|
|
51
|
+
|
|
52
|
+
**The label floats like `Input`'s.** It rests vertically centred over the control and rises into a notch cut out of the border once the field is focused, open, or has a selection, using the same `fieldset`/`legend` construction and the same `--input-notch-height` geometry as `Input`. A `MultiSelect` sitting next to an `Input` in a form animates with it rather than against it. Set `alwaysFloatLabel` to pin it up, which is what you want when a `placeholder` should always be readable: with a label present the placeholder is otherwise faded in on a delay matching the label's animation, so the two never sit on top of each other. Without a label there is nothing to wait for and it fades in at once.
|
|
53
|
+
|
|
54
|
+
**Errors:** with a `formValidator` the field stays quiet until it has been touched (the first time the panel closes), then shows the validator's message while the field is hovered or focused, and drops it as soon as the validator is happy again. Without a validator, `isValid` and `errorMessage` are plain props and nothing clears them for you: derive them from your own state, as in `isValid={picked.length > 0}`.
|
|
55
|
+
|
|
56
|
+
**Height:** a MultiSelect with one row of chips is exactly as tall as an `Input` or `Dropdown` beside it, so a form row lines up. It grows only when the chips wrap onto a second row. The chips render at `0.8em` to fit: a standalone `Chip` is nearly as tall as the whole field, because its remove button carries `ActionIcon`'s padding around a `1em` icon.
|
|
57
|
+
|
|
58
|
+
**Custom values** (`allowCustomValues`) turn this into a tag input. Anything typed that matches no item's label or key, and isn't already selected, gets an extra row at the bottom of the panel offering to add it; picking that row commits the typed string as its own key and clears the box. It goes through the same highlight and `Enter` path as a normal option, so the keyboard works unchanged, and `maxSelected` still caps it. Because a custom value has no entry in `items`, its chip falls back to showing the value itself. Without `allowCustomValues`, a selected key that isn't in `items` renders no chip at all.
|
|
59
|
+
|
|
60
|
+
**Item labels are strings, not nodes.** The same text renders twice, in the option row and inside the `Chip`, and `Chip` takes a string. Reach for `Dropdown` when an option needs rich content.
|
|
61
|
+
|
|
62
|
+
**Key props:**
|
|
63
|
+
|
|
64
|
+
| Prop | Type | Description |
|
|
65
|
+
|------|------|-------------|
|
|
66
|
+
| `items` | `MultiSelectItem[]` | The options: `{ key, label, disabled? }` |
|
|
67
|
+
| `value` | `MultiSelectValue[]` | Controlled selection (omit for uncontrolled) |
|
|
68
|
+
| `defaultValue` | `MultiSelectValue[]` | Initial selection when uncontrolled (default `[]`) |
|
|
69
|
+
| `onChange` | `(value: MultiSelectValue[]) => void` | Fires with the full new selection |
|
|
70
|
+
| `label` | `string` | Field label. Rests inside the control, floats into the border notch |
|
|
71
|
+
| `alwaysFloatLabel` | `boolean` | Keep the label floating even when empty and unfocused (default `false`) |
|
|
72
|
+
| `placeholder` | `string` | Shown while nothing is selected. With a `label`, it fades in only after the label has finished floating clear |
|
|
73
|
+
| `searchable` | `boolean` | Show a search box in the panel (default `false`) |
|
|
74
|
+
| `allowCustomValues` | `boolean` | Let the user add a value not in `items`. Implies `searchable` |
|
|
75
|
+
| `createLabel` | `(value: string) => string` | Label for the add row (default `Add "…"`) |
|
|
76
|
+
| `searchPlaceholder` | `string` | Placeholder for that box (default `'Search…'`) |
|
|
77
|
+
| `emptyLabel` | `string` | Shown when nothing matches (default `'No matches'`) |
|
|
78
|
+
| `maxSelected` | `number` | Cap the selection; unselected options disable at the cap |
|
|
79
|
+
| `clearable` | `boolean` | Show the clear-all button (default `true`) |
|
|
80
|
+
| `disabled` | `boolean` | Dims the field and blocks interaction |
|
|
81
|
+
| `readOnly` | `boolean` | Shows the selection, allows no changes, no dimming |
|
|
82
|
+
| `presentation` | `Presentation` | Anchored panel, bottom sheet, or sheet only on small touch screens |
|
|
83
|
+
| `formValidator` | `FormValidator \| null` | Owns the value when present. See [FormValidator.md](FormValidator.md) |
|
|
84
|
+
| `errorMessage` | `string` | Manual error, shown in a tooltip when there's no validator |
|
|
85
|
+
| `isValid` | `boolean` | Manual valid state (default `true`) |
|
|
86
|
+
|
|
87
|
+
**Keyboard:** `↓` or `Enter` opens the panel. `↑`/`↓` move the highlight and wrap around, `Home`/`End` jump to the ends, `Enter` toggles the highlighted option, `Escape` closes. `Backspace` removes the last selection when the search box is empty. With `searchable`, focus moves into the search box on open and the same keys work from there.
|
|
88
|
+
|
|
89
|
+
**Accessibility:** the control is a `role="combobox"` with `aria-expanded`, `aria-haspopup="listbox"` and `aria-controls`; the panel is a `role="listbox"` with `aria-multiselectable="true"`, and each option carries `aria-selected`. The highlighted option is reported through `aria-activedescendant`, so focus stays on the control (or the search box) rather than moving between options. Each chip's remove button is labelled `Remove <label>`.
|
|
90
|
+
|
|
91
|
+
**Theming:** override these CSS variables theme-wide via `ThemeProvider` or per instance via `style`; each falls back to a built-in default:
|
|
92
|
+
|
|
93
|
+
| Variable | Falls back to |
|
|
94
|
+
|----------|---------------|
|
|
95
|
+
| `--multi-select-min-height` | `calc(1.25em + 14px)`, the same height `Input` and `Dropdown` resolve to |
|
|
96
|
+
| `--multi-select-panel-height` | `260px` |
|
|
97
|
+
|
|
98
|
+
**Global defaults:** adopts `ConfigProvider`, e.g. `defaultProps={{ MultiSelect: { searchable: true } }}`. See [ConfigProvider.md](ConfigProvider.md).
|
|
99
|
+
|
|
100
|
+
**Slots:** `root` `label` `fieldset` `control` `values` `chip` `placeholder` `clearButton` `icon` `panel` `search` `options` `option` `optionCheck` `optionLabel` `empty`
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Pagination
|
|
2
|
+
|
|
3
|
+
**When to use:** Move through server-paged results a page at a time — a results list, an admin table, a report. For endless scrolling instead, use `InfiniteBlock`; for a long list that's all in memory, use `VirtualList`.
|
|
4
|
+
|
|
5
|
+
**Keywords:** pager, paging, page numbers, next page, previous page, page navigation, offset, results
|
|
6
|
+
|
|
7
|
+
**Import:** `import { Pagination } from '@ahrowe/ui'`
|
|
8
|
+
**Types:** `import type { PaginationProps } from '@ahrowe/ui'`
|
|
9
|
+
|
|
10
|
+
```tsx
|
|
11
|
+
import { useState } from 'react';
|
|
12
|
+
import { Pagination } from '@ahrowe/ui';
|
|
13
|
+
|
|
14
|
+
// Controlled — the usual shape, since the page drives a fetch
|
|
15
|
+
const [page, setPage] = useState(1);
|
|
16
|
+
<Pagination total={20} page={page} onChange={setPage} />
|
|
17
|
+
|
|
18
|
+
// Uncontrolled
|
|
19
|
+
<Pagination total={20} defaultPage={3} onChange={(page) => console.log(page)} />
|
|
20
|
+
|
|
21
|
+
// Total pages from a row count
|
|
22
|
+
<Pagination total={Math.ceil(rowCount / pageSize)} page={page} onChange={setPage} />
|
|
23
|
+
|
|
24
|
+
// First/last jump controls outside the previous/next ones
|
|
25
|
+
<Pagination total={50} page={page} onChange={setPage} showEdges />
|
|
26
|
+
|
|
27
|
+
// Page numbers only, no previous/next
|
|
28
|
+
<Pagination total={20} page={page} onChange={setPage} showControls={false} />
|
|
29
|
+
|
|
30
|
+
// Narrower — one page either side of the current one is already the default, `0` shows just the current
|
|
31
|
+
<Pagination total={100} page={page} onChange={setPage} siblings={0} />
|
|
32
|
+
|
|
33
|
+
// Wider window and more pages pinned at each end
|
|
34
|
+
<Pagination total={100} page={page} onChange={setPage} siblings={2} boundaries={2} />
|
|
35
|
+
|
|
36
|
+
// Disabled while the page's data is loading
|
|
37
|
+
<Pagination total={20} page={page} onChange={setPage} disabled={isLoading} />
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Which pages are shown:** the first and last `boundaries` pages, the current page with `siblings` pages either side, and a `…` wherever a run was collapsed. A gap only appears when it replaces more than one page — collapsing a single page would take the same width and hide a reachable page, so that side lists a fixed-size block instead. With the defaults (`siblings={1}`, `boundaries={1}`) the control is always 7 page slots wide, so it never reflows as the user pages through.
|
|
41
|
+
|
|
42
|
+
**Key props:**
|
|
43
|
+
|
|
44
|
+
| Prop | Type | Description |
|
|
45
|
+
|------|------|-------------|
|
|
46
|
+
| `total` | `number` | Total number of pages (not rows). Renders nothing below `1` |
|
|
47
|
+
| `page` | `number` | Controlled current page, 1-based (omit for uncontrolled). Clamped to `1…total` |
|
|
48
|
+
| `defaultPage` | `number` | Initial page when uncontrolled (default `1`) |
|
|
49
|
+
| `onChange` | `(page: number) => void` | Fires with the new page; not called when the current page is clicked again |
|
|
50
|
+
| `siblings` | `number` | Pages shown either side of the current one (default `1`) |
|
|
51
|
+
| `boundaries` | `number` | Pages always shown at the start and end (default `1`) |
|
|
52
|
+
| `showControls` | `boolean` | Show the previous/next controls (default `true`) |
|
|
53
|
+
| `showEdges` | `boolean` | Show first/last jump controls outside the previous/next ones (default `false`) |
|
|
54
|
+
| `disabled` | `boolean` | Disables every button |
|
|
55
|
+
| `previousIcon` / `nextIcon` | `IconDefinition \| ReactElement` | Override the previous/next icons (default chevrons) |
|
|
56
|
+
| `firstIcon` / `lastIcon` | `IconDefinition \| ReactElement` | Override the first/last icons (default double chevrons) |
|
|
57
|
+
| `aria-label` | `string` | Accessible name for the `<nav>` (default `'Pagination'`) |
|
|
58
|
+
|
|
59
|
+
**Accessibility:** renders a `<nav>` of `<button>`s. The current page carries `aria-current="page"`; each page button is labelled `Go to page N`, the controls `Go to previous page` / `Go to next page` / `Go to first page` / `Go to last page`. Previous/next are disabled at the respective end rather than hidden, so the control doesn't reflow. The `…` is `aria-hidden`.
|
|
60
|
+
|
|
61
|
+
**Theming:** override these CSS variables theme-wide via `ThemeProvider` or per instance via `style`; each falls back to a built-in default:
|
|
62
|
+
|
|
63
|
+
| Variable | Falls back to |
|
|
64
|
+
|----------|---------------|
|
|
65
|
+
| `--pagination-active-background` | `var(--primary-color)` |
|
|
66
|
+
| `--pagination-active-color` | `var(--text-on-primary)` |
|
|
67
|
+
| `--pagination-size` | `36px` |
|
|
68
|
+
| `--pagination-gap` | `4px` |
|
|
69
|
+
|
|
70
|
+
**Global defaults:** adopts `ConfigProvider`, e.g. `defaultProps={{ Pagination: { showEdges: true } }}`. See [ConfigProvider.md](ConfigProvider.md).
|
|
71
|
+
|
|
72
|
+
**Slots:** `root` `item` `control` `ellipsis`
|
package/docs/Slider.md
CHANGED
|
@@ -66,10 +66,13 @@ const [value, setValue] = useState(40);
|
|
|
66
66
|
|
|
67
67
|
| Prop | Type | Description |
|
|
68
68
|
|------|------|-------------|
|
|
69
|
-
| `
|
|
70
|
-
| `
|
|
71
|
-
| `
|
|
72
|
-
| `
|
|
69
|
+
| `range` | `boolean` | Two thumbs, working in `[from, to]` pairs |
|
|
70
|
+
| `minRange` | `number` | Smallest gap the thumbs may be pushed to (range mode, default `0`) |
|
|
71
|
+
| `thumbLabels` | `[string, string]` | Accessible name per thumb (range mode, default `'From'`/`'To'`) |
|
|
72
|
+
| `value` | `number \| [number, number]` | Controlled value (omit for uncontrolled) |
|
|
73
|
+
| `defaultValue` | `number \| [number, number]` | Initial value when uncontrolled (default `min`, or `[min, max]` in range mode) |
|
|
74
|
+
| `onChange` | `(value: number \| [number, number]) => void` | Fires on every change, matching the mode |
|
|
75
|
+
| `onChangeEnd` | `(value: number \| [number, number]) => void` | Fires once the value is committed |
|
|
73
76
|
| `min` | `number` | Minimum (default `0`) |
|
|
74
77
|
| `max` | `number` | Maximum (default `100`) |
|
|
75
78
|
| `step` | `number` | Snap increment (default `1`) |
|
|
@@ -92,4 +95,31 @@ const [value, setValue] = useState(40);
|
|
|
92
95
|
| `--slider-thumb-size` | `18px` (also settable per instance via `size`) |
|
|
93
96
|
| `--slider-track-height` | `6px` |
|
|
94
97
|
|
|
98
|
+
**Range mode:** set `range` for two thumbs and `[from, to]` pairs.
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
const [price, setPrice] = useState<[number, number]>([20, 80]);
|
|
102
|
+
<Slider range value={price} onChange={setPrice} min={0} max={200} />
|
|
103
|
+
|
|
104
|
+
// Hold the ends apart, and name each thumb for screen readers
|
|
105
|
+
<Slider range defaultValue={[20, 80]} minRange={10} thumbLabels={['Cheapest', 'Dearest']} />
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
`range` is a discriminated prop, not a widening of `value`: with `range` the value is a
|
|
109
|
+
`[number, number]` and `onChange` receives one, without it both stay `number`. An existing
|
|
110
|
+
`onChange={(value: number) => …}` therefore keeps compiling untouched.
|
|
111
|
+
|
|
112
|
+
A thumb never crosses its neighbour. Push one past the other and it stops on it, or on `minRange`
|
|
113
|
+
short of it, which the neighbour wins over the step: a thumb lands exactly on its neighbour rather
|
|
114
|
+
than overshooting to the next step. The fill covers the span between the thumbs instead of running
|
|
115
|
+
from the minimum.
|
|
116
|
+
|
|
117
|
+
Note `range` the prop (two thumbs) and `range` the slot (the filled part of the track) are
|
|
118
|
+
different things that happen to share a word. The slot means the same in both modes.
|
|
119
|
+
|
|
120
|
+
**Accessibility:** a single-thumb slider is itself `role="slider"`. A range slider is a
|
|
121
|
+
`role="group"` named by `aria-label`, containing one `role="slider"` per thumb, each with its own
|
|
122
|
+
`aria-valuenow` and each bounded by its neighbour rather than by `min`/`max`, so assistive tech
|
|
123
|
+
announces the limit the thumb actually has. Both thumbs are tabbable and take the same keys.
|
|
124
|
+
|
|
95
125
|
**Slots:** `root` `track` `range` `thumb` `mark` `markLabel` `value`
|
package/docs/Tree.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Tree
|
|
2
|
+
|
|
3
|
+
**When to use:** A hierarchical list the user can expand, collapse and pick from: categories, nested locations, folder structures, org charts. For a flat list of thousands of rows use [VirtualList](VirtualList.md); for picking several unrelated values use [MultiSelect](MultiSelect.md).
|
|
4
|
+
|
|
5
|
+
**Keywords:** hierarchy, directory, expand collapse, parent child, drilldown, navigation sidebar, outline, subfolder
|
|
6
|
+
|
|
7
|
+
**Import:** `import { Tree, flattenTree } from '@ahrowe/ui'`
|
|
8
|
+
**Types:** `import type { TreeProps, TreeNode, TreeValue, FlatTreeNode } from '@ahrowe/ui'`
|
|
9
|
+
|
|
10
|
+
```tsx
|
|
11
|
+
import { useState } from 'react';
|
|
12
|
+
import { Tree } from '@ahrowe/ui';
|
|
13
|
+
import type { TreeNode, TreeValue } from '@ahrowe/ui';
|
|
14
|
+
|
|
15
|
+
const nodes: TreeNode[] = [
|
|
16
|
+
{
|
|
17
|
+
key: 'hall-1',
|
|
18
|
+
label: 'Hall 1',
|
|
19
|
+
children: [
|
|
20
|
+
{ key: 'bay-a', label: 'Bay A' },
|
|
21
|
+
{ key: 'bay-b', label: 'Bay B' },
|
|
22
|
+
],
|
|
23
|
+
},
|
|
24
|
+
{ key: 'archive', label: 'Archive', disabled: true },
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
// Controlled selection
|
|
28
|
+
const [selected, setSelected] = useState<TreeValue | null>(null);
|
|
29
|
+
<Tree nodes={nodes} selectedKey={selected} onSelect={setSelected} aria-label="Locations" />
|
|
30
|
+
|
|
31
|
+
// Uncontrolled, with some branches open to begin with
|
|
32
|
+
<Tree nodes={nodes} defaultExpandedKeys={['hall-1']} defaultSelectedKey="bay-a" />
|
|
33
|
+
|
|
34
|
+
// Controlled expansion, e.g. to persist it
|
|
35
|
+
<Tree nodes={nodes} expandedKeys={open} onExpandedChange={setOpen} />
|
|
36
|
+
|
|
37
|
+
// Clicking a branch selects it without opening it
|
|
38
|
+
<Tree nodes={nodes} expandOnSelect={false} />
|
|
39
|
+
|
|
40
|
+
// Icons per node, and a wider indent
|
|
41
|
+
import { faWarehouse } from '@fortawesome/free-solid-svg-icons';
|
|
42
|
+
<Tree nodes={nodes.map((n) => ({ ...n, icon: faWarehouse }))} indent={40} />
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Branch or leaf:** a node is a branch when it has a `children` array, even an empty one. `children: []` renders a toggle with nothing behind it yet, which is what you want while a branch's contents are still loading; omit `children` entirely for a true leaf.
|
|
46
|
+
|
|
47
|
+
**Selection is single.** `onSelect` fires with the key and the node itself, so you do not have to look it up again. There is no multi-select or checkbox mode.
|
|
48
|
+
|
|
49
|
+
**Key props:**
|
|
50
|
+
|
|
51
|
+
| Prop | Type | Description |
|
|
52
|
+
|------|------|-------------|
|
|
53
|
+
| `nodes` | `TreeNode[]` | The tree: `{ key, label, icon?, children?, disabled? }` |
|
|
54
|
+
| `expandedKeys` | `TreeValue[]` | Controlled open branches (omit for uncontrolled) |
|
|
55
|
+
| `defaultExpandedKeys` | `TreeValue[]` | Branches open initially when uncontrolled (default `[]`) |
|
|
56
|
+
| `onExpandedChange` | `(keys: TreeValue[]) => void` | Fires with the full new set of open branches |
|
|
57
|
+
| `selectedKey` | `TreeValue \| null` | Controlled selection (omit for uncontrolled) |
|
|
58
|
+
| `defaultSelectedKey` | `TreeValue` | Selection when uncontrolled |
|
|
59
|
+
| `onSelect` | `(key: TreeValue, node: TreeNode) => void` | Fires with the picked key and node |
|
|
60
|
+
| `expandOnSelect` | `boolean` | Clicking a branch's row also toggles it (default `true`) |
|
|
61
|
+
| `indent` | `number` | Pixels per level (default `20`) |
|
|
62
|
+
| `toggleIcon` | `IconDefinition \| ReactElement` | Toggle icon, rotated 90° when open (default a right chevron) |
|
|
63
|
+
| `height` | `number \| string` | Windows the rows through `VirtualList` at this viewport height |
|
|
64
|
+
| `estimatedRowHeight` | `number` | Row height for the windowed renderer (default `32`) |
|
|
65
|
+
| `emptyLabel` | `string` | Shown when `nodes` is empty (default `'Nothing here'`) |
|
|
66
|
+
| `disabled` | `boolean` | Dims the tree and blocks interaction |
|
|
67
|
+
| `aria-label` | `string` | Accessible name for the tree (default `'Tree'`) |
|
|
68
|
+
|
|
69
|
+
**Keyboard:** `↑`/`↓` move between visible rows. `→` opens a closed branch, then steps into its first child. `←` closes an open branch, then steps out to its parent. `Home`/`End` jump to the ends. `Enter` or `Space` selects.
|
|
70
|
+
|
|
71
|
+
**Accessibility:** `role="tree"` containing `role="treeitem"` rows. Because the rows render flat rather than nested, each carries `aria-level`, `aria-posinset` and `aria-setsize`; branches also carry `aria-expanded`. Focus uses a roving tabindex, so one row at a time is reachable by Tab, and it is the selected one (or the first, before anything is selected). The toggle is `aria-hidden`, since `aria-expanded` on the row already reports the state.
|
|
72
|
+
|
|
73
|
+
**Why flat:** the rows are a flattened list, not nested `<div>`s. Keyboard movement becomes a step along one array instead of a tree walk, and a node's accessible name stays its own label rather than absorbing its descendants'.
|
|
74
|
+
|
|
75
|
+
**Very large trees:** set `height`. `Tree` then windows its rows through [VirtualList](VirtualList.md), so only the ones in view are in the DOM, and it keeps everything else: the ARIA, the expansion, the selection and the keyboard.
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
<Tree nodes={nodes} height={300} expandedKeys={open} onExpandedChange={setOpen} />
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Two things change in that mode. Rows must be a uniform height, so size them with `--tree-node-height` rather than per row. And the tab stop moves from the selected row to the tree itself, because a roving tabindex on a row that is scrolled out of the window would leave the tree with no tab stop at all; tabbing in still lands on the selected row, which is scrolled into view first.
|
|
82
|
+
|
|
83
|
+
`flattenTree` is exported separately if you want the rows without the component: it returns `FlatTreeNode`s carrying `node`, `level`, `parentKey`, `isBranch`, `isExpanded`, `setSize` and `posInSet`, ready for `VirtualList`'s `items` and `getItemDepth` (which also feeds its `treeReorder` drag-and-drop). You then write the row markup, ARIA and keyboard handling yourself.
|
|
84
|
+
|
|
85
|
+
**Theming:** override these CSS variables theme-wide via `ThemeProvider` or per instance via `style`; each falls back to a built-in default:
|
|
86
|
+
|
|
87
|
+
| Variable | Falls back to |
|
|
88
|
+
|----------|---------------|
|
|
89
|
+
| `--tree-node-height` | `32px` |
|
|
90
|
+
| `--tree-selected-background` | `var(--primary-color)` |
|
|
91
|
+
| `--tree-selected-color` | `var(--text-on-primary)` |
|
|
92
|
+
|
|
93
|
+
**Global defaults:** adopts `ConfigProvider`, e.g. `defaultProps={{ Tree: { indent: 30 } }}`. See [ConfigProvider.md](ConfigProvider.md).
|
|
94
|
+
|
|
95
|
+
**Slots:** `root` `node` `toggle` `icon` `label` `empty`
|
package/docs/VirtualList.md
CHANGED
|
@@ -139,6 +139,7 @@ const columns: VirtualListColumn<User>[] = [
|
|
|
139
139
|
| `onLoadMore` | `() => Promise<void>` | Triggered near the bottom, and repeatedly while the rows don't fill the viewport — append items in the handler |
|
|
140
140
|
| `loadMoreThreshold` | `number` | Distance from bottom that triggers `onLoadMore` (default `100`) |
|
|
141
141
|
| `isLoading` | `boolean` | Replaces list body with a full-height spinner |
|
|
142
|
+
| `ariaRoles` | `{ container: string; row: string }` | Replaces the roles put on the container and rows (default `list`/`listitem`, or `grid`/`row` with columns). Pass `'none'` for both when the rows carry their own semantics, as [Tree](Tree.md) does when windowing `treeitem` rows |
|
|
142
143
|
|
|
143
144
|
Drag-and-drop reordering adds `reorderable`, `treeReorder`, `dragHandle`, and their callbacks — see **Row reordering** below.
|
|
144
145
|
|