@cube-dev/ui-kit 0.98.8 → 0.99.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -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 +25 -20
- package/es/components/content/Item/index.js +3 -3
- package/es/components/content/ItemBadge/ItemBadge.js +8 -8
- package/es/components/content/ItemBadge/index.js +2 -2
- package/es/components/content/Layout/GridLayout.js +13 -13
- package/es/components/content/Layout/Layout.js +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 -10
- package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +2 -2
- package/es/components/overlays/AlertDialog/AlertDialogZone.js +4 -4
- package/es/components/overlays/AlertDialog/index.js +4 -4
- package/es/components/overlays/AlertDialog/types.js +1 -1
- package/es/components/overlays/Dialog/Dialog.js +7 -7
- package/es/components/overlays/Dialog/DialogContainer.js +3 -3
- package/es/components/overlays/Dialog/DialogForm.js +8 -8
- package/es/components/overlays/Dialog/DialogTrigger.js +4 -4
- package/es/components/overlays/Dialog/context.js +1 -1
- package/es/components/overlays/Dialog/index.js +6 -6
- package/es/components/overlays/Dialog/use-dialog-container.js +4 -4
- package/es/components/overlays/Modal/Modal.js +5 -5
- package/es/components/overlays/Modal/OpenTransition.js +1 -1
- package/es/components/overlays/Modal/Overlay.js +3 -3
- package/es/components/overlays/Modal/Popover.js +4 -4
- package/es/components/overlays/Modal/Tray.js +6 -6
- package/es/components/overlays/Modal/Underlay.js +2 -2
- package/es/components/overlays/Modal/index.js +7 -7
- package/es/components/overlays/Modal/types.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +5 -5
- package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +7 -7
- package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +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 +3 -3
- package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +3 -3
- package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +12 -12
- package/es/components/overlays/NewNotifications/NotificationView/index.js +3 -3
- package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +5 -5
- package/es/components/overlays/NewNotifications/NotificationsContext/index.js +3 -3
- package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +2 -2
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +5 -5
- package/es/components/overlays/NewNotifications/NotificationsList/index.js +2 -2
- package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/index.js +6 -6
- package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +2 -2
- package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +3 -3
- package/es/components/overlays/NewNotifications/index.js +7 -7
- package/es/components/overlays/NewNotifications/types.js +1 -1
- package/es/components/overlays/Notification/Notification.js +7 -7
- package/es/components/overlays/OverlayWrapper.js +2 -2
- package/es/components/overlays/Toasts/Toast.js +4 -4
- package/es/components/overlays/Toasts/index.js +3 -3
- package/es/components/overlays/Toasts/types.js +1 -1
- package/es/components/overlays/Toasts/use-toasts-api.js +2 -2
- package/es/components/overlays/Tooltip/Tooltip.js +4 -4
- package/es/components/overlays/Tooltip/TooltipProvider.js +3 -3
- package/es/components/overlays/Tooltip/TooltipTrigger.js +6 -6
- package/es/components/overlays/Tooltip/context.js +1 -1
- package/es/components/overlays/Tooltip/index.js +4 -4
- package/es/components/portal/Portal.js +2 -2
- package/es/components/portal/PortalProvider.js +1 -1
- package/es/components/portal/index.js +3 -3
- package/es/components/portal/types.js +1 -1
- package/es/components/portal/usePortal.js +2 -2
- package/es/components/shared/InvalidIcon.js +2 -2
- package/es/components/shared/ValidIcon.js +2 -2
- package/es/components/status/LoadingAnimation/LoadingAnimation.js +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 +12 -0
- 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 -128
- 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/ItemActionContext.d.ts +1 -1
- 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/overlays/AlertDialog/AlertDialog.d.ts +1 -1
- package/types/components/status/Spin/Cube.d.ts +1 -1
- package/types/components/status/Spin/SpinsContainer.d.ts +6 -3
- package/types/icons/SemanticQueryIcon.d.ts +4 -0
- package/types/icons/index.d.ts +1 -0
- 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,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { createHash } from 'crypto';
|
|
9
|
+
import { categorizeStyleKeys, generateChunkCacheKey, renderStylesForChunk, } from '../chunks/index.js';
|
|
10
|
+
import { extractAnimationNamesFromStyles, extractLocalKeyframes, filterUsedKeyframes, hasLocalKeyframes, mergeKeyframes, } from '../keyframes/index.js';
|
|
11
|
+
import { renderStyles } from '../pipeline/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Generate a deterministic className from a cache key using content hash.
|
|
14
|
+
* This ensures the same styles always produce the same className,
|
|
15
|
+
* regardless of build order or incremental compilation.
|
|
16
|
+
*/
|
|
17
|
+
function generateClassName(cacheKey) {
|
|
18
|
+
const hash = createHash('md5').update(cacheKey).digest('hex').slice(0, 6);
|
|
19
|
+
return `ts${hash}`; // 'ts' prefix for "tasty-static" to distinguish from runtime 't' classes
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Extract styles using chunking (for className mode).
|
|
23
|
+
* Returns multiple classes, one per chunk.
|
|
24
|
+
*/
|
|
25
|
+
export function extractStylesWithChunks(styles) {
|
|
26
|
+
const chunks = [];
|
|
27
|
+
// Categorize style keys into chunks
|
|
28
|
+
const chunkMap = categorizeStyleKeys(styles);
|
|
29
|
+
for (const [chunkName, chunkStyleKeys] of chunkMap) {
|
|
30
|
+
if (chunkStyleKeys.length === 0)
|
|
31
|
+
continue;
|
|
32
|
+
// Generate cache key for this chunk (used for className hash)
|
|
33
|
+
const cacheKey = generateChunkCacheKey(styles, chunkName, chunkStyleKeys);
|
|
34
|
+
// Render styles for this chunk
|
|
35
|
+
const renderResult = renderStylesForChunk(styles, chunkName, chunkStyleKeys);
|
|
36
|
+
if (renderResult.rules.length === 0)
|
|
37
|
+
continue;
|
|
38
|
+
// Generate deterministic className from content hash
|
|
39
|
+
const className = generateClassName(cacheKey);
|
|
40
|
+
const selector = `.${className}.${className}`;
|
|
41
|
+
// Format CSS
|
|
42
|
+
const css = formatRulesToCSS(renderResult.rules, selector);
|
|
43
|
+
chunks.push({ className, css });
|
|
44
|
+
}
|
|
45
|
+
return chunks;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Extract styles for a specific selector (for global/selector mode).
|
|
49
|
+
* Returns a single CSS block.
|
|
50
|
+
*/
|
|
51
|
+
export function extractStylesForSelector(selector, styles) {
|
|
52
|
+
// renderStyles with selector returns StyleResult[] with selectors already applied
|
|
53
|
+
const rules = renderStyles(styles, selector);
|
|
54
|
+
// Format without re-prefixing - rules already have the full selector
|
|
55
|
+
const css = formatRulesDirectly(rules);
|
|
56
|
+
return { selector, css };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Format StyleResult[] to CSS string.
|
|
60
|
+
* Prefixes each rule's selector with the base selector.
|
|
61
|
+
* Used for chunked styles where rules have relative selectors.
|
|
62
|
+
*/
|
|
63
|
+
function formatRulesToCSS(rules, baseSelector) {
|
|
64
|
+
return rules
|
|
65
|
+
.map((rule) => {
|
|
66
|
+
// Handle selector as array (OR conditions) or string
|
|
67
|
+
// Note: renderStyles without className joins array selectors with '|||' placeholder
|
|
68
|
+
const selectorParts = Array.isArray(rule.selector)
|
|
69
|
+
? rule.selector
|
|
70
|
+
: rule.selector
|
|
71
|
+
? rule.selector.split('|||')
|
|
72
|
+
: [''];
|
|
73
|
+
// Prefix each selector part with the base selector
|
|
74
|
+
const fullSelector = selectorParts
|
|
75
|
+
.map((part) => {
|
|
76
|
+
// Build selector: [rootPrefix] baseSelector[part]
|
|
77
|
+
let selector;
|
|
78
|
+
// If part is empty, just use base selector
|
|
79
|
+
if (!part) {
|
|
80
|
+
selector = baseSelector;
|
|
81
|
+
}
|
|
82
|
+
else if (part.startsWith(':') || part.startsWith('[')) {
|
|
83
|
+
// If part starts with a pseudo-class or pseudo-element, append to base
|
|
84
|
+
selector = `${baseSelector}${part}`;
|
|
85
|
+
}
|
|
86
|
+
else if (part.startsWith('>') ||
|
|
87
|
+
part.startsWith('+') ||
|
|
88
|
+
part.startsWith('~')) {
|
|
89
|
+
// If part starts with >, +, ~ combinator, append with space
|
|
90
|
+
selector = `${baseSelector}${part}`;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
// Otherwise, combine base with part
|
|
94
|
+
selector = `${baseSelector}${part}`;
|
|
95
|
+
}
|
|
96
|
+
// Prepend rootPrefix if present (for @root() states)
|
|
97
|
+
if (rule.rootPrefix) {
|
|
98
|
+
selector = `${rule.rootPrefix} ${selector}`;
|
|
99
|
+
}
|
|
100
|
+
return selector;
|
|
101
|
+
})
|
|
102
|
+
.join(', ');
|
|
103
|
+
let css = `${fullSelector} { ${rule.declarations} }`;
|
|
104
|
+
// Wrap in at-rules (in reverse order for proper nesting)
|
|
105
|
+
if (rule.atRules && rule.atRules.length > 0) {
|
|
106
|
+
for (const atRule of [...rule.atRules].reverse()) {
|
|
107
|
+
css = `${atRule} {\n ${css}\n}`;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return css;
|
|
111
|
+
})
|
|
112
|
+
.join('\n\n');
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Format StyleResult[] to CSS string directly without prefixing.
|
|
116
|
+
* Used for global styles where rules already have the full selector.
|
|
117
|
+
*/
|
|
118
|
+
function formatRulesDirectly(rules) {
|
|
119
|
+
return rules
|
|
120
|
+
.map((rule) => {
|
|
121
|
+
// Prepend rootPrefix if present (for @root() states)
|
|
122
|
+
const selector = rule.rootPrefix
|
|
123
|
+
? `${rule.rootPrefix} ${rule.selector}`
|
|
124
|
+
: rule.selector;
|
|
125
|
+
let css = `${selector} { ${rule.declarations} }`;
|
|
126
|
+
// Wrap in at-rules (in reverse order for proper nesting)
|
|
127
|
+
if (rule.atRules && rule.atRules.length > 0) {
|
|
128
|
+
for (const atRule of [...rule.atRules].reverse()) {
|
|
129
|
+
css = `${atRule} {\n ${css}\n}`;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return css;
|
|
133
|
+
})
|
|
134
|
+
.join('\n\n');
|
|
135
|
+
}
|
|
136
|
+
// Note: With hash-based className generation, counter management functions
|
|
137
|
+
// are no longer needed. ClassNames are deterministic based on content.
|
|
138
|
+
/**
|
|
139
|
+
* Generate a deterministic keyframes name from content hash.
|
|
140
|
+
* This ensures the same keyframes content always produces the same name,
|
|
141
|
+
* enabling automatic deduplication across elements and files.
|
|
142
|
+
*/
|
|
143
|
+
function generateKeyframesName(steps) {
|
|
144
|
+
const content = JSON.stringify(steps);
|
|
145
|
+
const hash = createHash('md5').update(content).digest('hex').slice(0, 6);
|
|
146
|
+
return `kf${hash}`; // 'kf' prefix for "keyframes"
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Extract keyframes that are used in styles.
|
|
150
|
+
* Merges local @keyframes with global keyframes, filters to only used ones.
|
|
151
|
+
* Generates hash-based names from content for automatic deduplication.
|
|
152
|
+
*
|
|
153
|
+
* @param styles - The styles object (may contain @keyframes and animation properties)
|
|
154
|
+
* @param globalKeyframes - Optional global keyframes from config
|
|
155
|
+
* @returns Keyframes to inject and name mapping for replacement
|
|
156
|
+
*/
|
|
157
|
+
export function extractKeyframesFromStyles(styles, globalKeyframes) {
|
|
158
|
+
const emptyResult = {
|
|
159
|
+
keyframes: [],
|
|
160
|
+
nameMap: new Map(),
|
|
161
|
+
};
|
|
162
|
+
// Extract animation names from styles
|
|
163
|
+
const usedNames = extractAnimationNamesFromStyles(styles);
|
|
164
|
+
if (usedNames.size === 0)
|
|
165
|
+
return emptyResult;
|
|
166
|
+
// Merge local and global keyframes
|
|
167
|
+
const local = hasLocalKeyframes(styles)
|
|
168
|
+
? extractLocalKeyframes(styles)
|
|
169
|
+
: null;
|
|
170
|
+
const allKeyframes = mergeKeyframes(local, globalKeyframes ?? null);
|
|
171
|
+
// Filter to only used keyframes
|
|
172
|
+
const usedKeyframes = filterUsedKeyframes(allKeyframes, usedNames);
|
|
173
|
+
if (!usedKeyframes)
|
|
174
|
+
return emptyResult;
|
|
175
|
+
// Generate hash-based names and collect unique keyframes
|
|
176
|
+
const seenHashes = new Set();
|
|
177
|
+
const nameMap = new Map();
|
|
178
|
+
const keyframesToEmit = [];
|
|
179
|
+
for (const [originalName, steps] of Object.entries(usedKeyframes)) {
|
|
180
|
+
const hashedName = generateKeyframesName(steps);
|
|
181
|
+
// Always map original name to hashed name (for CSS replacement)
|
|
182
|
+
nameMap.set(originalName, hashedName);
|
|
183
|
+
// Only emit each unique keyframe once
|
|
184
|
+
if (!seenHashes.has(hashedName)) {
|
|
185
|
+
seenHashes.add(hashedName);
|
|
186
|
+
const css = keyframesToCSS(hashedName, steps);
|
|
187
|
+
keyframesToEmit.push({ name: hashedName, css });
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return { keyframes: keyframesToEmit, nameMap };
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Convert keyframes steps to CSS string.
|
|
194
|
+
*/
|
|
195
|
+
function keyframesToCSS(name, steps) {
|
|
196
|
+
const stepRules = [];
|
|
197
|
+
for (const [key, value] of Object.entries(steps)) {
|
|
198
|
+
if (typeof value === 'string') {
|
|
199
|
+
// Raw CSS string
|
|
200
|
+
stepRules.push(`${key} { ${value.trim()} }`);
|
|
201
|
+
}
|
|
202
|
+
else if (value && typeof value === 'object') {
|
|
203
|
+
// Style map - convert to CSS declarations
|
|
204
|
+
const declarations = Object.entries(value)
|
|
205
|
+
.map(([prop, val]) => {
|
|
206
|
+
const cssProperty = camelToKebab(prop);
|
|
207
|
+
return `${cssProperty}: ${val}`;
|
|
208
|
+
})
|
|
209
|
+
.join('; ');
|
|
210
|
+
stepRules.push(`${key} { ${declarations} }`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return `@keyframes ${name} { ${stepRules.join(' ')} }`;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Convert camelCase to kebab-case.
|
|
217
|
+
*/
|
|
218
|
+
function camelToKebab(str) {
|
|
219
|
+
return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Zero-runtime module for programmatic use.
|
|
10
|
+
*
|
|
11
|
+
* For the Babel plugin, import from '@cube-dev/ui-kit/tasty/zero/babel'
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { extractStylesWithChunks, CSSWriter } from '@cube-dev/ui-kit/tasty/zero';
|
|
16
|
+
*
|
|
17
|
+
* const chunks = extractStylesWithChunks({ fill: '#blue', padding: '2x' });
|
|
18
|
+
* const writer = new CSSWriter('output.css');
|
|
19
|
+
* chunks.forEach(chunk => writer.add(chunk.className, chunk.css));
|
|
20
|
+
* writer.write();
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
// Core extraction utilities
|
|
24
|
+
export { extractStylesWithChunks, extractStylesForSelector } from './extractor.js';
|
|
25
|
+
// CSS output utilities
|
|
26
|
+
export { CSSWriter } from './css-writer.js';
|
|
27
|
+
|
|
28
|
+
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Next.js configuration wrapper for tasty-zero.
|
|
10
|
+
*
|
|
11
|
+
* Provides a convenient way to configure the Babel plugin for Next.js projects.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```javascript
|
|
15
|
+
* // next.config.js
|
|
16
|
+
* const { withTastyZero } = require('@cube-dev/ui-kit/tasty/zero/next');
|
|
17
|
+
*
|
|
18
|
+
* module.exports = withTastyZero({
|
|
19
|
+
* output: 'public/tasty.css',
|
|
20
|
+
* })({
|
|
21
|
+
* // your Next.js config
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import * as path from 'path';
|
|
26
|
+
/**
|
|
27
|
+
* Next.js configuration wrapper for tasty-zero.
|
|
28
|
+
*
|
|
29
|
+
* @param options - Configuration options
|
|
30
|
+
* @returns A function that wraps the Next.js config
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```javascript
|
|
34
|
+
* // next.config.js
|
|
35
|
+
* const { withTastyZero } = require('@cube-dev/ui-kit/tasty/zero/next');
|
|
36
|
+
*
|
|
37
|
+
* module.exports = withTastyZero()({
|
|
38
|
+
* reactStrictMode: true,
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function withTastyZero(options = {}) {
|
|
43
|
+
const { output = 'public/tasty.css', enabled = true } = options;
|
|
44
|
+
return (nextConfig = {}) => {
|
|
45
|
+
if (!enabled) {
|
|
46
|
+
return nextConfig;
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
...nextConfig,
|
|
50
|
+
webpack(config, context) {
|
|
51
|
+
const { isServer, dir } = context;
|
|
52
|
+
// Only process on client build to avoid duplicate CSS generation
|
|
53
|
+
if (!isServer) {
|
|
54
|
+
// Get absolute output path
|
|
55
|
+
const absoluteOutput = path.resolve(dir || process.cwd(), output);
|
|
56
|
+
// Find existing babel-loader rule or add new one
|
|
57
|
+
const babelPluginConfig = [
|
|
58
|
+
require.resolve('./babel'),
|
|
59
|
+
{ output: absoluteOutput },
|
|
60
|
+
];
|
|
61
|
+
// Add our plugin to the existing babel config or create new rule
|
|
62
|
+
const existingRule = config.module?.rules?.find((rule) => rule.use?.loader === 'babel-loader' ||
|
|
63
|
+
rule.use?.some?.((u) => u.loader === 'babel-loader'));
|
|
64
|
+
if (existingRule) {
|
|
65
|
+
// Add to existing babel-loader
|
|
66
|
+
const babelUse = Array.isArray(existingRule.use)
|
|
67
|
+
? existingRule.use.find((u) => u.loader === 'babel-loader')
|
|
68
|
+
: existingRule.use;
|
|
69
|
+
if (babelUse?.options) {
|
|
70
|
+
babelUse.options.plugins = babelUse.options.plugins || [];
|
|
71
|
+
babelUse.options.plugins.push(babelPluginConfig);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// Add new rule for our plugin
|
|
76
|
+
config.module = config.module || {};
|
|
77
|
+
config.module.rules = config.module.rules || [];
|
|
78
|
+
config.module.rules.push({
|
|
79
|
+
test: /\.(tsx?|jsx?)$/,
|
|
80
|
+
exclude: /node_modules/,
|
|
81
|
+
use: [
|
|
82
|
+
{
|
|
83
|
+
loader: require.resolve('babel-loader'),
|
|
84
|
+
options: {
|
|
85
|
+
plugins: [babelPluginConfig],
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Chain with existing webpack config
|
|
93
|
+
if (typeof nextConfig.webpack === 'function') {
|
|
94
|
+
return nextConfig.webpack(config, context);
|
|
95
|
+
}
|
|
96
|
+
return config;
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Base design system tokens.
|
|
10
|
+
* These define the fundamental units and values used throughout the system.
|
|
11
|
+
*
|
|
12
|
+
* Keys use $ prefix for CSS custom properties.
|
|
13
|
+
*/
|
|
14
|
+
export const BASE_TOKENS = {
|
|
15
|
+
// Typography base
|
|
16
|
+
/** @deprecated Use preset tokens instead */
|
|
17
|
+
'$font-size': '14px',
|
|
18
|
+
/** @deprecated Use preset tokens instead */
|
|
19
|
+
'$line-height': '20px',
|
|
20
|
+
// Input typography
|
|
21
|
+
'$input-font-size': '14px',
|
|
22
|
+
'$input-line-height': '20px',
|
|
23
|
+
'$input-letter-spacing': '0.02em',
|
|
24
|
+
// Opacity & dimensions
|
|
25
|
+
/** Opacity for disabled elements */
|
|
26
|
+
'$disabled-opacity': '.4',
|
|
27
|
+
/** Base gap unit for spacing (used with `.5x`, `1x`, `2x` etc.) */
|
|
28
|
+
$gap: '8px',
|
|
29
|
+
/** Stroke width for icons */
|
|
30
|
+
'$stroke-width': 1.5,
|
|
31
|
+
/** Focus outline width */
|
|
32
|
+
'$outline-width': 'calc(1rem / 16 * 3)',
|
|
33
|
+
/** Border width for bordered elements */
|
|
34
|
+
'$border-width': '1px',
|
|
35
|
+
// Border radius
|
|
36
|
+
/** Base border radius (used with `1r`, `2r` etc.) */
|
|
37
|
+
$radius: '6px',
|
|
38
|
+
/** Larger radius using tasty calc: 1r + 0.5x */
|
|
39
|
+
'$large-radius': '(1r + .5x)',
|
|
40
|
+
/** Card border radius */
|
|
41
|
+
'$card-radius': '(1r + .5x)',
|
|
42
|
+
/** Sharp corner for leaf shapes */
|
|
43
|
+
'$leaf-sharp-radius': '0px',
|
|
44
|
+
// Misc dimensions
|
|
45
|
+
/** Width of fade effect for overflowing content */
|
|
46
|
+
'$fade-width': '32px',
|
|
47
|
+
/** Minimum dialog width (responsive) */
|
|
48
|
+
'$min-dialog-size': 'min(288px, calc(100vw - (2 * var(--gap))))',
|
|
49
|
+
// Transitions
|
|
50
|
+
/** Default transition duration */
|
|
51
|
+
$transition: '80ms',
|
|
52
|
+
/** Transition for disclosure animations */
|
|
53
|
+
'$disclosure-transition': '120ms',
|
|
54
|
+
// Scrollbar tokens
|
|
55
|
+
'$scrollbar-width': '1.5x',
|
|
56
|
+
'$scrollbar-outline-width': '1ow',
|
|
57
|
+
'$scrollbar-radius': '1.5r',
|
|
58
|
+
'#scrollbar-thumb': '#text.5',
|
|
59
|
+
'#scrollbar-outline': '#clear',
|
|
60
|
+
'#scrollbar-bg': '#dark-bg',
|
|
61
|
+
'#scrollbar-corner': '#clear',
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Color tokens with # prefix for tasty color definitions.
|
|
10
|
+
* The tasty system automatically generates {name}-color-rgb variants.
|
|
11
|
+
*/
|
|
12
|
+
export const COLOR_TOKENS = {
|
|
13
|
+
// Base colors
|
|
14
|
+
'#pink': 'rgb(255 100 146)',
|
|
15
|
+
'#pink-02': 'rgb(255 131 168)',
|
|
16
|
+
'#purple': 'rgb(113 110 238)',
|
|
17
|
+
'#purple-text': 'rgb(105 103 227)',
|
|
18
|
+
'#purple-bg': 'rgb(241 239 250)',
|
|
19
|
+
'#purple-icon': 'rgb(142 134 237)',
|
|
20
|
+
'#purple-01': 'rgb(122 119 255)',
|
|
21
|
+
'#purple-02': 'rgb(149 146 255)',
|
|
22
|
+
'#purple-03': 'rgb(175 173 255)',
|
|
23
|
+
'#purple-04': 'rgb(202 201 255)',
|
|
24
|
+
'#focus': 'rgb(172 163 238)',
|
|
25
|
+
'#text': 'rgb(91 92 125)',
|
|
26
|
+
'#dark': 'rgb(25 26 46)',
|
|
27
|
+
'#dark-01': 'rgb(25 26 46)',
|
|
28
|
+
'#dark-02': 'rgb(69 68 98)',
|
|
29
|
+
'#dark-03': 'rgb(115 114 139)',
|
|
30
|
+
'#dark-04': 'rgb(161 161 178)',
|
|
31
|
+
'#dark-05': 'rgb(213 213 222)',
|
|
32
|
+
'#dark-bg': 'rgb(249 249 251)',
|
|
33
|
+
'#light': 'rgb(246 246 248)',
|
|
34
|
+
'#white': 'rgb(255 255 255)',
|
|
35
|
+
'#black': 'rgb(0 0 0)',
|
|
36
|
+
'#danger': 'rgb(227 70 75)',
|
|
37
|
+
'#danger-text': 'rgb(208 57 56)',
|
|
38
|
+
'#danger-bg': 'rgb(253 245 244)',
|
|
39
|
+
'#danger-icon': 'rgb(245 101 99)',
|
|
40
|
+
'#success': 'rgb(9 145 88)',
|
|
41
|
+
'#success-text': 'rgb(12 135 82)',
|
|
42
|
+
'#success-icon': 'rgb(40 165 104)',
|
|
43
|
+
'#success-bg': 'rgb(238 249 242)',
|
|
44
|
+
'#note': 'rgb(158 119 19)',
|
|
45
|
+
'#note-text': 'rgb(150 112 8)',
|
|
46
|
+
'#note-bg': 'rgb(253 245 233)',
|
|
47
|
+
'#note-icon': 'rgb(181 140 44)',
|
|
48
|
+
'#border': 'rgb(227 227 233)',
|
|
49
|
+
'#light-border': 'rgb(227 227 233)',
|
|
50
|
+
// Semantic colors
|
|
51
|
+
'#clear': 'transparent',
|
|
52
|
+
'#border-opaque': 'rgb(227 227 233)',
|
|
53
|
+
'#shadow': '#dark.06',
|
|
54
|
+
'#draft': '#dark.2',
|
|
55
|
+
'#minor': '#dark.65',
|
|
56
|
+
'#danger-bg-hover': '#danger.1',
|
|
57
|
+
'#dark-75': '#dark.75',
|
|
58
|
+
'#primary': '#purple',
|
|
59
|
+
// Pink opacity variants
|
|
60
|
+
'#pink-8': '#pink.2',
|
|
61
|
+
'#pink-9': '#pink.1',
|
|
62
|
+
// Disabled state colors
|
|
63
|
+
'#disabled': '#dark-01.25',
|
|
64
|
+
'#disabled-text': '#dark-01.25',
|
|
65
|
+
'#disabled-bg': '#dark-05.2',
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Design tokens for the Cube UI Kit.
|
|
10
|
+
*
|
|
11
|
+
* This module exports all design tokens used throughout the design system.
|
|
12
|
+
* All token keys use $ prefix for CSS custom properties.
|
|
13
|
+
*
|
|
14
|
+
* Categories:
|
|
15
|
+
* - Colors: Base color palette with -color and -color-rgb variants
|
|
16
|
+
* - Typography: Font presets for headings, text, paragraphs, etc.
|
|
17
|
+
* - Sizes: Component size values (XS, SM, MD, LG, XL)
|
|
18
|
+
* - Spacing: Space tokens using gap multipliers
|
|
19
|
+
* - Shadows: Shadow definitions for elevation
|
|
20
|
+
* - Layout: Common layout dimensions
|
|
21
|
+
* - Base: Core design system values
|
|
22
|
+
*/
|
|
23
|
+
import { generateTypographyTokens } from '../tasty/utils/typography.js';
|
|
24
|
+
import { BASE_TOKENS } from './base.js';
|
|
25
|
+
import { COLOR_TOKENS } from './colors.js';
|
|
26
|
+
import { LAYOUT_TOKENS } from './layout.js';
|
|
27
|
+
import { SHADOW_TOKENS } from './shadows.js';
|
|
28
|
+
import { SIZE_TOKENS } from './sizes.js';
|
|
29
|
+
import { SPACE_TOKENS } from './spacing.js';
|
|
30
|
+
/**
|
|
31
|
+
* All design tokens combined into a single Styles object.
|
|
32
|
+
* Keys use $ prefix for CSS custom properties.
|
|
33
|
+
*
|
|
34
|
+
* Ready for use with useGlobalStyles('body', TOKENS).
|
|
35
|
+
*
|
|
36
|
+
* Includes:
|
|
37
|
+
* - Base tokens ($gap, $radius, etc.)
|
|
38
|
+
* - Space tokens ($space-xs, $space-sm, etc.)
|
|
39
|
+
* - Size tokens ($size-xs, $size-sm, etc.)
|
|
40
|
+
* - Shadow tokens ($item-shadow, $card-shadow, etc.)
|
|
41
|
+
* - Layout tokens ($max-content-width, $topbar-height, etc.)
|
|
42
|
+
* - Typography tokens ($h1-font-size, $t3-line-height, etc.)
|
|
43
|
+
* - Color tokens ($purple-color, $purple-color-rgb, etc.)
|
|
44
|
+
*/
|
|
45
|
+
export const TOKENS = {
|
|
46
|
+
...BASE_TOKENS,
|
|
47
|
+
...SPACE_TOKENS,
|
|
48
|
+
...SIZE_TOKENS,
|
|
49
|
+
...SHADOW_TOKENS,
|
|
50
|
+
...LAYOUT_TOKENS,
|
|
51
|
+
...generateTypographyTokens(),
|
|
52
|
+
...COLOR_TOKENS,
|
|
53
|
+
};
|
|
54
|
+
// Re-export category modules for direct access
|
|
55
|
+
export { COLOR_TOKENS } from './colors.js';
|
|
56
|
+
export { SIZES, SIZE_NAME_TO_KEY, SIZE_TOKENS } from './sizes.js';
|
|
57
|
+
export { SPACE_TOKENS } from './spacing.js';
|
|
58
|
+
export { SHADOW_TOKENS } from './shadows.js';
|
|
59
|
+
export { LAYOUT_TOKENS } from './layout.js';
|
|
60
|
+
export { BASE_TOKENS } from './base.js';
|
|
61
|
+
export { TYPOGRAPHY_PRESETS } from './typography.js';
|
|
62
|
+
|
|
63
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Layout-related tokens for common UI dimensions.
|
|
10
|
+
*
|
|
11
|
+
* Keys use $ prefix for CSS custom properties.
|
|
12
|
+
*/
|
|
13
|
+
export const LAYOUT_TOKENS = {
|
|
14
|
+
/** Maximum width for main content areas */
|
|
15
|
+
'$max-content-width': '1440px',
|
|
16
|
+
/** Height of the top navigation bar */
|
|
17
|
+
'$topbar-height': '48px',
|
|
18
|
+
/** Height of the development mode indicator bar */
|
|
19
|
+
'$devmodebar-height': '54px',
|
|
20
|
+
/** Width of the sidebar navigation */
|
|
21
|
+
'$sidebar-width': '200px',
|
|
22
|
+
/** Base border radius (legacy, prefer `radius`) */
|
|
23
|
+
'$border-radius-base': '4px',
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Shadow tokens using tasty shorthand syntax.
|
|
10
|
+
*
|
|
11
|
+
* Format: `<offset-y> <blur> <spread?> <color>`
|
|
12
|
+
* - `1bw` = 1 × border-width
|
|
13
|
+
* - `.5x` = 0.5 × gap
|
|
14
|
+
* - `#dark.15` = dark color at 15% opacity
|
|
15
|
+
*
|
|
16
|
+
* Keys use $ prefix for CSS custom properties.
|
|
17
|
+
*/
|
|
18
|
+
export const SHADOW_TOKENS = {
|
|
19
|
+
/** Subtle shadow for list items */
|
|
20
|
+
'$item-shadow': '0 1bw .375x #dark.15',
|
|
21
|
+
/** Standard card elevation */
|
|
22
|
+
'$card-shadow': '0 .5x 2x #shadow',
|
|
23
|
+
/** Elevated dialog shadow */
|
|
24
|
+
'$dialog-shadow': '0 1x 4x #dark.15',
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Component size values in pixels.
|
|
10
|
+
* Used for buttons, inputs, and other interactive elements.
|
|
11
|
+
*/
|
|
12
|
+
export const SIZES = {
|
|
13
|
+
XS: 24,
|
|
14
|
+
SM: 28,
|
|
15
|
+
MD: 32,
|
|
16
|
+
LG: 40,
|
|
17
|
+
XL: 48,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Map from size names to size keys.
|
|
21
|
+
* @example SIZE_NAME_TO_KEY['small'] // 'SM'
|
|
22
|
+
*/
|
|
23
|
+
export const SIZE_NAME_TO_KEY = {
|
|
24
|
+
xsmall: 'XS',
|
|
25
|
+
small: 'SM',
|
|
26
|
+
medium: 'MD',
|
|
27
|
+
large: 'LG',
|
|
28
|
+
xlarge: 'XL',
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Size tokens with $ prefix for CSS custom properties.
|
|
32
|
+
* Creates tokens like `$size-xs`, `$size-sm`, etc.
|
|
33
|
+
*/
|
|
34
|
+
export const SIZE_TOKENS = {
|
|
35
|
+
'$size-xs': `${SIZES.XS}px`,
|
|
36
|
+
'$size-sm': `${SIZES.SM}px`,
|
|
37
|
+
'$size-md': `${SIZES.MD}px`,
|
|
38
|
+
'$size-lg': `${SIZES.LG}px`,
|
|
39
|
+
'$size-xl': `${SIZES.XL}px`,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.99.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Spacing tokens using tasty multiplier syntax.
|
|
10
|
+
* Values like `.5x` mean 0.5 × gap, `2x` means 2 × gap.
|
|
11
|
+
*
|
|
12
|
+
* Keys use $ prefix for CSS custom properties.
|
|
13
|
+
*/
|
|
14
|
+
export const SPACE_TOKENS = {
|
|
15
|
+
'$space-xs': '.5x',
|
|
16
|
+
'$space-sm': '.75x',
|
|
17
|
+
'$space-md': '1x',
|
|
18
|
+
'$space-lg': '1.5x',
|
|
19
|
+
'$space-xl': '2x',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
|