@cube-dev/ui-kit 0.0.0-canary-8ca04ef → 0.0.0-canary-dae9b2f
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/es/_internal/hooks/index.js +10 -10
- package/es/_internal/hooks/use-chained-callback.js +2 -2
- package/es/_internal/hooks/use-debounced-value.js +1 -1
- package/es/_internal/hooks/use-deprecation-warning.js +2 -2
- package/es/_internal/hooks/use-effect-once.js +1 -1
- package/es/_internal/hooks/use-event.js +2 -2
- package/es/_internal/hooks/use-is-first-render.js +1 -1
- package/es/_internal/hooks/use-sync-ref.js +2 -2
- package/es/_internal/hooks/use-timer/index.js +3 -3
- package/es/_internal/hooks/use-timer/timer.js +1 -1
- package/es/_internal/hooks/use-timer/use-timer.js +3 -3
- package/es/_internal/hooks/use-update-effect.js +2 -2
- package/es/_internal/hooks/use-warn.js +3 -3
- package/es/_internal/index.js +2 -2
- package/es/components/Block.js +2 -2
- package/es/components/CollectionItem.js +3 -3
- package/es/components/GlobalStyles.js +65 -56
- package/es/components/GridProvider.js +4 -4
- package/es/components/HiddenInput.js +2 -2
- package/es/components/OpenTrasition.js +1 -1
- package/es/components/Root.js +64 -22
- package/es/components/actions/Action/Action.js +3 -3
- package/es/components/actions/Button/Button.js +12 -12
- package/es/components/actions/Button/index.js +2 -2
- package/es/components/actions/ButtonGroup/ButtonGroup.js +4 -4
- package/es/components/actions/CommandMenu/CommandMenu.js +11 -11
- package/es/components/actions/CommandMenu/index.js +2 -2
- package/es/components/actions/CommandMenu/styled.js +2 -2
- package/es/components/actions/ItemAction/ItemAction.js +9 -9
- package/es/components/actions/ItemAction/index.js +2 -2
- package/es/components/actions/ItemActionContext.js +1 -1
- package/es/components/actions/ItemButton/ItemButton.js +9 -9
- package/es/components/actions/ItemButton/index.js +2 -2
- package/es/components/actions/Link/Link.js +2 -2
- package/es/components/actions/Menu/Menu.js +10 -10
- package/es/components/actions/Menu/MenuItem.js +7 -7
- package/es/components/actions/Menu/MenuSection.js +4 -4
- package/es/components/actions/Menu/MenuTrigger.js +6 -6
- package/es/components/actions/Menu/SubMenuTrigger.js +6 -6
- package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/es/components/actions/Menu/context.js +1 -1
- package/es/components/actions/Menu/index.js +10 -10
- package/es/components/actions/Menu/styled.js +5 -5
- package/es/components/actions/index.js +13 -13
- package/es/components/actions/use-action.js +7 -7
- package/es/components/actions/use-anchored-menu.js +6 -6
- package/es/components/actions/use-context-menu.js +6 -6
- package/es/components/content/ActiveZone/ActiveZone.js +4 -4
- package/es/components/content/Alert/Alert.js +4 -4
- package/es/components/content/Alert/index.js +2 -2
- package/es/components/content/Alert/types.js +1 -1
- package/es/components/content/Alert/use-alert.js +3 -3
- package/es/components/content/Avatar/Avatar.js +2 -2
- package/es/components/content/Badge/Badge.js +4 -4
- package/es/components/content/Card/Card.js +2 -2
- package/es/components/content/Content.js +3 -3
- package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +8 -8
- package/es/components/content/CopyPasteBlock/index.js +2 -2
- package/es/components/content/CopySnippet/CopySnippet.js +9 -9
- package/es/components/content/CopySnippet/index.js +2 -2
- package/es/components/content/Disclosure/Disclosure.js +6 -6
- package/es/components/content/Disclosure/index.js +2 -2
- package/es/components/content/Divider.js +3 -3
- package/es/components/content/Footer.js +3 -3
- package/es/components/content/Header.js +3 -3
- package/es/components/content/HotKeys/HotKeys.js +5 -5
- package/es/components/content/HotKeys/index.js +2 -2
- package/es/components/content/Item/Item.js +24 -20
- package/es/components/content/Item/index.js +3 -3
- package/es/components/content/ItemBadge/ItemBadge.js +8 -8
- package/es/components/content/ItemBadge/index.js +2 -2
- package/es/components/content/Layout/GridLayout.js +13 -13
- package/es/components/content/Layout/Layout.js +6 -7
- package/es/components/content/Layout/LayoutBlock.js +3 -4
- package/es/components/content/Layout/LayoutCenter.js +3 -3
- package/es/components/content/Layout/LayoutContainer.js +4 -4
- package/es/components/content/Layout/LayoutContent.js +5 -6
- package/es/components/content/Layout/LayoutContext.js +1 -1
- package/es/components/content/Layout/LayoutFlex.js +3 -4
- package/es/components/content/Layout/LayoutFooter.js +3 -4
- package/es/components/content/Layout/LayoutGrid.js +3 -4
- package/es/components/content/Layout/LayoutHeader.js +7 -8
- package/es/components/content/Layout/LayoutPane.js +7 -8
- package/es/components/content/Layout/LayoutPanel.js +9 -10
- package/es/components/content/Layout/LayoutPanelHeader.js +7 -7
- package/es/components/content/Layout/LayoutToolbar.js +3 -4
- package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/es/components/content/Layout/index.js +16 -16
- package/es/components/content/Layout/utils.js +1 -1
- package/es/components/content/List/SectionHeading.js +3 -3
- package/es/components/content/List/index.js +2 -2
- package/es/components/content/Paragraph.js +3 -3
- package/es/components/content/Placeholder/Placeholder.js +2 -2
- package/es/components/content/PrismCode/PrismCode.js +7 -7
- package/es/components/content/PrismCode/prismSetup.js +1 -1
- package/es/components/content/PrismDiffCode/PrismDiffCode.js +2 -2
- package/es/components/content/Result/Result.js +4 -4
- package/es/components/content/Skeleton/Skeleton.js +5 -5
- package/es/components/content/Tag/Tag.js +4 -4
- package/es/components/content/Text.js +3 -3
- package/es/components/content/TextItem/TextItem.js +5 -5
- package/es/components/content/TextItem/index.js +2 -2
- package/es/components/content/Title.js +4 -4
- package/es/components/content/highlightText.js +2 -2
- package/es/components/content/use-auto-tooltip.js +2 -2
- package/es/components/fields/Checkbox/Checkbox.js +12 -12
- package/es/components/fields/Checkbox/CheckboxGroup.js +7 -7
- package/es/components/fields/Checkbox/context.js +1 -1
- package/es/components/fields/Checkbox/index.js +3 -3
- package/es/components/fields/ComboBox/ComboBox.js +18 -18
- package/es/components/fields/ComboBox/index.js +2 -2
- package/es/components/fields/DatePicker/DateInput.js +10 -10
- package/es/components/fields/DatePicker/DateInputBase.js +6 -6
- package/es/components/fields/DatePicker/DatePicker.js +14 -14
- package/es/components/fields/DatePicker/DatePickerButton.js +4 -4
- package/es/components/fields/DatePicker/DatePickerElement.js +3 -3
- package/es/components/fields/DatePicker/DatePickerInput.js +5 -5
- package/es/components/fields/DatePicker/DatePickerSegment.js +2 -2
- package/es/components/fields/DatePicker/DateRangePicker.js +15 -15
- package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +15 -15
- package/es/components/fields/DatePicker/TimeInput.js +9 -9
- package/es/components/fields/DatePicker/index.js +8 -8
- 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 +6 -6
- package/es/components/fields/FilterListBox/FilterListBox.js +10 -10
- package/es/components/fields/FilterListBox/index.js +2 -2
- package/es/components/fields/FilterPicker/FilterPicker.js +14 -14
- package/es/components/fields/FilterPicker/index.js +2 -2
- package/es/components/fields/Input/Input.js +6 -6
- package/es/components/fields/Input/index.js +2 -2
- package/es/components/fields/ListBox/ListBox.js +14 -14
- package/es/components/fields/ListBox/index.js +2 -2
- package/es/components/fields/NumberInput/NumberInput.js +8 -8
- package/es/components/fields/NumberInput/StepButton.js +4 -4
- package/es/components/fields/PasswordInput/PasswordInput.js +8 -8
- package/es/components/fields/Picker/Picker.js +13 -13
- package/es/components/fields/Picker/index.js +2 -2
- package/es/components/fields/RadioGroup/Radio.js +10 -10
- package/es/components/fields/RadioGroup/RadioGroup.js +7 -7
- package/es/components/fields/RadioGroup/context.js +1 -1
- package/es/components/fields/RadioGroup/index.js +3 -3
- package/es/components/fields/SearchInput/SearchInput.js +8 -8
- package/es/components/fields/SearchInput/index.js +2 -2
- package/es/components/fields/Select/Select.js +20 -20
- package/es/components/fields/Select/index.js +2 -2
- package/es/components/fields/Slider/Gradation.js +2 -2
- package/es/components/fields/Slider/Header.js +1 -1
- package/es/components/fields/Slider/RangeSlider.js +5 -5
- package/es/components/fields/Slider/Slider.js +7 -7
- package/es/components/fields/Slider/SliderBase.js +6 -6
- package/es/components/fields/Slider/SliderInput.js +2 -2
- package/es/components/fields/Slider/SliderThumb.js +3 -3
- package/es/components/fields/Slider/SliderTrack.js +2 -2
- package/es/components/fields/Slider/elements.js +2 -2
- package/es/components/fields/Slider/index.js +4 -4
- package/es/components/fields/Slider/types.js +1 -1
- package/es/components/fields/Switch/Switch.js +11 -11
- package/es/components/fields/Switch/index.js +2 -2
- package/es/components/fields/TextArea/TextArea.js +7 -7
- package/es/components/fields/TextArea/index.js +2 -2
- package/es/components/fields/TextInput/TextInput.js +6 -6
- package/es/components/fields/TextInput/TextInputBase.js +9 -9
- package/es/components/fields/TextInput/index.js +3 -3
- package/es/components/fields/TextInputMapper/TextInputMapper.js +14 -14
- package/es/components/fields/TextInputMapper/index.js +2 -2
- package/es/components/fields/index.js +20 -20
- package/es/components/form/FieldWrapper/FieldWrapper.js +9 -9
- package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
- package/es/components/form/FieldWrapper/index.js +4 -4
- package/es/components/form/FieldWrapper/types.js +1 -1
- package/es/components/form/Form/Field.js +6 -6
- package/es/components/form/Form/Form.js +6 -6
- package/es/components/form/Form/ResetButton/ResetButton.js +6 -6
- package/es/components/form/Form/ResetButton/index.js +2 -2
- package/es/components/form/Form/SubmitButton/SubmitButton.js +4 -4
- package/es/components/form/Form/SubmitButton/index.js +2 -2
- package/es/components/form/Form/SubmitError.js +3 -3
- package/es/components/form/Form/index.js +11 -11
- package/es/components/form/Form/types.js +1 -1
- package/es/components/form/Form/use-field/index.js +4 -4
- package/es/components/form/Form/use-field/types.js +1 -1
- package/es/components/form/Form/use-field/use-field-props.js +6 -6
- package/es/components/form/Form/use-field/use-field.js +4 -4
- package/es/components/form/Form/use-form.js +3 -3
- package/es/components/form/Form/validation.js +1 -1
- package/es/components/form/Label.js +3 -3
- package/es/components/form/index.js +5 -5
- package/es/components/form/wrapper.js +3 -3
- package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/es/components/helpers/DisplayTransition/index.js +2 -2
- package/es/components/helpers/IconSwitch/IconSwitch.js +3 -3
- package/es/components/helpers/index.js +3 -3
- package/es/components/layout/Flex.js +2 -2
- package/es/components/layout/Flow.js +2 -2
- package/es/components/layout/Grid.js +2 -2
- package/es/components/layout/Panel.js +2 -2
- package/es/components/layout/Prefix.js +3 -3
- package/es/components/layout/ResizablePanel.js +5 -5
- package/es/components/layout/Space.js +2 -2
- package/es/components/layout/Suffix.js +3 -3
- package/es/components/navigation/LegacyTabs/LegacyTabs.js +275 -0
- package/es/components/organisms/FileTabs/FileTabs.js +8 -8
- package/es/components/organisms/StatsCard/StatsCard.js +4 -4
- package/es/components/other/Base64Upload/Base64Upload.js +103 -0
- package/es/components/other/Calendar/Calendar.js +8 -8
- package/es/components/other/Calendar/CalendarCell.js +2 -2
- package/es/components/other/Calendar/CalendarGrid.js +3 -3
- package/es/components/other/Calendar/RangeCalendar.js +8 -8
- package/es/components/other/CloudLogo/CloudLogo.js +3 -3
- package/es/components/overlays/AlertDialog/AlertDialog.js +10 -10
- package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +2 -2
- package/es/components/overlays/AlertDialog/AlertDialogZone.js +4 -4
- package/es/components/overlays/AlertDialog/index.js +4 -4
- package/es/components/overlays/AlertDialog/types.js +1 -1
- package/es/components/overlays/Dialog/Dialog.js +7 -7
- package/es/components/overlays/Dialog/DialogContainer.js +3 -3
- package/es/components/overlays/Dialog/DialogForm.js +8 -8
- package/es/components/overlays/Dialog/DialogTrigger.js +4 -4
- package/es/components/overlays/Dialog/context.js +1 -1
- package/es/components/overlays/Dialog/index.js +6 -6
- package/es/components/overlays/Dialog/use-dialog-container.js +4 -4
- package/es/components/overlays/Modal/Modal.js +5 -5
- package/es/components/overlays/Modal/OpenTransition.js +1 -1
- package/es/components/overlays/Modal/Overlay.js +3 -3
- package/es/components/overlays/Modal/Popover.js +4 -4
- package/es/components/overlays/Modal/Tray.js +6 -6
- package/es/components/overlays/Modal/Underlay.js +2 -2
- package/es/components/overlays/Modal/index.js +7 -7
- package/es/components/overlays/Modal/types.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +5 -5
- package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +7 -7
- package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +34 -36
- package/es/components/overlays/NewNotifications/Bar/index.js +2 -2
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +8 -8
- package/es/components/overlays/NewNotifications/Dialog/index.js +2 -2
- package/es/components/overlays/NewNotifications/Notification.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +5 -5
- package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +3 -3
- package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +3 -3
- package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +12 -12
- package/es/components/overlays/NewNotifications/NotificationView/index.js +3 -3
- 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 +5 -5
- package/es/components/overlays/NewNotifications/NotificationsContext/index.js +3 -3
- package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +2 -2
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +5 -5
- package/es/components/overlays/NewNotifications/NotificationsList/index.js +2 -2
- package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/index.js +6 -6
- 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 +2 -2
- package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +3 -3
- package/es/components/overlays/NewNotifications/index.js +7 -7
- package/es/components/overlays/NewNotifications/types.js +1 -1
- package/es/components/overlays/Notification/Notification.js +7 -7
- package/es/components/overlays/OverlayWrapper.js +2 -2
- package/es/components/overlays/Toasts/Toast.js +4 -4
- package/es/components/overlays/Toasts/index.js +3 -3
- package/es/components/overlays/Toasts/types.js +1 -1
- package/es/components/overlays/Toasts/use-toasts-api.js +2 -2
- package/es/components/overlays/Tooltip/Tooltip.js +4 -4
- package/es/components/overlays/Tooltip/TooltipProvider.js +3 -3
- package/es/components/overlays/Tooltip/TooltipTrigger.js +6 -6
- package/es/components/overlays/Tooltip/context.js +1 -1
- package/es/components/overlays/Tooltip/index.js +4 -4
- package/es/components/portal/Portal.js +2 -2
- package/es/components/portal/PortalProvider.js +1 -1
- package/es/components/portal/index.js +3 -3
- package/es/components/portal/types.js +1 -1
- package/es/components/portal/usePortal.js +2 -2
- package/es/components/shared/InvalidIcon.js +2 -2
- package/es/components/shared/ValidIcon.js +2 -2
- package/es/components/status/LoadingAnimation/LoadingAnimation.js +114 -58
- package/es/components/status/LoadingAnimation/index.js +2 -2
- package/es/components/status/Spin/Cube.js +179 -95
- package/es/components/status/Spin/InternalSpinner.js +5 -5
- package/es/components/status/Spin/Spin.js +4 -4
- package/es/components/status/Spin/SpinsContainer.js +30 -28
- package/es/components/status/Spin/index.js +2 -2
- package/es/components/status/Spin/types.js +1 -1
- package/es/components/status/index.js +3 -3
- package/es/data/item-themes.js +1 -1
- package/es/data/themes.js +1 -1
- package/es/icons/AdjustmentsHorizontalIcon.js +2 -2
- package/es/icons/AdjustmentsIcon.js +2 -2
- package/es/icons/AiIcon.js +2 -2
- package/es/icons/AreaChartIcon.js +2 -2
- package/es/icons/BackwardIcon.js +2 -2
- package/es/icons/BarChartIcon.js +2 -2
- package/es/icons/BellFilledIcon.js +2 -2
- package/es/icons/BellIcon.js +2 -2
- package/es/icons/BooleanIcon.js +2 -2
- package/es/icons/CalendarEditIcon.js +2 -2
- package/es/icons/CalendarIcon.js +2 -2
- package/es/icons/CaretDownIcon.js +2 -2
- package/es/icons/CaretUpIcon.js +2 -2
- package/es/icons/ChartAreaStackedIcon.js +2 -2
- package/es/icons/ChartAreaStackedPercentageIcon.js +2 -2
- package/es/icons/ChartBarGroupedHorizontalIcon.js +2 -2
- package/es/icons/ChartBarGroupedIcon.js +2 -2
- package/es/icons/ChartBarHorizontalIcon.js +2 -2
- package/es/icons/ChartBarLineIcon.js +2 -2
- package/es/icons/ChartBarStackedHorizontalIcon.js +2 -2
- package/es/icons/ChartBarStackedIcon.js +2 -2
- package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +2 -2
- package/es/icons/ChartBarStackedPercentageIcon.js +2 -2
- package/es/icons/ChartBoxPlot2Icon.js +2 -2
- package/es/icons/ChartBoxPlotIcon.js +2 -2
- package/es/icons/ChartBubbleIcon.js +2 -2
- package/es/icons/ChartDonut2Icon.js +2 -2
- package/es/icons/ChartFunnelIcon.js +2 -2
- package/es/icons/ChartHeatmapIcon.js +2 -2
- package/es/icons/ChartKPIIcon.js +2 -2
- package/es/icons/ChartPie2Icon.js +2 -2
- package/es/icons/ChartScatterIcon.js +2 -2
- package/es/icons/CheckCircleFilledIcon.js +2 -2
- package/es/icons/CheckCircleIcon.js +2 -2
- package/es/icons/CheckIcon.js +2 -2
- package/es/icons/CircleFilledIcon.js +2 -2
- package/es/icons/ClearIcon.js +2 -2
- package/es/icons/CloseCircleFilledIcon.js +2 -2
- package/es/icons/CloseCircleIcon.js +2 -2
- package/es/icons/CloseIcon.js +2 -2
- package/es/icons/CodeIcon.js +2 -2
- package/es/icons/ColumnTotalIcon.js +2 -2
- package/es/icons/CopyIcon.js +2 -2
- package/es/icons/CountIcon.js +2 -2
- package/es/icons/CubeIcon.js +2 -2
- package/es/icons/CubePauseIcon.js +2 -2
- package/es/icons/CubePlayIcon.js +2 -2
- package/es/icons/CurrencyDollarIcon.js +2 -2
- package/es/icons/DangerIcon.js +2 -2
- package/es/icons/DashboardIcon.js +2 -2
- package/es/icons/DatabaseIcon.js +2 -2
- package/es/icons/DecimalDecreaseIcon.js +2 -2
- package/es/icons/DecimalIncreaseIcon.js +2 -2
- package/es/icons/DirectionIcon.js +3 -3
- package/es/icons/DonutIcon.js +2 -2
- package/es/icons/DownIcon.js +2 -2
- package/es/icons/EditIcon.js +2 -2
- package/es/icons/ExclamationCircleFilledIcon.js +2 -2
- package/es/icons/ExclamationCircleIcon.js +2 -2
- package/es/icons/ExclamationIcon.js +2 -2
- package/es/icons/EyeIcon.js +2 -2
- package/es/icons/EyeInvisibleIcon.js +2 -2
- package/es/icons/FilterIcon.js +2 -2
- package/es/icons/FolderFilledIcon.js +2 -2
- package/es/icons/FolderIcon.js +2 -2
- package/es/icons/FolderOpenFilledIcon.js +2 -2
- package/es/icons/FolderOpenIcon.js +2 -2
- package/es/icons/ForwardIcon.js +2 -2
- package/es/icons/HierarchyIcon.js +2 -2
- package/es/icons/HierarchyOpenIcon.js +2 -2
- package/es/icons/Icon.js +2 -2
- package/es/icons/InfoCircleIcon.js +2 -2
- package/es/icons/InfoIcon.js +2 -2
- package/es/icons/KeyIcon.js +2 -2
- package/es/icons/LeftIcon.js +2 -2
- package/es/icons/LineChartIcon.js +2 -2
- package/es/icons/LoadingIcon.js +2 -2
- package/es/icons/LockFilledIcon.js +2 -2
- package/es/icons/LockIcon.js +2 -2
- package/es/icons/MoreIcon.js +2 -2
- package/es/icons/NotAllowedIcon.js +2 -2
- package/es/icons/Number123Icon.js +2 -2
- package/es/icons/NumberIcon.js +2 -2
- package/es/icons/PauseCircleFilledIcon.js +2 -2
- package/es/icons/PauseCircleIcon.js +2 -2
- package/es/icons/PauseIcon.js +2 -2
- package/es/icons/PercentageIcon.js +2 -2
- package/es/icons/PieChartIcon.js +2 -2
- package/es/icons/PlayCircleIcon.js +2 -2
- package/es/icons/PlayIcon.js +2 -2
- package/es/icons/PlusIcon.js +2 -2
- package/es/icons/ProgressBarIcon.js +2 -2
- package/es/icons/ReloadIcon.js +2 -2
- package/es/icons/ReportIcon.js +2 -2
- package/es/icons/ReturnIcon.js +2 -2
- package/es/icons/RightIcon.js +2 -2
- package/es/icons/RowTotalsIcon.js +2 -2
- package/es/icons/SchemeIcon.js +2 -2
- package/es/icons/SearchIcon.js +2 -2
- package/es/icons/SettingsIcon.js +2 -2
- package/es/icons/ShieldFilledIcon.js +2 -2
- package/es/icons/ShieldIcon.js +2 -2
- package/es/icons/SlashIcon.js +2 -2
- package/es/icons/SparklesIcon.js +2 -2
- package/es/icons/SqlIcon.js +2 -2
- package/es/icons/StatsIcon.js +2 -2
- package/es/icons/StopIcon.js +2 -2
- package/es/icons/StringIcon.js +2 -2
- package/es/icons/SubtotalsIcon.js +2 -2
- package/es/icons/SwitchIcon.js +2 -2
- package/es/icons/TableIcon.js +2 -2
- package/es/icons/ThumbsDownIcon.js +2 -2
- package/es/icons/ThumbsUpIcon.js +2 -2
- package/es/icons/ThunderboltCrossedIcon.js +2 -2
- package/es/icons/ThunderboltFilledIcon.js +2 -2
- package/es/icons/ThunderboltIcon.js +2 -2
- package/es/icons/TimeIcon.js +2 -2
- package/es/icons/TrashIcon.js +2 -2
- package/es/icons/UnlockIcon.js +2 -2
- package/es/icons/UpIcon.js +2 -2
- package/es/icons/UserGroupIcon.js +2 -2
- package/es/icons/UserIcon.js +2 -2
- package/es/icons/UserLockIcon.js +2 -2
- package/es/icons/ViewIcon.js +2 -2
- package/es/icons/WarningFilledIcon.js +2 -2
- package/es/icons/WarningIcon.js +2 -2
- package/es/icons/add-new-icon.js +129 -0
- package/es/icons/index.js +128 -128
- package/es/icons/wrap-icon.js +2 -2
- package/es/index.js +74 -73
- package/es/provider.js +10 -4
- package/es/providers/TrackingProvider.js +1 -1
- package/es/providers/navigation.types.js +1 -1
- package/es/providers/navigationAdapter.default.js +1 -1
- package/es/services/notification.js +2 -2
- package/es/shared/form.js +1 -1
- package/es/shared/index.js +2 -2
- package/es/stories/Form.legacy-stories.js +4 -4
- package/es/stories/FormFieldArgs.js +2 -2
- package/es/stories/SimpleLayout.stories.js +2 -2
- package/es/stories/Tasty.stories.js +2 -2
- package/es/stories/components/ConfirmDeletionDialogForm.js +2 -2
- package/es/stories/components/DialogFormApp.js +3 -3
- package/es/stories/components/StyledButton.js +15 -19
- package/es/stories/lists/baseProps.js +2 -2
- package/es/tasty/debug.js +9 -195
- package/es/tasty/index.js +17 -31
- package/es/tasty/injector/index.js +90 -34
- package/es/tasty/injector/injector.js +299 -81
- package/es/tasty/injector/sheet-manager.js +3 -138
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/parser/classify.js +6 -8
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +5 -18
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +1 -2
- package/es/tasty/providers/BreakpointsProvider.js +16 -0
- package/es/tasty/styles/align.js +1 -1
- package/es/tasty/styles/border.js +2 -2
- package/es/tasty/styles/boxShadow.combinator.js +1 -1
- package/es/tasty/styles/color.js +3 -3
- package/es/tasty/styles/createStyle.js +3 -3
- package/es/tasty/styles/dimension.js +2 -2
- package/es/tasty/styles/display.js +1 -1
- package/es/tasty/styles/fade.js +2 -2
- package/es/tasty/styles/fill.js +21 -11
- 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 +2 -2
- package/es/tasty/styles/groupRadius.js +2 -2
- package/es/tasty/styles/height.js +2 -2
- package/es/tasty/styles/index.js +3 -3
- package/es/tasty/styles/inset.js +2 -2
- package/es/tasty/styles/justify.js +1 -1
- package/es/tasty/styles/list.js +1 -1
- package/es/tasty/styles/margin.js +56 -76
- package/es/tasty/styles/outline.js +2 -2
- package/es/tasty/styles/padding.js +56 -76
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +27 -28
- package/es/tasty/styles/preset.js +2 -2
- package/es/tasty/styles/radius.js +12 -5
- package/es/tasty/styles/reset.js +7 -3
- package/es/tasty/styles/scrollbar.js +2 -2
- package/es/tasty/styles/shadow.js +2 -2
- package/es/tasty/styles/styledScrollbar.js +1 -1
- package/es/tasty/styles/transition.js +3 -10
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +2 -2
- package/es/tasty/tasty.js +122 -81
- 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 +38 -0
- package/es/tasty/utils/isDevEnv.js +1 -1
- package/es/tasty/utils/mergeStyles.js +2 -2
- package/es/tasty/utils/modAttrs.js +3 -3
- package/es/tasty/utils/processTokens.js +2 -88
- package/es/tasty/utils/renderStyles.js +1050 -0
- package/es/tasty/utils/responsive.js +60 -0
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +22 -255
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tokens.js +309 -0
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/index.js +10 -10
- package/es/utils/modules.js +1 -1
- package/es/utils/promise.js +1 -1
- package/es/utils/raf.js +1 -1
- package/es/utils/random.js +1 -1
- package/es/utils/range.js +1 -1
- package/es/utils/react/RenderCache.js +1 -1
- package/es/utils/react/Slots.js +2 -2
- package/es/utils/react/chain.js +1 -1
- package/es/utils/react/forwardRefWithGenerics.js +1 -1
- package/es/utils/react/index.js +17 -17
- 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 +4 -4
- package/es/utils/react/nullableValue.js +1 -1
- package/es/utils/react/resolveIcon.js +1 -1
- package/es/utils/react/sharedStore.js +2 -2
- package/es/utils/react/useCombinedRefs.js +1 -1
- package/es/utils/react/useControlledFocusVisible.js +2 -2
- package/es/utils/react/useEventBus.js +1 -1
- package/es/utils/react/useId.js +2 -2
- package/es/utils/react/useIsDarwin.js +1 -1
- package/es/utils/react/useKeySymbols.js +2 -2
- package/es/utils/react/useLayoutEffect.js +1 -1
- package/es/utils/react/useLocalStorage.js +2 -2
- 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/tree.js +1 -1
- package/es/utils/warnings.js +1 -1
- package/es/version.js +2 -2
- package/package.json +4 -14
- package/types/components/GlobalStyles.d.ts +1 -2
- package/types/components/HiddenInput.d.ts +826 -828
- package/types/components/Root.d.ts +0 -1
- package/types/components/actions/Button/Button.d.ts +1645 -1649
- package/types/components/actions/CommandMenu/styled.d.ts +4130 -4140
- package/types/components/actions/Menu/styled.d.ts +4883 -4893
- package/types/components/actions/use-action.d.ts +1 -1
- package/types/components/content/List/SectionHeading.d.ts +251 -251
- package/types/components/content/Text.d.ts +1487 -1487
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +251 -251
- package/types/components/fields/Select/Select.d.ts +826 -828
- package/types/components/fields/Slider/elements.d.ts +4956 -4968
- package/types/components/navigation/LegacyTabs/LegacyTabs.d.ts +43 -0
- package/types/components/other/Base64Upload/Base64Upload.d.ts +5 -0
- package/types/components/status/Spin/Cube.d.ts +1 -1
- package/types/components/status/Spin/SpinsContainer.d.ts +3 -6
- package/types/icons/add-new-icon.d.ts +2 -0
- package/types/index.d.ts +4 -1
- package/types/provider.d.ts +2 -1
- package/types/stories/components/StyledButton.d.ts +1 -1
- package/types/tasty/debug.d.ts +0 -35
- package/types/tasty/index.d.ts +4 -14
- package/types/tasty/injector/index.d.ts +19 -30
- package/types/tasty/injector/injector.d.ts +13 -19
- package/types/tasty/injector/sheet-manager.d.ts +1 -25
- package/types/tasty/injector/types.d.ts +2 -23
- package/types/tasty/parser/parser.d.ts +0 -4
- package/types/tasty/parser/types.d.ts +0 -1
- package/types/tasty/providers/BreakpointsProvider.d.ts +8 -0
- package/types/tasty/styles/fill.d.ts +1 -11
- package/types/tasty/styles/margin.d.ts +1 -3
- package/types/tasty/styles/padding.d.ts +1 -3
- package/types/tasty/styles/radius.d.ts +10 -2
- package/types/tasty/styles/types.d.ts +3 -24
- package/types/tasty/tasty.d.ts +840 -892
- package/types/tasty/utils/getModCombinations.d.ts +9 -0
- package/types/tasty/utils/renderStyles.d.ts +41 -0
- package/types/tasty/utils/responsive.d.ts +8 -0
- package/types/tasty/utils/styles.d.ts +6 -50
- package/types/tokens.d.ts +221 -0
- package/es/stories/playground/PlaygroundEditor.js +0 -89
- package/es/stories/playground/PlaygroundLayout.js +0 -16
- package/es/stories/playground/PlaygroundOutput.js +0 -92
- package/es/stories/playground/PlaygroundPreview.js +0 -91
- package/es/stories/playground/components/Button.js +0 -45
- package/es/stories/playground/components/Card.js +0 -20
- package/es/stories/playground/components/ScrollProgress.js +0 -17
- package/es/stories/playground/examples.js +0 -158
- package/es/tasty/chunks/cacheKey.js +0 -98
- package/es/tasty/chunks/definitions.js +0 -281
- package/es/tasty/chunks/index.js +0 -12
- package/es/tasty/chunks/renderChunk.js +0 -97
- package/es/tasty/config.js +0 -280
- package/es/tasty/hooks/index.js +0 -12
- package/es/tasty/hooks/useGlobalStyles.js +0 -67
- package/es/tasty/hooks/useRawCSS.js +0 -40
- package/es/tasty/hooks/useStyles.js +0 -206
- package/es/tasty/keyframes/index.js +0 -301
- package/es/tasty/pipeline/conditions.js +0 -426
- package/es/tasty/pipeline/exclusive.js +0 -311
- package/es/tasty/pipeline/index.js +0 -543
- package/es/tasty/pipeline/materialize.js +0 -1260
- package/es/tasty/pipeline/parseStateKey.js +0 -592
- package/es/tasty/pipeline/simplify.js +0 -898
- package/es/tasty/plugins/index.js +0 -26
- package/es/tasty/plugins/okhsl-plugin.js +0 -400
- package/es/tasty/plugins/types.js +0 -10
- package/es/tasty/states/index.js +0 -523
- package/es/tasty/static/index.js +0 -47
- package/es/tasty/static/tastyStatic.js +0 -55
- package/es/tasty/static/types.js +0 -34
- package/es/tasty/utils/typography.js +0 -67
- package/es/tasty/zero/babel.js +0 -453
- package/es/tasty/zero/css-writer.js +0 -94
- package/es/tasty/zero/extractor.js +0 -222
- package/es/tasty/zero/index.js +0 -28
- package/es/tasty/zero/next.js +0 -102
- package/es/tokens/base.js +0 -64
- package/es/tokens/colors.js +0 -68
- package/es/tokens/index.js +0 -63
- package/es/tokens/layout.js +0 -26
- package/es/tokens/shadows.js +0 -27
- package/es/tokens/sizes.js +0 -42
- package/es/tokens/spacing.js +0 -22
- package/es/tokens/typography.js +0 -237
- package/types/stories/playground/PlaygroundEditor.d.ts +0 -6
- package/types/stories/playground/PlaygroundLayout.d.ts +0 -8
- package/types/stories/playground/PlaygroundOutput.d.ts +0 -5
- package/types/stories/playground/PlaygroundPreview.d.ts +0 -6
- package/types/stories/playground/components/Button.d.ts +0 -11
- package/types/stories/playground/components/Card.d.ts +0 -7
- package/types/stories/playground/components/ScrollProgress.d.ts +0 -5
- package/types/stories/playground/examples.d.ts +0 -7
- package/types/tasty/chunks/cacheKey.d.ts +0 -26
- package/types/tasty/chunks/definitions.d.ts +0 -75
- package/types/tasty/chunks/index.d.ts +0 -4
- package/types/tasty/chunks/renderChunk.d.ts +0 -25
- package/types/tasty/config.d.ts +0 -171
- package/types/tasty/hooks/index.d.ts +0 -4
- package/types/tasty/hooks/useGlobalStyles.d.ts +0 -22
- package/types/tasty/hooks/useRawCSS.d.ts +0 -50
- package/types/tasty/hooks/useStyles.d.ts +0 -35
- package/types/tasty/keyframes/index.d.ts +0 -49
- package/types/tasty/pipeline/conditions.d.ts +0 -243
- package/types/tasty/pipeline/exclusive.d.ts +0 -103
- package/types/tasty/pipeline/index.d.ts +0 -67
- package/types/tasty/pipeline/materialize.d.ts +0 -162
- package/types/tasty/pipeline/parseStateKey.d.ts +0 -20
- package/types/tasty/pipeline/simplify.d.ts +0 -28
- package/types/tasty/plugins/index.d.ts +0 -17
- package/types/tasty/plugins/okhsl-plugin.d.ts +0 -45
- package/types/tasty/plugins/types.d.ts +0 -34
- package/types/tasty/states/index.d.ts +0 -101
- package/types/tasty/static/index.d.ts +0 -39
- package/types/tasty/static/tastyStatic.d.ts +0 -41
- package/types/tasty/static/types.d.ts +0 -44
- package/types/tasty/utils/typography.d.ts +0 -32
- package/types/tasty/zero/babel.d.ts +0 -63
- package/types/tasty/zero/css-writer.d.ts +0 -41
- package/types/tasty/zero/extractor.d.ts +0 -40
- package/types/tasty/zero/index.d.ts +0 -18
- package/types/tasty/zero/next.d.ts +0 -57
- package/types/tokens/base.d.ts +0 -8
- package/types/tokens/colors.d.ts +0 -6
- package/types/tokens/index.d.ts +0 -41
- package/types/tokens/layout.d.ts +0 -7
- package/types/tokens/shadows.d.ts +0 -12
- package/types/tokens/sizes.d.ts +0 -25
- package/types/tokens/spacing.d.ts +0 -8
- package/types/tokens/typography.d.ts +0 -30
package/es/tasty/tasty.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.0.0-canary-
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-dae9b2f
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { createElement, forwardRef, useMemo, } from 'react';
|
|
8
|
+
import { createElement, forwardRef, useContext, useInsertionEffect, useMemo, useRef, } from 'react';
|
|
9
9
|
import { isValidElementType } from 'react-is';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
10
|
+
import { allocateClassName, inject, injectGlobal } from './injector';
|
|
11
|
+
import { BreakpointsContext } from './providers/BreakpointsProvider';
|
|
12
|
+
import { BASE_STYLES } from './styles/list';
|
|
13
|
+
import { cacheWrapper } from './utils/cache-wrapper';
|
|
14
|
+
import { getDisplayName } from './utils/getDisplayName';
|
|
15
|
+
import { mergeStyles } from './utils/mergeStyles';
|
|
16
|
+
import { modAttrs } from './utils/modAttrs';
|
|
17
|
+
import { processTokens, stringifyTokens } from './utils/processTokens';
|
|
18
|
+
import { renderStyles } from './utils/renderStyles';
|
|
19
|
+
import { stringifyStyles } from './utils/styles';
|
|
16
20
|
/**
|
|
17
21
|
* Mapping of is* properties to their corresponding HTML attributes
|
|
18
22
|
*/
|
|
@@ -43,68 +47,51 @@ function handleIsProperties(props) {
|
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
/**
|
|
46
|
-
*
|
|
47
|
-
* Sub-elements are lightweight components with data-element attribute for CSS targeting.
|
|
50
|
+
* Simple hash function for internal cache keys
|
|
48
51
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
: definition;
|
|
54
|
-
const tag = config.as ?? 'div';
|
|
55
|
-
const defaultQa = config.qa;
|
|
56
|
-
const defaultQaVal = config.qaVal;
|
|
57
|
-
const SubElement = forwardRef((props, ref) => {
|
|
58
|
-
const { qa, qaVal, mods, tokens, isDisabled, isHidden, isChecked, className, style, ...htmlProps } = props;
|
|
59
|
-
// Build mod attributes
|
|
60
|
-
let modProps;
|
|
61
|
-
if (mods) {
|
|
62
|
-
modProps = modAttrs(mods);
|
|
63
|
-
}
|
|
64
|
-
// Process tokens into inline style properties
|
|
65
|
-
const tokenStyle = tokens
|
|
66
|
-
? processTokens(tokens)
|
|
67
|
-
: undefined;
|
|
68
|
-
// Merge token styles with explicit style prop (style has priority)
|
|
69
|
-
let mergedStyle;
|
|
70
|
-
if (tokenStyle || style) {
|
|
71
|
-
mergedStyle =
|
|
72
|
-
tokenStyle && style
|
|
73
|
-
? { ...tokenStyle, ...style }
|
|
74
|
-
: (tokenStyle ?? style);
|
|
75
|
-
}
|
|
76
|
-
const elementProps = {
|
|
77
|
-
'data-element': elementName,
|
|
78
|
-
'data-qa': qa ?? defaultQa,
|
|
79
|
-
'data-qaval': qaVal ?? defaultQaVal,
|
|
80
|
-
...(modProps || {}),
|
|
81
|
-
...htmlProps,
|
|
82
|
-
className,
|
|
83
|
-
style: mergedStyle,
|
|
84
|
-
isDisabled,
|
|
85
|
-
isHidden,
|
|
86
|
-
isChecked,
|
|
87
|
-
ref,
|
|
88
|
-
};
|
|
89
|
-
// Handle is* properties (isDisabled -> disabled + data-disabled, etc.)
|
|
90
|
-
handleIsProperties(elementProps);
|
|
91
|
-
// Clean up undefined data attributes
|
|
92
|
-
if (elementProps['data-qa'] === undefined)
|
|
93
|
-
delete elementProps['data-qa'];
|
|
94
|
-
if (elementProps['data-qaval'] === undefined)
|
|
95
|
-
delete elementProps['data-qaval'];
|
|
96
|
-
return createElement(tag, elementProps);
|
|
97
|
-
});
|
|
98
|
-
SubElement.displayName = `SubElement(${elementName})`;
|
|
99
|
-
return SubElement;
|
|
52
|
+
// Generate unique cache key for style deduplication
|
|
53
|
+
function generateStyleCacheKey(styleKey, contextKey) {
|
|
54
|
+
// Use null character as separator for better performance and no collision risk
|
|
55
|
+
return contextKey ? `${styleKey}\0${contextKey}` : styleKey;
|
|
100
56
|
}
|
|
101
57
|
// Implementation
|
|
102
58
|
export function tasty(Component, options) {
|
|
59
|
+
if (typeof Component === 'string') {
|
|
60
|
+
return tastyGlobal(Component, options);
|
|
61
|
+
}
|
|
103
62
|
if (isValidElementType(Component)) {
|
|
104
63
|
return tastyWrap(Component, options);
|
|
105
64
|
}
|
|
106
65
|
return tastyElement(Component);
|
|
107
66
|
}
|
|
67
|
+
// Internal specialized implementations
|
|
68
|
+
function tastyGlobal(selector, styles) {
|
|
69
|
+
const _StyleDeclarationComponent = ({ breakpoints, }) => {
|
|
70
|
+
let contextBreakpoints = useContext(BreakpointsContext);
|
|
71
|
+
const breakpointsList = (breakpoints ?? contextBreakpoints) || [980];
|
|
72
|
+
const disposeRef = useRef(null);
|
|
73
|
+
const styleResults = useMemo(() => {
|
|
74
|
+
if (!styles)
|
|
75
|
+
return [];
|
|
76
|
+
return renderStyles(styles, breakpointsList, selector);
|
|
77
|
+
}, [selector, styles, breakpointsList]);
|
|
78
|
+
// Inject styles at insertion phase; cleanup on change/unmount
|
|
79
|
+
useInsertionEffect(() => {
|
|
80
|
+
disposeRef.current?.();
|
|
81
|
+
if (styleResults.length === 0)
|
|
82
|
+
return;
|
|
83
|
+
const { dispose } = injectGlobal(styleResults);
|
|
84
|
+
disposeRef.current = dispose;
|
|
85
|
+
return () => {
|
|
86
|
+
disposeRef.current?.();
|
|
87
|
+
disposeRef.current = null;
|
|
88
|
+
};
|
|
89
|
+
}, [styleResults]);
|
|
90
|
+
return null;
|
|
91
|
+
};
|
|
92
|
+
_StyleDeclarationComponent.displayName = `TastyStyleDeclaration(${selector})`;
|
|
93
|
+
return _StyleDeclarationComponent;
|
|
94
|
+
}
|
|
108
95
|
function tastyWrap(Component, options) {
|
|
109
96
|
let { as: extendTag, element: extendElement, ...defaultProps } = (options ?? {});
|
|
110
97
|
let propsWithStyles = ['styles'].concat(Object.keys(defaultProps).filter((prop) => prop.endsWith('Styles')));
|
|
@@ -138,7 +125,7 @@ function tastyWrap(Component, options) {
|
|
|
138
125
|
return _WrappedComponent;
|
|
139
126
|
}
|
|
140
127
|
function tastyElement(tastyOptions) {
|
|
141
|
-
let { as: originalAs = 'div', element: defaultElement, styles: defaultStyles, styleProps, variants, tokens: defaultTokens,
|
|
128
|
+
let { as: originalAs = 'div', element: defaultElement, styles: defaultStyles, styleProps, variants, tokens: defaultTokens, ...defaultProps } = tastyOptions;
|
|
142
129
|
let _TastyComponent;
|
|
143
130
|
if (variants) {
|
|
144
131
|
const variantEntries = Object.entries(variants);
|
|
@@ -175,10 +162,18 @@ function tastyElement(tastyOptions) {
|
|
|
175
162
|
});
|
|
176
163
|
}
|
|
177
164
|
else {
|
|
165
|
+
/**
|
|
166
|
+
* An additional optimization that allows to avoid rendering styles across various instances
|
|
167
|
+
* of the same element if no custom styles are provided via `styles` prop or direct style props.
|
|
168
|
+
*/
|
|
169
|
+
const renderDefaultStyles = cacheWrapper((breakpoints) => {
|
|
170
|
+
// Return rules without className - injector will add it
|
|
171
|
+
return renderStyles(defaultStyles || {}, breakpoints);
|
|
172
|
+
});
|
|
178
173
|
let { qa: defaultQa, qaVal: defaultQaVal, ...otherDefaultProps } = defaultProps ?? {};
|
|
179
174
|
// eslint-disable-next-line react/display-name
|
|
180
175
|
_TastyComponent = forwardRef((allProps, ref) => {
|
|
181
|
-
let { as, styles, variant: _omitVariant, mods, element, qa, qaVal, className: userClassName, tokens, style, ...otherProps } = allProps;
|
|
176
|
+
let { as, styles, variant: _omitVariant, breakpoints, mods, element, qa, qaVal, className: userClassName, tokens, style, ...otherProps } = allProps;
|
|
182
177
|
// Optimize propStyles extraction - avoid creating empty objects
|
|
183
178
|
let propStyles = null;
|
|
184
179
|
const propsToCheck = styleProps
|
|
@@ -197,17 +192,66 @@ function tastyElement(tastyOptions) {
|
|
|
197
192
|
(styles && Object.keys(styles).length === 0)) {
|
|
198
193
|
styles = undefined;
|
|
199
194
|
}
|
|
200
|
-
|
|
201
|
-
|
|
195
|
+
let contextBreakpoints = useContext(BreakpointsContext);
|
|
196
|
+
breakpoints = breakpoints ?? contextBreakpoints;
|
|
197
|
+
// Memoize breakpoints key once
|
|
198
|
+
const breakpointsKey = useMemo(() => breakpoints?.join(',') || '', [breakpoints?.join(',')]);
|
|
199
|
+
const propStylesKey = stringifyStyles(propStyles);
|
|
200
|
+
// Optimize style computation and cache key generation
|
|
201
|
+
const { allStyles, cacheKey, useDefaultStyles } = useMemo(() => {
|
|
202
202
|
const hasStyles = styles && Object.keys(styles).length > 0;
|
|
203
203
|
const hasPropStyles = propStyles && Object.keys(propStyles).length > 0;
|
|
204
|
-
|
|
205
|
-
|
|
204
|
+
const useDefault = !hasStyles && !hasPropStyles;
|
|
205
|
+
const merged = useDefault
|
|
206
|
+
? defaultStyles
|
|
207
|
+
: mergeStyles(defaultStyles, styles, propStyles);
|
|
208
|
+
// Generate cache key for style deduplication
|
|
209
|
+
const styleKey = stringifyStyles(merged || {});
|
|
210
|
+
const key = generateStyleCacheKey(styleKey, breakpointsKey ? `bp:${breakpointsKey}` : undefined);
|
|
211
|
+
return {
|
|
212
|
+
allStyles: merged,
|
|
213
|
+
cacheKey: key,
|
|
214
|
+
useDefaultStyles: useDefault,
|
|
215
|
+
};
|
|
216
|
+
}, [styles, propStylesKey, breakpointsKey]);
|
|
217
|
+
// Compute rules synchronously; inject via insertion effect
|
|
218
|
+
const directResult = useMemo(() => {
|
|
219
|
+
if (useDefaultStyles) {
|
|
220
|
+
return renderDefaultStyles(breakpoints);
|
|
221
|
+
}
|
|
222
|
+
else if (allStyles && Object.keys(allStyles).length > 0) {
|
|
223
|
+
// Return rules without className - injector will add it
|
|
224
|
+
return renderStyles(allStyles, breakpoints);
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
return { rules: [], className: '' };
|
|
228
|
+
}
|
|
229
|
+
}, [useDefaultStyles, allStyles, breakpointsKey, cacheKey]);
|
|
230
|
+
const disposeRef = useRef(null);
|
|
231
|
+
// Allocate className in render phase (safe for React Strict Mode)
|
|
232
|
+
const allocatedClassName = useMemo(() => {
|
|
233
|
+
if (!directResult.rules.length || !cacheKey)
|
|
234
|
+
return '';
|
|
235
|
+
const { className } = allocateClassName(cacheKey);
|
|
236
|
+
return className;
|
|
237
|
+
}, [directResult.rules.length, cacheKey]);
|
|
238
|
+
// Inject styles in insertion effect (avoids render phase side effects)
|
|
239
|
+
useInsertionEffect(() => {
|
|
240
|
+
// Cleanup previous disposal reference
|
|
241
|
+
disposeRef.current?.();
|
|
242
|
+
if (directResult.rules.length > 0) {
|
|
243
|
+
const injectionResult = inject(directResult.rules, { cacheKey });
|
|
244
|
+
disposeRef.current = injectionResult.dispose;
|
|
206
245
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
246
|
+
else {
|
|
247
|
+
disposeRef.current = null;
|
|
248
|
+
}
|
|
249
|
+
return () => {
|
|
250
|
+
disposeRef.current?.();
|
|
251
|
+
disposeRef.current = null;
|
|
252
|
+
};
|
|
253
|
+
}, [directResult.rules, cacheKey]);
|
|
254
|
+
const injectedClassName = allocatedClassName;
|
|
211
255
|
// Merge default tokens with instance tokens (instance overrides defaults)
|
|
212
256
|
const tokensKey = stringifyTokens(tokens);
|
|
213
257
|
const mergedTokens = useMemo(() => {
|
|
@@ -238,8 +282,11 @@ function tastyElement(tastyOptions) {
|
|
|
238
282
|
const modsObject = mods;
|
|
239
283
|
modProps = modAttrs(modsObject);
|
|
240
284
|
}
|
|
241
|
-
// Merge user className with
|
|
242
|
-
const finalClassName = [
|
|
285
|
+
// Merge user className with injected className
|
|
286
|
+
const finalClassName = [
|
|
287
|
+
userClassName || '',
|
|
288
|
+
injectedClassName,
|
|
289
|
+
]
|
|
243
290
|
.filter(Boolean)
|
|
244
291
|
.join(' ');
|
|
245
292
|
const elementProps = {
|
|
@@ -255,19 +302,13 @@ function tastyElement(tastyOptions) {
|
|
|
255
302
|
};
|
|
256
303
|
// Apply the helper to handle is* properties
|
|
257
304
|
handleIsProperties(elementProps);
|
|
305
|
+
// NEW: Use plain createElement instead of styled Element
|
|
258
306
|
const renderedElement = createElement(as ?? originalAs, elementProps);
|
|
307
|
+
// Note: Empty className is normal for elements with no styles
|
|
259
308
|
return renderedElement;
|
|
260
309
|
});
|
|
261
310
|
}
|
|
262
311
|
_TastyComponent.displayName = `TastyComponent(${defaultProps.qa || originalAs})`;
|
|
263
|
-
// Attach sub-element components if elements are defined
|
|
264
|
-
if (elements) {
|
|
265
|
-
const subElements = Object.entries(elements).reduce((acc, [name, definition]) => {
|
|
266
|
-
acc[name] = createSubElement(name, definition);
|
|
267
|
-
return acc;
|
|
268
|
-
}, {});
|
|
269
|
-
return Object.assign(_TastyComponent, subElements);
|
|
270
|
-
}
|
|
271
312
|
return _TastyComponent;
|
|
272
313
|
}
|
|
273
314
|
export const Element = tasty({});
|
package/es/tasty/types.js
CHANGED
package/es/tasty/utils/colors.js
CHANGED
package/es/tasty/utils/dotize.js
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-dae9b2f
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Efficient iterative combination generator with early pruning
|
|
10
|
+
* Generates combinations one by one and prunes branches early when conflicts are detected
|
|
11
|
+
* @param array - Array of mod strings to generate combinations from
|
|
12
|
+
* @param allowEmpty - Whether to include empty combination
|
|
13
|
+
* @param conflictChecker - Function to detect conflicting combinations (required)
|
|
14
|
+
*/
|
|
15
|
+
export function getModCombinationsIterative(array, allowEmpty, conflictChecker) {
|
|
16
|
+
if (!conflictChecker) {
|
|
17
|
+
throw new Error('getModCombinationsIterative requires a conflictChecker function');
|
|
18
|
+
}
|
|
19
|
+
if (array.length === 0) {
|
|
20
|
+
return allowEmpty ? [[]] : [];
|
|
21
|
+
}
|
|
22
|
+
// Use iterative approach with early pruning for better performance
|
|
23
|
+
const combinations = [[]];
|
|
24
|
+
for (let i = 0; i < array.length; i++) {
|
|
25
|
+
const currentLength = combinations.length;
|
|
26
|
+
for (let j = 0; j < currentLength; j++) {
|
|
27
|
+
const newCombination = [...combinations[j], array[i]];
|
|
28
|
+
// Early conflict detection - only add if no conflicts
|
|
29
|
+
if (!conflictChecker(newCombination)) {
|
|
30
|
+
combinations.push(newCombination);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Filter out empty combination if not allowed, but keep others
|
|
35
|
+
return combinations.filter((combo) => allowEmpty || combo.length > 0);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.0.0-canary-
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-dae9b2f
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { isSelector } from '
|
|
8
|
+
import { isSelector } from './renderStyles';
|
|
9
9
|
export function mergeStyles(...objects) {
|
|
10
10
|
let styles = objects[0] ? { ...objects[0] } : {};
|
|
11
11
|
let pos = 1;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.0.0-canary-
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-dae9b2f
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { cacheWrapper } from './cache-wrapper
|
|
9
|
-
import { camelToKebab } from './case-converter
|
|
8
|
+
import { cacheWrapper } from './cache-wrapper';
|
|
9
|
+
import { camelToKebab } from './case-converter';
|
|
10
10
|
function modAttrs(map) {
|
|
11
11
|
return map
|
|
12
12
|
? Object.keys(map).reduce((attrs, key) => {
|
|
@@ -1,86 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.0.0-canary-
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-dae9b2f
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { getRgbValuesFromRgbaString, hexToRgb, parseStyle } from './styles
|
|
8
|
+
import { getRgbValuesFromRgbaString, hexToRgb, parseStyle } from './styles';
|
|
9
9
|
const devMode = process.env.NODE_ENV !== 'production';
|
|
10
|
-
/**
|
|
11
|
-
* Parse HSL values from an hsl()/hsla() string.
|
|
12
|
-
* Supports both comma-separated (legacy) and space-separated (modern) syntax:
|
|
13
|
-
* hsl(200, 40%, 50%)
|
|
14
|
-
* hsl(200 40% 50%)
|
|
15
|
-
* hsl(200 40% 50% / 0.5)
|
|
16
|
-
*
|
|
17
|
-
* Returns [h, s, l] where h is 0-360, s and l are 0-1, or null if parsing fails.
|
|
18
|
-
*/
|
|
19
|
-
function parseHslValues(str) {
|
|
20
|
-
const match = str.match(/hsla?\(([^)]+)\)/i);
|
|
21
|
-
if (!match)
|
|
22
|
-
return null;
|
|
23
|
-
const inner = match[1].trim();
|
|
24
|
-
// Split by slash first (for alpha), then handle color components
|
|
25
|
-
const [colorPart] = inner.split('/');
|
|
26
|
-
// Split by comma or whitespace
|
|
27
|
-
const parts = colorPart
|
|
28
|
-
.trim()
|
|
29
|
-
.split(/[,\s]+/)
|
|
30
|
-
.filter(Boolean);
|
|
31
|
-
if (parts.length < 3)
|
|
32
|
-
return null;
|
|
33
|
-
// Parse hue (can be unitless degrees, deg, turn, rad, or grad)
|
|
34
|
-
let h = parseFloat(parts[0]);
|
|
35
|
-
const hueStr = parts[0].toLowerCase();
|
|
36
|
-
if (hueStr.endsWith('turn')) {
|
|
37
|
-
h = parseFloat(hueStr) * 360;
|
|
38
|
-
}
|
|
39
|
-
else if (hueStr.endsWith('rad')) {
|
|
40
|
-
h = (parseFloat(hueStr) * 180) / Math.PI;
|
|
41
|
-
}
|
|
42
|
-
else if (hueStr.endsWith('grad')) {
|
|
43
|
-
h = parseFloat(hueStr) * 0.9; // 400 grad = 360 deg
|
|
44
|
-
}
|
|
45
|
-
// deg or unitless are already in degrees
|
|
46
|
-
// Normalize hue to 0-360 range
|
|
47
|
-
h = h % 360;
|
|
48
|
-
if (h < 0)
|
|
49
|
-
h += 360;
|
|
50
|
-
// Parse saturation and lightness (percentages)
|
|
51
|
-
const parsePercent = (val) => {
|
|
52
|
-
const num = parseFloat(val);
|
|
53
|
-
return val.includes('%') ? num / 100 : num;
|
|
54
|
-
};
|
|
55
|
-
const s = Math.max(0, Math.min(1, parsePercent(parts[1])));
|
|
56
|
-
const l = Math.max(0, Math.min(1, parsePercent(parts[2])));
|
|
57
|
-
return [h, s, l];
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Convert HSL to RGB (sRGB).
|
|
61
|
-
* Algorithm from: https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_RGB_alternative
|
|
62
|
-
* Same as used in CSS Color 4 spec.
|
|
63
|
-
*
|
|
64
|
-
* @param h - Hue in degrees (0-360)
|
|
65
|
-
* @param s - Saturation (0-1)
|
|
66
|
-
* @param l - Lightness (0-1)
|
|
67
|
-
* @returns RGB values in 0-255 range (may have fractional values)
|
|
68
|
-
*/
|
|
69
|
-
function hslToRgb(h, s, l) {
|
|
70
|
-
const a = s * Math.min(l, 1 - l);
|
|
71
|
-
const f = (n) => {
|
|
72
|
-
const k = (n + h / 30) % 12;
|
|
73
|
-
return l - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));
|
|
74
|
-
};
|
|
75
|
-
// Convert 0-1 range to 0-255
|
|
76
|
-
return [f(0) * 255, f(8) * 255, f(4) * 255];
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Format a number to a string with up to 1 decimal place, removing trailing zeros.
|
|
80
|
-
*/
|
|
81
|
-
function formatRgbComponent(n) {
|
|
82
|
-
return parseFloat(n.toFixed(1)).toString();
|
|
83
|
-
}
|
|
84
10
|
/**
|
|
85
11
|
* Extract RGB triplet from a color value.
|
|
86
12
|
* Returns the RGB values as a space-separated string (e.g., "255 128 0")
|
|
@@ -99,18 +25,6 @@ function extractRgbValue(colorValue, parsedOutput) {
|
|
|
99
25
|
return rgbValues.join(' ');
|
|
100
26
|
}
|
|
101
27
|
}
|
|
102
|
-
// For hsl(...) values, convert to RGB triplet
|
|
103
|
-
if (parsedOutput.startsWith('hsl(') ||
|
|
104
|
-
parsedOutput.startsWith('hsla(') ||
|
|
105
|
-
colorValue.startsWith('hsl(') ||
|
|
106
|
-
colorValue.startsWith('hsla(')) {
|
|
107
|
-
// Try parsedOutput first, then original colorValue
|
|
108
|
-
const hslValues = parseHslValues(parsedOutput) || parseHslValues(colorValue);
|
|
109
|
-
if (hslValues) {
|
|
110
|
-
const [r, g, b] = hslToRgb(hslValues[0], hslValues[1], hslValues[2]);
|
|
111
|
-
return `${formatRgbComponent(r)} ${formatRgbComponent(g)} ${formatRgbComponent(b)}`;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
28
|
// For hex values, convert to RGB triplet
|
|
115
29
|
if (colorValue.startsWith('#') && /^#[0-9a-fA-F]{3,8}$/.test(colorValue)) {
|
|
116
30
|
const rgbResult = hexToRgb(colorValue);
|