@cube-dev/ui-kit 0.0.0-canary-e9dc427 → 0.0.0-canary-5eba492
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 +6 -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 +61 -67
- 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 +12 -52
- package/es/components/actions/Action/Action.js +1 -1
- package/es/components/actions/Button/Button.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -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 +2 -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 +2 -1
- package/es/components/content/Layout/LayoutPanel.js +2 -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 +1 -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 +1 -1
- 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 +1 -1
- 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/LegacyTabs/LegacyTabs.js +1 -1
- package/es/components/organisms/FileTabs/FileTabs.js +1 -1
- package/es/components/organisms/StatsCard/StatsCard.js +1 -1
- package/es/components/other/Base64Upload/Base64Upload.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/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/add-new-icon.js +1 -1
- package/es/icons/index.js +1 -1
- package/es/icons/wrap-icon.js +1 -1
- package/es/index.js +2 -1
- package/es/provider.js +2 -8
- 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 +17 -14
- package/es/stories/lists/baseProps.js +1 -1
- package/es/tasty/chunks/cacheKey.js +98 -0
- package/es/tasty/chunks/definitions.js +280 -0
- package/es/tasty/chunks/index.js +12 -0
- package/es/tasty/chunks/renderChunk.js +97 -0
- package/es/tasty/config.js +216 -0
- package/es/tasty/debug.js +193 -7
- 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 +146 -0
- package/es/tasty/index.js +10 -4
- package/es/tasty/injector/index.js +31 -87
- package/es/tasty/injector/injector.js +30 -279
- package/es/tasty/injector/sheet-manager.js +126 -2
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/parser/classify.js +5 -3
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +14 -1
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +2 -1
- package/es/tasty/pipeline/conditions.js +469 -0
- package/es/tasty/pipeline/exclusive.js +193 -0
- package/es/tasty/pipeline/index.js +515 -0
- package/es/tasty/pipeline/materialize.js +1001 -0
- package/es/tasty/pipeline/parseStateKey.js +565 -0
- package/es/tasty/pipeline/simplify.js +786 -0
- package/es/tasty/states/index.js +515 -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 +1 -1
- package/es/tasty/styles/boxShadow.combinator.js +1 -1
- package/es/tasty/styles/color.js +1 -1
- package/es/tasty/styles/createStyle.js +1 -1
- package/es/tasty/styles/dimension.js +1 -1
- package/es/tasty/styles/display.js +1 -1
- package/es/tasty/styles/fade.js +1 -1
- package/es/tasty/styles/fill.js +1 -1
- 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 +1 -1
- package/es/tasty/styles/groupRadius.js +1 -1
- package/es/tasty/styles/height.js +1 -1
- package/es/tasty/styles/index.js +1 -1
- package/es/tasty/styles/inset.js +1 -1
- package/es/tasty/styles/justify.js +1 -1
- package/es/tasty/styles/list.js +1 -1
- package/es/tasty/styles/margin.js +56 -24
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +56 -24
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +1 -1
- package/es/tasty/styles/preset.js +1 -1
- package/es/tasty/styles/radius.js +1 -1
- package/es/tasty/styles/reset.js +1 -1
- package/es/tasty/styles/scrollbar.js +1 -1
- package/es/tasty/styles/shadow.js +1 -1
- package/es/tasty/styles/styledScrollbar.js +1 -1
- package/es/tasty/styles/transition.js +1 -1
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +1 -1
- package/es/tasty/tasty.js +14 -119
- 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 +1 -1
- package/es/tasty/utils/processTokens.js +1 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +252 -19
- package/es/tasty/utils/typography.js +67 -0
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tasty/zero/babel.js +401 -0
- package/es/tasty/zero/css-writer.js +94 -0
- package/es/tasty/zero/extractor.js +75 -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 +44 -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 +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 +3 -1
- package/types/components/GlobalStyles.d.ts +2 -1
- package/types/components/HiddenInput.d.ts +826 -826
- package/types/components/Root.d.ts +1 -0
- package/types/components/actions/Button/Button.d.ts +1645 -1645
- package/types/components/actions/CommandMenu/styled.d.ts +4130 -4130
- package/types/components/actions/Menu/styled.d.ts +4373 -4373
- package/types/components/content/List/SectionHeading.d.ts +81 -81
- package/types/components/content/Text.d.ts +297 -297
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +81 -81
- package/types/components/fields/Select/Select.d.ts +826 -826
- package/types/components/fields/Slider/elements.d.ts +4956 -4956
- package/types/index.d.ts +1 -0
- package/types/provider.d.ts +1 -2
- package/types/stories/components/StyledButton.d.ts +1 -1
- 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 +131 -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 +38 -0
- package/types/tasty/index.d.ts +12 -4
- package/types/tasty/injector/index.d.ts +30 -19
- package/types/tasty/injector/injector.d.ts +13 -13
- package/types/tasty/injector/sheet-manager.d.ts +25 -1
- package/types/tasty/injector/types.d.ts +20 -1
- 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 +248 -0
- package/types/tasty/pipeline/exclusive.d.ts +78 -0
- package/types/tasty/pipeline/index.d.ts +67 -0
- package/types/tasty/pipeline/materialize.d.ts +115 -0
- package/types/tasty/pipeline/parseStateKey.d.ts +20 -0
- package/types/tasty/pipeline/simplify.d.ts +28 -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/types.d.ts +3 -3
- package/types/tasty/tasty.d.ts +845 -837
- 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 +56 -0
- package/types/tasty/zero/css-writer.d.ts +41 -0
- package/types/tasty/zero/extractor.d.ts +19 -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 +27 -0
- package/types/tokens/spacing.d.ts +8 -0
- package/types/tokens/typography.d.ts +30 -0
- 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/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
package/es/tasty/tasty.js
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.0.0-canary-
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-5eba492
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { createElement, forwardRef,
|
|
8
|
+
import { createElement, forwardRef, useMemo, } from 'react';
|
|
9
9
|
import { isValidElementType } from 'react-is';
|
|
10
|
-
import {
|
|
11
|
-
import { BreakpointsContext } from './providers/BreakpointsProvider';
|
|
10
|
+
import { useStyles } from './hooks/useStyles';
|
|
12
11
|
import { BASE_STYLES } from './styles/list';
|
|
13
|
-
import { cacheWrapper } from './utils/cache-wrapper';
|
|
14
12
|
import { getDisplayName } from './utils/getDisplayName';
|
|
15
13
|
import { mergeStyles } from './utils/mergeStyles';
|
|
16
14
|
import { modAttrs } from './utils/modAttrs';
|
|
17
15
|
import { processTokens, stringifyTokens } from './utils/processTokens';
|
|
18
|
-
import { renderStyles } from './utils/renderStyles';
|
|
19
|
-
import { stringifyStyles } from './utils/styles';
|
|
20
16
|
/**
|
|
21
17
|
* Mapping of is* properties to their corresponding HTML attributes
|
|
22
18
|
*/
|
|
@@ -46,52 +42,13 @@ function handleIsProperties(props) {
|
|
|
46
42
|
}
|
|
47
43
|
}
|
|
48
44
|
}
|
|
49
|
-
/**
|
|
50
|
-
* Simple hash function for internal cache keys
|
|
51
|
-
*/
|
|
52
|
-
// Generate unique cache key for style deduplication
|
|
53
|
-
function generateStyleCacheKey(styleKey, contextKey) {
|
|
54
|
-
// Use null character as separator for better performance and no collision risk
|
|
55
|
-
return contextKey ? `${styleKey}\0${contextKey}` : styleKey;
|
|
56
|
-
}
|
|
57
45
|
// Implementation
|
|
58
46
|
export function tasty(Component, options) {
|
|
59
|
-
if (typeof Component === 'string') {
|
|
60
|
-
return tastyGlobal(Component, options);
|
|
61
|
-
}
|
|
62
47
|
if (isValidElementType(Component)) {
|
|
63
48
|
return tastyWrap(Component, options);
|
|
64
49
|
}
|
|
65
50
|
return tastyElement(Component);
|
|
66
51
|
}
|
|
67
|
-
// Internal specialized implementations
|
|
68
|
-
function tastyGlobal(selector, styles) {
|
|
69
|
-
const _StyleDeclarationComponent = ({ breakpoints, }) => {
|
|
70
|
-
let contextBreakpoints = useContext(BreakpointsContext);
|
|
71
|
-
const breakpointsList = (breakpoints ?? contextBreakpoints) || [980];
|
|
72
|
-
const disposeRef = useRef(null);
|
|
73
|
-
const styleResults = useMemo(() => {
|
|
74
|
-
if (!styles)
|
|
75
|
-
return [];
|
|
76
|
-
return renderStyles(styles, breakpointsList, selector);
|
|
77
|
-
}, [selector, styles, breakpointsList]);
|
|
78
|
-
// Inject styles at insertion phase; cleanup on change/unmount
|
|
79
|
-
useInsertionEffect(() => {
|
|
80
|
-
disposeRef.current?.();
|
|
81
|
-
if (styleResults.length === 0)
|
|
82
|
-
return;
|
|
83
|
-
const { dispose } = injectGlobal(styleResults);
|
|
84
|
-
disposeRef.current = dispose;
|
|
85
|
-
return () => {
|
|
86
|
-
disposeRef.current?.();
|
|
87
|
-
disposeRef.current = null;
|
|
88
|
-
};
|
|
89
|
-
}, [styleResults]);
|
|
90
|
-
return null;
|
|
91
|
-
};
|
|
92
|
-
_StyleDeclarationComponent.displayName = `TastyStyleDeclaration(${selector})`;
|
|
93
|
-
return _StyleDeclarationComponent;
|
|
94
|
-
}
|
|
95
52
|
function tastyWrap(Component, options) {
|
|
96
53
|
let { as: extendTag, element: extendElement, ...defaultProps } = (options ?? {});
|
|
97
54
|
let propsWithStyles = ['styles'].concat(Object.keys(defaultProps).filter((prop) => prop.endsWith('Styles')));
|
|
@@ -162,18 +119,10 @@ function tastyElement(tastyOptions) {
|
|
|
162
119
|
});
|
|
163
120
|
}
|
|
164
121
|
else {
|
|
165
|
-
/**
|
|
166
|
-
* An additional optimization that allows to avoid rendering styles across various instances
|
|
167
|
-
* of the same element if no custom styles are provided via `styles` prop or direct style props.
|
|
168
|
-
*/
|
|
169
|
-
const renderDefaultStyles = cacheWrapper((breakpoints) => {
|
|
170
|
-
// Return rules without className - injector will add it
|
|
171
|
-
return renderStyles(defaultStyles || {}, breakpoints);
|
|
172
|
-
});
|
|
173
122
|
let { qa: defaultQa, qaVal: defaultQaVal, ...otherDefaultProps } = defaultProps ?? {};
|
|
174
123
|
// eslint-disable-next-line react/display-name
|
|
175
124
|
_TastyComponent = forwardRef((allProps, ref) => {
|
|
176
|
-
let { as, styles, variant: _omitVariant,
|
|
125
|
+
let { as, styles, variant: _omitVariant, mods, element, qa, qaVal, className: userClassName, tokens, style, ...otherProps } = allProps;
|
|
177
126
|
// Optimize propStyles extraction - avoid creating empty objects
|
|
178
127
|
let propStyles = null;
|
|
179
128
|
const propsToCheck = styleProps
|
|
@@ -192,66 +141,17 @@ function tastyElement(tastyOptions) {
|
|
|
192
141
|
(styles && Object.keys(styles).length === 0)) {
|
|
193
142
|
styles = undefined;
|
|
194
143
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
// Memoize breakpoints key once
|
|
198
|
-
const breakpointsKey = useMemo(() => breakpoints?.join(',') || '', [breakpoints?.join(',')]);
|
|
199
|
-
const propStylesKey = stringifyStyles(propStyles);
|
|
200
|
-
// Optimize style computation and cache key generation
|
|
201
|
-
const { allStyles, cacheKey, useDefaultStyles } = useMemo(() => {
|
|
144
|
+
// Merge default styles with instance styles and prop styles
|
|
145
|
+
const allStyles = useMemo(() => {
|
|
202
146
|
const hasStyles = styles && Object.keys(styles).length > 0;
|
|
203
147
|
const hasPropStyles = propStyles && Object.keys(propStyles).length > 0;
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
? defaultStyles
|
|
207
|
-
: mergeStyles(defaultStyles, styles, propStyles);
|
|
208
|
-
// Generate cache key for style deduplication
|
|
209
|
-
const styleKey = stringifyStyles(merged || {});
|
|
210
|
-
const key = generateStyleCacheKey(styleKey, breakpointsKey ? `bp:${breakpointsKey}` : undefined);
|
|
211
|
-
return {
|
|
212
|
-
allStyles: merged,
|
|
213
|
-
cacheKey: key,
|
|
214
|
-
useDefaultStyles: useDefault,
|
|
215
|
-
};
|
|
216
|
-
}, [styles, propStylesKey, breakpointsKey]);
|
|
217
|
-
// Compute rules synchronously; inject via insertion effect
|
|
218
|
-
const directResult = useMemo(() => {
|
|
219
|
-
if (useDefaultStyles) {
|
|
220
|
-
return renderDefaultStyles(breakpoints);
|
|
221
|
-
}
|
|
222
|
-
else if (allStyles && Object.keys(allStyles).length > 0) {
|
|
223
|
-
// Return rules without className - injector will add it
|
|
224
|
-
return renderStyles(allStyles, breakpoints);
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
return { rules: [], className: '' };
|
|
228
|
-
}
|
|
229
|
-
}, [useDefaultStyles, allStyles, breakpointsKey, cacheKey]);
|
|
230
|
-
const disposeRef = useRef(null);
|
|
231
|
-
// Allocate className in render phase (safe for React Strict Mode)
|
|
232
|
-
const allocatedClassName = useMemo(() => {
|
|
233
|
-
if (!directResult.rules.length || !cacheKey)
|
|
234
|
-
return '';
|
|
235
|
-
const { className } = allocateClassName(cacheKey);
|
|
236
|
-
return className;
|
|
237
|
-
}, [directResult.rules.length, cacheKey]);
|
|
238
|
-
// Inject styles in insertion effect (avoids render phase side effects)
|
|
239
|
-
useInsertionEffect(() => {
|
|
240
|
-
// Cleanup previous disposal reference
|
|
241
|
-
disposeRef.current?.();
|
|
242
|
-
if (directResult.rules.length > 0) {
|
|
243
|
-
const injectionResult = inject(directResult.rules, { cacheKey });
|
|
244
|
-
disposeRef.current = injectionResult.dispose;
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
disposeRef.current = null;
|
|
148
|
+
if (!hasStyles && !hasPropStyles) {
|
|
149
|
+
return defaultStyles;
|
|
248
150
|
}
|
|
249
|
-
return (
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
}, [directResult.rules, cacheKey]);
|
|
254
|
-
const injectedClassName = allocatedClassName;
|
|
151
|
+
return mergeStyles(defaultStyles, styles, propStyles);
|
|
152
|
+
}, [styles, propStyles]);
|
|
153
|
+
// Use the useStyles hook for style generation and injection
|
|
154
|
+
const { className: stylesClassName } = useStyles({ styles: allStyles });
|
|
255
155
|
// Merge default tokens with instance tokens (instance overrides defaults)
|
|
256
156
|
const tokensKey = stringifyTokens(tokens);
|
|
257
157
|
const mergedTokens = useMemo(() => {
|
|
@@ -282,11 +182,8 @@ function tastyElement(tastyOptions) {
|
|
|
282
182
|
const modsObject = mods;
|
|
283
183
|
modProps = modAttrs(modsObject);
|
|
284
184
|
}
|
|
285
|
-
// Merge user className with
|
|
286
|
-
const finalClassName = [
|
|
287
|
-
userClassName || '',
|
|
288
|
-
injectedClassName,
|
|
289
|
-
]
|
|
185
|
+
// Merge user className with generated className
|
|
186
|
+
const finalClassName = [userClassName || '', stylesClassName]
|
|
290
187
|
.filter(Boolean)
|
|
291
188
|
.join(' ');
|
|
292
189
|
const elementProps = {
|
|
@@ -302,9 +199,7 @@ function tastyElement(tastyOptions) {
|
|
|
302
199
|
};
|
|
303
200
|
// Apply the helper to handle is* properties
|
|
304
201
|
handleIsProperties(elementProps);
|
|
305
|
-
// NEW: Use plain createElement instead of styled Element
|
|
306
202
|
const renderedElement = createElement(as ?? originalAs, elementProps);
|
|
307
|
-
// Note: Empty className is normal for elements with no styles
|
|
308
203
|
return renderedElement;
|
|
309
204
|
});
|
|
310
205
|
}
|
package/es/tasty/types.js
CHANGED
package/es/tasty/utils/colors.js
CHANGED
package/es/tasty/utils/dotize.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.0.0-canary-
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-5eba492
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { isSelector } from '
|
|
8
|
+
import { isSelector } from '../pipeline';
|
|
9
9
|
export function mergeStyles(...objects) {
|
|
10
10
|
let styles = objects[0] ? { ...objects[0] } : {};
|
|
11
11
|
let pos = 1;
|
package/es/tasty/utils/string.js
CHANGED
package/es/tasty/utils/styles.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.0.0-canary-
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-5eba492
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { StyleParser } from '../parser/parser';
|
|
9
|
+
import { createStateParserContext, parseAdvancedState } from '../states';
|
|
9
10
|
import { cacheWrapper } from './cache-wrapper';
|
|
10
11
|
import { camelToKebab } from './case-converter';
|
|
11
12
|
const devMode = process.env.NODE_ENV !== 'production';
|
|
@@ -27,9 +28,6 @@ const SIMPLE_COLOR_PATTERNS = [
|
|
|
27
28
|
// Rate limiting for dev warnings to avoid spam
|
|
28
29
|
let colorWarningCount = 0;
|
|
29
30
|
const MAX_COLOR_WARNINGS = 10;
|
|
30
|
-
const IS_DVH_SUPPORTED = typeof CSS !== 'undefined' && typeof CSS?.supports === 'function'
|
|
31
|
-
? CSS.supports('height: 100dvh')
|
|
32
|
-
: false;
|
|
33
31
|
export const CUSTOM_UNITS = {
|
|
34
32
|
r: 'var(--radius)',
|
|
35
33
|
cr: 'var(--card-radius)',
|
|
@@ -43,12 +41,6 @@ export const CUSTOM_UNITS = {
|
|
|
43
41
|
sf: function sf(num) {
|
|
44
42
|
return `minmax(0, ${num}fr)`;
|
|
45
43
|
},
|
|
46
|
-
// global setting
|
|
47
|
-
dvh: function dvh(num) {
|
|
48
|
-
return IS_DVH_SUPPORTED
|
|
49
|
-
? `${num}dvh`
|
|
50
|
-
: `calc(var(--cube-dynamic-viewport-height, 100dvh) / 100 * ${num})`;
|
|
51
|
-
},
|
|
52
44
|
// span unit for GridProvider
|
|
53
45
|
sp: function spanWidth(num) {
|
|
54
46
|
return `((${num} * var(--column-width)) + (${num - 1} * var(--column-gap)))`;
|
|
@@ -117,6 +109,20 @@ export function customFunc(name, fn) {
|
|
|
117
109
|
__tastyFuncs[name] = fn;
|
|
118
110
|
__tastyParser.setFuncs(__tastyFuncs);
|
|
119
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Get the global StyleParser instance.
|
|
114
|
+
* Used by configure() to apply parser configuration.
|
|
115
|
+
*/
|
|
116
|
+
export function getGlobalParser() {
|
|
117
|
+
return __tastyParser;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get the current custom functions registry.
|
|
121
|
+
* Used by configure() to merge with new functions.
|
|
122
|
+
*/
|
|
123
|
+
export function getGlobalFuncs() {
|
|
124
|
+
return __tastyFuncs;
|
|
125
|
+
}
|
|
120
126
|
/**
|
|
121
127
|
*
|
|
122
128
|
* @param {String} value
|
|
@@ -208,11 +214,38 @@ export function strToRgb(color, ignoreAlpha = false) {
|
|
|
208
214
|
return hexToRgb(color);
|
|
209
215
|
return null;
|
|
210
216
|
}
|
|
217
|
+
/**
|
|
218
|
+
* Extract RGB values from an rgb()/rgba() string.
|
|
219
|
+
* Supports all modern CSS syntax variations:
|
|
220
|
+
* - Comma-separated: rgb(255, 128, 0)
|
|
221
|
+
* - Space-separated: rgb(255 128 0)
|
|
222
|
+
* - Fractional: rgb(128.5, 64.3, 32.1)
|
|
223
|
+
* - Percentages: rgb(50%, 25%, 75%)
|
|
224
|
+
* - Slash alpha notation: rgb(255 128 0 / 0.5)
|
|
225
|
+
*
|
|
226
|
+
* Returns array of RGB values (0-255 range), converting percentages as needed.
|
|
227
|
+
*/
|
|
211
228
|
export function getRgbValuesFromRgbaString(str) {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
229
|
+
// Extract content inside rgb()/rgba()
|
|
230
|
+
const match = str.match(/rgba?\(([^)]+)\)/i);
|
|
231
|
+
if (!match)
|
|
232
|
+
return [];
|
|
233
|
+
const inner = match[1].trim();
|
|
234
|
+
// Split by slash first (for alpha), then handle color components
|
|
235
|
+
const [colorPart] = inner.split('/');
|
|
236
|
+
// Split by comma or whitespace
|
|
237
|
+
const parts = colorPart
|
|
238
|
+
.trim()
|
|
239
|
+
.split(/[,\s]+/)
|
|
240
|
+
.filter(Boolean);
|
|
241
|
+
return parts.slice(0, 3).map((part) => {
|
|
242
|
+
part = part.trim();
|
|
243
|
+
if (part.endsWith('%')) {
|
|
244
|
+
// Convert percentage to 0-255 range
|
|
245
|
+
return (parseFloat(part) / 100) * 255;
|
|
246
|
+
}
|
|
247
|
+
return parseFloat(part);
|
|
248
|
+
});
|
|
216
249
|
}
|
|
217
250
|
export function hexToRgb(hex) {
|
|
218
251
|
const rgba = hex
|
|
@@ -275,7 +308,16 @@ export function extractStyles(props, styleList = [], defaultStyles, propMap, ign
|
|
|
275
308
|
}, {});
|
|
276
309
|
return styles;
|
|
277
310
|
}
|
|
278
|
-
|
|
311
|
+
// Enhanced regex that includes advanced state patterns
|
|
312
|
+
// Matches: operators, parentheses, @media(...), @(...), @root(...), @own(...), @starting, @predefined,
|
|
313
|
+
// value mods, boolean mods, pseudo-classes, classes, attribute selectors
|
|
314
|
+
const STATES_REGEXP = /([&|!^])|([()])|(@media:[a-z]+)|(@media\([^)]+\))|(@root\([^)]+\))|(@own\([^)]+\))|(@\([^)]+\))|(@starting)|(@[A-Za-z][A-Za-z0-9-]*)|([a-z][a-z0-9-]+=(?:"[^"]*"|'[^']*'|[^\s&|!^()]+))|([a-z][a-z0-9-]+)|(:[a-z][a-z0-9-]+\([^)]+\)|:[a-z][a-z0-9-]+)|(\.[a-z][a-z0-9-]+)|(\[[^\]]+])/gi;
|
|
315
|
+
/**
|
|
316
|
+
* Check if a token is an advanced state (starts with @)
|
|
317
|
+
*/
|
|
318
|
+
export function isAdvancedStateToken(token) {
|
|
319
|
+
return token.startsWith('@') || token.startsWith('!@');
|
|
320
|
+
}
|
|
279
321
|
export const STATE_OPERATORS = {
|
|
280
322
|
NOT: '!',
|
|
281
323
|
AND: '&',
|
|
@@ -317,11 +359,38 @@ function convertTokensToComputeUnits(tokens) {
|
|
|
317
359
|
});
|
|
318
360
|
return tokens.length === 1 ? tokens[0] : tokens;
|
|
319
361
|
}
|
|
362
|
+
/**
|
|
363
|
+
* Replace commas with | only outside of parentheses.
|
|
364
|
+
* This preserves commas in advanced states like @(card, w < 600px)
|
|
365
|
+
*/
|
|
366
|
+
function replaceCommasOutsideParens(str) {
|
|
367
|
+
let result = '';
|
|
368
|
+
let depth = 0;
|
|
369
|
+
for (let i = 0; i < str.length; i++) {
|
|
370
|
+
const char = str[i];
|
|
371
|
+
if (char === '(') {
|
|
372
|
+
depth++;
|
|
373
|
+
result += char;
|
|
374
|
+
}
|
|
375
|
+
else if (char === ')') {
|
|
376
|
+
depth--;
|
|
377
|
+
result += char;
|
|
378
|
+
}
|
|
379
|
+
else if (char === ',' && depth === 0) {
|
|
380
|
+
// Only replace commas at the top level (outside parentheses)
|
|
381
|
+
result += '|';
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
result += char;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
return result;
|
|
388
|
+
}
|
|
320
389
|
/**
|
|
321
390
|
* Parse state notation and return tokens, modifiers and compute model.
|
|
322
391
|
*/
|
|
323
392
|
function parseStateNotationInner(notation, value) {
|
|
324
|
-
const tokens = notation
|
|
393
|
+
const tokens = replaceCommasOutsideParens(notation).match(STATES_REGEXP);
|
|
325
394
|
if (!tokens || !tokens.length) {
|
|
326
395
|
return {
|
|
327
396
|
model: undefined,
|
|
@@ -380,10 +449,115 @@ function parseStateNotationInner(notation, value) {
|
|
|
380
449
|
};
|
|
381
450
|
}
|
|
382
451
|
export const parseStateNotation = cacheWrapper(parseStateNotationInner);
|
|
452
|
+
/**
|
|
453
|
+
* Build an AtRuleContext from parsed advanced states
|
|
454
|
+
*/
|
|
455
|
+
export function buildAtRuleContext(advancedStates, negatedStates) {
|
|
456
|
+
if (advancedStates.length === 0)
|
|
457
|
+
return undefined;
|
|
458
|
+
const ctx = {};
|
|
459
|
+
for (const state of advancedStates) {
|
|
460
|
+
const isNegated = negatedStates.has(state.raw);
|
|
461
|
+
switch (state.type) {
|
|
462
|
+
case 'media': {
|
|
463
|
+
if (!ctx.media)
|
|
464
|
+
ctx.media = [];
|
|
465
|
+
let mediaCondition = '';
|
|
466
|
+
if (state.mediaType) {
|
|
467
|
+
// @media:print, @media:screen, etc.
|
|
468
|
+
mediaCondition = state.mediaType;
|
|
469
|
+
}
|
|
470
|
+
else if (state.condition) {
|
|
471
|
+
// @media(width < 920px)
|
|
472
|
+
mediaCondition = `(${state.condition})`;
|
|
473
|
+
}
|
|
474
|
+
if (mediaCondition) {
|
|
475
|
+
if (isNegated) {
|
|
476
|
+
ctx.media.push(`not ${mediaCondition}`);
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
ctx.media.push(mediaCondition);
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
case 'container': {
|
|
485
|
+
if (!ctx.container)
|
|
486
|
+
ctx.container = [];
|
|
487
|
+
let condition = state.condition;
|
|
488
|
+
if (isNegated) {
|
|
489
|
+
condition = `not (${condition})`;
|
|
490
|
+
}
|
|
491
|
+
ctx.container.push({
|
|
492
|
+
name: state.containerName,
|
|
493
|
+
condition,
|
|
494
|
+
});
|
|
495
|
+
break;
|
|
496
|
+
}
|
|
497
|
+
case 'root': {
|
|
498
|
+
if (!ctx.rootStates)
|
|
499
|
+
ctx.rootStates = [];
|
|
500
|
+
// Parse the condition to generate the proper selector
|
|
501
|
+
const rootSelector = buildRootSelector(state.condition, isNegated);
|
|
502
|
+
ctx.rootStates.push(rootSelector);
|
|
503
|
+
break;
|
|
504
|
+
}
|
|
505
|
+
case 'starting': {
|
|
506
|
+
if (!isNegated) {
|
|
507
|
+
ctx.startingStyle = true;
|
|
508
|
+
}
|
|
509
|
+
break;
|
|
510
|
+
}
|
|
511
|
+
// 'own' and 'predefined' are handled differently (selector-based, not at-rule)
|
|
512
|
+
// 'modifier' is a regular state
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
// Return undefined if no at-rules were added
|
|
516
|
+
if (!ctx.media?.length &&
|
|
517
|
+
!ctx.container?.length &&
|
|
518
|
+
!ctx.rootStates?.length &&
|
|
519
|
+
!ctx.startingStyle) {
|
|
520
|
+
return undefined;
|
|
521
|
+
}
|
|
522
|
+
return ctx;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Build a root state selector from a condition
|
|
526
|
+
*/
|
|
527
|
+
function buildRootSelector(condition, isNegated) {
|
|
528
|
+
// Handle different condition formats:
|
|
529
|
+
// - theme=dark -> [data-theme="dark"]
|
|
530
|
+
// - .className -> .className
|
|
531
|
+
// - [attr] -> [attr]
|
|
532
|
+
// - booleanMod -> [data-boolean-mod]
|
|
533
|
+
let selector;
|
|
534
|
+
if (condition.startsWith('.')) {
|
|
535
|
+
// Class selector
|
|
536
|
+
selector = condition;
|
|
537
|
+
}
|
|
538
|
+
else if (condition.startsWith('[')) {
|
|
539
|
+
// Attribute selector
|
|
540
|
+
selector = condition;
|
|
541
|
+
}
|
|
542
|
+
else if (condition.includes('=')) {
|
|
543
|
+
// Value mod: theme=dark -> [data-theme="dark"]
|
|
544
|
+
const [key, value] = condition.split('=');
|
|
545
|
+
selector = `[data-${camelToKebab(key.trim())}="${value.trim()}"]`;
|
|
546
|
+
}
|
|
547
|
+
else {
|
|
548
|
+
// Boolean mod: camelCase -> [data-camel-case]
|
|
549
|
+
selector = `[data-${camelToKebab(condition)}]`;
|
|
550
|
+
}
|
|
551
|
+
if (isNegated) {
|
|
552
|
+
return `:not(${selector})`;
|
|
553
|
+
}
|
|
554
|
+
return selector;
|
|
555
|
+
}
|
|
383
556
|
/**
|
|
384
557
|
* Parse state notation and return tokens, modifiers and compute model.
|
|
558
|
+
* Enhanced to detect and extract advanced states.
|
|
385
559
|
*/
|
|
386
|
-
export function styleStateMapToStyleStateDataList(styleStateMap) {
|
|
560
|
+
export function styleStateMapToStyleStateDataList(styleStateMap, parserContext) {
|
|
387
561
|
if (typeof styleStateMap !== 'object' || !styleStateMap) {
|
|
388
562
|
return {
|
|
389
563
|
states: [
|
|
@@ -395,17 +569,76 @@ export function styleStateMapToStyleStateDataList(styleStateMap) {
|
|
|
395
569
|
},
|
|
396
570
|
],
|
|
397
571
|
mods: [],
|
|
572
|
+
hasAdvancedStates: false,
|
|
398
573
|
};
|
|
399
574
|
}
|
|
400
575
|
const stateDataList = [];
|
|
576
|
+
let hasAdvancedStates = false;
|
|
401
577
|
Object.keys(styleStateMap).forEach((stateNotation) => {
|
|
402
578
|
const state = parseStateNotation(stateNotation, styleStateMap[stateNotation]);
|
|
579
|
+
// Check if this state contains any advanced states
|
|
580
|
+
const advancedStates = [];
|
|
581
|
+
const negatedAdvancedStates = new Set();
|
|
582
|
+
const regularMods = [];
|
|
583
|
+
const ownMods = [];
|
|
584
|
+
const negatedOwnMods = [];
|
|
585
|
+
// Scan tokens for advanced states
|
|
586
|
+
if (state.tokens) {
|
|
587
|
+
let isNegated = false;
|
|
588
|
+
for (const token of state.tokens) {
|
|
589
|
+
if (token === '!') {
|
|
590
|
+
isNegated = true;
|
|
591
|
+
continue;
|
|
592
|
+
}
|
|
593
|
+
if (isAdvancedStateToken(token)) {
|
|
594
|
+
hasAdvancedStates = true;
|
|
595
|
+
const ctx = parserContext || createStateParserContext(undefined);
|
|
596
|
+
const parsed = parseAdvancedState(token, ctx);
|
|
597
|
+
advancedStates.push(parsed);
|
|
598
|
+
// Handle @own states specially - extract condition as ownMod
|
|
599
|
+
if (parsed.type === 'own' && parsed.condition) {
|
|
600
|
+
if (isNegated) {
|
|
601
|
+
negatedOwnMods.push(parsed.condition);
|
|
602
|
+
}
|
|
603
|
+
else {
|
|
604
|
+
ownMods.push(parsed.condition);
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
else if (isNegated) {
|
|
608
|
+
negatedAdvancedStates.add(token);
|
|
609
|
+
}
|
|
610
|
+
isNegated = false;
|
|
611
|
+
}
|
|
612
|
+
else if (token.length > 1 &&
|
|
613
|
+
!['&', '|', '^', '(', ')'].includes(token)) {
|
|
614
|
+
regularMods.push(token);
|
|
615
|
+
isNegated = false;
|
|
616
|
+
}
|
|
617
|
+
else {
|
|
618
|
+
isNegated = false;
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
// If there are advanced states, build the atRuleContext
|
|
623
|
+
if (advancedStates.length > 0) {
|
|
624
|
+
state.advancedStates = advancedStates;
|
|
625
|
+
state.atRuleContext = buildAtRuleContext(advancedStates, negatedAdvancedStates);
|
|
626
|
+
// Filter mods to only include regular mods (not advanced states)
|
|
627
|
+
state.mods = regularMods;
|
|
628
|
+
}
|
|
629
|
+
// Store own mods for sub-element selector generation
|
|
630
|
+
if (ownMods.length > 0) {
|
|
631
|
+
state.ownMods = ownMods;
|
|
632
|
+
}
|
|
633
|
+
if (negatedOwnMods.length > 0) {
|
|
634
|
+
state.negatedOwnMods = negatedOwnMods;
|
|
635
|
+
}
|
|
403
636
|
stateDataList.push(state);
|
|
404
637
|
});
|
|
405
638
|
stateDataList.reverse();
|
|
406
639
|
let initialState;
|
|
407
640
|
const allMods = stateDataList.reduce((all, state) => {
|
|
408
|
-
if (!state.mods.length) {
|
|
641
|
+
if (!state.mods.length && !state.advancedStates?.length) {
|
|
409
642
|
initialState = state;
|
|
410
643
|
}
|
|
411
644
|
else {
|
|
@@ -424,7 +657,7 @@ export function styleStateMapToStyleStateDataList(styleStateMap) {
|
|
|
424
657
|
value: true,
|
|
425
658
|
});
|
|
426
659
|
}
|
|
427
|
-
return { states: stateDataList, mods: allMods };
|
|
660
|
+
return { states: stateDataList, mods: allMods, hasAdvancedStates };
|
|
428
661
|
}
|
|
429
662
|
export const COMPUTE_FUNC_MAP = {
|
|
430
663
|
'!': (a) => !a, // NOT - boolean negation
|