@cube-dev/ui-kit 0.166.0 → 0.168.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/README.md +4 -7
- package/dist/CHANGELOG.md +47 -0
- package/dist/README.md +4 -7
- package/dist/_internal/hooks/use-chained-callback.js +1 -1
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +4 -4
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +5 -5
- package/dist/components/Root.js.map +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.d.ts +0 -1
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +1 -1
- package/dist/components/actions/use-anchored-menu.d.ts +7 -3
- package/dist/components/actions/use-anchored-menu.js +17 -12
- package/dist/components/actions/use-anchored-menu.js.map +1 -1
- package/dist/components/actions/use-context-menu.d.ts +6 -3
- package/dist/components/actions/use-context-menu.js +25 -13
- package/dist/components/actions/use-context-menu.js.map +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.d.ts +14 -14
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableView.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.d.ts +1 -2
- package/dist/components/data/TableBase/styled.js +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.d.ts +0 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/index.d.ts +0 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Board/Board.d.ts +11 -5
- package/dist/components/layout/Board/Board.js +15 -7
- package/dist/components/layout/Board/Board.js.map +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.d.ts +6 -3
- package/dist/components/layout/Board/BoardResponsive.js +3 -3
- package/dist/components/layout/Board/BoardResponsive.js.map +1 -1
- package/dist/components/layout/Board/Widget.d.ts +29 -1
- package/dist/components/layout/Board/Widget.js +5 -2
- package/dist/components/layout/Board/Widget.js.map +1 -1
- package/dist/components/layout/Board/WidgetHost.js +67 -17
- package/dist/components/layout/Board/WidgetHost.js.map +1 -1
- package/dist/components/layout/Board/board-context.js +1 -1
- package/dist/components/layout/Board/board-context.js.map +1 -1
- package/dist/components/layout/Board/board-store.js +2 -2
- package/dist/components/layout/Board/board-store.js.map +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js +1 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
- package/dist/components/layout/Board/grid-core/collision.js +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js +1 -1
- package/dist/components/layout/Board/grid-core/group-move.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/placement.js +1 -1
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/index.d.ts +2 -1
- package/dist/components/layout/Board/index.js +1 -1
- package/dist/components/layout/Board/index.js.map +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/use-board-layout.d.ts +26 -0
- package/dist/components/layout/Board/use-board-layout.js +4 -4
- package/dist/components/layout/Board/use-board-layout.js.map +1 -1
- package/dist/components/layout/Board/use-board-registry.js +4 -4
- package/dist/components/layout/Board/use-board-registry.js.map +1 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
- package/dist/components/layout/Board/use-board-selection.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.d.ts +1 -2
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.d.ts +0 -1
- package/dist/components/overlays/Modal/Overlay.js +4 -3
- package/dist/components/overlays/Modal/Overlay.js.map +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/types.d.ts +0 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.d.ts +0 -2
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/portal/Portal.js +7 -5
- package/dist/components/portal/Portal.js.map +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/index.d.ts +0 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +21 -1
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/tokens/all-tokens.d.ts +10 -0
- package/dist/tokens/{index.js → all-tokens.js} +7 -25
- package/dist/tokens/all-tokens.js.map +1 -0
- package/dist/tokens/base.js +2 -1
- package/dist/tokens/base.js.map +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/index.d.ts +3 -10
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.d.ts +113 -0
- package/dist/tokens/resolve.js +403 -0
- package/dist/tokens/resolve.js.map +1 -0
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +3 -3
- package/docs/Colors.md +16 -40
- package/docs/ComplexLayout.md +8 -0
- package/docs/CreateComponent.md +15 -8
- package/docs/Introduction.md +15 -36
- package/docs/RenderCache.md +8 -6
- package/docs/Theming.md +164 -497
- package/docs/Usage.md +129 -138
- package/docs/Utilities.md +2 -2
- package/docs/components/CollectionItem.md +1 -0
- package/docs/components/actions/Banner.md +1 -0
- package/docs/components/actions/Button.md +8 -36
- package/docs/components/actions/ButtonSplit.md +2 -0
- package/docs/components/actions/CommandMenu.md +8 -8
- package/docs/components/actions/ItemButton.md +6 -20
- package/docs/components/actions/Link.md +10 -5
- package/docs/components/actions/Menu.md +24 -11
- package/docs/components/actions/MenuTrigger.md +3 -12
- package/docs/components/actions/use-anchored-menu.md +5 -5
- package/docs/components/actions/use-context-menu.md +11 -7
- package/docs/components/content/Badge.md +3 -0
- package/docs/components/content/HotKeys.md +21 -14
- package/docs/components/content/InlineInput.md +14 -14
- package/docs/components/content/Item.md +25 -17
- package/docs/components/content/ItemCard.md +1 -0
- package/docs/components/content/Layout.md +12 -1
- package/docs/components/content/PrismCode.md +13 -18
- package/docs/components/content/Tag.md +1 -1
- package/docs/components/content/TextItem.md +5 -3
- package/docs/components/content/Tree.md +69 -154
- package/docs/components/data/DataTable.md +56 -168
- package/docs/components/data/ItemTable.md +182 -485
- package/docs/components/fields/Checkbox.md +2 -0
- package/docs/components/fields/ColorInput.md +38 -79
- package/docs/components/fields/ColorPicker.md +17 -39
- package/docs/components/fields/ColorSwatch.md +11 -30
- package/docs/components/fields/ColorSwatchGroup.md +18 -42
- package/docs/components/fields/ComboBox.md +13 -1
- package/docs/components/fields/CommandTextArea.md +10 -37
- package/docs/components/fields/DatePicker.md +3 -0
- package/docs/components/fields/FileInput.md +3 -0
- package/docs/components/fields/FilterListBox.md +34 -14
- package/docs/components/fields/FilterPicker.md +33 -16
- package/docs/components/fields/HueSlider.md +5 -5
- package/docs/components/fields/ListBox.md +35 -9
- package/docs/components/fields/NumberInput.md +3 -0
- package/docs/components/fields/PasswordInput.md +3 -0
- package/docs/components/fields/PeriodPicker.md +7 -17
- package/docs/components/fields/Picker.md +54 -29
- package/docs/components/fields/RadioGroup.md +13 -5
- package/docs/components/fields/SearchComboBox.md +3 -0
- package/docs/components/fields/SearchInput.md +4 -2
- package/docs/components/fields/Select.md +23 -13
- package/docs/components/fields/Switch.md +3 -0
- package/docs/components/fields/TextInput.md +3 -0
- package/docs/components/fields/TextInputMapper.md +1 -2
- package/docs/components/form/Field.md +5 -2
- package/docs/components/form/Form.md +5 -0
- package/docs/components/form/FormInstance.md +1 -1
- package/docs/components/helpers/DisplayTransition.md +10 -6
- package/docs/components/helpers/IconSwitch.md +1 -0
- package/docs/components/layout/Board.md +79 -213
- package/docs/components/navigation/Pagination.md +36 -75
- package/docs/components/navigation/Tabs.md +3 -15
- package/docs/components/other/Calendar.md +22 -39
- package/docs/components/other/CubeLogo.md +1 -1
- package/docs/components/overlays/Dialog.md +3 -0
- package/docs/components/overlays/DialogContainer.md +2 -0
- package/docs/components/overlays/DialogForm.md +6 -2
- package/docs/components/overlays/DialogTrigger.md +4 -2
- package/docs/components/overlays/Notifications.md +7 -0
- package/docs/components/overlays/Toast.md +12 -8
- package/docs/components/overlays/Tooltip.md +7 -3
- package/docs/components/overlays/UseDialogContainer.md +16 -10
- package/docs/components/status/LoadingAnimation.md +3 -9
- package/docs/tasty/configuration.md +195 -15
- package/docs/tasty/dsl.md +40 -5
- package/docs/tasty/injector.md +11 -0
- package/docs/tasty/methodology.md +1 -1
- package/docs/tasty/pipeline.md +1 -4
- package/docs/tasty/react-api.md +1 -1
- package/docs/tasty/styles.md +8 -1
- package/package.json +4 -4
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +0 -2
- package/dist/components/portal/PortalProvider.d.ts +0 -2
- package/dist/tokens/index.js.map +0 -1
|
@@ -64,6 +64,7 @@ Supports all [Field properties](../../FieldProperties.md)
|
|
|
64
64
|
Customizes the root wrapper element of the component.
|
|
65
65
|
|
|
66
66
|
**Sub-elements:**
|
|
67
|
+
|
|
67
68
|
- `ValidationState` - Container for validation and loading indicators
|
|
68
69
|
|
|
69
70
|
#### listStyles
|
|
@@ -75,6 +76,7 @@ Customizes the list container element.
|
|
|
75
76
|
Customizes individual option elements.
|
|
76
77
|
|
|
77
78
|
**Sub-elements:**
|
|
79
|
+
|
|
78
80
|
- `Label` - The main text of each option
|
|
79
81
|
- `Description` - Secondary descriptive text for options
|
|
80
82
|
- `Content` - Container for label and description
|
|
@@ -126,42 +128,51 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
126
128
|
### Selection Behavior
|
|
127
129
|
|
|
128
130
|
**isCheckable** (`boolean`, default: `false`)
|
|
131
|
+
|
|
129
132
|
- When `true` in multiple selection mode, displays checkboxes on the left of each option
|
|
130
133
|
- Checkboxes are visible when the item is hovered, focused, or selected
|
|
131
134
|
- Improves clarity of multiple selection interactions
|
|
132
135
|
|
|
133
136
|
**showSelectAll** (`boolean`, default: `false`)
|
|
137
|
+
|
|
134
138
|
- When `true` in multiple selection mode, displays a "Select All" option in the header
|
|
135
139
|
- The checkbox shows three states: unchecked (none selected), indeterminate (some selected), checked (all selected)
|
|
136
140
|
- Only works with `selectionMode="multiple"`
|
|
137
141
|
|
|
138
142
|
**selectAllLabel** (`ReactNode`, default: `'Select All'`)
|
|
143
|
+
|
|
139
144
|
- Custom label for the "Select All" option
|
|
140
145
|
- Only used when `showSelectAll={true}`
|
|
141
146
|
|
|
142
147
|
**allValueProps** (`Partial<CubeItemProps>`)
|
|
148
|
+
|
|
143
149
|
- Props to customize the styling and behavior of the "Select All" option
|
|
144
150
|
- Accepts any Item props like `styles`, `icon`, etc.
|
|
145
151
|
|
|
146
152
|
**disallowEmptySelection** (`boolean`, default: `false`)
|
|
153
|
+
|
|
147
154
|
- When `true`, prevents the user from deselecting the last selected item
|
|
148
155
|
- Ensures at least one item is always selected in single selection mode
|
|
149
156
|
|
|
150
157
|
**allowDuplicateSelectionEvents** (`boolean`, default: `false`)
|
|
158
|
+
|
|
151
159
|
- When `true`, `onSelectionChange` fires even when the new selection equals the current one (React Stately suppresses such duplicate events by default)
|
|
152
160
|
- Used by popover-based wrappers (Picker, FilterPicker) together with `disallowEmptySelection` to close the popover when the user re-selects the current item
|
|
153
161
|
|
|
154
162
|
**disableSelectionToggle** (`boolean`, default: `false`)
|
|
163
|
+
|
|
155
164
|
- When `true`, clicking an already-selected item keeps it selected instead of toggling it off
|
|
156
165
|
- Useful when embedding ListBox inside components like ComboBox
|
|
157
166
|
|
|
158
167
|
**disabledKeys** (`Key[]`)
|
|
168
|
+
|
|
159
169
|
- Array of keys for items that should be disabled
|
|
160
170
|
- Disabled items cannot be selected and are visually distinguished
|
|
161
171
|
|
|
162
172
|
### Visual Styling
|
|
163
173
|
|
|
164
174
|
**shape** (`'card' | 'plain' | 'popover'`, default: `'card'`)
|
|
175
|
+
|
|
165
176
|
- Controls the visual styling of the ListBox container
|
|
166
177
|
- `card`: Standard card styling with border and margin (default)
|
|
167
178
|
- `plain`: No border, no margin, no radius - suitable for embedded use
|
|
@@ -172,39 +183,47 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
172
183
|
### Focus and Interaction
|
|
173
184
|
|
|
174
185
|
**focusOnHover** (`boolean`, default: `true`)
|
|
186
|
+
|
|
175
187
|
- When `true`, moving the pointer over an option will move DOM focus to that option
|
|
176
188
|
- Set to `false` for components that keep DOM focus outside (e.g., searchable FilterListBox)
|
|
177
189
|
|
|
178
190
|
**shouldUseVirtualFocus** (`boolean`, default: `false`)
|
|
191
|
+
|
|
179
192
|
- When `true`, uses virtual focus for keyboard navigation
|
|
180
193
|
- DOM focus stays outside individual option elements (useful for searchable lists)
|
|
181
194
|
|
|
182
195
|
**shouldFocusWrap** (`boolean`, default: `false`)
|
|
196
|
+
|
|
183
197
|
- When `true`, keyboard navigation wraps around when reaching the end of the list
|
|
184
198
|
|
|
185
199
|
### Event Handlers
|
|
186
200
|
|
|
187
201
|
**onSelectionChange** (`(key: Key | null | 'all' | Key[]) => void`)
|
|
202
|
+
|
|
188
203
|
- Callback fired when selection changes
|
|
189
204
|
- In single mode: receives a single key or `null`
|
|
190
205
|
- In multiple mode: receives an array of keys or `'all'` for select all
|
|
191
206
|
|
|
192
207
|
**onEscape** (`() => void`)
|
|
208
|
+
|
|
193
209
|
- Callback fired when the user presses Escape key
|
|
194
210
|
- When provided, prevents React Aria's default Escape behavior (selection reset)
|
|
195
211
|
- Useful for closing parent overlays
|
|
196
212
|
|
|
197
213
|
**onOptionClick** (`(key: Key) => void`)
|
|
214
|
+
|
|
198
215
|
- Callback fired when an option is clicked (not on the checkbox area in checkable mode)
|
|
199
216
|
- Used by FilterPicker to close the popover on non-checkbox clicks
|
|
200
217
|
|
|
201
218
|
### Advanced
|
|
202
219
|
|
|
203
220
|
**stateRef** (`RefObject<any>`)
|
|
221
|
+
|
|
204
222
|
- Ref to access the internal ListState instance
|
|
205
223
|
- Allows parent components to access selection state and other list functionality
|
|
206
224
|
|
|
207
225
|
**listRef** (`RefObject<HTMLUListElement>`)
|
|
226
|
+
|
|
208
227
|
- Ref for accessing the list DOM element
|
|
209
228
|
|
|
210
229
|
## Sub-components
|
|
@@ -235,16 +254,16 @@ ListBox.Item is built using [Item](../content/Item.md), which provides rich layo
|
|
|
235
254
|
|
|
236
255
|
```jsx
|
|
237
256
|
<ListBox label="Team Members" selectionMode="multiple">
|
|
238
|
-
<ListBox.Item
|
|
239
|
-
key="user1"
|
|
257
|
+
<ListBox.Item
|
|
258
|
+
key="user1"
|
|
240
259
|
icon={<IconUser />}
|
|
241
260
|
description="Product Manager"
|
|
242
261
|
suffix="Online"
|
|
243
262
|
>
|
|
244
263
|
Alice Johnson
|
|
245
264
|
</ListBox.Item>
|
|
246
|
-
<ListBox.Item
|
|
247
|
-
key="user2"
|
|
265
|
+
<ListBox.Item
|
|
266
|
+
key="user2"
|
|
248
267
|
icon={<IconUser />}
|
|
249
268
|
description="Senior Developer"
|
|
250
269
|
rightIcon={<IconBadge />}
|
|
@@ -291,14 +310,14 @@ Groups related items together with an optional heading.
|
|
|
291
310
|
|
|
292
311
|
```jsx
|
|
293
312
|
<ListBox label="Choose a framework" selectionMode="single">
|
|
294
|
-
<ListBox.Item
|
|
295
|
-
key="react"
|
|
313
|
+
<ListBox.Item
|
|
314
|
+
key="react"
|
|
296
315
|
description="A JavaScript library for building user interfaces"
|
|
297
316
|
>
|
|
298
317
|
React
|
|
299
318
|
</ListBox.Item>
|
|
300
|
-
<ListBox.Item
|
|
301
|
-
key="vue"
|
|
319
|
+
<ListBox.Item
|
|
320
|
+
key="vue"
|
|
302
321
|
description="The Progressive JavaScript Framework"
|
|
303
322
|
>
|
|
304
323
|
Vue.js
|
|
@@ -671,6 +690,7 @@ const [keyOrder, setKeyOrder] = useState([
|
|
|
671
690
|
## Best Practices
|
|
672
691
|
|
|
673
692
|
1. **Do**: Provide clear, descriptive labels for options
|
|
693
|
+
|
|
674
694
|
```jsx
|
|
675
695
|
<ListBox.Item key="react" description="JavaScript library for UIs">
|
|
676
696
|
React
|
|
@@ -678,6 +698,7 @@ const [keyOrder, setKeyOrder] = useState([
|
|
|
678
698
|
```
|
|
679
699
|
|
|
680
700
|
2. **Don't**: Use ListBox for very large datasets without considering virtualization
|
|
701
|
+
|
|
681
702
|
```jsx
|
|
682
703
|
// ✅ Virtualization is automatic for lists without sections
|
|
683
704
|
<ListBox height="300px">
|
|
@@ -686,6 +707,7 @@ const [keyOrder, setKeyOrder] = useState([
|
|
|
686
707
|
```
|
|
687
708
|
|
|
688
709
|
3. **Do**: Use sections to organize related options
|
|
710
|
+
|
|
689
711
|
```jsx
|
|
690
712
|
<ListBox.Section title="Frontend Frameworks">
|
|
691
713
|
<ListBox.Item key="react">React</ListBox.Item>
|
|
@@ -693,6 +715,7 @@ const [keyOrder, setKeyOrder] = useState([
|
|
|
693
715
|
```
|
|
694
716
|
|
|
695
717
|
4. **Do**: Use `isCheckable` for clearer multiple selection UI
|
|
718
|
+
|
|
696
719
|
```jsx
|
|
697
720
|
<ListBox selectionMode="multiple" isCheckable={true}>
|
|
698
721
|
{/* Checkboxes make the selection state obvious */}
|
|
@@ -700,6 +723,7 @@ const [keyOrder, setKeyOrder] = useState([
|
|
|
700
723
|
```
|
|
701
724
|
|
|
702
725
|
5. **Do**: Use `showSelectAll` for efficient multiple selection from lists
|
|
726
|
+
|
|
703
727
|
```jsx
|
|
704
728
|
<ListBox selectionMode="multiple" isCheckable={true} showSelectAll selectAllLabel="Select All">
|
|
705
729
|
{/* Easy bulk selection with visual feedback */}
|
|
@@ -707,6 +731,7 @@ const [keyOrder, setKeyOrder] = useState([
|
|
|
707
731
|
```
|
|
708
732
|
|
|
709
733
|
6. **Do**: Use `textValue` for complex option content
|
|
734
|
+
|
|
710
735
|
```jsx
|
|
711
736
|
<ListBox.Item key="item" textValue="Basic Plan - Free">
|
|
712
737
|
<Space gap="1x" flow="column">
|
|
@@ -717,6 +742,7 @@ const [keyOrder, setKeyOrder] = useState([
|
|
|
717
742
|
```
|
|
718
743
|
|
|
719
744
|
7. **Do**: Leverage Item features for rich content
|
|
745
|
+
|
|
720
746
|
```jsx
|
|
721
747
|
<ListBox.Item
|
|
722
748
|
key="admin"
|
|
@@ -786,4 +812,4 @@ const items = Array.from({ length: 1000 }, (_, i) => ({
|
|
|
786
812
|
- [Select](./Select.md) - Dropdown selection without persistent visibility
|
|
787
813
|
- [ComboBox](./ComboBox.md) - Dropdown with text input and search
|
|
788
814
|
- [RadioGroup](./RadioGroup.md) - Single selection with radio buttons
|
|
789
|
-
- [CheckboxGroup](./Checkbox.md) - Multiple selection with checkboxes
|
|
815
|
+
- [CheckboxGroup](./Checkbox.md) - Multiple selection with checkboxes
|
|
@@ -53,6 +53,7 @@ Supports all [Field properties](../../FieldProperties.md)
|
|
|
53
53
|
Customizes the root element of the component.
|
|
54
54
|
|
|
55
55
|
**Sub-elements:**
|
|
56
|
+
|
|
56
57
|
- `InputWrapper` – container around the input field
|
|
57
58
|
- `Prefix` – wrapper around prefix content
|
|
58
59
|
- `Suffix` – wrapper around suffix content
|
|
@@ -157,11 +158,13 @@ The `mods` prop accepts the following modifiers you can override:
|
|
|
157
158
|
## Best Practices
|
|
158
159
|
|
|
159
160
|
1. **Do**: Provide clear labels and helpful placeholder text
|
|
161
|
+
|
|
160
162
|
```jsx
|
|
161
163
|
<NumberInput label="Quantity" placeholder="0" />
|
|
162
164
|
```
|
|
163
165
|
|
|
164
166
|
2. **Don't**: Use placeholder text as the only label
|
|
167
|
+
|
|
165
168
|
```jsx
|
|
166
169
|
{/* Avoid this */}
|
|
167
170
|
<NumberInput placeholder="Enter a number" />
|
|
@@ -47,6 +47,7 @@ Supports all [Field properties](../../FieldProperties.md)
|
|
|
47
47
|
Customizes the root wrapper element of the component.
|
|
48
48
|
|
|
49
49
|
**Sub-elements:**
|
|
50
|
+
|
|
50
51
|
- `Prefix` - Element displayed before the input
|
|
51
52
|
- `Suffix` - Element displayed after the input (contains toggle button)
|
|
52
53
|
- `State` - Container for validation state indicators
|
|
@@ -186,6 +187,7 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
186
187
|
## Best Practices
|
|
187
188
|
|
|
188
189
|
1. **Do**: Provide clear password requirements and feedback
|
|
190
|
+
|
|
189
191
|
```jsx
|
|
190
192
|
<PasswordInput
|
|
191
193
|
label="New Password"
|
|
@@ -196,6 +198,7 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
196
198
|
```
|
|
197
199
|
|
|
198
200
|
2. **Don't**: Use password input for non-sensitive data
|
|
201
|
+
|
|
199
202
|
```jsx
|
|
200
203
|
<PasswordInput label="Username" /> {/* Use TextInput instead */}
|
|
201
204
|
```
|
|
@@ -1,24 +1,17 @@
|
|
|
1
1
|
# Period Pickers
|
|
2
2
|
|
|
3
|
-
`WeekPicker`, `MonthPicker`, `QuarterPicker`, and `YearPicker` let users select a
|
|
4
|
-
whole calendar period instead of a specific day. They mirror Ant Design's
|
|
5
|
-
`DatePicker picker="week|month|quarter|year"` feature, but are exposed as four
|
|
6
|
-
dedicated components that share a single implementation.
|
|
3
|
+
`WeekPicker`, `MonthPicker`, `QuarterPicker`, and `YearPicker` let users select a whole calendar period instead of a specific day. They mirror Ant Design's `DatePicker picker="week|month|quarter|year"` feature, but are exposed as four dedicated components that share a single implementation.
|
|
7
4
|
|
|
8
|
-
The value is always a single `CalendarDate` (from `@internationalized/date`)
|
|
9
|
-
**snapped to the start of the chosen period**:
|
|
5
|
+
The value is always a single `CalendarDate` (from `@internationalized/date`) **snapped to the start of the chosen period**:
|
|
10
6
|
|
|
11
7
|
- **Week** → the first day of the week (locale-aware)
|
|
12
8
|
- **Month** → the 1st of the month
|
|
13
9
|
- **Quarter** → the 1st of the first month of the quarter
|
|
14
10
|
- **Year** → January 1st
|
|
15
11
|
|
|
16
|
-
The field renders a compact label for the selected period (`2026-W33`, `2026-08`,
|
|
17
|
-
`2026-Q3`, `2026`). Use `formatValue` to override it.
|
|
12
|
+
The field renders a compact label for the selected period (`2026-W33`, `2026-08`, `2026-Q3`, `2026`). Use `formatValue` to override it.
|
|
18
13
|
|
|
19
|
-
In the month and quarter panels the year in the header is a button that opens a
|
|
20
|
-
year list, so picking a period several years away takes two clicks instead of
|
|
21
|
-
paging through the arrows.
|
|
14
|
+
In the month and quarter panels the year in the header is a button that opens a year list, so picking a period several years away takes two clicks instead of paging through the arrows.
|
|
22
15
|
|
|
23
16
|
## When to Use
|
|
24
17
|
|
|
@@ -47,8 +40,7 @@ paging through the arrows.
|
|
|
47
40
|
- **`onChange`** `(value: DateValue | null) => void` — Fired when the selected period changes
|
|
48
41
|
- **`onOpenChange`** `(isOpen: boolean) => void` — Fired when the popover opens or closes
|
|
49
42
|
|
|
50
|
-
`WeekPicker`, `MonthPicker`, `QuarterPicker` and `YearPicker` are thin wrappers
|
|
51
|
-
that pin `picker`; everything else is identical.
|
|
43
|
+
`WeekPicker`, `MonthPicker`, `QuarterPicker` and `YearPicker` are thin wrappers that pin `picker`; everything else is identical.
|
|
52
44
|
|
|
53
45
|
### Base Properties
|
|
54
46
|
|
|
@@ -88,8 +80,7 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
88
80
|
|
|
89
81
|
### Limited range
|
|
90
82
|
|
|
91
|
-
Periods that fall entirely outside `minValue` / `maxValue` are disabled, and the
|
|
92
|
-
navigation arrows stop at the edge of the range.
|
|
83
|
+
Periods that fall entirely outside `minValue` / `maxValue` are disabled, and the navigation arrows stop at the edge of the range.
|
|
93
84
|
|
|
94
85
|
## Accessibility
|
|
95
86
|
|
|
@@ -105,8 +96,7 @@ navigation arrows stop at the edge of the range.
|
|
|
105
96
|
### Screen Reader Support
|
|
106
97
|
|
|
107
98
|
- The panel is a `grid` labelled `Months`, `Quarters` or `Years`
|
|
108
|
-
- The trigger is described by the field's current value, so the selection is
|
|
109
|
-
announced along with the button
|
|
99
|
+
- The trigger is described by the field's current value, so the selection is announced along with the button
|
|
110
100
|
|
|
111
101
|
## Related Components
|
|
112
102
|
|
|
@@ -80,6 +80,7 @@ Supports all [Field properties](../../FieldProperties.md)
|
|
|
80
80
|
Customizes the root wrapper element and the trigger button of the Picker component.
|
|
81
81
|
|
|
82
82
|
**Sub-elements:**
|
|
83
|
+
|
|
83
84
|
- None
|
|
84
85
|
|
|
85
86
|
#### triggerStyles
|
|
@@ -87,6 +88,7 @@ Customizes the root wrapper element and the trigger button of the Picker compone
|
|
|
87
88
|
Customizes the DialogTrigger wrapper that contains the trigger button and manages the popover.
|
|
88
89
|
|
|
89
90
|
**Sub-elements:**
|
|
91
|
+
|
|
90
92
|
- None
|
|
91
93
|
|
|
92
94
|
#### listBoxStyles
|
|
@@ -94,8 +96,9 @@ Customizes the DialogTrigger wrapper that contains the trigger button and manage
|
|
|
94
96
|
Customizes the ListBox component styles within the popover. See [ListBox documentation](./ListBox.md) for available sub-elements.
|
|
95
97
|
|
|
96
98
|
**Sub-elements:**
|
|
99
|
+
|
|
97
100
|
- `Label` - Item label text
|
|
98
|
-
- `Description` - Item description text
|
|
101
|
+
- `Description` - Item description text
|
|
99
102
|
- `Content` - Item content wrapper
|
|
100
103
|
- `Checkbox` - Checkbox element in multiple selection mode
|
|
101
104
|
- `CheckboxWrapper` - Wrapper around checkbox
|
|
@@ -105,6 +108,7 @@ Customizes the ListBox component styles within the popover. See [ListBox documen
|
|
|
105
108
|
Customizes the popover Dialog that contains the ListBox. See [Dialog documentation](../overlays/Dialog.md) for available sub-elements.
|
|
106
109
|
|
|
107
110
|
**Sub-elements:**
|
|
111
|
+
|
|
108
112
|
- None for Dialog in popover mode
|
|
109
113
|
|
|
110
114
|
#### listStyles
|
|
@@ -175,17 +179,18 @@ See [Item documentation](../content/Item.md) for the complete API. Common proper
|
|
|
175
179
|
#### Examples with Rich Items
|
|
176
180
|
|
|
177
181
|
**With Icons and Descriptions:**
|
|
182
|
+
|
|
178
183
|
```jsx
|
|
179
184
|
<Picker label="Team Selection" selectionMode="single">
|
|
180
|
-
<Picker.Item
|
|
181
|
-
key="active"
|
|
185
|
+
<Picker.Item
|
|
186
|
+
key="active"
|
|
182
187
|
icon={<IconUsers />}
|
|
183
188
|
description="All active team members"
|
|
184
189
|
>
|
|
185
190
|
Active Users
|
|
186
191
|
</Picker.Item>
|
|
187
|
-
<Picker.Item
|
|
188
|
-
key="admins"
|
|
192
|
+
<Picker.Item
|
|
193
|
+
key="admins"
|
|
189
194
|
icon={<IconShield />}
|
|
190
195
|
description="Admin users only"
|
|
191
196
|
>
|
|
@@ -195,16 +200,17 @@ See [Item documentation](../content/Item.md) for the complete API. Common proper
|
|
|
195
200
|
```
|
|
196
201
|
|
|
197
202
|
**With Prefix and Suffix:**
|
|
203
|
+
|
|
198
204
|
```jsx
|
|
199
205
|
<Picker label="Select Plan" selectionMode="single">
|
|
200
|
-
<Picker.Item
|
|
206
|
+
<Picker.Item
|
|
201
207
|
key="free"
|
|
202
208
|
prefix={<Badge>Free</Badge>}
|
|
203
209
|
suffix="$0/mo"
|
|
204
210
|
>
|
|
205
211
|
Basic Plan
|
|
206
212
|
</Picker.Item>
|
|
207
|
-
<Picker.Item
|
|
213
|
+
<Picker.Item
|
|
208
214
|
key="pro"
|
|
209
215
|
prefix={<Badge type="primary">Pro</Badge>}
|
|
210
216
|
suffix="$29/mo"
|
|
@@ -274,12 +280,14 @@ For large datasets or dynamic content, use the `items` prop with a render functi
|
|
|
274
280
|
```
|
|
275
281
|
|
|
276
282
|
**Key Benefits:**
|
|
283
|
+
|
|
277
284
|
- **Virtualization**: Automatically enabled for large lists without sections
|
|
278
285
|
- **Performance**: Only renders visible items in the DOM
|
|
279
286
|
- **Dynamic Content**: Perfect for data fetched from APIs or changing datasets
|
|
280
287
|
- **Memory Efficient**: Handles thousands of items smoothly
|
|
281
288
|
|
|
282
289
|
**When to Use:**
|
|
290
|
+
|
|
283
291
|
- Lists with 50+ items
|
|
284
292
|
- Dynamic data from APIs
|
|
285
293
|
- Content that changes frequently
|
|
@@ -320,8 +328,8 @@ Control the color scheme with the `theme` prop:
|
|
|
320
328
|
Standard single-selection picker with a placeholder and label.
|
|
321
329
|
|
|
322
330
|
```jsx
|
|
323
|
-
<Picker
|
|
324
|
-
label="Favorite Fruit"
|
|
331
|
+
<Picker
|
|
332
|
+
label="Favorite Fruit"
|
|
325
333
|
placeholder="Select a fruit"
|
|
326
334
|
selectionMode="single"
|
|
327
335
|
>
|
|
@@ -460,7 +468,7 @@ const categories = [
|
|
|
460
468
|
Picker supports three sizes: small, medium (default), and large.
|
|
461
469
|
|
|
462
470
|
```jsx
|
|
463
|
-
<Picker
|
|
471
|
+
<Picker
|
|
464
472
|
size="small"
|
|
465
473
|
label="Small Picker"
|
|
466
474
|
placeholder="Select a fruit"
|
|
@@ -469,7 +477,7 @@ Picker supports three sizes: small, medium (default), and large.
|
|
|
469
477
|
<Picker.Item key="banana">Banana</Picker.Item>
|
|
470
478
|
</Picker>
|
|
471
479
|
|
|
472
|
-
<Picker
|
|
480
|
+
<Picker
|
|
473
481
|
size="medium"
|
|
474
482
|
label="Medium Picker"
|
|
475
483
|
placeholder="Select a fruit"
|
|
@@ -478,7 +486,7 @@ Picker supports three sizes: small, medium (default), and large.
|
|
|
478
486
|
<Picker.Item key="banana">Banana</Picker.Item>
|
|
479
487
|
</Picker>
|
|
480
488
|
|
|
481
|
-
<Picker
|
|
489
|
+
<Picker
|
|
482
490
|
size="large"
|
|
483
491
|
label="Large Picker"
|
|
484
492
|
placeholder="Select a fruit"
|
|
@@ -552,6 +560,7 @@ The Picker component is built with React Aria hooks and provides comprehensive a
|
|
|
552
560
|
- **`Space`** or **`Enter`** — Selects the focused item (single mode closes popover automatically)
|
|
553
561
|
|
|
554
562
|
**In the popover:**
|
|
563
|
+
|
|
555
564
|
- Arrow keys navigate through items
|
|
556
565
|
- Home/End keys jump to first/last item
|
|
557
566
|
- Type-ahead: typing characters focuses matching items
|
|
@@ -581,26 +590,30 @@ The following ARIA attributes are automatically managed by React Aria and do not
|
|
|
581
590
|
### Best Practices for Accessibility
|
|
582
591
|
|
|
583
592
|
1. **Always provide a label**: Use the `label` prop or `aria-label` for screen reader users
|
|
593
|
+
|
|
584
594
|
```jsx
|
|
585
595
|
<Picker label="Select Category">...</Picker>
|
|
586
596
|
```
|
|
587
597
|
|
|
588
598
|
2. **Use meaningful placeholders**: Placeholders should describe the expected selection
|
|
599
|
+
|
|
589
600
|
```jsx
|
|
590
601
|
<Picker placeholder="Choose a category" label="Category">...</Picker>
|
|
591
602
|
```
|
|
592
603
|
|
|
593
604
|
3. **Provide help text**: Use `description` for additional context
|
|
605
|
+
|
|
594
606
|
```jsx
|
|
595
|
-
<Picker
|
|
607
|
+
<Picker
|
|
596
608
|
label="Priority"
|
|
597
609
|
description="Select the task priority level"
|
|
598
610
|
>...</Picker>
|
|
599
611
|
```
|
|
600
612
|
|
|
601
613
|
4. **Handle validation properly**: Use the `isInvalid` / `isValid` and `errorMessage` props
|
|
614
|
+
|
|
602
615
|
```jsx
|
|
603
|
-
<Picker
|
|
616
|
+
<Picker
|
|
604
617
|
isInvalid
|
|
605
618
|
message="Please select an option"
|
|
606
619
|
>...</Picker>
|
|
@@ -616,9 +629,10 @@ The following ARIA attributes are automatically managed by React Aria and do not
|
|
|
616
629
|
## Best Practices
|
|
617
630
|
|
|
618
631
|
1. **Do**: Provide clear, descriptive labels and placeholders
|
|
632
|
+
|
|
619
633
|
```jsx
|
|
620
|
-
<Picker
|
|
621
|
-
label="Product Category"
|
|
634
|
+
<Picker
|
|
635
|
+
label="Product Category"
|
|
622
636
|
placeholder="Choose a category..."
|
|
623
637
|
selectionMode="single"
|
|
624
638
|
>
|
|
@@ -628,12 +642,13 @@ The following ARIA attributes are automatically managed by React Aria and do not
|
|
|
628
642
|
```
|
|
629
643
|
|
|
630
644
|
2. **Don't**: Use overly long option texts that will be truncated
|
|
645
|
+
|
|
631
646
|
```jsx
|
|
632
647
|
// Avoid
|
|
633
648
|
<Picker.Item key="long">
|
|
634
649
|
This is an extremely long option text that will be truncated and hard to read
|
|
635
650
|
</Picker.Item>
|
|
636
|
-
|
|
651
|
+
|
|
637
652
|
// Instead, use description
|
|
638
653
|
<Picker.Item key="short" description="Additional details here">
|
|
639
654
|
Short Label
|
|
@@ -641,6 +656,7 @@ The following ARIA attributes are automatically managed by React Aria and do not
|
|
|
641
656
|
```
|
|
642
657
|
|
|
643
658
|
3. **Do**: Use sections for logical grouping
|
|
659
|
+
|
|
644
660
|
```jsx
|
|
645
661
|
<Picker label="Select Food" selectionMode="single">
|
|
646
662
|
<Picker.Section title="Fruits">
|
|
@@ -653,6 +669,7 @@ The following ARIA attributes are automatically managed by React Aria and do not
|
|
|
653
669
|
```
|
|
654
670
|
|
|
655
671
|
4. **Do**: Use the `items` prop for large datasets to enable virtualization
|
|
672
|
+
|
|
656
673
|
```jsx
|
|
657
674
|
<Picker items={largeDataset} label="Select Item">
|
|
658
675
|
{(item) => <Picker.Item key={item.id}>{item.name}</Picker.Item>}
|
|
@@ -660,10 +677,11 @@ The following ARIA attributes are automatically managed by React Aria and do not
|
|
|
660
677
|
```
|
|
661
678
|
|
|
662
679
|
5. **Do**: Use `isClearable` for optional single selections
|
|
680
|
+
|
|
663
681
|
```jsx
|
|
664
|
-
<Picker
|
|
682
|
+
<Picker
|
|
665
683
|
label="Optional Filter"
|
|
666
|
-
selectionMode="single"
|
|
684
|
+
selectionMode="single"
|
|
667
685
|
isClearable
|
|
668
686
|
placeholder="Choose an option..."
|
|
669
687
|
>
|
|
@@ -672,11 +690,12 @@ The following ARIA attributes are automatically managed by React Aria and do not
|
|
|
672
690
|
```
|
|
673
691
|
|
|
674
692
|
6. **Do**: Use `showSelectAll` for efficient multiple selection
|
|
693
|
+
|
|
675
694
|
```jsx
|
|
676
|
-
<Picker
|
|
695
|
+
<Picker
|
|
677
696
|
label="Permissions"
|
|
678
|
-
selectionMode="multiple"
|
|
679
|
-
showSelectAll
|
|
697
|
+
selectionMode="multiple"
|
|
698
|
+
showSelectAll
|
|
680
699
|
selectAllLabel="All Permissions"
|
|
681
700
|
isCheckable
|
|
682
701
|
>
|
|
@@ -686,10 +705,11 @@ The following ARIA attributes are automatically managed by React Aria and do not
|
|
|
686
705
|
```
|
|
687
706
|
|
|
688
707
|
7. **Do**: Use `isCheckable` in multiple selection mode for clarity
|
|
708
|
+
|
|
689
709
|
```jsx
|
|
690
|
-
<Picker
|
|
710
|
+
<Picker
|
|
691
711
|
label="Select Options"
|
|
692
|
-
selectionMode="multiple"
|
|
712
|
+
selectionMode="multiple"
|
|
693
713
|
isCheckable
|
|
694
714
|
>
|
|
695
715
|
<Picker.Item key="option1">Option 1</Picker.Item>
|
|
@@ -781,7 +801,7 @@ const renderSummary = ({ selectedLabels, selectedKeys, selectionMode }) => {
|
|
|
781
801
|
if (selectionMode === 'single') {
|
|
782
802
|
return selectedLabels?.[0] ? `Selected: ${selectedLabels[0]}` : null;
|
|
783
803
|
}
|
|
784
|
-
|
|
804
|
+
|
|
785
805
|
if (!selectedKeys || selectedKeys.length === 0) return null;
|
|
786
806
|
if (selectedKeys === 'all') return 'All items selected';
|
|
787
807
|
if (selectedKeys.length === 1) return selectedLabels[0];
|
|
@@ -789,7 +809,7 @@ const renderSummary = ({ selectedLabels, selectedKeys, selectionMode }) => {
|
|
|
789
809
|
return `${selectedKeys.length} items selected`;
|
|
790
810
|
};
|
|
791
811
|
|
|
792
|
-
<Picker
|
|
812
|
+
<Picker
|
|
793
813
|
label="Custom Summary"
|
|
794
814
|
selectionMode="multiple"
|
|
795
815
|
renderSummary={renderSummary}
|
|
@@ -822,6 +842,7 @@ For space-constrained interfaces, hide the summary text and show only an icon:
|
|
|
822
842
|
Full control over selection state for integration with external state management:
|
|
823
843
|
|
|
824
844
|
**Single Selection:**
|
|
845
|
+
|
|
825
846
|
```jsx
|
|
826
847
|
const [selectedKey, setSelectedKey] = useState(null);
|
|
827
848
|
|
|
@@ -837,6 +858,7 @@ const [selectedKey, setSelectedKey] = useState(null);
|
|
|
837
858
|
```
|
|
838
859
|
|
|
839
860
|
**Multiple Selection:**
|
|
861
|
+
|
|
840
862
|
```jsx
|
|
841
863
|
const [selectedKeys, setSelectedKeys] = useState([]);
|
|
842
864
|
|
|
@@ -888,15 +910,18 @@ const fruits = [
|
|
|
888
910
|
### Optimization Tips
|
|
889
911
|
|
|
890
912
|
1. **Use Dynamic Content Pattern for Large Lists**
|
|
913
|
+
|
|
891
914
|
- For lists with 50+ items, use the `items` prop with a render function
|
|
892
915
|
- This enables automatic virtualization for better performance
|
|
893
916
|
- Only visible items are rendered in the DOM
|
|
894
917
|
|
|
895
918
|
2. **Avoid Sections with Large Datasets**
|
|
919
|
+
|
|
896
920
|
- Virtualization is disabled when sections are present
|
|
897
921
|
- For large lists, prefer flat structure or use filtering instead
|
|
898
922
|
|
|
899
923
|
3. **Provide `textValue` for Complex Content**
|
|
924
|
+
|
|
900
925
|
- When items contain complex JSX, provide a `textValue` prop
|
|
901
926
|
- This helps with accessibility and potential search functionality
|
|
902
927
|
|
|
@@ -910,7 +935,7 @@ Virtualization is automatically enabled when using the `items` prop without sect
|
|
|
910
935
|
|
|
911
936
|
```jsx
|
|
912
937
|
// ✅ Virtualized - excellent performance with thousands of items
|
|
913
|
-
<Picker
|
|
938
|
+
<Picker
|
|
914
939
|
items={thousandsOfItems}
|
|
915
940
|
label="Large Dataset"
|
|
916
941
|
>
|
|
@@ -934,8 +959,8 @@ Optimize complex item content with the `textValue` prop for better accessibility
|
|
|
934
959
|
```jsx
|
|
935
960
|
<Picker label="Select User" items={users}>
|
|
936
961
|
{(user) => (
|
|
937
|
-
<Picker.Item
|
|
938
|
-
key={user.id}
|
|
962
|
+
<Picker.Item
|
|
963
|
+
key={user.id}
|
|
939
964
|
textValue={`${user.name} - ${user.role}`}
|
|
940
965
|
>
|
|
941
966
|
<UserCard user={user} />
|