@cube-dev/ui-kit 0.0.0-canary-4777472 → 0.0.0-canary-b26ec55
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 +55 -64
- 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 +11 -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 +2 -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 +2 -1
- package/es/components/content/Layout/LayoutFooter.js +2 -1
- package/es/components/content/Layout/LayoutGrid.js +2 -1
- package/es/components/content/Layout/LayoutHeader.js +2 -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 +2 -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 +6 -6
- 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 +18 -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 +244 -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 +18 -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/plugins/index.js +26 -0
- package/es/tasty/plugins/okhsl-plugin.js +400 -0
- package/es/tasty/plugins/types.js +10 -0
- package/es/tasty/states/index.js +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 +10 -20
- 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 +75 -55
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +75 -55
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +3 -2
- package/es/tasty/styles/preset.js +1 -1
- package/es/tasty/styles/radius.js +1 -1
- package/es/tasty/styles/reset.js +2 -6
- 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 +76 -117
- 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 +87 -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 +42 -0
- package/es/tokens/spacing.js +22 -0
- package/es/tokens/typography.js +237 -0
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/index.js +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 +827 -826
- package/types/components/Root.d.ts +1 -0
- package/types/components/actions/Button/Button.d.ts +1647 -1645
- package/types/components/actions/CommandMenu/styled.d.ts +4135 -4130
- package/types/components/actions/Menu/styled.d.ts +4384 -4379
- 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 +827 -826
- package/types/components/fields/Slider/elements.d.ts +4962 -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 +145 -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 +14 -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/plugins/index.d.ts +17 -0
- package/types/tasty/plugins/okhsl-plugin.d.ts +45 -0
- package/types/tasty/plugins/types.d.ts +34 -0
- package/types/tasty/states/index.d.ts +101 -0
- package/types/tasty/static/index.d.ts +39 -0
- package/types/tasty/static/tastyStatic.d.ts +41 -0
- package/types/tasty/static/types.d.ts +44 -0
- package/types/tasty/styles/fill.d.ts +11 -1
- package/types/tasty/styles/margin.d.ts +3 -1
- package/types/tasty/styles/padding.d.ts +3 -1
- package/types/tasty/styles/types.d.ts +13 -3
- package/types/tasty/tasty.d.ts +891 -840
- package/types/tasty/utils/styles.d.ts +50 -6
- package/types/tasty/utils/typography.d.ts +32 -0
- package/types/tasty/zero/babel.d.ts +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 +25 -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
|
@@ -1,85 +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-b26ec55
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { getConfig, getGlobalInjector, isTestEnvironment, markStylesGenerated, } from '../config';
|
|
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
|
-
}
|
|
83
10
|
/**
|
|
84
11
|
* Allocate a className for a cacheKey without injecting styles yet
|
|
85
12
|
*/
|
|
@@ -90,6 +17,8 @@ export function allocateClassName(cacheKey, options) {
|
|
|
90
17
|
* Inject styles and return className with dispose function
|
|
91
18
|
*/
|
|
92
19
|
export function inject(rules, options) {
|
|
20
|
+
// Mark that styles have been generated (prevents configuration changes)
|
|
21
|
+
markStylesGenerated();
|
|
93
22
|
return getGlobalInjector().inject(rules, options);
|
|
94
23
|
}
|
|
95
24
|
/**
|
|
@@ -99,10 +28,30 @@ export function injectGlobal(rules, options) {
|
|
|
99
28
|
return getGlobalInjector().injectGlobal(rules, options);
|
|
100
29
|
}
|
|
101
30
|
/**
|
|
102
|
-
*
|
|
31
|
+
* Inject raw CSS text directly without parsing
|
|
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
|
|
103
52
|
*/
|
|
104
|
-
function
|
|
105
|
-
return getGlobalInjector().
|
|
53
|
+
export function getRawCSSText(options) {
|
|
54
|
+
return getGlobalInjector().getRawCSSText(options);
|
|
106
55
|
}
|
|
107
56
|
/**
|
|
108
57
|
* Inject keyframes and return object with toString() and dispose()
|
|
@@ -173,20 +122,15 @@ export function destroy(root) {
|
|
|
173
122
|
* Create a new isolated injector instance
|
|
174
123
|
*/
|
|
175
124
|
export function createInjector(config = {}) {
|
|
176
|
-
const
|
|
125
|
+
const defaultConfig = getConfig();
|
|
177
126
|
const fullConfig = {
|
|
178
|
-
...
|
|
127
|
+
...defaultConfig,
|
|
128
|
+
// Auto-enable forceTextInjection in test environments
|
|
129
|
+
forceTextInjection: config.forceTextInjection ?? isTestEnvironment(),
|
|
179
130
|
...config,
|
|
180
131
|
};
|
|
181
132
|
return new StyleInjector(fullConfig);
|
|
182
133
|
}
|
|
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
|
-
}
|
|
190
134
|
export { StyleInjector } from './injector';
|
|
191
135
|
export { SheetManager } from './sheet-manager';
|
|
192
136
|
|
|
@@ -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-b26ec55
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -9,9 +9,7 @@
|
|
|
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';
|
|
13
12
|
import { parseStyle } from '../utils/styles';
|
|
14
|
-
// Simple CSS text to StyleResult converter for injectGlobal backward compatibility
|
|
15
13
|
import { SheetManager } from './sheet-manager';
|
|
16
14
|
/**
|
|
17
15
|
* Generate sequential class name with format t{number}
|
|
@@ -106,13 +104,25 @@ export class StyleInjector {
|
|
|
106
104
|
let newSelector = rule.selector;
|
|
107
105
|
// If rule needs className prepended
|
|
108
106
|
if (rule.needsClassName) {
|
|
109
|
-
//
|
|
110
|
-
|
|
107
|
+
// Handle multiple selectors (separated by ||| for OR conditions)
|
|
108
|
+
const selectorParts = newSelector ? newSelector.split('|||') : [''];
|
|
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(', ');
|
|
111
120
|
}
|
|
112
121
|
return {
|
|
113
122
|
...rule,
|
|
114
123
|
selector: newSelector,
|
|
115
124
|
needsClassName: undefined, // Remove the flag after processing
|
|
125
|
+
rootPrefix: undefined, // Remove rootPrefix after processing
|
|
116
126
|
};
|
|
117
127
|
});
|
|
118
128
|
// Before inserting, auto-register @property for any color custom properties being defined.
|
|
@@ -202,26 +212,20 @@ export class StyleInjector {
|
|
|
202
212
|
};
|
|
203
213
|
}
|
|
204
214
|
/**
|
|
205
|
-
* Inject
|
|
215
|
+
* Inject raw CSS text directly without parsing
|
|
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
|
|
206
218
|
*/
|
|
207
|
-
|
|
219
|
+
injectRawCSS(css, options) {
|
|
208
220
|
const root = options?.root || document;
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
registry.metrics.totalInsertions++;
|
|
218
|
-
}
|
|
219
|
-
return {
|
|
220
|
-
dispose: () => {
|
|
221
|
-
if (info)
|
|
222
|
-
this.sheetManager.deleteGlobalRule(registry, key);
|
|
223
|
-
},
|
|
224
|
-
};
|
|
221
|
+
return this.sheetManager.injectRawCSS(css, root);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Get raw CSS text for SSR
|
|
225
|
+
*/
|
|
226
|
+
getRawCSSText(options) {
|
|
227
|
+
const root = options?.root || document;
|
|
228
|
+
return this.sheetManager.getRawCSSText(root);
|
|
225
229
|
}
|
|
226
230
|
/**
|
|
227
231
|
* Dispose of a className
|
|
@@ -330,9 +334,9 @@ export class StyleInjector {
|
|
|
330
334
|
syntax = `"${syntax}"`;
|
|
331
335
|
parts.push(`syntax: ${syntax};`);
|
|
332
336
|
}
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
}
|
|
337
|
+
// inherits is required by the CSS @property spec - default to true
|
|
338
|
+
const inherits = options?.inherits ?? true;
|
|
339
|
+
parts.push(`inherits: ${inherits ? 'true' : 'false'};`);
|
|
336
340
|
if (options?.initialValue != null) {
|
|
337
341
|
let initialValueStr;
|
|
338
342
|
if (typeof options.initialValue === 'number') {
|
|
@@ -442,259 +446,6 @@ export class StyleInjector {
|
|
|
442
446
|
const targetRoot = root || document;
|
|
443
447
|
this.sheetManager.cleanup(targetRoot);
|
|
444
448
|
}
|
|
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
|
-
}
|
|
698
449
|
}
|
|
699
450
|
|
|
700
451
|
|
|
@@ -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-b26ec55
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -9,6 +9,12 @@ import { createStyle, STYLE_HANDLER_MAP } from '../styles';
|
|
|
9
9
|
export class SheetManager {
|
|
10
10
|
rootRegistries = new WeakMap();
|
|
11
11
|
config;
|
|
12
|
+
/** Dedicated style elements for raw CSS per root */
|
|
13
|
+
rawStyleElements = new WeakMap();
|
|
14
|
+
/** Tracking for raw CSS blocks per root */
|
|
15
|
+
rawCSSBlocks = new WeakMap();
|
|
16
|
+
/** Counter for generating unique raw CSS IDs */
|
|
17
|
+
rawCSSCounter = 0;
|
|
12
18
|
constructor(config) {
|
|
13
19
|
this.config = config;
|
|
14
20
|
}
|
|
@@ -237,8 +243,11 @@ export class SheetManager {
|
|
|
237
243
|
currentRuleIndex = idx + 1;
|
|
238
244
|
anyInserted = true;
|
|
239
245
|
}
|
|
240
|
-
catch (
|
|
246
|
+
catch (singleErr) {
|
|
241
247
|
// Skip unsupported selector in this engine (e.g., ::-moz-selection in Blink)
|
|
248
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
249
|
+
console.warn('[tasty] Browser rejected CSS rule:', singleRule, singleErr);
|
|
250
|
+
}
|
|
242
251
|
}
|
|
243
252
|
}
|
|
244
253
|
// If none inserted, continue without throwing to avoid aborting the whole batch
|
|
@@ -248,6 +257,9 @@ export class SheetManager {
|
|
|
248
257
|
}
|
|
249
258
|
else {
|
|
250
259
|
// Single selector failed — skip it silently (likely unsupported in this engine)
|
|
260
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
261
|
+
console.warn('[tasty] Browser rejected CSS rule:', fullRule, e);
|
|
262
|
+
}
|
|
251
263
|
}
|
|
252
264
|
}
|
|
253
265
|
}
|
|
@@ -906,6 +918,118 @@ export class SheetManager {
|
|
|
906
918
|
}
|
|
907
919
|
// Clear registry
|
|
908
920
|
this.rootRegistries.delete(root);
|
|
921
|
+
// Clean up raw CSS style element
|
|
922
|
+
const rawStyleElement = this.rawStyleElements.get(root);
|
|
923
|
+
if (rawStyleElement?.parentNode) {
|
|
924
|
+
rawStyleElement.parentNode.removeChild(rawStyleElement);
|
|
925
|
+
}
|
|
926
|
+
this.rawStyleElements.delete(root);
|
|
927
|
+
this.rawCSSBlocks.delete(root);
|
|
928
|
+
}
|
|
929
|
+
/**
|
|
930
|
+
* Get or create a dedicated style element for raw CSS
|
|
931
|
+
* Raw CSS is kept separate from tasty-managed sheets to avoid index conflicts
|
|
932
|
+
*/
|
|
933
|
+
getOrCreateRawStyleElement(root) {
|
|
934
|
+
let styleElement = this.rawStyleElements.get(root);
|
|
935
|
+
if (!styleElement) {
|
|
936
|
+
styleElement =
|
|
937
|
+
root.createElement?.('style') ||
|
|
938
|
+
document.createElement('style');
|
|
939
|
+
if (this.config.nonce) {
|
|
940
|
+
styleElement.nonce = this.config.nonce;
|
|
941
|
+
}
|
|
942
|
+
styleElement.setAttribute('data-tasty-raw', '');
|
|
943
|
+
// Append to head or shadow root
|
|
944
|
+
if ('head' in root && root.head) {
|
|
945
|
+
root.head.appendChild(styleElement);
|
|
946
|
+
}
|
|
947
|
+
else if ('appendChild' in root) {
|
|
948
|
+
root.appendChild(styleElement);
|
|
949
|
+
}
|
|
950
|
+
else {
|
|
951
|
+
document.head.appendChild(styleElement);
|
|
952
|
+
}
|
|
953
|
+
this.rawStyleElements.set(root, styleElement);
|
|
954
|
+
this.rawCSSBlocks.set(root, new Map());
|
|
955
|
+
}
|
|
956
|
+
return styleElement;
|
|
957
|
+
}
|
|
958
|
+
/**
|
|
959
|
+
* Inject raw CSS text directly without parsing
|
|
960
|
+
* Returns a dispose function to remove the injected CSS
|
|
961
|
+
*/
|
|
962
|
+
injectRawCSS(css, root) {
|
|
963
|
+
if (!css.trim()) {
|
|
964
|
+
return { dispose: () => { } };
|
|
965
|
+
}
|
|
966
|
+
const styleElement = this.getOrCreateRawStyleElement(root);
|
|
967
|
+
const blocksMap = this.rawCSSBlocks.get(root);
|
|
968
|
+
// Generate unique ID for this block
|
|
969
|
+
const id = `raw_${this.rawCSSCounter++}`;
|
|
970
|
+
// Calculate offsets
|
|
971
|
+
const currentContent = styleElement.textContent || '';
|
|
972
|
+
const startOffset = currentContent.length;
|
|
973
|
+
const cssWithNewline = (currentContent ? '\n' : '') + css;
|
|
974
|
+
const endOffset = startOffset + cssWithNewline.length;
|
|
975
|
+
// Append CSS
|
|
976
|
+
styleElement.textContent = currentContent + cssWithNewline;
|
|
977
|
+
// Track the block
|
|
978
|
+
const info = {
|
|
979
|
+
id,
|
|
980
|
+
css,
|
|
981
|
+
startOffset,
|
|
982
|
+
endOffset,
|
|
983
|
+
};
|
|
984
|
+
blocksMap.set(id, info);
|
|
985
|
+
return {
|
|
986
|
+
dispose: () => {
|
|
987
|
+
this.disposeRawCSS(id, root);
|
|
988
|
+
},
|
|
989
|
+
};
|
|
990
|
+
}
|
|
991
|
+
/**
|
|
992
|
+
* Remove a raw CSS block by ID
|
|
993
|
+
*/
|
|
994
|
+
disposeRawCSS(id, root) {
|
|
995
|
+
const styleElement = this.rawStyleElements.get(root);
|
|
996
|
+
const blocksMap = this.rawCSSBlocks.get(root);
|
|
997
|
+
if (!styleElement || !blocksMap) {
|
|
998
|
+
return;
|
|
999
|
+
}
|
|
1000
|
+
const info = blocksMap.get(id);
|
|
1001
|
+
if (!info) {
|
|
1002
|
+
return;
|
|
1003
|
+
}
|
|
1004
|
+
// Remove from tracking
|
|
1005
|
+
blocksMap.delete(id);
|
|
1006
|
+
// Rebuild the CSS content from remaining blocks
|
|
1007
|
+
// This is simpler and more reliable than trying to splice strings
|
|
1008
|
+
const remainingBlocks = Array.from(blocksMap.values());
|
|
1009
|
+
if (remainingBlocks.length === 0) {
|
|
1010
|
+
styleElement.textContent = '';
|
|
1011
|
+
}
|
|
1012
|
+
else {
|
|
1013
|
+
// Rebuild with remaining CSS blocks in order of their original insertion
|
|
1014
|
+
// Sort by original startOffset to maintain order
|
|
1015
|
+
remainingBlocks.sort((a, b) => a.startOffset - b.startOffset);
|
|
1016
|
+
const newContent = remainingBlocks.map((block) => block.css).join('\n');
|
|
1017
|
+
styleElement.textContent = newContent;
|
|
1018
|
+
// Update offsets for remaining blocks
|
|
1019
|
+
let offset = 0;
|
|
1020
|
+
for (const block of remainingBlocks) {
|
|
1021
|
+
block.startOffset = offset;
|
|
1022
|
+
block.endOffset = offset + block.css.length;
|
|
1023
|
+
offset = block.endOffset + 1; // +1 for newline
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
/**
|
|
1028
|
+
* Get the raw CSS content for SSR
|
|
1029
|
+
*/
|
|
1030
|
+
getRawCSSText(root) {
|
|
1031
|
+
const styleElement = this.rawStyleElements.get(root);
|
|
1032
|
+
return styleElement?.textContent || '';
|
|
909
1033
|
}
|
|
910
1034
|
}
|
|
911
1035
|
|