@cube-dev/ui-kit 0.0.0-canary-bef9600 → 0.0.0-canary-e3f8a1a
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/_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 +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +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.js +11 -5
- package/dist/components/actions/Button/Button.js.map +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 +27 -25
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.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/MenuCollectionItem.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 -4
- package/dist/components/actions/Menu/styled.js.map +1 -1
- package/dist/components/actions/actions-run.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.js +1 -1
- package/dist/components/actions/use-context-menu.js +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.d.ts +4 -4
- 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 +3 -3
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +7 -3
- package/dist/components/content/ItemBadge/ItemBadge.js.map +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 +28 -15
- package/dist/components/content/Layout/Layout.js.map +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 +20 -10
- package/dist/components/content/Layout/LayoutContext.js.map +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +12 -9
- package/dist/components/content/Layout/LayoutFooter.js.map +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/LayoutPanelTransition.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 +3 -3
- package/dist/components/content/use-auto-tooltip.js.map +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/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.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/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/column-header.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.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.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.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-window.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-tooltip-refresh.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +2 -2
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +5 -5
- package/dist/components/fields/Checkbox/CheckboxGroup.js.map +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.d.ts +26 -6
- package/dist/components/fields/ComboBox/ComboBox.js +1095 -619
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +84 -0
- package/dist/components/fields/ComboBox/comboBoxOptions.js.map +1 -0
- 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.d.ts +2 -2
- package/dist/components/fields/Input/Input.js +2 -2
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.d.ts +10 -4
- package/dist/components/fields/ListBox/ListBox.js +293 -143
- package/dist/components/fields/ListBox/ListBox.js.map +1 -1
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +15 -12
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -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.d.ts +0 -1
- package/dist/components/fields/NumberInput/NumberInput.js +136 -128
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +38 -48
- package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.d.ts +1 -2
- package/dist/components/fields/PasswordInput/PasswordInput.js +77 -111
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.d.ts +1 -1
- package/dist/components/fields/Picker/Picker.js +8 -3
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.d.ts +8 -8
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +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.d.ts +8 -3
- package/dist/components/fields/SearchInput/SearchInput.js +22 -29
- package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/fields/Select/Select.d.ts +12 -1
- package/dist/components/fields/Select/Select.js +365 -207
- package/dist/components/fields/Select/Select.js.map +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 +3 -4
- package/dist/components/fields/Slider/RangeSlider.js.map +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/TagInput/TagInput.js +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +1 -1
- package/dist/components/fields/TagInput/useTagError.js +1 -1
- package/dist/components/fields/TextArea/TextArea.d.ts +0 -1
- package/dist/components/fields/TextArea/TextArea.js +49 -63
- package/dist/components/fields/TextArea/TextArea.js.map +1 -1
- package/dist/components/fields/TextInput/TextInput.d.ts +1 -1
- package/dist/components/fields/TextInput/TextInput.js +42 -46
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -2
- package/dist/components/fields/TextInput/TextInputBase.js +32 -10
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/displayed-validation.js +50 -0
- package/dist/components/fields/TextInput/displayed-validation.js.map +1 -0
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +2 -2
- package/dist/components/fields/TriggerActions.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/fields/index.d.ts +2 -2
- package/dist/components/fields/option-origin-press.js +78 -0
- package/dist/components/fields/option-origin-press.js.map +1 -0
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/field-description.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/ModernFormRoot.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/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.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/field-chrome.js +1 -1
- package/dist/components/form/legacy-tooltip.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/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/BoardDragActiveProvider.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.d.ts +6 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +3 -2
- package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +3 -2
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +28 -14
- package/dist/components/overlays/Dialog/Dialog.js.map +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.d.ts +7 -3
- package/dist/components/overlays/Dialog/DialogTrigger.js +149 -132
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +83 -0
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js.map +1 -0
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +3 -2
- package/dist/components/overlays/Modal/Overlay.js.map +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Popover.js.map +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/modal-containment.js +1 -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.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.d.ts +8 -0
- package/dist/components/overlays/Tooltip/Tooltip.js +16 -22
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +163 -113
- package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/context.js.map +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +6 -5
- package/dist/components/overlays/Tooltip/split-trigger-props.js.map +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -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 +11 -17
- 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 +6 -4
- package/dist/i18n/locales/en-US/uikit.js +6 -4
- package/dist/i18n/locales/en-US/uikit.json.d.ts +3 -1
- package/dist/i18n/locales/es-ES/uikit.js +6 -4
- package/dist/i18n/locales/es-MX/uikit.js +6 -4
- package/dist/i18n/locales/fr-FR/uikit.js +6 -4
- package/dist/i18n/locales/it-IT/uikit.js +6 -4
- package/dist/i18n/locales/ja-JP/uikit.js +6 -4
- package/dist/i18n/locales/nb-NO/uikit.js +6 -4
- package/dist/i18n/locales/pt-BR/uikit.js +6 -4
- package/dist/i18n/locales/pt-PT/uikit.js +6 -4
- package/dist/i18n/locales/sv-SE/uikit.js +6 -4
- package/dist/i18n/locales/vi-VN/uikit.js +6 -4
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/namespace.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 +1 -1
- package/dist/index.js +2 -2
- 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/navigation-url.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +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/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.js +1 -1
- 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/colors.js +1 -1
- package/dist/utils/dotize.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 +18 -9
- package/dist/utils/react/nullableValue.js.map +1 -1
- package/dist/utils/react/overlayKeyPropagation.js +1 -1
- package/dist/utils/react/programmaticFocus.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/useOverlayEscapeGuard.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.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 +2 -2
- package/docs/components/actions/Button.md +8 -2
- package/docs/components/content/InfoBadge.md +2 -0
- package/docs/components/content/ItemBadge.md +4 -0
- package/docs/components/content/Layout.md +2 -1
- package/docs/components/fields/ComboBox.md +25 -18
- package/docs/components/fields/FilterListBox.md +2 -2
- package/docs/components/fields/FilterPicker.md +2 -2
- package/docs/components/fields/ListBox.md +14 -10
- package/docs/components/fields/NumberInput.md +10 -10
- package/docs/components/fields/PasswordInput.md +6 -7
- package/docs/components/fields/Picker.md +6 -5
- package/docs/components/fields/RadioGroup.md +1 -1
- package/docs/components/fields/SearchInput.md +7 -6
- package/docs/components/fields/Select.md +14 -8
- package/docs/components/fields/TextArea.md +4 -3
- package/docs/components/fields/TextInput.md +13 -6
- package/docs/components/overlays/AlertDialog.md +7 -1
- package/docs/components/overlays/Dialog.md +5 -5
- package/docs/components/overlays/DialogTrigger.md +6 -6
- package/docs/components/overlays/Tooltip.md +17 -6
- package/docs/components/overlays/TooltipTrigger.md +2 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["AriaLabelingProps","CollectionBase","Key","BASE_STYLES","BasePropsWithoutChildren","BaseStyleProps","COLOR_STYLES","ColorStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","React","cloneElement","ForwardedRef","forwardRef","ForwardRefRenderFunction","KeyboardEvent","ReactElement","ReactNode","RefObject","useEffect","useMemo","useRef","AriaSelectProps","DismissButton","FocusScope","HiddenSelect","useButton","useHover","useListBox","useListBoxSection","useOption","useOverlay","useOverlayPosition","useSelect","Section","BaseSection","useSelectState","CubeTooltipProviderProps","useEvent","useI18n","CloseIcon","DirectionIcon","LoadingIcon","FieldBaseProps","generateRandomId","mergeProps","useCombinedRefs","useFocus","focusProgrammatically","mergeRefs","useOverlayEscapeGuard","usePopoverSync","extractStyles","mergeStyleLayers","ItemAction","isOwnActionsPress","ItemActionsWrapper","StyledDivider","ListDivider","StyledSectionHeading","ListSectionHeading","StyledSection","ListSectionWrapper","CollectionItem","filterCollectionItemProps","filterSelectionItemProps","getValueSelectionState","CubeItemProps","Item","Text","getValidationIcon","getValidationMods","useFieldProps","wrapWithField","DisplayTransition","useModalLayerRef","Portal","TriggerActions","TriggerIcon","Placement","Props","SelectWrapperElement","qa","styles","display","position","radius","fill","disabled","color","focused","invalid","ListBoxElement","as","section","gap","sections","flow","margin","padding","listStyle","scrollbar","outline","OptionItem","disableActionsFocus","SelectOverlayWrapper","zIndex","OverlayElement","width","gridRows","height","overflow","shadow","border","boxSizing","transition","translate","transformOrigin","scale","opacity","CubeSelectBaseProps","T","Omit","selectedKey","defaultSelectedKey","onSelectionChange","key","icon","rightIcon","prefix","suffix","triggerDescription","descriptionPlacement","hotkeys","tooltip","auto","triggerRef","HTMLButtonElement","isLoading","loadingIndicator","overlayOffset","hideTrigger","inputStyles","optionStyles","triggerStyles","listBoxStyles","listGap","overlayStyles","direction","targetRef","HTMLElement","placement","shouldFlip","containerPadding","inputProps","type","shape","suffixPosition","theme","isClearable","clearLabel","onClear","actions","onOpenChange","isOpen","CubeSelectProps","popoverRef","HTMLInputElement","listBoxRef","size","placeholder","PROP_STYLES","Select","rawProps","ref","HTMLDivElement","props","defaultValidationTrigger","valuePropsMapper","value","onChange","label","extra","labelStyles","isRequired","necessityIndicator","isInvalid","isValid","isDisabled","autoFocus","message","placementProp","labelSuffix","form","otherProps","t","state","selectId","menuId","onClose","close","containerRef","popover","current","active","document","activeElement","contains","preventScroll","labelProps","triggerProps","valueProps","menuProps","undefined","overlayProps","overlayRef","scrollRef","offset","isFocused","focusProps","hoverProps","isHovered","buttonProps","validationIcon","hasSelection","selectedItem","showClearButton","isReadOnly","clearValue","setSelectedKey","focus","triggerWidth","offsetWidth","showPlaceholder","trim","modifiers","loading","hovered","hasCustomRightIcon","triggerRightIcon","hasTriggerActions","triggerActions","pressed","selectField","name","showActions","skipActionsWidthTransition","rendered","ListBoxPopup","t0","$","_c","minWidth","parentOverlayProps","t1","t2","shouldUseVirtualFocus","listItemSize","t3","listGapTokens","t4","focusStrategy","t5","listBoxProps","t6","t7","el","menuTriggerEl","closest","setTimeout","t8","shouldCloseOnBlur","isDismissable","shouldCloseOnInteractOutside","rawOverlayProps","layerRef","t9","split","placementDirection","t10","t11","t12","phase","isShown","isExiting","transitionRef","style","open","renderedItems","hasSections","item","collection","push","String","Option","disabledKeys","has","selectionManager","isSelected","isVirtualFocused","focusedKey","shouldSelectOnPressUp","shouldFocusOnHover","optionProps","isPressed","descriptionProps","T0","filteredItemProps","keyboardProps","onKeyDown","event","ctrlKey","target","currentTarget","preventDefault","listboxitem","selected","SelectSectionProps","headingStyles","sectionStyles","SelectSection","heading","itemProps","headingProps","groupProps","Symbol","for","childNodes","filter","node","getItem","map","node_0","_Select","cubeInputType","SectionComponent","SelectSectionComponent","Object","assign","displayName","__Select","Action"],"sources":["../../../../src/components/fields/Select/Select.tsx"],"sourcesContent":["import { AriaLabelingProps, CollectionBase, Key } from '@react-types/shared';\nimport {\n BASE_STYLES,\n BasePropsWithoutChildren,\n BaseStyleProps,\n COLOR_STYLES,\n ColorStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport React, {\n cloneElement,\n ForwardedRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n ReactElement,\n ReactNode,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n AriaSelectProps,\n DismissButton,\n FocusScope,\n HiddenSelect,\n useButton,\n useHover,\n useListBox,\n useListBoxSection,\n useOption,\n useOverlay,\n useOverlayPosition,\n useSelect,\n} from 'react-aria';\nimport { Section as BaseSection, useSelectState } from 'react-stately';\nimport { CubeTooltipProviderProps } from 'src/components/overlays/Tooltip/TooltipProvider';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { DirectionIcon } from '../../../icons/DirectionIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { FieldBaseProps } from '../../../shared/index';\nimport { generateRandomId } from '../../../utils/random';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react/index';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { focusProgrammatically } from '../../../utils/react/programmaticFocus';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useOverlayEscapeGuard } from '../../../utils/react/useOverlayEscapeGuard';\nimport { usePopoverSync } from '../../../utils/react/usePopoverSync';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { ItemAction } from '../../actions';\nimport { isOwnActionsPress } from '../../actions/actions-run';\nimport { ItemActionsWrapper } from '../../actions/ItemActionsWrapper';\nimport {\n StyledDivider as ListDivider,\n StyledSectionHeading as ListSectionHeading,\n StyledSection as ListSectionWrapper,\n} from '../../actions/Menu/styled';\nimport {\n CollectionItem,\n filterCollectionItemProps,\n filterSelectionItemProps,\n getValueSelectionState,\n} from '../../CollectionItem';\nimport { CubeItemProps, Item } from '../../content/Item';\nimport { Text } from '../../content/Text';\nimport {\n getValidationIcon,\n getValidationMods,\n useFieldProps,\n wrapWithField,\n} from '../../form';\nimport { DisplayTransition } from '../../helpers';\nimport { useModalLayerRef } from '../../overlays/Modal/modal-containment';\nimport { Portal } from '../../portal';\nimport { TriggerActions, TriggerIcon } from '../TriggerActions';\n\nimport type { Placement } from 'react-aria';\nimport type { Props } from '../../../props';\n\nconst SelectWrapperElement = tasty({\n qa: 'SelectWrapper',\n styles: {\n display: 'grid',\n position: 'relative',\n radius: true,\n fill: {\n '': '#surface',\n disabled: '#disabled-surface',\n 'theme=special': '#clear',\n },\n color: {\n '': '#dark.85',\n focused: '#dark.85',\n invalid: '#danger-text',\n disabled: '#disabled-surface-text',\n },\n },\n});\n\nexport const ListBoxElement = tasty({\n qa: 'ListBox',\n as: 'ul',\n styles: {\n // Set from `listGap`. A section's list inherits it from the popup's.\n '$list-gap': { '': '1bw', section: false },\n display: 'flex',\n // It spaces options: sections and dividers keep a hairline.\n gap: { '': '$list-gap', sections: '1bw' },\n flow: 'column',\n margin: '0',\n padding: '0',\n listStyle: 'none',\n scrollbar: 'styled',\n // The listbox is programmatically focused when the popover opens\n // (so keyboard nav works immediately) but it should never display a\n // focus ring — only the focused option does. Without this, the\n // browser draws its native outline around the whole listbox when\n // it receives focus.\n outline: 0,\n },\n});\n\n// Use Item for options to unify item visuals and reduce custom styling\nconst OptionItem = tasty(Item, {\n as: 'li',\n disableActionsFocus: true,\n qa: 'Option',\n styles: {\n '$inline-compensation': '0px',\n },\n});\n\nconst SelectOverlayWrapper = tasty({\n qa: 'SelectOverlayWrapper',\n styles: {\n position: 'absolute',\n zIndex: 1000,\n },\n});\n\nconst OverlayElement = tasty({\n qa: 'SelectOverlay',\n styles: {\n width: 'min $overlay-min-width',\n display: 'grid',\n gridRows: '1sf',\n height: 'initial max-content (50vh - 5x)',\n overflow: 'auto',\n fill: '#surface',\n radius: '1cr',\n shadow: true,\n padding: '.5x',\n border: true,\n boxSizing: 'border-box',\n transition:\n 'translate $transition ease-out, scale $transition ease-out, theme $transition ease-out',\n translate: {\n '': '0 0',\n 'open & [data-placement=\"top\"]': '0 0',\n '!open & [data-placement=\"top\"]': '0 1x',\n 'open & ([data-placement=\"bottom\"] | ![data-placement])': '0 0',\n '!open & ([data-placement=\"bottom\"] | ![data-placement])': '0 -1x',\n },\n transformOrigin: {\n '': 'top center',\n '[data-placement=\"top\"]': 'bottom center',\n },\n scale: {\n '': '1 1',\n '!open': '1 .9',\n },\n opacity: {\n '': 1,\n '!open': 0.001,\n },\n },\n});\n\nexport interface CubeSelectBaseProps<T>\n extends BasePropsWithoutChildren,\n AriaLabelingProps,\n BaseStyleProps,\n OuterStyleProps,\n ColorStyleProps,\n FieldBaseProps<Key | null | undefined>,\n CollectionBase<T>,\n Omit<\n AriaSelectProps<T>,\n | 'errorMessage'\n | 'form'\n | 'name'\n | 'selectedKey'\n | 'defaultSelectedKey'\n | 'onSelectionChange'\n > {\n /** The currently selected key in the collection (controlled). */\n selectedKey?: Key | null;\n /** The initial selected key in the collection (uncontrolled). */\n defaultSelectedKey?: Key;\n /** Handler that is called when the selection changes. */\n onSelectionChange?: (key: Key | null) => void;\n icon?: ReactElement;\n rightIcon?: ReactNode;\n prefix?: ReactNode;\n suffix?: ReactNode;\n /** Description text for the trigger. Note: Different from field-level description. */\n triggerDescription?: ReactNode;\n descriptionPlacement?: 'inline' | 'block';\n /** Keyboard shortcut that triggers the select when pressed */\n hotkeys?: string;\n /**\n * Tooltip content and configuration for the trigger. The info badge next to\n * the field's label is `labelTooltip`.\n * - string: simple tooltip text\n * - true: auto tooltip on overflow (shows selected value as tooltip when truncated)\n * - object: advanced configuration with optional auto property\n */\n tooltip?:\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n triggerRef?: RefObject<HTMLButtonElement>;\n isLoading?: boolean;\n loadingIndicator?: ReactNode;\n overlayOffset?: number;\n hideTrigger?: boolean;\n /**\n * @deprecated Use `triggerStyles` instead\n */\n inputStyles?: Styles;\n optionStyles?: Styles;\n triggerStyles?: Styles;\n listBoxStyles?: Styles;\n /** Space between options, in pixels. Defaults to a hairline (`1bw`). */\n listGap?: number;\n overlayStyles?: Styles;\n direction?: 'top' | 'bottom';\n /**\n * The ref of the element the popover should visually attach itself to.\n * Defaults to the trigger button.\n *\n * Only the popover's POSITION follows this ref. The trigger keeps its own\n * ref for focus, outside-click and dismiss logic, so anchoring to a wider\n * container does not make clicks inside that container count as trigger\n * presses. The popover's `minWidth` also stays tied to the trigger, not to\n * this element.\n */\n targetRef?: RefObject<HTMLElement | null>;\n /**\n * Placement of the popover relative to the anchor.\n * Accepts React Aria's `Placement` strings (e.g. `'bottom start'`,\n * `'top start'`, `'right top'`, `'left top'`).\n *\n * Overrides `direction` when both are given.\n * @default `${direction} end`\n */\n placement?: Placement;\n shouldFlip?: boolean;\n /** Minimum padding in pixels between the popover and viewport edges */\n containerPadding?: number;\n inputProps?: Props;\n type?: 'outline' | 'outline-2' | 'clear' | 'primary' | (string & {});\n /**\n * Shape of the trigger's border radius.\n * - `card` - Card shape with larger border radius (`1cr`)\n * - `button` - Button shape with default border radius (default)\n * - `sharp` - Sharp corners with no border radius (`0`)\n * - `pill` - Pill shape with fully rounded ends (`round`)\n * @default \"button\"\n */\n shape?: 'card' | 'button' | 'sharp' | 'pill';\n suffixPosition?: 'before' | 'after';\n theme?: 'default' | 'special';\n /** Whether the select is clearable using a clear button in the rightIcon slot */\n isClearable?: boolean;\n /** Accessible name for the built-in clear button. Defaults to a localized \"Clear value\". */\n clearLabel?: string;\n /** Callback called when the clear button is pressed */\n onClear?: () => void;\n /**\n * Custom actions rendered inside the trigger, to the left of the built-in\n * clear button and dropdown caret. Use `Select.Action` so they match the\n * trigger's size and theme.\n *\n * Pressing one runs its handler without opening or closing the popover —\n * including while the popover is open. Actions follow the trigger's disabled\n * state but NOT `isReadOnly`, since a read-only field can still host an\n * action that does not change the value; pass `isDisabled` yourself for one\n * that does.\n */\n actions?: ReactNode;\n /** Callback called when the popover open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n}\n\nexport interface CubeSelectProps<T> extends CubeSelectBaseProps<T> {\n popoverRef?: RefObject<HTMLInputElement>;\n /** The ref for the list box. */\n listBoxRef?: RefObject<HTMLElement>;\n size?: 'small' | 'medium' | 'large' | (string & {});\n placeholder?: string;\n}\n\nconst PROP_STYLES = [...BASE_STYLES, ...OUTER_STYLES, ...COLOR_STYLES];\n\nfunction Select<T extends object>(\n rawProps: CubeSelectProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n let props = useFieldProps(rawProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n selectedKey: value ?? null,\n onSelectionChange: onChange,\n }),\n });\n\n let {\n qa,\n label,\n extra,\n icon,\n rightIcon,\n labelStyles,\n isRequired,\n necessityIndicator,\n isInvalid,\n isValid,\n prefix,\n isDisabled = props.isLoading || false,\n autoFocus,\n inputProps,\n triggerRef,\n popoverRef,\n listBoxRef,\n isLoading,\n loadingIndicator,\n overlayOffset = 8,\n inputStyles,\n triggerStyles,\n optionStyles,\n listBoxStyles,\n listGap,\n overlayStyles,\n suffix,\n actions,\n message,\n triggerDescription,\n descriptionPlacement,\n hotkeys,\n direction = 'bottom',\n targetRef,\n placement: placementProp,\n shouldFlip = true,\n containerPadding = 8,\n placeholder,\n tooltip,\n size = 'medium',\n shape,\n styles,\n type = 'outline',\n theme = 'default',\n labelSuffix,\n suffixPosition = 'before',\n isClearable,\n clearLabel,\n onOpenChange,\n form,\n ...otherProps\n } = props;\n const { t } = useI18n();\n let state = getValueSelectionState(useSelectState(props));\n\n // Generate a unique ID for this select instance\n const selectId = useMemo(() => generateRandomId(), []);\n\n // Call onOpenChange when open state changes\n useEffect(() => {\n onOpenChange?.(state.isOpen);\n }, [state.isOpen]);\n\n styles = extractStyles(otherProps, PROP_STYLES, styles);\n\n ref = useCombinedRefs(ref);\n triggerRef = useCombinedRefs(triggerRef);\n popoverRef = useCombinedRefs(popoverRef);\n listBoxRef = useCombinedRefs(listBoxRef);\n\n usePopoverSync({\n menuId: selectId,\n isOpen: state.isOpen,\n onClose: () => state.close(),\n triggerRef: triggerRef as RefObject<HTMLElement | null>,\n containerRef: popoverRef as RefObject<HTMLElement | null>,\n });\n\n // Hand focus back to the trigger the moment the list closes, rather than\n // leaving it to the popup's `FocusScope`, which only restores when it\n // UNMOUNTS — at the end of the exit transition (CUB-4839).\n //\n // For the length of that transition focus would otherwise sit on an option\n // inside a popup that is going away, and the key a user presses next can\n // land nowhere at all: once the option is detached focus drops to `<body>`,\n // which takes the event out of the React tree entirely.\n //\n // `focusProgrammatically` so the trigger's tooltip does not read this as the\n // user arriving and pop up — it would then swallow that next `Escape`.\n //\n // Guarded on focus still being INSIDE the popup, so this only finishes a\n // hand-off the popup had already started: closing by clicking elsewhere\n // leaves focus wherever the user put it.\n useEffect(() => {\n if (state.isOpen) return;\n\n const popover = popoverRef.current;\n const active = document.activeElement;\n\n if (!popover || !active || !popover.contains(active)) return;\n\n focusProgrammatically(triggerRef.current, { preventScroll: true });\n // Both refs come from `useCombinedRefs`, so their identity never changes;\n // listing them satisfies the rule without re-running this.\n }, [state.isOpen, popoverRef, triggerRef]);\n\n // React Aria hands `form` to `HiddenSelect` as the id of its `<form>`, so the\n // form instance would render as `form=\"[object Object]\"` on the `<select>`.\n let { labelProps, triggerProps, valueProps, menuProps } = useSelect(\n { ...props, form: undefined },\n state,\n triggerRef,\n );\n\n let { overlayProps, placement } = useOverlayPosition({\n // Position only. `triggerRef` stays the dismiss/focus anchor below, so a\n // consumer can line this popover up with a row without that row's clicks\n // reading as presses on the trigger.\n targetRef: (targetRef ?? triggerRef) as RefObject<HTMLElement>,\n overlayRef: popoverRef,\n scrollRef: listBoxRef,\n placement: placementProp ?? (`${direction} end` as Placement),\n shouldFlip: shouldFlip,\n isOpen: state.isOpen,\n onClose: state.close,\n offset: overlayOffset,\n containerPadding: containerPadding,\n });\n\n let { isFocused, focusProps } = useFocus(true);\n let { hoverProps, isHovered } = useHover({ isDisabled });\n\n // Get props for the button based on the trigger props from useSelect\n let { buttonProps } = useButton(triggerProps, triggerRef);\n\n let validationIcon = getValidationIcon({ isInvalid, isValid });\n\n // Clear button logic\n let hasSelection = state.selectedItem != null;\n let showClearButton =\n isClearable && hasSelection && !isDisabled && !props.isReadOnly;\n\n // Clear function\n let clearValue = useEvent(() => {\n props.onSelectionChange?.(null);\n state.setSelectedKey(null);\n // Close the popup if it's open\n if (state.isOpen) {\n state.close();\n }\n // Return focus to the trigger for better UX\n triggerRef.current?.focus?.();\n\n props.onClear?.();\n });\n\n let triggerWidth = triggerRef?.current?.offsetWidth;\n\n const showPlaceholder = !!placeholder?.trim() && !state.selectedItem;\n\n const modifiers = useMemo(\n () => ({\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n loading: isLoading,\n hovered: isHovered,\n focused: isFocused,\n placeholder: showPlaceholder,\n prefix: !!prefix,\n suffix: true,\n }),\n [\n isInvalid,\n isValid,\n isDisabled,\n isLoading,\n isHovered,\n isFocused,\n showPlaceholder,\n prefix,\n ],\n );\n\n suffix = useMemo(() => {\n if (!suffix && !validationIcon) {\n return null;\n }\n\n return (\n <>\n {suffix}\n {validationIcon}\n </>\n );\n }, [suffix, validationIcon]);\n\n // A caller's `rightIcon` keeps the `rightIcon` slot: it accepts a render\n // function resolved against the trigger's mods, which only that slot does, and\n // it is also what a caller's `RightIcon` styles target. It replaces the\n // built-in control, exactly as before.\n const hasCustomRightIcon = rightIcon !== undefined;\n const triggerRightIcon = hasCustomRightIcon ? (\n isLoading ? (\n <LoadingIcon />\n ) : (\n rightIcon\n )\n ) : undefined;\n\n // With a caller's own `rightIcon` the built-in control moves into that slot,\n // leaving the run with whatever the caller passed — possibly nothing. The run\n // is still rendered, so the trigger does not restructure if actions arrive\n // later, but the row stops counting it as end content — which is what keeps an\n // icon-only trigger with `rightIcon={null}` square.\n const hasTriggerActions = !hasCustomRightIcon || !!actions;\n\n // Everything trailing that is NOT the caller's own icon goes into the actions\n // run — a sibling of the `<button>`, so the clear button is no longer nested\n // inside one. See `TriggerActions`.\n const triggerActions = (\n <TriggerActions\n actions={actions}\n builtIn={\n hasCustomRightIcon ? null : showClearButton ? (\n <ItemAction\n icon={<CloseIcon />}\n size={size}\n qa=\"SelectClearButton\"\n // `ItemAction` derives its accessible name from `aria-label` or a\n // string `tooltip` and warns for neither, so an icon-only clear\n // button without this reaches a screen reader unnamed.\n aria-label={clearLabel ?? t('select.clearValue', 'Clear value')}\n // No explicit `type`/`theme`: the default `current` type paints\n // from the trigger's own inherited text color, so the button\n // matches whatever the field is showing instead of one palette.\n //\n // NOTE: this trigger keeps NEUTRAL label text when invalid, so\n // the button reads neutral there too. `Picker` and `FilterPicker`\n // are also `Item`-based but do tint theirs, which is the actual\n // inconsistency to fix — in `Select`, not here.\n mods={{ pressed: false }}\n onPress={clearValue}\n />\n ) : isLoading ? (\n <TriggerIcon>\n <LoadingIcon />\n </TriggerIcon>\n ) : (\n <TriggerIcon>\n <DirectionIcon to={state.isOpen ? 'up' : 'down'} />\n </TriggerIcon>\n )\n }\n />\n );\n\n let selectField = (\n <SelectWrapperElement\n mods={modifiers}\n styles={styles}\n data-size={size}\n data-type={type}\n data-theme={theme}\n >\n <HiddenSelect\n state={state}\n triggerRef={triggerRef}\n label={props.label}\n name={props.name}\n />\n {/*\n The trigger's trailing controls are rendered as a SIBLING of the\n `<button>` — the same layout `ItemButton` uses for its actions, shared\n through `ItemActionsWrapper`. `Select` builds its trigger from `Item`\n rather than `ItemButton` because `useSelect`/`useButton` already own the\n button props, so it reaches for the wrapper directly.\n\n The RAW theme, unlike `Picker` / `FilterPicker` which forward\n `getValidationTheme(...)`: this trigger is painted with the raw theme too\n and surfaces validation through `SelectWrapperElement` rather than by\n switching theme. What the wrapper hands its actions must always match\n what the trigger paints with.\n */}\n <ItemActionsWrapper\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled || isLoading}\n mods={modifiers}\n actions={triggerActions}\n >\n {({ showActions, skipActionsWidthTransition }) => (\n <Item\n actions={hasTriggerActions || undefined}\n insideWrapper\n as=\"button\"\n qa={qa || 'Select'}\n data-input-type=\"select\"\n {...mergeProps(buttonProps, hoverProps, focusProps)}\n ref={triggerRef}\n data-popover-trigger\n showActions={showActions}\n skipActionsWidthTransition={skipActionsWidthTransition}\n styles={mergeStyleLayers(inputStyles, triggerStyles)}\n theme={theme}\n size={size}\n shape={shape}\n // Ensure this button never submits a surrounding form in tests or runtime\n htmlType=\"button\"\n // Preserve visual variant via data attribute instead of conflicting with HTML attribute\n type={type}\n mods={modifiers}\n prefix={prefix}\n suffix={suffix}\n icon={icon}\n rightIcon={triggerRightIcon}\n description={triggerDescription}\n descriptionPlacement={descriptionPlacement}\n hotkeys={hotkeys}\n tooltip={tooltip}\n labelProps={valueProps}\n >\n {state.selectedItem ? (\n state.selectedItem.rendered\n ) : placeholder ? (\n <Text.Placeholder>{placeholder}</Text.Placeholder>\n ) : null}\n </Item>\n )}\n </ItemActionsWrapper>\n <ListBoxPopup\n {...menuProps}\n popoverRef={popoverRef}\n listBoxRef={listBoxRef}\n overlayProps={overlayProps}\n placement={placement}\n state={state}\n listBoxStyles={listBoxStyles}\n listGap={listGap}\n overlayStyles={overlayStyles}\n optionStyles={optionStyles}\n minWidth={triggerWidth}\n triggerRef={triggerRef}\n isDisabled={isDisabled}\n />\n </SelectWrapperElement>\n );\n\n return wrapWithField<Omit<CubeSelectProps<T>, 'children' | 'tooltip'>>(\n selectField,\n ref,\n mergeProps(\n {\n ...props,\n // The trigger's own. Handed on, it read as the legacy field `tooltip`.\n tooltip: undefined,\n },\n { labelProps },\n ),\n );\n}\n\nexport function ListBoxPopup({\n state,\n popoverRef,\n listBoxRef,\n listBoxStyles,\n listGap,\n overlayStyles,\n optionStyles,\n overlayProps: parentOverlayProps,\n shouldUseVirtualFocus = false,\n placement,\n minWidth,\n size = 'small',\n triggerRef,\n isDisabled,\n ...otherProps\n}) {\n // For trigger+popover components, map 'small' size to 'medium' for list items\n // while preserving 'medium' and 'large' sizes\n const listItemSize = size === 'small' ? 'medium' : size;\n const listGapTokens =\n listGap == null ? undefined : { '$list-gap': `${listGap}px` };\n\n // Get props for the listbox\n let { listBoxProps } = useListBox(\n {\n autoFocus: state.focusStrategy || true,\n shouldUseVirtualFocus,\n ...otherProps,\n },\n state,\n listBoxRef,\n );\n\n // Handle events that should cause the popup to close,\n // e.g. blur, clicking outside, or pressing the escape key.\n let { overlayProps: rawOverlayProps } = useOverlay(\n {\n onClose: () => state.close(),\n shouldCloseOnBlur: true,\n isOpen: state.isOpen,\n isDismissable: true,\n shouldCloseOnInteractOutside: (el) => {\n // The trigger owns interactive controls of its own — the clear button\n // and any custom `actions`. They sit in the actions run, a SIBLING of\n // the trigger, so the lookup below would read them as a press outside\n // and dismiss, swallowing the press: the first press on `Reset` while\n // the list was open only closed the list and the action never ran. Same\n // guard as `DialogTrigger`, which `Picker` / `FilterPicker` go through.\n if (isOwnActionsPress(el, triggerRef?.current)) return false;\n\n const menuTriggerEl = el.closest('[data-popover-trigger]');\n if (!menuTriggerEl) {\n if (el.closest('[data-popover-keep]')) return false;\n // Plain interactive controls (Button, ItemButton) opt in via\n // `data-popover-dismiss` to dismiss us without losing their click\n // to useOverlay's stopPropagation. Schedule the close after the\n // click finishes so the button's onPress runs first.\n if (el.closest('[data-popover-dismiss]')) {\n setTimeout(() => state.close(), 0);\n return false;\n }\n return true;\n }\n // If the same trigger that opened this select was clicked, allow closing\n if (menuTriggerEl === triggerRef?.current) return true;\n // Otherwise, don't close (let event mechanism handle it)\n return false;\n },\n },\n popoverRef,\n );\n\n // A list that has already closed must not swallow the `Escape` meant for\n // whatever surrounds it — see `useOverlayEscapeGuard`.\n const overlayProps = useOverlayEscapeGuard(rawOverlayProps, state.isOpen);\n\n // Opened inside a modal, the list stays readable while the modal hides the\n // page.\n const layerRef = useModalLayerRef();\n\n // Extract primary placement direction for consistent styling\n const placementDirection = placement?.split(' ')[0] || 'bottom';\n\n // Wrap in <FocusScope> so that focus is restored back to the\n // trigger when the popup is closed. In addition, add hidden\n // <DismissButton> components at the start and end of the list\n // to allow screen reader users to dismiss the popup easily.\n //\n // `autoFocus` is required because `ListBoxPopup` is rendered\n // unconditionally (not gated on `state.isOpen`), so by the time the\n // popover actually opens, react-aria's `useSelectableCollection`\n // autoFocus has already been consumed (its useRef captures the\n // initial value on mount, when the listbox isn't in the DOM yet).\n // Setting `autoFocus` on the FocusScope itself runs each time the\n // FocusScope mounts (every time the popover opens, since the inner\n // tree is unmounted between opens) and explicitly focuses the\n // first tabbable element (the listbox). This also registers the\n // FocusScope as the active scope, so an outer contained Dialog\n // FocusScope (e.g. a popover Dialog wrapping the Select) correctly\n // recognises focus moving into the Select popover and doesn't yank\n // it back to the trigger.\n return (\n <Portal>\n <DisplayTransition isShown={state.isOpen && !isDisabled}>\n {({ phase, isShown, isExiting, ref: transitionRef }) => (\n <SelectOverlayWrapper\n {...overlayProps}\n {...parentOverlayProps}\n ref={mergeRefs(popoverRef, layerRef)}\n style={parentOverlayProps?.style}\n // A press on the list while it fades out must not close the\n // overlay under it (CUB-5293) — see `Overlay`.\n data-react-aria-top-layer={isExiting || undefined}\n >\n <OverlayElement\n ref={transitionRef}\n data-placement={placementDirection}\n data-phase={phase}\n mods={{\n open: isShown,\n }}\n styles={overlayStyles}\n style={{\n '--overlay-min-width': minWidth ? `${minWidth}px` : 'initial',\n }}\n >\n <FocusScope autoFocus restoreFocus>\n <DismissButton onDismiss={() => state.close()} />\n {(() => {\n const renderedItems: React.ReactNode[] = [];\n let hasSections = false;\n\n for (const item of state.collection) {\n if (item.type === 'section') {\n if (hasSections) {\n renderedItems.push(\n <ListDivider\n key={`divider-${String(item.key)}`}\n as=\"li\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n />,\n );\n }\n\n renderedItems.push(\n <SelectSection\n key={item.key}\n item={item}\n state={state}\n optionStyles={optionStyles}\n sectionStyles={undefined}\n shouldUseVirtualFocus={shouldUseVirtualFocus}\n size={listItemSize}\n />,\n );\n\n hasSections = true;\n } else {\n renderedItems.push(\n <Option\n key={item.key}\n item={item}\n state={state}\n styles={optionStyles}\n shouldUseVirtualFocus={shouldUseVirtualFocus}\n size={listItemSize}\n />,\n );\n }\n }\n\n return (\n <ListBoxElement\n styles={listBoxStyles}\n tokens={listGapTokens}\n mods={{ sections: hasSections }}\n {...listBoxProps}\n ref={listBoxRef}\n >\n {renderedItems}\n </ListBoxElement>\n );\n })()}\n <DismissButton onDismiss={() => state.close()} />\n </FocusScope>\n </OverlayElement>\n </SelectOverlayWrapper>\n )}\n </DisplayTransition>\n </Portal>\n );\n}\n\nfunction Option({ item, state, styles, shouldUseVirtualFocus, size }) {\n let ref = useRef<HTMLLIElement>(null);\n let isDisabled = state.disabledKeys.has(item.key);\n let isSelected = state.selectionManager.isSelected(item.key);\n let isVirtualFocused = state.selectionManager.focusedKey === item.key;\n\n let { optionProps, isPressed, labelProps, descriptionProps } = useOption(\n {\n key: item.key,\n isDisabled,\n isSelected,\n shouldSelectOnPressUp: true,\n shouldFocusOnHover: true,\n shouldUseVirtualFocus,\n },\n state,\n ref,\n );\n\n // Handle focus events, so we can apply highlighted\n // style to the focused option\n let { isFocused, focusProps } = useFocus();\n\n // Filter out service props - all remaining props can be passed to Item\n const filteredItemProps = filterSelectionItemProps(\n filterCollectionItemProps(item.props),\n );\n\n const keyboardProps = {\n onKeyDown(event: KeyboardEvent<HTMLLIElement>) {\n // Committing an option refocuses the trigger during keydown. Cancel\n // Enter's native activation there, preserving Control+Enter context\n // menus and activation of links or controls inside the option.\n if (\n event.key === 'Enter' &&\n !event.ctrlKey &&\n event.target === event.currentTarget\n ) {\n event.preventDefault();\n }\n },\n };\n\n return (\n <OptionItem\n {...mergeProps(\n filterSelectionItemProps(optionProps),\n focusProps,\n filteredItemProps,\n keyboardProps,\n )}\n ref={ref}\n mods={{\n listboxitem: true,\n selected: isSelected,\n focused: shouldUseVirtualFocus ? isVirtualFocused : isFocused,\n disabled: isDisabled,\n pressed: isPressed,\n }}\n data-size={size}\n styles={mergeStyleLayers(\n styles as Styles,\n filteredItemProps.styles as Styles,\n )}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n defaultTooltipPlacement=\"right\"\n >\n {item.rendered}\n </OptionItem>\n );\n}\n\ninterface SelectSectionProps<T> {\n item: any; // react-stately Node<T>\n state: any; // TreeState<T>\n optionStyles?: Styles;\n headingStyles?: Styles;\n sectionStyles?: Styles;\n shouldUseVirtualFocus?: boolean;\n size?: string;\n}\n\nfunction SelectSection<T>(props: SelectSectionProps<T>) {\n const {\n item,\n state,\n optionStyles,\n headingStyles,\n sectionStyles,\n shouldUseVirtualFocus,\n size,\n } = props;\n\n const heading = item.rendered;\n\n const { itemProps, headingProps, groupProps } = useListBoxSection({\n heading,\n 'aria-label': item['aria-label'],\n });\n\n return (\n <ListSectionWrapper {...itemProps} styles={sectionStyles}>\n {heading && (\n <ListSectionHeading\n {...headingProps}\n size={size}\n styles={mergeStyleLayers(headingStyles, {\n '$inline-compensation': '0px',\n })}\n >\n {heading}\n </ListSectionHeading>\n )}\n <ListBoxElement {...groupProps} mods={{ section: true }}>\n {[...item.childNodes]\n .filter((node: any) => state.collection.getItem(node.key))\n .map((node: any) => (\n <Option\n key={node.key}\n item={node}\n state={state}\n styles={optionStyles}\n shouldUseVirtualFocus={shouldUseVirtualFocus}\n size={size}\n />\n ))}\n </ListBoxElement>\n </ListSectionWrapper>\n );\n}\n\n// `forwardRef` can't carry the item generic, so the cast restores it, as in\n// ComboBox and Picker.\nconst _Select = forwardRef(\n Select as ForwardRefRenderFunction<HTMLDivElement, any>,\n) as unknown as <T>(\n props: CubeSelectProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReactElement;\n\n(_Select as any).cubeInputType = 'Select';\n\ntype SectionComponent = typeof BaseSection;\n\nconst SelectSectionComponent = Object.assign(BaseSection, {\n displayName: 'Section',\n}) as SectionComponent;\n\nconst __Select = Object.assign(\n _Select as typeof _Select & {\n Item: typeof CollectionItem;\n Section: typeof SelectSectionComponent;\n Action: typeof ItemAction;\n },\n {\n Item: CollectionItem,\n Section: SelectSectionComponent,\n Action: ItemAction,\n },\n);\n\n(__Select as any).displayName = 'Select';\n\nexport { __Select as Select };\n\nexport type { AriaSelectProps };\nexport { useSelectState };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","names":["AriaLabelingProps","CollectionBase","Key","BASE_STYLES","BasePropsWithoutChildren","BaseStyleProps","COLOR_STYLES","ColorStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","React","cloneElement","ForwardedRef","forwardRef","ForwardRefRenderFunction","KeyboardEvent","ReactElement","ReactNode","RefObject","useEffect","useEffectEvent","useLayoutEffect","useMemo","useRef","useState","AriaSelectProps","DismissButton","FocusScope","HiddenSelect","useButton","useHover","useListBox","useListBoxSection","useOption","useOverlay","useOverlayPosition","useSelect","Section","BaseSection","SelectState","useSelectState","CubeTooltipProviderProps","useI18n","CloseIcon","DirectionIcon","LoadingIcon","FieldBaseProps","generateRandomId","mergeProps","useCombinedRefs","useFocus","focusProgrammatically","mergeRefs","useOverlayEscapeGuard","usePopoverSync","extractStyles","mergeStyleLayers","isOwnActionsPress","ItemAction","ItemActionsWrapper","StyledDivider","ListDivider","StyledSectionHeading","ListSectionHeading","StyledSection","ListSectionWrapper","CollectionItem","filterCollectionItemProps","filterSelectionItemProps","getValueSelectionState","CubeItemProps","Item","Text","getValidationIcon","getValidationMods","useFieldProps","wrapWithField","DisplayTransition","useModalLayerRef","Portal","useOptionOriginPress","TriggerActions","TriggerIcon","Placement","Props","SelectWrapperElement","qa","styles","display","position","radius","fill","disabled","color","focused","invalid","ListBoxElement","as","section","gap","sections","flow","margin","padding","listStyle","overflow","scrollbar","outline","OptionItem","disableActionsFocus","SelectOverlayWrapper","zIndex","OverlayElement","width","gridRows","height","shadow","border","boxSizing","transition","translate","transformOrigin","scale","opacity","CubeSelectBaseProps","T","Omit","selectedKey","defaultSelectedKey","onSelectionChange","key","icon","rightIcon","prefix","suffix","triggerDescription","descriptionPlacement","hotkeys","tooltip","auto","triggerRef","HTMLButtonElement","isLoading","loadingIndicator","overlayOffset","hideTrigger","inputStyles","optionStyles","triggerStyles","listBoxStyles","listGap","overlayStyles","direction","targetRef","HTMLElement","placement","shouldFlip","containerPadding","inputProps","type","shape","suffixPosition","theme","isClearable","clearLabel","onClear","actions","onOpenChange","isOpen","CubeSelectProps","popoverRef","listBoxRef","size","placeholder","PROP_STYLES","ignore","lockSelectState","state","S","open","toggle","setSelectedKey","setValue","Select","rawProps","ref","HTMLDivElement","props","defaultValidationTrigger","valuePropsMapper","value","onChange","label","extra","labelStyles","isRequired","necessityIndicator","isInvalid","isValid","isDisabled","autoFocus","triggerRefProp","message","placementProp","labelSuffix","form","otherProps","t","isLocked","isReadOnly","selectId","isInert","closeList","close","menuId","onClose","containerRef","popover","current","active","document","activeElement","contains","preventScroll","labelProps","triggerProps","valueProps","menuProps","undefined","overlayProps","overlayRef","scrollRef","offset","isFocused","focusProps","hoverProps","isHovered","buttonProps","validationIcon","hasSelection","selectedItem","showClearButton","clearValue","triggerWidth","setTriggerWidth","offsetWidth","loadingIcon","showPlaceholder","trim","modifiers","loading","hovered","hasCustomRightIcon","triggerRightIcon","hasTriggerActions","triggerActions","pressed","selectField","name","showActions","skipActionsWidthTransition","rendered","ListBoxPopup","t0","$","_c","minWidth","parentOverlayProps","t1","t2","shouldUseVirtualFocus","t3","t4","el","menuTriggerEl","closest","setTimeout","t5","shouldCloseOnBlur","isDismissable","shouldCloseOnInteractOutside","rawOverlayProps","layerRef","t6","split","placementDirection","t7","t8","t9","phase","isShown","isExiting","transitionRef","style","getEdgeOptionKey","edge","keys","collection","getKeys","reverse","find","getItem","selectionManager","canSelectItem","getOpeningFocusKey","focusStrategy","scrollIntoList","list","option","top","node","offsetParent","offsetTop","bottom","offsetHeight","scrollTop","clientHeight","focusOpeningOption","manager","setFocused","setFocusedKey","Array","from","querySelectorAll","element","dataset","String","focus","SelectListBox","listItemSize","listGapTokens","listBoxProps","focusOnOpen","Symbol","for","hasSections","renderedItems","item","push","Option","disabledKeys","has","isSelected","isVirtualFocused","focusedKey","shouldSelectOnPressUp","shouldFocusOnHover","optionProps","isPressed","descriptionProps","originPress","onPointerUp","ariaOptionProps","filteredItemProps","keyboardProps","onKeyDown","event","ctrlKey","target","currentTarget","preventDefault","T0","onPointerDown","wrapPointerUp","listboxitem","selected","SelectSectionProps","headingStyles","sectionStyles","SelectSection","heading","itemProps","headingProps","groupProps","childNodes","filter","map","node_0","_Select","cubeInputType","SectionComponent","SelectSectionComponent","Object","assign","displayName","__Select","Action"],"sources":["../../../../src/components/fields/Select/Select.tsx"],"sourcesContent":["import { AriaLabelingProps, CollectionBase, Key } from '@react-types/shared';\nimport {\n BASE_STYLES,\n BasePropsWithoutChildren,\n BaseStyleProps,\n COLOR_STYLES,\n ColorStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport React, {\n cloneElement,\n ForwardedRef,\n forwardRef,\n ForwardRefRenderFunction,\n KeyboardEvent,\n ReactElement,\n ReactNode,\n RefObject,\n useEffect,\n useEffectEvent,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n AriaSelectProps,\n DismissButton,\n FocusScope,\n HiddenSelect,\n useButton,\n useHover,\n useListBox,\n useListBoxSection,\n useOption,\n useOverlay,\n useOverlayPosition,\n useSelect,\n} from 'react-aria';\nimport {\n Section as BaseSection,\n SelectState,\n useSelectState,\n} from 'react-stately';\nimport { CubeTooltipProviderProps } from 'src/components/overlays/Tooltip/TooltipProvider';\n\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { DirectionIcon } from '../../../icons/DirectionIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { FieldBaseProps } from '../../../shared/index';\nimport { generateRandomId } from '../../../utils/random';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react/index';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { focusProgrammatically } from '../../../utils/react/programmaticFocus';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useOverlayEscapeGuard } from '../../../utils/react/useOverlayEscapeGuard';\nimport { usePopoverSync } from '../../../utils/react/usePopoverSync';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { isOwnActionsPress } from '../../actions/actions-run';\nimport { ItemAction } from '../../actions/ItemAction/ItemAction';\nimport { ItemActionsWrapper } from '../../actions/ItemActionsWrapper';\nimport {\n StyledDivider as ListDivider,\n StyledSectionHeading as ListSectionHeading,\n StyledSection as ListSectionWrapper,\n} from '../../actions/Menu/styled';\nimport {\n CollectionItem,\n filterCollectionItemProps,\n filterSelectionItemProps,\n getValueSelectionState,\n} from '../../CollectionItem';\nimport { CubeItemProps, Item } from '../../content/Item';\nimport { Text } from '../../content/Text';\nimport {\n getValidationIcon,\n getValidationMods,\n useFieldProps,\n wrapWithField,\n} from '../../form';\nimport { DisplayTransition } from '../../helpers';\nimport { useModalLayerRef } from '../../overlays/Modal/modal-containment';\nimport { Portal } from '../../portal';\nimport { useOptionOriginPress } from '../option-origin-press';\nimport { TriggerActions, TriggerIcon } from '../TriggerActions';\n\nimport type { Placement } from 'react-aria';\nimport type { Props } from '../../../props';\n\nconst SelectWrapperElement = tasty({\n qa: 'SelectWrapper',\n styles: {\n display: 'grid',\n position: 'relative',\n radius: true,\n fill: {\n '': '#surface',\n disabled: '#disabled-surface',\n 'theme=special': '#clear',\n },\n color: {\n '': '#dark.85',\n focused: '#dark.85',\n invalid: '#danger-text',\n disabled: '#disabled-surface-text',\n },\n },\n});\n\nexport const ListBoxElement = tasty({\n qa: 'ListBox',\n as: 'ul',\n styles: {\n // Set from `listGap`. A section's list inherits it from the popup's.\n '$list-gap': { '': '1bw', section: false },\n display: 'flex',\n // It spaces options: sections and dividers keep a hairline.\n gap: { '': '$list-gap', sections: '1bw' },\n flow: 'column',\n margin: '0',\n padding: '0',\n listStyle: 'none',\n // The popup's list is the scroll container and the element its height\n // limit lands on, so React Aria's page navigation measures what is\n // actually visible. A section's list grows with its options.\n overflow: { '': 'auto', section: false },\n // Options measure their scroll offset against the list.\n position: 'relative',\n scrollbar: 'styled',\n // The listbox is programmatically focused when the popover opens\n // (so keyboard nav works immediately) but it should never display a\n // focus ring — only the focused option does. Without this, the\n // browser draws its native outline around the whole listbox when\n // it receives focus.\n outline: 0,\n },\n});\n\n// Use Item for options to unify item visuals and reduce custom styling\nconst OptionItem = tasty(Item, {\n as: 'li',\n disableActionsFocus: true,\n qa: 'Option',\n styles: {\n '$inline-compensation': '0px',\n },\n});\n\nconst SelectOverlayWrapper = tasty({\n qa: 'SelectOverlayWrapper',\n styles: {\n position: 'absolute',\n zIndex: 1000,\n // React Aria writes the room left in the viewport as this element's\n // `max-height`; a flex column lets the popup shrink to it.\n display: 'flex',\n flow: 'column',\n },\n});\n\nconst OverlayElement = tasty({\n qa: 'SelectOverlay',\n styles: {\n width: 'min $overlay-min-width',\n display: 'grid',\n gridRows: '1sf',\n height: 'initial max-content (50vh - 5x)',\n overflow: 'auto',\n fill: '#surface',\n radius: '1cr',\n shadow: true,\n padding: '.5x',\n border: true,\n boxSizing: 'border-box',\n transition:\n 'translate $transition ease-out, scale $transition ease-out, theme $transition ease-out',\n translate: {\n '': '0 0',\n 'open & [data-placement=\"top\"]': '0 0',\n '!open & [data-placement=\"top\"]': '0 1x',\n 'open & ([data-placement=\"bottom\"] | ![data-placement])': '0 0',\n '!open & ([data-placement=\"bottom\"] | ![data-placement])': '0 -1x',\n },\n transformOrigin: {\n '': 'top center',\n '[data-placement=\"top\"]': 'bottom center',\n },\n scale: {\n '': '1 1',\n '!open': '1 .9',\n },\n opacity: {\n '': 1,\n '!open': 0.001,\n },\n },\n});\n\nexport interface CubeSelectBaseProps<T>\n extends BasePropsWithoutChildren,\n AriaLabelingProps,\n BaseStyleProps,\n OuterStyleProps,\n ColorStyleProps,\n FieldBaseProps<Key | null | undefined>,\n CollectionBase<T>,\n Omit<\n AriaSelectProps<T>,\n | 'errorMessage'\n | 'form'\n | 'name'\n | 'selectedKey'\n | 'defaultSelectedKey'\n | 'onSelectionChange'\n > {\n /** The currently selected key in the collection (controlled). */\n selectedKey?: Key | null;\n /** The initial selected key in the collection (uncontrolled). */\n defaultSelectedKey?: Key;\n /** Handler that is called when the selection changes. */\n onSelectionChange?: (key: Key | null) => void;\n icon?: ReactElement;\n rightIcon?: ReactNode;\n prefix?: ReactNode;\n suffix?: ReactNode;\n /** Description text for the trigger. Note: Different from field-level description. */\n triggerDescription?: ReactNode;\n descriptionPlacement?: 'inline' | 'block';\n /** Keyboard shortcut that triggers the select when pressed */\n hotkeys?: string;\n /**\n * Tooltip content and configuration for the trigger. The info badge next to\n * the field's label is `labelTooltip`.\n * - string: simple tooltip text\n * - true: auto tooltip on overflow (shows selected value as tooltip when truncated)\n * - object: advanced configuration with optional auto property\n */\n tooltip?:\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n triggerRef?: RefObject<HTMLButtonElement>;\n /**\n * Shows a loading indicator in the trigger. The value can't change while\n * loading: the list doesn't open and typeahead is ignored.\n */\n isLoading?: boolean;\n /** Replaces the default loading icon shown while `isLoading` is set. */\n loadingIndicator?: ReactNode;\n overlayOffset?: number;\n /**\n * @deprecated Has no effect: the whole Select is its trigger. To hide the\n * dropdown caret, pass `rightIcon={null}`.\n */\n hideTrigger?: boolean;\n /**\n * @deprecated Use `triggerStyles` instead\n */\n inputStyles?: Styles;\n optionStyles?: Styles;\n triggerStyles?: Styles;\n listBoxStyles?: Styles;\n /** Space between options, in pixels. Defaults to a hairline (`1bw`). */\n listGap?: number;\n overlayStyles?: Styles;\n direction?: 'top' | 'bottom';\n /**\n * The ref of the element the popover should visually attach itself to.\n * Defaults to the trigger button.\n *\n * Only the popover's POSITION follows this ref. The trigger keeps its own\n * ref for focus, outside-click and dismiss logic, so anchoring to a wider\n * container does not make clicks inside that container count as trigger\n * presses. The popover's `minWidth` also stays tied to the trigger, not to\n * this element.\n */\n targetRef?: RefObject<HTMLElement | null>;\n /**\n * Placement of the popover relative to the anchor.\n * Accepts React Aria's `Placement` strings (e.g. `'bottom start'`,\n * `'top start'`, `'right top'`, `'left top'`).\n *\n * Overrides `direction` when both are given.\n * @default `${direction} end`\n */\n placement?: Placement;\n shouldFlip?: boolean;\n /** Minimum padding in pixels between the popover and viewport edges */\n containerPadding?: number;\n /** Additional props for the trigger button element. */\n inputProps?: Props;\n type?: 'outline' | 'outline-2' | 'clear' | 'primary' | (string & {});\n /**\n * Shape of the trigger's border radius.\n * - `card` - Card shape with larger border radius (`1cr`)\n * - `button` - Button shape with default border radius (default)\n * - `sharp` - Sharp corners with no border radius (`0`)\n * - `pill` - Pill shape with fully rounded ends (`round`)\n * @default \"button\"\n */\n shape?: 'card' | 'button' | 'sharp' | 'pill';\n suffixPosition?: 'before' | 'after';\n theme?: 'default' | 'special';\n /** Whether the select is clearable using a clear button in the rightIcon slot */\n isClearable?: boolean;\n /** Accessible name for the built-in clear button. Defaults to a localized \"Clear value\". */\n clearLabel?: string;\n /** Callback called when the clear button is pressed */\n onClear?: () => void;\n /**\n * Custom actions rendered inside the trigger, to the left of the built-in\n * clear button and dropdown caret. Use `Select.Action` so they match the\n * trigger's size and theme.\n *\n * Pressing one runs its handler without opening or closing the popover —\n * including while the popover is open. Actions follow the trigger's disabled\n * state but NOT `isReadOnly`, since a read-only field can still host an\n * action that does not change the value; pass `isDisabled` yourself for one\n * that does.\n */\n actions?: ReactNode;\n /** Callback called when the popover open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n}\n\nexport interface CubeSelectProps<T> extends CubeSelectBaseProps<T> {\n /** The ref for the popover element. */\n popoverRef?: RefObject<HTMLElement | null>;\n /** The ref for the list box. */\n listBoxRef?: RefObject<HTMLElement>;\n size?: 'small' | 'medium' | 'large' | (string & {});\n placeholder?: string;\n}\n\nconst PROP_STYLES = [...BASE_STYLES, ...OUTER_STYLES, ...COLOR_STYLES];\n\nconst ignore = () => {};\n\n/**\n * A state whose value can't change. React Aria's trigger opens the list,\n * steps with `ArrowLeft`/`ArrowRight` and typeaheads through these methods,\n * so ignoring them fixes the value while the trigger stays focusable.\n */\nfunction lockSelectState<S extends SelectState<object>>(state: S): S {\n return {\n ...state,\n open: ignore,\n toggle: ignore,\n setSelectedKey: ignore,\n setValue: ignore,\n };\n}\n\nfunction Select<T extends object>(\n rawProps: CubeSelectProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n let props = useFieldProps(rawProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n selectedKey: value ?? null,\n onSelectionChange: onChange,\n }),\n });\n\n let {\n qa,\n label,\n extra,\n icon,\n rightIcon,\n labelStyles,\n isRequired,\n necessityIndicator,\n isInvalid,\n isValid,\n prefix,\n isDisabled = props.isLoading || false,\n autoFocus,\n inputProps,\n triggerRef: triggerRefProp,\n popoverRef,\n listBoxRef,\n isLoading,\n loadingIndicator,\n overlayOffset = 8,\n inputStyles,\n triggerStyles,\n optionStyles,\n listBoxStyles,\n listGap,\n overlayStyles,\n suffix,\n actions,\n message,\n triggerDescription,\n descriptionPlacement,\n hotkeys,\n direction = 'bottom',\n targetRef,\n placement: placementProp,\n shouldFlip = true,\n containerPadding = 8,\n placeholder,\n tooltip,\n size = 'medium',\n shape,\n styles,\n type = 'outline',\n theme = 'default',\n labelSuffix,\n suffixPosition = 'before',\n isClearable,\n clearLabel,\n onOpenChange,\n form,\n ...otherProps\n } = props;\n const { t } = useI18n();\n // `useSelectState` reports `onOpenChange` itself, once per transition.\n let state = getValueSelectionState(useSelectState(props));\n // Read-only and loading keep the trigger focusable, but its value is fixed.\n const isLocked = !!props.isReadOnly || !!isLoading;\n\n if (isLocked) state = lockSelectState(state);\n\n // Generate a unique ID for this select instance\n const selectId = useMemo(() => generateRandomId(), []);\n\n // A list that can no longer change the value closes rather than staying open\n // behind a hidden popup, so `aria-expanded` follows and enabling the field\n // again doesn't bring the list back.\n const isInert = isLocked || isDisabled;\n const closeList = useEffectEvent(() => state.close());\n\n useEffect(() => {\n if (isInert && state.isOpen) closeList();\n }, [isInert, state.isOpen]);\n\n styles = extractStyles(otherProps, PROP_STYLES, styles);\n\n ref = useCombinedRefs(ref);\n const triggerRef = useCombinedRefs(triggerRefProp);\n popoverRef = useCombinedRefs(popoverRef);\n listBoxRef = useCombinedRefs(listBoxRef);\n\n usePopoverSync({\n menuId: selectId,\n isOpen: state.isOpen,\n onClose: () => state.close(),\n triggerRef: triggerRef as RefObject<HTMLElement | null>,\n containerRef: popoverRef as RefObject<HTMLElement | null>,\n });\n\n // Hand focus back to the trigger the moment the list closes, rather than\n // leaving it to the popup's `FocusScope`, which only restores when it\n // UNMOUNTS — at the end of the exit transition (CUB-4839).\n //\n // For the length of that transition focus would otherwise sit on an option\n // inside a popup that is going away, and the key a user presses next can\n // land nowhere at all: once the option is detached focus drops to `<body>`,\n // which takes the event out of the React tree entirely.\n //\n // `focusProgrammatically` so the trigger's tooltip does not read this as the\n // user arriving and pop up — it would then swallow that next `Escape`.\n //\n // Guarded on focus still being INSIDE the popup, so this only finishes a\n // hand-off the popup had already started: closing by clicking elsewhere\n // leaves focus wherever the user put it.\n useEffect(() => {\n if (state.isOpen) return;\n\n const popover = popoverRef.current;\n const active = document.activeElement;\n\n if (!popover || !active || !popover.contains(active)) return;\n\n focusProgrammatically(triggerRef.current, { preventScroll: true });\n // Both refs come from `useCombinedRefs`, so their identity never changes;\n // listing them satisfies the rule without re-running this.\n }, [state.isOpen, popoverRef, triggerRef]);\n\n // React Aria hands `form` to `HiddenSelect` as the id of its `<form>`, so the\n // form instance would render as `form=\"[object Object]\"` on the `<select>`.\n let { labelProps, triggerProps, valueProps, menuProps } = useSelect(\n { ...props, form: undefined },\n state,\n triggerRef,\n );\n\n let { overlayProps, placement } = useOverlayPosition({\n // Position only. `triggerRef` stays the dismiss/focus anchor below, so a\n // consumer can line this popover up with a row without that row's clicks\n // reading as presses on the trigger.\n targetRef: (targetRef ?? triggerRef) as RefObject<HTMLElement>,\n overlayRef: popoverRef,\n scrollRef: listBoxRef,\n placement: placementProp ?? (`${direction} end` as Placement),\n shouldFlip: shouldFlip,\n isOpen: state.isOpen,\n onClose: state.close,\n offset: overlayOffset,\n containerPadding: containerPadding,\n });\n\n let { isFocused, focusProps } = useFocus(true);\n let { hoverProps, isHovered } = useHover({ isDisabled });\n\n // Get props for the button based on the trigger props from useSelect\n let { buttonProps } = useButton({ ...triggerProps, autoFocus }, triggerRef);\n\n let validationIcon = getValidationIcon({ isInvalid, isValid });\n\n // Clear button logic\n let hasSelection = state.selectedItem != null;\n let showClearButton = isClearable && hasSelection && !isInert;\n\n function clearValue() {\n // Reports the change through `onSelectionChange`.\n state.setSelectedKey(null);\n\n if (state.isOpen) {\n state.close();\n }\n\n // Back to the trigger, without its tooltip reading this as the user\n // arriving there and then swallowing the next `Escape`.\n focusProgrammatically(triggerRef.current);\n\n props.onClear?.();\n }\n\n // The popup is at least as wide as the trigger. Measured as the list opens,\n // before the popup mounts and is positioned, rather than during render, so a\n // trigger resized while the list was closed is read fresh.\n const [triggerWidth, setTriggerWidth] = useState<number>();\n\n useLayoutEffect(() => {\n if (state.isOpen) setTriggerWidth(triggerRef.current?.offsetWidth);\n }, [state.isOpen, triggerRef]);\n\n const loadingIcon = loadingIndicator ?? <LoadingIcon />;\n\n const showPlaceholder = !!placeholder?.trim() && !state.selectedItem;\n\n const modifiers = useMemo(\n () => ({\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n loading: isLoading,\n hovered: isHovered,\n focused: isFocused,\n placeholder: showPlaceholder,\n prefix: !!prefix,\n suffix: true,\n }),\n [\n isInvalid,\n isValid,\n isDisabled,\n isLoading,\n isHovered,\n isFocused,\n showPlaceholder,\n prefix,\n ],\n );\n\n suffix = useMemo(() => {\n if (!suffix && !validationIcon) {\n return null;\n }\n\n return (\n <>\n {suffix}\n {validationIcon}\n </>\n );\n }, [suffix, validationIcon]);\n\n // A caller's `rightIcon` keeps the `rightIcon` slot: it accepts a render\n // function resolved against the trigger's mods, which only that slot does, and\n // it is also what a caller's `RightIcon` styles target. It replaces the\n // built-in control, exactly as before.\n const hasCustomRightIcon = rightIcon !== undefined;\n const triggerRightIcon = hasCustomRightIcon\n ? isLoading\n ? loadingIcon\n : rightIcon\n : undefined;\n\n // With a caller's own `rightIcon` the built-in control moves into that slot,\n // leaving the run with whatever the caller passed — possibly nothing. The run\n // is still rendered, so the trigger does not restructure if actions arrive\n // later, but the row stops counting it as end content — which is what keeps an\n // icon-only trigger with `rightIcon={null}` square.\n const hasTriggerActions = !hasCustomRightIcon || !!actions;\n\n // Everything trailing that is NOT the caller's own icon goes into the actions\n // run — a sibling of the `<button>`, so the clear button is no longer nested\n // inside one. See `TriggerActions`.\n const triggerActions = (\n <TriggerActions\n actions={actions}\n builtIn={\n hasCustomRightIcon ? null : showClearButton ? (\n <ItemAction\n icon={<CloseIcon />}\n size={size}\n qa=\"SelectClearButton\"\n // `ItemAction` derives its accessible name from `aria-label` or a\n // string `tooltip` and warns for neither, so an icon-only clear\n // button without this reaches a screen reader unnamed.\n aria-label={clearLabel ?? t('select.clearValue', 'Clear value')}\n // No explicit `type`/`theme`: the default `current` type paints\n // from the trigger's own inherited text color, so the button\n // matches whatever the field is showing instead of one palette.\n //\n // NOTE: this trigger keeps NEUTRAL label text when invalid, so\n // the button reads neutral there too. `Picker` and `FilterPicker`\n // are also `Item`-based but do tint theirs, which is the actual\n // inconsistency to fix — in `Select`, not here.\n mods={{ pressed: false }}\n onPress={clearValue}\n />\n ) : isLoading ? (\n <TriggerIcon>{loadingIcon}</TriggerIcon>\n ) : (\n <TriggerIcon>\n <DirectionIcon to={state.isOpen ? 'up' : 'down'} />\n </TriggerIcon>\n )\n }\n />\n );\n\n let selectField = (\n <SelectWrapperElement\n mods={modifiers}\n styles={styles}\n data-size={size}\n data-type={type}\n data-theme={theme}\n >\n <HiddenSelect\n state={state}\n triggerRef={triggerRef}\n label={props.label}\n name={props.name}\n />\n {/*\n The trigger's trailing controls are rendered as a SIBLING of the\n `<button>` — the same layout `ItemButton` uses for its actions, shared\n through `ItemActionsWrapper`. `Select` builds its trigger from `Item`\n rather than `ItemButton` because `useSelect`/`useButton` already own the\n button props, so it reaches for the wrapper directly.\n\n The RAW theme, unlike `Picker` / `FilterPicker` which forward\n `getValidationTheme(...)`: this trigger is painted with the raw theme too\n and surfaces validation through `SelectWrapperElement` rather than by\n switching theme. What the wrapper hands its actions must always match\n what the trigger paints with.\n */}\n <ItemActionsWrapper\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled || isLoading}\n mods={modifiers}\n actions={triggerActions}\n >\n {({ showActions, skipActionsWidthTransition }) => (\n <Item\n actions={hasTriggerActions || undefined}\n insideWrapper\n as=\"button\"\n qa={qa || 'Select'}\n data-input-type=\"select\"\n {...mergeProps(buttonProps, hoverProps, focusProps, inputProps)}\n ref={triggerRef}\n data-popover-trigger\n showActions={showActions}\n skipActionsWidthTransition={skipActionsWidthTransition}\n styles={mergeStyleLayers(inputStyles, triggerStyles)}\n theme={theme}\n size={size}\n shape={shape}\n // Ensure this button never submits a surrounding form in tests or runtime\n htmlType=\"button\"\n // Preserve visual variant via data attribute instead of conflicting with HTML attribute\n type={type}\n mods={modifiers}\n prefix={prefix}\n suffix={suffix}\n icon={icon}\n rightIcon={triggerRightIcon}\n description={triggerDescription}\n descriptionPlacement={descriptionPlacement}\n hotkeys={hotkeys}\n tooltip={tooltip}\n labelProps={valueProps}\n >\n {state.selectedItem ? (\n state.selectedItem.rendered\n ) : placeholder ? (\n <Text.Placeholder>{placeholder}</Text.Placeholder>\n ) : null}\n </Item>\n )}\n </ItemActionsWrapper>\n <ListBoxPopup\n {...menuProps}\n popoverRef={popoverRef}\n listBoxRef={listBoxRef}\n overlayProps={overlayProps}\n placement={placement}\n state={state}\n listBoxStyles={listBoxStyles}\n listGap={listGap}\n overlayStyles={overlayStyles}\n optionStyles={optionStyles}\n minWidth={triggerWidth}\n size={size}\n triggerRef={triggerRef}\n isDisabled={isDisabled}\n />\n </SelectWrapperElement>\n );\n\n return wrapWithField<Omit<CubeSelectProps<T>, 'children' | 'tooltip'>>(\n selectField,\n ref,\n mergeProps(\n {\n ...props,\n // The trigger's own. Handed on, it read as the legacy field `tooltip`.\n tooltip: undefined,\n },\n { labelProps },\n ),\n );\n}\n\nexport function ListBoxPopup({\n state,\n popoverRef,\n listBoxRef,\n listBoxStyles,\n listGap,\n overlayStyles,\n optionStyles,\n overlayProps: parentOverlayProps,\n shouldUseVirtualFocus = false,\n placement,\n minWidth,\n size = 'small',\n triggerRef,\n isDisabled,\n ...otherProps\n}) {\n // Handle events that should cause the popup to close,\n // e.g. blur, clicking outside, or pressing the escape key.\n let { overlayProps: rawOverlayProps } = useOverlay(\n {\n onClose: () => state.close(),\n shouldCloseOnBlur: true,\n isOpen: state.isOpen,\n isDismissable: true,\n shouldCloseOnInteractOutside: (el) => {\n // The trigger owns interactive controls of its own — the clear button\n // and any custom `actions`. They sit in the actions run, a SIBLING of\n // the trigger, so the lookup below would read them as a press outside\n // and dismiss, swallowing the press: the first press on `Reset` while\n // the list was open only closed the list and the action never ran. Same\n // guard as `DialogTrigger`, which `Picker` / `FilterPicker` go through.\n if (isOwnActionsPress(el, triggerRef?.current)) return false;\n\n const menuTriggerEl = el.closest('[data-popover-trigger]');\n if (!menuTriggerEl) {\n if (el.closest('[data-popover-keep]')) return false;\n // Plain interactive controls (Button, ItemButton) opt in via\n // `data-popover-dismiss` to dismiss us without losing their click\n // to useOverlay's stopPropagation. Schedule the close after the\n // click finishes so the button's onPress runs first.\n if (el.closest('[data-popover-dismiss]')) {\n setTimeout(() => state.close(), 0);\n return false;\n }\n return true;\n }\n // If the same trigger that opened this select was clicked, allow closing\n if (menuTriggerEl === triggerRef?.current) return true;\n // Otherwise, don't close (let event mechanism handle it)\n return false;\n },\n },\n popoverRef,\n );\n\n // A list that has already closed must not swallow the `Escape` meant for\n // whatever surrounds it — see `useOverlayEscapeGuard`.\n const overlayProps = useOverlayEscapeGuard(rawOverlayProps, state.isOpen);\n\n // Opened inside a modal, the list stays readable while the modal hides the\n // page.\n const layerRef = useModalLayerRef();\n\n // Extract primary placement direction for consistent styling\n const placementDirection = placement?.split(' ')[0] || 'bottom';\n\n // Wrap in <FocusScope> so that focus is restored back to the\n // trigger when the popup is closed. In addition, add hidden\n // <DismissButton> components at the start and end of the list\n // to allow screen reader users to dismiss the popup easily.\n //\n // `SelectListBox` puts focus in the list as it mounts, which happens on\n // every open. `autoFocus` on the scope then finds focus already inside and\n // only registers the scope as the active one, so an outer contained Dialog\n // FocusScope (e.g. a popover Dialog wrapping the Select) recognises focus\n // moving into the Select popover and doesn't yank it back to the trigger.\n return (\n <Portal>\n <DisplayTransition isShown={state.isOpen && !isDisabled}>\n {({ phase, isShown, isExiting, ref: transitionRef }) => (\n <SelectOverlayWrapper\n {...overlayProps}\n {...parentOverlayProps}\n ref={mergeRefs(popoverRef, layerRef)}\n style={parentOverlayProps?.style}\n // A press on the list while it fades out must not close the\n // overlay under it (CUB-5293) — see `Overlay`.\n data-react-aria-top-layer={isExiting || undefined}\n >\n <OverlayElement\n ref={transitionRef}\n data-placement={placementDirection}\n data-phase={phase}\n mods={{\n open: isShown,\n }}\n styles={overlayStyles}\n style={{\n '--overlay-min-width': minWidth ? `${minWidth}px` : 'initial',\n }}\n >\n <FocusScope autoFocus restoreFocus>\n <DismissButton onDismiss={() => state.close()} />\n <SelectListBox\n {...otherProps}\n state={state}\n listBoxRef={listBoxRef}\n listBoxStyles={listBoxStyles}\n listGap={listGap}\n optionStyles={optionStyles}\n shouldUseVirtualFocus={shouldUseVirtualFocus}\n size={size}\n />\n <DismissButton onDismiss={() => state.close()} />\n </FocusScope>\n </OverlayElement>\n </SelectOverlayWrapper>\n )}\n </DisplayTransition>\n </Portal>\n );\n}\n\n/** The first or last option that can take focus. */\nfunction getEdgeOptionKey(\n state: SelectState<object>,\n edge: 'first' | 'last',\n): Key | null {\n const keys = [...state.collection.getKeys()];\n\n if (edge === 'last') keys.reverse();\n\n return (\n keys.find(\n (key) =>\n state.collection.getItem(key)?.type === 'item' &&\n state.selectionManager.canSelectItem(key),\n ) ?? null\n );\n}\n\n/**\n * Where focus lands as the list opens. `ArrowUp` opens on the last option;\n * `ArrowDown`, `Enter` and `Space` on the selected option, or else the first.\n * A pointer opens on the selected option, or else on the list itself, as in\n * React Aria, so a click highlights nothing the user didn't pick.\n */\nfunction getOpeningFocusKey(state: SelectState<object>): Key | null {\n const { focusStrategy, selectedKey, selectionManager } = state;\n\n if (focusStrategy === 'last') return getEdgeOptionKey(state, 'last');\n\n if (selectedKey != null && selectionManager.canSelectItem(selectedKey)) {\n return selectedKey;\n }\n\n return focusStrategy === 'first' ? getEdgeOptionKey(state, 'first') : null;\n}\n\n/**\n * Scrolls `list` so `option` is in view. Layout offsets rather than client\n * rects: on its first frames the popup is scaled by its enter transition,\n * which would skew a rect-based scroll. The list is positioned, so the offset\n * chain ends at it.\n */\nfunction scrollIntoList(list: HTMLElement, option: HTMLElement) {\n let top = 0;\n\n for (\n let node: HTMLElement | null = option;\n node && node !== list;\n node = node.offsetParent as HTMLElement | null\n ) {\n top += node.offsetTop;\n }\n\n const bottom = top + option.offsetHeight;\n\n if (top < list.scrollTop) {\n list.scrollTop = top;\n } else if (bottom > list.scrollTop + list.clientHeight) {\n list.scrollTop = bottom - list.clientHeight;\n }\n}\n\nfunction focusOpeningOption(\n state: SelectState<object>,\n list: HTMLElement | null,\n shouldUseVirtualFocus: boolean,\n) {\n const key = getOpeningFocusKey(state);\n const manager = state.selectionManager;\n\n manager.setFocused(true);\n manager.setFocusedKey(key);\n\n if (!list || shouldUseVirtualFocus) return;\n\n const option =\n key == null\n ? undefined\n : Array.from(list.querySelectorAll<HTMLElement>('[role=\"option\"]')).find(\n (element) => element.dataset.key === String(key),\n );\n\n if (!option) {\n list.focus({ preventScroll: true });\n\n return;\n }\n\n scrollIntoList(list, option);\n // Focused here rather than left to the option, which would only follow on\n // the next render: the scope's `autoFocus` runs first and would otherwise\n // focus whichever option was tabbable from the last opening.\n option.focus({ preventScroll: true });\n}\n\n/**\n * The list inside the popup. It decides where focus lands when it mounts,\n * rather than inheriting the last opening. The popup unmounts it once it has\n * closed, so that is every opening except a reopen during the exit\n * transition, which keeps the list mounted.\n */\nfunction SelectListBox({\n state,\n listBoxRef,\n listBoxStyles,\n listGap,\n optionStyles,\n shouldUseVirtualFocus,\n size,\n ...otherProps\n}) {\n // For trigger+popover components, map 'small' size to 'medium' for list items\n // while preserving 'medium' and 'large' sizes\n const listItemSize = size === 'small' ? 'medium' : size;\n const listGapTokens =\n listGap == null ? undefined : { '$list-gap': `${listGap}px` };\n\n let { listBoxProps } = useListBox(\n // Opening focus is `focusOpeningOption`'s: React Aria's own `autoFocus`\n // lets a selection win over the last option `ArrowUp` asks for.\n { ...otherProps, shouldUseVirtualFocus, autoFocus: false },\n state,\n listBoxRef,\n );\n\n const focusOnOpen = useEffectEvent(() =>\n focusOpeningOption(state, listBoxRef.current, shouldUseVirtualFocus),\n );\n\n useEffect(() => {\n focusOnOpen();\n }, []);\n\n const renderedItems: React.ReactNode[] = [];\n let hasSections = false;\n\n for (const item of state.collection) {\n if (item.type === 'section') {\n if (hasSections) {\n // A listbox may only own options and groups, so the divider between\n // sections is presentation only.\n renderedItems.push(\n <ListDivider\n key={`divider-${String(item.key)}`}\n as=\"li\"\n role=\"presentation\"\n />,\n );\n }\n\n renderedItems.push(\n <SelectSection\n key={item.key}\n item={item}\n state={state}\n optionStyles={optionStyles}\n sectionStyles={undefined}\n shouldUseVirtualFocus={shouldUseVirtualFocus}\n size={listItemSize}\n />,\n );\n\n hasSections = true;\n } else {\n renderedItems.push(\n <Option\n key={item.key}\n item={item}\n state={state}\n styles={optionStyles}\n shouldUseVirtualFocus={shouldUseVirtualFocus}\n size={listItemSize}\n />,\n );\n }\n }\n\n return (\n <ListBoxElement\n styles={listBoxStyles}\n tokens={listGapTokens}\n mods={{ sections: hasSections }}\n {...listBoxProps}\n ref={listBoxRef}\n >\n {renderedItems}\n </ListBoxElement>\n );\n}\n\nfunction Option({ item, state, styles, shouldUseVirtualFocus, size }) {\n let ref = useRef<HTMLLIElement>(null);\n let isDisabled = state.disabledKeys.has(item.key);\n let isSelected = state.selectionManager.isSelected(item.key);\n let isVirtualFocused = state.selectionManager.focusedKey === item.key;\n\n let { optionProps, isPressed, labelProps, descriptionProps } = useOption(\n {\n key: item.key,\n isDisabled,\n isSelected,\n shouldSelectOnPressUp: true,\n shouldFocusOnHover: true,\n shouldUseVirtualFocus,\n },\n state,\n ref,\n );\n\n // A mouse press picks the option it started on, even if the list moved\n // under the pointer before the release.\n const originPress = useOptionOriginPress({\n key: item.key,\n ref,\n manager: state.selectionManager,\n isDisabled,\n });\n const { onPointerUp, ...ariaOptionProps } =\n filterSelectionItemProps(optionProps);\n\n // Handle focus events, so we can apply highlighted\n // style to the focused option\n let { isFocused, focusProps } = useFocus();\n\n // Filter out service props - all remaining props can be passed to Item\n const filteredItemProps = filterSelectionItemProps(\n filterCollectionItemProps(item.props),\n );\n\n const keyboardProps = {\n onKeyDown(event: KeyboardEvent<HTMLLIElement>) {\n // Committing an option refocuses the trigger during keydown. Cancel\n // Enter's native activation there, preserving Control+Enter context\n // menus and activation of links or controls inside the option.\n if (\n event.key === 'Enter' &&\n !event.ctrlKey &&\n event.target === event.currentTarget\n ) {\n event.preventDefault();\n }\n },\n };\n\n return (\n <OptionItem\n {...mergeProps(\n ariaOptionProps,\n {\n onPointerDown: originPress.onPointerDown,\n onPointerUp: originPress.wrapPointerUp(onPointerUp),\n },\n focusProps,\n filteredItemProps,\n keyboardProps,\n )}\n ref={ref}\n mods={{\n listboxitem: true,\n selected: isSelected,\n focused: shouldUseVirtualFocus ? isVirtualFocused : isFocused,\n disabled: isDisabled,\n pressed: isPressed,\n }}\n data-size={size}\n styles={mergeStyleLayers(\n styles as Styles,\n filteredItemProps.styles as Styles,\n )}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n defaultTooltipPlacement=\"right\"\n >\n {item.rendered}\n </OptionItem>\n );\n}\n\ninterface SelectSectionProps<T> {\n item: any; // react-stately Node<T>\n state: any; // TreeState<T>\n optionStyles?: Styles;\n headingStyles?: Styles;\n sectionStyles?: Styles;\n shouldUseVirtualFocus?: boolean;\n size?: string;\n}\n\nfunction SelectSection<T>(props: SelectSectionProps<T>) {\n const {\n item,\n state,\n optionStyles,\n headingStyles,\n sectionStyles,\n shouldUseVirtualFocus,\n size,\n } = props;\n\n const heading = item.rendered;\n\n const { itemProps, headingProps, groupProps } = useListBoxSection({\n heading,\n 'aria-label': item['aria-label'],\n });\n\n return (\n <ListSectionWrapper {...itemProps} styles={sectionStyles}>\n {heading && (\n <ListSectionHeading\n {...headingProps}\n size={size}\n styles={mergeStyleLayers(headingStyles, {\n '$inline-compensation': '0px',\n })}\n >\n {heading}\n </ListSectionHeading>\n )}\n <ListBoxElement {...groupProps} mods={{ section: true }}>\n {[...item.childNodes]\n .filter((node: any) => state.collection.getItem(node.key))\n .map((node: any) => (\n <Option\n key={node.key}\n item={node}\n state={state}\n styles={optionStyles}\n shouldUseVirtualFocus={shouldUseVirtualFocus}\n size={size}\n />\n ))}\n </ListBoxElement>\n </ListSectionWrapper>\n );\n}\n\n// `forwardRef` can't carry the item generic, so the cast restores it, as in\n// ComboBox and Picker.\nconst _Select = forwardRef(\n Select as ForwardRefRenderFunction<HTMLDivElement, any>,\n) as unknown as <T>(\n props: CubeSelectProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReactElement;\n\n(_Select as any).cubeInputType = 'Select';\n\ntype SectionComponent = typeof BaseSection;\n\nconst SelectSectionComponent = Object.assign(BaseSection, {\n displayName: 'Section',\n}) as SectionComponent;\n\nconst __Select = Object.assign(\n _Select as typeof _Select & {\n Item: typeof CollectionItem;\n Section: typeof SelectSectionComponent;\n Action: typeof ItemAction;\n },\n {\n Item: CollectionItem,\n Section: SelectSectionComponent,\n Action: ItemAction,\n },\n);\n\n(__Select as any).displayName = 'Select';\n\nexport { __Select as Select };\n\nexport type { AriaSelectProps };\nexport { useSelectState };\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { SliderGradationElement, SliderGradeElement } from "./elements.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { mergeStyleLayers } from "../../../utils/styles.js";
|
|
3
3
|
import { __Slider } from "./Slider.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { Gradation } from "./Gradation.js";
|
|
3
3
|
import { _SliderBase } from "./SliderBase.js";
|
|
4
4
|
import { SliderThumb } from "./SliderThumb.js";
|
|
@@ -31,13 +31,12 @@ function RangeSlider(props, ref) {
|
|
|
31
31
|
isDisabled = $[2];
|
|
32
32
|
otherProps = $[3];
|
|
33
33
|
}
|
|
34
|
-
const minThumbInputRef = useRef(null);
|
|
35
34
|
const maxThumbInputRef = useRef(null);
|
|
36
35
|
const t0 = otherProps;
|
|
37
36
|
let t1;
|
|
38
37
|
if ($[4] !== gradation || $[5] !== isDisabled || $[6] !== props.orientation) {
|
|
39
38
|
t1 = (t2) => {
|
|
40
|
-
const { trackRef, state, isInvalid, isValid } = t2;
|
|
39
|
+
const { trackRef, inputRef, state, isInvalid, isValid } = t2;
|
|
41
40
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
42
41
|
/* @__PURE__ */ jsx(Gradation, {
|
|
43
42
|
state,
|
|
@@ -55,7 +54,7 @@ function RangeSlider(props, ref) {
|
|
|
55
54
|
index: 0,
|
|
56
55
|
"aria-label": INTL_MESSAGES.minimum,
|
|
57
56
|
state,
|
|
58
|
-
inputRef
|
|
57
|
+
inputRef,
|
|
59
58
|
trackRef,
|
|
60
59
|
isDisabled,
|
|
61
60
|
isInvalid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeSlider.js","names":["forwardRef","useRef","Gradation","SliderBase","SliderBaseChildArguments","SliderThumb","SliderTrack","FocusableRef","RangeValue","CubeSliderBaseProps","CubeRangeSliderProps","gradation","INTL_MESSAGES","minimum","maximum","RangeSlider","props","ref","$","_c","isDisabled","otherProps","t0","styles","t1","t2","
|
|
1
|
+
{"version":3,"file":"RangeSlider.js","names":["forwardRef","useRef","Gradation","SliderBase","SliderBaseChildArguments","SliderThumb","SliderTrack","FocusableRef","RangeValue","CubeSliderBaseProps","CubeRangeSliderProps","gradation","INTL_MESSAGES","minimum","maximum","RangeSlider","props","ref","$","_c","isDisabled","otherProps","t0","styles","t1","t2","maxThumbInputRef","orientation","trackRef","inputRef","state","isInvalid","isValid","_RangeSlider","__RangeSlider","Object","assign","cubeInputType","displayName"],"sources":["../../../../src/components/fields/Slider/RangeSlider.tsx"],"sourcesContent":["import { forwardRef, useRef } from 'react';\n\nimport { Gradation } from './Gradation';\nimport { SliderBase, SliderBaseChildArguments } from './SliderBase';\nimport { SliderThumb } from './SliderThumb';\nimport { SliderTrack } from './SliderTrack';\n\nimport type { FocusableRef } from '@react-types/shared';\nimport type { RangeValue } from '../../../shared';\nimport type { CubeSliderBaseProps } from './types';\n\nexport interface CubeRangeSliderProps\n extends CubeSliderBaseProps<RangeValue<number>> {\n gradation?: string[];\n}\n\nconst INTL_MESSAGES = {\n minimum: 'Minimum',\n maximum: 'Maximum',\n};\n\nfunction RangeSlider(\n props: CubeRangeSliderProps,\n ref: FocusableRef<HTMLDivElement>,\n) {\n let { isDisabled, styles, gradation, ...otherProps } = props;\n\n // The first thumb takes `SliderBase`'s `inputRef`, which the component ref's\n // `focus()` targets; the second thumb keeps its own.\n const maxThumbInputRef = useRef<HTMLInputElement>(null);\n\n return (\n <SliderBase ref={ref} {...(otherProps as CubeSliderBaseProps<number[]>)}>\n {({\n trackRef,\n inputRef,\n state,\n isInvalid,\n isValid,\n }: SliderBaseChildArguments) => {\n return (\n <>\n <Gradation state={state} ranges={[0, 1]} values={gradation} />\n <SliderTrack\n state={state}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n orientation={props.orientation}\n />\n <SliderThumb\n index={0}\n aria-label={INTL_MESSAGES['minimum']}\n state={state}\n inputRef={inputRef}\n trackRef={trackRef}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n />\n <SliderThumb\n index={1}\n aria-label={INTL_MESSAGES['maximum']}\n state={state}\n inputRef={maxThumbInputRef}\n trackRef={trackRef}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n />\n </>\n );\n }}\n </SliderBase>\n );\n}\n\nconst _RangeSlider = forwardRef(RangeSlider);\n\nconst __RangeSlider = Object.assign(_RangeSlider as typeof _RangeSlider, {\n cubeInputType: 'Number',\n displayName: 'RangeSlider',\n});\n\nexport { __RangeSlider as RangeSlider };\n"],"mappings":";;;;;;;;;;AAgBA,MAAMY,gBAAgB;CACpBC,SAAS;CACTC,SAAS;CACV;AAED,SAAAC,YAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAA,IAAAR;CAAA,IAAAS;CAAA,IAAAC;AAAA,KAAAH,EAAA,OAAAF,OAAA;EAIE,MAAA,EAAAI,YAAAE,IAAAC,QAAAZ,WAAAa,IAAA,GAAAC,OAAuDT;AAAvDI,eAAAE;AAAAX,cAAAa;AAAAH,eAAAI;AAA6DP,IAAA,KAAAF;AAAAE,IAAA,KAAAP;AAAAO,IAAA,KAAAE;AAAAF,IAAA,KAAAG;QAAA;AAAAV,cAAAO,EAAA;AAAAE,eAAAF,EAAA;AAAAG,eAAAH,EAAA;;CAI7D,MAAAQ,mBAAyBzB,OAAyB,KAAK;CAG1B,MAAAqB,KAAAD;CAA2C,IAAAG;AAAA,KAAAN,EAAA,OAAAP,aAAAO,EAAA,OAAAE,cAAAF,EAAA,OAAAF,MAAAW,aAAA;AACnEH,QAAAC,OAAA;GAAC,MAAA,EAAAG,UAAAC,UAAAC,OAAAC,WAAAC,YAAAP;AAMyB,UAEvB;IACE,oBAAC;KAAiBK;KAAe,QAAA,CAAC,GAAG,EAAC;KAAWnB,QAAAA;MACjD;wBAAC;KACQmB;KACKV;KACDW;KACFC;KACI,aAAAhB,MAAKW;MAEpB;wBAAC;KACQ,OAAA;KACK,cAAAf,cAAaC;KAClBiB;KACGD;KACAD;KACER;KACDW;KACFC;MAEX;wBAAC;KACQ,OAAA;KACK,cAAApB,cAAaE;KAClBgB;KACGJ,UAAAA;KACAE;KACER;KACDW;KACFC;MACT;OACD;;AAENd,IAAA,KAAAP;AAAAO,IAAA,KAAAE;AAAAF,IAAA,KAAAF,MAAAW;AAAAT,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAAA,IAAAO;AAAA,KAAAP,EAAA,OAAAD,OAAAC,EAAA,OAAAI,MAAAJ,EAAA,QAAAM,IAAA;AAxCHC,OAAA,oBAAC;GAAgBR;GAAG,GAAOK;aACxBE;IAwCU;AAAAN,IAAA,KAAAD;AAAAC,IAAA,KAAAI;AAAAJ,IAAA,MAAAM;AAAAN,IAAA,MAAAO;OAAAA,MAAAP,EAAA;AAAA,QAzCbO;;AA6CJ,MAAMQ,eAAejC,WAAWe,YAAY;AAE5C,MAAMmB,gBAAgBC,OAAOC,OAAOH,cAAqC;CACvEI,eAAe;CACfC,aAAa;CACd,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { Gradation } from "./Gradation.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { _Text } from "../../content/Text.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { getValidationMods } from "../../form/validation/resolve-validation-props.js";
|
|
4
4
|
import { SliderThumbElement } from "./elements.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { getValidationMods } from "../../form/validation/resolve-validation-props.js";
|
|
3
3
|
import { SliderTrackContainerElement } from "./elements.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { __RangeSlider } from "./RangeSlider.js";
|
|
3
3
|
import { __Slider } from "./Slider.js";
|
|
4
4
|
import { __HueSlider } from "./HueSlider.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useId as useId$2 } from "../../../utils/react/useId.js";
|
|
4
4
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
4
4
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { markKeyboardFocus } from "../ListBoxPopover/listNavigation.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useEffect, useRef, useState } from "react";
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { FieldBaseProps } from "../../../shared/form.js";
|
|
3
3
|
import { CubeBufferedValueProps, CubeTextInputBaseProps } from "../TextInput/TextInputBase.js";
|
|
4
|
-
import "../TextInput/index.js";
|
|
5
4
|
import * as react from "react";
|
|
6
5
|
import { RefObject } from "react";
|
|
7
6
|
import { AriaTextFieldProps } from "react-aria";
|