@cube-dev/ui-kit 0.71.2 → 0.72.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/CHANGELOG.md +16 -0
- package/es/_internal/hooks/index.js +1 -1
- package/es/_internal/hooks/use-chained-callback.js +1 -1
- package/es/_internal/hooks/use-debounced-value.js +1 -1
- package/es/_internal/hooks/use-deprecation-warning.js +1 -1
- package/es/_internal/hooks/use-effect-once.js +1 -1
- package/es/_internal/hooks/use-event.js +1 -1
- package/es/_internal/hooks/use-is-first-render.js +1 -1
- package/es/_internal/hooks/use-sync-ref.js +1 -1
- package/es/_internal/hooks/use-timer/index.js +1 -1
- package/es/_internal/hooks/use-timer/timer.js +1 -1
- package/es/_internal/hooks/use-timer/use-timer.js +1 -1
- package/es/_internal/hooks/use-update-effect.js +1 -1
- package/es/_internal/hooks/use-warn.js +1 -1
- package/es/_internal/index.js +1 -1
- package/es/components/Block.js +1 -1
- package/es/components/GlobalStyles.js +1 -1
- package/es/components/GridProvider.js +1 -1
- package/es/components/HiddenInput.js +1 -1
- package/es/components/OpenTrasition.js +1 -1
- package/es/components/Root.js +1 -1
- package/es/components/actions/Action/Action.js +1 -1
- package/es/components/actions/Button/Button.js +1 -1
- package/es/components/actions/Button/index.js +1 -1
- package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/es/components/actions/CommandMenu/index.js +1 -1
- package/es/components/actions/CommandMenu/styled.js +1 -1
- package/es/components/actions/Menu/Menu.js +12 -3
- package/es/components/actions/Menu/MenuItem.js +36 -13
- package/es/components/actions/Menu/MenuSection.js +1 -1
- package/es/components/actions/Menu/MenuTrigger.js +17 -2
- package/es/components/actions/Menu/SubMenuTrigger.js +288 -0
- package/es/components/actions/Menu/SubmenuTriggerContext.js +18 -0
- package/es/components/actions/Menu/context.js +1 -1
- package/es/components/actions/Menu/index.js +3 -1
- package/es/components/actions/Menu/styled.js +1 -1
- package/es/components/actions/index.js +1 -1
- package/es/components/actions/use-action.js +1 -1
- package/es/components/actions/use-anchored-menu.js +1 -1
- package/es/components/actions/use-context-menu.js +1 -1
- package/es/components/content/ActiveZone/ActiveZone.js +1 -1
- package/es/components/content/Alert/Alert.js +1 -1
- package/es/components/content/Alert/index.js +1 -1
- package/es/components/content/Alert/types.js +1 -1
- package/es/components/content/Alert/use-alert.js +1 -1
- package/es/components/content/Avatar/Avatar.js +1 -1
- package/es/components/content/Badge/Badge.js +1 -1
- package/es/components/content/Card/Card.js +1 -1
- package/es/components/content/Content.js +1 -1
- package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/es/components/content/CopyPasteBlock/index.js +1 -1
- package/es/components/content/CopySnippet/CopySnippet.js +1 -1
- package/es/components/content/CopySnippet/index.js +1 -1
- package/es/components/content/Divider.js +1 -1
- package/es/components/content/Footer.js +1 -1
- package/es/components/content/Header.js +1 -1
- package/es/components/content/HotKeys/HotKeys.js +1 -1
- package/es/components/content/HotKeys/index.js +1 -1
- package/es/components/content/Paragraph.js +1 -1
- package/es/components/content/Placeholder/Placeholder.js +1 -1
- package/es/components/content/PrismCode/PrismCode.js +1 -1
- package/es/components/content/PrismCode/prismSetup.js +1 -1
- package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/es/components/content/Result/Result.js +1 -1
- package/es/components/content/Skeleton/Skeleton.js +1 -1
- package/es/components/content/Tag/Tag.js +1 -1
- package/es/components/content/Text.js +1 -1
- package/es/components/content/Title.js +1 -1
- package/es/components/fields/Checkbox/Checkbox.js +1 -1
- package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/es/components/fields/Checkbox/context.js +1 -1
- package/es/components/fields/Checkbox/index.js +1 -1
- package/es/components/fields/ComboBox/ComboBox.js +1 -1
- package/es/components/fields/ComboBox/index.js +1 -1
- package/es/components/fields/DatePicker/DateInput.js +1 -1
- package/es/components/fields/DatePicker/DateInputBase.js +1 -1
- package/es/components/fields/DatePicker/DatePicker.js +1 -1
- package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/es/components/fields/DatePicker/TimeInput.js +1 -1
- package/es/components/fields/DatePicker/index.js +1 -1
- package/es/components/fields/DatePicker/intl.js +1 -1
- package/es/components/fields/DatePicker/parseDate.js +1 -1
- package/es/components/fields/DatePicker/props.js +1 -1
- package/es/components/fields/DatePicker/types.js +1 -1
- package/es/components/fields/DatePicker/utils.js +1 -1
- package/es/components/fields/FileInput/FileInput.js +1 -1
- package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/es/components/fields/FilterListBox/index.js +1 -1
- package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/es/components/fields/FilterPicker/index.js +1 -1
- package/es/components/fields/Input/Input.js +1 -1
- package/es/components/fields/Input/index.js +1 -1
- package/es/components/fields/ListBox/ListBox.js +1 -1
- package/es/components/fields/ListBox/index.js +1 -1
- package/es/components/fields/NumberInput/NumberInput.js +1 -1
- package/es/components/fields/NumberInput/StepButton.js +1 -1
- package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/es/components/fields/RadioGroup/Radio.js +1 -1
- package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/es/components/fields/RadioGroup/context.js +1 -1
- package/es/components/fields/RadioGroup/index.js +1 -1
- package/es/components/fields/SearchInput/SearchInput.js +1 -1
- package/es/components/fields/SearchInput/index.js +1 -1
- package/es/components/fields/Select/Select.js +1 -1
- package/es/components/fields/Select/index.js +1 -1
- package/es/components/fields/Slider/Gradation.js +1 -1
- package/es/components/fields/Slider/Header.js +1 -1
- package/es/components/fields/Slider/RangeSlider.js +1 -1
- package/es/components/fields/Slider/Slider.js +1 -1
- package/es/components/fields/Slider/SliderBase.js +1 -1
- package/es/components/fields/Slider/SliderInput.js +1 -1
- package/es/components/fields/Slider/SliderThumb.js +1 -1
- package/es/components/fields/Slider/SliderTrack.js +1 -1
- package/es/components/fields/Slider/elements.js +1 -1
- package/es/components/fields/Slider/index.js +1 -1
- package/es/components/fields/Slider/types.js +1 -1
- package/es/components/fields/Switch/Switch.js +1 -1
- package/es/components/fields/Switch/index.js +1 -1
- package/es/components/fields/TextArea/TextArea.js +1 -1
- package/es/components/fields/TextArea/index.js +1 -1
- package/es/components/fields/TextInput/TextInput.js +1 -1
- package/es/components/fields/TextInput/TextInputBase.js +1 -1
- package/es/components/fields/TextInput/index.js +1 -1
- package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/es/components/fields/TextInputMapper/index.js +1 -1
- package/es/components/fields/index.js +1 -1
- package/es/components/form/FieldWrapper/FieldWrapper.js +2 -2
- package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
- package/es/components/form/FieldWrapper/index.js +1 -1
- package/es/components/form/FieldWrapper/types.js +1 -1
- package/es/components/form/Form/Field.js +1 -1
- package/es/components/form/Form/Form.js +1 -1
- package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/es/components/form/Form/ResetButton/index.js +1 -1
- package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/es/components/form/Form/SubmitButton/index.js +1 -1
- package/es/components/form/Form/SubmitError.js +1 -1
- package/es/components/form/Form/index.js +1 -1
- package/es/components/form/Form/types.js +1 -1
- package/es/components/form/Form/use-field/index.js +1 -1
- package/es/components/form/Form/use-field/types.js +1 -1
- package/es/components/form/Form/use-field/use-field-props.js +1 -1
- package/es/components/form/Form/use-field/use-field.js +1 -1
- package/es/components/form/Form/use-form.js +1 -1
- package/es/components/form/Form/validation.js +1 -1
- package/es/components/form/Label.js +2 -2
- package/es/components/form/index.js +1 -1
- package/es/components/form/wrapper.js +1 -1
- package/es/components/layout/Flex.js +1 -1
- package/es/components/layout/Flow.js +1 -1
- package/es/components/layout/Grid.js +1 -1
- package/es/components/layout/Panel.js +1 -1
- package/es/components/layout/Prefix.js +1 -1
- package/es/components/layout/ResizablePanel.js +1 -1
- package/es/components/layout/Space.js +1 -1
- package/es/components/layout/Suffix.js +1 -1
- package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
- package/es/components/navigation/Link/Link.js +1 -1
- package/es/components/organisms/FileTabs/FileTabs.js +1 -1
- package/es/components/organisms/Modal/Modal.js +1 -1
- package/es/components/organisms/StatsCard/StatsCard.js +1 -1
- package/es/components/other/Base64Upload/Base64Upload.js +1 -1
- package/es/components/other/Calendar/Calendar.js +1 -1
- package/es/components/other/Calendar/CalendarCell.js +1 -1
- package/es/components/other/Calendar/CalendarGrid.js +1 -1
- package/es/components/other/Calendar/RangeCalendar.js +1 -1
- package/es/components/other/CloudLogo/CloudLogo.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/es/components/overlays/AlertDialog/index.js +1 -1
- package/es/components/overlays/AlertDialog/types.js +1 -1
- package/es/components/overlays/Dialog/Dialog.js +1 -1
- package/es/components/overlays/Dialog/DialogContainer.js +1 -1
- package/es/components/overlays/Dialog/DialogForm.js +1 -1
- package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/es/components/overlays/Dialog/context.js +1 -1
- package/es/components/overlays/Dialog/index.js +1 -1
- package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/es/components/overlays/Modal/Modal.js +1 -1
- package/es/components/overlays/Modal/OpenTransition.js +1 -1
- package/es/components/overlays/Modal/Overlay.js +1 -1
- package/es/components/overlays/Modal/Popover.js +1 -1
- package/es/components/overlays/Modal/Tray.js +1 -1
- package/es/components/overlays/Modal/Underlay.js +1 -1
- package/es/components/overlays/Modal/index.js +1 -1
- package/es/components/overlays/Modal/types.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
- package/es/components/overlays/NewNotifications/Notification.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
- package/es/components/overlays/NewNotifications/index.js +1 -1
- package/es/components/overlays/NewNotifications/types.js +1 -1
- package/es/components/overlays/Notification/Notification.js +1 -1
- package/es/components/overlays/OverlayWrapper.js +1 -1
- package/es/components/overlays/Toasts/Toast.js +1 -1
- package/es/components/overlays/Toasts/index.js +1 -1
- package/es/components/overlays/Toasts/types.js +1 -1
- package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
- package/es/components/overlays/Tooltip/Tooltip.js +1 -1
- package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/es/components/overlays/Tooltip/context.js +1 -1
- package/es/components/overlays/Tooltip/index.js +1 -1
- package/es/components/portal/Portal.js +1 -1
- package/es/components/portal/PortalProvider.js +1 -1
- package/es/components/portal/index.js +1 -1
- package/es/components/portal/storybook/templates/CustomRoot.js +1 -1
- package/es/components/portal/storybook/templates/PortalOrder.js +1 -1
- package/es/components/portal/storybook/templates/basic.js +1 -1
- package/es/components/portal/storybook/templates/index.js +1 -1
- package/es/components/portal/types.js +1 -1
- package/es/components/portal/usePortal.js +1 -1
- package/es/components/shared/InvalidIcon.js +1 -1
- package/es/components/shared/ValidIcon.js +1 -1
- package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/es/components/status/LoadingAnimation/index.js +1 -1
- package/es/components/status/Spin/Cube.js +1 -1
- package/es/components/status/Spin/InternalSpinner.js +1 -1
- package/es/components/status/Spin/Spin.js +1 -1
- package/es/components/status/Spin/SpinsContainer.js +1 -1
- package/es/components/status/Spin/index.js +1 -1
- package/es/components/status/Spin/types.js +1 -1
- package/es/components/status/index.js +1 -1
- package/es/data/themes.js +1 -1
- package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/es/icons/AdjustmentsIcon.js +1 -1
- package/es/icons/AiIcon.js +1 -1
- package/es/icons/AreaChartIcon.js +1 -1
- package/es/icons/BackwardIcon.js +1 -1
- package/es/icons/BarChartIcon.js +1 -1
- package/es/icons/BellFilledIcon.js +1 -1
- package/es/icons/BellIcon.js +1 -1
- package/es/icons/BooleanIcon.js +1 -1
- package/es/icons/CalendarEditIcon.js +1 -1
- package/es/icons/CalendarIcon.js +1 -1
- package/es/icons/CaretDownIcon.js +1 -1
- package/es/icons/CaretUpIcon.js +1 -1
- package/es/icons/ChartAreaStackedIcon.js +1 -1
- package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarGroupedIcon.js +1 -1
- package/es/icons/ChartBarHorizontalIcon.js +1 -1
- package/es/icons/ChartBarLineIcon.js +1 -1
- package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBoxPlot2Icon.js +1 -1
- package/es/icons/ChartBoxPlotIcon.js +1 -1
- package/es/icons/ChartBubbleIcon.js +1 -1
- package/es/icons/ChartDonut2Icon.js +1 -1
- package/es/icons/ChartFunnelIcon.js +1 -1
- package/es/icons/ChartKPIIcon.js +1 -1
- package/es/icons/ChartPie2Icon.js +1 -1
- package/es/icons/ChartScatterIcon.js +1 -1
- package/es/icons/CheckCircleFilledIcon.js +1 -1
- package/es/icons/CheckCircleIcon.js +1 -1
- package/es/icons/CheckIcon.js +1 -1
- package/es/icons/CircleFilledIcon.js +1 -1
- package/es/icons/ClearIcon.js +1 -1
- package/es/icons/CloseCircleFilledIcon.js +1 -1
- package/es/icons/CloseCircleIcon.js +1 -1
- package/es/icons/CloseIcon.js +1 -1
- package/es/icons/CodeIcon.js +1 -1
- package/es/icons/CopyIcon.js +1 -1
- package/es/icons/CountIcon.js +1 -1
- package/es/icons/CubeIcon.js +1 -1
- package/es/icons/DangerIcon.js +1 -1
- package/es/icons/DashboardIcon.js +1 -1
- package/es/icons/DatabaseIcon.js +1 -1
- package/es/icons/DirectionIcon.js +1 -1
- package/es/icons/DonutIcon.js +1 -1
- package/es/icons/DownIcon.js +1 -1
- package/es/icons/EditIcon.js +1 -1
- package/es/icons/ExclamationCircleFilledIcon.js +1 -1
- package/es/icons/ExclamationCircleIcon.js +1 -1
- package/es/icons/ExclamationIcon.js +1 -1
- package/es/icons/EyeIcon.js +1 -1
- package/es/icons/EyeInvisibleIcon.js +1 -1
- package/es/icons/FilterIcon.js +1 -1
- package/es/icons/FolderFilledIcon.js +1 -1
- package/es/icons/FolderIcon.js +1 -1
- package/es/icons/FolderOpenFilledIcon.js +1 -1
- package/es/icons/FolderOpenIcon.js +1 -1
- package/es/icons/ForwardIcon.js +1 -1
- package/es/icons/HierarchyIcon.js +1 -1
- package/es/icons/Icon.js +1 -1
- package/es/icons/InfoCircleIcon.js +1 -1
- package/es/icons/InfoIcon.js +1 -1
- package/es/icons/KeyIcon.js +1 -1
- package/es/icons/LeftIcon.js +1 -1
- package/es/icons/LineChartIcon.js +1 -1
- package/es/icons/LoadingIcon.js +1 -1
- package/es/icons/LockFilledIcon.js +1 -1
- package/es/icons/LockIcon.js +1 -1
- package/es/icons/MoreIcon.js +1 -1
- package/es/icons/NotAllowedIcon.js +1 -1
- package/es/icons/NumberIcon.js +1 -1
- package/es/icons/PauseCircleFilledIcon.js +1 -1
- package/es/icons/PauseCircleIcon.js +1 -1
- package/es/icons/PauseIcon.js +1 -1
- package/es/icons/PieChartIcon.js +1 -1
- package/es/icons/PlayCircleIcon.js +1 -1
- package/es/icons/PlayIcon.js +1 -1
- package/es/icons/PlusIcon.js +1 -1
- package/es/icons/ReloadIcon.js +1 -1
- package/es/icons/ReportIcon.js +1 -1
- package/es/icons/ReturnIcon.js +1 -1
- package/es/icons/RightIcon.js +1 -1
- package/es/icons/SchemeIcon.js +1 -1
- package/es/icons/SearchIcon.js +1 -1
- package/es/icons/SettingsIcon.js +1 -1
- package/es/icons/ShieldFilledIcon.js +1 -1
- package/es/icons/ShieldIcon.js +1 -1
- package/es/icons/SlashIcon.js +1 -1
- package/es/icons/SparklesIcon.js +1 -1
- package/es/icons/SqlIcon.js +1 -1
- package/es/icons/StatsIcon.js +1 -1
- package/es/icons/StopIcon.js +1 -1
- package/es/icons/StringIcon.js +1 -1
- package/es/icons/SwitchIcon.js +1 -1
- package/es/icons/TableIcon.js +1 -1
- package/es/icons/ThumbsDownIcon.js +1 -1
- package/es/icons/ThumbsUpIcon.js +1 -1
- package/es/icons/ThunderboltCrossedIcon.js +1 -1
- package/es/icons/ThunderboltFilledIcon.js +1 -1
- package/es/icons/ThunderboltIcon.js +1 -1
- package/es/icons/TimeIcon.js +1 -1
- package/es/icons/UnlockIcon.js +1 -1
- package/es/icons/UpIcon.js +1 -1
- package/es/icons/UserGroupIcon.js +1 -1
- package/es/icons/UserIcon.js +1 -1
- package/es/icons/UserLockIcon.js +1 -1
- package/es/icons/ViewIcon.js +1 -1
- package/es/icons/WarningFilledIcon.js +1 -1
- package/es/icons/WarningIcon.js +1 -1
- package/es/icons/add-new-icon.js +1 -1
- package/es/icons/index.js +1 -1
- package/es/icons/wrap-icon.js +1 -1
- package/es/index.js +2 -1
- package/es/provider.js +1 -1
- package/es/providers/TrackingProvider.js +1 -1
- package/es/services/notification.js +1 -1
- package/es/shared/form.js +1 -1
- package/es/shared/index.js +1 -1
- package/es/stories/Form.legacy-stories.js +1 -1
- package/es/stories/FormFieldArgs.js +1 -1
- package/es/stories/Layout.stories.js +1 -1
- package/es/stories/Tasty.stories.js +1 -1
- package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
- package/es/stories/components/DialogFormApp.js +1 -1
- package/es/stories/components/StyledButton.js +1 -1
- package/es/stories/lists/baseProps.js +1 -1
- package/es/tasty/index.js +1 -1
- package/es/tasty/parser/classify.js +22 -18
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +1 -1
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +1 -1
- package/es/tasty/providers/BreakpointsProvider.js +1 -1
- package/es/tasty/styles/align.js +1 -1
- package/es/tasty/styles/border.js +1 -1
- package/es/tasty/styles/boxShadow.combinator.js +1 -1
- package/es/tasty/styles/color.js +1 -1
- package/es/tasty/styles/createStyle.js +1 -1
- package/es/tasty/styles/dimension.js +1 -1
- package/es/tasty/styles/display.js +1 -1
- package/es/tasty/styles/fade.js +1 -1
- package/es/tasty/styles/fill.js +1 -1
- package/es/tasty/styles/flow.js +1 -1
- package/es/tasty/styles/font.js +1 -1
- package/es/tasty/styles/fontStyle.js +1 -1
- package/es/tasty/styles/gap.js +1 -1
- package/es/tasty/styles/groupRadius.js +1 -1
- package/es/tasty/styles/height.js +1 -1
- package/es/tasty/styles/index.js +1 -1
- package/es/tasty/styles/inset.js +1 -1
- package/es/tasty/styles/justify.js +1 -1
- package/es/tasty/styles/list.js +1 -1
- package/es/tasty/styles/margin.js +1 -1
- package/es/tasty/styles/marginBlock.js +1 -1
- package/es/tasty/styles/marginInline.js +1 -1
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +1 -1
- package/es/tasty/styles/paddingBlock.js +1 -1
- package/es/tasty/styles/paddingInline.js +1 -1
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +1 -1
- package/es/tasty/styles/preset.js +1 -1
- package/es/tasty/styles/radius.js +1 -1
- package/es/tasty/styles/reset.js +1 -1
- package/es/tasty/styles/scrollbar.js +1 -1
- package/es/tasty/styles/shadow.js +1 -1
- package/es/tasty/styles/styledScrollbar.js +1 -1
- package/es/tasty/styles/transition.js +1 -1
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +1 -1
- package/es/tasty/tasty.js +1 -1
- package/es/tasty/types.js +1 -1
- package/es/tasty/utils/cache-wrapper.js +1 -1
- package/es/tasty/utils/case-converter.js +1 -1
- package/es/tasty/utils/colors.js +1 -1
- package/es/tasty/utils/dotize.js +1 -1
- package/es/tasty/utils/filterBaseProps.js +1 -1
- package/es/tasty/utils/getDisplayName.js +1 -1
- package/es/tasty/utils/getModCombinations.js +1 -1
- package/es/tasty/utils/mergeStyles.js +1 -1
- package/es/tasty/utils/modAttrs.js +1 -1
- package/es/tasty/utils/renderStyles.js +1 -1
- package/es/tasty/utils/responsive.js +1 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +1 -1
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tokens.js +1 -1
- package/es/type-checks.js +1 -1
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/modules.js +1 -1
- package/es/utils/promise.js +1 -1
- package/es/utils/random.js +1 -1
- package/es/utils/range.js +1 -1
- package/es/utils/react/Slots.js +1 -1
- package/es/utils/react/chain.js +1 -1
- package/es/utils/react/index.js +1 -1
- package/es/utils/react/interactions.js +1 -1
- package/es/utils/react/isTextOnly.js +1 -1
- package/es/utils/react/mapProps.js +1 -1
- package/es/utils/react/mergeProps.js +1 -1
- package/es/utils/react/nullableValue.js +1 -1
- package/es/utils/react/sharedStore.js +1 -1
- package/es/utils/react/useCombinedRefs.js +1 -1
- package/es/utils/react/useControlledFocusVisible.js +1 -1
- package/es/utils/react/useEventBus.js +1 -1
- package/es/utils/react/useId.js +1 -1
- package/es/utils/react/useIsDarwin.js +1 -1
- package/es/utils/react/useKeySymbols.js +1 -1
- package/es/utils/react/useLayoutEffect.js +1 -1
- package/es/utils/react/useQaProps.js +1 -1
- package/es/utils/react/useViewportSize.js +1 -1
- package/es/utils/react/wrapNodeIfPlain.js +1 -1
- package/es/utils/transitions.js +1 -1
- package/es/utils/tree.js +1 -1
- package/es/utils/warnings.js +1 -1
- package/es/version.js +2 -2
- package/package.json +1 -1
- package/types/components/actions/Menu/Menu.d.ts +6 -0
- package/types/components/actions/Menu/SubMenuTrigger.d.ts +44 -0
- package/types/components/actions/Menu/SubmenuTriggerContext.d.ts +13 -0
- package/types/components/actions/Menu/context.d.ts +1 -0
- package/types/components/actions/Menu/index.d.ts +2 -0
- package/types/components/actions/Menu/styled.d.ts +480 -480
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +160 -160
- package/types/index.d.ts +1 -0
@@ -0,0 +1,288 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.72.1
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
9
|
+
import { useSyncRef } from '@react-aria/utils';
|
10
|
+
import React, { useEffect, useMemo, useRef, } from 'react';
|
11
|
+
import { DismissButton, useMenuTrigger, useOverlayPosition, } from 'react-aria';
|
12
|
+
import { useMenuTriggerState } from 'react-stately';
|
13
|
+
import { generateRandomId } from '../../../utils/random';
|
14
|
+
import { useEventBus } from '../../../utils/react/useEventBus';
|
15
|
+
import { Popover } from '../../overlays/Modal';
|
16
|
+
import { MenuContext, useMenuContext } from './context';
|
17
|
+
import { SubmenuTriggerContext } from './SubmenuTriggerContext';
|
18
|
+
// Default placement & offset for sub-menus (matches Spectrum / Aria)
|
19
|
+
const DEFAULT_PLACEMENT = 'right top';
|
20
|
+
const DEFAULT_OFFSET = 4;
|
21
|
+
const DEFAULT_CROSS_OFFSET = -5;
|
22
|
+
/**
|
23
|
+
* Internal SubMenuTrigger that receives the already-rendered trigger element
|
24
|
+
* from the collection system and wraps it with submenu behavior.
|
25
|
+
*/
|
26
|
+
function InternalSubMenuTrigger(props) {
|
27
|
+
const { children, placement = DEFAULT_PLACEMENT, offset = DEFAULT_OFFSET, crossOffset = DEFAULT_CROSS_OFFSET, shouldFlip = true, isDisabled, autoFocus = 'first', onAction, targetKey, ...overlayProps } = props;
|
28
|
+
// Children: [menuTrigger (already rendered MenuItem), menu (Menu component)]
|
29
|
+
const [menuTrigger, menu] = React.Children.toArray(children);
|
30
|
+
const state = useMenuTriggerState(props);
|
31
|
+
// Generate a unique ID for this submenu instance
|
32
|
+
const submenuId = useMemo(() => generateRandomId(), []);
|
33
|
+
// Get event bus for submenu synchronization
|
34
|
+
const { emit, on } = useEventBus();
|
35
|
+
// Refs – trigger (MenuItem <li>) and overlay (<div> from Popover)
|
36
|
+
const domTriggerRef = useRef(null);
|
37
|
+
const popoverRef = useRef(null);
|
38
|
+
const menuRef = useRef(null);
|
39
|
+
// Strip keyboard/press handlers that we will implement ourselves
|
40
|
+
const { menuTriggerProps: rawTriggerProps, menuProps } = useMenuTrigger({ type: 'submenu', isDisabled }, state, domTriggerRef);
|
41
|
+
// Get parent context to check if parent menu is closing
|
42
|
+
const parentContext = useMenuContext();
|
43
|
+
// Remove default onKeyDown/onPress handlers from trigger props – we implement custom ones
|
44
|
+
const { onKeyDown: _mtOnKeyDown, onPress: _mtOnPress, onPressStart: _mtOnPressStart, onKeyUp: _mtOnKeyUp, ...menuTriggerProps } = rawTriggerProps;
|
45
|
+
const { overlayProps: positionProps } = useOverlayPosition({
|
46
|
+
targetRef: domTriggerRef,
|
47
|
+
overlayRef: popoverRef,
|
48
|
+
scrollRef: menuRef,
|
49
|
+
placement,
|
50
|
+
offset: offset,
|
51
|
+
crossOffset: crossOffset,
|
52
|
+
shouldFlip,
|
53
|
+
isOpen: state.isOpen,
|
54
|
+
onClose: state.close,
|
55
|
+
});
|
56
|
+
/**
|
57
|
+
* Build a MenuContext for the nested menu so it behaves just like a regular
|
58
|
+
* popover-based Menu (selection handling, focus management, etc.).
|
59
|
+
*/
|
60
|
+
const nestedMenuContext = useMemo(() => {
|
61
|
+
const ctx = {
|
62
|
+
...menuProps,
|
63
|
+
ref: menuRef,
|
64
|
+
// Pass the parent's onClose to close the entire menu hierarchy
|
65
|
+
onClose: () => {
|
66
|
+
// Close this submenu state immediately
|
67
|
+
state.close();
|
68
|
+
// Then close the parent menu
|
69
|
+
if (parentContext.onClose) {
|
70
|
+
parentContext.onClose();
|
71
|
+
}
|
72
|
+
},
|
73
|
+
closeOnSelect: true,
|
74
|
+
autoFocus,
|
75
|
+
mods: {
|
76
|
+
popover: true,
|
77
|
+
},
|
78
|
+
// Propagate closing state from parent
|
79
|
+
isClosing: parentContext.isClosing || !state.isOpen,
|
80
|
+
};
|
81
|
+
return ctx;
|
82
|
+
}, [
|
83
|
+
menuProps,
|
84
|
+
autoFocus,
|
85
|
+
state,
|
86
|
+
parentContext.onClose,
|
87
|
+
parentContext.isClosing,
|
88
|
+
]);
|
89
|
+
// Sync the parent selection manager focus with DOM ref (for virtual focus scenarios)
|
90
|
+
useSyncRef(parentContext, domTriggerRef);
|
91
|
+
// Listen for other menus opening and close this submenu if needed
|
92
|
+
useEffect(() => {
|
93
|
+
const unsubscribe = on('menu:open', (data) => {
|
94
|
+
// If another menu is opening and this submenu is open, close this one
|
95
|
+
if (data.menuId !== submenuId && state.isOpen) {
|
96
|
+
state.close();
|
97
|
+
}
|
98
|
+
});
|
99
|
+
return unsubscribe;
|
100
|
+
}, [on, submenuId, state]);
|
101
|
+
// Emit event when this submenu opens
|
102
|
+
useEffect(() => {
|
103
|
+
if (state.isOpen) {
|
104
|
+
emit('menu:open', { menuId: submenuId });
|
105
|
+
}
|
106
|
+
}, [state.isOpen, emit, submenuId]);
|
107
|
+
// Cleanup hover timers and reset refs on unmount
|
108
|
+
useEffect(() => {
|
109
|
+
return () => {
|
110
|
+
if (hoverOpenTimerRef.current) {
|
111
|
+
clearTimeout(hoverOpenTimerRef.current);
|
112
|
+
}
|
113
|
+
if (hoverCloseTimerRef.current) {
|
114
|
+
clearTimeout(hoverCloseTimerRef.current);
|
115
|
+
}
|
116
|
+
isHoveringRef.current = false;
|
117
|
+
isHoveringSubmenuRef.current = false;
|
118
|
+
};
|
119
|
+
}, []);
|
120
|
+
// ----- Render -----
|
121
|
+
// Handle keyboard navigation
|
122
|
+
const handleKeyDown = (e) => {
|
123
|
+
if (isDisabled)
|
124
|
+
return;
|
125
|
+
// Arrow right opens submenu
|
126
|
+
if (e.key === 'ArrowRight') {
|
127
|
+
e.preventDefault();
|
128
|
+
e.stopPropagation();
|
129
|
+
state.open();
|
130
|
+
}
|
131
|
+
// Enter or Space opens submenu (suppress subsequent onAction)
|
132
|
+
else if (e.key === 'Enter' || e.key === ' ') {
|
133
|
+
e.preventDefault();
|
134
|
+
e.stopPropagation();
|
135
|
+
// Stop immediate propagation to prevent React Aria's handlers from running
|
136
|
+
e.nativeEvent.stopImmediatePropagation();
|
137
|
+
state.open();
|
138
|
+
suppressNextActionRef.current = true; // Remember it was keyboard
|
139
|
+
}
|
140
|
+
// Arrow left closes submenu if open
|
141
|
+
else if (e.key === 'ArrowLeft' && state.isOpen) {
|
142
|
+
e.preventDefault();
|
143
|
+
e.stopPropagation();
|
144
|
+
state.close();
|
145
|
+
}
|
146
|
+
};
|
147
|
+
// Use refs to store timer IDs
|
148
|
+
const hoverOpenTimerRef = useRef(null);
|
149
|
+
const hoverCloseTimerRef = useRef(null);
|
150
|
+
// Track if mouse is over trigger or submenu
|
151
|
+
const isHoveringRef = useRef(false);
|
152
|
+
const isHoveringSubmenuRef = useRef(false);
|
153
|
+
// Track whether the next onAction comes from a keyboard press
|
154
|
+
const suppressNextActionRef = useRef(false);
|
155
|
+
const checkShouldClose = () => {
|
156
|
+
// Only close if mouse is not over trigger OR submenu
|
157
|
+
if (!isHoveringRef.current && !isHoveringSubmenuRef.current) {
|
158
|
+
hoverCloseTimerRef.current = setTimeout(() => {
|
159
|
+
// Double check before closing
|
160
|
+
if (!isHoveringRef.current && !isHoveringSubmenuRef.current) {
|
161
|
+
state.close();
|
162
|
+
}
|
163
|
+
}, 300);
|
164
|
+
}
|
165
|
+
};
|
166
|
+
// Handle mouse interactions on trigger
|
167
|
+
const handleMouseEnter = () => {
|
168
|
+
if (isDisabled)
|
169
|
+
return;
|
170
|
+
isHoveringRef.current = true;
|
171
|
+
// Clear any pending close timer
|
172
|
+
if (hoverCloseTimerRef.current) {
|
173
|
+
clearTimeout(hoverCloseTimerRef.current);
|
174
|
+
hoverCloseTimerRef.current = null;
|
175
|
+
}
|
176
|
+
// Use a small delay to prevent accidental opens
|
177
|
+
if (!state.isOpen) {
|
178
|
+
hoverOpenTimerRef.current = setTimeout(() => {
|
179
|
+
if (isHoveringRef.current) {
|
180
|
+
state.open();
|
181
|
+
}
|
182
|
+
}, 200);
|
183
|
+
}
|
184
|
+
};
|
185
|
+
const handleMouseLeave = () => {
|
186
|
+
isHoveringRef.current = false;
|
187
|
+
// Clear open timer if it exists
|
188
|
+
if (hoverOpenTimerRef.current) {
|
189
|
+
clearTimeout(hoverOpenTimerRef.current);
|
190
|
+
hoverOpenTimerRef.current = null;
|
191
|
+
}
|
192
|
+
// Check if we should close
|
193
|
+
checkShouldClose();
|
194
|
+
};
|
195
|
+
// Handle mouse events on the submenu popover
|
196
|
+
const handlePopoverMouseEnter = () => {
|
197
|
+
isHoveringSubmenuRef.current = true;
|
198
|
+
// Clear any pending close timer when entering submenu
|
199
|
+
if (hoverCloseTimerRef.current) {
|
200
|
+
clearTimeout(hoverCloseTimerRef.current);
|
201
|
+
hoverCloseTimerRef.current = null;
|
202
|
+
}
|
203
|
+
};
|
204
|
+
const handlePopoverMouseLeave = () => {
|
205
|
+
isHoveringSubmenuRef.current = false;
|
206
|
+
// Check if we should close
|
207
|
+
checkShouldClose();
|
208
|
+
};
|
209
|
+
// Merge event handlers
|
210
|
+
const mergeHandler = (handler1, handler2) => {
|
211
|
+
return (...args) => {
|
212
|
+
handler1?.(...args);
|
213
|
+
handler2?.(...args);
|
214
|
+
};
|
215
|
+
};
|
216
|
+
// Provide context to the trigger element (already rendered MenuItem)
|
217
|
+
const triggerContextValue = useMemo(() => ({
|
218
|
+
triggerRef: domTriggerRef,
|
219
|
+
triggerProps: menuTriggerProps,
|
220
|
+
isOpen: state.isOpen,
|
221
|
+
isDisabled,
|
222
|
+
onMouseEnter: handleMouseEnter,
|
223
|
+
onMouseLeave: handleMouseLeave,
|
224
|
+
onKeyDown: handleKeyDown,
|
225
|
+
onAction: isDisabled
|
226
|
+
? undefined
|
227
|
+
: () => {
|
228
|
+
// Ignore the synthetic press generated by the same Enter/Space
|
229
|
+
if (suppressNextActionRef.current) {
|
230
|
+
suppressNextActionRef.current = false;
|
231
|
+
return;
|
232
|
+
}
|
233
|
+
// This is a mouse click, open the submenu
|
234
|
+
state.open();
|
235
|
+
},
|
236
|
+
}), [
|
237
|
+
state,
|
238
|
+
isDisabled,
|
239
|
+
handleMouseEnter,
|
240
|
+
handleMouseLeave,
|
241
|
+
handleKeyDown,
|
242
|
+
menuTriggerProps,
|
243
|
+
]);
|
244
|
+
return (_jsxs(_Fragment, { children: [_jsx(SubmenuTriggerContext.Provider, { value: triggerContextValue, children: menuTrigger }), state.isOpen && (_jsx(Popover, { ref: popoverRef, hideArrow: true, isNonModal: true, isOpen: !parentContext.isClosing, style: positionProps.style, placement: placement, onClose: state.close, ...overlayProps, children: _jsxs("div", { style: { display: 'contents' }, onMouseEnter: handlePopoverMouseEnter, onMouseLeave: handlePopoverMouseLeave, children: [_jsx(DismissButton, { onDismiss: state.close }), _jsx(MenuContext.Provider, { value: nestedMenuContext, children: React.cloneElement(menu, {
|
245
|
+
...menu.props,
|
246
|
+
autoFocus,
|
247
|
+
onAction: (key) => {
|
248
|
+
// Call original menu onAction first
|
249
|
+
menu.props.onAction?.(key);
|
250
|
+
onAction?.(key);
|
251
|
+
// Don't close here - MenuItem will handle it via context.onClose
|
252
|
+
},
|
253
|
+
onKeyDown: (e) => {
|
254
|
+
// Handle keyboard navigation for closing submenu
|
255
|
+
if (e.key === 'ArrowLeft' || e.key === 'Escape') {
|
256
|
+
e.preventDefault();
|
257
|
+
e.stopPropagation();
|
258
|
+
state.close();
|
259
|
+
// Return focus to trigger
|
260
|
+
domTriggerRef.current?.focus();
|
261
|
+
}
|
262
|
+
// Call original handler if exists
|
263
|
+
menu.props.onKeyDown?.(e);
|
264
|
+
},
|
265
|
+
ref: menuRef,
|
266
|
+
}) }), _jsx(DismissButton, { onDismiss: state.close })] }) }))] }));
|
267
|
+
}
|
268
|
+
/**
|
269
|
+
* Public SubMenuTrigger component that users interact with.
|
270
|
+
* It just provides the getCollectionNode for the collection system.
|
271
|
+
*/
|
272
|
+
export function SubMenuTrigger(props) {
|
273
|
+
// This component is never actually rendered directly.
|
274
|
+
// The collection system uses getCollectionNode to build the menu.
|
275
|
+
return null;
|
276
|
+
}
|
277
|
+
// Allow React Stately collection builder to treat SubMenuTrigger as an Item
|
278
|
+
SubMenuTrigger.getCollectionNode = function* (props) {
|
279
|
+
const [trigger, menu] = React.Children.toArray(props.children);
|
280
|
+
// Yield a collection node that tells the Menu to wrap this item with InternalSubMenuTrigger
|
281
|
+
yield {
|
282
|
+
element: trigger,
|
283
|
+
wrapper: (element) => (_jsxs(InternalSubMenuTrigger, { targetKey: element.key || undefined, ...props, children: [element, menu] }, element.key || undefined)),
|
284
|
+
};
|
285
|
+
};
|
286
|
+
SubMenuTrigger.displayName = 'SubMenuTrigger';
|
287
|
+
|
288
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.72.1
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import React from 'react';
|
9
|
+
export const SubmenuTriggerContext = React.createContext(null);
|
10
|
+
export function useSubmenuTriggerContext() {
|
11
|
+
const context = React.useContext(SubmenuTriggerContext);
|
12
|
+
if (!context) {
|
13
|
+
throw new Error('useSubmenuTriggerContext must be used within a SubmenuTriggerContext.Provider');
|
14
|
+
}
|
15
|
+
return context;
|
16
|
+
}
|
17
|
+
|
18
|
+
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* @license MIT
|
3
3
|
* author: Cube Dev Team
|
4
|
-
* @cube-dev/ui-kit v0.
|
4
|
+
* @cube-dev/ui-kit v0.72.1
|
5
5
|
* Released under the MIT license.
|
6
6
|
*/
|
7
7
|
|
@@ -9,9 +9,11 @@ export * from './Menu';
|
|
9
9
|
export * from './MenuTrigger';
|
10
10
|
export * from './MenuItem';
|
11
11
|
export * from './MenuSection';
|
12
|
+
export * from './SubMenuTrigger';
|
12
13
|
export * from './context';
|
13
14
|
// Re-export the main components
|
14
15
|
export { Menu } from './Menu';
|
15
16
|
export { MenuTrigger } from './MenuTrigger';
|
17
|
+
export { SubMenuTrigger } from './SubMenuTrigger';
|
16
18
|
|
17
19
|
|