@cube-dev/ui-kit 0.0.0-canary-8700a46 → 0.0.0-canary-3b2471f
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 +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 +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/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.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableView.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.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 +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +111 -108
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +4 -3
- package/dist/components/fields/ListBoxPopover/listNavigation.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +110 -64
- 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.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.d.ts +9 -2
- package/dist/components/fields/TagInput/TagInput.js +462 -394
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/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/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/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/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 +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/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 +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/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 +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.js +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 +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/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 +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/fields/TagInput.md +8 -8
- package/package.json +2 -2
|
@@ -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-3b2471f | Cube Dev Team */
|
|
2
2
|
import { TextInput } from "../TextInput/TextInput.js";
|
|
3
3
|
import { _FileInput } from "../FileInput/FileInput.js";
|
|
4
4
|
import { _NumberInput } from "../NumberInput/NumberInput.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-3b2471f | Cube Dev Team */
|
|
2
2
|
import { DraggableCollection } from "../../shared/DraggableCollection.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-3b2471f | 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-3b2471f | Cube Dev Team */
|
|
2
2
|
//#region src/components/fields/ListBox/optionId.ts
|
|
3
3
|
/**
|
|
4
4
|
* The DOM id of the option with `key` in the listbox whose id is `listBoxId`,
|
|
@@ -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-3b2471f | 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";
|
|
@@ -11,6 +11,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
11
11
|
import { useOverlay, useOverlayPosition } from "react-aria";
|
|
12
12
|
|
|
13
13
|
//#region src/components/fields/ListBoxPopover/ListBoxPopover.tsx
|
|
14
|
+
const CONTROL_SELECTOR = "button, a[href], input, select, textarea, [tabindex], [contenteditable]:not([contenteditable=\"false\"])";
|
|
14
15
|
const ListBoxPopoverWrapper = tasty({
|
|
15
16
|
qa: "ComboBoxOverlayWrapper",
|
|
16
17
|
styles: {
|
|
@@ -61,23 +62,24 @@ const ListBoxPopoverElement = tasty({
|
|
|
61
62
|
}
|
|
62
63
|
});
|
|
63
64
|
const ListBoxPopover = function ListBoxPopover(props) {
|
|
64
|
-
const $ = c(
|
|
65
|
+
const $ = c(67);
|
|
65
66
|
const { t } = useI18n();
|
|
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:
|
|
67
|
+
const { isOpen, triggerRef, popoverRef, listBoxRef, direction, shouldFlip, overlayOffset, containerPadding, comboBoxWidth, listBoxId, overlayStyles, listBoxStyles, optionStyles, optionHighlight, sectionStyles, headingStyles, selectedKey, selectionMode: t0, selectedKeys, isCheckable, shouldCloseOnTriggerInteraction: t1, shouldPassControlPresses: t2, isDisabled, disabledKeys, items, children, listStateRef, onSelectionChange, onClose, label, ariaLabel, compositeFocusProps, filter, size: t3, emptyLabel, positionTargetRef, positionApiRef } = props;
|
|
67
68
|
const selectionMode = t0 === void 0 ? "single" : t0;
|
|
68
69
|
const shouldCloseOnTriggerInteraction = t1 === void 0 ? true : t1;
|
|
70
|
+
const shouldPassControlPresses = t2 === void 0 ? false : t2;
|
|
69
71
|
const mergedPopoverRef = popoverRef;
|
|
70
72
|
const overlayScrollRef = useRef(null);
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
const
|
|
74
|
-
let
|
|
75
|
-
if ($[0] !== containerPadding || $[1] !== isOpen || $[2] !== overlayOffset || $[3] !== shouldFlip || $[4] !==
|
|
76
|
-
|
|
77
|
-
targetRef:
|
|
78
|
-
overlayRef:
|
|
73
|
+
const t4 = positionTargetRef ?? triggerRef;
|
|
74
|
+
const t5 = mergedPopoverRef;
|
|
75
|
+
const t6 = `${direction} start`;
|
|
76
|
+
let t7;
|
|
77
|
+
if ($[0] !== containerPadding || $[1] !== isOpen || $[2] !== overlayOffset || $[3] !== shouldFlip || $[4] !== t4 || $[5] !== t5 || $[6] !== t6) {
|
|
78
|
+
t7 = {
|
|
79
|
+
targetRef: t4,
|
|
80
|
+
overlayRef: t5,
|
|
79
81
|
scrollRef: overlayScrollRef,
|
|
80
|
-
placement:
|
|
82
|
+
placement: t6,
|
|
81
83
|
shouldFlip,
|
|
82
84
|
isOpen,
|
|
83
85
|
offset: overlayOffset,
|
|
@@ -87,25 +89,25 @@ const ListBoxPopover = function ListBoxPopover(props) {
|
|
|
87
89
|
$[1] = isOpen;
|
|
88
90
|
$[2] = overlayOffset;
|
|
89
91
|
$[3] = shouldFlip;
|
|
90
|
-
$[4] =
|
|
91
|
-
$[5] =
|
|
92
|
-
$[6] =
|
|
93
|
-
$[7] =
|
|
94
|
-
} else
|
|
95
|
-
const { overlayProps: overlayPositionProps, placement, updatePosition } = useOverlayPosition(
|
|
96
|
-
let
|
|
92
|
+
$[4] = t4;
|
|
93
|
+
$[5] = t5;
|
|
94
|
+
$[6] = t6;
|
|
95
|
+
$[7] = t7;
|
|
96
|
+
} else t7 = $[7];
|
|
97
|
+
const { overlayProps: overlayPositionProps, placement, updatePosition } = useOverlayPosition(t7);
|
|
98
|
+
let t8;
|
|
97
99
|
if ($[8] !== overlayPositionProps.style) {
|
|
98
|
-
|
|
100
|
+
t8 = overlayPositionProps.style ?? {};
|
|
99
101
|
$[8] = overlayPositionProps.style;
|
|
100
|
-
$[9] =
|
|
101
|
-
} else
|
|
102
|
-
const
|
|
102
|
+
$[9] = t8;
|
|
103
|
+
} else t8 = $[9];
|
|
104
|
+
const t9 = t8;
|
|
103
105
|
let maxHeight;
|
|
104
106
|
let maxWidth;
|
|
105
107
|
let positionStyle;
|
|
106
|
-
if ($[10] !==
|
|
107
|
-
({maxHeight, maxWidth, ...positionStyle} =
|
|
108
|
-
$[10] =
|
|
108
|
+
if ($[10] !== t9) {
|
|
109
|
+
({maxHeight, maxWidth, ...positionStyle} = t9);
|
|
110
|
+
$[10] = t9;
|
|
109
111
|
$[11] = maxHeight;
|
|
110
112
|
$[12] = maxWidth;
|
|
111
113
|
$[13] = positionStyle;
|
|
@@ -115,32 +117,32 @@ const ListBoxPopover = function ListBoxPopover(props) {
|
|
|
115
117
|
positionStyle = $[13];
|
|
116
118
|
}
|
|
117
119
|
let t10;
|
|
118
|
-
let
|
|
120
|
+
let t11;
|
|
119
121
|
if ($[14] !== positionApiRef || $[15] !== updatePosition) {
|
|
120
|
-
|
|
122
|
+
t10 = () => {
|
|
121
123
|
if (positionApiRef) positionApiRef.current = { updatePosition };
|
|
122
124
|
return () => {
|
|
123
125
|
if (positionApiRef) positionApiRef.current = null;
|
|
124
126
|
};
|
|
125
127
|
};
|
|
126
|
-
|
|
128
|
+
t11 = [positionApiRef, updatePosition];
|
|
127
129
|
$[14] = positionApiRef;
|
|
128
130
|
$[15] = updatePosition;
|
|
129
131
|
$[16] = t10;
|
|
130
|
-
$[17] =
|
|
132
|
+
$[17] = t11;
|
|
131
133
|
} else {
|
|
132
134
|
t10 = $[16];
|
|
133
|
-
|
|
135
|
+
t11 = $[17];
|
|
134
136
|
}
|
|
135
|
-
useEffect(
|
|
136
|
-
let
|
|
137
|
-
if ($[18] !== onClose || $[19] !== shouldCloseOnTriggerInteraction || $[20] !== triggerRef) {
|
|
138
|
-
|
|
137
|
+
useEffect(t10, t11);
|
|
138
|
+
let t12;
|
|
139
|
+
if ($[18] !== onClose || $[19] !== shouldCloseOnTriggerInteraction || $[20] !== shouldPassControlPresses || $[21] !== triggerRef) {
|
|
140
|
+
t12 = (el) => {
|
|
139
141
|
const menuTriggerEl = el.closest("[data-popover-trigger]");
|
|
140
142
|
if (!menuTriggerEl) {
|
|
141
143
|
if (!shouldCloseOnTriggerInteraction && triggerRef?.current?.contains(el)) return false;
|
|
142
144
|
if (el.closest("[data-popover-keep]")) return false;
|
|
143
|
-
if (el.closest("[data-popover-dismiss]")) {
|
|
145
|
+
if (shouldPassControlPresses && el.closest(CONTROL_SELECTOR) || el.closest("[data-popover-dismiss]")) {
|
|
144
146
|
setTimeout(onClose, 0);
|
|
145
147
|
return false;
|
|
146
148
|
}
|
|
@@ -151,46 +153,47 @@ const ListBoxPopover = function ListBoxPopover(props) {
|
|
|
151
153
|
};
|
|
152
154
|
$[18] = onClose;
|
|
153
155
|
$[19] = shouldCloseOnTriggerInteraction;
|
|
154
|
-
$[20] =
|
|
155
|
-
$[21] =
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
156
|
+
$[20] = shouldPassControlPresses;
|
|
157
|
+
$[21] = triggerRef;
|
|
158
|
+
$[22] = t12;
|
|
159
|
+
} else t12 = $[22];
|
|
160
|
+
let t13;
|
|
161
|
+
if ($[23] !== isOpen || $[24] !== onClose || $[25] !== t12) {
|
|
162
|
+
t13 = {
|
|
160
163
|
onClose,
|
|
161
164
|
shouldCloseOnBlur: true,
|
|
162
165
|
isOpen,
|
|
163
166
|
isDismissable: true,
|
|
164
|
-
shouldCloseOnInteractOutside:
|
|
167
|
+
shouldCloseOnInteractOutside: t12
|
|
165
168
|
};
|
|
166
|
-
$[
|
|
167
|
-
$[
|
|
168
|
-
$[24] = t11;
|
|
169
|
+
$[23] = isOpen;
|
|
170
|
+
$[24] = onClose;
|
|
169
171
|
$[25] = t12;
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
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;
|
|
180
|
-
const transitionRefHolder = useRef(null);
|
|
172
|
+
$[26] = t13;
|
|
173
|
+
} else t13 = $[26];
|
|
174
|
+
const { overlayProps: overlayBehaviorProps } = useOverlay(t13, mergedPopoverRef);
|
|
181
175
|
let t14;
|
|
182
|
-
if ($[
|
|
183
|
-
t14 = (
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
};
|
|
176
|
+
if ($[27] !== direction || $[28] !== placement) {
|
|
177
|
+
t14 = placement?.split(" ")[0] || direction;
|
|
178
|
+
$[27] = direction;
|
|
179
|
+
$[28] = placement;
|
|
187
180
|
$[29] = t14;
|
|
188
181
|
} else t14 = $[29];
|
|
189
|
-
const
|
|
182
|
+
const placementDirection = t14;
|
|
183
|
+
const transitionRefHolder = useRef(null);
|
|
190
184
|
let t15;
|
|
191
|
-
if ($[30]
|
|
192
|
-
t15 = (
|
|
193
|
-
|
|
185
|
+
if ($[30] === Symbol.for("react.memo_cache_sentinel")) {
|
|
186
|
+
t15 = (node) => {
|
|
187
|
+
overlayScrollRef.current = node;
|
|
188
|
+
transitionRefHolder.current?.(node);
|
|
189
|
+
};
|
|
190
|
+
$[30] = t15;
|
|
191
|
+
} else t15 = $[30];
|
|
192
|
+
const setScrollRef = t15;
|
|
193
|
+
let t16;
|
|
194
|
+
if ($[31] !== ariaLabel || $[32] !== children || $[33] !== comboBoxWidth || $[34] !== compositeFocusProps || $[35] !== disabledKeys || $[36] !== emptyLabel || $[37] !== filter || $[38] !== headingStyles || $[39] !== isCheckable || $[40] !== isDisabled || $[41] !== items || $[42] !== label || $[43] !== listBoxId || $[44] !== listBoxRef || $[45] !== listBoxStyles || $[46] !== listStateRef || $[47] !== maxHeight || $[48] !== maxWidth || $[49] !== mergedPopoverRef || $[50] !== onSelectionChange || $[51] !== optionHighlight || $[52] !== optionStyles || $[53] !== overlayBehaviorProps || $[54] !== overlayPositionProps || $[55] !== overlayStyles || $[56] !== placementDirection || $[57] !== positionStyle || $[58] !== sectionStyles || $[59] !== selectedKey || $[60] !== selectedKeys || $[61] !== selectionMode || $[62] !== t) {
|
|
195
|
+
t16 = (t17) => {
|
|
196
|
+
const { phase, isShown, ref: transitionRef } = t17;
|
|
194
197
|
transitionRefHolder.current = transitionRef;
|
|
195
198
|
return /* @__PURE__ */ jsx(ListBoxPopoverWrapper, {
|
|
196
199
|
...mergeProps$1({
|
|
@@ -241,51 +244,51 @@ const ListBoxPopover = function ListBoxPopover(props) {
|
|
|
241
244
|
})
|
|
242
245
|
});
|
|
243
246
|
};
|
|
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
|
-
$[
|
|
271
|
-
$[
|
|
272
|
-
$[
|
|
273
|
-
$[
|
|
274
|
-
$[
|
|
275
|
-
$[
|
|
276
|
-
$[
|
|
277
|
-
} else
|
|
278
|
-
let
|
|
279
|
-
if ($[
|
|
280
|
-
|
|
247
|
+
$[31] = ariaLabel;
|
|
248
|
+
$[32] = children;
|
|
249
|
+
$[33] = comboBoxWidth;
|
|
250
|
+
$[34] = compositeFocusProps;
|
|
251
|
+
$[35] = disabledKeys;
|
|
252
|
+
$[36] = emptyLabel;
|
|
253
|
+
$[37] = filter;
|
|
254
|
+
$[38] = headingStyles;
|
|
255
|
+
$[39] = isCheckable;
|
|
256
|
+
$[40] = isDisabled;
|
|
257
|
+
$[41] = items;
|
|
258
|
+
$[42] = label;
|
|
259
|
+
$[43] = listBoxId;
|
|
260
|
+
$[44] = listBoxRef;
|
|
261
|
+
$[45] = listBoxStyles;
|
|
262
|
+
$[46] = listStateRef;
|
|
263
|
+
$[47] = maxHeight;
|
|
264
|
+
$[48] = maxWidth;
|
|
265
|
+
$[49] = mergedPopoverRef;
|
|
266
|
+
$[50] = onSelectionChange;
|
|
267
|
+
$[51] = optionHighlight;
|
|
268
|
+
$[52] = optionStyles;
|
|
269
|
+
$[53] = overlayBehaviorProps;
|
|
270
|
+
$[54] = overlayPositionProps;
|
|
271
|
+
$[55] = overlayStyles;
|
|
272
|
+
$[56] = placementDirection;
|
|
273
|
+
$[57] = positionStyle;
|
|
274
|
+
$[58] = sectionStyles;
|
|
275
|
+
$[59] = selectedKey;
|
|
276
|
+
$[60] = selectedKeys;
|
|
277
|
+
$[61] = selectionMode;
|
|
278
|
+
$[62] = t;
|
|
279
|
+
$[63] = t16;
|
|
280
|
+
} else t16 = $[63];
|
|
281
|
+
let t17;
|
|
282
|
+
if ($[64] !== isOpen || $[65] !== t16) {
|
|
283
|
+
t17 = /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(DisplayTransition, {
|
|
281
284
|
isShown: isOpen,
|
|
282
|
-
children:
|
|
285
|
+
children: t16
|
|
283
286
|
}) });
|
|
284
|
-
$[
|
|
285
|
-
$[64] = t15;
|
|
287
|
+
$[64] = isOpen;
|
|
286
288
|
$[65] = t16;
|
|
287
|
-
|
|
288
|
-
|
|
289
|
+
$[66] = t17;
|
|
290
|
+
} else t17 = $[66];
|
|
291
|
+
return t17;
|
|
289
292
|
};
|
|
290
293
|
|
|
291
294
|
//#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","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
|
+
{"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","shouldPassControlPresses","isDisabled","disabledKeys","Iterable","items","children","listStateRef","onSelectionChange","selection","onClose","label","ariaLabel","compositeFocusProps","onFocus","e","FocusEvent","onBlur","filter","nodes","size","emptyLabel","positionTargetRef","Element","positionApiRef","updatePosition","CONTROL_SELECTOR","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","t3","undefined","mergedPopoverRef","overlayScrollRef","t4","t5","t6","t7","targetRef","overlayRef","scrollRef","placement","offset","overlayProps","overlayPositionProps","t8","style","t9","maxHeight","maxWidth","positionStyle","t10","t11","current","t12","el","menuTriggerEl","closest","contains","setTimeout","t13","shouldCloseOnBlur","isDismissable","shouldCloseOnInteractOutside","overlayBehaviorProps","t14","split","placementDirection","transitionRefHolder","t15","Symbol","for","node","setScrollRef","t16","t17","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 /**\n * Whether an outside press on a control (a button, a link, a form control,\n * anything with `tabindex`, or something inside one) reaches it, as one on\n * a `data-popover-dismiss` control does: the control can take focus, and\n * the popover closes after it, so a native Save button saves on the first\n * click. A press anywhere else, such as a dialog's backdrop, still only\n * closes the popover. Defaults to `false`.\n */\n shouldPassControlPresses?: 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\n// What `shouldPassControlPresses` lets an outside press reach.\nconst CONTROL_SELECTOR =\n 'button, a[href], input, select, textarea, [tabindex], [contenteditable]:not([contenteditable=\"false\"])';\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 shouldPassControlPresses = false,\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, and `shouldPassControlPresses`\n // opts every control in. Schedule the close after the click\n // finishes so the button's onPress runs first. Only controls: the\n // close lands before a slow click does, and a click on a dialog's\n // backdrop would then find the dialog on top and close it too.\n if (\n (shouldPassControlPresses && el.closest(CONTROL_SELECTOR)) ||\n el.closest('[data-popover-dismiss]')\n ) {\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.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3b2471f | 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
|
|
@@ -83,9 +83,10 @@ function nodeMatchesTerm(node, term, textFilterFn, matchExtraFields) {
|
|
|
83
83
|
function filterCollectionNodes(nodes, term, textFilterFn, options = {}) {
|
|
84
84
|
if (!term) return nodes;
|
|
85
85
|
const matchExtraFields = options.matchExtraFields ?? false;
|
|
86
|
+
const matches = (node) => !!options.keep?.(node) || nodeMatchesTerm(node, term, textFilterFn, matchExtraFields);
|
|
86
87
|
return [...nodes].map((node) => {
|
|
87
88
|
if (node.type === "section" && node.childNodes) {
|
|
88
|
-
const filteredChildren = [...node.childNodes].filter(
|
|
89
|
+
const filteredChildren = [...node.childNodes].filter(matches);
|
|
89
90
|
if (filteredChildren.length === 0) return null;
|
|
90
91
|
return {
|
|
91
92
|
...node,
|
|
@@ -93,7 +94,7 @@ function filterCollectionNodes(nodes, term, textFilterFn, options = {}) {
|
|
|
93
94
|
hasChildNodes: true
|
|
94
95
|
};
|
|
95
96
|
}
|
|
96
|
-
return
|
|
97
|
+
return matches(node) ? node : null;
|
|
97
98
|
}).filter(Boolean);
|
|
98
99
|
}
|
|
99
100
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listNavigation.js","names":["Key","ListStateLike","selectionManager","focusedKey","setFocusedKey","key","collection","Iterable","disabledKeys","Set","lastFocusSourceRef","current","NavigationDirection","NavigationEdge","collectVisibleKeys","nodes","out","node","type","has","push","childNodes","getVisibleKeys","listState","keys","getNextVisibleKey","direction","opts","wrap","fromKey","visibleKeys","length","isForward","currentKey","currentIndex","indexOf","newIndex","getEdgeVisibleKey","edge","markKeyboardFocus","TextFilterFn","textValue","inputValue","FilterCollectionOptions","matchExtraFields","getSearchableStrings","strings","props","children","description","nodeMatchesTerm","term","textFilterFn","some","text","filterCollectionNodes","options","map","filteredChildren","filter","
|
|
1
|
+
{"version":3,"file":"listNavigation.js","names":["Key","ListStateLike","selectionManager","focusedKey","setFocusedKey","key","collection","Iterable","disabledKeys","Set","lastFocusSourceRef","current","NavigationDirection","NavigationEdge","collectVisibleKeys","nodes","out","node","type","has","push","childNodes","getVisibleKeys","listState","keys","getNextVisibleKey","direction","opts","wrap","fromKey","visibleKeys","length","isForward","currentKey","currentIndex","indexOf","newIndex","getEdgeVisibleKey","edge","markKeyboardFocus","TextFilterFn","textValue","inputValue","FilterCollectionOptions","matchExtraFields","keep","getSearchableStrings","strings","props","children","description","nodeMatchesTerm","term","textFilterFn","some","text","filterCollectionNodes","options","matches","map","filteredChildren","filter","hasChildNodes","Boolean"],"sources":["../../../../src/components/fields/ListBoxPopover/listNavigation.ts"],"sourcesContent":["import { Key } from '@react-types/shared';\n\n/**\n * Minimal view of a React Stately list state. Kept structural (no imports from\n * `react-stately`) so the helpers can be used from any collection-backed\n * component without dragging extra types in.\n */\nexport interface ListStateLike {\n selectionManager: {\n focusedKey: Key | null;\n setFocusedKey: (key: Key | null) => void;\n };\n collection: Iterable<any>;\n disabledKeys?: Set<Key>;\n lastFocusSourceRef?: { current: 'keyboard' | 'mouse' | 'other' };\n}\n\nexport type NavigationDirection = 1 | -1;\nexport type NavigationEdge = 'first' | 'last';\n\n/**\n * Walks a collection (possibly nested under sections) and collects the keys of\n * selectable items, skipping disabled ones. Mirrors the inline walker that\n * used to live in `useComboBoxKeyboard`.\n */\nexport function collectVisibleKeys(\n nodes: Iterable<any>,\n out: Key[],\n disabledKeys?: Set<Key>,\n): void {\n for (const node of nodes) {\n if (node.type === 'item') {\n if (!disabledKeys?.has(node.key)) {\n out.push(node.key);\n }\n } else if (node.childNodes) {\n collectVisibleKeys(node.childNodes, out, disabledKeys);\n }\n }\n}\n\n/** Convenience: returns the flat list of selectable keys for a list state. */\nexport function getVisibleKeys(listState: ListStateLike): Key[] {\n const keys: Key[] = [];\n collectVisibleKeys(\n listState.collection,\n keys,\n listState.disabledKeys as Set<Key> | undefined,\n );\n return keys;\n}\n\n/**\n * Computes the next key to focus when navigating with ArrowUp/ArrowDown.\n *\n * - If `fromKey` is omitted, reads `selectionManager.focusedKey`.\n * - When nothing is focused (or the focused key is no longer visible), falls\n * back to the first/last visible key depending on `direction`.\n * - When the current key is the boundary, either returns `null` (default) or\n * wraps to the opposite edge when `opts.wrap` is true.\n */\nexport function getNextVisibleKey(\n listState: ListStateLike,\n direction: NavigationDirection,\n opts?: { wrap?: boolean; fromKey?: Key | null },\n): Key | null {\n const visibleKeys = getVisibleKeys(listState);\n if (visibleKeys.length === 0) return null;\n\n const isForward = direction === 1;\n const currentKey = opts?.fromKey ?? listState.selectionManager.focusedKey;\n\n if (currentKey == null) {\n return isForward ? visibleKeys[0] : visibleKeys[visibleKeys.length - 1];\n }\n\n const currentIndex = visibleKeys.indexOf(currentKey);\n\n if (currentIndex === -1) {\n // Focused item was filtered out — restart from the matching edge.\n return isForward ? visibleKeys[0] : visibleKeys[visibleKeys.length - 1];\n }\n\n const newIndex = currentIndex + direction;\n if (newIndex >= 0 && newIndex < visibleKeys.length) {\n return visibleKeys[newIndex];\n }\n\n if (opts?.wrap) {\n return isForward ? visibleKeys[0] : visibleKeys[visibleKeys.length - 1];\n }\n\n return null;\n}\n\n/** Returns the first or last selectable key. */\nexport function getEdgeVisibleKey(\n listState: ListStateLike,\n edge: NavigationEdge,\n): Key | null {\n const visibleKeys = getVisibleKeys(listState);\n if (visibleKeys.length === 0) return null;\n return edge === 'first'\n ? visibleKeys[0]\n : visibleKeys[visibleKeys.length - 1];\n}\n\n/**\n * Marks a focus change as keyboard-driven so the underlying ListBox scrolls the\n * highlighted option into view. No-op when the list state doesn't expose a\n * `lastFocusSourceRef`.\n */\nexport function markKeyboardFocus(listState: ListStateLike): void {\n if (listState.lastFocusSourceRef) {\n listState.lastFocusSourceRef.current = 'keyboard';\n }\n}\n\nexport type TextFilterFn = (textValue: string, inputValue: string) => boolean;\n\n/** Options controlling how {@link filterCollectionNodes} matches nodes. */\nexport interface FilterCollectionOptions {\n /**\n * Also match against a node's plain-text `children` and `description` props\n * in addition to its `textValue`. Defaults to `false` so the search stays\n * consistent with the visible `textValue` (which is what components like\n * ComboBox document). Components that surface `children`/`description` in the\n * option list (e.g. CommandTextArea) can opt in.\n */\n matchExtraFields?: boolean;\n /**\n * Keeps a node whatever the term, such as the option the typed text already\n * names by its key.\n */\n keep?: (node: any) => boolean;\n}\n\n/**\n * Collects the strings a node can be matched against. Always includes the\n * node's `textValue`; when `matchExtraFields` is set, also includes any\n * plain-text `children` and `description` props. Non-string children/description\n * (e.g. React elements) are ignored since we can't reliably read their text.\n */\nfunction getSearchableStrings(node: any, matchExtraFields: boolean): string[] {\n const strings: string[] = [];\n\n if (node.textValue) {\n strings.push(node.textValue);\n }\n\n if (matchExtraFields) {\n const props = node.props;\n if (props) {\n if (typeof props.children === 'string') {\n strings.push(props.children);\n }\n if (typeof props.description === 'string') {\n strings.push(props.description);\n }\n }\n }\n\n return strings.length > 0 ? strings : [node.textValue || ''];\n}\n\n/** True when the term matches any of the node's searchable strings. */\nfunction nodeMatchesTerm(\n node: any,\n term: string,\n textFilterFn: TextFilterFn,\n matchExtraFields: boolean,\n): boolean {\n return getSearchableStrings(node, matchExtraFields).some((text) =>\n textFilterFn(text, term),\n );\n}\n\n/**\n * Filters collection nodes by a search term while preserving section structure.\n * By default a node matches only when the term matches its `textValue`; pass\n * `{ matchExtraFields: true }` to also match its plain-text `children` and\n * `description`. Sections whose children all fail the filter are dropped.\n */\nexport function filterCollectionNodes(\n nodes: Iterable<any>,\n term: string,\n textFilterFn: TextFilterFn,\n options: FilterCollectionOptions = {},\n): Iterable<any> {\n if (!term) {\n return nodes;\n }\n\n const matchExtraFields = options.matchExtraFields ?? false;\n const matches = (node: any) =>\n !!options.keep?.(node) ||\n nodeMatchesTerm(node, term, textFilterFn, matchExtraFields);\n\n return [...nodes]\n .map((node: any) => {\n if (node.type === 'section' && node.childNodes) {\n const filteredChildren = [...node.childNodes].filter(matches);\n\n if (filteredChildren.length === 0) {\n return null;\n }\n\n return {\n ...node,\n childNodes: filteredChildren,\n hasChildNodes: true,\n };\n }\n\n return matches(node) ? node : null;\n })\n .filter(Boolean);\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import
|
|
2
|
+
import { FocusEvent, RefObject } from "react";
|