@cube-dev/ui-kit 0.66.1 → 0.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -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 +3 -2
- package/es/components/actions/Action/Action.js +1 -1
- package/es/components/actions/Button/Button.js +24 -21
- 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 +13 -23
- package/es/components/actions/CommandMenu/index.js +1 -1
- package/es/components/actions/CommandMenu/styled.js +1 -2
- package/es/components/actions/Menu/Menu.js +18 -13
- package/es/components/actions/Menu/MenuItem.js +2 -1
- package/es/components/actions/Menu/MenuSection.js +1 -1
- package/es/components/actions/Menu/MenuTrigger.js +48 -21
- package/es/components/actions/Menu/context.js +1 -1
- package/es/components/actions/Menu/index.js +1 -1
- package/es/components/actions/Menu/styled.js +47 -22
- package/es/components/actions/index.js +3 -1
- package/es/components/actions/use-action.js +1 -1
- package/es/components/actions/use-anchored-menu.js +98 -0
- package/es/components/actions/use-context-menu.js +206 -0
- 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 +2 -2
- 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 +25 -3
- 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 +580 -0
- package/es/components/fields/FilterListBox/index.js +10 -0
- package/es/components/fields/FilterPicker/FilterPicker.js +426 -0
- package/es/components/fields/FilterPicker/index.js +10 -0
- 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 +324 -238
- 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 +48 -9
- 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 +4 -4
- 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 +3 -1
- package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
- 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 +1 -1
- package/es/components/form/index.js +1 -1
- package/es/components/form/wrapper.js +5 -2
- 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 +2 -2
- package/es/components/overlays/Dialog/{dialog-container.js → use-dialog-container.js} +3 -3
- 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 +12 -0
- 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 +2 -1
- package/es/icons/wrap-icon.js +1 -1
- package/es/index.js +1 -1
- package/es/provider.js +4 -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/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 +4 -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 +7 -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 +3 -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 +51 -0
- package/es/utils/react/useCombinedRefs.js +1 -1
- package/es/utils/react/useControlledFocusVisible.js +42 -0
- package/es/utils/react/useEventBus.js +124 -0
- 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 +2 -1
- package/types/components/actions/Button/Button.d.ts +8 -5
- package/types/components/actions/Menu/Menu.d.ts +3 -0
- package/types/components/actions/Menu/MenuItem.d.ts +1 -1
- package/types/components/actions/Menu/MenuTrigger.d.ts +2 -3
- package/types/components/actions/Menu/styled.d.ts +1 -0
- package/types/components/actions/index.d.ts +2 -0
- package/types/components/actions/use-anchored-menu.d.ts +34 -0
- package/types/components/actions/use-context-menu.d.ts +42 -0
- package/types/components/content/Card/Card.d.ts +2 -2
- package/types/components/content/CopyPasteBlock/CopyPasteBlock.d.ts +1 -1
- package/types/components/fields/FilterListBox/FilterListBox.d.ts +51 -0
- package/types/components/fields/FilterListBox/index.d.ts +1 -0
- package/types/components/fields/FilterPicker/FilterPicker.d.ts +55 -0
- package/types/components/fields/FilterPicker/index.d.ts +1 -0
- package/types/components/fields/ListBox/ListBox.d.ts +48 -22
- package/types/components/fields/Select/Select.d.ts +8 -1
- package/types/components/fields/index.d.ts +2 -0
- package/types/components/overlays/Dialog/index.d.ts +1 -1
- package/types/icons/ChartKPIIcon.d.ts +4 -0
- package/types/icons/index.d.ts +1 -0
- package/types/shared/form.d.ts +2 -0
- package/types/tasty/utils/styles.d.ts +1 -0
- package/types/utils/random.d.ts +4 -0
- package/types/utils/react/index.d.ts +4 -0
- package/types/utils/react/sharedStore.d.ts +11 -0
- package/types/utils/react/useControlledFocusVisible.d.ts +10 -0
- package/types/utils/react/useEventBus.d.ts +74 -0
- /package/types/components/overlays/Dialog/{dialog-container.d.ts → use-dialog-container.d.ts} +0 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.68.0
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { useSyncExternalStore } from 'react';
|
9
|
+
import { useEvent } from '../../_internal/hooks/use-event';
|
10
|
+
/**
|
11
|
+
* Create a shared store that survives hot-reloads.
|
12
|
+
*
|
13
|
+
* Pass a unique `name` once per logical store module:
|
14
|
+
* export const useSidebarStore = createSharedStore('sidebar', { open: false });
|
15
|
+
*/
|
16
|
+
export function createSharedStore(name, initialState) {
|
17
|
+
const cacheKey = `__sharedStore_${name}__`;
|
18
|
+
const existing = cacheKey && globalThis[cacheKey];
|
19
|
+
const holder = existing ?? {
|
20
|
+
state: initialState,
|
21
|
+
listeners: new Set(),
|
22
|
+
};
|
23
|
+
/* Warn if someone tries to “re-initialise” with a different value */
|
24
|
+
if (process.env.NODE_ENV === 'development' &&
|
25
|
+
existing &&
|
26
|
+
existing.state !== initialState) {
|
27
|
+
console.warn(`[createSharedStore] Store "${name}" already exists – ` +
|
28
|
+
'the new initialState is ignored to preserve hot-reload state.');
|
29
|
+
}
|
30
|
+
if (cacheKey && !existing) {
|
31
|
+
globalThis[cacheKey] = holder;
|
32
|
+
}
|
33
|
+
const getSnapshot = () => holder.state;
|
34
|
+
const subscribe = (cb) => {
|
35
|
+
holder.listeners.add(cb);
|
36
|
+
return () => holder.listeners.delete(cb);
|
37
|
+
};
|
38
|
+
const setStore = (update) => {
|
39
|
+
holder.state =
|
40
|
+
typeof update === 'function'
|
41
|
+
? update(holder.state)
|
42
|
+
: update;
|
43
|
+
holder.listeners.forEach((l) => l());
|
44
|
+
};
|
45
|
+
const useSharedStore = () => {
|
46
|
+
return [useSyncExternalStore(subscribe, getSnapshot), useEvent(setStore)];
|
47
|
+
};
|
48
|
+
return useSharedStore;
|
49
|
+
}
|
50
|
+
|
51
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.68.0
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { useEffect } from 'react';
|
9
|
+
import { useFocusVisible } from 'react-aria';
|
10
|
+
import { createSharedStore } from './sharedStore';
|
11
|
+
// Create a shared store for the controlled focus visible state
|
12
|
+
const useControlledFocusVisibleStore = createSharedStore('controlledFocusVisible', {
|
13
|
+
isManuallyActivated: false,
|
14
|
+
});
|
15
|
+
/**
|
16
|
+
* A hook that shares its state using sharedStore and works like useFocusVisible from react-aria,
|
17
|
+
* but also returns activateFocusVisible function that manually switches the state to true
|
18
|
+
* until the original flag is switched to false.
|
19
|
+
*/
|
20
|
+
export function useControlledFocusVisible() {
|
21
|
+
// Get the original focus visible state from react-aria
|
22
|
+
const { isFocusVisible: originalIsFocusVisible } = useFocusVisible({});
|
23
|
+
// Get the shared store state and setter
|
24
|
+
const [{ isManuallyActivated }, setStore] = useControlledFocusVisibleStore();
|
25
|
+
// Reset manual activation when original focus visible becomes false
|
26
|
+
useEffect(() => {
|
27
|
+
if (!originalIsFocusVisible && isManuallyActivated) {
|
28
|
+
setStore({ isManuallyActivated: false });
|
29
|
+
}
|
30
|
+
}, [originalIsFocusVisible, isManuallyActivated, setStore]);
|
31
|
+
// Function to manually activate focus visible state
|
32
|
+
const activateFocusVisible = () => {
|
33
|
+
setStore({ isManuallyActivated: true });
|
34
|
+
};
|
35
|
+
// Return combined state: true if either original is true OR manually activated
|
36
|
+
return {
|
37
|
+
isFocusVisible: originalIsFocusVisible || isManuallyActivated,
|
38
|
+
activateFocusVisible,
|
39
|
+
};
|
40
|
+
}
|
41
|
+
|
42
|
+
|
@@ -0,0 +1,124 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.68.0
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import React, { createContext, useCallback, useContext, useEffect, useRef, } from 'react';
|
9
|
+
const EventBusContext = createContext(null);
|
10
|
+
/**
|
11
|
+
* EventBusProvider provides a global event system for the application.
|
12
|
+
*
|
13
|
+
* @example
|
14
|
+
* ```tsx
|
15
|
+
* function App() {
|
16
|
+
* return (
|
17
|
+
* <EventBusProvider>
|
18
|
+
* <YourComponents />
|
19
|
+
* </EventBusProvider>
|
20
|
+
* );
|
21
|
+
* }
|
22
|
+
* ```
|
23
|
+
*/
|
24
|
+
export function EventBusProvider({ children }) {
|
25
|
+
const listeners = useRef({});
|
26
|
+
const off = useCallback((event, listener) => {
|
27
|
+
const eventListeners = listeners.current[event];
|
28
|
+
if (eventListeners) {
|
29
|
+
listeners.current[event] = eventListeners.filter((l) => l !== listener);
|
30
|
+
// Clean up empty event arrays
|
31
|
+
if (listeners.current[event].length === 0) {
|
32
|
+
delete listeners.current[event];
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}, []);
|
36
|
+
const emit = useCallback((event, data) => {
|
37
|
+
// Use setTimeout to ensure async emission after current render cycle
|
38
|
+
setTimeout(() => {
|
39
|
+
const eventListeners = listeners.current[event];
|
40
|
+
if (eventListeners) {
|
41
|
+
eventListeners.forEach((listener) => listener(data));
|
42
|
+
}
|
43
|
+
}, 0);
|
44
|
+
}, []);
|
45
|
+
const on = useCallback((event, listener) => {
|
46
|
+
if (!listeners.current[event]) {
|
47
|
+
listeners.current[event] = [];
|
48
|
+
}
|
49
|
+
listeners.current[event].push(listener);
|
50
|
+
// Return cleanup function
|
51
|
+
return () => {
|
52
|
+
off(event, listener);
|
53
|
+
};
|
54
|
+
}, [off]);
|
55
|
+
const contextValue = {
|
56
|
+
emit,
|
57
|
+
on,
|
58
|
+
off,
|
59
|
+
};
|
60
|
+
return React.createElement(EventBusContext.Provider, { value: contextValue }, children);
|
61
|
+
}
|
62
|
+
/**
|
63
|
+
* Hook to access the event bus functionality.
|
64
|
+
* Must be used within an EventBusProvider.
|
65
|
+
*
|
66
|
+
* @example
|
67
|
+
* ```tsx
|
68
|
+
* function Component() {
|
69
|
+
* const { emit, on } = useEventBus();
|
70
|
+
*
|
71
|
+
* const handleClick = () => {
|
72
|
+
* emit('user-action', { type: 'click', target: 'button' });
|
73
|
+
* };
|
74
|
+
*
|
75
|
+
* useEffect(() => {
|
76
|
+
* const unsubscribe = on('data-updated', (data) => {
|
77
|
+
* console.log('Data updated:', data);
|
78
|
+
* });
|
79
|
+
*
|
80
|
+
* return unsubscribe;
|
81
|
+
* }, [on]);
|
82
|
+
*
|
83
|
+
* return <button onClick={handleClick}>Click me</button>;
|
84
|
+
* }
|
85
|
+
* ```
|
86
|
+
*/
|
87
|
+
export function useEventBus() {
|
88
|
+
const context = useContext(EventBusContext);
|
89
|
+
if (!context) {
|
90
|
+
throw new Error('useEventBus must be used within an EventBusProvider');
|
91
|
+
}
|
92
|
+
return context;
|
93
|
+
}
|
94
|
+
/**
|
95
|
+
* Convenience hook for subscribing to events with automatic cleanup.
|
96
|
+
* The listener will be automatically unsubscribed when the component unmounts
|
97
|
+
* or when the dependencies change.
|
98
|
+
*
|
99
|
+
* @param event - The event name to listen for
|
100
|
+
* @param listener - The callback function to execute when the event is emitted
|
101
|
+
* @param deps - Dependency array for the effect (similar to useEffect)
|
102
|
+
*
|
103
|
+
* @example
|
104
|
+
* ```tsx
|
105
|
+
* function NotificationComponent() {
|
106
|
+
* const [message, setMessage] = useState('');
|
107
|
+
*
|
108
|
+
* useEventListener('notification', (data) => {
|
109
|
+
* setMessage(data.message);
|
110
|
+
* }, []);
|
111
|
+
*
|
112
|
+
* return <div>{message}</div>;
|
113
|
+
* }
|
114
|
+
* ```
|
115
|
+
*/
|
116
|
+
export function useEventListener(event, listener, deps = []) {
|
117
|
+
const { on } = useEventBus();
|
118
|
+
useEffect(() => {
|
119
|
+
const unsubscribe = on(event, listener);
|
120
|
+
return unsubscribe;
|
121
|
+
}, [event, on, ...deps]);
|
122
|
+
}
|
123
|
+
|
124
|
+
|
package/es/utils/react/useId.js
CHANGED
package/es/utils/transitions.js
CHANGED
package/es/utils/tree.js
CHANGED
package/es/utils/warnings.js
CHANGED
package/es/version.js
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
/**
|
2
2
|
* @license MIT
|
3
3
|
* author: Cube Dev Team
|
4
|
-
* @cube-dev/ui-kit v0.
|
4
|
+
* @cube-dev/ui-kit v0.68.0
|
5
5
|
* Released under the MIT license.
|
6
6
|
*/
|
7
7
|
|
8
8
|
"use strict";
|
9
9
|
if (typeof window !== 'undefined') {
|
10
|
-
const version = '0.
|
10
|
+
const version = '0.68.0';
|
11
11
|
// Ensure CubeUIKit is defined on window in a way bundlers recognize
|
12
12
|
window.CubeUIKit = window.CubeUIKit || { version };
|
13
13
|
// Check for multiple versions
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@cube-dev/ui-kit",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.68.0",
|
4
4
|
"description": "UIKit for Cube Projects",
|
5
5
|
"keywords": [
|
6
6
|
"uikit"
|
@@ -34,6 +34,7 @@
|
|
34
34
|
"@react-types/shared": "^3.27.0",
|
35
35
|
"@sparticuz/chromium": "^137.0.1",
|
36
36
|
"@tabler/icons-react": "^3.31.0",
|
37
|
+
"@tanstack/react-virtual": "^3.13.12",
|
37
38
|
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
38
39
|
"@vitejs/plugin-react": "^4.3.2",
|
39
40
|
"clipboard-copy": "^4.0.1",
|
@@ -7,7 +7,7 @@ export interface CubeButtonProps extends CubeActionProps {
|
|
7
7
|
isLoading?: boolean;
|
8
8
|
isSelected?: boolean;
|
9
9
|
type?: 'primary' | 'secondary' | 'danger' | 'link' | 'clear' | 'outline' | 'neutral' | (string & {});
|
10
|
-
size?: 'small' | 'medium' | 'large' | (string & {});
|
10
|
+
size?: 'tiny' | 'small' | 'medium' | 'large' | (string & {});
|
11
11
|
}
|
12
12
|
export type ButtonVariant = 'default.primary' | 'default.secondary' | 'default.outline' | 'default.neutral' | 'default.clear' | 'default.link' | 'danger.primary' | 'danger.secondary' | 'danger.outline' | 'danger.neutral' | 'danger.clear' | 'danger.link' | 'success.primary' | 'success.secondary' | 'success.outline' | 'success.neutral' | 'success.clear' | 'success.link' | 'special.primary' | 'special.secondary' | 'special.outline' | 'special.neutral' | 'special.clear' | 'special.link';
|
13
13
|
export declare const DEFAULT_BUTTON_STYLES: {
|
@@ -35,20 +35,23 @@ export declare const DEFAULT_BUTTON_STYLES: {
|
|
35
35
|
readonly reset: "button";
|
36
36
|
readonly outlineOffset: 1;
|
37
37
|
readonly padding: {
|
38
|
-
readonly '': "
|
39
|
-
readonly '[data-size="
|
40
|
-
readonly '[data-size="
|
41
|
-
readonly '[data-size="
|
38
|
+
readonly '': ".5x (2x - 1bw)";
|
39
|
+
readonly '[data-size="tiny"]': ".5x (1x - 1bw)";
|
40
|
+
readonly '[data-size="small"]': ".5x (1x - 1bw)";
|
41
|
+
readonly '[data-size="medium"]': ".5x (1.5x - 1bw)";
|
42
|
+
readonly '[data-size="large"]': ".5x (2.25x - 1bw)";
|
42
43
|
readonly 'single-icon-only | [data-type="link"]': 0;
|
43
44
|
};
|
44
45
|
readonly width: {
|
45
46
|
readonly '': "initial";
|
47
|
+
readonly '[data-size="tiny"] & single-icon-only': "3.5x 3.5x";
|
46
48
|
readonly '[data-size="small"] & single-icon-only': "4x 4x";
|
47
49
|
readonly '[data-size="medium"] & single-icon-only': "5x 5x";
|
48
50
|
readonly '[data-size="large"] & single-icon-only': "6x 6x";
|
49
51
|
};
|
50
52
|
readonly height: {
|
51
53
|
readonly '': "initial";
|
54
|
+
readonly '[data-size="tiny"]': "3.5x 3.5x";
|
52
55
|
readonly '[data-size="small"]': "4x 4x";
|
53
56
|
readonly '[data-size="medium"]': "5x 5x";
|
54
57
|
readonly '[data-size="large"]': "6x 6x";
|
@@ -10,6 +10,9 @@ export interface CubeMenuProps<T> extends BasePropsWithoutChildren, ContainerSty
|
|
10
10
|
selectionIcon?: MenuSelectionType;
|
11
11
|
header?: ReactNode;
|
12
12
|
footer?: ReactNode;
|
13
|
+
menuStyles?: Styles;
|
14
|
+
headerStyles?: Styles;
|
15
|
+
footerStyles?: Styles;
|
13
16
|
styles?: Styles;
|
14
17
|
itemStyles?: Styles;
|
15
18
|
sectionStyles?: Styles;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { Key, Node } from '@react-types/shared';
|
2
2
|
import { TreeState } from 'react-stately';
|
3
3
|
import { Styles } from '../../../tasty';
|
4
|
-
export type MenuSelectionType = 'checkbox' | 'radio';
|
4
|
+
export type MenuSelectionType = 'checkbox' | 'radio' | 'checkmark';
|
5
5
|
export interface MenuItemProps<T> {
|
6
6
|
item: Node<T>;
|
7
7
|
state: TreeState<T>;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ReactElement } from 'react';
|
2
|
-
import { AriaMenuTriggerProps,
|
2
|
+
import { AriaMenuTriggerProps, PositionProps } from 'react-aria';
|
3
3
|
import { MenuTriggerState } from 'react-stately';
|
4
4
|
export type { AriaMenuTriggerProps };
|
5
5
|
export type CubeMenuTriggerProps = AriaMenuTriggerProps & PositionProps & {
|
@@ -8,9 +8,8 @@ export type CubeMenuTriggerProps = AriaMenuTriggerProps & PositionProps & {
|
|
8
8
|
ReactElement | ((state: MenuTriggerState) => ReactElement),
|
9
9
|
ReactElement
|
10
10
|
];
|
11
|
-
direction?: Placement;
|
12
|
-
align?: 'start' | 'end';
|
13
11
|
closeOnSelect?: boolean;
|
12
|
+
isDummy?: boolean;
|
14
13
|
};
|
15
14
|
/**
|
16
15
|
* The MenuTrigger serves as a wrapper around a Menu and its associated trigger,
|
@@ -1,3 +1,4 @@
|
|
1
|
+
export declare const StyledMenuWrapper: import("react").ComponentType<Omit<import("../../../tasty").Props, "variant"> & import("../../../tasty/tasty").WithVariant<import("../../../tasty/tasty").VariantMap>>;
|
1
2
|
export declare const StyledMenu: import("react").ComponentType<Omit<import("../../../tasty").Props, "variant"> & import("../../../tasty/tasty").WithVariant<import("../../../tasty/tasty").VariantMap>>;
|
2
3
|
export declare const StyledDivider: import("react").ComponentType<Omit<import("../../../tasty").Props, "variant"> & import("../../../tasty/tasty").WithVariant<import("../../../tasty/tasty").VariantMap>>;
|
3
4
|
export declare const StyledHeader: import("react").ComponentType<{
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { ComponentProps, ComponentType, ReactElement, RefObject } from 'react';
|
2
|
+
import { MenuTrigger } from './Menu';
|
3
|
+
export interface UseAnchoredMenuReturn<P, T> {
|
4
|
+
/** Ref to attach to the anchor element for positioning the menu. */
|
5
|
+
anchorRef: RefObject<HTMLElement>;
|
6
|
+
/**
|
7
|
+
* Programmatically opens the menu with the provided props.
|
8
|
+
* @param props - Props to pass to the menu component
|
9
|
+
* @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)
|
10
|
+
*/
|
11
|
+
open(props: P, triggerProps?: T): void;
|
12
|
+
/**
|
13
|
+
* Updates the props of the currently open menu.
|
14
|
+
* Props are merged if defaults are provided.
|
15
|
+
*/
|
16
|
+
update(props: P, triggerProps?: T): void;
|
17
|
+
/** Closes the menu programmatically. */
|
18
|
+
close(): void;
|
19
|
+
/** Current open/closed state of the menu. */
|
20
|
+
isOpen: boolean;
|
21
|
+
/**
|
22
|
+
* JSX element that must be rendered in your component tree.
|
23
|
+
* Contains the MenuTrigger and positioning logic.
|
24
|
+
*/
|
25
|
+
get rendered(): ReactElement | null;
|
26
|
+
}
|
27
|
+
/**
|
28
|
+
* Generic hook to manage an anchored menu component.
|
29
|
+
*
|
30
|
+
* @param Component - A React component that represents the menu content (Menu or CommandMenu).
|
31
|
+
* @param defaultTriggerProps - Default props to pass to the MenuTrigger.
|
32
|
+
* @returns An object with `anchorRef` to position the menu, `open` function to open the menu with provided props, `close` function to close the menu, and `rendered` JSX element to include in your component tree.
|
33
|
+
*/
|
34
|
+
export declare function useAnchoredMenu<P, T = ComponentProps<typeof MenuTrigger>>(Component: ComponentType<P>, defaultTriggerProps?: Omit<ComponentProps<typeof MenuTrigger>, 'children' | 'isOpen' | 'onOpenChange' | 'targetRef'>): UseAnchoredMenuReturn<P, T>;
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { ComponentProps, ComponentType, MouseEvent, PointerEvent, ReactElement, RefObject } from 'react';
|
2
|
+
import { MenuTrigger } from './Menu';
|
3
|
+
type NativeMouseEvent = globalThis.MouseEvent;
|
4
|
+
type NativePointerEvent = globalThis.PointerEvent;
|
5
|
+
export interface UseContextMenuReturn<E extends HTMLElement = HTMLElement, P extends object = {}, T = ComponentProps<typeof MenuTrigger>> {
|
6
|
+
/** Container element that receives context menu events. Attach this ref to your target element. */
|
7
|
+
targetRef: RefObject<E>;
|
8
|
+
/**
|
9
|
+
* Programmatically opens the menu at the specified coordinates or element center.
|
10
|
+
* Runtime props are merged with defaultMenuProps (runtime props take precedence).
|
11
|
+
*
|
12
|
+
* @param props - Props to pass to the menu component (optional, defaults to defaultMenuProps)
|
13
|
+
* @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)
|
14
|
+
* @param event - The pointer/mouse event containing coordinates for positioning (optional, centers on element if not provided)
|
15
|
+
*/
|
16
|
+
open(props?: P, triggerProps?: T, event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent): void;
|
17
|
+
/**
|
18
|
+
* Updates the props of the currently open menu without repositioning.
|
19
|
+
* Props are merged with defaultMenuProps.
|
20
|
+
*/
|
21
|
+
update(props: P, triggerProps?: T): void;
|
22
|
+
/** Closes the menu programmatically. */
|
23
|
+
close(): void;
|
24
|
+
/** Current open/closed state of the menu. */
|
25
|
+
isOpen: boolean;
|
26
|
+
/**
|
27
|
+
* JSX element that must be rendered in your component tree.
|
28
|
+
* Contains the MenuTrigger and positioning logic.
|
29
|
+
* IMPORTANT: Must be placed directly inside the target container (the element with targetRef).
|
30
|
+
*/
|
31
|
+
get rendered(): ReactElement | null;
|
32
|
+
}
|
33
|
+
/**
|
34
|
+
* Generic hook to manage a context menu component that opens at pointer coordinates.
|
35
|
+
*
|
36
|
+
* @param Component - A React component that represents the menu content (Menu or CommandMenu).
|
37
|
+
* @param defaultTriggerProps - Default props to pass to the MenuTrigger.
|
38
|
+
* @param defaultMenuProps - Default props to pass to the Menu component.
|
39
|
+
* @returns An object with `targetRef` to attach to the container element, `open` function to open the menu at event coordinates, `close` function to close the menu, and `rendered` JSX element to include in your component tree.
|
40
|
+
*/
|
41
|
+
export declare function useContextMenu<E extends HTMLElement = HTMLElement, P extends object = {}, T = ComponentProps<typeof MenuTrigger>>(Component: ComponentType<P>, defaultTriggerProps?: Omit<ComponentProps<typeof MenuTrigger>, 'children' | 'isOpen' | 'onOpenChange' | 'targetRef'>, defaultMenuProps?: P): UseContextMenuReturn<E, P, T>;
|
42
|
+
export {};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
2
|
-
export interface CubeCardProps extends
|
1
|
+
import { AllBaseProps, ContainerStyleProps } from '../../../tasty';
|
2
|
+
export interface CubeCardProps extends Omit<AllBaseProps, 'title' | 'value' | 'placeholder' | 'text'>, ContainerStyleProps {
|
3
3
|
}
|
4
4
|
export declare const Card: import("react").ForwardRefExoticComponent<CubeCardProps & import("react").RefAttributes<unknown>>;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { ReactNode } from 'react';
|
2
2
|
import { PositionStyleProps, Styles } from '../../../tasty';
|
3
3
|
import { CubeCardProps } from '../Card/Card';
|
4
|
-
export interface CubeCopyPasteBlockProps extends CubeCardProps, PositionStyleProps {
|
4
|
+
export interface CubeCopyPasteBlockProps extends Omit<CubeCardProps, 'onPaste' | 'onCopy'>, PositionStyleProps {
|
5
5
|
padding?: Styles['padding'];
|
6
6
|
/** The code snippet */
|
7
7
|
value?: string;
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import { Key } from '@react-types/shared';
|
2
|
+
import { ForwardedRef, ReactElement, ReactNode, RefObject } from 'react';
|
3
|
+
import { Section as BaseSection, Item } from 'react-stately';
|
4
|
+
import { Styles } from '../../../tasty';
|
5
|
+
import { CubeListBoxProps } from '../ListBox/ListBox';
|
6
|
+
import type { FieldBaseProps } from '../../../shared';
|
7
|
+
type FilterFn = (textValue: string, inputValue: string) => boolean;
|
8
|
+
export interface CubeFilterListBoxProps<T> extends Omit<CubeListBoxProps<T>, 'children'>, FieldBaseProps {
|
9
|
+
/** Placeholder text for the search input */
|
10
|
+
searchPlaceholder?: string;
|
11
|
+
/** Whether the search input should have autofocus */
|
12
|
+
autoFocus?: boolean;
|
13
|
+
/** The filter function used to determine if an option should be included in the filtered list */
|
14
|
+
filter?: FilterFn;
|
15
|
+
/** Custom label to display when no results are found after filtering */
|
16
|
+
emptyLabel?: ReactNode;
|
17
|
+
/** Custom styles for the search input */
|
18
|
+
searchInputStyles?: Styles;
|
19
|
+
/** Whether the FilterListBox as a whole is loading (generic loading indicator) */
|
20
|
+
isLoading?: boolean;
|
21
|
+
/** Ref for the search input */
|
22
|
+
searchInputRef?: RefObject<HTMLInputElement>;
|
23
|
+
/** Children (ListBox.Item and ListBox.Section elements) */
|
24
|
+
children?: ReactNode;
|
25
|
+
/** Allow entering a custom value that is not present in the options */
|
26
|
+
allowsCustomValue?: boolean;
|
27
|
+
/** Mods for the FilterListBox */
|
28
|
+
mods?: Record<string, boolean>;
|
29
|
+
/**
|
30
|
+
* Optional callback fired when the user presses `Escape` while the search input is empty.
|
31
|
+
* Can be used by parent components (e.g. FilterPicker) to close an enclosing Dialog.
|
32
|
+
*/
|
33
|
+
onEscape?: () => void;
|
34
|
+
/**
|
35
|
+
* Whether the options in the FilterListBox are checkable.
|
36
|
+
* This adds a checkbox icon to the left of the option.
|
37
|
+
*/
|
38
|
+
isCheckable?: boolean;
|
39
|
+
/**
|
40
|
+
* Callback fired when an option is clicked but not on the checkbox area.
|
41
|
+
* Used by FilterPicker to close the popover on non-checkbox clicks.
|
42
|
+
*/
|
43
|
+
onOptionClick?: (key: Key) => void;
|
44
|
+
}
|
45
|
+
export declare const FilterListBox: (<T>(props: CubeFilterListBoxProps<T> & {
|
46
|
+
ref?: ForwardedRef<HTMLDivElement>;
|
47
|
+
}) => ReactElement) & {
|
48
|
+
Item: typeof Item;
|
49
|
+
Section: typeof BaseSection;
|
50
|
+
};
|
51
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './FilterListBox';
|