@cube-dev/ui-kit 0.0.0-canary-76be278 → 0.0.0-canary-7e4ec9d
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/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 +67 -61
- 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 +52 -12
- 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 +1 -2
- 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 -2
- 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 -2
- package/es/components/content/Layout/LayoutPanel.js +1 -2
- 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 +2 -2
- 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 +1 -2
- package/es/provider.js +8 -2
- 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 +14 -18
- package/es/stories/lists/baseProps.js +1 -1
- package/es/tasty/debug.js +7 -193
- package/es/tasty/index.js +4 -18
- package/es/tasty/injector/index.js +87 -31
- package/es/tasty/injector/injector.js +279 -30
- package/es/tasty/injector/sheet-manager.js +2 -126
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/parser/classify.js +3 -5
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +1 -14
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +1 -2
- package/es/tasty/providers/BreakpointsProvider.js +16 -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 +20 -10
- 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 +55 -75
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +55 -75
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +2 -3
- 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 +117 -76
- 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/getModCombinations.js +38 -0
- 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/renderStyles.js +1050 -0
- package/es/tasty/utils/responsive.js +60 -0
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +19 -252
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tokens.js +309 -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 +1 -3
- package/types/components/GlobalStyles.d.ts +1 -2
- package/types/components/HiddenInput.d.ts +826 -827
- package/types/components/Root.d.ts +0 -1
- package/types/components/actions/Button/Button.d.ts +1645 -1647
- package/types/components/actions/CommandMenu/styled.d.ts +4130 -4135
- package/types/components/actions/Menu/styled.d.ts +4379 -4384
- package/types/components/actions/use-action.d.ts +1 -1
- package/types/components/content/List/SectionHeading.d.ts +83 -83
- package/types/components/content/Text.d.ts +311 -311
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +83 -83
- package/types/components/fields/Select/Select.d.ts +826 -827
- package/types/components/fields/Slider/elements.d.ts +4956 -4962
- package/types/index.d.ts +0 -1
- package/types/provider.d.ts +2 -1
- package/types/stories/components/StyledButton.d.ts +1 -1
- package/types/tasty/debug.d.ts +0 -35
- package/types/tasty/index.d.ts +4 -14
- package/types/tasty/injector/index.d.ts +19 -30
- package/types/tasty/injector/injector.d.ts +13 -13
- package/types/tasty/injector/sheet-manager.d.ts +1 -25
- package/types/tasty/injector/types.d.ts +1 -20
- package/types/tasty/parser/parser.d.ts +0 -4
- package/types/tasty/parser/types.d.ts +0 -1
- package/types/tasty/providers/BreakpointsProvider.d.ts +8 -0
- package/types/tasty/styles/fill.d.ts +1 -11
- package/types/tasty/styles/margin.d.ts +1 -3
- package/types/tasty/styles/padding.d.ts +1 -3
- package/types/tasty/styles/types.d.ts +3 -13
- package/types/tasty/tasty.d.ts +840 -891
- package/types/tasty/utils/getModCombinations.d.ts +9 -0
- package/types/tasty/utils/renderStyles.d.ts +41 -0
- package/types/tasty/utils/responsive.d.ts +8 -0
- package/types/tasty/utils/styles.d.ts +6 -50
- package/types/tokens.d.ts +221 -0
- package/es/tasty/chunks/cacheKey.js +0 -98
- package/es/tasty/chunks/definitions.js +0 -280
- package/es/tasty/chunks/index.js +0 -12
- package/es/tasty/chunks/renderChunk.js +0 -97
- package/es/tasty/config.js +0 -244
- package/es/tasty/hooks/index.js +0 -12
- package/es/tasty/hooks/useGlobalStyles.js +0 -67
- package/es/tasty/hooks/useRawCSS.js +0 -40
- package/es/tasty/hooks/useStyles.js +0 -146
- package/es/tasty/pipeline/conditions.js +0 -469
- package/es/tasty/pipeline/exclusive.js +0 -193
- package/es/tasty/pipeline/index.js +0 -515
- package/es/tasty/pipeline/materialize.js +0 -1001
- package/es/tasty/pipeline/parseStateKey.js +0 -565
- package/es/tasty/pipeline/simplify.js +0 -786
- package/es/tasty/plugins/index.js +0 -26
- package/es/tasty/plugins/okhsl-plugin.js +0 -400
- package/es/tasty/plugins/types.js +0 -10
- package/es/tasty/states/index.js +0 -515
- package/es/tasty/static/index.js +0 -47
- package/es/tasty/static/tastyStatic.js +0 -55
- package/es/tasty/static/types.js +0 -34
- package/es/tasty/utils/typography.js +0 -67
- package/es/tasty/zero/babel.js +0 -401
- package/es/tasty/zero/css-writer.js +0 -94
- package/es/tasty/zero/extractor.js +0 -75
- package/es/tasty/zero/index.js +0 -28
- package/es/tasty/zero/next.js +0 -102
- package/es/tokens/base.js +0 -64
- package/es/tokens/colors.js +0 -68
- package/es/tokens/index.js +0 -63
- package/es/tokens/layout.js +0 -26
- package/es/tokens/shadows.js +0 -27
- package/es/tokens/sizes.js +0 -44
- package/es/tokens/spacing.js +0 -22
- package/es/tokens/typography.js +0 -237
- package/types/tasty/chunks/cacheKey.d.ts +0 -26
- package/types/tasty/chunks/definitions.d.ts +0 -75
- package/types/tasty/chunks/index.d.ts +0 -4
- package/types/tasty/chunks/renderChunk.d.ts +0 -25
- package/types/tasty/config.d.ts +0 -145
- package/types/tasty/hooks/index.d.ts +0 -4
- package/types/tasty/hooks/useGlobalStyles.d.ts +0 -22
- package/types/tasty/hooks/useRawCSS.d.ts +0 -50
- package/types/tasty/hooks/useStyles.d.ts +0 -38
- package/types/tasty/pipeline/conditions.d.ts +0 -248
- package/types/tasty/pipeline/exclusive.d.ts +0 -78
- package/types/tasty/pipeline/index.d.ts +0 -67
- package/types/tasty/pipeline/materialize.d.ts +0 -115
- package/types/tasty/pipeline/parseStateKey.d.ts +0 -20
- package/types/tasty/pipeline/simplify.d.ts +0 -28
- package/types/tasty/plugins/index.d.ts +0 -17
- package/types/tasty/plugins/okhsl-plugin.d.ts +0 -45
- package/types/tasty/plugins/types.d.ts +0 -34
- package/types/tasty/states/index.d.ts +0 -101
- package/types/tasty/static/index.d.ts +0 -39
- package/types/tasty/static/tastyStatic.d.ts +0 -41
- package/types/tasty/static/types.d.ts +0 -44
- package/types/tasty/utils/typography.d.ts +0 -32
- package/types/tasty/zero/babel.d.ts +0 -56
- package/types/tasty/zero/css-writer.d.ts +0 -41
- package/types/tasty/zero/extractor.d.ts +0 -19
- package/types/tasty/zero/index.d.ts +0 -18
- package/types/tasty/zero/next.d.ts +0 -57
- package/types/tokens/base.d.ts +0 -8
- package/types/tokens/colors.d.ts +0 -6
- package/types/tokens/index.d.ts +0 -41
- package/types/tokens/layout.d.ts +0 -7
- package/types/tokens/shadows.d.ts +0 -12
- package/types/tokens/sizes.d.ts +0 -27
- package/types/tokens/spacing.d.ts +0 -8
- package/types/tokens/typography.d.ts +0 -30
package/es/tasty/index.js
CHANGED
|
@@ -1,38 +1,24 @@
|
|
|
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-7e4ec9d
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
// Register built-in plugins at module load time
|
|
9
|
-
import { configure } from './config';
|
|
10
|
-
import { okhslPlugin } from './plugins';
|
|
11
8
|
export { tasty, Element } from './tasty';
|
|
12
|
-
export { useStyles, useGlobalStyles, useRawCSS } from './hooks';
|
|
13
|
-
// Configuration API
|
|
14
|
-
export { configure, getConfig, isConfigLocked, hasStylesGenerated, resetConfig, isTestEnvironment, } from './config';
|
|
15
|
-
// Plugins
|
|
16
|
-
export { okhslPlugin, okhslFunc } from './plugins';
|
|
17
|
-
configure({
|
|
18
|
-
plugins: [okhslPlugin()],
|
|
19
|
-
});
|
|
20
|
-
// Chunk utilities for advanced use cases
|
|
21
|
-
export { CHUNK_NAMES, STYLE_TO_CHUNK, categorizeStyleKeys } from './chunks';
|
|
22
|
-
// Advanced state mapping utilities
|
|
23
|
-
export { getGlobalPredefinedStates, setGlobalPredefinedStates } from './states';
|
|
24
9
|
export * from './utils/filterBaseProps';
|
|
25
10
|
export * from './utils/colors';
|
|
26
11
|
export * from './utils/styles';
|
|
27
12
|
export * from './utils/modAttrs';
|
|
28
|
-
export
|
|
13
|
+
export * from './utils/responsive';
|
|
14
|
+
export * from './utils/renderStyles';
|
|
29
15
|
export * from './utils/dotize';
|
|
30
16
|
export * from './styles/list';
|
|
17
|
+
export * from './providers/BreakpointsProvider';
|
|
31
18
|
export * from './utils/mergeStyles';
|
|
32
19
|
export * from './utils/warnings';
|
|
33
20
|
export * from './utils/getDisplayName';
|
|
34
21
|
export * from './utils/processTokens';
|
|
35
|
-
export * from './utils/typography';
|
|
36
22
|
export * from './injector';
|
|
37
23
|
export * from './debug';
|
|
38
24
|
|
|
@@ -1,12 +1,85 @@
|
|
|
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-7e4ec9d
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { isDevEnv } from '../utils/isDevEnv';
|
|
9
9
|
import { StyleInjector } from './injector';
|
|
10
|
+
// Use a more robust global singleton that survives React Strict Mode
|
|
11
|
+
const GLOBAL_INJECTOR_KEY = '__TASTY_GLOBAL_INJECTOR__';
|
|
12
|
+
/**
|
|
13
|
+
* Detect if we're running in a test environment
|
|
14
|
+
*/
|
|
15
|
+
function isTestEnvironment() {
|
|
16
|
+
// Check Node.js environment
|
|
17
|
+
if (typeof process !== 'undefined' && process.env?.NODE_ENV === 'test') {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
// Check for Jest globals (safely)
|
|
21
|
+
if (typeof global !== 'undefined') {
|
|
22
|
+
const g = global;
|
|
23
|
+
if (g.jest || g.expect || g.describe || g.it) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Check for jsdom environment (common in tests)
|
|
28
|
+
if (typeof window !== 'undefined' &&
|
|
29
|
+
window.navigator?.userAgent?.includes('jsdom')) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
// Check for other test runners
|
|
33
|
+
if (typeof globalThis !== 'undefined') {
|
|
34
|
+
const gt = globalThis;
|
|
35
|
+
if (gt.vitest || gt.mocha) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create default configuration with optional test environment detection
|
|
43
|
+
*/
|
|
44
|
+
function createDefaultConfig(isTest) {
|
|
45
|
+
return {
|
|
46
|
+
maxRulesPerSheet: 8192, // safer default cap per sheet
|
|
47
|
+
unusedStylesThreshold: 500, // default threshold for bulk cleanup of unused styles
|
|
48
|
+
bulkCleanupDelay: 5000, // default delay before bulk cleanup (ignored if idleCleanup is true)
|
|
49
|
+
idleCleanup: true, // default to using requestIdleCallback instead of setTimeout
|
|
50
|
+
forceTextInjection: isTest ?? false, // auto-enable for test environments
|
|
51
|
+
devMode: isDevEnv(), // enable dev features: performance tracking and debug info
|
|
52
|
+
bulkCleanupBatchRatio: 0.5,
|
|
53
|
+
unusedStylesMinAgeMs: 10000,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Configure the global style injector
|
|
58
|
+
*/
|
|
59
|
+
export function configure(config = {}) {
|
|
60
|
+
const fullConfig = {
|
|
61
|
+
...createDefaultConfig(),
|
|
62
|
+
...config,
|
|
63
|
+
};
|
|
64
|
+
// Store on window to survive React Strict Mode resets
|
|
65
|
+
if (typeof window !== 'undefined') {
|
|
66
|
+
window[GLOBAL_INJECTOR_KEY] = new StyleInjector(fullConfig);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// Fallback for SSR
|
|
70
|
+
globalThis[GLOBAL_INJECTOR_KEY] = new StyleInjector(fullConfig);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get or create the global injector instance
|
|
75
|
+
*/
|
|
76
|
+
function getGlobalInjector() {
|
|
77
|
+
const storage = typeof window !== 'undefined' ? window : globalThis;
|
|
78
|
+
if (!storage[GLOBAL_INJECTOR_KEY]) {
|
|
79
|
+
configure();
|
|
80
|
+
}
|
|
81
|
+
return storage[GLOBAL_INJECTOR_KEY];
|
|
82
|
+
}
|
|
10
83
|
/**
|
|
11
84
|
* Allocate a className for a cacheKey without injecting styles yet
|
|
12
85
|
*/
|
|
@@ -17,8 +90,6 @@ export function allocateClassName(cacheKey, options) {
|
|
|
17
90
|
* Inject styles and return className with dispose function
|
|
18
91
|
*/
|
|
19
92
|
export function inject(rules, options) {
|
|
20
|
-
// Mark that styles have been generated (prevents configuration changes)
|
|
21
|
-
markStylesGenerated();
|
|
22
93
|
return getGlobalInjector().inject(rules, options);
|
|
23
94
|
}
|
|
24
95
|
/**
|
|
@@ -28,30 +99,10 @@ export function injectGlobal(rules, options) {
|
|
|
28
99
|
return getGlobalInjector().injectGlobal(rules, options);
|
|
29
100
|
}
|
|
30
101
|
/**
|
|
31
|
-
*
|
|
32
|
-
* This is a low-overhead method for injecting raw CSS that doesn't need tasty processing.
|
|
33
|
-
* The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking.
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* ```tsx
|
|
37
|
-
* // Inject raw CSS
|
|
38
|
-
* const { dispose } = injectRawCSS(`
|
|
39
|
-
* body { margin: 0; padding: 0; }
|
|
40
|
-
* .my-class { color: red; }
|
|
41
|
-
* `);
|
|
42
|
-
*
|
|
43
|
-
* // Later, remove the injected CSS
|
|
44
|
-
* dispose();
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
export function injectRawCSS(css, options) {
|
|
48
|
-
return getGlobalInjector().injectRawCSS(css, options);
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Get raw CSS text for SSR
|
|
102
|
+
* Internal method for createGlobalStyle - not exported publicly
|
|
52
103
|
*/
|
|
53
|
-
|
|
54
|
-
return getGlobalInjector().
|
|
104
|
+
function injectCreateGlobalStyle(rules, options) {
|
|
105
|
+
return getGlobalInjector().injectCreateGlobalStyle(rules, options);
|
|
55
106
|
}
|
|
56
107
|
/**
|
|
57
108
|
* Inject keyframes and return object with toString() and dispose()
|
|
@@ -122,15 +173,20 @@ export function destroy(root) {
|
|
|
122
173
|
* Create a new isolated injector instance
|
|
123
174
|
*/
|
|
124
175
|
export function createInjector(config = {}) {
|
|
125
|
-
const
|
|
176
|
+
const isTest = isTestEnvironment();
|
|
126
177
|
const fullConfig = {
|
|
127
|
-
...
|
|
128
|
-
// Auto-enable forceTextInjection in test environments
|
|
129
|
-
forceTextInjection: config.forceTextInjection ?? isTestEnvironment(),
|
|
178
|
+
...createDefaultConfig(isTest),
|
|
130
179
|
...config,
|
|
131
180
|
};
|
|
132
181
|
return new StyleInjector(fullConfig);
|
|
133
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Create a global style component like styled-components createGlobalStyle
|
|
185
|
+
* Returns a React component that injects global styles when mounted and cleans up when unmounted
|
|
186
|
+
*/
|
|
187
|
+
export function createGlobalStyle(strings, ...interpolations) {
|
|
188
|
+
return getGlobalInjector().createGlobalStyle(strings, ...interpolations);
|
|
189
|
+
}
|
|
134
190
|
export { StyleInjector } from './injector';
|
|
135
191
|
export { SheetManager } from './sheet-manager';
|
|
136
192
|
|
|
@@ -1,7 +1,7 @@
|
|
|
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-7e4ec9d
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
* Style injector that works with structured style objects
|
|
10
10
|
* Eliminates CSS string parsing for better performance
|
|
11
11
|
*/
|
|
12
|
+
import { Component } from 'react';
|
|
12
13
|
import { parseStyle } from '../utils/styles';
|
|
14
|
+
// Simple CSS text to StyleResult converter for injectGlobal backward compatibility
|
|
13
15
|
import { SheetManager } from './sheet-manager';
|
|
14
16
|
/**
|
|
15
17
|
* Generate sequential class name with format t{number}
|
|
@@ -104,25 +106,13 @@ export class StyleInjector {
|
|
|
104
106
|
let newSelector = rule.selector;
|
|
105
107
|
// If rule needs className prepended
|
|
106
108
|
if (rule.needsClassName) {
|
|
107
|
-
//
|
|
108
|
-
|
|
109
|
-
const classPrefix = `.${className}.${className}`;
|
|
110
|
-
newSelector = selectorParts
|
|
111
|
-
.map((part) => {
|
|
112
|
-
const classSelector = part ? `${classPrefix}${part}` : classPrefix;
|
|
113
|
-
// If there's a root prefix, add it before the class selector
|
|
114
|
-
if (rule.rootPrefix) {
|
|
115
|
-
return `${rule.rootPrefix} ${classSelector}`;
|
|
116
|
-
}
|
|
117
|
-
return classSelector;
|
|
118
|
-
})
|
|
119
|
-
.join(', ');
|
|
109
|
+
// Simple concatenation: .className (double specificity) + selectorSuffix
|
|
110
|
+
newSelector = `.${className}.${className}${newSelector}`;
|
|
120
111
|
}
|
|
121
112
|
return {
|
|
122
113
|
...rule,
|
|
123
114
|
selector: newSelector,
|
|
124
115
|
needsClassName: undefined, // Remove the flag after processing
|
|
125
|
-
rootPrefix: undefined, // Remove rootPrefix after processing
|
|
126
116
|
};
|
|
127
117
|
});
|
|
128
118
|
// Before inserting, auto-register @property for any color custom properties being defined.
|
|
@@ -212,20 +202,26 @@ export class StyleInjector {
|
|
|
212
202
|
};
|
|
213
203
|
}
|
|
214
204
|
/**
|
|
215
|
-
* Inject
|
|
216
|
-
* This is a low-overhead alternative to createGlobalStyle for raw CSS
|
|
217
|
-
* The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking
|
|
218
|
-
*/
|
|
219
|
-
injectRawCSS(css, options) {
|
|
220
|
-
const root = options?.root || document;
|
|
221
|
-
return this.sheetManager.injectRawCSS(css, root);
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Get raw CSS text for SSR
|
|
205
|
+
* Inject styles from createGlobalStyle (separate from injectGlobal for tracking)
|
|
225
206
|
*/
|
|
226
|
-
|
|
207
|
+
injectCreateGlobalStyle(rules, options) {
|
|
227
208
|
const root = options?.root || document;
|
|
228
|
-
|
|
209
|
+
const registry = this.sheetManager.getRegistry(root);
|
|
210
|
+
if (!rules || rules.length === 0) {
|
|
211
|
+
return { dispose: () => { } };
|
|
212
|
+
}
|
|
213
|
+
// Use a different prefix to distinguish from injectGlobal
|
|
214
|
+
const key = `raw:${this.globalRuleCounter++}`;
|
|
215
|
+
const info = this.sheetManager.insertGlobalRule(registry, rules, key, root);
|
|
216
|
+
if (registry.metrics) {
|
|
217
|
+
registry.metrics.totalInsertions++;
|
|
218
|
+
}
|
|
219
|
+
return {
|
|
220
|
+
dispose: () => {
|
|
221
|
+
if (info)
|
|
222
|
+
this.sheetManager.deleteGlobalRule(registry, key);
|
|
223
|
+
},
|
|
224
|
+
};
|
|
229
225
|
}
|
|
230
226
|
/**
|
|
231
227
|
* Dispose of a className
|
|
@@ -334,9 +330,9 @@ export class StyleInjector {
|
|
|
334
330
|
syntax = `"${syntax}"`;
|
|
335
331
|
parts.push(`syntax: ${syntax};`);
|
|
336
332
|
}
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
333
|
+
if (options?.inherits != null) {
|
|
334
|
+
parts.push(`inherits: ${options.inherits ? 'true' : 'false'};`);
|
|
335
|
+
}
|
|
340
336
|
if (options?.initialValue != null) {
|
|
341
337
|
let initialValueStr;
|
|
342
338
|
if (typeof options.initialValue === 'number') {
|
|
@@ -446,6 +442,259 @@ export class StyleInjector {
|
|
|
446
442
|
const targetRoot = root || document;
|
|
447
443
|
this.sheetManager.cleanup(targetRoot);
|
|
448
444
|
}
|
|
445
|
+
/**
|
|
446
|
+
* Create a global style component like styled-components createGlobalStyle
|
|
447
|
+
* Returns a React component that injects global styles when mounted and cleans up when unmounted
|
|
448
|
+
*/
|
|
449
|
+
createGlobalStyle(strings, ...interpolations) {
|
|
450
|
+
const injector = this; // Capture the injector instance
|
|
451
|
+
class GlobalStyleComponent extends Component {
|
|
452
|
+
disposeFunction = null;
|
|
453
|
+
componentDidMount() {
|
|
454
|
+
this.injectStyles();
|
|
455
|
+
}
|
|
456
|
+
componentDidUpdate() {
|
|
457
|
+
this.disposeStyles();
|
|
458
|
+
this.injectStyles();
|
|
459
|
+
}
|
|
460
|
+
componentWillUnmount() {
|
|
461
|
+
this.disposeStyles();
|
|
462
|
+
}
|
|
463
|
+
injectStyles = () => {
|
|
464
|
+
const css = this.interpolateTemplate();
|
|
465
|
+
if (css.trim()) {
|
|
466
|
+
const styleResults = this.parseCSSToStyleResults(css);
|
|
467
|
+
// Use a special method for createGlobalStyle to distinguish from injectGlobal
|
|
468
|
+
const result = injector.injectCreateGlobalStyle(styleResults, {
|
|
469
|
+
root: this.props.root,
|
|
470
|
+
});
|
|
471
|
+
this.disposeFunction = result.dispose;
|
|
472
|
+
}
|
|
473
|
+
};
|
|
474
|
+
disposeStyles = () => {
|
|
475
|
+
if (this.disposeFunction) {
|
|
476
|
+
this.disposeFunction();
|
|
477
|
+
this.disposeFunction = null;
|
|
478
|
+
}
|
|
479
|
+
};
|
|
480
|
+
interpolateTemplate = () => {
|
|
481
|
+
let result = strings[0];
|
|
482
|
+
for (let i = 0; i < interpolations.length; i++) {
|
|
483
|
+
const interpolation = interpolations[i];
|
|
484
|
+
const value = typeof interpolation === 'function'
|
|
485
|
+
? interpolation(this.props)
|
|
486
|
+
: interpolation;
|
|
487
|
+
result += String(value) + strings[i + 1];
|
|
488
|
+
}
|
|
489
|
+
return result;
|
|
490
|
+
};
|
|
491
|
+
parseCSSToStyleResults = (css) => {
|
|
492
|
+
const rules = [];
|
|
493
|
+
// Enhanced CSS parser for global styles that handles nested rules
|
|
494
|
+
this.parseCSS(css, rules, [], '');
|
|
495
|
+
return rules;
|
|
496
|
+
};
|
|
497
|
+
parseCSS = (css, rules, atRuleStack, parentSelector = '') => {
|
|
498
|
+
// Remove both CSS and JavaScript-style comments
|
|
499
|
+
let cleanCSS = css.replace(/\/\*[\s\S]*?\*\//g, ''); // CSS comments
|
|
500
|
+
cleanCSS = cleanCSS.replace(/\/\/.*$/gm, ''); // JavaScript-style comments
|
|
501
|
+
let i = 0;
|
|
502
|
+
while (i < cleanCSS.length) {
|
|
503
|
+
// Skip whitespace
|
|
504
|
+
while (i < cleanCSS.length && /\s/.test(cleanCSS[i])) {
|
|
505
|
+
i++;
|
|
506
|
+
}
|
|
507
|
+
if (i >= cleanCSS.length)
|
|
508
|
+
break;
|
|
509
|
+
// Find the next selector or at-rule
|
|
510
|
+
let selectorStart = i;
|
|
511
|
+
let braceDepth = 0;
|
|
512
|
+
let inString = false;
|
|
513
|
+
let stringChar = '';
|
|
514
|
+
// Find the opening brace
|
|
515
|
+
while (i < cleanCSS.length) {
|
|
516
|
+
const char = cleanCSS[i];
|
|
517
|
+
if (inString) {
|
|
518
|
+
if (char === stringChar && cleanCSS[i - 1] !== '\\') {
|
|
519
|
+
inString = false;
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
else {
|
|
523
|
+
if (char === '"' || char === "'") {
|
|
524
|
+
inString = true;
|
|
525
|
+
stringChar = char;
|
|
526
|
+
}
|
|
527
|
+
else if (char === '{') {
|
|
528
|
+
braceDepth++;
|
|
529
|
+
if (braceDepth === 1) {
|
|
530
|
+
break; // Found the opening brace
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
else if (char === '}') {
|
|
534
|
+
braceDepth--;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
i++;
|
|
538
|
+
}
|
|
539
|
+
if (i >= cleanCSS.length)
|
|
540
|
+
break;
|
|
541
|
+
const selectorPart = cleanCSS.substring(selectorStart, i).trim();
|
|
542
|
+
i++; // Skip the opening brace
|
|
543
|
+
// Find the matching closing brace
|
|
544
|
+
const contentStart = i;
|
|
545
|
+
braceDepth = 1;
|
|
546
|
+
inString = false;
|
|
547
|
+
while (i < cleanCSS.length && braceDepth > 0) {
|
|
548
|
+
const char = cleanCSS[i];
|
|
549
|
+
if (inString) {
|
|
550
|
+
if (char === stringChar && cleanCSS[i - 1] !== '\\') {
|
|
551
|
+
inString = false;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
else {
|
|
555
|
+
if (char === '"' || char === "'") {
|
|
556
|
+
inString = true;
|
|
557
|
+
stringChar = char;
|
|
558
|
+
}
|
|
559
|
+
else if (char === '{') {
|
|
560
|
+
braceDepth++;
|
|
561
|
+
}
|
|
562
|
+
else if (char === '}') {
|
|
563
|
+
braceDepth--;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
i++;
|
|
567
|
+
}
|
|
568
|
+
const content = cleanCSS.substring(contentStart, i - 1).trim();
|
|
569
|
+
// Check if this is an at-rule
|
|
570
|
+
if (selectorPart.startsWith('@')) {
|
|
571
|
+
const atSelector = selectorPart.trim();
|
|
572
|
+
// Leaf at-rules that contain declarations directly and should be emitted as-is
|
|
573
|
+
const leafAtRules = [
|
|
574
|
+
'@font-face',
|
|
575
|
+
'@property',
|
|
576
|
+
'@page',
|
|
577
|
+
'@counter-style',
|
|
578
|
+
'@font-feature-values',
|
|
579
|
+
'@font-palette-values',
|
|
580
|
+
'@color-profile',
|
|
581
|
+
];
|
|
582
|
+
const isLeafAtRule = leafAtRules.some((prefix) => atSelector.startsWith(prefix));
|
|
583
|
+
if (isLeafAtRule) {
|
|
584
|
+
// Emit the at-rule with its declarations directly
|
|
585
|
+
if (content.trim()) {
|
|
586
|
+
rules.push({
|
|
587
|
+
selector: atSelector,
|
|
588
|
+
declarations: content,
|
|
589
|
+
atRules: atRuleStack.length > 0 ? [...atRuleStack] : undefined,
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
else {
|
|
594
|
+
// Wrapper at-rule (e.g., @media, @supports, @keyframes) — parse its content
|
|
595
|
+
const newAtRuleStack = [...atRuleStack, atSelector];
|
|
596
|
+
this.parseCSS(content, rules, newAtRuleStack, parentSelector);
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
else {
|
|
600
|
+
// Check if content contains nested rules (has { and })
|
|
601
|
+
if (content.includes('{') && content.includes('}')) {
|
|
602
|
+
// This selector has nested rules, parse them
|
|
603
|
+
const { declarations, nestedCSS } = this.separateDeclarationsAndNested(content);
|
|
604
|
+
// Process the selector (handle & syntax)
|
|
605
|
+
const processedSelector = this.processSelector(selectorPart, parentSelector);
|
|
606
|
+
// Add declarations if any
|
|
607
|
+
if (declarations.trim()) {
|
|
608
|
+
rules.push({
|
|
609
|
+
selector: processedSelector,
|
|
610
|
+
declarations: declarations.trim(),
|
|
611
|
+
atRules: atRuleStack.length > 0 ? [...atRuleStack] : undefined,
|
|
612
|
+
});
|
|
613
|
+
}
|
|
614
|
+
// Parse nested CSS with current selector as parent
|
|
615
|
+
if (nestedCSS.trim()) {
|
|
616
|
+
this.parseCSS(nestedCSS, rules, atRuleStack, processedSelector);
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
else {
|
|
620
|
+
// This is a regular selector with only declarations
|
|
621
|
+
const processedSelector = this.processSelector(selectorPart, parentSelector);
|
|
622
|
+
if (content && processedSelector) {
|
|
623
|
+
rules.push({
|
|
624
|
+
selector: processedSelector,
|
|
625
|
+
declarations: content,
|
|
626
|
+
atRules: atRuleStack.length > 0 ? [...atRuleStack] : undefined,
|
|
627
|
+
});
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
};
|
|
633
|
+
separateDeclarationsAndNested = (content) => {
|
|
634
|
+
const declarations = [];
|
|
635
|
+
const nestedRules = [];
|
|
636
|
+
let i = 0;
|
|
637
|
+
let currentDeclaration = '';
|
|
638
|
+
while (i < content.length) {
|
|
639
|
+
const char = content[i];
|
|
640
|
+
if (char === '{') {
|
|
641
|
+
// Found start of nested rule, find the selector before it
|
|
642
|
+
let selectorStart = currentDeclaration.lastIndexOf(';') + 1;
|
|
643
|
+
if (selectorStart === 0 && currentDeclaration.trim()) {
|
|
644
|
+
// No semicolon found, this might be the first rule
|
|
645
|
+
selectorStart = 0;
|
|
646
|
+
}
|
|
647
|
+
const beforeBrace = currentDeclaration.substring(0, selectorStart);
|
|
648
|
+
const selector = currentDeclaration.substring(selectorStart).trim();
|
|
649
|
+
if (beforeBrace.trim()) {
|
|
650
|
+
declarations.push(beforeBrace.trim());
|
|
651
|
+
}
|
|
652
|
+
// Find the matching closing brace
|
|
653
|
+
let braceDepth = 1;
|
|
654
|
+
let ruleStart = i + 1;
|
|
655
|
+
i++; // Skip opening brace
|
|
656
|
+
while (i < content.length && braceDepth > 0) {
|
|
657
|
+
if (content[i] === '{')
|
|
658
|
+
braceDepth++;
|
|
659
|
+
else if (content[i] === '}')
|
|
660
|
+
braceDepth--;
|
|
661
|
+
i++;
|
|
662
|
+
}
|
|
663
|
+
const ruleContent = content.substring(ruleStart, i - 1);
|
|
664
|
+
nestedRules.push(`${selector} { ${ruleContent} }`);
|
|
665
|
+
currentDeclaration = '';
|
|
666
|
+
}
|
|
667
|
+
else {
|
|
668
|
+
currentDeclaration += char;
|
|
669
|
+
i++;
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
// Add remaining declarations
|
|
673
|
+
if (currentDeclaration.trim()) {
|
|
674
|
+
declarations.push(currentDeclaration.trim());
|
|
675
|
+
}
|
|
676
|
+
return {
|
|
677
|
+
declarations: declarations.join(' '),
|
|
678
|
+
nestedCSS: nestedRules.join('\n'),
|
|
679
|
+
};
|
|
680
|
+
};
|
|
681
|
+
processSelector = (selector, parentSelector) => {
|
|
682
|
+
if (!parentSelector) {
|
|
683
|
+
return selector;
|
|
684
|
+
}
|
|
685
|
+
// Handle & syntax - replace & with parent selector
|
|
686
|
+
if (selector.includes('&')) {
|
|
687
|
+
return selector.replace(/&/g, parentSelector);
|
|
688
|
+
}
|
|
689
|
+
// If no &, treat as descendant selector
|
|
690
|
+
return `${parentSelector} ${selector}`;
|
|
691
|
+
};
|
|
692
|
+
render() {
|
|
693
|
+
return null;
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
return GlobalStyleComponent;
|
|
697
|
+
}
|
|
449
698
|
}
|
|
450
699
|
|
|
451
700
|
|