@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
|
@@ -1,12 +1,86 @@
|
|
|
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 { getRgbValuesFromRgbaString, hexToRgb, parseStyle } from './styles';
|
|
8
|
+
import { getRgbValuesFromRgbaString, hexToRgb, parseStyle } from './styles.js';
|
|
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
|
+
}
|
|
10
84
|
/**
|
|
11
85
|
* Extract RGB triplet from a color value.
|
|
12
86
|
* Returns the RGB values as a space-separated string (e.g., "255 128 0")
|
|
@@ -25,6 +99,18 @@ function extractRgbValue(colorValue, parsedOutput) {
|
|
|
25
99
|
return rgbValues.join(' ');
|
|
26
100
|
}
|
|
27
101
|
}
|
|
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
|
+
}
|
|
28
114
|
// For hex values, convert to RGB triplet
|
|
29
115
|
if (colorValue.startsWith('#') && /^#[0-9a-fA-F]{3,8}$/.test(colorValue)) {
|
|
30
116
|
const rgbResult = hexToRgb(colorValue);
|
package/es/tasty/utils/string.js
CHANGED
package/es/tasty/utils/styles.js
CHANGED
|
@@ -1,13 +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 { StyleParser } from '../parser/parser';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
8
|
+
import { StyleParser } from '../parser/parser.js';
|
|
9
|
+
import { createStateParserContext, parseAdvancedState } from '../states/index.js';
|
|
10
|
+
import { cacheWrapper } from './cache-wrapper.js';
|
|
11
|
+
import { camelToKebab } from './case-converter.js';
|
|
11
12
|
const devMode = process.env.NODE_ENV !== 'production';
|
|
12
13
|
// Precompiled regex patterns for parseColor optimization
|
|
13
14
|
// Match var(--name-color...) and extract the name, regardless of fallbacks
|
|
@@ -27,9 +28,6 @@ const SIMPLE_COLOR_PATTERNS = [
|
|
|
27
28
|
// Rate limiting for dev warnings to avoid spam
|
|
28
29
|
let colorWarningCount = 0;
|
|
29
30
|
const MAX_COLOR_WARNINGS = 10;
|
|
30
|
-
const IS_DVH_SUPPORTED = typeof CSS !== 'undefined' && typeof CSS?.supports === 'function'
|
|
31
|
-
? CSS.supports('height: 100dvh')
|
|
32
|
-
: false;
|
|
33
31
|
export const CUSTOM_UNITS = {
|
|
34
32
|
r: 'var(--radius)',
|
|
35
33
|
cr: 'var(--card-radius)',
|
|
@@ -43,12 +41,6 @@ export const CUSTOM_UNITS = {
|
|
|
43
41
|
sf: function sf(num) {
|
|
44
42
|
return `minmax(0, ${num}fr)`;
|
|
45
43
|
},
|
|
46
|
-
// global setting
|
|
47
|
-
dvh: function dvh(num) {
|
|
48
|
-
return IS_DVH_SUPPORTED
|
|
49
|
-
? `${num}dvh`
|
|
50
|
-
: `calc(var(--cube-dynamic-viewport-height, 100dvh) / 100 * ${num})`;
|
|
51
|
-
},
|
|
52
44
|
// span unit for GridProvider
|
|
53
45
|
sp: function spanWidth(num) {
|
|
54
46
|
return `((${num} * var(--column-width)) + (${num - 1} * var(--column-gap)))`;
|
|
@@ -117,6 +109,20 @@ export function customFunc(name, fn) {
|
|
|
117
109
|
__tastyFuncs[name] = fn;
|
|
118
110
|
__tastyParser.setFuncs(__tastyFuncs);
|
|
119
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Get the global StyleParser instance.
|
|
114
|
+
* Used by configure() to apply parser configuration.
|
|
115
|
+
*/
|
|
116
|
+
export function getGlobalParser() {
|
|
117
|
+
return __tastyParser;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get the current custom functions registry.
|
|
121
|
+
* Used by configure() to merge with new functions.
|
|
122
|
+
*/
|
|
123
|
+
export function getGlobalFuncs() {
|
|
124
|
+
return __tastyFuncs;
|
|
125
|
+
}
|
|
120
126
|
/**
|
|
121
127
|
*
|
|
122
128
|
* @param {String} value
|
|
@@ -208,11 +214,38 @@ export function strToRgb(color, ignoreAlpha = false) {
|
|
|
208
214
|
return hexToRgb(color);
|
|
209
215
|
return null;
|
|
210
216
|
}
|
|
217
|
+
/**
|
|
218
|
+
* Extract RGB values from an rgb()/rgba() string.
|
|
219
|
+
* Supports all modern CSS syntax variations:
|
|
220
|
+
* - Comma-separated: rgb(255, 128, 0)
|
|
221
|
+
* - Space-separated: rgb(255 128 0)
|
|
222
|
+
* - Fractional: rgb(128.5, 64.3, 32.1)
|
|
223
|
+
* - Percentages: rgb(50%, 25%, 75%)
|
|
224
|
+
* - Slash alpha notation: rgb(255 128 0 / 0.5)
|
|
225
|
+
*
|
|
226
|
+
* Returns array of RGB values (0-255 range), converting percentages as needed.
|
|
227
|
+
*/
|
|
211
228
|
export function getRgbValuesFromRgbaString(str) {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
229
|
+
// Extract content inside rgb()/rgba()
|
|
230
|
+
const match = str.match(/rgba?\(([^)]+)\)/i);
|
|
231
|
+
if (!match)
|
|
232
|
+
return [];
|
|
233
|
+
const inner = match[1].trim();
|
|
234
|
+
// Split by slash first (for alpha), then handle color components
|
|
235
|
+
const [colorPart] = inner.split('/');
|
|
236
|
+
// Split by comma or whitespace
|
|
237
|
+
const parts = colorPart
|
|
238
|
+
.trim()
|
|
239
|
+
.split(/[,\s]+/)
|
|
240
|
+
.filter(Boolean);
|
|
241
|
+
return parts.slice(0, 3).map((part) => {
|
|
242
|
+
part = part.trim();
|
|
243
|
+
if (part.endsWith('%')) {
|
|
244
|
+
// Convert percentage to 0-255 range
|
|
245
|
+
return (parseFloat(part) / 100) * 255;
|
|
246
|
+
}
|
|
247
|
+
return parseFloat(part);
|
|
248
|
+
});
|
|
216
249
|
}
|
|
217
250
|
export function hexToRgb(hex) {
|
|
218
251
|
const rgba = hex
|
|
@@ -275,7 +308,16 @@ export function extractStyles(props, styleList = [], defaultStyles, propMap, ign
|
|
|
275
308
|
}, {});
|
|
276
309
|
return styles;
|
|
277
310
|
}
|
|
278
|
-
|
|
311
|
+
// Enhanced regex that includes advanced state patterns
|
|
312
|
+
// Matches: operators, parentheses, @media(...), @(...), @root(...), @own(...), @starting, @predefined,
|
|
313
|
+
// value mods, boolean mods, pseudo-classes, classes, attribute selectors
|
|
314
|
+
const STATES_REGEXP = /([&|!^])|([()])|(@media:[a-z]+)|(@media\([^)]+\))|(@root\([^)]+\))|(@own\([^)]+\))|(@\([^)]+\))|(@starting)|(@[A-Za-z][A-Za-z0-9-]*)|([a-z][a-z0-9-]+=(?:"[^"]*"|'[^']*'|[^\s&|!^()]+))|([a-z][a-z0-9-]+)|(:[a-z][a-z0-9-]+\([^)]+\)|:[a-z][a-z0-9-]+)|(\.[a-z][a-z0-9-]+)|(\[[^\]]+])/gi;
|
|
315
|
+
/**
|
|
316
|
+
* Check if a token is an advanced state (starts with @)
|
|
317
|
+
*/
|
|
318
|
+
export function isAdvancedStateToken(token) {
|
|
319
|
+
return token.startsWith('@') || token.startsWith('!@');
|
|
320
|
+
}
|
|
279
321
|
export const STATE_OPERATORS = {
|
|
280
322
|
NOT: '!',
|
|
281
323
|
AND: '&',
|
|
@@ -317,11 +359,38 @@ function convertTokensToComputeUnits(tokens) {
|
|
|
317
359
|
});
|
|
318
360
|
return tokens.length === 1 ? tokens[0] : tokens;
|
|
319
361
|
}
|
|
362
|
+
/**
|
|
363
|
+
* Replace commas with | only outside of parentheses.
|
|
364
|
+
* This preserves commas in advanced states like @(card, w < 600px)
|
|
365
|
+
*/
|
|
366
|
+
function replaceCommasOutsideParens(str) {
|
|
367
|
+
let result = '';
|
|
368
|
+
let depth = 0;
|
|
369
|
+
for (let i = 0; i < str.length; i++) {
|
|
370
|
+
const char = str[i];
|
|
371
|
+
if (char === '(') {
|
|
372
|
+
depth++;
|
|
373
|
+
result += char;
|
|
374
|
+
}
|
|
375
|
+
else if (char === ')') {
|
|
376
|
+
depth--;
|
|
377
|
+
result += char;
|
|
378
|
+
}
|
|
379
|
+
else if (char === ',' && depth === 0) {
|
|
380
|
+
// Only replace commas at the top level (outside parentheses)
|
|
381
|
+
result += '|';
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
result += char;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
return result;
|
|
388
|
+
}
|
|
320
389
|
/**
|
|
321
390
|
* Parse state notation and return tokens, modifiers and compute model.
|
|
322
391
|
*/
|
|
323
392
|
function parseStateNotationInner(notation, value) {
|
|
324
|
-
const tokens = notation
|
|
393
|
+
const tokens = replaceCommasOutsideParens(notation).match(STATES_REGEXP);
|
|
325
394
|
if (!tokens || !tokens.length) {
|
|
326
395
|
return {
|
|
327
396
|
model: undefined,
|
|
@@ -380,10 +449,115 @@ function parseStateNotationInner(notation, value) {
|
|
|
380
449
|
};
|
|
381
450
|
}
|
|
382
451
|
export const parseStateNotation = cacheWrapper(parseStateNotationInner);
|
|
452
|
+
/**
|
|
453
|
+
* Build an AtRuleContext from parsed advanced states
|
|
454
|
+
*/
|
|
455
|
+
export function buildAtRuleContext(advancedStates, negatedStates) {
|
|
456
|
+
if (advancedStates.length === 0)
|
|
457
|
+
return undefined;
|
|
458
|
+
const ctx = {};
|
|
459
|
+
for (const state of advancedStates) {
|
|
460
|
+
const isNegated = negatedStates.has(state.raw);
|
|
461
|
+
switch (state.type) {
|
|
462
|
+
case 'media': {
|
|
463
|
+
if (!ctx.media)
|
|
464
|
+
ctx.media = [];
|
|
465
|
+
let mediaCondition = '';
|
|
466
|
+
if (state.mediaType) {
|
|
467
|
+
// @media:print, @media:screen, etc.
|
|
468
|
+
mediaCondition = state.mediaType;
|
|
469
|
+
}
|
|
470
|
+
else if (state.condition) {
|
|
471
|
+
// @media(width < 920px)
|
|
472
|
+
mediaCondition = `(${state.condition})`;
|
|
473
|
+
}
|
|
474
|
+
if (mediaCondition) {
|
|
475
|
+
if (isNegated) {
|
|
476
|
+
ctx.media.push(`not ${mediaCondition}`);
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
ctx.media.push(mediaCondition);
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
case 'container': {
|
|
485
|
+
if (!ctx.container)
|
|
486
|
+
ctx.container = [];
|
|
487
|
+
let condition = state.condition;
|
|
488
|
+
if (isNegated) {
|
|
489
|
+
condition = `not (${condition})`;
|
|
490
|
+
}
|
|
491
|
+
ctx.container.push({
|
|
492
|
+
name: state.containerName,
|
|
493
|
+
condition,
|
|
494
|
+
});
|
|
495
|
+
break;
|
|
496
|
+
}
|
|
497
|
+
case 'root': {
|
|
498
|
+
if (!ctx.rootStates)
|
|
499
|
+
ctx.rootStates = [];
|
|
500
|
+
// Parse the condition to generate the proper selector
|
|
501
|
+
const rootSelector = buildRootSelector(state.condition, isNegated);
|
|
502
|
+
ctx.rootStates.push(rootSelector);
|
|
503
|
+
break;
|
|
504
|
+
}
|
|
505
|
+
case 'starting': {
|
|
506
|
+
if (!isNegated) {
|
|
507
|
+
ctx.startingStyle = true;
|
|
508
|
+
}
|
|
509
|
+
break;
|
|
510
|
+
}
|
|
511
|
+
// 'own' and 'predefined' are handled differently (selector-based, not at-rule)
|
|
512
|
+
// 'modifier' is a regular state
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
// Return undefined if no at-rules were added
|
|
516
|
+
if (!ctx.media?.length &&
|
|
517
|
+
!ctx.container?.length &&
|
|
518
|
+
!ctx.rootStates?.length &&
|
|
519
|
+
!ctx.startingStyle) {
|
|
520
|
+
return undefined;
|
|
521
|
+
}
|
|
522
|
+
return ctx;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Build a root state selector from a condition
|
|
526
|
+
*/
|
|
527
|
+
function buildRootSelector(condition, isNegated) {
|
|
528
|
+
// Handle different condition formats:
|
|
529
|
+
// - theme=dark -> [data-theme="dark"]
|
|
530
|
+
// - .className -> .className
|
|
531
|
+
// - [attr] -> [attr]
|
|
532
|
+
// - booleanMod -> [data-boolean-mod]
|
|
533
|
+
let selector;
|
|
534
|
+
if (condition.startsWith('.')) {
|
|
535
|
+
// Class selector
|
|
536
|
+
selector = condition;
|
|
537
|
+
}
|
|
538
|
+
else if (condition.startsWith('[')) {
|
|
539
|
+
// Attribute selector
|
|
540
|
+
selector = condition;
|
|
541
|
+
}
|
|
542
|
+
else if (condition.includes('=')) {
|
|
543
|
+
// Value mod: theme=dark -> [data-theme="dark"]
|
|
544
|
+
const [key, value] = condition.split('=');
|
|
545
|
+
selector = `[data-${camelToKebab(key.trim())}="${value.trim()}"]`;
|
|
546
|
+
}
|
|
547
|
+
else {
|
|
548
|
+
// Boolean mod: camelCase -> [data-camel-case]
|
|
549
|
+
selector = `[data-${camelToKebab(condition)}]`;
|
|
550
|
+
}
|
|
551
|
+
if (isNegated) {
|
|
552
|
+
return `:not(${selector})`;
|
|
553
|
+
}
|
|
554
|
+
return selector;
|
|
555
|
+
}
|
|
383
556
|
/**
|
|
384
557
|
* Parse state notation and return tokens, modifiers and compute model.
|
|
558
|
+
* Enhanced to detect and extract advanced states.
|
|
385
559
|
*/
|
|
386
|
-
export function styleStateMapToStyleStateDataList(styleStateMap) {
|
|
560
|
+
export function styleStateMapToStyleStateDataList(styleStateMap, parserContext) {
|
|
387
561
|
if (typeof styleStateMap !== 'object' || !styleStateMap) {
|
|
388
562
|
return {
|
|
389
563
|
states: [
|
|
@@ -395,17 +569,76 @@ export function styleStateMapToStyleStateDataList(styleStateMap) {
|
|
|
395
569
|
},
|
|
396
570
|
],
|
|
397
571
|
mods: [],
|
|
572
|
+
hasAdvancedStates: false,
|
|
398
573
|
};
|
|
399
574
|
}
|
|
400
575
|
const stateDataList = [];
|
|
576
|
+
let hasAdvancedStates = false;
|
|
401
577
|
Object.keys(styleStateMap).forEach((stateNotation) => {
|
|
402
578
|
const state = parseStateNotation(stateNotation, styleStateMap[stateNotation]);
|
|
579
|
+
// Check if this state contains any advanced states
|
|
580
|
+
const advancedStates = [];
|
|
581
|
+
const negatedAdvancedStates = new Set();
|
|
582
|
+
const regularMods = [];
|
|
583
|
+
const ownMods = [];
|
|
584
|
+
const negatedOwnMods = [];
|
|
585
|
+
// Scan tokens for advanced states
|
|
586
|
+
if (state.tokens) {
|
|
587
|
+
let isNegated = false;
|
|
588
|
+
for (const token of state.tokens) {
|
|
589
|
+
if (token === '!') {
|
|
590
|
+
isNegated = true;
|
|
591
|
+
continue;
|
|
592
|
+
}
|
|
593
|
+
if (isAdvancedStateToken(token)) {
|
|
594
|
+
hasAdvancedStates = true;
|
|
595
|
+
const ctx = parserContext || createStateParserContext(undefined);
|
|
596
|
+
const parsed = parseAdvancedState(token, ctx);
|
|
597
|
+
advancedStates.push(parsed);
|
|
598
|
+
// Handle @own states specially - extract condition as ownMod
|
|
599
|
+
if (parsed.type === 'own' && parsed.condition) {
|
|
600
|
+
if (isNegated) {
|
|
601
|
+
negatedOwnMods.push(parsed.condition);
|
|
602
|
+
}
|
|
603
|
+
else {
|
|
604
|
+
ownMods.push(parsed.condition);
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
else if (isNegated) {
|
|
608
|
+
negatedAdvancedStates.add(token);
|
|
609
|
+
}
|
|
610
|
+
isNegated = false;
|
|
611
|
+
}
|
|
612
|
+
else if (token.length > 1 &&
|
|
613
|
+
!['&', '|', '^', '(', ')'].includes(token)) {
|
|
614
|
+
regularMods.push(token);
|
|
615
|
+
isNegated = false;
|
|
616
|
+
}
|
|
617
|
+
else {
|
|
618
|
+
isNegated = false;
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
// If there are advanced states, build the atRuleContext
|
|
623
|
+
if (advancedStates.length > 0) {
|
|
624
|
+
state.advancedStates = advancedStates;
|
|
625
|
+
state.atRuleContext = buildAtRuleContext(advancedStates, negatedAdvancedStates);
|
|
626
|
+
// Filter mods to only include regular mods (not advanced states)
|
|
627
|
+
state.mods = regularMods;
|
|
628
|
+
}
|
|
629
|
+
// Store own mods for sub-element selector generation
|
|
630
|
+
if (ownMods.length > 0) {
|
|
631
|
+
state.ownMods = ownMods;
|
|
632
|
+
}
|
|
633
|
+
if (negatedOwnMods.length > 0) {
|
|
634
|
+
state.negatedOwnMods = negatedOwnMods;
|
|
635
|
+
}
|
|
403
636
|
stateDataList.push(state);
|
|
404
637
|
});
|
|
405
638
|
stateDataList.reverse();
|
|
406
639
|
let initialState;
|
|
407
640
|
const allMods = stateDataList.reduce((all, state) => {
|
|
408
|
-
if (!state.mods.length) {
|
|
641
|
+
if (!state.mods.length && !state.advancedStates?.length) {
|
|
409
642
|
initialState = state;
|
|
410
643
|
}
|
|
411
644
|
else {
|
|
@@ -424,7 +657,7 @@ export function styleStateMapToStyleStateDataList(styleStateMap) {
|
|
|
424
657
|
value: true,
|
|
425
658
|
});
|
|
426
659
|
}
|
|
427
|
-
return { states: stateDataList, mods: allMods };
|
|
660
|
+
return { states: stateDataList, mods: allMods, hasAdvancedStates };
|
|
428
661
|
}
|
|
429
662
|
export const COMPUTE_FUNC_MAP = {
|
|
430
663
|
'!': (a) => !a, // NOT - boolean negation
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
import { TYPOGRAPHY_PRESETS } from '../../tokens/typography.js';
|
|
9
|
+
/**
|
|
10
|
+
* Generate typography tokens with $ prefix for CSS custom properties.
|
|
11
|
+
*
|
|
12
|
+
* Each preset generates the following CSS custom properties:
|
|
13
|
+
* - `${name}-font-size`
|
|
14
|
+
* - `${name}-line-height`
|
|
15
|
+
* - `${name}-letter-spacing`
|
|
16
|
+
* - `${name}-font-weight`
|
|
17
|
+
* - `${name}-bold-font-weight` (if defined)
|
|
18
|
+
* - `${name}-icon-size` (if defined)
|
|
19
|
+
* - `${name}-text-transform` (if defined)
|
|
20
|
+
* - `${name}-font-family` (if defined)
|
|
21
|
+
* - `${name}-font-style` (if defined)
|
|
22
|
+
*
|
|
23
|
+
* @param presets - Typography presets object (defaults to TYPOGRAPHY_PRESETS)
|
|
24
|
+
* @returns Styles object with $ prefixed keys
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* // Using default presets
|
|
28
|
+
* const tokens = generateTypographyTokens();
|
|
29
|
+
* // tokens['$h1-font-size'] === '36px'
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* // Using custom presets
|
|
33
|
+
* const customTokens = generateTypographyTokens({
|
|
34
|
+
* myHeading: { fontSize: '24px', lineHeight: '32px', fontWeight: '700' }
|
|
35
|
+
* });
|
|
36
|
+
*/
|
|
37
|
+
export function generateTypographyTokens(presets = TYPOGRAPHY_PRESETS) {
|
|
38
|
+
const tokens = {};
|
|
39
|
+
for (const [name, preset] of Object.entries(presets)) {
|
|
40
|
+
tokens[`$${name}-font-size`] = preset.fontSize;
|
|
41
|
+
tokens[`$${name}-line-height`] = preset.lineHeight;
|
|
42
|
+
tokens[`$${name}-letter-spacing`] = preset.letterSpacing ?? '0';
|
|
43
|
+
tokens[`$${name}-font-weight`] = preset.fontWeight;
|
|
44
|
+
if (preset.boldFontWeight !== undefined) {
|
|
45
|
+
// Handle different property naming for c1 (uses font-bold-weight instead of bold-font-weight)
|
|
46
|
+
const boldKey = name === 'c1'
|
|
47
|
+
? `$${name}-font-bold-weight`
|
|
48
|
+
: `$${name}-bold-font-weight`;
|
|
49
|
+
tokens[boldKey] = preset.boldFontWeight;
|
|
50
|
+
}
|
|
51
|
+
if (preset.iconSize !== undefined) {
|
|
52
|
+
tokens[`$${name}-icon-size`] = preset.iconSize;
|
|
53
|
+
}
|
|
54
|
+
if (preset.textTransform !== undefined) {
|
|
55
|
+
tokens[`$${name}-text-transform`] = preset.textTransform;
|
|
56
|
+
}
|
|
57
|
+
if (preset.fontFamily !== undefined) {
|
|
58
|
+
tokens[`$${name}-font-family`] = preset.fontFamily;
|
|
59
|
+
}
|
|
60
|
+
if (preset.fontStyle !== undefined) {
|
|
61
|
+
tokens[`$${name}-font-style`] = preset.fontStyle;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return tokens;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|