@cube-dev/ui-kit 0.0.0-canary-9e3bcfc → 0.0.0-canary-eaff7d7
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 +51 -52
- package/es/components/GridProvider.js +1 -1
- package/es/components/HiddenInput.js +1 -1
- package/es/components/OpenTrasition.js +1 -1
- package/es/components/Root.js +1 -1
- package/es/components/actions/Action/Action.js +1 -1
- package/es/components/actions/Button/Button.js +1 -1
- package/es/components/actions/Button/index.js +1 -1
- package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/es/components/actions/CommandMenu/index.js +1 -1
- package/es/components/actions/CommandMenu/styled.js +1 -1
- package/es/components/actions/ItemAction/ItemAction.js +1 -1
- package/es/components/actions/ItemAction/index.js +1 -1
- package/es/components/actions/ItemActionContext.js +1 -1
- package/es/components/actions/ItemButton/ItemButton.js +1 -1
- package/es/components/actions/ItemButton/index.js +1 -1
- package/es/components/actions/Link/Link.js +1 -1
- package/es/components/actions/Menu/Menu.js +1 -1
- package/es/components/actions/Menu/MenuItem.js +1 -1
- package/es/components/actions/Menu/MenuSection.js +1 -1
- package/es/components/actions/Menu/MenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/es/components/actions/Menu/context.js +1 -1
- package/es/components/actions/Menu/index.js +1 -1
- package/es/components/actions/Menu/styled.js +1 -1
- package/es/components/actions/index.js +1 -1
- package/es/components/actions/use-action.js +1 -1
- package/es/components/actions/use-anchored-menu.js +1 -1
- package/es/components/actions/use-context-menu.js +1 -1
- package/es/components/content/ActiveZone/ActiveZone.js +1 -1
- package/es/components/content/Alert/Alert.js +1 -1
- package/es/components/content/Alert/index.js +1 -1
- package/es/components/content/Alert/types.js +1 -1
- package/es/components/content/Alert/use-alert.js +1 -1
- package/es/components/content/Avatar/Avatar.js +1 -1
- package/es/components/content/Badge/Badge.js +1 -1
- package/es/components/content/Card/Card.js +1 -1
- package/es/components/content/Content.js +1 -1
- package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/es/components/content/CopyPasteBlock/index.js +1 -1
- package/es/components/content/CopySnippet/CopySnippet.js +1 -1
- package/es/components/content/CopySnippet/index.js +1 -1
- package/es/components/content/Disclosure/Disclosure.js +1 -1
- package/es/components/content/Disclosure/index.js +1 -1
- package/es/components/content/Divider.js +1 -1
- package/es/components/content/Footer.js +1 -1
- package/es/components/content/Header.js +1 -1
- package/es/components/content/HotKeys/HotKeys.js +1 -1
- package/es/components/content/HotKeys/index.js +1 -1
- package/es/components/content/Item/Item.js +1 -1
- package/es/components/content/Item/index.js +1 -1
- package/es/components/content/ItemBadge/ItemBadge.js +1 -1
- package/es/components/content/ItemBadge/index.js +1 -1
- package/es/components/content/Layout/GridLayout.js +1 -1
- package/es/components/content/Layout/Layout.js +1 -1
- package/es/components/content/Layout/LayoutBlock.js +1 -1
- package/es/components/content/Layout/LayoutCenter.js +1 -1
- package/es/components/content/Layout/LayoutContainer.js +1 -1
- package/es/components/content/Layout/LayoutContent.js +1 -1
- package/es/components/content/Layout/LayoutContext.js +1 -1
- package/es/components/content/Layout/LayoutFlex.js +1 -1
- package/es/components/content/Layout/LayoutFooter.js +1 -1
- package/es/components/content/Layout/LayoutGrid.js +1 -1
- package/es/components/content/Layout/LayoutHeader.js +1 -1
- package/es/components/content/Layout/LayoutPane.js +1 -1
- package/es/components/content/Layout/LayoutPanel.js +1 -1
- package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/es/components/content/Layout/LayoutToolbar.js +1 -1
- package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/es/components/content/Layout/index.js +1 -1
- package/es/components/content/Layout/utils.js +1 -1
- package/es/components/content/List/SectionHeading.js +1 -1
- package/es/components/content/List/index.js +1 -1
- package/es/components/content/Paragraph.js +1 -1
- package/es/components/content/Placeholder/Placeholder.js +1 -1
- package/es/components/content/PrismCode/PrismCode.js +1 -1
- package/es/components/content/PrismCode/prismSetup.js +1 -1
- package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/es/components/content/Result/Result.js +1 -1
- package/es/components/content/Skeleton/Skeleton.js +1 -1
- package/es/components/content/Tag/Tag.js +1 -1
- package/es/components/content/Text.js +1 -1
- package/es/components/content/TextItem/TextItem.js +1 -1
- package/es/components/content/TextItem/index.js +1 -1
- package/es/components/content/Title.js +1 -1
- package/es/components/content/highlightText.js +1 -1
- package/es/components/content/use-auto-tooltip.js +1 -1
- package/es/components/fields/Checkbox/Checkbox.js +1 -1
- package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/es/components/fields/Checkbox/context.js +1 -1
- package/es/components/fields/Checkbox/index.js +1 -1
- package/es/components/fields/ComboBox/ComboBox.js +1 -1
- package/es/components/fields/ComboBox/index.js +1 -1
- package/es/components/fields/DatePicker/DateInput.js +1 -1
- package/es/components/fields/DatePicker/DateInputBase.js +1 -1
- package/es/components/fields/DatePicker/DatePicker.js +1 -1
- package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/es/components/fields/DatePicker/TimeInput.js +1 -1
- package/es/components/fields/DatePicker/index.js +1 -1
- package/es/components/fields/DatePicker/intl.js +1 -1
- package/es/components/fields/DatePicker/parseDate.js +1 -1
- package/es/components/fields/DatePicker/props.js +1 -1
- package/es/components/fields/DatePicker/types.js +1 -1
- package/es/components/fields/DatePicker/utils.js +1 -1
- package/es/components/fields/FileInput/FileInput.js +1 -1
- package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/es/components/fields/FilterListBox/index.js +1 -1
- package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/es/components/fields/FilterPicker/index.js +1 -1
- package/es/components/fields/Input/Input.js +1 -1
- package/es/components/fields/Input/index.js +1 -1
- package/es/components/fields/ListBox/ListBox.js +1 -1
- package/es/components/fields/ListBox/index.js +1 -1
- package/es/components/fields/NumberInput/NumberInput.js +1 -1
- package/es/components/fields/NumberInput/StepButton.js +1 -1
- package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/es/components/fields/Picker/Picker.js +1 -1
- package/es/components/fields/Picker/index.js +1 -1
- package/es/components/fields/RadioGroup/Radio.js +1 -1
- package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/es/components/fields/RadioGroup/context.js +1 -1
- package/es/components/fields/RadioGroup/index.js +1 -1
- package/es/components/fields/SearchInput/SearchInput.js +1 -1
- package/es/components/fields/SearchInput/index.js +1 -1
- package/es/components/fields/Select/Select.js +1 -1
- package/es/components/fields/Select/index.js +1 -1
- package/es/components/fields/Slider/Gradation.js +1 -1
- package/es/components/fields/Slider/Header.js +1 -1
- package/es/components/fields/Slider/RangeSlider.js +1 -1
- package/es/components/fields/Slider/Slider.js +1 -1
- package/es/components/fields/Slider/SliderBase.js +1 -1
- package/es/components/fields/Slider/SliderInput.js +1 -1
- package/es/components/fields/Slider/SliderThumb.js +1 -1
- package/es/components/fields/Slider/SliderTrack.js +1 -1
- package/es/components/fields/Slider/elements.js +1 -1
- package/es/components/fields/Slider/index.js +1 -1
- package/es/components/fields/Slider/types.js +1 -1
- package/es/components/fields/Switch/Switch.js +1 -1
- package/es/components/fields/Switch/index.js +1 -1
- package/es/components/fields/TextArea/TextArea.js +1 -1
- package/es/components/fields/TextArea/index.js +1 -1
- package/es/components/fields/TextInput/TextInput.js +1 -1
- package/es/components/fields/TextInput/TextInputBase.js +1 -1
- package/es/components/fields/TextInput/index.js +1 -1
- package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/es/components/fields/TextInputMapper/index.js +1 -1
- package/es/components/fields/index.js +1 -1
- package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
- package/es/components/form/FieldWrapper/index.js +1 -1
- package/es/components/form/FieldWrapper/types.js +1 -1
- package/es/components/form/Form/Field.js +1 -1
- package/es/components/form/Form/Form.js +1 -1
- package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/es/components/form/Form/ResetButton/index.js +1 -1
- package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/es/components/form/Form/SubmitButton/index.js +1 -1
- package/es/components/form/Form/SubmitError.js +1 -1
- package/es/components/form/Form/index.js +1 -1
- package/es/components/form/Form/types.js +1 -1
- package/es/components/form/Form/use-field/index.js +1 -1
- package/es/components/form/Form/use-field/types.js +1 -1
- package/es/components/form/Form/use-field/use-field-props.js +1 -1
- package/es/components/form/Form/use-field/use-field.js +1 -1
- package/es/components/form/Form/use-form.js +1 -1
- package/es/components/form/Form/validation.js +1 -1
- package/es/components/form/Label.js +1 -1
- package/es/components/form/index.js +1 -1
- package/es/components/form/wrapper.js +1 -1
- package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/es/components/helpers/DisplayTransition/index.js +1 -1
- package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/es/components/helpers/index.js +1 -1
- package/es/components/layout/Flex.js +1 -1
- package/es/components/layout/Flow.js +1 -1
- package/es/components/layout/Grid.js +1 -1
- package/es/components/layout/Panel.js +1 -1
- package/es/components/layout/Prefix.js +1 -1
- package/es/components/layout/ResizablePanel.js +1 -1
- package/es/components/layout/Space.js +1 -1
- package/es/components/layout/Suffix.js +1 -1
- package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
- package/es/components/organisms/FileTabs/FileTabs.js +1 -1
- package/es/components/organisms/StatsCard/StatsCard.js +1 -1
- package/es/components/other/Base64Upload/Base64Upload.js +1 -1
- package/es/components/other/Calendar/Calendar.js +1 -1
- package/es/components/other/Calendar/CalendarCell.js +1 -1
- package/es/components/other/Calendar/CalendarGrid.js +1 -1
- package/es/components/other/Calendar/RangeCalendar.js +1 -1
- package/es/components/other/CloudLogo/CloudLogo.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/es/components/overlays/AlertDialog/index.js +1 -1
- package/es/components/overlays/AlertDialog/types.js +1 -1
- package/es/components/overlays/Dialog/Dialog.js +1 -1
- package/es/components/overlays/Dialog/DialogContainer.js +1 -1
- package/es/components/overlays/Dialog/DialogForm.js +1 -1
- package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/es/components/overlays/Dialog/context.js +1 -1
- package/es/components/overlays/Dialog/index.js +1 -1
- package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/es/components/overlays/Modal/Modal.js +1 -1
- package/es/components/overlays/Modal/OpenTransition.js +1 -1
- package/es/components/overlays/Modal/Overlay.js +1 -1
- package/es/components/overlays/Modal/Popover.js +1 -1
- package/es/components/overlays/Modal/Tray.js +1 -1
- package/es/components/overlays/Modal/Underlay.js +1 -1
- package/es/components/overlays/Modal/index.js +1 -1
- package/es/components/overlays/Modal/types.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
- package/es/components/overlays/NewNotifications/Notification.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
- package/es/components/overlays/NewNotifications/index.js +1 -1
- package/es/components/overlays/NewNotifications/types.js +1 -1
- package/es/components/overlays/Notification/Notification.js +1 -1
- package/es/components/overlays/OverlayWrapper.js +1 -1
- package/es/components/overlays/Toasts/Toast.js +1 -1
- package/es/components/overlays/Toasts/index.js +1 -1
- package/es/components/overlays/Toasts/types.js +1 -1
- package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
- package/es/components/overlays/Tooltip/Tooltip.js +1 -1
- package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/es/components/overlays/Tooltip/context.js +1 -1
- package/es/components/overlays/Tooltip/index.js +1 -1
- package/es/components/portal/Portal.js +1 -1
- package/es/components/portal/PortalProvider.js +1 -1
- package/es/components/portal/index.js +1 -1
- package/es/components/portal/types.js +1 -1
- package/es/components/portal/usePortal.js +1 -1
- package/es/components/shared/InvalidIcon.js +1 -1
- package/es/components/shared/ValidIcon.js +1 -1
- package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/es/components/status/LoadingAnimation/index.js +1 -1
- package/es/components/status/Spin/Cube.js +1 -1
- package/es/components/status/Spin/InternalSpinner.js +1 -1
- package/es/components/status/Spin/Spin.js +1 -1
- package/es/components/status/Spin/SpinsContainer.js +1 -1
- package/es/components/status/Spin/index.js +1 -1
- package/es/components/status/Spin/types.js +1 -1
- package/es/components/status/index.js +1 -1
- package/es/data/item-themes.js +1 -1
- package/es/data/themes.js +1 -1
- package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/es/icons/AdjustmentsIcon.js +1 -1
- package/es/icons/AiIcon.js +1 -1
- package/es/icons/AreaChartIcon.js +1 -1
- package/es/icons/BackwardIcon.js +1 -1
- package/es/icons/BarChartIcon.js +1 -1
- package/es/icons/BellFilledIcon.js +1 -1
- package/es/icons/BellIcon.js +1 -1
- package/es/icons/BooleanIcon.js +1 -1
- package/es/icons/CalendarEditIcon.js +1 -1
- package/es/icons/CalendarIcon.js +1 -1
- package/es/icons/CaretDownIcon.js +1 -1
- package/es/icons/CaretUpIcon.js +1 -1
- package/es/icons/ChartAreaStackedIcon.js +1 -1
- package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarGroupedIcon.js +1 -1
- package/es/icons/ChartBarHorizontalIcon.js +1 -1
- package/es/icons/ChartBarLineIcon.js +1 -1
- package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBoxPlot2Icon.js +1 -1
- package/es/icons/ChartBoxPlotIcon.js +1 -1
- package/es/icons/ChartBubbleIcon.js +1 -1
- package/es/icons/ChartDonut2Icon.js +1 -1
- package/es/icons/ChartFunnelIcon.js +1 -1
- package/es/icons/ChartHeatmapIcon.js +1 -1
- package/es/icons/ChartKPIIcon.js +1 -1
- package/es/icons/ChartPie2Icon.js +1 -1
- package/es/icons/ChartScatterIcon.js +1 -1
- package/es/icons/CheckCircleFilledIcon.js +1 -1
- package/es/icons/CheckCircleIcon.js +1 -1
- package/es/icons/CheckIcon.js +1 -1
- package/es/icons/CircleFilledIcon.js +1 -1
- package/es/icons/ClearIcon.js +1 -1
- package/es/icons/CloseCircleFilledIcon.js +1 -1
- package/es/icons/CloseCircleIcon.js +1 -1
- package/es/icons/CloseIcon.js +1 -1
- package/es/icons/CodeIcon.js +1 -1
- package/es/icons/ColumnTotalIcon.js +1 -1
- package/es/icons/CopyIcon.js +1 -1
- package/es/icons/CountIcon.js +1 -1
- package/es/icons/CubeIcon.js +1 -1
- package/es/icons/CubePauseIcon.js +1 -1
- package/es/icons/CubePlayIcon.js +1 -1
- package/es/icons/CurrencyDollarIcon.js +1 -1
- package/es/icons/DangerIcon.js +1 -1
- package/es/icons/DashboardIcon.js +1 -1
- package/es/icons/DatabaseIcon.js +1 -1
- package/es/icons/DecimalDecreaseIcon.js +1 -1
- package/es/icons/DecimalIncreaseIcon.js +1 -1
- package/es/icons/DirectionIcon.js +1 -1
- package/es/icons/DonutIcon.js +1 -1
- package/es/icons/DownIcon.js +1 -1
- package/es/icons/EditIcon.js +1 -1
- package/es/icons/ExclamationCircleFilledIcon.js +1 -1
- package/es/icons/ExclamationCircleIcon.js +1 -1
- package/es/icons/ExclamationIcon.js +1 -1
- package/es/icons/EyeIcon.js +1 -1
- package/es/icons/EyeInvisibleIcon.js +1 -1
- package/es/icons/FilterIcon.js +1 -1
- package/es/icons/FolderFilledIcon.js +1 -1
- package/es/icons/FolderIcon.js +1 -1
- package/es/icons/FolderOpenFilledIcon.js +1 -1
- package/es/icons/FolderOpenIcon.js +1 -1
- package/es/icons/ForwardIcon.js +1 -1
- package/es/icons/HierarchyIcon.js +1 -1
- package/es/icons/HierarchyOpenIcon.js +1 -1
- package/es/icons/Icon.js +1 -1
- package/es/icons/InfoCircleIcon.js +1 -1
- package/es/icons/InfoIcon.js +1 -1
- package/es/icons/KeyIcon.js +1 -1
- package/es/icons/LeftIcon.js +1 -1
- package/es/icons/LineChartIcon.js +1 -1
- package/es/icons/LoadingIcon.js +1 -1
- package/es/icons/LockFilledIcon.js +1 -1
- package/es/icons/LockIcon.js +1 -1
- package/es/icons/MoreIcon.js +1 -1
- package/es/icons/NotAllowedIcon.js +1 -1
- package/es/icons/Number123Icon.js +1 -1
- package/es/icons/NumberIcon.js +1 -1
- package/es/icons/PauseCircleFilledIcon.js +1 -1
- package/es/icons/PauseCircleIcon.js +1 -1
- package/es/icons/PauseIcon.js +1 -1
- package/es/icons/PercentageIcon.js +1 -1
- package/es/icons/PieChartIcon.js +1 -1
- package/es/icons/PlayCircleIcon.js +1 -1
- package/es/icons/PlayIcon.js +1 -1
- package/es/icons/PlusIcon.js +1 -1
- package/es/icons/ProgressBarIcon.js +1 -1
- package/es/icons/ReloadIcon.js +1 -1
- package/es/icons/ReportIcon.js +1 -1
- package/es/icons/ReturnIcon.js +1 -1
- package/es/icons/RightIcon.js +1 -1
- package/es/icons/RowTotalsIcon.js +1 -1
- package/es/icons/SchemeIcon.js +1 -1
- package/es/icons/SearchIcon.js +1 -1
- package/es/icons/SettingsIcon.js +1 -1
- package/es/icons/ShieldFilledIcon.js +1 -1
- package/es/icons/ShieldIcon.js +1 -1
- package/es/icons/SlashIcon.js +1 -1
- package/es/icons/SparklesIcon.js +1 -1
- package/es/icons/SqlIcon.js +1 -1
- package/es/icons/StatsIcon.js +1 -1
- package/es/icons/StopIcon.js +1 -1
- package/es/icons/StringIcon.js +1 -1
- package/es/icons/SubtotalsIcon.js +1 -1
- package/es/icons/SwitchIcon.js +1 -1
- package/es/icons/TableIcon.js +1 -1
- package/es/icons/ThumbsDownIcon.js +1 -1
- package/es/icons/ThumbsUpIcon.js +1 -1
- package/es/icons/ThunderboltCrossedIcon.js +1 -1
- package/es/icons/ThunderboltFilledIcon.js +1 -1
- package/es/icons/ThunderboltIcon.js +1 -1
- package/es/icons/TimeIcon.js +1 -1
- package/es/icons/TrashIcon.js +1 -1
- package/es/icons/UnlockIcon.js +1 -1
- package/es/icons/UpIcon.js +1 -1
- package/es/icons/UserGroupIcon.js +1 -1
- package/es/icons/UserIcon.js +1 -1
- package/es/icons/UserLockIcon.js +1 -1
- package/es/icons/ViewIcon.js +1 -1
- package/es/icons/WarningFilledIcon.js +1 -1
- package/es/icons/WarningIcon.js +1 -1
- package/es/icons/add-new-icon.js +1 -1
- package/es/icons/index.js +1 -1
- package/es/icons/wrap-icon.js +1 -1
- package/es/index.js +1 -1
- package/es/provider.js +1 -1
- package/es/providers/TrackingProvider.js +1 -1
- package/es/providers/navigation.types.js +1 -1
- package/es/providers/navigationAdapter.default.js +1 -1
- package/es/services/notification.js +1 -1
- package/es/shared/form.js +1 -1
- package/es/shared/index.js +1 -1
- package/es/stories/Form.legacy-stories.js +1 -1
- package/es/stories/FormFieldArgs.js +1 -1
- package/es/stories/SimpleLayout.stories.js +1 -1
- package/es/stories/Tasty.stories.js +1 -1
- package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
- package/es/stories/components/DialogFormApp.js +1 -1
- package/es/stories/components/StyledButton.js +17 -14
- package/es/stories/lists/baseProps.js +1 -1
- package/es/tasty/chunks/cacheKey.js +1 -1
- package/es/tasty/chunks/definitions.js +3 -1
- package/es/tasty/chunks/index.js +1 -1
- package/es/tasty/chunks/renderChunk.js +1 -1
- package/es/tasty/config.js +196 -0
- package/es/tasty/debug.js +193 -7
- package/es/tasty/hooks/index.js +2 -1
- package/es/tasty/hooks/useGlobalStyles.js +9 -9
- package/es/tasty/hooks/useRawCSS.js +40 -0
- package/es/tasty/hooks/useStyles.js +3 -3
- package/es/tasty/index.js +4 -2
- package/es/tasty/injector/index.js +31 -96
- package/es/tasty/injector/injector.js +16 -277
- package/es/tasty/injector/sheet-manager.js +119 -1
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/parser/classify.js +1 -1
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +1 -1
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +1 -1
- package/es/tasty/pipeline/conditions.js +1 -1
- package/es/tasty/pipeline/exclusive.js +1 -1
- package/es/tasty/pipeline/index.js +1 -1
- package/es/tasty/pipeline/materialize.js +1 -1
- package/es/tasty/pipeline/parseStateKey.js +1 -1
- package/es/tasty/pipeline/simplify.js +1 -1
- package/es/tasty/states/index.js +4 -23
- package/es/tasty/static/index.js +47 -0
- package/es/tasty/static/tastyStatic.js +55 -0
- package/es/tasty/static/types.js +34 -0
- package/es/tasty/styles/align.js +1 -1
- package/es/tasty/styles/border.js +1 -1
- package/es/tasty/styles/boxShadow.combinator.js +1 -1
- package/es/tasty/styles/color.js +1 -1
- package/es/tasty/styles/createStyle.js +1 -1
- package/es/tasty/styles/dimension.js +1 -1
- package/es/tasty/styles/display.js +1 -1
- package/es/tasty/styles/fade.js +1 -1
- package/es/tasty/styles/fill.js +1 -1
- package/es/tasty/styles/flow.js +1 -1
- package/es/tasty/styles/font.js +1 -1
- package/es/tasty/styles/fontStyle.js +1 -1
- package/es/tasty/styles/gap.js +1 -1
- package/es/tasty/styles/groupRadius.js +1 -1
- package/es/tasty/styles/height.js +1 -1
- package/es/tasty/styles/index.js +1 -1
- package/es/tasty/styles/inset.js +1 -1
- package/es/tasty/styles/justify.js +1 -1
- package/es/tasty/styles/list.js +1 -1
- package/es/tasty/styles/margin.js +1 -1
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +1 -1
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +1 -1
- package/es/tasty/styles/preset.js +1 -1
- package/es/tasty/styles/radius.js +1 -1
- package/es/tasty/styles/reset.js +1 -1
- package/es/tasty/styles/scrollbar.js +1 -1
- package/es/tasty/styles/shadow.js +1 -1
- package/es/tasty/styles/styledScrollbar.js +1 -1
- package/es/tasty/styles/transition.js +1 -1
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +1 -1
- package/es/tasty/tasty.js +1 -14
- package/es/tasty/types.js +1 -1
- package/es/tasty/utils/cache-wrapper.js +1 -1
- package/es/tasty/utils/case-converter.js +1 -1
- package/es/tasty/utils/colors.js +1 -1
- package/es/tasty/utils/dotize.js +1 -1
- package/es/tasty/utils/filterBaseProps.js +1 -1
- package/es/tasty/utils/getDisplayName.js +1 -1
- package/es/tasty/utils/isDevEnv.js +1 -1
- package/es/tasty/utils/mergeStyles.js +1 -1
- package/es/tasty/utils/modAttrs.js +1 -1
- package/es/tasty/utils/processTokens.js +1 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +1 -1
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tasty/zero/babel.js +385 -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.js +1 -1
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/index.js +1 -1
- package/es/utils/modules.js +1 -1
- package/es/utils/promise.js +1 -1
- package/es/utils/raf.js +1 -1
- package/es/utils/random.js +1 -1
- package/es/utils/range.js +1 -1
- package/es/utils/react/RenderCache.js +1 -1
- package/es/utils/react/Slots.js +1 -1
- package/es/utils/react/chain.js +1 -1
- package/es/utils/react/forwardRefWithGenerics.js +1 -1
- package/es/utils/react/index.js +1 -1
- package/es/utils/react/interactions.js +1 -1
- package/es/utils/react/isTextOnly.js +1 -1
- package/es/utils/react/mapProps.js +1 -1
- package/es/utils/react/mergeProps.js +1 -1
- package/es/utils/react/nullableValue.js +1 -1
- package/es/utils/react/resolveIcon.js +1 -1
- package/es/utils/react/sharedStore.js +1 -1
- package/es/utils/react/useCombinedRefs.js +1 -1
- package/es/utils/react/useControlledFocusVisible.js +1 -1
- package/es/utils/react/useEventBus.js +1 -1
- package/es/utils/react/useId.js +1 -1
- package/es/utils/react/useIsDarwin.js +1 -1
- package/es/utils/react/useKeySymbols.js +1 -1
- package/es/utils/react/useLayoutEffect.js +1 -1
- package/es/utils/react/useLocalStorage.js +1 -1
- package/es/utils/react/useQaProps.js +1 -1
- package/es/utils/react/useViewportSize.js +1 -1
- package/es/utils/react/wrapNodeIfPlain.js +1 -1
- package/es/utils/tree.js +1 -1
- package/es/utils/warnings.js +1 -1
- package/es/version.js +2 -2
- package/package.json +3 -1
- package/types/components/GlobalStyles.d.ts +1 -1
- package/types/components/HiddenInput.d.ts +10 -10
- package/types/components/actions/Button/Button.d.ts +14 -14
- package/types/components/actions/CommandMenu/styled.d.ts +50 -50
- package/types/components/actions/Menu/styled.d.ts +89 -89
- package/types/components/actions/use-action.d.ts +1 -1
- package/types/components/content/List/SectionHeading.d.ts +13 -13
- package/types/components/content/Text.d.ts +70 -70
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +13 -13
- package/types/components/fields/Select/Select.d.ts +10 -10
- package/types/components/fields/Slider/elements.d.ts +60 -60
- package/types/stories/components/StyledButton.d.ts +1 -1
- package/types/tasty/chunks/definitions.d.ts +2 -0
- package/types/tasty/config.d.ts +113 -0
- package/types/tasty/debug.d.ts +35 -0
- package/types/tasty/hooks/index.d.ts +1 -1
- package/types/tasty/hooks/useGlobalStyles.d.ts +8 -18
- package/types/tasty/hooks/useRawCSS.d.ts +50 -0
- package/types/tasty/index.d.ts +4 -2
- package/types/tasty/injector/index.d.ts +29 -18
- package/types/tasty/injector/injector.d.ts +12 -12
- package/types/tasty/injector/sheet-manager.d.ts +25 -1
- package/types/tasty/injector/types.d.ts +13 -0
- package/types/tasty/states/index.d.ts +0 -12
- 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/tasty.d.ts +10 -11
- package/types/tasty/zero/babel.d.ts +43 -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
|
@@ -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-eaff7d7
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -12,23 +12,23 @@ import { renderStyles } from '../pipeline';
|
|
|
12
12
|
* Hook to inject global styles for a given selector.
|
|
13
13
|
* Useful for styling elements by selector without generating classNames.
|
|
14
14
|
*
|
|
15
|
+
* @param selector - CSS selector to apply styles to (e.g., '.my-class', ':root', 'body')
|
|
16
|
+
* @param styles - Tasty styles object
|
|
17
|
+
*
|
|
15
18
|
* @example
|
|
16
19
|
* ```tsx
|
|
17
20
|
* function MyComponent() {
|
|
18
|
-
* useGlobalStyles({
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* radius: '1r',
|
|
23
|
-
* fill: '#white',
|
|
24
|
-
* }
|
|
21
|
+
* useGlobalStyles('.card', {
|
|
22
|
+
* padding: '2x',
|
|
23
|
+
* radius: '1r',
|
|
24
|
+
* fill: '#white',
|
|
25
25
|
* });
|
|
26
26
|
*
|
|
27
27
|
* return <div className="card">Content</div>;
|
|
28
28
|
* }
|
|
29
29
|
* ```
|
|
30
30
|
*/
|
|
31
|
-
export function useGlobalStyles(
|
|
31
|
+
export function useGlobalStyles(selector, styles) {
|
|
32
32
|
const disposeRef = useRef(null);
|
|
33
33
|
// Render styles with the provided selector
|
|
34
34
|
// Note: renderStyles overload with selector string returns StyleResult[] directly
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
* author: Cube Dev Team
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-eaff7d7
|
|
5
|
+
* Released under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { useInsertionEffect, useMemo, useRef } from 'react';
|
|
9
|
+
import { injectRawCSS } from '../injector';
|
|
10
|
+
// Implementation
|
|
11
|
+
export function useRawCSS(cssOrFactory, depsOrOptions, options) {
|
|
12
|
+
// Detect which overload is being used
|
|
13
|
+
const isFactory = typeof cssOrFactory === 'function';
|
|
14
|
+
// Parse arguments based on overload
|
|
15
|
+
const deps = isFactory && Array.isArray(depsOrOptions) ? depsOrOptions : undefined;
|
|
16
|
+
const opts = isFactory
|
|
17
|
+
? options
|
|
18
|
+
: depsOrOptions;
|
|
19
|
+
// Memoize CSS - for factory functions, use provided deps; for strings, use the string itself
|
|
20
|
+
const css = useMemo(() => isFactory ? cssOrFactory() : cssOrFactory, isFactory ? deps ?? [] : [cssOrFactory]);
|
|
21
|
+
const disposeRef = useRef(null);
|
|
22
|
+
useInsertionEffect(() => {
|
|
23
|
+
// Dispose previous injection if any
|
|
24
|
+
disposeRef.current?.();
|
|
25
|
+
if (!css.trim()) {
|
|
26
|
+
disposeRef.current = null;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// Inject new CSS
|
|
30
|
+
const { dispose } = injectRawCSS(css, opts);
|
|
31
|
+
disposeRef.current = dispose;
|
|
32
|
+
// Cleanup on unmount or when css changes
|
|
33
|
+
return () => {
|
|
34
|
+
disposeRef.current?.();
|
|
35
|
+
disposeRef.current = null;
|
|
36
|
+
};
|
|
37
|
+
}, [css, opts?.root]);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
@@ -1,12 +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-eaff7d7
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { useInsertionEffect, useMemo, useRef } from 'react';
|
|
9
|
-
import { categorizeStyleKeys, generateChunkCacheKey, renderStylesForChunk, } from '../chunks';
|
|
9
|
+
import { categorizeStyleKeys, CHUNK_NAMES, generateChunkCacheKey, renderStylesForChunk, } from '../chunks';
|
|
10
10
|
import { allocateClassName, inject } from '../injector';
|
|
11
11
|
import { renderStyles } from '../pipeline';
|
|
12
12
|
import { stringifyStyles } from '../utils/styles';
|
|
@@ -79,7 +79,7 @@ export function useStyles({ styles }) {
|
|
|
79
79
|
const { className } = allocateClassName(styleKey);
|
|
80
80
|
return [
|
|
81
81
|
{
|
|
82
|
-
name:
|
|
82
|
+
name: CHUNK_NAMES.COMBINED,
|
|
83
83
|
styleKeys: Object.keys(currentStyles),
|
|
84
84
|
cacheKey: styleKey,
|
|
85
85
|
renderResult,
|
package/es/tasty/index.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
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-eaff7d7
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
export { tasty, Element } from './tasty';
|
|
9
|
-
export { useStyles, useGlobalStyles } from './hooks';
|
|
9
|
+
export { useStyles, useGlobalStyles, useRawCSS } from './hooks';
|
|
10
|
+
// Configuration API
|
|
11
|
+
export { configure, getConfig, isConfigLocked, hasStylesGenerated, resetConfig, isTestEnvironment, } from './config';
|
|
10
12
|
// Chunk utilities for advanced use cases
|
|
11
13
|
export { CHUNK_NAMES, STYLE_TO_CHUNK, categorizeStyleKeys } from './chunks';
|
|
12
14
|
// Advanced state mapping utilities
|
|
@@ -1,92 +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-eaff7d7
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
import { isDevEnv } from '../utils/isDevEnv';
|
|
8
|
+
import { getConfig, getGlobalInjector, isTestEnvironment, markStylesGenerated, } from '../config';
|
|
10
9
|
import { StyleInjector } from './injector';
|
|
11
|
-
// Use a more robust global singleton that survives React Strict Mode
|
|
12
|
-
const GLOBAL_INJECTOR_KEY = '__TASTY_GLOBAL_INJECTOR__';
|
|
13
|
-
/**
|
|
14
|
-
* Detect if we're running in a test environment
|
|
15
|
-
*/
|
|
16
|
-
function isTestEnvironment() {
|
|
17
|
-
// Check Node.js environment
|
|
18
|
-
if (typeof process !== 'undefined' && process.env?.NODE_ENV === 'test') {
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
// Check for Jest globals (safely)
|
|
22
|
-
if (typeof global !== 'undefined') {
|
|
23
|
-
const g = global;
|
|
24
|
-
if (g.jest || g.expect || g.describe || g.it) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
// Check for jsdom environment (common in tests)
|
|
29
|
-
if (typeof window !== 'undefined' &&
|
|
30
|
-
window.navigator?.userAgent?.includes('jsdom')) {
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
// Check for other test runners
|
|
34
|
-
if (typeof globalThis !== 'undefined') {
|
|
35
|
-
const gt = globalThis;
|
|
36
|
-
if (gt.vitest || gt.mocha) {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Create default configuration with optional test environment detection
|
|
44
|
-
*/
|
|
45
|
-
function createDefaultConfig(isTest) {
|
|
46
|
-
return {
|
|
47
|
-
maxRulesPerSheet: 8192, // safer default cap per sheet
|
|
48
|
-
unusedStylesThreshold: 500, // default threshold for bulk cleanup of unused styles
|
|
49
|
-
bulkCleanupDelay: 5000, // default delay before bulk cleanup (ignored if idleCleanup is true)
|
|
50
|
-
idleCleanup: true, // default to using requestIdleCallback instead of setTimeout
|
|
51
|
-
forceTextInjection: isTest ?? false, // auto-enable for test environments
|
|
52
|
-
devMode: isDevEnv(), // enable dev features: performance tracking and debug info
|
|
53
|
-
bulkCleanupBatchRatio: 0.5,
|
|
54
|
-
unusedStylesMinAgeMs: 10000,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Configure the global style injector
|
|
59
|
-
*/
|
|
60
|
-
export function configure(config = {}) {
|
|
61
|
-
// Handle predefined states before creating/updating the injector
|
|
62
|
-
if (config.states) {
|
|
63
|
-
setGlobalPredefinedStates(config.states);
|
|
64
|
-
}
|
|
65
|
-
// Create config without states (it's handled separately)
|
|
66
|
-
const { states: _states, ...injectorConfig } = config;
|
|
67
|
-
const fullConfig = {
|
|
68
|
-
...createDefaultConfig(),
|
|
69
|
-
...injectorConfig,
|
|
70
|
-
};
|
|
71
|
-
// Store on window to survive React Strict Mode resets
|
|
72
|
-
if (typeof window !== 'undefined') {
|
|
73
|
-
window[GLOBAL_INJECTOR_KEY] = new StyleInjector(fullConfig);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
// Fallback for SSR
|
|
77
|
-
globalThis[GLOBAL_INJECTOR_KEY] = new StyleInjector(fullConfig);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Get or create the global injector instance
|
|
82
|
-
*/
|
|
83
|
-
function getGlobalInjector() {
|
|
84
|
-
const storage = typeof window !== 'undefined' ? window : globalThis;
|
|
85
|
-
if (!storage[GLOBAL_INJECTOR_KEY]) {
|
|
86
|
-
configure();
|
|
87
|
-
}
|
|
88
|
-
return storage[GLOBAL_INJECTOR_KEY];
|
|
89
|
-
}
|
|
90
10
|
/**
|
|
91
11
|
* Allocate a className for a cacheKey without injecting styles yet
|
|
92
12
|
*/
|
|
@@ -97,8 +17,8 @@ export function allocateClassName(cacheKey, options) {
|
|
|
97
17
|
* Inject styles and return className with dispose function
|
|
98
18
|
*/
|
|
99
19
|
export function inject(rules, options) {
|
|
100
|
-
// Mark that styles have been generated (prevents
|
|
101
|
-
|
|
20
|
+
// Mark that styles have been generated (prevents configuration changes)
|
|
21
|
+
markStylesGenerated();
|
|
102
22
|
return getGlobalInjector().inject(rules, options);
|
|
103
23
|
}
|
|
104
24
|
/**
|
|
@@ -108,10 +28,30 @@ export function injectGlobal(rules, options) {
|
|
|
108
28
|
return getGlobalInjector().injectGlobal(rules, options);
|
|
109
29
|
}
|
|
110
30
|
/**
|
|
111
|
-
*
|
|
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
|
|
112
52
|
*/
|
|
113
|
-
function
|
|
114
|
-
return getGlobalInjector().
|
|
53
|
+
export function getRawCSSText(options) {
|
|
54
|
+
return getGlobalInjector().getRawCSSText(options);
|
|
115
55
|
}
|
|
116
56
|
/**
|
|
117
57
|
* Inject keyframes and return object with toString() and dispose()
|
|
@@ -182,20 +122,15 @@ export function destroy(root) {
|
|
|
182
122
|
* Create a new isolated injector instance
|
|
183
123
|
*/
|
|
184
124
|
export function createInjector(config = {}) {
|
|
185
|
-
const
|
|
125
|
+
const defaultConfig = getConfig();
|
|
186
126
|
const fullConfig = {
|
|
187
|
-
...
|
|
127
|
+
...defaultConfig,
|
|
128
|
+
// Auto-enable forceTextInjection in test environments
|
|
129
|
+
forceTextInjection: config.forceTextInjection ?? isTestEnvironment(),
|
|
188
130
|
...config,
|
|
189
131
|
};
|
|
190
132
|
return new StyleInjector(fullConfig);
|
|
191
133
|
}
|
|
192
|
-
/**
|
|
193
|
-
* Create a global style component like styled-components createGlobalStyle
|
|
194
|
-
* Returns a React component that injects global styles when mounted and cleans up when unmounted
|
|
195
|
-
*/
|
|
196
|
-
export function createGlobalStyle(strings, ...interpolations) {
|
|
197
|
-
return getGlobalInjector().createGlobalStyle(strings, ...interpolations);
|
|
198
|
-
}
|
|
199
134
|
export { StyleInjector } from './injector';
|
|
200
135
|
export { SheetManager } from './sheet-manager';
|
|
201
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-eaff7d7
|
|
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}
|
|
@@ -214,26 +212,20 @@ export class StyleInjector {
|
|
|
214
212
|
};
|
|
215
213
|
}
|
|
216
214
|
/**
|
|
217
|
-
* 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
|
|
218
218
|
*/
|
|
219
|
-
|
|
219
|
+
injectRawCSS(css, options) {
|
|
220
220
|
const root = options?.root || document;
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
registry.metrics.totalInsertions++;
|
|
230
|
-
}
|
|
231
|
-
return {
|
|
232
|
-
dispose: () => {
|
|
233
|
-
if (info)
|
|
234
|
-
this.sheetManager.deleteGlobalRule(registry, key);
|
|
235
|
-
},
|
|
236
|
-
};
|
|
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);
|
|
237
229
|
}
|
|
238
230
|
/**
|
|
239
231
|
* Dispose of a className
|
|
@@ -342,9 +334,9 @@ export class StyleInjector {
|
|
|
342
334
|
syntax = `"${syntax}"`;
|
|
343
335
|
parts.push(`syntax: ${syntax};`);
|
|
344
336
|
}
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
}
|
|
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'};`);
|
|
348
340
|
if (options?.initialValue != null) {
|
|
349
341
|
let initialValueStr;
|
|
350
342
|
if (typeof options.initialValue === 'number') {
|
|
@@ -454,259 +446,6 @@ export class StyleInjector {
|
|
|
454
446
|
const targetRoot = root || document;
|
|
455
447
|
this.sheetManager.cleanup(targetRoot);
|
|
456
448
|
}
|
|
457
|
-
/**
|
|
458
|
-
* Create a global style component like styled-components createGlobalStyle
|
|
459
|
-
* Returns a React component that injects global styles when mounted and cleans up when unmounted
|
|
460
|
-
*/
|
|
461
|
-
createGlobalStyle(strings, ...interpolations) {
|
|
462
|
-
const injector = this; // Capture the injector instance
|
|
463
|
-
class GlobalStyleComponent extends Component {
|
|
464
|
-
disposeFunction = null;
|
|
465
|
-
componentDidMount() {
|
|
466
|
-
this.injectStyles();
|
|
467
|
-
}
|
|
468
|
-
componentDidUpdate() {
|
|
469
|
-
this.disposeStyles();
|
|
470
|
-
this.injectStyles();
|
|
471
|
-
}
|
|
472
|
-
componentWillUnmount() {
|
|
473
|
-
this.disposeStyles();
|
|
474
|
-
}
|
|
475
|
-
injectStyles = () => {
|
|
476
|
-
const css = this.interpolateTemplate();
|
|
477
|
-
if (css.trim()) {
|
|
478
|
-
const styleResults = this.parseCSSToStyleResults(css);
|
|
479
|
-
// Use a special method for createGlobalStyle to distinguish from injectGlobal
|
|
480
|
-
const result = injector.injectCreateGlobalStyle(styleResults, {
|
|
481
|
-
root: this.props.root,
|
|
482
|
-
});
|
|
483
|
-
this.disposeFunction = result.dispose;
|
|
484
|
-
}
|
|
485
|
-
};
|
|
486
|
-
disposeStyles = () => {
|
|
487
|
-
if (this.disposeFunction) {
|
|
488
|
-
this.disposeFunction();
|
|
489
|
-
this.disposeFunction = null;
|
|
490
|
-
}
|
|
491
|
-
};
|
|
492
|
-
interpolateTemplate = () => {
|
|
493
|
-
let result = strings[0];
|
|
494
|
-
for (let i = 0; i < interpolations.length; i++) {
|
|
495
|
-
const interpolation = interpolations[i];
|
|
496
|
-
const value = typeof interpolation === 'function'
|
|
497
|
-
? interpolation(this.props)
|
|
498
|
-
: interpolation;
|
|
499
|
-
result += String(value) + strings[i + 1];
|
|
500
|
-
}
|
|
501
|
-
return result;
|
|
502
|
-
};
|
|
503
|
-
parseCSSToStyleResults = (css) => {
|
|
504
|
-
const rules = [];
|
|
505
|
-
// Enhanced CSS parser for global styles that handles nested rules
|
|
506
|
-
this.parseCSS(css, rules, [], '');
|
|
507
|
-
return rules;
|
|
508
|
-
};
|
|
509
|
-
parseCSS = (css, rules, atRuleStack, parentSelector = '') => {
|
|
510
|
-
// Remove both CSS and JavaScript-style comments
|
|
511
|
-
let cleanCSS = css.replace(/\/\*[\s\S]*?\*\//g, ''); // CSS comments
|
|
512
|
-
cleanCSS = cleanCSS.replace(/\/\/.*$/gm, ''); // JavaScript-style comments
|
|
513
|
-
let i = 0;
|
|
514
|
-
while (i < cleanCSS.length) {
|
|
515
|
-
// Skip whitespace
|
|
516
|
-
while (i < cleanCSS.length && /\s/.test(cleanCSS[i])) {
|
|
517
|
-
i++;
|
|
518
|
-
}
|
|
519
|
-
if (i >= cleanCSS.length)
|
|
520
|
-
break;
|
|
521
|
-
// Find the next selector or at-rule
|
|
522
|
-
let selectorStart = i;
|
|
523
|
-
let braceDepth = 0;
|
|
524
|
-
let inString = false;
|
|
525
|
-
let stringChar = '';
|
|
526
|
-
// Find the opening brace
|
|
527
|
-
while (i < cleanCSS.length) {
|
|
528
|
-
const char = cleanCSS[i];
|
|
529
|
-
if (inString) {
|
|
530
|
-
if (char === stringChar && cleanCSS[i - 1] !== '\\') {
|
|
531
|
-
inString = false;
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
else {
|
|
535
|
-
if (char === '"' || char === "'") {
|
|
536
|
-
inString = true;
|
|
537
|
-
stringChar = char;
|
|
538
|
-
}
|
|
539
|
-
else if (char === '{') {
|
|
540
|
-
braceDepth++;
|
|
541
|
-
if (braceDepth === 1) {
|
|
542
|
-
break; // Found the opening brace
|
|
543
|
-
}
|
|
544
|
-
}
|
|
545
|
-
else if (char === '}') {
|
|
546
|
-
braceDepth--;
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
i++;
|
|
550
|
-
}
|
|
551
|
-
if (i >= cleanCSS.length)
|
|
552
|
-
break;
|
|
553
|
-
const selectorPart = cleanCSS.substring(selectorStart, i).trim();
|
|
554
|
-
i++; // Skip the opening brace
|
|
555
|
-
// Find the matching closing brace
|
|
556
|
-
const contentStart = i;
|
|
557
|
-
braceDepth = 1;
|
|
558
|
-
inString = false;
|
|
559
|
-
while (i < cleanCSS.length && braceDepth > 0) {
|
|
560
|
-
const char = cleanCSS[i];
|
|
561
|
-
if (inString) {
|
|
562
|
-
if (char === stringChar && cleanCSS[i - 1] !== '\\') {
|
|
563
|
-
inString = false;
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
else {
|
|
567
|
-
if (char === '"' || char === "'") {
|
|
568
|
-
inString = true;
|
|
569
|
-
stringChar = char;
|
|
570
|
-
}
|
|
571
|
-
else if (char === '{') {
|
|
572
|
-
braceDepth++;
|
|
573
|
-
}
|
|
574
|
-
else if (char === '}') {
|
|
575
|
-
braceDepth--;
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
i++;
|
|
579
|
-
}
|
|
580
|
-
const content = cleanCSS.substring(contentStart, i - 1).trim();
|
|
581
|
-
// Check if this is an at-rule
|
|
582
|
-
if (selectorPart.startsWith('@')) {
|
|
583
|
-
const atSelector = selectorPart.trim();
|
|
584
|
-
// Leaf at-rules that contain declarations directly and should be emitted as-is
|
|
585
|
-
const leafAtRules = [
|
|
586
|
-
'@font-face',
|
|
587
|
-
'@property',
|
|
588
|
-
'@page',
|
|
589
|
-
'@counter-style',
|
|
590
|
-
'@font-feature-values',
|
|
591
|
-
'@font-palette-values',
|
|
592
|
-
'@color-profile',
|
|
593
|
-
];
|
|
594
|
-
const isLeafAtRule = leafAtRules.some((prefix) => atSelector.startsWith(prefix));
|
|
595
|
-
if (isLeafAtRule) {
|
|
596
|
-
// Emit the at-rule with its declarations directly
|
|
597
|
-
if (content.trim()) {
|
|
598
|
-
rules.push({
|
|
599
|
-
selector: atSelector,
|
|
600
|
-
declarations: content,
|
|
601
|
-
atRules: atRuleStack.length > 0 ? [...atRuleStack] : undefined,
|
|
602
|
-
});
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
else {
|
|
606
|
-
// Wrapper at-rule (e.g., @media, @supports, @keyframes) — parse its content
|
|
607
|
-
const newAtRuleStack = [...atRuleStack, atSelector];
|
|
608
|
-
this.parseCSS(content, rules, newAtRuleStack, parentSelector);
|
|
609
|
-
}
|
|
610
|
-
}
|
|
611
|
-
else {
|
|
612
|
-
// Check if content contains nested rules (has { and })
|
|
613
|
-
if (content.includes('{') && content.includes('}')) {
|
|
614
|
-
// This selector has nested rules, parse them
|
|
615
|
-
const { declarations, nestedCSS } = this.separateDeclarationsAndNested(content);
|
|
616
|
-
// Process the selector (handle & syntax)
|
|
617
|
-
const processedSelector = this.processSelector(selectorPart, parentSelector);
|
|
618
|
-
// Add declarations if any
|
|
619
|
-
if (declarations.trim()) {
|
|
620
|
-
rules.push({
|
|
621
|
-
selector: processedSelector,
|
|
622
|
-
declarations: declarations.trim(),
|
|
623
|
-
atRules: atRuleStack.length > 0 ? [...atRuleStack] : undefined,
|
|
624
|
-
});
|
|
625
|
-
}
|
|
626
|
-
// Parse nested CSS with current selector as parent
|
|
627
|
-
if (nestedCSS.trim()) {
|
|
628
|
-
this.parseCSS(nestedCSS, rules, atRuleStack, processedSelector);
|
|
629
|
-
}
|
|
630
|
-
}
|
|
631
|
-
else {
|
|
632
|
-
// This is a regular selector with only declarations
|
|
633
|
-
const processedSelector = this.processSelector(selectorPart, parentSelector);
|
|
634
|
-
if (content && processedSelector) {
|
|
635
|
-
rules.push({
|
|
636
|
-
selector: processedSelector,
|
|
637
|
-
declarations: content,
|
|
638
|
-
atRules: atRuleStack.length > 0 ? [...atRuleStack] : undefined,
|
|
639
|
-
});
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
}
|
|
644
|
-
};
|
|
645
|
-
separateDeclarationsAndNested = (content) => {
|
|
646
|
-
const declarations = [];
|
|
647
|
-
const nestedRules = [];
|
|
648
|
-
let i = 0;
|
|
649
|
-
let currentDeclaration = '';
|
|
650
|
-
while (i < content.length) {
|
|
651
|
-
const char = content[i];
|
|
652
|
-
if (char === '{') {
|
|
653
|
-
// Found start of nested rule, find the selector before it
|
|
654
|
-
let selectorStart = currentDeclaration.lastIndexOf(';') + 1;
|
|
655
|
-
if (selectorStart === 0 && currentDeclaration.trim()) {
|
|
656
|
-
// No semicolon found, this might be the first rule
|
|
657
|
-
selectorStart = 0;
|
|
658
|
-
}
|
|
659
|
-
const beforeBrace = currentDeclaration.substring(0, selectorStart);
|
|
660
|
-
const selector = currentDeclaration.substring(selectorStart).trim();
|
|
661
|
-
if (beforeBrace.trim()) {
|
|
662
|
-
declarations.push(beforeBrace.trim());
|
|
663
|
-
}
|
|
664
|
-
// Find the matching closing brace
|
|
665
|
-
let braceDepth = 1;
|
|
666
|
-
let ruleStart = i + 1;
|
|
667
|
-
i++; // Skip opening brace
|
|
668
|
-
while (i < content.length && braceDepth > 0) {
|
|
669
|
-
if (content[i] === '{')
|
|
670
|
-
braceDepth++;
|
|
671
|
-
else if (content[i] === '}')
|
|
672
|
-
braceDepth--;
|
|
673
|
-
i++;
|
|
674
|
-
}
|
|
675
|
-
const ruleContent = content.substring(ruleStart, i - 1);
|
|
676
|
-
nestedRules.push(`${selector} { ${ruleContent} }`);
|
|
677
|
-
currentDeclaration = '';
|
|
678
|
-
}
|
|
679
|
-
else {
|
|
680
|
-
currentDeclaration += char;
|
|
681
|
-
i++;
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
// Add remaining declarations
|
|
685
|
-
if (currentDeclaration.trim()) {
|
|
686
|
-
declarations.push(currentDeclaration.trim());
|
|
687
|
-
}
|
|
688
|
-
return {
|
|
689
|
-
declarations: declarations.join(' '),
|
|
690
|
-
nestedCSS: nestedRules.join('\n'),
|
|
691
|
-
};
|
|
692
|
-
};
|
|
693
|
-
processSelector = (selector, parentSelector) => {
|
|
694
|
-
if (!parentSelector) {
|
|
695
|
-
return selector;
|
|
696
|
-
}
|
|
697
|
-
// Handle & syntax - replace & with parent selector
|
|
698
|
-
if (selector.includes('&')) {
|
|
699
|
-
return selector.replace(/&/g, parentSelector);
|
|
700
|
-
}
|
|
701
|
-
// If no &, treat as descendant selector
|
|
702
|
-
return `${parentSelector} ${selector}`;
|
|
703
|
-
};
|
|
704
|
-
render() {
|
|
705
|
-
return null;
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
return GlobalStyleComponent;
|
|
709
|
-
}
|
|
710
449
|
}
|
|
711
450
|
|
|
712
451
|
|