@cube-dev/ui-kit 0.98.9 → 0.99.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- 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 +56 -65
- 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 +22 -64
- 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 +15 -15
- 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 +7 -6
- package/es/components/content/Layout/LayoutBlock.js +4 -3
- 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 +6 -5
- package/es/components/content/Layout/LayoutContext.js +1 -1
- package/es/components/content/Layout/LayoutFlex.js +4 -3
- package/es/components/content/Layout/LayoutFooter.js +4 -3
- package/es/components/content/Layout/LayoutGrid.js +4 -3
- package/es/components/content/Layout/LayoutHeader.js +8 -7
- package/es/components/content/Layout/LayoutPane.js +8 -7
- package/es/components/content/Layout/LayoutPanel.js +10 -9
- package/es/components/content/Layout/LayoutPanelHeader.js +7 -7
- package/es/components/content/Layout/LayoutToolbar.js +4 -3
- 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/organisms/FileTabs/FileTabs.js +8 -8
- package/es/components/organisms/StatsCard/StatsCard.js +4 -4
- 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 +11 -11
- 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 +36 -34
- 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 +20 -4
- 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 +58 -114
- package/es/components/status/LoadingAnimation/index.js +2 -2
- package/es/components/status/Spin/Cube.js +95 -179
- 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 +28 -30
- 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/SemanticQueryIcon.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/index.js +129 -129
- package/es/icons/wrap-icon.js +2 -2
- package/es/index.js +73 -74
- package/es/provider.js +4 -10
- 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 +19 -15
- package/es/stories/lists/baseProps.js +2 -2
- package/es/stories/playground/PlaygroundEditor.js +89 -0
- package/es/stories/playground/PlaygroundLayout.js +16 -0
- package/es/stories/playground/PlaygroundOutput.js +92 -0
- package/es/stories/playground/PlaygroundPreview.js +91 -0
- package/es/stories/playground/components/Button.js +45 -0
- package/es/stories/playground/components/Card.js +20 -0
- package/es/stories/playground/components/ScrollProgress.js +17 -0
- package/es/stories/playground/examples.js +158 -0
- package/es/tasty/chunks/cacheKey.js +98 -0
- package/es/tasty/chunks/definitions.js +281 -0
- package/es/tasty/chunks/index.js +12 -0
- package/es/tasty/chunks/renderChunk.js +97 -0
- package/es/tasty/config.js +280 -0
- package/es/tasty/debug.js +195 -9
- package/es/tasty/hooks/index.js +12 -0
- package/es/tasty/hooks/useGlobalStyles.js +67 -0
- package/es/tasty/hooks/useRawCSS.js +40 -0
- package/es/tasty/hooks/useStyles.js +206 -0
- package/es/tasty/index.js +31 -17
- package/es/tasty/injector/index.js +34 -90
- package/es/tasty/injector/injector.js +81 -299
- package/es/tasty/injector/sheet-manager.js +138 -3
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/keyframes/index.js +301 -0
- package/es/tasty/parser/classify.js +8 -6
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +18 -5
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +2 -1
- package/es/tasty/pipeline/conditions.js +426 -0
- package/es/tasty/pipeline/exclusive.js +311 -0
- package/es/tasty/pipeline/index.js +543 -0
- package/es/tasty/pipeline/materialize.js +1260 -0
- package/es/tasty/pipeline/parseStateKey.js +592 -0
- package/es/tasty/pipeline/simplify.js +898 -0
- package/es/tasty/plugins/index.js +26 -0
- package/es/tasty/plugins/okhsl-plugin.js +400 -0
- package/es/tasty/plugins/types.js +10 -0
- package/es/tasty/states/index.js +523 -0
- package/es/tasty/static/index.js +47 -0
- package/es/tasty/static/tastyStatic.js +55 -0
- package/es/tasty/static/types.js +34 -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 +11 -21
- 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 +76 -56
- package/es/tasty/styles/outline.js +2 -2
- package/es/tasty/styles/padding.js +76 -56
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +28 -27
- package/es/tasty/styles/preset.js +2 -2
- package/es/tasty/styles/radius.js +5 -12
- package/es/tasty/styles/reset.js +3 -7
- 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 +10 -3
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +2 -2
- package/es/tasty/tasty.js +81 -122
- 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/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 +88 -2
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +255 -22
- package/es/tasty/utils/typography.js +67 -0
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tasty/zero/babel.js +453 -0
- package/es/tasty/zero/css-writer.js +94 -0
- package/es/tasty/zero/extractor.js +222 -0
- package/es/tasty/zero/index.js +28 -0
- package/es/tasty/zero/next.js +102 -0
- package/es/tokens/base.js +64 -0
- package/es/tokens/colors.js +68 -0
- package/es/tokens/index.js +63 -0
- package/es/tokens/layout.js +26 -0
- package/es/tokens/shadows.js +27 -0
- package/es/tokens/sizes.js +42 -0
- package/es/tokens/spacing.js +22 -0
- package/es/tokens/typography.js +237 -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 +14 -4
- package/types/components/GlobalStyles.d.ts +2 -1
- package/types/components/HiddenInput.d.ts +828 -826
- package/types/components/Root.d.ts +1 -0
- package/types/components/actions/Button/Button.d.ts +1649 -1645
- package/types/components/actions/CommandMenu/styled.d.ts +4140 -4130
- package/types/components/actions/Menu/styled.d.ts +4893 -4883
- 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 +828 -826
- package/types/components/fields/Slider/elements.d.ts +4968 -4956
- package/types/components/status/Spin/Cube.d.ts +1 -1
- package/types/components/status/Spin/SpinsContainer.d.ts +6 -3
- package/types/index.d.ts +1 -4
- package/types/provider.d.ts +1 -2
- package/types/stories/components/StyledButton.d.ts +1 -1
- package/types/stories/playground/PlaygroundEditor.d.ts +6 -0
- package/types/stories/playground/PlaygroundLayout.d.ts +8 -0
- package/types/stories/playground/PlaygroundOutput.d.ts +5 -0
- package/types/stories/playground/PlaygroundPreview.d.ts +6 -0
- package/types/stories/playground/components/Button.d.ts +11 -0
- package/types/stories/playground/components/Card.d.ts +7 -0
- package/types/stories/playground/components/ScrollProgress.d.ts +5 -0
- package/types/stories/playground/examples.d.ts +7 -0
- package/types/tasty/chunks/cacheKey.d.ts +26 -0
- package/types/tasty/chunks/definitions.d.ts +75 -0
- package/types/tasty/chunks/index.d.ts +4 -0
- package/types/tasty/chunks/renderChunk.d.ts +25 -0
- package/types/tasty/config.d.ts +171 -0
- package/types/tasty/debug.d.ts +35 -0
- package/types/tasty/hooks/index.d.ts +4 -0
- package/types/tasty/hooks/useGlobalStyles.d.ts +22 -0
- package/types/tasty/hooks/useRawCSS.d.ts +50 -0
- package/types/tasty/hooks/useStyles.d.ts +35 -0
- package/types/tasty/index.d.ts +14 -4
- package/types/tasty/injector/index.d.ts +30 -19
- package/types/tasty/injector/injector.d.ts +19 -13
- package/types/tasty/injector/sheet-manager.d.ts +25 -1
- package/types/tasty/injector/types.d.ts +23 -2
- package/types/tasty/keyframes/index.d.ts +49 -0
- package/types/tasty/parser/parser.d.ts +4 -0
- package/types/tasty/parser/types.d.ts +1 -0
- package/types/tasty/pipeline/conditions.d.ts +243 -0
- package/types/tasty/pipeline/exclusive.d.ts +103 -0
- package/types/tasty/pipeline/index.d.ts +67 -0
- package/types/tasty/pipeline/materialize.d.ts +162 -0
- package/types/tasty/pipeline/parseStateKey.d.ts +20 -0
- package/types/tasty/pipeline/simplify.d.ts +28 -0
- package/types/tasty/plugins/index.d.ts +17 -0
- package/types/tasty/plugins/okhsl-plugin.d.ts +45 -0
- package/types/tasty/plugins/types.d.ts +34 -0
- package/types/tasty/states/index.d.ts +101 -0
- package/types/tasty/static/index.d.ts +39 -0
- package/types/tasty/static/tastyStatic.d.ts +41 -0
- package/types/tasty/static/types.d.ts +44 -0
- package/types/tasty/styles/fill.d.ts +11 -1
- package/types/tasty/styles/margin.d.ts +3 -1
- package/types/tasty/styles/padding.d.ts +3 -1
- package/types/tasty/styles/radius.d.ts +2 -10
- package/types/tasty/styles/types.d.ts +24 -3
- package/types/tasty/tasty.d.ts +892 -840
- package/types/tasty/utils/styles.d.ts +50 -6
- package/types/tasty/utils/typography.d.ts +32 -0
- package/types/tasty/zero/babel.d.ts +63 -0
- package/types/tasty/zero/css-writer.d.ts +41 -0
- package/types/tasty/zero/extractor.d.ts +40 -0
- package/types/tasty/zero/index.d.ts +18 -0
- package/types/tasty/zero/next.d.ts +57 -0
- package/types/tokens/base.d.ts +8 -0
- package/types/tokens/colors.d.ts +6 -0
- package/types/tokens/index.d.ts +41 -0
- package/types/tokens/layout.d.ts +7 -0
- package/types/tokens/shadows.d.ts +12 -0
- package/types/tokens/sizes.d.ts +25 -0
- package/types/tokens/spacing.d.ts +8 -0
- package/types/tokens/typography.d.ts +30 -0
- package/es/components/navigation/LegacyTabs/LegacyTabs.js +0 -275
- package/es/components/other/Base64Upload/Base64Upload.js +0 -103
- package/es/icons/add-new-icon.js +0 -129
- package/es/tasty/providers/BreakpointsProvider.js +0 -16
- package/es/tasty/utils/getModCombinations.js +0 -38
- package/es/tasty/utils/renderStyles.js +0 -1050
- package/es/tasty/utils/responsive.js +0 -60
- package/es/tokens.js +0 -309
- package/types/components/navigation/LegacyTabs/LegacyTabs.d.ts +0 -43
- package/types/components/other/Base64Upload/Base64Upload.d.ts +0 -5
- package/types/icons/add-new-icon.d.ts +0 -2
- package/types/tasty/providers/BreakpointsProvider.d.ts +0 -8
- package/types/tasty/utils/getModCombinations.d.ts +0 -9
- package/types/tasty/utils/renderStyles.d.ts +0 -41
- package/types/tasty/utils/responsive.d.ts +0 -8
- package/types/tokens.d.ts +0 -221
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.1
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Keyframes Utilities
|
|
10
|
+
*
|
|
11
|
+
* Optimized utilities for extracting and processing keyframes in styles.
|
|
12
|
+
* Designed for zero overhead when no keyframes are used.
|
|
13
|
+
*/
|
|
14
|
+
import { getGlobalKeyframes, hasGlobalKeyframes } from '../config.js';
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Constants
|
|
17
|
+
// ============================================================================
|
|
18
|
+
const KEYFRAMES_KEY = '@keyframes';
|
|
19
|
+
/**
|
|
20
|
+
* Pattern to extract animation names from CSS animation property values.
|
|
21
|
+
* Animation name is typically the first identifier in the shorthand.
|
|
22
|
+
* Handles: "fadeIn 300ms ease-in", "pulse 1s infinite", etc.
|
|
23
|
+
*
|
|
24
|
+
* CSS animation shorthand order (all optional except name):
|
|
25
|
+
* animation: name | duration | timing | delay | iteration | direction | fill-mode | play-state
|
|
26
|
+
*
|
|
27
|
+
* Animation names must:
|
|
28
|
+
* - Start with a letter, underscore, or hyphen (but not a digit or CSS keyword)
|
|
29
|
+
* - Not be CSS keywords: none, initial, inherit, unset, revert
|
|
30
|
+
*/
|
|
31
|
+
const CSS_KEYWORDS = new Set([
|
|
32
|
+
'none',
|
|
33
|
+
'initial',
|
|
34
|
+
'inherit',
|
|
35
|
+
'unset',
|
|
36
|
+
'revert',
|
|
37
|
+
'auto',
|
|
38
|
+
'normal',
|
|
39
|
+
'running',
|
|
40
|
+
'paused',
|
|
41
|
+
]);
|
|
42
|
+
/**
|
|
43
|
+
* Pattern to match animation name at the start of an animation value.
|
|
44
|
+
* Must start with letter, underscore, or hyphen (not digit).
|
|
45
|
+
*/
|
|
46
|
+
const ANIMATION_NAME_PATTERN = /^([a-zA-Z_-][a-zA-Z0-9_-]*)/;
|
|
47
|
+
// ============================================================================
|
|
48
|
+
// Extraction Functions
|
|
49
|
+
// ============================================================================
|
|
50
|
+
/**
|
|
51
|
+
* Check if styles object has local @keyframes definition.
|
|
52
|
+
* Fast path: single property lookup.
|
|
53
|
+
*/
|
|
54
|
+
export function hasLocalKeyframes(styles) {
|
|
55
|
+
return KEYFRAMES_KEY in styles;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Extract local @keyframes from styles object.
|
|
59
|
+
* Returns null if no local keyframes (fast path).
|
|
60
|
+
*/
|
|
61
|
+
export function extractLocalKeyframes(styles) {
|
|
62
|
+
const keyframes = styles[KEYFRAMES_KEY];
|
|
63
|
+
if (!keyframes || typeof keyframes !== 'object') {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return keyframes;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Merge local and global keyframes.
|
|
70
|
+
* Local keyframes take priority over global.
|
|
71
|
+
* Returns null if no keyframes exist (fast path).
|
|
72
|
+
*/
|
|
73
|
+
export function mergeKeyframes(local, global) {
|
|
74
|
+
if (!local && !global)
|
|
75
|
+
return null;
|
|
76
|
+
if (!local)
|
|
77
|
+
return global;
|
|
78
|
+
if (!global)
|
|
79
|
+
return local;
|
|
80
|
+
// Local overrides global
|
|
81
|
+
return { ...global, ...local };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get merged keyframes for styles (local + global).
|
|
85
|
+
* Returns null if no keyframes defined anywhere (fast path).
|
|
86
|
+
*/
|
|
87
|
+
export function getKeyframesForStyles(styles) {
|
|
88
|
+
const local = extractLocalKeyframes(styles);
|
|
89
|
+
const global = hasGlobalKeyframes() ? getGlobalKeyframes() : null;
|
|
90
|
+
return mergeKeyframes(local, global);
|
|
91
|
+
}
|
|
92
|
+
// ============================================================================
|
|
93
|
+
// Animation Name Extraction
|
|
94
|
+
// ============================================================================
|
|
95
|
+
/**
|
|
96
|
+
* Extract animation name from a single animation value.
|
|
97
|
+
* Returns null if no valid name found.
|
|
98
|
+
*
|
|
99
|
+
* Examples:
|
|
100
|
+
* - "fadeIn 300ms ease-in" → "fadeIn"
|
|
101
|
+
* - "1s pulse infinite" → "pulse" (name can be anywhere)
|
|
102
|
+
* - "none" → null (CSS keyword)
|
|
103
|
+
* - "300ms ease-in" → null (no name, just duration/timing)
|
|
104
|
+
*/
|
|
105
|
+
function extractAnimationNameFromValue(value) {
|
|
106
|
+
const trimmed = value.trim();
|
|
107
|
+
if (!trimmed)
|
|
108
|
+
return null;
|
|
109
|
+
// Split by whitespace and find the first valid animation name
|
|
110
|
+
const parts = trimmed.split(/\s+/);
|
|
111
|
+
for (const part of parts) {
|
|
112
|
+
// Skip CSS keywords
|
|
113
|
+
if (CSS_KEYWORDS.has(part.toLowerCase()))
|
|
114
|
+
continue;
|
|
115
|
+
// Skip time values (e.g., 300ms, 1s, 0.5s)
|
|
116
|
+
if (/^-?[\d.]+m?s$/i.test(part))
|
|
117
|
+
continue;
|
|
118
|
+
// Skip iteration counts (e.g., infinite, 3)
|
|
119
|
+
if (part === 'infinite' || /^\d+$/.test(part))
|
|
120
|
+
continue;
|
|
121
|
+
// Skip direction values
|
|
122
|
+
if (['normal', 'reverse', 'alternate', 'alternate-reverse'].includes(part.toLowerCase()))
|
|
123
|
+
continue;
|
|
124
|
+
// Skip fill-mode values
|
|
125
|
+
if (['forwards', 'backwards', 'both'].includes(part.toLowerCase()))
|
|
126
|
+
continue;
|
|
127
|
+
// Skip play-state values
|
|
128
|
+
if (['running', 'paused'].includes(part.toLowerCase()))
|
|
129
|
+
continue;
|
|
130
|
+
// Skip timing functions (ease, linear, ease-in, etc., or cubic-bezier/steps)
|
|
131
|
+
if (/^(ease|linear|ease-in|ease-out|ease-in-out|step-start|step-end)$/i.test(part))
|
|
132
|
+
continue;
|
|
133
|
+
if (/^(cubic-bezier|steps)\(/i.test(part))
|
|
134
|
+
continue;
|
|
135
|
+
// Check if it looks like a valid animation name
|
|
136
|
+
const match = ANIMATION_NAME_PATTERN.exec(part);
|
|
137
|
+
if (match) {
|
|
138
|
+
return match[1];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Extract all animation names from an animation property value.
|
|
145
|
+
* Handles multiple animations separated by commas.
|
|
146
|
+
*
|
|
147
|
+
* Example: "fadeIn 300ms, slideIn 500ms ease-out" → ["fadeIn", "slideIn"]
|
|
148
|
+
*/
|
|
149
|
+
function extractAnimationNamesFromAnimationValue(value) {
|
|
150
|
+
const names = [];
|
|
151
|
+
// Split by comma for multiple animations
|
|
152
|
+
const animations = value.split(',');
|
|
153
|
+
for (const animation of animations) {
|
|
154
|
+
const name = extractAnimationNameFromValue(animation);
|
|
155
|
+
if (name && !names.includes(name)) {
|
|
156
|
+
names.push(name);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return names;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Extract animation names from a style value (handles mappings and arrays).
|
|
163
|
+
*/
|
|
164
|
+
function extractAnimationNamesFromStyleValue(value, names) {
|
|
165
|
+
if (typeof value === 'string') {
|
|
166
|
+
for (const name of extractAnimationNamesFromAnimationValue(value)) {
|
|
167
|
+
names.add(name);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else if (Array.isArray(value)) {
|
|
171
|
+
// Responsive array
|
|
172
|
+
for (const v of value) {
|
|
173
|
+
extractAnimationNamesFromStyleValue(v, names);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else if (value && typeof value === 'object') {
|
|
177
|
+
// State mapping
|
|
178
|
+
for (const v of Object.values(value)) {
|
|
179
|
+
extractAnimationNamesFromStyleValue(v, names);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Extract all animation names referenced in styles.
|
|
185
|
+
* Scans 'animation' and 'animationName' properties including in state mappings.
|
|
186
|
+
* Returns empty set if no animation properties found (fast path).
|
|
187
|
+
*/
|
|
188
|
+
export function extractAnimationNamesFromStyles(styles) {
|
|
189
|
+
const names = new Set();
|
|
190
|
+
// Check animation property
|
|
191
|
+
if ('animation' in styles) {
|
|
192
|
+
extractAnimationNamesFromStyleValue(styles.animation, names);
|
|
193
|
+
}
|
|
194
|
+
// Check animationName property
|
|
195
|
+
if ('animationName' in styles) {
|
|
196
|
+
extractAnimationNamesFromStyleValue(styles.animationName, names);
|
|
197
|
+
}
|
|
198
|
+
// Check nested selectors (sub-elements)
|
|
199
|
+
for (const [key, value] of Object.entries(styles)) {
|
|
200
|
+
// Skip non-selector keys and special keys
|
|
201
|
+
if (key === '$' || key === KEYFRAMES_KEY)
|
|
202
|
+
continue;
|
|
203
|
+
// Check if it's a selector (starts with &, ., or uppercase)
|
|
204
|
+
if ((key.startsWith('&') || key.startsWith('.') || /^[A-Z]/.test(key)) &&
|
|
205
|
+
value &&
|
|
206
|
+
typeof value === 'object') {
|
|
207
|
+
// Recursively extract from nested styles
|
|
208
|
+
const nestedNames = extractAnimationNamesFromStyles(value);
|
|
209
|
+
for (const name of nestedNames) {
|
|
210
|
+
names.add(name);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return names;
|
|
215
|
+
}
|
|
216
|
+
// ============================================================================
|
|
217
|
+
// Name Replacement
|
|
218
|
+
// ============================================================================
|
|
219
|
+
/**
|
|
220
|
+
* Replace animation names in CSS declarations with injected names.
|
|
221
|
+
* Optimized to avoid regex creation - uses simple string replacement.
|
|
222
|
+
*
|
|
223
|
+
* @param declarations CSS declarations string
|
|
224
|
+
* @param nameMap Map from original name to injected name (only contains names that differ)
|
|
225
|
+
* @returns Updated declarations string
|
|
226
|
+
*/
|
|
227
|
+
export function replaceAnimationNames(declarations, nameMap) {
|
|
228
|
+
// Fast path: no animation properties
|
|
229
|
+
if (!declarations.includes('animation'))
|
|
230
|
+
return declarations;
|
|
231
|
+
// Parse and replace
|
|
232
|
+
const parts = declarations.split(';');
|
|
233
|
+
let modified = false;
|
|
234
|
+
for (let i = 0; i < parts.length; i++) {
|
|
235
|
+
const part = parts[i];
|
|
236
|
+
const colonIdx = part.indexOf(':');
|
|
237
|
+
if (colonIdx === -1)
|
|
238
|
+
continue;
|
|
239
|
+
const prop = part.slice(0, colonIdx).trim().toLowerCase();
|
|
240
|
+
if (prop === 'animation' || prop === 'animation-name') {
|
|
241
|
+
const prefix = part.slice(0, colonIdx + 1);
|
|
242
|
+
let value = part.slice(colonIdx + 1);
|
|
243
|
+
// Replace each animation name using simple word replacement
|
|
244
|
+
for (const [original, injected] of nameMap) {
|
|
245
|
+
// Simple word boundary replacement without regex
|
|
246
|
+
const newValue = replaceWord(value, original, injected);
|
|
247
|
+
if (newValue !== value) {
|
|
248
|
+
value = newValue;
|
|
249
|
+
modified = true;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
parts[i] = prefix + value;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return modified ? parts.join(';') : declarations;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Replace a word in a string (word boundary aware, no regex).
|
|
259
|
+
*/
|
|
260
|
+
function replaceWord(str, word, replacement) {
|
|
261
|
+
let result = str;
|
|
262
|
+
let idx = 0;
|
|
263
|
+
while ((idx = result.indexOf(word, idx)) !== -1) {
|
|
264
|
+
// Check word boundaries
|
|
265
|
+
const before = idx === 0 ? ' ' : result[idx - 1];
|
|
266
|
+
const after = idx + word.length >= result.length ? ' ' : result[idx + word.length];
|
|
267
|
+
const isWordBoundaryBefore = !/[a-zA-Z0-9_-]/.test(before);
|
|
268
|
+
const isWordBoundaryAfter = !/[a-zA-Z0-9_-]/.test(after);
|
|
269
|
+
if (isWordBoundaryBefore && isWordBoundaryAfter) {
|
|
270
|
+
result =
|
|
271
|
+
result.slice(0, idx) + replacement + result.slice(idx + word.length);
|
|
272
|
+
idx += replacement.length;
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
idx += word.length;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return result;
|
|
279
|
+
}
|
|
280
|
+
// ============================================================================
|
|
281
|
+
// Filter Functions
|
|
282
|
+
// ============================================================================
|
|
283
|
+
/**
|
|
284
|
+
* Filter keyframes to only those that are actually used.
|
|
285
|
+
* Returns null if no keyframes are used (fast path).
|
|
286
|
+
*/
|
|
287
|
+
export function filterUsedKeyframes(keyframes, usedNames) {
|
|
288
|
+
if (!keyframes || usedNames.size === 0)
|
|
289
|
+
return null;
|
|
290
|
+
const used = {};
|
|
291
|
+
let hasAny = false;
|
|
292
|
+
for (const name of usedNames) {
|
|
293
|
+
if (keyframes[name]) {
|
|
294
|
+
used[name] = keyframes[name];
|
|
295
|
+
hasAny = true;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return hasAny ? used : null;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
|
|
@@ -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.99.1
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { COLOR_FUNCS, RE_HEX, RE_NUMBER, RE_UNIT_NUM, VALUE_KEYWORDS, } from './const';
|
|
9
|
-
import { StyleParser } from './parser';
|
|
10
|
-
import { Bucket } from './types';
|
|
8
|
+
import { COLOR_FUNCS, RE_HEX, RE_NUMBER, RE_UNIT_NUM, VALUE_KEYWORDS, } from './const.js';
|
|
9
|
+
import { StyleParser } from './parser.js';
|
|
10
|
+
import { Bucket } from './types.js';
|
|
11
11
|
export function classify(raw, opts, recurse) {
|
|
12
12
|
const token = raw.trim();
|
|
13
13
|
if (!token)
|
|
@@ -112,8 +112,10 @@ export function classify(raw, opts, recurse) {
|
|
|
112
112
|
if (opts.funcs && fname in opts.funcs) {
|
|
113
113
|
// split by top-level commas within inner
|
|
114
114
|
const tmp = new StyleParser(opts).process(inner); // fresh parser w/ same opts but no cache share issues
|
|
115
|
-
const
|
|
116
|
-
|
|
115
|
+
const funcResult = opts.funcs[fname](tmp.groups);
|
|
116
|
+
// Re-classify the result to determine proper bucket (e.g., if it returns a color)
|
|
117
|
+
// Pass funcs: undefined to prevent infinite recursion if result matches a function pattern
|
|
118
|
+
return classify(funcResult, { ...opts, funcs: undefined }, recurse);
|
|
117
119
|
}
|
|
118
120
|
// generic: process inner and rebuild
|
|
119
121
|
const argProcessed = recurse(inner).output;
|
package/es/tasty/parser/const.js
CHANGED
package/es/tasty/parser/lru.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.
|
|
4
|
+
* @cube-dev/ui-kit v0.99.1
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { classify } from './classify';
|
|
9
|
-
import { Lru } from './lru';
|
|
10
|
-
import { scan } from './tokenizer';
|
|
11
|
-
import { Bucket, finalizeGroup, makeEmptyDetails, } from './types';
|
|
8
|
+
import { classify } from './classify.js';
|
|
9
|
+
import { Lru } from './lru.js';
|
|
10
|
+
import { scan } from './tokenizer.js';
|
|
11
|
+
import { Bucket, finalizeGroup, makeEmptyDetails, } from './types.js';
|
|
12
12
|
export class StyleParser {
|
|
13
13
|
opts;
|
|
14
14
|
cache;
|
|
@@ -69,6 +69,13 @@ export class StyleParser {
|
|
|
69
69
|
};
|
|
70
70
|
scan(stripped, (tok, isComma, prevChar) => {
|
|
71
71
|
if (tok) {
|
|
72
|
+
// Accumulate raw token into current.input
|
|
73
|
+
if (current.input) {
|
|
74
|
+
current.input += ` ${tok}`;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
current.input = tok;
|
|
78
|
+
}
|
|
72
79
|
const { bucket, processed } = classify(tok, this.opts, (sub) => this.process(sub));
|
|
73
80
|
pushToken(bucket, processed);
|
|
74
81
|
}
|
|
@@ -99,6 +106,12 @@ export class StyleParser {
|
|
|
99
106
|
else
|
|
100
107
|
this.cache.clear();
|
|
101
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Get the current units configuration.
|
|
111
|
+
*/
|
|
112
|
+
getUnits() {
|
|
113
|
+
return this.opts.units;
|
|
114
|
+
}
|
|
102
115
|
}
|
|
103
116
|
|
|
104
117
|
|
package/es/tasty/parser/types.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.
|
|
4
|
+
* @cube-dev/ui-kit v0.99.1
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -12,6 +12,7 @@ export var Bucket;
|
|
|
12
12
|
Bucket[Bucket["Mod"] = 2] = "Mod";
|
|
13
13
|
})(Bucket || (Bucket = {}));
|
|
14
14
|
export const makeEmptyDetails = () => ({
|
|
15
|
+
input: '',
|
|
15
16
|
output: '',
|
|
16
17
|
mods: [],
|
|
17
18
|
values: [],
|