@cube-dev/ui-kit 0.99.3 → 0.100.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 +129 -0
- package/es/_internal/hooks/index.js +1 -1
- package/es/_internal/hooks/use-chained-callback.js +1 -1
- package/es/_internal/hooks/use-debounced-value.js +1 -1
- package/es/_internal/hooks/use-deprecation-warning.js +1 -1
- package/es/_internal/hooks/use-effect-once.js +1 -1
- package/es/_internal/hooks/use-event.js +1 -1
- package/es/_internal/hooks/use-is-first-render.js +1 -1
- package/es/_internal/hooks/use-sync-ref.js +1 -1
- package/es/_internal/hooks/use-timer/index.js +1 -1
- package/es/_internal/hooks/use-timer/timer.js +1 -1
- package/es/_internal/hooks/use-timer/use-timer.js +1 -1
- package/es/_internal/hooks/use-update-effect.js +1 -1
- package/es/_internal/hooks/use-warn.js +1 -1
- package/es/_internal/index.js +1 -1
- package/es/components/Block.js +1 -1
- package/es/components/CollectionItem.js +1 -1
- package/es/components/GlobalStyles.js +1 -1
- package/es/components/GridProvider.js +1 -1
- package/es/components/HiddenInput.js +1 -1
- package/es/components/OpenTrasition.js +1 -1
- package/es/components/Root.js +1 -1
- package/es/components/actions/Action/Action.js +1 -1
- package/es/components/actions/Button/Button.js +1 -1
- package/es/components/actions/Button/index.js +1 -1
- package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/es/components/actions/CommandMenu/index.js +1 -1
- package/es/components/actions/CommandMenu/styled.js +1 -1
- package/es/components/actions/ItemAction/ItemAction.js +1 -1
- package/es/components/actions/ItemAction/index.js +1 -1
- package/es/components/actions/ItemActionContext.js +1 -1
- package/es/components/actions/ItemButton/ItemButton.js +1 -1
- package/es/components/actions/ItemButton/index.js +1 -1
- package/es/components/actions/Link/Link.js +1 -1
- package/es/components/actions/Menu/Menu.js +1 -1
- package/es/components/actions/Menu/MenuItem.js +1 -1
- package/es/components/actions/Menu/MenuSection.js +1 -1
- package/es/components/actions/Menu/MenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
- 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 +1 -1
- package/es/components/actions/Menu/styled.js +1 -1
- package/es/components/actions/index.js +1 -1
- package/es/components/actions/use-action.js +1 -1
- package/es/components/actions/use-anchored-menu.js +1 -1
- package/es/components/actions/use-context-menu.js +1 -1
- package/es/components/content/ActiveZone/ActiveZone.js +1 -1
- package/es/components/content/Alert/Alert.js +1 -1
- package/es/components/content/Alert/index.js +1 -1
- package/es/components/content/Alert/types.js +1 -1
- package/es/components/content/Alert/use-alert.js +1 -1
- package/es/components/content/Avatar/Avatar.js +1 -1
- package/es/components/content/Badge/Badge.js +1 -1
- package/es/components/content/Card/Card.js +1 -1
- package/es/components/content/Content.js +1 -1
- package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/es/components/content/CopyPasteBlock/index.js +1 -1
- package/es/components/content/CopySnippet/CopySnippet.js +1 -1
- package/es/components/content/CopySnippet/index.js +1 -1
- package/es/components/content/Disclosure/Disclosure.js +1 -1
- package/es/components/content/Disclosure/index.js +1 -1
- package/es/components/content/Divider.js +1 -1
- package/es/components/content/Footer.js +1 -1
- package/es/components/content/Header.js +1 -1
- package/es/components/content/HotKeys/HotKeys.js +1 -1
- package/es/components/content/HotKeys/index.js +1 -1
- package/es/components/content/Item/Item.js +11 -7
- package/es/components/content/Item/index.js +1 -1
- package/es/components/content/ItemBadge/ItemBadge.js +1 -1
- package/es/components/content/ItemBadge/index.js +1 -1
- package/es/components/content/Layout/GridLayout.js +1 -1
- package/es/components/content/Layout/Layout.js +1 -1
- package/es/components/content/Layout/LayoutBlock.js +1 -1
- package/es/components/content/Layout/LayoutCenter.js +1 -1
- package/es/components/content/Layout/LayoutContainer.js +1 -1
- package/es/components/content/Layout/LayoutContent.js +1 -1
- package/es/components/content/Layout/LayoutContext.js +1 -1
- package/es/components/content/Layout/LayoutFlex.js +1 -1
- package/es/components/content/Layout/LayoutFooter.js +1 -1
- package/es/components/content/Layout/LayoutGrid.js +1 -1
- package/es/components/content/Layout/LayoutHeader.js +1 -1
- package/es/components/content/Layout/LayoutPane.js +1 -1
- package/es/components/content/Layout/LayoutPanel.js +1 -1
- package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/es/components/content/Layout/LayoutToolbar.js +1 -1
- package/es/components/content/Layout/hooks/useTinyScrollbar.js +13 -1
- package/es/components/content/Layout/index.js +1 -1
- package/es/components/content/Layout/utils.js +1 -1
- package/es/components/content/List/SectionHeading.js +1 -1
- package/es/components/content/List/index.js +1 -1
- package/es/components/content/Paragraph.js +1 -1
- package/es/components/content/Placeholder/Placeholder.js +1 -1
- package/es/components/content/PrismCode/PrismCode.js +1 -1
- package/es/components/content/PrismCode/prismSetup.js +1 -1
- package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/es/components/content/Result/Result.js +1 -1
- package/es/components/content/Skeleton/Skeleton.js +1 -1
- package/es/components/content/Tag/Tag.js +1 -1
- package/es/components/content/Text.js +1 -1
- package/es/components/content/TextItem/TextItem.js +1 -1
- package/es/components/content/TextItem/index.js +1 -1
- package/es/components/content/Title.js +1 -1
- package/es/components/content/highlightText.js +1 -1
- package/es/components/content/use-auto-tooltip.js +1 -1
- package/es/components/fields/Checkbox/Checkbox.js +1 -1
- package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/es/components/fields/Checkbox/context.js +1 -1
- package/es/components/fields/Checkbox/index.js +1 -1
- package/es/components/fields/ComboBox/ComboBox.js +1 -1
- package/es/components/fields/ComboBox/index.js +1 -1
- package/es/components/fields/DatePicker/DateInput.js +1 -1
- package/es/components/fields/DatePicker/DateInputBase.js +1 -1
- package/es/components/fields/DatePicker/DatePicker.js +1 -1
- package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/es/components/fields/DatePicker/TimeInput.js +1 -1
- package/es/components/fields/DatePicker/index.js +1 -1
- package/es/components/fields/DatePicker/intl.js +1 -1
- package/es/components/fields/DatePicker/parseDate.js +1 -1
- package/es/components/fields/DatePicker/props.js +1 -1
- package/es/components/fields/DatePicker/types.js +1 -1
- package/es/components/fields/DatePicker/utils.js +1 -1
- package/es/components/fields/FileInput/FileInput.js +1 -1
- package/es/components/fields/FilterListBox/FilterListBox.js +49 -2
- package/es/components/fields/FilterListBox/index.js +1 -1
- package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/es/components/fields/FilterPicker/index.js +1 -1
- package/es/components/fields/Input/Input.js +1 -1
- package/es/components/fields/Input/index.js +1 -1
- package/es/components/fields/ListBox/ListBox.js +11 -4
- package/es/components/fields/ListBox/index.js +1 -1
- package/es/components/fields/NumberInput/NumberInput.js +1 -1
- package/es/components/fields/NumberInput/StepButton.js +1 -1
- package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/es/components/fields/Picker/Picker.js +1 -1
- package/es/components/fields/Picker/index.js +1 -1
- package/es/components/fields/RadioGroup/Radio.js +1 -1
- package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/es/components/fields/RadioGroup/context.js +1 -1
- package/es/components/fields/RadioGroup/index.js +1 -1
- package/es/components/fields/SearchInput/SearchInput.js +1 -1
- package/es/components/fields/SearchInput/index.js +1 -1
- package/es/components/fields/Select/Select.js +1 -1
- package/es/components/fields/Select/index.js +1 -1
- package/es/components/fields/Slider/Gradation.js +1 -1
- package/es/components/fields/Slider/Header.js +1 -1
- package/es/components/fields/Slider/RangeSlider.js +1 -1
- package/es/components/fields/Slider/Slider.js +1 -1
- package/es/components/fields/Slider/SliderBase.js +1 -1
- package/es/components/fields/Slider/SliderInput.js +1 -1
- package/es/components/fields/Slider/SliderThumb.js +1 -1
- package/es/components/fields/Slider/SliderTrack.js +1 -1
- package/es/components/fields/Slider/elements.js +1 -1
- package/es/components/fields/Slider/index.js +1 -1
- package/es/components/fields/Slider/types.js +1 -1
- package/es/components/fields/Switch/Switch.js +1 -1
- package/es/components/fields/Switch/index.js +1 -1
- package/es/components/fields/TextArea/TextArea.js +1 -1
- package/es/components/fields/TextArea/index.js +1 -1
- package/es/components/fields/TextInput/TextInput.js +1 -1
- package/es/components/fields/TextInput/TextInputBase.js +1 -1
- package/es/components/fields/TextInput/index.js +1 -1
- package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/es/components/fields/TextInputMapper/index.js +1 -1
- package/es/components/fields/index.js +1 -1
- package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
- package/es/components/form/FieldWrapper/index.js +1 -1
- package/es/components/form/FieldWrapper/types.js +1 -1
- package/es/components/form/Form/Field.js +1 -1
- package/es/components/form/Form/Form.js +1 -1
- package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/es/components/form/Form/ResetButton/index.js +1 -1
- package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/es/components/form/Form/SubmitButton/index.js +1 -1
- package/es/components/form/Form/SubmitError.js +1 -1
- package/es/components/form/Form/index.js +1 -1
- package/es/components/form/Form/types.js +1 -1
- package/es/components/form/Form/use-field/index.js +1 -1
- package/es/components/form/Form/use-field/types.js +1 -1
- package/es/components/form/Form/use-field/use-field-props.js +1 -1
- package/es/components/form/Form/use-field/use-field.js +1 -1
- package/es/components/form/Form/use-form.js +1 -1
- package/es/components/form/Form/validation.js +1 -1
- package/es/components/form/Label.js +1 -1
- package/es/components/form/index.js +1 -1
- package/es/components/form/wrapper.js +1 -1
- package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/es/components/helpers/DisplayTransition/index.js +1 -1
- package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/es/components/helpers/index.js +1 -1
- package/es/components/layout/Flex.js +1 -1
- package/es/components/layout/Flow.js +1 -1
- package/es/components/layout/Grid.js +1 -1
- package/es/components/layout/Panel.js +1 -1
- package/es/components/layout/Prefix.js +1 -1
- package/es/components/layout/ResizablePanel.js +1 -1
- package/es/components/layout/Space.js +1 -1
- package/es/components/layout/Suffix.js +1 -1
- package/es/components/navigation/Tabs/Tabs.js +920 -0
- package/es/components/navigation/Tabs/index.js +10 -0
- package/es/components/navigation/index.js +10 -0
- package/es/components/organisms/FileTabs/FileTabs.js +1 -1
- package/es/components/organisms/StatsCard/StatsCard.js +1 -1
- package/es/components/other/Calendar/Calendar.js +1 -1
- package/es/components/other/Calendar/CalendarCell.js +1 -1
- package/es/components/other/Calendar/CalendarGrid.js +1 -1
- package/es/components/other/Calendar/RangeCalendar.js +1 -1
- package/es/components/other/CloudLogo/CloudLogo.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/es/components/overlays/AlertDialog/index.js +1 -1
- package/es/components/overlays/AlertDialog/types.js +1 -1
- package/es/components/overlays/Dialog/Dialog.js +1 -1
- package/es/components/overlays/Dialog/DialogContainer.js +1 -1
- package/es/components/overlays/Dialog/DialogForm.js +1 -1
- package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/es/components/overlays/Dialog/context.js +1 -1
- package/es/components/overlays/Dialog/index.js +1 -1
- package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/es/components/overlays/Modal/Modal.js +1 -1
- package/es/components/overlays/Modal/OpenTransition.js +1 -1
- package/es/components/overlays/Modal/Overlay.js +1 -1
- package/es/components/overlays/Modal/Popover.js +1 -1
- package/es/components/overlays/Modal/Tray.js +1 -1
- package/es/components/overlays/Modal/Underlay.js +1 -1
- package/es/components/overlays/Modal/index.js +1 -1
- package/es/components/overlays/Modal/types.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
- package/es/components/overlays/NewNotifications/Notification.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
- package/es/components/overlays/NewNotifications/index.js +1 -1
- package/es/components/overlays/NewNotifications/types.js +1 -1
- package/es/components/overlays/Notification/Notification.js +1 -1
- package/es/components/overlays/OverlayWrapper.js +1 -1
- package/es/components/overlays/Toasts/Toast.js +1 -1
- package/es/components/overlays/Toasts/index.js +1 -1
- package/es/components/overlays/Toasts/types.js +1 -1
- package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
- package/es/components/overlays/Tooltip/Tooltip.js +1 -1
- package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/es/components/overlays/Tooltip/context.js +1 -1
- package/es/components/overlays/Tooltip/index.js +1 -1
- package/es/components/portal/Portal.js +1 -1
- package/es/components/portal/PortalProvider.js +1 -1
- package/es/components/portal/index.js +1 -1
- package/es/components/portal/types.js +1 -1
- package/es/components/portal/usePortal.js +1 -1
- package/es/components/shared/InvalidIcon.js +1 -1
- package/es/components/shared/ValidIcon.js +1 -1
- package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/es/components/status/LoadingAnimation/index.js +1 -1
- package/es/components/status/Spin/Cube.js +1 -1
- package/es/components/status/Spin/InternalSpinner.js +1 -1
- package/es/components/status/Spin/Spin.js +1 -1
- package/es/components/status/Spin/SpinsContainer.js +1 -1
- package/es/components/status/Spin/index.js +1 -1
- package/es/components/status/Spin/types.js +1 -1
- package/es/components/status/index.js +1 -1
- package/es/data/item-themes.js +1 -1
- package/es/data/themes.js +1 -1
- package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/es/icons/AdjustmentsIcon.js +1 -1
- package/es/icons/AiIcon.js +1 -1
- package/es/icons/AreaChartIcon.js +1 -1
- package/es/icons/BackwardIcon.js +1 -1
- package/es/icons/BarChartIcon.js +1 -1
- package/es/icons/BellFilledIcon.js +1 -1
- package/es/icons/BellIcon.js +1 -1
- package/es/icons/BooleanIcon.js +1 -1
- package/es/icons/CalendarEditIcon.js +1 -1
- package/es/icons/CalendarIcon.js +1 -1
- package/es/icons/CaretDownIcon.js +1 -1
- package/es/icons/CaretUpIcon.js +1 -1
- package/es/icons/ChartAreaStackedIcon.js +1 -1
- package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarGroupedIcon.js +1 -1
- package/es/icons/ChartBarHorizontalIcon.js +1 -1
- package/es/icons/ChartBarLineIcon.js +1 -1
- package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBoxPlot2Icon.js +1 -1
- package/es/icons/ChartBoxPlotIcon.js +1 -1
- package/es/icons/ChartBubbleIcon.js +1 -1
- package/es/icons/ChartDonut2Icon.js +1 -1
- package/es/icons/ChartFunnelIcon.js +1 -1
- package/es/icons/ChartHeatmapIcon.js +1 -1
- package/es/icons/ChartKPIIcon.js +1 -1
- package/es/icons/ChartPie2Icon.js +1 -1
- package/es/icons/ChartScatterIcon.js +1 -1
- package/es/icons/CheckCircleFilledIcon.js +1 -1
- package/es/icons/CheckCircleIcon.js +1 -1
- package/es/icons/CheckIcon.js +1 -1
- package/es/icons/CircleFilledIcon.js +1 -1
- package/es/icons/ClearIcon.js +1 -1
- package/es/icons/CloseCircleFilledIcon.js +1 -1
- package/es/icons/CloseCircleIcon.js +1 -1
- package/es/icons/CloseIcon.js +1 -1
- package/es/icons/CodeIcon.js +1 -1
- package/es/icons/ColumnTotalIcon.js +1 -1
- package/es/icons/CopyIcon.js +1 -1
- package/es/icons/CountIcon.js +1 -1
- package/es/icons/CubeIcon.js +1 -1
- package/es/icons/CubePauseIcon.js +1 -1
- package/es/icons/CubePlayIcon.js +1 -1
- package/es/icons/CurrencyDollarIcon.js +1 -1
- package/es/icons/DangerIcon.js +1 -1
- package/es/icons/DashboardIcon.js +1 -1
- package/es/icons/DatabaseIcon.js +1 -1
- package/es/icons/DecimalDecreaseIcon.js +1 -1
- package/es/icons/DecimalIncreaseIcon.js +1 -1
- package/es/icons/DirectionIcon.js +1 -1
- package/es/icons/DonutIcon.js +1 -1
- package/es/icons/DownIcon.js +1 -1
- package/es/icons/EditIcon.js +1 -1
- package/es/icons/ExclamationCircleFilledIcon.js +1 -1
- package/es/icons/ExclamationCircleIcon.js +1 -1
- package/es/icons/ExclamationIcon.js +1 -1
- package/es/icons/EyeIcon.js +1 -1
- package/es/icons/EyeInvisibleIcon.js +1 -1
- package/es/icons/FilterIcon.js +1 -1
- package/es/icons/FolderFilledIcon.js +1 -1
- package/es/icons/FolderIcon.js +1 -1
- package/es/icons/FolderOpenFilledIcon.js +1 -1
- package/es/icons/FolderOpenIcon.js +1 -1
- package/es/icons/ForwardIcon.js +1 -1
- package/es/icons/HierarchyIcon.js +1 -1
- package/es/icons/HierarchyOpenIcon.js +1 -1
- package/es/icons/Icon.js +1 -1
- package/es/icons/InfoCircleIcon.js +1 -1
- package/es/icons/InfoIcon.js +1 -1
- package/es/icons/KeyIcon.js +1 -1
- package/es/icons/LeftIcon.js +1 -1
- package/es/icons/LineChartIcon.js +1 -1
- package/es/icons/LoadingIcon.js +1 -1
- package/es/icons/LockFilledIcon.js +1 -1
- package/es/icons/LockIcon.js +1 -1
- package/es/icons/MoreIcon.js +1 -1
- package/es/icons/NotAllowedIcon.js +1 -1
- package/es/icons/Number123Icon.js +1 -1
- package/es/icons/NumberIcon.js +1 -1
- package/es/icons/PauseCircleFilledIcon.js +1 -1
- package/es/icons/PauseCircleIcon.js +1 -1
- package/es/icons/PauseIcon.js +1 -1
- package/es/icons/PercentageIcon.js +1 -1
- package/es/icons/PieChartIcon.js +1 -1
- package/es/icons/PlayCircleIcon.js +1 -1
- package/es/icons/PlayIcon.js +1 -1
- package/es/icons/PlusIcon.js +1 -1
- package/es/icons/ProgressBarIcon.js +1 -1
- package/es/icons/ReloadIcon.js +1 -1
- package/es/icons/ReportIcon.js +1 -1
- package/es/icons/ReturnIcon.js +1 -1
- package/es/icons/RightIcon.js +1 -1
- package/es/icons/RowTotalsIcon.js +1 -1
- package/es/icons/SchemeIcon.js +1 -1
- package/es/icons/SearchIcon.js +1 -1
- package/es/icons/SemanticQueryIcon.js +1 -1
- package/es/icons/SettingsIcon.js +1 -1
- package/es/icons/ShieldFilledIcon.js +1 -1
- package/es/icons/ShieldIcon.js +1 -1
- package/es/icons/SlashIcon.js +1 -1
- package/es/icons/SparklesIcon.js +1 -1
- package/es/icons/SqlIcon.js +1 -1
- package/es/icons/StatsIcon.js +1 -1
- package/es/icons/StopIcon.js +1 -1
- package/es/icons/StringIcon.js +1 -1
- package/es/icons/SubtotalsIcon.js +1 -1
- package/es/icons/SwitchIcon.js +1 -1
- package/es/icons/TableIcon.js +1 -1
- package/es/icons/ThumbsDownIcon.js +1 -1
- package/es/icons/ThumbsUpIcon.js +1 -1
- package/es/icons/ThunderboltCrossedIcon.js +1 -1
- package/es/icons/ThunderboltFilledIcon.js +1 -1
- package/es/icons/ThunderboltIcon.js +1 -1
- package/es/icons/TimeIcon.js +1 -1
- package/es/icons/TrashIcon.js +1 -1
- package/es/icons/UnlockIcon.js +1 -1
- package/es/icons/UpIcon.js +1 -1
- package/es/icons/UserGroupIcon.js +1 -1
- package/es/icons/UserIcon.js +1 -1
- package/es/icons/UserLockIcon.js +1 -1
- package/es/icons/ViewIcon.js +1 -1
- package/es/icons/WarningFilledIcon.js +1 -1
- package/es/icons/WarningIcon.js +1 -1
- package/es/icons/index.js +1 -1
- package/es/icons/wrap-icon.js +1 -1
- package/es/index.js +15 -1
- package/es/provider.js +1 -1
- 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 +1 -1
- package/es/shared/form.js +1 -1
- package/es/shared/index.js +1 -1
- package/es/stories/Form.legacy-stories.js +1 -1
- package/es/stories/FormFieldArgs.js +1 -1
- package/es/stories/SimpleLayout.stories.js +1 -1
- package/es/stories/Tasty.stories.js +1 -1
- package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
- package/es/stories/components/DialogFormApp.js +1 -1
- package/es/stories/components/StyledButton.js +1 -1
- package/es/stories/lists/baseProps.js +1 -1
- package/es/stories/playground/PlaygroundEditor.js +1 -1
- package/es/stories/playground/PlaygroundLayout.js +1 -1
- package/es/stories/playground/PlaygroundOutput.js +1 -1
- package/es/stories/playground/PlaygroundPreview.js +1 -1
- package/es/stories/playground/components/Button.js +1 -1
- package/es/stories/playground/components/Card.js +1 -1
- package/es/stories/playground/components/ScrollProgress.js +1 -1
- package/es/stories/playground/examples.js +1 -1
- package/es/tasty/chunks/cacheKey.js +1 -1
- package/es/tasty/chunks/definitions.js +97 -45
- package/es/tasty/chunks/index.js +2 -2
- package/es/tasty/chunks/renderChunk.js +1 -1
- package/es/tasty/config.js +88 -4
- package/es/tasty/debug.js +5 -5
- package/es/tasty/hooks/index.js +3 -1
- package/es/tasty/hooks/useGlobalStyles.js +1 -1
- package/es/tasty/hooks/useKeyframes.js +82 -0
- package/es/tasty/hooks/useProperty.js +100 -0
- package/es/tasty/hooks/useRawCSS.js +1 -1
- package/es/tasty/hooks/useStyles.js +16 -2
- package/es/tasty/index.js +3 -3
- package/es/tasty/injector/index.js +39 -1
- package/es/tasty/injector/injector.js +67 -16
- package/es/tasty/injector/sheet-manager.js +2 -2
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/keyframes/index.js +1 -1
- package/es/tasty/parser/classify.js +174 -4
- package/es/tasty/parser/const.js +3 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +51 -22
- package/es/tasty/parser/tokenizer.js +31 -12
- package/es/tasty/parser/types.js +29 -4
- package/es/tasty/pipeline/conditions.js +1 -1
- package/es/tasty/pipeline/exclusive.js +1 -1
- package/es/tasty/pipeline/index.js +1 -1
- package/es/tasty/pipeline/materialize.js +1 -1
- package/es/tasty/pipeline/parseStateKey.js +1 -1
- package/es/tasty/pipeline/simplify.js +1 -1
- package/es/tasty/plugins/index.js +1 -1
- package/es/tasty/plugins/okhsl-plugin.js +1 -1
- package/es/tasty/plugins/types.js +1 -1
- package/es/tasty/properties/index.js +211 -0
- package/es/tasty/states/index.js +8 -2
- package/es/tasty/static/index.js +1 -1
- package/es/tasty/static/tastyStatic.js +1 -1
- package/es/tasty/static/types.js +1 -1
- package/es/tasty/styles/align.js +1 -1
- package/es/tasty/styles/border.js +114 -20
- package/es/tasty/styles/boxShadow.combinator.js +2 -2
- package/es/tasty/styles/color.js +2 -2
- package/es/tasty/styles/createStyle.js +1 -1
- package/es/tasty/styles/dimension.js +100 -53
- package/es/tasty/styles/display.js +84 -4
- package/es/tasty/styles/fade.js +46 -13
- package/es/tasty/styles/fill.js +58 -9
- package/es/tasty/styles/flow.js +1 -1
- package/es/tasty/styles/gap.js +1 -1
- package/es/tasty/styles/height.js +4 -4
- package/es/tasty/styles/index.js +4 -3
- package/es/tasty/styles/inset.js +173 -23
- package/es/tasty/styles/justify.js +1 -1
- package/es/tasty/styles/list.js +2 -2
- package/es/tasty/styles/margin.js +1 -1
- package/es/tasty/styles/outline.js +48 -21
- package/es/tasty/styles/padding.js +1 -1
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +245 -37
- package/es/tasty/styles/preset.js +140 -40
- package/es/tasty/styles/radius.js +2 -2
- package/es/tasty/styles/reset.js +1 -1
- package/es/tasty/styles/scrollbar.js +1 -1
- package/es/tasty/styles/shadow.js +2 -2
- package/es/tasty/styles/styledScrollbar.js +1 -1
- package/es/tasty/styles/transition.js +20 -2
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +4 -4
- package/es/tasty/tasty.js +94 -113
- 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 +1 -1
- package/es/tasty/utils/modAttrs.js +1 -1
- package/es/tasty/utils/processTokens.js +1 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +51 -12
- package/es/tasty/utils/typography.js +1 -1
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tasty/zero/babel.js +5 -22
- package/es/tasty/zero/css-writer.js +1 -1
- package/es/tasty/zero/extractor.js +1 -1
- package/es/tasty/zero/index.js +1 -1
- package/es/tasty/zero/next.js +1 -1
- package/es/tokens/base.js +5 -1
- package/es/tokens/colors.js +1 -1
- package/es/tokens/index.js +1 -1
- package/es/tokens/layout.js +1 -1
- package/es/tokens/shadows.js +1 -1
- package/es/tokens/sizes.js +1 -1
- package/es/tokens/spacing.js +1 -1
- package/es/tokens/typography.js +1 -1
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/index.js +1 -1
- 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 +1 -1
- package/es/utils/react/chain.js +1 -1
- package/es/utils/react/forwardRefWithGenerics.js +1 -1
- package/es/utils/react/index.js +1 -1
- package/es/utils/react/interactions.js +1 -1
- package/es/utils/react/isTextOnly.js +1 -1
- package/es/utils/react/mapProps.js +1 -1
- package/es/utils/react/mergeProps.js +1 -1
- package/es/utils/react/nullableValue.js +1 -1
- package/es/utils/react/resolveIcon.js +1 -1
- package/es/utils/react/sharedStore.js +1 -1
- package/es/utils/react/useCombinedRefs.js +1 -1
- package/es/utils/react/useControlledFocusVisible.js +1 -1
- package/es/utils/react/useEventBus.js +1 -1
- package/es/utils/react/useId.js +1 -1
- package/es/utils/react/useIsDarwin.js +1 -1
- package/es/utils/react/useKeySymbols.js +1 -1
- package/es/utils/react/useLayoutEffect.js +1 -1
- package/es/utils/react/useLocalStorage.js +1 -1
- package/es/utils/react/useQaProps.js +1 -1
- package/es/utils/react/useViewportSize.js +1 -1
- package/es/utils/react/wrapNodeIfPlain.js +1 -1
- package/es/utils/tree.js +1 -1
- package/es/utils/warnings.js +1 -1
- package/es/version.js +2 -2
- package/package.json +1 -1
- package/types/components/HiddenInput.d.ts +6 -5
- package/types/components/actions/Button/Button.d.ts +18 -16
- package/types/components/actions/CommandMenu/styled.d.ts +30 -25
- package/types/components/actions/Menu/styled.d.ts +549 -541
- package/types/components/content/Item/Item.d.ts +7 -0
- package/types/components/content/Layout/hooks/useTinyScrollbar.d.ts +6 -0
- package/types/components/content/List/SectionHeading.d.ts +173 -172
- package/types/components/content/Text.d.ts +1197 -1190
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +173 -172
- package/types/components/fields/Select/Select.d.ts +6 -5
- package/types/components/fields/Slider/elements.d.ts +36 -30
- package/types/components/navigation/Tabs/Tabs.d.ts +236 -0
- package/types/components/navigation/Tabs/index.d.ts +2 -0
- package/types/components/navigation/index.d.ts +2 -0
- package/types/index.d.ts +1 -0
- package/types/tasty/chunks/definitions.d.ts +63 -18
- package/types/tasty/chunks/index.d.ts +1 -1
- package/types/tasty/config.d.ts +97 -1
- package/types/tasty/hooks/index.d.ts +3 -0
- package/types/tasty/hooks/useKeyframes.d.ts +52 -0
- package/types/tasty/hooks/useProperty.d.ts +75 -0
- package/types/tasty/index.d.ts +3 -2
- package/types/tasty/injector/index.d.ts +57 -1
- package/types/tasty/injector/injector.d.ts +19 -7
- package/types/tasty/injector/types.d.ts +14 -2
- package/types/tasty/parser/const.d.ts +1 -0
- package/types/tasty/parser/parser.d.ts +6 -0
- package/types/tasty/parser/tokenizer.d.ts +1 -1
- package/types/tasty/parser/types.d.ts +31 -1
- package/types/tasty/plugins/types.d.ts +20 -1
- package/types/tasty/properties/index.d.ts +90 -0
- package/types/tasty/styles/border.d.ts +11 -3
- package/types/tasty/styles/boxShadow.combinator.d.ts +2 -2
- package/types/tasty/styles/color.d.ts +2 -2
- package/types/tasty/styles/dimension.d.ts +16 -1
- package/types/tasty/styles/display.d.ts +24 -6
- package/types/tasty/styles/fade.d.ts +3 -3
- package/types/tasty/styles/fill.d.ts +16 -6
- package/types/tasty/styles/height.d.ts +7 -3
- package/types/tasty/styles/index.d.ts +3 -1
- package/types/tasty/styles/inset.d.ts +35 -3
- package/types/tasty/styles/list.d.ts +3 -3
- package/types/tasty/styles/outline.d.ts +17 -11
- package/types/tasty/styles/predefined.d.ts +98 -1
- package/types/tasty/styles/preset.d.ts +23 -4
- package/types/tasty/styles/radius.d.ts +2 -2
- package/types/tasty/styles/shadow.d.ts +2 -2
- package/types/tasty/styles/types.d.ts +74 -22
- package/types/tasty/styles/width.d.ts +7 -3
- package/types/tasty/tasty.d.ts +6 -5
- package/types/tasty/utils/styles.d.ts +27 -4
- package/types/tasty/zero/babel.d.ts +47 -0
- package/es/tasty/styles/font.js +0 -23
- package/es/tasty/styles/fontStyle.js +0 -19
- package/es/tasty/styles/groupRadius.js +0 -61
- package/types/tasty/styles/font.d.ts +0 -9
- package/types/tasty/styles/fontStyle.d.ts +0 -8
- package/types/tasty/styles/groupRadius.d.ts +0 -11
|
@@ -1,23 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.
|
|
4
|
+
* @cube-dev/ui-kit v0.100.0
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
const isWhitespace = (ch) => ch === ' ' || ch === '\n' || ch === '\t' || ch === '\r' || ch === '\f';
|
|
8
9
|
export function scan(src, cb) {
|
|
9
10
|
let depth = 0;
|
|
10
11
|
let inUrl = false;
|
|
11
12
|
let inQuote = 0;
|
|
12
13
|
let start = 0;
|
|
13
14
|
let i = 0;
|
|
14
|
-
|
|
15
|
+
// Track if we just saw a standalone slash separator (whitespace before, whitespace after)
|
|
16
|
+
let pendingSlash = false;
|
|
17
|
+
const flush = (isComma, isSlash) => {
|
|
18
|
+
// If we have a pending slash, emit the part break
|
|
19
|
+
const actualSlash = isSlash || pendingSlash;
|
|
20
|
+
pendingSlash = false;
|
|
15
21
|
if (start < i) {
|
|
16
22
|
const prevChar = start > 0 ? src[start - 1] : null;
|
|
17
|
-
cb(src.slice(start, i), isComma, prevChar);
|
|
23
|
+
cb(src.slice(start, i), isComma, actualSlash, prevChar);
|
|
18
24
|
}
|
|
19
25
|
else if (isComma) {
|
|
20
|
-
cb('', true, null); // empty token followed by comma => group break.
|
|
26
|
+
cb('', true, false, null); // empty token followed by comma => group break.
|
|
27
|
+
}
|
|
28
|
+
else if (actualSlash) {
|
|
29
|
+
cb('', false, true, null); // empty token followed by slash => part break.
|
|
21
30
|
}
|
|
22
31
|
start = i + 1;
|
|
23
32
|
};
|
|
@@ -54,20 +63,30 @@ export function scan(src, cb) {
|
|
|
54
63
|
continue; // inside url(...) treat everything as part of token
|
|
55
64
|
if (!depth) {
|
|
56
65
|
if (ch === ',') {
|
|
57
|
-
flush(true);
|
|
66
|
+
flush(true, false);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
// Slash is only a separator when surrounded by whitespace (e.g., "a / b")
|
|
70
|
+
// This preserves CSS patterns like "center/cover" as single tokens
|
|
71
|
+
if (ch === '/') {
|
|
72
|
+
const prevIsWhitespace = isWhitespace(src[i - 1]);
|
|
73
|
+
const nextIsWhitespace = isWhitespace(src[i + 1]);
|
|
74
|
+
if (prevIsWhitespace && nextIsWhitespace) {
|
|
75
|
+
// Already flushed by whitespace before, mark pending slash
|
|
76
|
+
pendingSlash = true;
|
|
77
|
+
start = i + 1; // skip the slash character
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
// Not surrounded by whitespace - treat as part of token
|
|
58
81
|
continue;
|
|
59
82
|
}
|
|
60
|
-
if (ch
|
|
61
|
-
|
|
62
|
-
ch === '\t' ||
|
|
63
|
-
ch === '\r' ||
|
|
64
|
-
ch === '\f') {
|
|
65
|
-
flush(false);
|
|
83
|
+
if (isWhitespace(ch)) {
|
|
84
|
+
flush(false, false);
|
|
66
85
|
continue;
|
|
67
86
|
}
|
|
68
87
|
}
|
|
69
88
|
}
|
|
70
|
-
flush(false); // tail
|
|
89
|
+
flush(false, false); // tail
|
|
71
90
|
}
|
|
72
91
|
|
|
73
92
|
|
package/es/tasty/parser/types.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.
|
|
4
|
+
* @cube-dev/ui-kit v0.100.0
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -11,6 +11,13 @@ export var Bucket;
|
|
|
11
11
|
Bucket[Bucket["Value"] = 1] = "Value";
|
|
12
12
|
Bucket[Bucket["Mod"] = 2] = "Mod";
|
|
13
13
|
})(Bucket || (Bucket = {}));
|
|
14
|
+
export const makeEmptyPart = () => ({
|
|
15
|
+
mods: [],
|
|
16
|
+
values: [],
|
|
17
|
+
colors: [],
|
|
18
|
+
all: [],
|
|
19
|
+
output: '',
|
|
20
|
+
});
|
|
14
21
|
export const makeEmptyDetails = () => ({
|
|
15
22
|
input: '',
|
|
16
23
|
output: '',
|
|
@@ -18,10 +25,28 @@ export const makeEmptyDetails = () => ({
|
|
|
18
25
|
values: [],
|
|
19
26
|
colors: [],
|
|
20
27
|
all: [],
|
|
28
|
+
parts: [],
|
|
21
29
|
});
|
|
22
|
-
export const
|
|
23
|
-
|
|
24
|
-
|
|
30
|
+
export const finalizePart = (p) => {
|
|
31
|
+
p.output = p.all.join(' ');
|
|
32
|
+
return p;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Aggregate parts into a StyleDetails group.
|
|
36
|
+
* Combines all parts' arrays into group-level arrays for backward compatibility.
|
|
37
|
+
*/
|
|
38
|
+
export const finalizeGroup = (d, parts) => {
|
|
39
|
+
// Store parts
|
|
40
|
+
d.parts = parts;
|
|
41
|
+
// Aggregate all parts into group-level arrays
|
|
42
|
+
for (const part of parts) {
|
|
43
|
+
d.mods.push(...part.mods);
|
|
44
|
+
d.values.push(...part.values);
|
|
45
|
+
d.colors.push(...part.colors);
|
|
46
|
+
d.all.push(...part.all);
|
|
47
|
+
}
|
|
48
|
+
// Join parts' outputs with ' / ' for the group output
|
|
49
|
+
d.output = parts.map((p) => p.output).join(' / ');
|
|
25
50
|
return d;
|
|
26
51
|
};
|
|
27
52
|
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.100.0
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Properties Utilities
|
|
10
|
+
*
|
|
11
|
+
* Utilities for extracting and processing CSS @property definitions in styles.
|
|
12
|
+
* Unlike keyframes, properties are permanent once registered and don't need cleanup.
|
|
13
|
+
*
|
|
14
|
+
* Property names use tasty token syntax:
|
|
15
|
+
* - `$name` for regular properties → `--name`
|
|
16
|
+
* - `#name` for color properties → `--name-color` (auto-sets syntax: '<color>')
|
|
17
|
+
*/
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Constants
|
|
20
|
+
// ============================================================================
|
|
21
|
+
const PROPERTIES_KEY = '@properties';
|
|
22
|
+
/**
|
|
23
|
+
* Valid CSS custom property name pattern (after the -- prefix).
|
|
24
|
+
* Must start with a letter or underscore, followed by letters, digits, hyphens, or underscores.
|
|
25
|
+
*/
|
|
26
|
+
const VALID_PROPERTY_NAME_PATTERN = /^[a-z_][a-z0-9-_]*$/i;
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// Validation Functions
|
|
29
|
+
// ============================================================================
|
|
30
|
+
/**
|
|
31
|
+
* Validate a CSS custom property name (the part after --).
|
|
32
|
+
* Returns true if the name is valid for use as a CSS custom property.
|
|
33
|
+
*/
|
|
34
|
+
export function isValidPropertyName(name) {
|
|
35
|
+
return VALID_PROPERTY_NAME_PATTERN.test(name);
|
|
36
|
+
}
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// Extraction Functions
|
|
39
|
+
// ============================================================================
|
|
40
|
+
/**
|
|
41
|
+
* Check if styles object has local @properties definition.
|
|
42
|
+
* Fast path: single property lookup.
|
|
43
|
+
*/
|
|
44
|
+
export function hasLocalProperties(styles) {
|
|
45
|
+
return PROPERTIES_KEY in styles;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Extract local @properties from styles object.
|
|
49
|
+
* Returns null if no local properties (fast path).
|
|
50
|
+
*/
|
|
51
|
+
export function extractLocalProperties(styles) {
|
|
52
|
+
const properties = styles[PROPERTIES_KEY];
|
|
53
|
+
if (!properties || typeof properties !== 'object') {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return properties;
|
|
57
|
+
}
|
|
58
|
+
// ============================================================================
|
|
59
|
+
// Token Parsing Functions
|
|
60
|
+
// ============================================================================
|
|
61
|
+
/**
|
|
62
|
+
* Parse a property token name and return the CSS property name and whether it's a color.
|
|
63
|
+
* Supports tasty token syntax and validates the property name.
|
|
64
|
+
*
|
|
65
|
+
* Token formats:
|
|
66
|
+
* - `$name` → { cssName: '--name', isColor: false }
|
|
67
|
+
* - `#name` → { cssName: '--name-color', isColor: true }
|
|
68
|
+
* - `--name` → { cssName: '--name', isColor: false } (legacy, auto-detect color by suffix)
|
|
69
|
+
* - `name` → { cssName: '--name', isColor: false } (legacy)
|
|
70
|
+
*
|
|
71
|
+
* @param token - The property token to parse
|
|
72
|
+
* @returns Parsed result with cssName, isColor, isValid, and optional error
|
|
73
|
+
*/
|
|
74
|
+
export function parsePropertyToken(token) {
|
|
75
|
+
if (!token || typeof token !== 'string') {
|
|
76
|
+
return {
|
|
77
|
+
cssName: '',
|
|
78
|
+
isColor: false,
|
|
79
|
+
isValid: false,
|
|
80
|
+
error: 'Property token must be a non-empty string',
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
let name;
|
|
84
|
+
let isColor;
|
|
85
|
+
if (token.startsWith('$')) {
|
|
86
|
+
// Regular property token: $name → --name
|
|
87
|
+
name = token.slice(1);
|
|
88
|
+
isColor = false;
|
|
89
|
+
}
|
|
90
|
+
else if (token.startsWith('#')) {
|
|
91
|
+
// Color property token: #name → --name-color
|
|
92
|
+
name = token.slice(1);
|
|
93
|
+
isColor = true;
|
|
94
|
+
}
|
|
95
|
+
else if (token.startsWith('--')) {
|
|
96
|
+
// Legacy format with -- prefix
|
|
97
|
+
name = token.slice(2);
|
|
98
|
+
isColor = token.endsWith('-color');
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// Legacy format without prefix
|
|
102
|
+
name = token;
|
|
103
|
+
isColor = token.endsWith('-color');
|
|
104
|
+
}
|
|
105
|
+
// Validate the name
|
|
106
|
+
if (!name) {
|
|
107
|
+
return {
|
|
108
|
+
cssName: '',
|
|
109
|
+
isColor,
|
|
110
|
+
isValid: false,
|
|
111
|
+
error: 'Property name cannot be empty',
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
if (!isValidPropertyName(name)) {
|
|
115
|
+
return {
|
|
116
|
+
cssName: '',
|
|
117
|
+
isColor,
|
|
118
|
+
isValid: false,
|
|
119
|
+
error: `Invalid property name "${name}". Must start with a letter or underscore, followed by letters, digits, hyphens, or underscores.`,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// Build the CSS custom property name
|
|
123
|
+
// For #name tokens, we add -color suffix
|
|
124
|
+
// For legacy formats (--name-color or name-color), the name already includes -color
|
|
125
|
+
let cssName;
|
|
126
|
+
if (token.startsWith('#')) {
|
|
127
|
+
// Color token: #name → --name-color
|
|
128
|
+
cssName = `--${name}-color`;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// All other formats: just add -- prefix
|
|
132
|
+
cssName = `--${name}`;
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
cssName,
|
|
136
|
+
isColor,
|
|
137
|
+
isValid: true,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// ============================================================================
|
|
141
|
+
// Normalization Functions
|
|
142
|
+
// ============================================================================
|
|
143
|
+
/**
|
|
144
|
+
* Normalize a property name to the CSS custom property format.
|
|
145
|
+
*
|
|
146
|
+
* @deprecated Use parsePropertyToken instead for proper token handling
|
|
147
|
+
*/
|
|
148
|
+
export function normalizePropertyName(name) {
|
|
149
|
+
const result = parsePropertyToken(name);
|
|
150
|
+
return result.isValid ? result.cssName : `--${name}`;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Normalize a property definition to a consistent string representation.
|
|
154
|
+
* Used for comparing definitions to detect changes/conflicts.
|
|
155
|
+
*
|
|
156
|
+
* Keys are sorted alphabetically to ensure consistent comparison:
|
|
157
|
+
* { inherits: true, syntax: '<color>' } === { syntax: '<color>', inherits: true }
|
|
158
|
+
*/
|
|
159
|
+
export function normalizePropertyDefinition(def) {
|
|
160
|
+
const normalized = {};
|
|
161
|
+
// Add properties in alphabetical order
|
|
162
|
+
if (def.inherits !== undefined) {
|
|
163
|
+
normalized.inherits = def.inherits;
|
|
164
|
+
}
|
|
165
|
+
if (def.initialValue !== undefined) {
|
|
166
|
+
normalized.initialValue = String(def.initialValue);
|
|
167
|
+
}
|
|
168
|
+
if (def.syntax !== undefined) {
|
|
169
|
+
normalized.syntax = def.syntax;
|
|
170
|
+
}
|
|
171
|
+
return JSON.stringify(normalized);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get the effective property definition for a token.
|
|
175
|
+
* For color tokens (#name), auto-sets syntax to '<color>' and defaults initialValue to 'transparent'.
|
|
176
|
+
*
|
|
177
|
+
* @param token - Property token ($name, #name, --name, or plain name)
|
|
178
|
+
* @param userDefinition - User-provided definition options
|
|
179
|
+
* @returns Effective definition with cssName, definition, isValid, and optional error
|
|
180
|
+
*/
|
|
181
|
+
export function getEffectiveDefinition(token, userDefinition) {
|
|
182
|
+
const parsed = parsePropertyToken(token);
|
|
183
|
+
if (!parsed.isValid) {
|
|
184
|
+
return {
|
|
185
|
+
cssName: '',
|
|
186
|
+
definition: userDefinition,
|
|
187
|
+
isValid: false,
|
|
188
|
+
error: parsed.error,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
if (parsed.isColor) {
|
|
192
|
+
// Color properties have fixed syntax and default initialValue
|
|
193
|
+
return {
|
|
194
|
+
cssName: parsed.cssName,
|
|
195
|
+
definition: {
|
|
196
|
+
syntax: '<color>', // Always '<color>' for color tokens, cannot be overridden
|
|
197
|
+
inherits: userDefinition.inherits, // Allow inherits to be customized
|
|
198
|
+
initialValue: userDefinition.initialValue ?? 'transparent', // Default to transparent
|
|
199
|
+
},
|
|
200
|
+
isValid: true,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
// Regular properties use the definition as-is
|
|
204
|
+
return {
|
|
205
|
+
cssName: parsed.cssName,
|
|
206
|
+
definition: userDefinition,
|
|
207
|
+
isValid: true,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
|
package/es/tasty/states/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.
|
|
4
|
+
* @cube-dev/ui-kit v0.100.0
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -14,7 +14,12 @@
|
|
|
14
14
|
import { hasStylesGenerated } from '../config.js';
|
|
15
15
|
import { isDevEnv } from '../utils/isDevEnv.js';
|
|
16
16
|
// Built-in state names that cannot be overridden
|
|
17
|
-
const BUILTIN_STATES = new Set([
|
|
17
|
+
const BUILTIN_STATES = new Set([
|
|
18
|
+
'@starting',
|
|
19
|
+
'@keyframes',
|
|
20
|
+
'@properties',
|
|
21
|
+
'@supports',
|
|
22
|
+
]);
|
|
18
23
|
// Reserved prefixes that are built-in
|
|
19
24
|
const RESERVED_PREFIXES = [
|
|
20
25
|
'@media',
|
|
@@ -23,6 +28,7 @@ const RESERVED_PREFIXES = [
|
|
|
23
28
|
'@(',
|
|
24
29
|
'@starting',
|
|
25
30
|
'@keyframes',
|
|
31
|
+
'@properties',
|
|
26
32
|
'@supports',
|
|
27
33
|
];
|
|
28
34
|
// Global predefined states storage
|
package/es/tasty/static/index.js
CHANGED
package/es/tasty/static/types.js
CHANGED
package/es/tasty/styles/align.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.
|
|
4
|
+
* @cube-dev/ui-kit v0.100.0
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -19,9 +19,39 @@ const BORDER_STYLES = [
|
|
|
19
19
|
'outset',
|
|
20
20
|
];
|
|
21
21
|
/**
|
|
22
|
+
* Process a single group and return border values for its directions.
|
|
23
|
+
* @returns Object with directions as keys and border values, or null for "all directions"
|
|
24
|
+
*/
|
|
25
|
+
function processGroup(group) {
|
|
26
|
+
const { values, mods, colors } = group;
|
|
27
|
+
const directions = filterMods(mods, DIRECTIONS);
|
|
28
|
+
const typeMods = filterMods(mods, BORDER_STYLES);
|
|
29
|
+
const width = values[0] || 'var(--border-width)';
|
|
30
|
+
const style = typeMods[0] || 'solid';
|
|
31
|
+
const color = colors?.[0] || 'var(--border-color)';
|
|
32
|
+
return {
|
|
33
|
+
directions,
|
|
34
|
+
borderValue: { width, style, color },
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Format a border value to CSS string.
|
|
39
|
+
*/
|
|
40
|
+
function formatBorderValue(value) {
|
|
41
|
+
return `${value.width} ${value.style} ${value.color}`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Border style handler with multi-group support.
|
|
45
|
+
*
|
|
46
|
+
* Single group (backward compatible):
|
|
47
|
+
* - `border="1bw solid #red"` - all sides
|
|
48
|
+
* - `border="1bw solid #red top left"` - only top and left
|
|
49
|
+
*
|
|
50
|
+
* Multi-group (new):
|
|
51
|
+
* - `border="1bw #red, 2bw #blue top"` - all sides red 1bw, then top overridden to blue 2bw
|
|
52
|
+
* - `border="1bw, dashed top bottom, #purple left right"` - base 1bw, dashed on top/bottom, purple on left/right
|
|
22
53
|
*
|
|
23
|
-
*
|
|
24
|
-
* @return {{border: string}|*}
|
|
54
|
+
* Later groups override earlier groups for conflicting directions.
|
|
25
55
|
*/
|
|
26
56
|
export function borderStyle({ border }) {
|
|
27
57
|
if (!border && border !== 0)
|
|
@@ -29,27 +59,91 @@ export function borderStyle({ border }) {
|
|
|
29
59
|
if (border === true)
|
|
30
60
|
border = '1bw';
|
|
31
61
|
const processed = parseStyle(String(border));
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
62
|
+
const groups = processed.groups ?? [];
|
|
63
|
+
if (!groups.length)
|
|
64
|
+
return;
|
|
65
|
+
// Single group - use original logic for backward compatibility
|
|
66
|
+
if (groups.length === 1) {
|
|
67
|
+
const { directions, borderValue } = processGroup({
|
|
68
|
+
values: groups[0].values ?? [],
|
|
69
|
+
mods: groups[0].mods ?? [],
|
|
70
|
+
colors: groups[0].colors ?? [],
|
|
71
|
+
});
|
|
72
|
+
const styleValue = formatBorderValue(borderValue);
|
|
73
|
+
if (!directions.length) {
|
|
74
|
+
return { border: styleValue };
|
|
75
|
+
}
|
|
76
|
+
const zeroValue = `0 ${borderValue.style} ${borderValue.color}`;
|
|
77
|
+
return DIRECTIONS.reduce((styles, dir) => {
|
|
78
|
+
if (directions.includes(dir)) {
|
|
79
|
+
styles[`border-${dir}`] = styleValue;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
styles[`border-${dir}`] = zeroValue;
|
|
83
|
+
}
|
|
84
|
+
return styles;
|
|
85
|
+
}, {});
|
|
86
|
+
}
|
|
87
|
+
// Multi-group - process groups in order, later groups override earlier
|
|
88
|
+
// Track whether any group specifies directions
|
|
89
|
+
let hasAnyDirections = false;
|
|
90
|
+
// Build a map of direction -> border value
|
|
91
|
+
// Start with undefined (no border set)
|
|
92
|
+
const directionMap = {
|
|
93
|
+
top: null,
|
|
94
|
+
right: null,
|
|
95
|
+
bottom: null,
|
|
96
|
+
left: null,
|
|
97
|
+
};
|
|
98
|
+
// Track the last "all directions" value for fallback
|
|
99
|
+
let allDirectionsValue = null;
|
|
100
|
+
// Process groups in order (first to last)
|
|
101
|
+
for (const group of groups) {
|
|
102
|
+
const { directions, borderValue } = processGroup({
|
|
103
|
+
values: group.values ?? [],
|
|
104
|
+
mods: group.mods ?? [],
|
|
105
|
+
colors: group.colors ?? [],
|
|
106
|
+
});
|
|
107
|
+
if (directions.length === 0) {
|
|
108
|
+
// No specific directions - applies to all
|
|
109
|
+
allDirectionsValue = borderValue;
|
|
110
|
+
// Set all directions
|
|
111
|
+
for (const dir of DIRECTIONS) {
|
|
112
|
+
directionMap[dir] = borderValue;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
// Specific directions - override only those
|
|
117
|
+
hasAnyDirections = true;
|
|
118
|
+
for (const dir of directions) {
|
|
119
|
+
directionMap[dir] = borderValue;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
42
122
|
}
|
|
43
|
-
|
|
44
|
-
return
|
|
45
|
-
|
|
46
|
-
|
|
123
|
+
// If no group specified any directions and we have an all-directions value,
|
|
124
|
+
// return the simple `border` shorthand
|
|
125
|
+
if (!hasAnyDirections && allDirectionsValue) {
|
|
126
|
+
return { border: formatBorderValue(allDirectionsValue) };
|
|
127
|
+
}
|
|
128
|
+
// Otherwise, output individual border-* properties
|
|
129
|
+
const result = {};
|
|
130
|
+
for (const dir of DIRECTIONS) {
|
|
131
|
+
const value = directionMap[dir];
|
|
132
|
+
if (value) {
|
|
133
|
+
result[`border-${dir}`] = formatBorderValue(value);
|
|
47
134
|
}
|
|
48
135
|
else {
|
|
49
|
-
|
|
136
|
+
// No border for this direction - set to 0
|
|
137
|
+
// Use the last all-directions value for style/color consistency, or defaults
|
|
138
|
+
const fallback = allDirectionsValue || {
|
|
139
|
+
width: '0',
|
|
140
|
+
style: 'solid',
|
|
141
|
+
color: 'var(--border-color)',
|
|
142
|
+
};
|
|
143
|
+
result[`border-${dir}`] = `0 ${fallback.style} ${fallback.color}`;
|
|
50
144
|
}
|
|
51
|
-
|
|
52
|
-
|
|
145
|
+
}
|
|
146
|
+
return result;
|
|
53
147
|
}
|
|
54
148
|
borderStyle.__lookupStyles = ['border'];
|
|
55
149
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.
|
|
4
|
+
* @cube-dev/ui-kit v0.100.0
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -15,7 +15,7 @@ export function boxShadowCombinator(styles) {
|
|
|
15
15
|
return list;
|
|
16
16
|
}, []);
|
|
17
17
|
if (!values.length)
|
|
18
|
-
return
|
|
18
|
+
return;
|
|
19
19
|
return { 'box-shadow': values.join(', ') };
|
|
20
20
|
}
|
|
21
21
|
boxShadowCombinator.__lookupStyles = ['outline', 'shadow'];
|