@cube-dev/ui-kit 0.184.0 → 0.185.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/CHANGELOG.md +40 -0
- package/dist/README.md +1 -1
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +19 -18
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +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 +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +107 -93
- package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +6 -3
- package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +3 -5
- package/dist/components/actions/use-action.js.map +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.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.d.ts +7 -0
- package/dist/components/content/Item/Item.js +244 -237
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.d.ts +14 -14
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +139 -125
- 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/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableView.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.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-order.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +90 -43
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +3 -2
- package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +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 +28 -18
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.d.ts +2 -2
- package/dist/components/fields/ListBox/ListBox.js +1 -2
- package/dist/components/fields/ListBox/ListBox.js.map +1 -1
- package/dist/components/fields/ListBox/optionId.js +16 -0
- package/dist/components/fields/ListBox/optionId.js.map +1 -0
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +120 -110
- 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 +44 -22
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +1 -1
- package/dist/components/fields/RadioGroup/Radio.d.ts +2 -2
- package/dist/components/fields/RadioGroup/Radio.js +3 -3
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +3 -2
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +3 -2
- 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 +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.d.ts +182 -0
- package/dist/components/fields/TagInput/TagInput.js +1856 -0
- package/dist/components/fields/TagInput/TagInput.js.map +1 -0
- package/dist/components/fields/TagInput/TagList.js +355 -0
- package/dist/components/fields/TagInput/TagList.js.map +1 -0
- package/dist/components/fields/TagInput/index.d.ts +2 -0
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -0
- package/dist/components/fields/TextInput/TextInputBase.js +8 -6
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- 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 -0
- package/dist/components/form/FieldWrapper/FieldWrapper.js +13 -2
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +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/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/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/Board/Board.js +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.js +1 -1
- package/dist/components/layout/Board/Widget.js +1 -1
- package/dist/components/layout/Board/WidgetHost.js +1 -1
- package/dist/components/layout/Board/board-context.js +1 -1
- package/dist/components/layout/Board/board-store.js +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js +1 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
- package/dist/components/layout/Board/grid-core/collision.js +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js +1 -1
- package/dist/components/layout/Board/grid-core/group-move.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/placement.js +1 -1
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/index.js +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/use-board-layout.js +1 -1
- package/dist/components/layout/Board/use-board-registry.js +1 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
- package/dist/components/layout/Board/use-board-selection.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +3 -2
- package/dist/components/navigation/Tabs/TabButton.js.map +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.d.ts +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/types.js.map +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.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/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/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.js +14 -12
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.d.ts +6 -0
- package/dist/components/overlays/Tooltip/TooltipProvider.js +43 -38
- package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +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 +47 -1
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +18 -1
- package/dist/i18n/locales/en-US/uikit.js +18 -1
- package/dist/i18n/locales/en-US/uikit.json.d.ts +22 -2
- package/dist/i18n/locales/es-ES/uikit.js +18 -1
- package/dist/i18n/locales/es-MX/uikit.js +18 -1
- package/dist/i18n/locales/fr-FR/uikit.js +18 -1
- package/dist/i18n/locales/it-IT/uikit.js +18 -1
- package/dist/i18n/locales/ja-JP/uikit.js +18 -1
- package/dist/i18n/locales/nb-NO/uikit.js +18 -1
- package/dist/i18n/locales/pt-BR/uikit.js +18 -1
- package/dist/i18n/locales/pt-PT/uikit.js +18 -1
- package/dist/i18n/locales/sv-SE/uikit.js +18 -1
- package/dist/i18n/locales/vi-VN/uikit.js +18 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +4 -5
- package/dist/tokens/color-theme.js.map +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.d.ts +5 -0
- package/dist/tokens/palette-config.js +30 -7
- package/dist/tokens/palette-config.js.map +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.d.ts +1 -0
- package/dist/tokens/typography.js +10 -1
- package/dist/tokens/typography.js.map +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/escapePropagation.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/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 +3 -4
- package/dist/utils/react/wrapNodeIfPlain.js.map +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/Usage.md +10 -9
- package/docs/components/actions/ItemButton.md +2 -2
- package/docs/components/fields/TagInput.md +429 -0
- package/docs/components/overlays/TooltipProvider.md +1 -0
- package/package.json +1 -1
- package/tasty.config.ts +2 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
|
|
4
4
|
import { Portal } from "../../portal/Portal.js";
|
|
@@ -61,21 +61,23 @@ const ListBoxPopoverElement = tasty({
|
|
|
61
61
|
}
|
|
62
62
|
});
|
|
63
63
|
const ListBoxPopover = function ListBoxPopover(props) {
|
|
64
|
-
const $ = c(
|
|
64
|
+
const $ = c(66);
|
|
65
65
|
const { t } = useI18n();
|
|
66
|
-
const { isOpen, triggerRef, popoverRef, listBoxRef, direction, shouldFlip, overlayOffset, containerPadding, comboBoxWidth, listBoxId, overlayStyles, listBoxStyles, optionStyles, optionHighlight, sectionStyles, headingStyles, selectedKey, isDisabled, disabledKeys, items, children, listStateRef, onSelectionChange, onClose, label, ariaLabel, compositeFocusProps, filter, size:
|
|
66
|
+
const { isOpen, triggerRef, popoverRef, listBoxRef, direction, shouldFlip, overlayOffset, containerPadding, comboBoxWidth, listBoxId, overlayStyles, listBoxStyles, optionStyles, optionHighlight, sectionStyles, headingStyles, selectedKey, selectionMode: t0, selectedKeys, isCheckable, shouldCloseOnTriggerInteraction: t1, isDisabled, disabledKeys, items, children, listStateRef, onSelectionChange, onClose, label, ariaLabel, compositeFocusProps, filter, size: t2, emptyLabel, positionTargetRef, positionApiRef } = props;
|
|
67
|
+
const selectionMode = t0 === void 0 ? "single" : t0;
|
|
68
|
+
const shouldCloseOnTriggerInteraction = t1 === void 0 ? true : t1;
|
|
67
69
|
const mergedPopoverRef = popoverRef;
|
|
68
70
|
const overlayScrollRef = useRef(null);
|
|
69
|
-
const
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
let
|
|
73
|
-
if ($[0] !== containerPadding || $[1] !== isOpen || $[2] !== overlayOffset || $[3] !== shouldFlip || $[4] !==
|
|
74
|
-
|
|
75
|
-
targetRef:
|
|
76
|
-
overlayRef:
|
|
71
|
+
const t3 = positionTargetRef ?? triggerRef;
|
|
72
|
+
const t4 = mergedPopoverRef;
|
|
73
|
+
const t5 = `${direction} start`;
|
|
74
|
+
let t6;
|
|
75
|
+
if ($[0] !== containerPadding || $[1] !== isOpen || $[2] !== overlayOffset || $[3] !== shouldFlip || $[4] !== t3 || $[5] !== t4 || $[6] !== t5) {
|
|
76
|
+
t6 = {
|
|
77
|
+
targetRef: t3,
|
|
78
|
+
overlayRef: t4,
|
|
77
79
|
scrollRef: overlayScrollRef,
|
|
78
|
-
placement:
|
|
80
|
+
placement: t5,
|
|
79
81
|
shouldFlip,
|
|
80
82
|
isOpen,
|
|
81
83
|
offset: overlayOffset,
|
|
@@ -85,25 +87,25 @@ const ListBoxPopover = function ListBoxPopover(props) {
|
|
|
85
87
|
$[1] = isOpen;
|
|
86
88
|
$[2] = overlayOffset;
|
|
87
89
|
$[3] = shouldFlip;
|
|
88
|
-
$[4] =
|
|
89
|
-
$[5] =
|
|
90
|
-
$[6] =
|
|
91
|
-
$[7] =
|
|
92
|
-
} else
|
|
93
|
-
const { overlayProps: overlayPositionProps, placement, updatePosition } = useOverlayPosition(
|
|
94
|
-
let
|
|
90
|
+
$[4] = t3;
|
|
91
|
+
$[5] = t4;
|
|
92
|
+
$[6] = t5;
|
|
93
|
+
$[7] = t6;
|
|
94
|
+
} else t6 = $[7];
|
|
95
|
+
const { overlayProps: overlayPositionProps, placement, updatePosition } = useOverlayPosition(t6);
|
|
96
|
+
let t7;
|
|
95
97
|
if ($[8] !== overlayPositionProps.style) {
|
|
96
|
-
|
|
98
|
+
t7 = overlayPositionProps.style ?? {};
|
|
97
99
|
$[8] = overlayPositionProps.style;
|
|
98
|
-
$[9] =
|
|
99
|
-
} else
|
|
100
|
-
const
|
|
100
|
+
$[9] = t7;
|
|
101
|
+
} else t7 = $[9];
|
|
102
|
+
const t8 = t7;
|
|
101
103
|
let maxHeight;
|
|
102
104
|
let maxWidth;
|
|
103
105
|
let positionStyle;
|
|
104
|
-
if ($[10] !==
|
|
105
|
-
({maxHeight, maxWidth, ...positionStyle} =
|
|
106
|
-
$[10] =
|
|
106
|
+
if ($[10] !== t8) {
|
|
107
|
+
({maxHeight, maxWidth, ...positionStyle} = t8);
|
|
108
|
+
$[10] = t8;
|
|
107
109
|
$[11] = maxHeight;
|
|
108
110
|
$[12] = maxWidth;
|
|
109
111
|
$[13] = positionStyle;
|
|
@@ -112,30 +114,31 @@ const ListBoxPopover = function ListBoxPopover(props) {
|
|
|
112
114
|
maxWidth = $[12];
|
|
113
115
|
positionStyle = $[13];
|
|
114
116
|
}
|
|
115
|
-
let
|
|
116
|
-
let
|
|
117
|
+
let t10;
|
|
118
|
+
let t9;
|
|
117
119
|
if ($[14] !== positionApiRef || $[15] !== updatePosition) {
|
|
118
|
-
|
|
120
|
+
t9 = () => {
|
|
119
121
|
if (positionApiRef) positionApiRef.current = { updatePosition };
|
|
120
122
|
return () => {
|
|
121
123
|
if (positionApiRef) positionApiRef.current = null;
|
|
122
124
|
};
|
|
123
125
|
};
|
|
124
|
-
|
|
126
|
+
t10 = [positionApiRef, updatePosition];
|
|
125
127
|
$[14] = positionApiRef;
|
|
126
128
|
$[15] = updatePosition;
|
|
127
|
-
$[16] =
|
|
128
|
-
$[17] =
|
|
129
|
+
$[16] = t10;
|
|
130
|
+
$[17] = t9;
|
|
129
131
|
} else {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
+
t10 = $[16];
|
|
133
|
+
t9 = $[17];
|
|
132
134
|
}
|
|
133
|
-
useEffect(
|
|
134
|
-
let
|
|
135
|
-
if ($[18] !== onClose || $[19] !== triggerRef) {
|
|
136
|
-
|
|
135
|
+
useEffect(t9, t10);
|
|
136
|
+
let t11;
|
|
137
|
+
if ($[18] !== onClose || $[19] !== shouldCloseOnTriggerInteraction || $[20] !== triggerRef) {
|
|
138
|
+
t11 = (el) => {
|
|
137
139
|
const menuTriggerEl = el.closest("[data-popover-trigger]");
|
|
138
140
|
if (!menuTriggerEl) {
|
|
141
|
+
if (!shouldCloseOnTriggerInteraction && triggerRef?.current?.contains(el)) return false;
|
|
139
142
|
if (el.closest("[data-popover-keep]")) return false;
|
|
140
143
|
if (el.closest("[data-popover-dismiss]")) {
|
|
141
144
|
setTimeout(onClose, 0);
|
|
@@ -147,46 +150,47 @@ const ListBoxPopover = function ListBoxPopover(props) {
|
|
|
147
150
|
return false;
|
|
148
151
|
};
|
|
149
152
|
$[18] = onClose;
|
|
150
|
-
$[19] =
|
|
151
|
-
$[20] =
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
153
|
+
$[19] = shouldCloseOnTriggerInteraction;
|
|
154
|
+
$[20] = triggerRef;
|
|
155
|
+
$[21] = t11;
|
|
156
|
+
} else t11 = $[21];
|
|
157
|
+
let t12;
|
|
158
|
+
if ($[22] !== isOpen || $[23] !== onClose || $[24] !== t11) {
|
|
159
|
+
t12 = {
|
|
156
160
|
onClose,
|
|
157
161
|
shouldCloseOnBlur: true,
|
|
158
162
|
isOpen,
|
|
159
163
|
isDismissable: true,
|
|
160
|
-
shouldCloseOnInteractOutside:
|
|
164
|
+
shouldCloseOnInteractOutside: t11
|
|
161
165
|
};
|
|
162
|
-
$[
|
|
163
|
-
$[
|
|
164
|
-
$[
|
|
165
|
-
$[
|
|
166
|
-
} else
|
|
167
|
-
const { overlayProps: overlayBehaviorProps } = useOverlay(
|
|
168
|
-
let
|
|
169
|
-
if ($[
|
|
170
|
-
|
|
171
|
-
$[
|
|
172
|
-
$[
|
|
173
|
-
$[
|
|
174
|
-
} else
|
|
175
|
-
const placementDirection =
|
|
166
|
+
$[22] = isOpen;
|
|
167
|
+
$[23] = onClose;
|
|
168
|
+
$[24] = t11;
|
|
169
|
+
$[25] = t12;
|
|
170
|
+
} else t12 = $[25];
|
|
171
|
+
const { overlayProps: overlayBehaviorProps } = useOverlay(t12, mergedPopoverRef);
|
|
172
|
+
let t13;
|
|
173
|
+
if ($[26] !== direction || $[27] !== placement) {
|
|
174
|
+
t13 = placement?.split(" ")[0] || direction;
|
|
175
|
+
$[26] = direction;
|
|
176
|
+
$[27] = placement;
|
|
177
|
+
$[28] = t13;
|
|
178
|
+
} else t13 = $[28];
|
|
179
|
+
const placementDirection = t13;
|
|
176
180
|
const transitionRefHolder = useRef(null);
|
|
177
|
-
let
|
|
178
|
-
if ($[
|
|
179
|
-
|
|
181
|
+
let t14;
|
|
182
|
+
if ($[29] === Symbol.for("react.memo_cache_sentinel")) {
|
|
183
|
+
t14 = (node) => {
|
|
180
184
|
overlayScrollRef.current = node;
|
|
181
185
|
transitionRefHolder.current?.(node);
|
|
182
186
|
};
|
|
183
|
-
$[
|
|
184
|
-
} else
|
|
185
|
-
const setScrollRef =
|
|
186
|
-
let
|
|
187
|
-
if ($[
|
|
188
|
-
|
|
189
|
-
const { phase, isShown, ref: transitionRef } =
|
|
187
|
+
$[29] = t14;
|
|
188
|
+
} else t14 = $[29];
|
|
189
|
+
const setScrollRef = t14;
|
|
190
|
+
let t15;
|
|
191
|
+
if ($[30] !== ariaLabel || $[31] !== children || $[32] !== comboBoxWidth || $[33] !== compositeFocusProps || $[34] !== disabledKeys || $[35] !== emptyLabel || $[36] !== filter || $[37] !== headingStyles || $[38] !== isCheckable || $[39] !== isDisabled || $[40] !== items || $[41] !== label || $[42] !== listBoxId || $[43] !== listBoxRef || $[44] !== listBoxStyles || $[45] !== listStateRef || $[46] !== maxHeight || $[47] !== maxWidth || $[48] !== mergedPopoverRef || $[49] !== onSelectionChange || $[50] !== optionHighlight || $[51] !== optionStyles || $[52] !== overlayBehaviorProps || $[53] !== overlayPositionProps || $[54] !== overlayStyles || $[55] !== placementDirection || $[56] !== positionStyle || $[57] !== sectionStyles || $[58] !== selectedKey || $[59] !== selectedKeys || $[60] !== selectionMode || $[61] !== t) {
|
|
192
|
+
t15 = (t16) => {
|
|
193
|
+
const { phase, isShown, ref: transitionRef } = t16;
|
|
190
194
|
transitionRefHolder.current = transitionRef;
|
|
191
195
|
return /* @__PURE__ */ jsx(ListBoxPopoverWrapper, {
|
|
192
196
|
...mergeProps$1({
|
|
@@ -214,7 +218,10 @@ const ListBoxPopover = function ListBoxPopover(props) {
|
|
|
214
218
|
disableSelectionToggle: true,
|
|
215
219
|
id: listBoxId,
|
|
216
220
|
"aria-label": ariaLabel || (typeof label === "string" ? label : t("listBoxPopover.options", "Options")),
|
|
217
|
-
|
|
221
|
+
selectionMode: selectionMode === "multiple" ? "multiple" : void 0,
|
|
222
|
+
selectedKey: selectionMode === "single" ? selectedKey : void 0,
|
|
223
|
+
selectedKeys: selectionMode === "multiple" ? selectedKeys : void 0,
|
|
224
|
+
isCheckable: selectionMode === "multiple" ? isCheckable : void 0,
|
|
218
225
|
isDisabled,
|
|
219
226
|
disabledKeys,
|
|
220
227
|
shouldUseVirtualFocus: true,
|
|
@@ -234,48 +241,51 @@ const ListBoxPopover = function ListBoxPopover(props) {
|
|
|
234
241
|
})
|
|
235
242
|
});
|
|
236
243
|
};
|
|
237
|
-
$[
|
|
238
|
-
$[
|
|
239
|
-
$[
|
|
240
|
-
$[
|
|
241
|
-
$[
|
|
242
|
-
$[
|
|
243
|
-
$[
|
|
244
|
-
$[
|
|
245
|
-
$[
|
|
246
|
-
$[
|
|
247
|
-
$[
|
|
248
|
-
$[
|
|
249
|
-
$[
|
|
250
|
-
$[
|
|
251
|
-
$[
|
|
252
|
-
$[
|
|
253
|
-
$[
|
|
254
|
-
$[
|
|
255
|
-
$[
|
|
256
|
-
$[
|
|
257
|
-
$[
|
|
258
|
-
$[
|
|
259
|
-
$[
|
|
260
|
-
$[
|
|
261
|
-
$[
|
|
262
|
-
$[
|
|
263
|
-
$[
|
|
264
|
-
$[
|
|
265
|
-
$[
|
|
266
|
-
$[
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
244
|
+
$[30] = ariaLabel;
|
|
245
|
+
$[31] = children;
|
|
246
|
+
$[32] = comboBoxWidth;
|
|
247
|
+
$[33] = compositeFocusProps;
|
|
248
|
+
$[34] = disabledKeys;
|
|
249
|
+
$[35] = emptyLabel;
|
|
250
|
+
$[36] = filter;
|
|
251
|
+
$[37] = headingStyles;
|
|
252
|
+
$[38] = isCheckable;
|
|
253
|
+
$[39] = isDisabled;
|
|
254
|
+
$[40] = items;
|
|
255
|
+
$[41] = label;
|
|
256
|
+
$[42] = listBoxId;
|
|
257
|
+
$[43] = listBoxRef;
|
|
258
|
+
$[44] = listBoxStyles;
|
|
259
|
+
$[45] = listStateRef;
|
|
260
|
+
$[46] = maxHeight;
|
|
261
|
+
$[47] = maxWidth;
|
|
262
|
+
$[48] = mergedPopoverRef;
|
|
263
|
+
$[49] = onSelectionChange;
|
|
264
|
+
$[50] = optionHighlight;
|
|
265
|
+
$[51] = optionStyles;
|
|
266
|
+
$[52] = overlayBehaviorProps;
|
|
267
|
+
$[53] = overlayPositionProps;
|
|
268
|
+
$[54] = overlayStyles;
|
|
269
|
+
$[55] = placementDirection;
|
|
270
|
+
$[56] = positionStyle;
|
|
271
|
+
$[57] = sectionStyles;
|
|
272
|
+
$[58] = selectedKey;
|
|
273
|
+
$[59] = selectedKeys;
|
|
274
|
+
$[60] = selectionMode;
|
|
275
|
+
$[61] = t;
|
|
276
|
+
$[62] = t15;
|
|
277
|
+
} else t15 = $[62];
|
|
278
|
+
let t16;
|
|
279
|
+
if ($[63] !== isOpen || $[64] !== t15) {
|
|
280
|
+
t16 = /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(DisplayTransition, {
|
|
271
281
|
isShown: isOpen,
|
|
272
|
-
children:
|
|
282
|
+
children: t15
|
|
273
283
|
}) });
|
|
274
|
-
$[
|
|
275
|
-
$[
|
|
276
|
-
$[
|
|
277
|
-
} else
|
|
278
|
-
return
|
|
284
|
+
$[63] = isOpen;
|
|
285
|
+
$[64] = t15;
|
|
286
|
+
$[65] = t16;
|
|
287
|
+
} else t16 = $[65];
|
|
288
|
+
return t16;
|
|
279
289
|
};
|
|
280
290
|
|
|
281
291
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListBoxPopover.js","names":["Key","Styles","tasty","React","CSSProperties","ReactNode","RefObject","useCallback","useEffect","useRef","useOverlay","useOverlayPosition","useI18n","mergeProps","DisplayTransition","Portal","ListBox","ListBoxPopoverProps","isOpen","triggerRef","HTMLElement","popoverRef","HTMLDivElement","listBoxRef","direction","shouldFlip","overlayOffset","containerPadding","comboBoxWidth","listBoxId","overlayStyles","listBoxStyles","optionStyles","optionHighlight","sectionStyles","headingStyles","selectedKey","isDisabled","disabledKeys","Iterable","items","children","listStateRef","onSelectionChange","selection","onClose","label","ariaLabel","compositeFocusProps","onFocus","e","FocusEvent","onBlur","filter","nodes","size","emptyLabel","positionTargetRef","Element","positionApiRef","updatePosition","ListBoxPopoverWrapper","qa","styles","position","zIndex","ListBoxPopoverElement","display","gridRows","gridColumns","width","height","overflow","fill","radius","shadow","padding","border","hide","hidden","boxSizing","transition","translate","transformOrigin","scale","opacity","ListBoxPopover","props","$","_c","t","t0","undefined","mergedPopoverRef","overlayScrollRef","t1","t2","t3","t4","targetRef","overlayRef","scrollRef","placement","offset","overlayProps","overlayPositionProps","t5","style","t6","maxHeight","maxWidth","positionStyle","t7","t8","current","t9","el","menuTriggerEl","closest","setTimeout","t10","shouldCloseOnBlur","isDismissable","shouldCloseOnInteractOutside","overlayBehaviorProps","t11","split","placementDirection","transitionRefHolder","t12","Symbol","for","node","setScrollRef","t13","t14","phase","isShown","ref","transitionRef","open","overlayContent"],"sources":["../../../../src/components/fields/ListBoxPopover/ListBoxPopover.tsx"],"sourcesContent":["import { Key } from '@react-types/shared';\nimport { Styles, tasty } from '@tenphi/tasty';\nimport React, {\n CSSProperties,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n} from 'react';\nimport { useOverlay, useOverlayPosition } from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps } from '../../../utils/react';\nimport { DisplayTransition } from '../../helpers';\nimport { Portal } from '../../portal';\nimport { ListBox } from '../ListBox/ListBox';\n\nexport interface ListBoxPopoverProps {\n isOpen: boolean;\n triggerRef: RefObject<HTMLElement>;\n popoverRef: RefObject<HTMLDivElement>;\n listBoxRef: RefObject<HTMLDivElement>;\n direction: 'bottom' | 'top';\n shouldFlip: boolean;\n overlayOffset: number;\n containerPadding: number;\n /** Min width (px) for the overlay; usually the trigger's width. */\n comboBoxWidth?: number;\n /** Stable id used for the ListBox element and aria-controls wiring. */\n listBoxId: string;\n overlayStyles?: Styles;\n listBoxStyles?: Styles;\n optionStyles?: Styles;\n /** Substring to highlight within each option's (text) children. */\n optionHighlight?: string;\n sectionStyles?: Styles;\n headingStyles?: Styles;\n selectedKey?: Key | null;\n isDisabled?: boolean;\n disabledKeys?: Iterable<Key>;\n items?: Iterable<any>;\n children: ReactNode;\n /** Ref through which the ListBox exposes its internal list state. */\n listStateRef: RefObject<any>;\n onSelectionChange: (selection: Key | Key[] | null) => void;\n onClose: () => void;\n label?: ReactNode;\n ariaLabel?: string;\n compositeFocusProps: {\n onFocus: (e: React.FocusEvent) => void;\n onBlur: (e: React.FocusEvent) => void;\n };\n /** Collection node filter applied to the ListBox. */\n filter?: (nodes: Iterable<any>) => Iterable<any>;\n size?: 'small' | 'medium' | 'large' | (string & {});\n /**\n * Label shown when the list is empty (no items / no filter results).\n * Forwarded to the inner ListBox.\n */\n emptyLabel?: ReactNode;\n /**\n * Element to anchor the overlay to geometrically. Defaults to `triggerRef`.\n * Use this to anchor to something other than the trigger (e.g. the caret in\n * a textarea) while keeping `triggerRef` for outside-click/dismiss logic.\n */\n positionTargetRef?: RefObject<Element | null>;\n /**\n * Receives an imperative handle exposing `updatePosition()` so the caller can\n * force the overlay to re-anchor (e.g. when the caret moves).\n */\n positionApiRef?: RefObject<{ updatePosition: () => void } | null>;\n}\n\nconst ListBoxPopoverWrapper = tasty({\n qa: 'ComboBoxOverlayWrapper',\n styles: {\n position: 'absolute',\n zIndex: 1000,\n },\n});\n\nconst ListBoxPopoverElement = tasty({\n qa: 'ComboBoxOverlay',\n styles: {\n display: 'grid',\n gridRows: '1sf',\n gridColumns: '1sf',\n width: '$overlay-min-width max-content 50vw',\n height: 'initial max-content (50vh - 5x)',\n overflow: 'auto',\n fill: '#surface',\n radius: '1cr',\n shadow: true,\n padding: '0',\n border: '#border',\n hide: {\n '': false,\n hidden: true,\n },\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 '$overlay-min-width': 'min 30x',\n },\n});\n\nexport const ListBoxPopover = function ListBoxPopover(\n props: ListBoxPopoverProps,\n) {\n const { t } = useI18n();\n const {\n isOpen,\n triggerRef,\n popoverRef,\n listBoxRef,\n direction,\n shouldFlip,\n overlayOffset,\n containerPadding,\n comboBoxWidth,\n listBoxId,\n overlayStyles,\n listBoxStyles,\n optionStyles,\n optionHighlight,\n sectionStyles,\n headingStyles,\n selectedKey,\n isDisabled,\n disabledKeys,\n items,\n children,\n listStateRef,\n onSelectionChange,\n onClose,\n label,\n ariaLabel,\n compositeFocusProps,\n filter,\n size = 'medium',\n emptyLabel,\n positionTargetRef,\n positionApiRef,\n } = props;\n\n const mergedPopoverRef = popoverRef;\n\n // Ref to the inner scrollable element (the visible popover). react-aria\n // measures this for its flip/shrink math and writes maxHeight onto the\n // overlay (positioning wrapper); we forward that maxHeight to this element\n // below so the scroll container actually shrinks instead of overflowing.\n const overlayScrollRef = useRef<HTMLDivElement | null>(null);\n\n // Overlay positioning — anchor to the explicit position target when given\n // (e.g. a caret anchor), otherwise to the trigger. `triggerRef` is still\n // used below for outside-click/dismiss behavior.\n const {\n overlayProps: overlayPositionProps,\n placement,\n updatePosition,\n } = useOverlayPosition({\n targetRef: (positionTargetRef ?? triggerRef) as any,\n overlayRef: mergedPopoverRef as any,\n scrollRef: overlayScrollRef as any,\n placement: `${direction} start` as any,\n shouldFlip,\n isOpen,\n offset: overlayOffset,\n containerPadding: containerPadding,\n });\n\n // Keep positioning (top/left/zIndex) on the wrapper, but split out the\n // available-space cap so it can be applied to the inner scroll element.\n const { maxHeight, maxWidth, ...positionStyle } =\n (overlayPositionProps.style ?? {}) as CSSProperties;\n\n // Expose updatePosition so callers can re-anchor on demand (e.g. caret move).\n useEffect(() => {\n if (positionApiRef) {\n positionApiRef.current = { updatePosition };\n }\n return () => {\n if (positionApiRef) {\n positionApiRef.current = null;\n }\n };\n }, [positionApiRef, updatePosition]);\n\n // Overlay behavior (dismiss on outside click, escape)\n const { overlayProps: overlayBehaviorProps } = useOverlay(\n {\n onClose,\n shouldCloseOnBlur: true,\n isOpen,\n isDismissable: true,\n shouldCloseOnInteractOutside: (el) => {\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(onClose, 0);\n return false;\n }\n return true;\n }\n if (menuTriggerEl === triggerRef?.current) return true;\n return false;\n },\n },\n mergedPopoverRef as any,\n );\n\n // Extract primary placement direction for consistent styling\n const placementDirection = placement?.split(' ')[0] || direction;\n\n // Hold the DisplayTransition ref so we can bind the same node to both the\n // transition listener and our scroll ref via a single stable callback.\n const transitionRefHolder = useRef<\n ((node: HTMLElement | null) => void) | null\n >(null);\n const setScrollRef = useCallback((node: HTMLElement | null) => {\n overlayScrollRef.current = node as HTMLDivElement | null;\n transitionRefHolder.current?.(node);\n }, []);\n\n const overlayContent = (\n <DisplayTransition isShown={isOpen}>\n {({ phase, isShown, ref: transitionRef }) => {\n transitionRefHolder.current = transitionRef;\n return (\n <ListBoxPopoverWrapper\n {...mergeProps(\n { ...overlayPositionProps, style: positionStyle },\n overlayBehaviorProps,\n compositeFocusProps,\n )}\n ref={mergedPopoverRef}\n style={positionStyle}\n >\n <ListBoxPopoverElement\n ref={setScrollRef}\n data-placement={placementDirection}\n data-phase={phase}\n mods={{\n open: isShown,\n hidden: phase === 'unmounted',\n }}\n styles={overlayStyles}\n style={{\n '--overlay-min-width': comboBoxWidth\n ? `${comboBoxWidth}px`\n : undefined,\n maxHeight,\n maxWidth,\n }}\n >\n <ListBox\n ref={listBoxRef}\n disableSelectionToggle\n id={listBoxId}\n aria-label={\n ariaLabel ||\n (typeof label === 'string'\n ? label\n : t('listBoxPopover.options', 'Options'))\n }\n selectedKey={selectedKey}\n isDisabled={isDisabled}\n disabledKeys={disabledKeys}\n shouldUseVirtualFocus={true}\n items={items as any}\n filter={filter}\n styles={listBoxStyles}\n optionStyles={optionStyles}\n optionHighlight={optionHighlight}\n sectionStyles={sectionStyles}\n headingStyles={headingStyles}\n stateRef={listStateRef}\n shape=\"popover\"\n emptyLabel={emptyLabel}\n onSelectionChange={onSelectionChange}\n >\n {children as any}\n </ListBox>\n </ListBoxPopoverElement>\n </ListBoxPopoverWrapper>\n );\n }}\n </DisplayTransition>\n );\n\n return <Portal>{overlayContent}</Portal>;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListBoxPopover.js","names":["Key","Styles","tasty","React","CSSProperties","ReactNode","RefObject","useCallback","useEffect","useRef","useOverlay","useOverlayPosition","useI18n","mergeProps","DisplayTransition","Portal","ListBox","ListBoxPopoverProps","isOpen","triggerRef","HTMLElement","popoverRef","HTMLDivElement","listBoxRef","direction","shouldFlip","overlayOffset","containerPadding","comboBoxWidth","listBoxId","overlayStyles","listBoxStyles","optionStyles","optionHighlight","sectionStyles","headingStyles","selectedKey","selectionMode","selectedKeys","isCheckable","shouldCloseOnTriggerInteraction","isDisabled","disabledKeys","Iterable","items","children","listStateRef","onSelectionChange","selection","onClose","label","ariaLabel","compositeFocusProps","onFocus","e","FocusEvent","onBlur","filter","nodes","size","emptyLabel","positionTargetRef","Element","positionApiRef","updatePosition","ListBoxPopoverWrapper","qa","styles","position","zIndex","ListBoxPopoverElement","display","gridRows","gridColumns","width","height","overflow","fill","radius","shadow","padding","border","hide","hidden","boxSizing","transition","translate","transformOrigin","scale","opacity","ListBoxPopover","props","$","_c","t","t0","t1","t2","undefined","mergedPopoverRef","overlayScrollRef","t3","t4","t5","t6","targetRef","overlayRef","scrollRef","placement","offset","overlayProps","overlayPositionProps","t7","style","t8","maxHeight","maxWidth","positionStyle","t10","t9","current","t11","el","menuTriggerEl","closest","contains","setTimeout","t12","shouldCloseOnBlur","isDismissable","shouldCloseOnInteractOutside","overlayBehaviorProps","t13","split","placementDirection","transitionRefHolder","t14","Symbol","for","node","setScrollRef","t15","t16","phase","isShown","ref","transitionRef","open","overlayContent"],"sources":["../../../../src/components/fields/ListBoxPopover/ListBoxPopover.tsx"],"sourcesContent":["import { Key } from '@react-types/shared';\nimport { Styles, tasty } from '@tenphi/tasty';\nimport React, {\n CSSProperties,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n} from 'react';\nimport { useOverlay, useOverlayPosition } from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps } from '../../../utils/react';\nimport { DisplayTransition } from '../../helpers';\nimport { Portal } from '../../portal';\nimport { ListBox } from '../ListBox/ListBox';\n\nexport interface ListBoxPopoverProps {\n isOpen: boolean;\n triggerRef: RefObject<HTMLElement>;\n popoverRef: RefObject<HTMLDivElement>;\n listBoxRef: RefObject<HTMLDivElement>;\n direction: 'bottom' | 'top';\n shouldFlip: boolean;\n overlayOffset: number;\n containerPadding: number;\n /** Min width (px) for the overlay; usually the trigger's width. */\n comboBoxWidth?: number;\n /** Stable id used for the ListBox element and aria-controls wiring. */\n listBoxId: string;\n overlayStyles?: Styles;\n listBoxStyles?: Styles;\n optionStyles?: Styles;\n /** Substring to highlight within each option's (text) children. */\n optionHighlight?: string;\n sectionStyles?: Styles;\n headingStyles?: Styles;\n selectedKey?: Key | null;\n /**\n * `'multiple'` lets the list hold several selected options. The list then\n * reports the whole new selection on every toggle and never closes itself;\n * the caller decides what a toggle means. Defaults to `'single'`.\n */\n selectionMode?: 'single' | 'multiple';\n /** The selected keys in `'multiple'` mode. Ignored in `'single'` mode. */\n selectedKeys?: Key[];\n /** Whether options show a checkbox. Only applies in `'multiple'` mode. */\n isCheckable?: boolean;\n /**\n * Whether a click inside the element `triggerRef` points at closes the\n * popover, like any other outside click. Pass `false` when that element is\n * where the user keeps working with the list open, such as an input that\n * picks several options in a row. Only this popover is affected; others\n * still close. Defaults to `true`.\n */\n shouldCloseOnTriggerInteraction?: boolean;\n isDisabled?: boolean;\n disabledKeys?: Iterable<Key>;\n items?: Iterable<any>;\n children: ReactNode;\n /** Ref through which the ListBox exposes its internal list state. */\n listStateRef: RefObject<any>;\n onSelectionChange: (selection: Key | Key[] | null) => void;\n onClose: () => void;\n label?: ReactNode;\n ariaLabel?: string;\n compositeFocusProps: {\n onFocus: (e: React.FocusEvent) => void;\n onBlur: (e: React.FocusEvent) => void;\n };\n /** Collection node filter applied to the ListBox. */\n filter?: (nodes: Iterable<any>) => Iterable<any>;\n size?: 'small' | 'medium' | 'large' | (string & {});\n /**\n * Label shown when the list is empty (no items / no filter results).\n * Forwarded to the inner ListBox.\n */\n emptyLabel?: ReactNode;\n /**\n * Element to anchor the overlay to geometrically. Defaults to `triggerRef`.\n * Use this to anchor to something other than the trigger (e.g. the caret in\n * a textarea) while keeping `triggerRef` for outside-click/dismiss logic.\n */\n positionTargetRef?: RefObject<Element | null>;\n /**\n * Receives an imperative handle exposing `updatePosition()` so the caller can\n * force the overlay to re-anchor (e.g. when the caret moves).\n */\n positionApiRef?: RefObject<{ updatePosition: () => void } | null>;\n}\n\nconst ListBoxPopoverWrapper = tasty({\n qa: 'ComboBoxOverlayWrapper',\n styles: {\n position: 'absolute',\n zIndex: 1000,\n },\n});\n\nconst ListBoxPopoverElement = tasty({\n qa: 'ComboBoxOverlay',\n styles: {\n display: 'grid',\n gridRows: '1sf',\n gridColumns: '1sf',\n width: '$overlay-min-width max-content 50vw',\n height: 'initial max-content (50vh - 5x)',\n overflow: 'auto',\n fill: '#surface',\n radius: '1cr',\n shadow: true,\n padding: '0',\n border: '#border',\n hide: {\n '': false,\n hidden: true,\n },\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 '$overlay-min-width': 'min 30x',\n },\n});\n\nexport const ListBoxPopover = function ListBoxPopover(\n props: ListBoxPopoverProps,\n) {\n const { t } = useI18n();\n const {\n isOpen,\n triggerRef,\n popoverRef,\n listBoxRef,\n direction,\n shouldFlip,\n overlayOffset,\n containerPadding,\n comboBoxWidth,\n listBoxId,\n overlayStyles,\n listBoxStyles,\n optionStyles,\n optionHighlight,\n sectionStyles,\n headingStyles,\n selectedKey,\n selectionMode = 'single',\n selectedKeys,\n isCheckable,\n shouldCloseOnTriggerInteraction = true,\n isDisabled,\n disabledKeys,\n items,\n children,\n listStateRef,\n onSelectionChange,\n onClose,\n label,\n ariaLabel,\n compositeFocusProps,\n filter,\n size = 'medium',\n emptyLabel,\n positionTargetRef,\n positionApiRef,\n } = props;\n\n const mergedPopoverRef = popoverRef;\n\n // Ref to the inner scrollable element (the visible popover). react-aria\n // measures this for its flip/shrink math and writes maxHeight onto the\n // overlay (positioning wrapper); we forward that maxHeight to this element\n // below so the scroll container actually shrinks instead of overflowing.\n const overlayScrollRef = useRef<HTMLDivElement | null>(null);\n\n // Overlay positioning — anchor to the explicit position target when given\n // (e.g. a caret anchor), otherwise to the trigger. `triggerRef` is still\n // used below for outside-click/dismiss behavior.\n const {\n overlayProps: overlayPositionProps,\n placement,\n updatePosition,\n } = useOverlayPosition({\n targetRef: (positionTargetRef ?? triggerRef) as any,\n overlayRef: mergedPopoverRef as any,\n scrollRef: overlayScrollRef as any,\n placement: `${direction} start` as any,\n shouldFlip,\n isOpen,\n offset: overlayOffset,\n containerPadding: containerPadding,\n });\n\n // Keep positioning (top/left/zIndex) on the wrapper, but split out the\n // available-space cap so it can be applied to the inner scroll element.\n const { maxHeight, maxWidth, ...positionStyle } =\n (overlayPositionProps.style ?? {}) as CSSProperties;\n\n // Expose updatePosition so callers can re-anchor on demand (e.g. caret move).\n useEffect(() => {\n if (positionApiRef) {\n positionApiRef.current = { updatePosition };\n }\n return () => {\n if (positionApiRef) {\n positionApiRef.current = null;\n }\n };\n }, [positionApiRef, updatePosition]);\n\n // Overlay behavior (dismiss on outside click, escape)\n const { overlayProps: overlayBehaviorProps } = useOverlay(\n {\n onClose,\n shouldCloseOnBlur: true,\n isOpen,\n isDismissable: true,\n shouldCloseOnInteractOutside: (el) => {\n const menuTriggerEl = el.closest('[data-popover-trigger]');\n if (!menuTriggerEl) {\n if (\n !shouldCloseOnTriggerInteraction &&\n triggerRef?.current?.contains(el)\n ) {\n return false;\n }\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(onClose, 0);\n return false;\n }\n return true;\n }\n if (menuTriggerEl === triggerRef?.current) return true;\n return false;\n },\n },\n mergedPopoverRef as any,\n );\n\n // Extract primary placement direction for consistent styling\n const placementDirection = placement?.split(' ')[0] || direction;\n\n // Hold the DisplayTransition ref so we can bind the same node to both the\n // transition listener and our scroll ref via a single stable callback.\n const transitionRefHolder = useRef<\n ((node: HTMLElement | null) => void) | null\n >(null);\n const setScrollRef = useCallback((node: HTMLElement | null) => {\n overlayScrollRef.current = node as HTMLDivElement | null;\n transitionRefHolder.current?.(node);\n }, []);\n\n const overlayContent = (\n <DisplayTransition isShown={isOpen}>\n {({ phase, isShown, ref: transitionRef }) => {\n transitionRefHolder.current = transitionRef;\n return (\n <ListBoxPopoverWrapper\n {...mergeProps(\n { ...overlayPositionProps, style: positionStyle },\n overlayBehaviorProps,\n compositeFocusProps,\n )}\n ref={mergedPopoverRef}\n style={positionStyle}\n >\n <ListBoxPopoverElement\n ref={setScrollRef}\n data-placement={placementDirection}\n data-phase={phase}\n mods={{\n open: isShown,\n hidden: phase === 'unmounted',\n }}\n styles={overlayStyles}\n style={{\n '--overlay-min-width': comboBoxWidth\n ? `${comboBoxWidth}px`\n : undefined,\n maxHeight,\n maxWidth,\n }}\n >\n <ListBox\n ref={listBoxRef}\n disableSelectionToggle\n id={listBoxId}\n aria-label={\n ariaLabel ||\n (typeof label === 'string'\n ? label\n : t('listBoxPopover.options', 'Options'))\n }\n // Left unset in single mode, as before this prop existed: an\n // explicit `'single'` switches on ListBox's no-toggle branch,\n // which changes what re-picking the selected option does.\n selectionMode={\n selectionMode === 'multiple' ? 'multiple' : undefined\n }\n selectedKey={\n selectionMode === 'single' ? selectedKey : undefined\n }\n selectedKeys={\n selectionMode === 'multiple' ? selectedKeys : undefined\n }\n isCheckable={\n selectionMode === 'multiple' ? isCheckable : undefined\n }\n isDisabled={isDisabled}\n disabledKeys={disabledKeys}\n shouldUseVirtualFocus={true}\n items={items as any}\n filter={filter}\n styles={listBoxStyles}\n optionStyles={optionStyles}\n optionHighlight={optionHighlight}\n sectionStyles={sectionStyles}\n headingStyles={headingStyles}\n stateRef={listStateRef}\n shape=\"popover\"\n emptyLabel={emptyLabel}\n onSelectionChange={onSelectionChange}\n >\n {children as any}\n </ListBox>\n </ListBoxPopoverElement>\n </ListBoxPopoverWrapper>\n );\n }}\n </DisplayTransition>\n );\n\n return <Portal>{overlayContent}</Portal>;\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
|
|
2
2
|
//#region src/components/fields/ListBoxPopover/listNavigation.ts
|
|
3
3
|
/**
|
|
4
4
|
* Walks a collection (possibly nested under sections) and collects the keys of
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
|
|
2
2
|
import { c } from "react-compiler-runtime";
|
|
3
3
|
import { useEffect, useRef } from "react";
|
|
4
4
|
|
|
@@ -10,19 +10,30 @@ import { useEffect, useRef } from "react";
|
|
|
10
10
|
* that clicking an option does not look like a blur of the whole component.
|
|
11
11
|
*
|
|
12
12
|
* Focus checks are deferred to the next animation frame to tolerate the
|
|
13
|
-
* synchronous focus shuffles React Aria and portals perform on selection.
|
|
13
|
+
* synchronous focus shuffles React Aria and portals perform on selection. Focus
|
|
14
|
+
* that enters and leaves again within that frame still reports both edges, so a
|
|
15
|
+
* fast focus-type-blur sequence (an automated test, a quick Tab through) does
|
|
16
|
+
* not skip the blur.
|
|
14
17
|
*/
|
|
15
18
|
function useCompositeFocus(t0) {
|
|
16
|
-
const $ = c(
|
|
19
|
+
const $ = c(15);
|
|
17
20
|
const { wrapperRef, popoverRef, onFocus, onBlur, isDisabled } = t0;
|
|
18
21
|
const wasInsideRef = useRef(false);
|
|
22
|
+
const enteredRef = useRef(false);
|
|
19
23
|
const rafRef = useRef(null);
|
|
20
24
|
let t1;
|
|
21
25
|
if ($[0] !== isDisabled || $[1] !== onBlur || $[2] !== onFocus || $[3] !== popoverRef || $[4] !== wrapperRef) {
|
|
22
26
|
t1 = () => {
|
|
27
|
+
const entered = enteredRef.current;
|
|
28
|
+
enteredRef.current = false;
|
|
23
29
|
if (isDisabled) return;
|
|
24
30
|
const activeElement = document.activeElement;
|
|
25
31
|
const isInside = (wrapperRef.current?.contains(activeElement) ?? false) || (popoverRef.current?.contains(activeElement) ?? false);
|
|
32
|
+
if (!isInside && !wasInsideRef.current && entered) {
|
|
33
|
+
onFocus?.();
|
|
34
|
+
onBlur?.();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
26
37
|
if (isInside !== wasInsideRef.current) {
|
|
27
38
|
wasInsideRef.current = isInside;
|
|
28
39
|
if (isInside) onFocus?.();
|
|
@@ -39,7 +50,7 @@ function useCompositeFocus(t0) {
|
|
|
39
50
|
const checkFocus = t1;
|
|
40
51
|
let t2;
|
|
41
52
|
if ($[6] !== checkFocus) {
|
|
42
|
-
t2 = (
|
|
53
|
+
t2 = () => {
|
|
43
54
|
if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
|
|
44
55
|
rafRef.current = requestAnimationFrame(() => {
|
|
45
56
|
rafRef.current = null;
|
|
@@ -49,31 +60,42 @@ function useCompositeFocus(t0) {
|
|
|
49
60
|
$[6] = checkFocus;
|
|
50
61
|
$[7] = t2;
|
|
51
62
|
} else t2 = $[7];
|
|
52
|
-
const
|
|
63
|
+
const scheduleCheck = t2;
|
|
53
64
|
let t3;
|
|
65
|
+
if ($[8] !== scheduleCheck) {
|
|
66
|
+
t3 = () => {
|
|
67
|
+
enteredRef.current = true;
|
|
68
|
+
scheduleCheck();
|
|
69
|
+
};
|
|
70
|
+
$[8] = scheduleCheck;
|
|
71
|
+
$[9] = t3;
|
|
72
|
+
} else t3 = $[9];
|
|
73
|
+
const handleFocus = t3;
|
|
54
74
|
let t4;
|
|
55
|
-
|
|
56
|
-
|
|
75
|
+
let t5;
|
|
76
|
+
if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
|
|
77
|
+
t4 = () => () => {
|
|
57
78
|
if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
|
|
58
79
|
};
|
|
59
|
-
|
|
60
|
-
$[
|
|
61
|
-
$[
|
|
80
|
+
t5 = [];
|
|
81
|
+
$[10] = t4;
|
|
82
|
+
$[11] = t5;
|
|
62
83
|
} else {
|
|
63
|
-
|
|
64
|
-
|
|
84
|
+
t4 = $[10];
|
|
85
|
+
t5 = $[11];
|
|
65
86
|
}
|
|
66
|
-
useEffect(
|
|
67
|
-
let
|
|
68
|
-
if ($[
|
|
69
|
-
|
|
70
|
-
onFocus:
|
|
71
|
-
onBlur:
|
|
87
|
+
useEffect(t4, t5);
|
|
88
|
+
let t6;
|
|
89
|
+
if ($[12] !== handleFocus || $[13] !== scheduleCheck) {
|
|
90
|
+
t6 = { compositeFocusProps: {
|
|
91
|
+
onFocus: handleFocus,
|
|
92
|
+
onBlur: scheduleCheck
|
|
72
93
|
} };
|
|
73
|
-
$[
|
|
74
|
-
$[
|
|
75
|
-
|
|
76
|
-
|
|
94
|
+
$[12] = handleFocus;
|
|
95
|
+
$[13] = scheduleCheck;
|
|
96
|
+
$[14] = t6;
|
|
97
|
+
} else t6 = $[14];
|
|
98
|
+
return t6;
|
|
77
99
|
}
|
|
78
100
|
|
|
79
101
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCompositeFocus.js","names":["React","RefObject","useCallback","useEffect","useRef","UseCompositeFocusProps","wrapperRef","HTMLElement","popoverRef","onFocus","onBlur","isDisabled","UseCompositeFocusReturn","compositeFocusProps","e","FocusEvent","useCompositeFocus","t0","$","_c","wasInsideRef","rafRef","t1","activeElement","document","isInside","
|
|
1
|
+
{"version":3,"file":"useCompositeFocus.js","names":["React","RefObject","useCallback","useEffect","useRef","UseCompositeFocusProps","wrapperRef","HTMLElement","popoverRef","onFocus","onBlur","isDisabled","UseCompositeFocusReturn","compositeFocusProps","e","FocusEvent","useCompositeFocus","t0","$","_c","wasInsideRef","enteredRef","rafRef","t1","entered","current","activeElement","document","isInside","contains","checkFocus","t2","cancelAnimationFrame","requestAnimationFrame","scheduleCheck","t3","handleFocus","t4","t5","Symbol","for","t6"],"sources":["../../../../src/components/fields/ListBoxPopover/useCompositeFocus.ts"],"sourcesContent":["import React, { RefObject, useCallback, useEffect, useRef } from 'react';\n\nexport interface UseCompositeFocusProps {\n wrapperRef: RefObject<HTMLElement>;\n popoverRef: RefObject<HTMLElement>;\n onFocus?: () => void;\n onBlur?: () => void;\n isDisabled?: boolean;\n}\n\nexport interface UseCompositeFocusReturn {\n compositeFocusProps: {\n onFocus: (e: React.FocusEvent) => void;\n onBlur: (e: React.FocusEvent) => void;\n };\n}\n\n/**\n * Tracks focus across a wrapper element and its (portaled) popover as a single\n * logical focus scope. Fires `onFocus` when focus enters either and `onBlur`\n * when it leaves both — essential for components whose overlay is portaled, so\n * that clicking an option does not look like a blur of the whole component.\n *\n * Focus checks are deferred to the next animation frame to tolerate the\n * synchronous focus shuffles React Aria and portals perform on selection. Focus\n * that enters and leaves again within that frame still reports both edges, so a\n * fast focus-type-blur sequence (an automated test, a quick Tab through) does\n * not skip the blur.\n */\nexport function useCompositeFocus({\n wrapperRef,\n popoverRef,\n onFocus,\n onBlur,\n isDisabled,\n}: UseCompositeFocusProps): UseCompositeFocusReturn {\n const wasInsideRef = useRef(false);\n const enteredRef = useRef(false);\n const rafRef = useRef<number | null>(null);\n\n const checkFocus = useCallback(() => {\n const entered = enteredRef.current;\n\n enteredRef.current = false;\n\n if (isDisabled) return;\n\n const activeElement = document.activeElement;\n const isInside =\n (wrapperRef.current?.contains(activeElement) ?? false) ||\n (popoverRef.current?.contains(activeElement) ?? false);\n\n if (!isInside && !wasInsideRef.current && entered) {\n onFocus?.();\n onBlur?.();\n\n return;\n }\n\n if (isInside !== wasInsideRef.current) {\n wasInsideRef.current = isInside;\n if (isInside) {\n onFocus?.();\n } else {\n onBlur?.();\n }\n }\n }, [wrapperRef, popoverRef, onFocus, onBlur, isDisabled]);\n\n const scheduleCheck = useCallback(() => {\n // Cancel any pending check\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n }\n\n // Schedule focus check for next frame\n rafRef.current = requestAnimationFrame(() => {\n rafRef.current = null;\n checkFocus();\n });\n }, [checkFocus]);\n\n const handleFocus = useCallback(() => {\n enteredRef.current = true;\n scheduleCheck();\n }, [scheduleCheck]);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n }\n };\n }, []);\n\n return {\n compositeFocusProps: {\n onFocus: handleFocus,\n onBlur: scheduleCheck,\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA6BA,SAAOgB,kBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAA2B,MAAA,EAAAb,YAAAE,YAAAC,SAAAC,QAAAC,eAAAM;CAOhC,MAAAG,eAAqBhB,OAAO,MAAM;CAClC,MAAAiB,aAAmBjB,OAAO,MAAM;CAChC,MAAAkB,SAAelB,OAAsB,KAAK;CAAC,IAAAmB;AAAA,KAAAL,EAAA,OAAAP,cAAAO,EAAA,OAAAR,UAAAQ,EAAA,OAAAT,WAAAS,EAAA,OAAAV,cAAAU,EAAA,OAAAZ,YAAA;AAEZiB,aAAA;GAC7B,MAAAC,UAAgBH,WAAUI;AAE1BJ,cAAUI,UAAW;AAErB,OAAId,WAAU;GAEd,MAAAe,gBAAsBC,SAAQD;GAC9B,MAAAE,YACGtB,WAAUmB,SAAkBI,SAACH,cAAuB,IAApD,WACAlB,WAAUiB,SAAkBI,SAACH,cAAuB,IAApD;AAEH,OAAI,CAACE,YAAD,CAAcR,aAAYK,WAA1BD,SAA6C;AAC/Cf,eAAW;AACXC,cAAU;AAAA;;AAKZ,OAAIkB,aAAaR,aAAYK,SAAQ;AACnCL,iBAAYK,UAAWG;AACvB,QAAIA,SACFnB,YAAW;QAEXC,WAAU;;;AAGfQ,IAAA,KAAAP;AAAAO,IAAA,KAAAR;AAAAQ,IAAA,KAAAT;AAAAS,IAAA,KAAAV;AAAAU,IAAA,KAAAZ;AAAAY,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CA3BD,MAAAY,aAAmBP;CA2BuC,IAAAQ;AAAA,KAAAb,EAAA,OAAAY,YAAA;AAExBC,aAAA;AAEhC,OAAIT,OAAMG,YAAa,KACrBO,sBAAqBV,OAAMG,QAAS;AAItCH,UAAMG,UAAWQ,4BAAsB;AACrCX,WAAMG,UAAW;AACjBK,gBAAY;KAFA;;AAIfZ,IAAA,KAAAY;AAAAZ,IAAA,KAAAa;OAAAA,MAAAb,EAAA;CAXD,MAAAgB,gBAAsBH;CAWL,IAAAI;AAAA,KAAAjB,EAAA,OAAAgB,eAAA;AAEeC,aAAA;AAC9Bd,cAAUI,UAAW;AACrBS,kBAAe;;AAChBhB,IAAA,KAAAgB;AAAAhB,IAAA,KAAAiB;OAAAA,MAAAjB,EAAA;CAHD,MAAAkB,cAAoBD;CAGA,IAAAE;CAAA,IAAAC;AAAA,KAAApB,EAAA,QAAAqB,OAAAC,IAAA,4BAAA,EAAA;AAGVH,mBACD;AACL,OAAIf,OAAMG,YAAa,KACrBO,sBAAqBV,OAAMG,QAAS;;AAGvCa,OAAA,EAAE;AAAApB,IAAA,MAAAmB;AAAAnB,IAAA,MAAAoB;QAAA;AAAAD,OAAAnB,EAAA;AAAAoB,OAAApB,EAAA;;AANLf,WAAUkC,IAMPC,GAAG;CAAA,IAAAG;AAAA,KAAAvB,EAAA,QAAAkB,eAAAlB,EAAA,QAAAgB,eAAA;AAECO,OAAA,EAAA5B,qBACgB;GAAAJ,SACV2B;GAAW1B,QACZwB;GACV,EACD;AAAAhB,IAAA,MAAAkB;AAAAlB,IAAA,MAAAgB;AAAAhB,IAAA,MAAAuB;OAAAA,MAAAvB,EAAA;AAAA,QALMuB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { castNullableNumberValue } from "../../../utils/react/nullableValue.js";
|
|
4
4
|
import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
|
|
2
2
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
3
3
|
import { DirectionIcon } from "../../../icons/DirectionIcon.js";
|
|
4
4
|
import { Button } from "../../actions/index.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
|
|
2
2
|
import { chain } from "../../../utils/react/chain.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { useBufferedValue } from "../../../utils/react/useBufferedValue.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { _Text } from "../../content/Text.js";
|
|
@@ -25,8 +25,8 @@ import { AriaRadioProps, useRadio as useRadio$1 } from "react-aria";
|
|
|
25
25
|
* - `shape` — the radius is owned by the button-group layout below, which keeps
|
|
26
26
|
* only the outer-side radius on the first/last radio so the group reads as one
|
|
27
27
|
* continuous control. Forwarding `shape` would have no effect.
|
|
28
|
-
* - `htmlType`, `as`, `insideWrapper`, `showActions
|
|
29
|
-
* `ItemButton`.
|
|
28
|
+
* - `htmlType`, `as`, `insideWrapper`, `showActions`,
|
|
29
|
+
* `skipActionsWidthTransition` — internal to `Item` / `ItemButton`.
|
|
30
30
|
* - `actions`, `autoHideActions`, `preserveActionsSpace`,
|
|
31
31
|
* `disableActionsFocus` — a button radio renders as a `<label>`, and a click
|
|
32
32
|
* anywhere inside a label activates its control, so nested action buttons
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.185.1 | 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 { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
|
|
@@ -165,8 +165,8 @@ const RadioLabelElement = tasty({
|
|
|
165
165
|
* - `shape` — the radius is owned by the button-group layout below, which keeps
|
|
166
166
|
* only the outer-side radius on the first/last radio so the group reads as one
|
|
167
167
|
* continuous control. Forwarding `shape` would have no effect.
|
|
168
|
-
* - `htmlType`, `as`, `insideWrapper`, `showActions
|
|
169
|
-
* `ItemButton`.
|
|
168
|
+
* - `htmlType`, `as`, `insideWrapper`, `showActions`,
|
|
169
|
+
* `skipActionsWidthTransition` — internal to `Item` / `ItemButton`.
|
|
170
170
|
* - `actions`, `autoHideActions`, `preserveActionsSpace`,
|
|
171
171
|
* `disableActionsFocus` — a button radio renders as a `<label>`, and a click
|
|
172
172
|
* anywhere inside a label activates its control, so nested action buttons
|