@cube-dev/ui-kit 0.98.9 → 0.99.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/es/_internal/hooks/index.js +10 -10
- package/es/_internal/hooks/use-chained-callback.js +2 -2
- package/es/_internal/hooks/use-debounced-value.js +1 -1
- package/es/_internal/hooks/use-deprecation-warning.js +2 -2
- package/es/_internal/hooks/use-effect-once.js +1 -1
- package/es/_internal/hooks/use-event.js +2 -2
- package/es/_internal/hooks/use-is-first-render.js +1 -1
- package/es/_internal/hooks/use-sync-ref.js +2 -2
- package/es/_internal/hooks/use-timer/index.js +3 -3
- package/es/_internal/hooks/use-timer/timer.js +1 -1
- package/es/_internal/hooks/use-timer/use-timer.js +3 -3
- package/es/_internal/hooks/use-update-effect.js +2 -2
- package/es/_internal/hooks/use-warn.js +3 -3
- package/es/_internal/index.js +2 -2
- package/es/components/Block.js +2 -2
- package/es/components/CollectionItem.js +3 -3
- package/es/components/GlobalStyles.js +56 -65
- package/es/components/GridProvider.js +4 -4
- package/es/components/HiddenInput.js +2 -2
- package/es/components/OpenTrasition.js +1 -1
- package/es/components/Root.js +22 -64
- package/es/components/actions/Action/Action.js +3 -3
- package/es/components/actions/Button/Button.js +12 -12
- package/es/components/actions/Button/index.js +2 -2
- package/es/components/actions/ButtonGroup/ButtonGroup.js +4 -4
- package/es/components/actions/CommandMenu/CommandMenu.js +11 -11
- package/es/components/actions/CommandMenu/index.js +2 -2
- package/es/components/actions/CommandMenu/styled.js +2 -2
- package/es/components/actions/ItemAction/ItemAction.js +9 -9
- package/es/components/actions/ItemAction/index.js +2 -2
- package/es/components/actions/ItemActionContext.js +1 -1
- package/es/components/actions/ItemButton/ItemButton.js +9 -9
- package/es/components/actions/ItemButton/index.js +2 -2
- package/es/components/actions/Link/Link.js +2 -2
- package/es/components/actions/Menu/Menu.js +10 -10
- package/es/components/actions/Menu/MenuItem.js +7 -7
- package/es/components/actions/Menu/MenuSection.js +4 -4
- package/es/components/actions/Menu/MenuTrigger.js +6 -6
- package/es/components/actions/Menu/SubMenuTrigger.js +6 -6
- 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 +10 -10
- package/es/components/actions/Menu/styled.js +5 -5
- package/es/components/actions/index.js +13 -13
- package/es/components/actions/use-action.js +7 -7
- package/es/components/actions/use-anchored-menu.js +6 -6
- package/es/components/actions/use-context-menu.js +6 -6
- package/es/components/content/ActiveZone/ActiveZone.js +4 -4
- package/es/components/content/Alert/Alert.js +4 -4
- package/es/components/content/Alert/index.js +2 -2
- package/es/components/content/Alert/types.js +1 -1
- package/es/components/content/Alert/use-alert.js +3 -3
- package/es/components/content/Avatar/Avatar.js +2 -2
- package/es/components/content/Badge/Badge.js +4 -4
- package/es/components/content/Card/Card.js +2 -2
- package/es/components/content/Content.js +3 -3
- package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +8 -8
- package/es/components/content/CopyPasteBlock/index.js +2 -2
- package/es/components/content/CopySnippet/CopySnippet.js +9 -9
- package/es/components/content/CopySnippet/index.js +2 -2
- package/es/components/content/Disclosure/Disclosure.js +6 -6
- package/es/components/content/Disclosure/index.js +2 -2
- package/es/components/content/Divider.js +3 -3
- package/es/components/content/Footer.js +3 -3
- package/es/components/content/Header.js +3 -3
- package/es/components/content/HotKeys/HotKeys.js +5 -5
- package/es/components/content/HotKeys/index.js +2 -2
- package/es/components/content/Item/Item.js +15 -15
- package/es/components/content/Item/index.js +3 -3
- package/es/components/content/ItemBadge/ItemBadge.js +8 -8
- package/es/components/content/ItemBadge/index.js +2 -2
- package/es/components/content/Layout/GridLayout.js +13 -13
- package/es/components/content/Layout/Layout.js +7 -6
- package/es/components/content/Layout/LayoutBlock.js +4 -3
- package/es/components/content/Layout/LayoutCenter.js +3 -3
- package/es/components/content/Layout/LayoutContainer.js +4 -4
- package/es/components/content/Layout/LayoutContent.js +6 -5
- package/es/components/content/Layout/LayoutContext.js +1 -1
- package/es/components/content/Layout/LayoutFlex.js +4 -3
- package/es/components/content/Layout/LayoutFooter.js +4 -3
- package/es/components/content/Layout/LayoutGrid.js +4 -3
- package/es/components/content/Layout/LayoutHeader.js +8 -7
- package/es/components/content/Layout/LayoutPane.js +8 -7
- package/es/components/content/Layout/LayoutPanel.js +10 -9
- package/es/components/content/Layout/LayoutPanelHeader.js +7 -7
- package/es/components/content/Layout/LayoutToolbar.js +4 -3
- package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/es/components/content/Layout/index.js +16 -16
- package/es/components/content/Layout/utils.js +1 -1
- package/es/components/content/List/SectionHeading.js +3 -3
- package/es/components/content/List/index.js +2 -2
- package/es/components/content/Paragraph.js +3 -3
- package/es/components/content/Placeholder/Placeholder.js +2 -2
- package/es/components/content/PrismCode/PrismCode.js +7 -7
- package/es/components/content/PrismCode/prismSetup.js +1 -1
- package/es/components/content/PrismDiffCode/PrismDiffCode.js +2 -2
- package/es/components/content/Result/Result.js +4 -4
- package/es/components/content/Skeleton/Skeleton.js +5 -5
- package/es/components/content/Tag/Tag.js +4 -4
- package/es/components/content/Text.js +3 -3
- package/es/components/content/TextItem/TextItem.js +5 -5
- package/es/components/content/TextItem/index.js +2 -2
- package/es/components/content/Title.js +4 -4
- package/es/components/content/highlightText.js +2 -2
- package/es/components/content/use-auto-tooltip.js +2 -2
- package/es/components/fields/Checkbox/Checkbox.js +12 -12
- package/es/components/fields/Checkbox/CheckboxGroup.js +7 -7
- package/es/components/fields/Checkbox/context.js +1 -1
- package/es/components/fields/Checkbox/index.js +3 -3
- package/es/components/fields/ComboBox/ComboBox.js +18 -18
- package/es/components/fields/ComboBox/index.js +2 -2
- package/es/components/fields/DatePicker/DateInput.js +10 -10
- package/es/components/fields/DatePicker/DateInputBase.js +6 -6
- package/es/components/fields/DatePicker/DatePicker.js +14 -14
- package/es/components/fields/DatePicker/DatePickerButton.js +4 -4
- package/es/components/fields/DatePicker/DatePickerElement.js +3 -3
- package/es/components/fields/DatePicker/DatePickerInput.js +5 -5
- package/es/components/fields/DatePicker/DatePickerSegment.js +2 -2
- package/es/components/fields/DatePicker/DateRangePicker.js +15 -15
- package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +15 -15
- package/es/components/fields/DatePicker/TimeInput.js +9 -9
- package/es/components/fields/DatePicker/index.js +8 -8
- 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 +6 -6
- package/es/components/fields/FilterListBox/FilterListBox.js +10 -10
- package/es/components/fields/FilterListBox/index.js +2 -2
- package/es/components/fields/FilterPicker/FilterPicker.js +14 -14
- package/es/components/fields/FilterPicker/index.js +2 -2
- package/es/components/fields/Input/Input.js +6 -6
- package/es/components/fields/Input/index.js +2 -2
- package/es/components/fields/ListBox/ListBox.js +14 -14
- package/es/components/fields/ListBox/index.js +2 -2
- package/es/components/fields/NumberInput/NumberInput.js +8 -8
- package/es/components/fields/NumberInput/StepButton.js +4 -4
- package/es/components/fields/PasswordInput/PasswordInput.js +8 -8
- package/es/components/fields/Picker/Picker.js +13 -13
- package/es/components/fields/Picker/index.js +2 -2
- package/es/components/fields/RadioGroup/Radio.js +10 -10
- package/es/components/fields/RadioGroup/RadioGroup.js +7 -7
- package/es/components/fields/RadioGroup/context.js +1 -1
- package/es/components/fields/RadioGroup/index.js +3 -3
- package/es/components/fields/SearchInput/SearchInput.js +8 -8
- package/es/components/fields/SearchInput/index.js +2 -2
- package/es/components/fields/Select/Select.js +20 -20
- package/es/components/fields/Select/index.js +2 -2
- package/es/components/fields/Slider/Gradation.js +2 -2
- package/es/components/fields/Slider/Header.js +1 -1
- package/es/components/fields/Slider/RangeSlider.js +5 -5
- package/es/components/fields/Slider/Slider.js +7 -7
- package/es/components/fields/Slider/SliderBase.js +6 -6
- package/es/components/fields/Slider/SliderInput.js +2 -2
- package/es/components/fields/Slider/SliderThumb.js +3 -3
- package/es/components/fields/Slider/SliderTrack.js +2 -2
- package/es/components/fields/Slider/elements.js +2 -2
- package/es/components/fields/Slider/index.js +4 -4
- package/es/components/fields/Slider/types.js +1 -1
- package/es/components/fields/Switch/Switch.js +11 -11
- package/es/components/fields/Switch/index.js +2 -2
- package/es/components/fields/TextArea/TextArea.js +7 -7
- package/es/components/fields/TextArea/index.js +2 -2
- package/es/components/fields/TextInput/TextInput.js +6 -6
- package/es/components/fields/TextInput/TextInputBase.js +9 -9
- package/es/components/fields/TextInput/index.js +3 -3
- package/es/components/fields/TextInputMapper/TextInputMapper.js +14 -14
- package/es/components/fields/TextInputMapper/index.js +2 -2
- package/es/components/fields/index.js +20 -20
- package/es/components/form/FieldWrapper/FieldWrapper.js +9 -9
- package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
- package/es/components/form/FieldWrapper/index.js +4 -4
- package/es/components/form/FieldWrapper/types.js +1 -1
- package/es/components/form/Form/Field.js +6 -6
- package/es/components/form/Form/Form.js +6 -6
- package/es/components/form/Form/ResetButton/ResetButton.js +6 -6
- package/es/components/form/Form/ResetButton/index.js +2 -2
- package/es/components/form/Form/SubmitButton/SubmitButton.js +4 -4
- package/es/components/form/Form/SubmitButton/index.js +2 -2
- package/es/components/form/Form/SubmitError.js +3 -3
- package/es/components/form/Form/index.js +11 -11
- package/es/components/form/Form/types.js +1 -1
- package/es/components/form/Form/use-field/index.js +4 -4
- package/es/components/form/Form/use-field/types.js +1 -1
- package/es/components/form/Form/use-field/use-field-props.js +6 -6
- package/es/components/form/Form/use-field/use-field.js +4 -4
- package/es/components/form/Form/use-form.js +3 -3
- package/es/components/form/Form/validation.js +1 -1
- package/es/components/form/Label.js +3 -3
- package/es/components/form/index.js +5 -5
- package/es/components/form/wrapper.js +3 -3
- package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/es/components/helpers/DisplayTransition/index.js +2 -2
- package/es/components/helpers/IconSwitch/IconSwitch.js +3 -3
- package/es/components/helpers/index.js +3 -3
- package/es/components/layout/Flex.js +2 -2
- package/es/components/layout/Flow.js +2 -2
- package/es/components/layout/Grid.js +2 -2
- package/es/components/layout/Panel.js +2 -2
- package/es/components/layout/Prefix.js +3 -3
- package/es/components/layout/ResizablePanel.js +5 -5
- package/es/components/layout/Space.js +2 -2
- package/es/components/layout/Suffix.js +3 -3
- package/es/components/organisms/FileTabs/FileTabs.js +8 -8
- package/es/components/organisms/StatsCard/StatsCard.js +4 -4
- package/es/components/other/Calendar/Calendar.js +8 -8
- package/es/components/other/Calendar/CalendarCell.js +2 -2
- package/es/components/other/Calendar/CalendarGrid.js +3 -3
- package/es/components/other/Calendar/RangeCalendar.js +8 -8
- package/es/components/other/CloudLogo/CloudLogo.js +3 -3
- package/es/components/overlays/AlertDialog/AlertDialog.js +11 -11
- package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +2 -2
- package/es/components/overlays/AlertDialog/AlertDialogZone.js +4 -4
- package/es/components/overlays/AlertDialog/index.js +4 -4
- package/es/components/overlays/AlertDialog/types.js +1 -1
- package/es/components/overlays/Dialog/Dialog.js +7 -7
- package/es/components/overlays/Dialog/DialogContainer.js +3 -3
- package/es/components/overlays/Dialog/DialogForm.js +8 -8
- package/es/components/overlays/Dialog/DialogTrigger.js +4 -4
- package/es/components/overlays/Dialog/context.js +1 -1
- package/es/components/overlays/Dialog/index.js +6 -6
- package/es/components/overlays/Dialog/use-dialog-container.js +4 -4
- package/es/components/overlays/Modal/Modal.js +5 -5
- package/es/components/overlays/Modal/OpenTransition.js +1 -1
- package/es/components/overlays/Modal/Overlay.js +3 -3
- package/es/components/overlays/Modal/Popover.js +4 -4
- package/es/components/overlays/Modal/Tray.js +6 -6
- package/es/components/overlays/Modal/Underlay.js +2 -2
- package/es/components/overlays/Modal/index.js +7 -7
- package/es/components/overlays/Modal/types.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +5 -5
- package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +7 -7
- package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +36 -34
- package/es/components/overlays/NewNotifications/Bar/index.js +2 -2
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +8 -8
- package/es/components/overlays/NewNotifications/Dialog/index.js +2 -2
- package/es/components/overlays/NewNotifications/Notification.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +5 -5
- package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +20 -4
- package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +3 -3
- package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +12 -12
- package/es/components/overlays/NewNotifications/NotificationView/index.js +3 -3
- 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 +5 -5
- package/es/components/overlays/NewNotifications/NotificationsContext/index.js +3 -3
- package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +2 -2
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +4 -4
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +5 -5
- package/es/components/overlays/NewNotifications/NotificationsList/index.js +2 -2
- package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/index.js +6 -6
- 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 +2 -2
- package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +3 -3
- package/es/components/overlays/NewNotifications/index.js +7 -7
- package/es/components/overlays/NewNotifications/types.js +1 -1
- package/es/components/overlays/Notification/Notification.js +7 -7
- package/es/components/overlays/OverlayWrapper.js +2 -2
- package/es/components/overlays/Toasts/Toast.js +4 -4
- package/es/components/overlays/Toasts/index.js +3 -3
- package/es/components/overlays/Toasts/types.js +1 -1
- package/es/components/overlays/Toasts/use-toasts-api.js +2 -2
- package/es/components/overlays/Tooltip/Tooltip.js +4 -4
- package/es/components/overlays/Tooltip/TooltipProvider.js +3 -3
- package/es/components/overlays/Tooltip/TooltipTrigger.js +6 -6
- package/es/components/overlays/Tooltip/context.js +1 -1
- package/es/components/overlays/Tooltip/index.js +4 -4
- package/es/components/portal/Portal.js +2 -2
- package/es/components/portal/PortalProvider.js +1 -1
- package/es/components/portal/index.js +3 -3
- package/es/components/portal/types.js +1 -1
- package/es/components/portal/usePortal.js +2 -2
- package/es/components/shared/InvalidIcon.js +2 -2
- package/es/components/shared/ValidIcon.js +2 -2
- package/es/components/status/LoadingAnimation/LoadingAnimation.js +58 -114
- package/es/components/status/LoadingAnimation/index.js +2 -2
- package/es/components/status/Spin/Cube.js +95 -179
- package/es/components/status/Spin/InternalSpinner.js +5 -5
- package/es/components/status/Spin/Spin.js +4 -4
- package/es/components/status/Spin/SpinsContainer.js +28 -30
- package/es/components/status/Spin/index.js +2 -2
- package/es/components/status/Spin/types.js +1 -1
- package/es/components/status/index.js +3 -3
- package/es/data/item-themes.js +1 -1
- package/es/data/themes.js +1 -1
- package/es/icons/AdjustmentsHorizontalIcon.js +2 -2
- package/es/icons/AdjustmentsIcon.js +2 -2
- package/es/icons/AiIcon.js +2 -2
- package/es/icons/AreaChartIcon.js +2 -2
- package/es/icons/BackwardIcon.js +2 -2
- package/es/icons/BarChartIcon.js +2 -2
- package/es/icons/BellFilledIcon.js +2 -2
- package/es/icons/BellIcon.js +2 -2
- package/es/icons/BooleanIcon.js +2 -2
- package/es/icons/CalendarEditIcon.js +2 -2
- package/es/icons/CalendarIcon.js +2 -2
- package/es/icons/CaretDownIcon.js +2 -2
- package/es/icons/CaretUpIcon.js +2 -2
- package/es/icons/ChartAreaStackedIcon.js +2 -2
- package/es/icons/ChartAreaStackedPercentageIcon.js +2 -2
- package/es/icons/ChartBarGroupedHorizontalIcon.js +2 -2
- package/es/icons/ChartBarGroupedIcon.js +2 -2
- package/es/icons/ChartBarHorizontalIcon.js +2 -2
- package/es/icons/ChartBarLineIcon.js +2 -2
- package/es/icons/ChartBarStackedHorizontalIcon.js +2 -2
- package/es/icons/ChartBarStackedIcon.js +2 -2
- package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +2 -2
- package/es/icons/ChartBarStackedPercentageIcon.js +2 -2
- package/es/icons/ChartBoxPlot2Icon.js +2 -2
- package/es/icons/ChartBoxPlotIcon.js +2 -2
- package/es/icons/ChartBubbleIcon.js +2 -2
- package/es/icons/ChartDonut2Icon.js +2 -2
- package/es/icons/ChartFunnelIcon.js +2 -2
- package/es/icons/ChartHeatmapIcon.js +2 -2
- package/es/icons/ChartKPIIcon.js +2 -2
- package/es/icons/ChartPie2Icon.js +2 -2
- package/es/icons/ChartScatterIcon.js +2 -2
- package/es/icons/CheckCircleFilledIcon.js +2 -2
- package/es/icons/CheckCircleIcon.js +2 -2
- package/es/icons/CheckIcon.js +2 -2
- package/es/icons/CircleFilledIcon.js +2 -2
- package/es/icons/ClearIcon.js +2 -2
- package/es/icons/CloseCircleFilledIcon.js +2 -2
- package/es/icons/CloseCircleIcon.js +2 -2
- package/es/icons/CloseIcon.js +2 -2
- package/es/icons/CodeIcon.js +2 -2
- package/es/icons/ColumnTotalIcon.js +2 -2
- package/es/icons/CopyIcon.js +2 -2
- package/es/icons/CountIcon.js +2 -2
- package/es/icons/CubeIcon.js +2 -2
- package/es/icons/CubePauseIcon.js +2 -2
- package/es/icons/CubePlayIcon.js +2 -2
- package/es/icons/CurrencyDollarIcon.js +2 -2
- package/es/icons/DangerIcon.js +2 -2
- package/es/icons/DashboardIcon.js +2 -2
- package/es/icons/DatabaseIcon.js +2 -2
- package/es/icons/DecimalDecreaseIcon.js +2 -2
- package/es/icons/DecimalIncreaseIcon.js +2 -2
- package/es/icons/DirectionIcon.js +3 -3
- package/es/icons/DonutIcon.js +2 -2
- package/es/icons/DownIcon.js +2 -2
- package/es/icons/EditIcon.js +2 -2
- package/es/icons/ExclamationCircleFilledIcon.js +2 -2
- package/es/icons/ExclamationCircleIcon.js +2 -2
- package/es/icons/ExclamationIcon.js +2 -2
- package/es/icons/EyeIcon.js +2 -2
- package/es/icons/EyeInvisibleIcon.js +2 -2
- package/es/icons/FilterIcon.js +2 -2
- package/es/icons/FolderFilledIcon.js +2 -2
- package/es/icons/FolderIcon.js +2 -2
- package/es/icons/FolderOpenFilledIcon.js +2 -2
- package/es/icons/FolderOpenIcon.js +2 -2
- package/es/icons/ForwardIcon.js +2 -2
- package/es/icons/HierarchyIcon.js +2 -2
- package/es/icons/HierarchyOpenIcon.js +2 -2
- package/es/icons/Icon.js +2 -2
- package/es/icons/InfoCircleIcon.js +2 -2
- package/es/icons/InfoIcon.js +2 -2
- package/es/icons/KeyIcon.js +2 -2
- package/es/icons/LeftIcon.js +2 -2
- package/es/icons/LineChartIcon.js +2 -2
- package/es/icons/LoadingIcon.js +2 -2
- package/es/icons/LockFilledIcon.js +2 -2
- package/es/icons/LockIcon.js +2 -2
- package/es/icons/MoreIcon.js +2 -2
- package/es/icons/NotAllowedIcon.js +2 -2
- package/es/icons/Number123Icon.js +2 -2
- package/es/icons/NumberIcon.js +2 -2
- package/es/icons/PauseCircleFilledIcon.js +2 -2
- package/es/icons/PauseCircleIcon.js +2 -2
- package/es/icons/PauseIcon.js +2 -2
- package/es/icons/PercentageIcon.js +2 -2
- package/es/icons/PieChartIcon.js +2 -2
- package/es/icons/PlayCircleIcon.js +2 -2
- package/es/icons/PlayIcon.js +2 -2
- package/es/icons/PlusIcon.js +2 -2
- package/es/icons/ProgressBarIcon.js +2 -2
- package/es/icons/ReloadIcon.js +2 -2
- package/es/icons/ReportIcon.js +2 -2
- package/es/icons/ReturnIcon.js +2 -2
- package/es/icons/RightIcon.js +2 -2
- package/es/icons/RowTotalsIcon.js +2 -2
- package/es/icons/SchemeIcon.js +2 -2
- package/es/icons/SearchIcon.js +2 -2
- package/es/icons/SemanticQueryIcon.js +2 -2
- package/es/icons/SettingsIcon.js +2 -2
- package/es/icons/ShieldFilledIcon.js +2 -2
- package/es/icons/ShieldIcon.js +2 -2
- package/es/icons/SlashIcon.js +2 -2
- package/es/icons/SparklesIcon.js +2 -2
- package/es/icons/SqlIcon.js +2 -2
- package/es/icons/StatsIcon.js +2 -2
- package/es/icons/StopIcon.js +2 -2
- package/es/icons/StringIcon.js +2 -2
- package/es/icons/SubtotalsIcon.js +2 -2
- package/es/icons/SwitchIcon.js +2 -2
- package/es/icons/TableIcon.js +2 -2
- package/es/icons/ThumbsDownIcon.js +2 -2
- package/es/icons/ThumbsUpIcon.js +2 -2
- package/es/icons/ThunderboltCrossedIcon.js +2 -2
- package/es/icons/ThunderboltFilledIcon.js +2 -2
- package/es/icons/ThunderboltIcon.js +2 -2
- package/es/icons/TimeIcon.js +2 -2
- package/es/icons/TrashIcon.js +2 -2
- package/es/icons/UnlockIcon.js +2 -2
- package/es/icons/UpIcon.js +2 -2
- package/es/icons/UserGroupIcon.js +2 -2
- package/es/icons/UserIcon.js +2 -2
- package/es/icons/UserLockIcon.js +2 -2
- package/es/icons/ViewIcon.js +2 -2
- package/es/icons/WarningFilledIcon.js +2 -2
- package/es/icons/WarningIcon.js +2 -2
- package/es/icons/index.js +129 -129
- package/es/icons/wrap-icon.js +2 -2
- package/es/index.js +73 -74
- package/es/provider.js +4 -10
- 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 +2 -2
- package/es/shared/form.js +1 -1
- package/es/shared/index.js +2 -2
- package/es/stories/Form.legacy-stories.js +4 -4
- package/es/stories/FormFieldArgs.js +2 -2
- package/es/stories/SimpleLayout.stories.js +2 -2
- package/es/stories/Tasty.stories.js +2 -2
- package/es/stories/components/ConfirmDeletionDialogForm.js +2 -2
- package/es/stories/components/DialogFormApp.js +3 -3
- package/es/stories/components/StyledButton.js +19 -15
- package/es/stories/lists/baseProps.js +2 -2
- package/es/stories/playground/PlaygroundEditor.js +89 -0
- package/es/stories/playground/PlaygroundLayout.js +16 -0
- package/es/stories/playground/PlaygroundOutput.js +92 -0
- package/es/stories/playground/PlaygroundPreview.js +91 -0
- package/es/stories/playground/components/Button.js +45 -0
- package/es/stories/playground/components/Card.js +20 -0
- package/es/stories/playground/components/ScrollProgress.js +17 -0
- package/es/stories/playground/examples.js +158 -0
- package/es/tasty/chunks/cacheKey.js +98 -0
- package/es/tasty/chunks/definitions.js +281 -0
- package/es/tasty/chunks/index.js +12 -0
- package/es/tasty/chunks/renderChunk.js +97 -0
- package/es/tasty/config.js +280 -0
- package/es/tasty/debug.js +195 -9
- 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 +206 -0
- package/es/tasty/index.js +31 -17
- package/es/tasty/injector/index.js +34 -90
- package/es/tasty/injector/injector.js +81 -299
- package/es/tasty/injector/sheet-manager.js +138 -3
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/keyframes/index.js +301 -0
- package/es/tasty/parser/classify.js +8 -6
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +18 -5
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +2 -1
- package/es/tasty/pipeline/conditions.js +426 -0
- package/es/tasty/pipeline/exclusive.js +311 -0
- package/es/tasty/pipeline/index.js +543 -0
- package/es/tasty/pipeline/materialize.js +1260 -0
- package/es/tasty/pipeline/parseStateKey.js +592 -0
- package/es/tasty/pipeline/simplify.js +898 -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 +523 -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 +2 -2
- package/es/tasty/styles/boxShadow.combinator.js +1 -1
- package/es/tasty/styles/color.js +3 -3
- package/es/tasty/styles/createStyle.js +3 -3
- package/es/tasty/styles/dimension.js +2 -2
- package/es/tasty/styles/display.js +1 -1
- package/es/tasty/styles/fade.js +2 -2
- package/es/tasty/styles/fill.js +11 -21
- 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 +2 -2
- package/es/tasty/styles/groupRadius.js +2 -2
- package/es/tasty/styles/height.js +2 -2
- package/es/tasty/styles/index.js +3 -3
- package/es/tasty/styles/inset.js +2 -2
- package/es/tasty/styles/justify.js +1 -1
- package/es/tasty/styles/list.js +1 -1
- package/es/tasty/styles/margin.js +76 -56
- package/es/tasty/styles/outline.js +2 -2
- package/es/tasty/styles/padding.js +76 -56
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +28 -27
- package/es/tasty/styles/preset.js +2 -2
- package/es/tasty/styles/radius.js +5 -12
- package/es/tasty/styles/reset.js +3 -7
- package/es/tasty/styles/scrollbar.js +2 -2
- package/es/tasty/styles/shadow.js +2 -2
- package/es/tasty/styles/styledScrollbar.js +1 -1
- package/es/tasty/styles/transition.js +10 -3
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +2 -2
- package/es/tasty/tasty.js +81 -122
- 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 +3 -3
- package/es/tasty/utils/processTokens.js +88 -2
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +255 -22
- package/es/tasty/utils/typography.js +67 -0
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tasty/zero/babel.js +453 -0
- package/es/tasty/zero/css-writer.js +94 -0
- package/es/tasty/zero/extractor.js +222 -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 +10 -10
- 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 +2 -2
- package/es/utils/react/chain.js +1 -1
- package/es/utils/react/forwardRefWithGenerics.js +1 -1
- package/es/utils/react/index.js +17 -17
- 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 +4 -4
- package/es/utils/react/nullableValue.js +1 -1
- package/es/utils/react/resolveIcon.js +1 -1
- package/es/utils/react/sharedStore.js +2 -2
- package/es/utils/react/useCombinedRefs.js +1 -1
- package/es/utils/react/useControlledFocusVisible.js +2 -2
- package/es/utils/react/useEventBus.js +1 -1
- package/es/utils/react/useId.js +2 -2
- package/es/utils/react/useIsDarwin.js +1 -1
- package/es/utils/react/useKeySymbols.js +2 -2
- package/es/utils/react/useLayoutEffect.js +1 -1
- package/es/utils/react/useLocalStorage.js +2 -2
- 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 +14 -4
- package/types/components/GlobalStyles.d.ts +2 -1
- package/types/components/HiddenInput.d.ts +828 -826
- package/types/components/Root.d.ts +1 -0
- package/types/components/actions/Button/Button.d.ts +1649 -1645
- package/types/components/actions/CommandMenu/styled.d.ts +4140 -4130
- package/types/components/actions/Menu/styled.d.ts +4893 -4883
- package/types/components/actions/use-action.d.ts +1 -1
- package/types/components/content/List/SectionHeading.d.ts +251 -251
- package/types/components/content/Text.d.ts +1487 -1487
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +251 -251
- package/types/components/fields/Select/Select.d.ts +828 -826
- package/types/components/fields/Slider/elements.d.ts +4968 -4956
- package/types/components/status/Spin/Cube.d.ts +1 -1
- package/types/components/status/Spin/SpinsContainer.d.ts +6 -3
- package/types/index.d.ts +1 -4
- package/types/provider.d.ts +1 -2
- package/types/stories/components/StyledButton.d.ts +1 -1
- package/types/stories/playground/PlaygroundEditor.d.ts +6 -0
- package/types/stories/playground/PlaygroundLayout.d.ts +8 -0
- package/types/stories/playground/PlaygroundOutput.d.ts +5 -0
- package/types/stories/playground/PlaygroundPreview.d.ts +6 -0
- package/types/stories/playground/components/Button.d.ts +11 -0
- package/types/stories/playground/components/Card.d.ts +7 -0
- package/types/stories/playground/components/ScrollProgress.d.ts +5 -0
- package/types/stories/playground/examples.d.ts +7 -0
- 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 +171 -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 +35 -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 +19 -13
- package/types/tasty/injector/sheet-manager.d.ts +25 -1
- package/types/tasty/injector/types.d.ts +23 -2
- package/types/tasty/keyframes/index.d.ts +49 -0
- 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 +243 -0
- package/types/tasty/pipeline/exclusive.d.ts +103 -0
- package/types/tasty/pipeline/index.d.ts +67 -0
- package/types/tasty/pipeline/materialize.d.ts +162 -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/radius.d.ts +2 -10
- package/types/tasty/styles/types.d.ts +24 -3
- package/types/tasty/tasty.d.ts +892 -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 +63 -0
- package/types/tasty/zero/css-writer.d.ts +41 -0
- package/types/tasty/zero/extractor.d.ts +40 -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/components/navigation/LegacyTabs/LegacyTabs.js +0 -275
- package/es/components/other/Base64Upload/Base64Upload.js +0 -103
- package/es/icons/add-new-icon.js +0 -129
- 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/components/navigation/LegacyTabs/LegacyTabs.d.ts +0 -43
- package/types/components/other/Base64Upload/Base64Upload.d.ts +0 -5
- package/types/icons/add-new-icon.d.ts +0 -2
- 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,16 +1,6 @@
|
|
|
1
|
-
import { StyleResult } from '../
|
|
1
|
+
import { StyleResult } from '../pipeline';
|
|
2
2
|
import { StyleInjector } from './injector';
|
|
3
3
|
import { GlobalInjectResult, InjectResult, StyleInjectorConfig } from './types';
|
|
4
|
-
declare const GLOBAL_INJECTOR_KEY = "__TASTY_GLOBAL_INJECTOR__";
|
|
5
|
-
declare global {
|
|
6
|
-
interface Window {
|
|
7
|
-
[GLOBAL_INJECTOR_KEY]?: StyleInjector;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Configure the global style injector
|
|
12
|
-
*/
|
|
13
|
-
export declare function configure(config?: Partial<StyleInjectorConfig>): void;
|
|
14
4
|
/**
|
|
15
5
|
* Allocate a className for a cacheKey without injecting styles yet
|
|
16
6
|
*/
|
|
@@ -33,6 +23,34 @@ export declare function inject(rules: StyleResult[], options?: {
|
|
|
33
23
|
export declare function injectGlobal(rules: StyleResult[], options?: {
|
|
34
24
|
root?: Document | ShadowRoot;
|
|
35
25
|
}): GlobalInjectResult;
|
|
26
|
+
/**
|
|
27
|
+
* Inject raw CSS text directly without parsing
|
|
28
|
+
* This is a low-overhead method for injecting raw CSS that doesn't need tasty processing.
|
|
29
|
+
* The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* // Inject raw CSS
|
|
34
|
+
* const { dispose } = injectRawCSS(`
|
|
35
|
+
* body { margin: 0; padding: 0; }
|
|
36
|
+
* .my-class { color: red; }
|
|
37
|
+
* `);
|
|
38
|
+
*
|
|
39
|
+
* // Later, remove the injected CSS
|
|
40
|
+
* dispose();
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function injectRawCSS(css: string, options?: {
|
|
44
|
+
root?: Document | ShadowRoot;
|
|
45
|
+
}): {
|
|
46
|
+
dispose: () => void;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Get raw CSS text for SSR
|
|
50
|
+
*/
|
|
51
|
+
export declare function getRawCSSText(options?: {
|
|
52
|
+
root?: Document | ShadowRoot;
|
|
53
|
+
}): string;
|
|
36
54
|
/**
|
|
37
55
|
* Inject keyframes and return object with toString() and dispose()
|
|
38
56
|
*/
|
|
@@ -75,13 +93,6 @@ export declare function destroy(root?: Document | ShadowRoot): void;
|
|
|
75
93
|
* Create a new isolated injector instance
|
|
76
94
|
*/
|
|
77
95
|
export declare function createInjector(config?: Partial<StyleInjectorConfig>): StyleInjector;
|
|
78
|
-
|
|
79
|
-
* Create a global style component like styled-components createGlobalStyle
|
|
80
|
-
* Returns a React component that injects global styles when mounted and cleans up when unmounted
|
|
81
|
-
*/
|
|
82
|
-
export declare function createGlobalStyle<Props = {}>(strings: TemplateStringsArray, ...interpolations: Array<string | number | ((props: Props) => string | number)>): import('react').ComponentType<Props & {
|
|
83
|
-
root?: Document | ShadowRoot;
|
|
84
|
-
}>;
|
|
85
|
-
export type { StyleInjectorConfig, InjectResult, DisposeFunction, RuleInfo, SheetInfo, RootRegistry, StyleRule, KeyframesInfo, KeyframesResult, KeyframesSteps, KeyframesCacheEntry, CacheMetrics, } from './types';
|
|
96
|
+
export type { StyleInjectorConfig, InjectResult, DisposeFunction, RuleInfo, SheetInfo, RootRegistry, StyleRule, KeyframesInfo, KeyframesResult, KeyframesSteps, KeyframesCacheEntry, CacheMetrics, RawCSSResult, } from './types';
|
|
86
97
|
export { StyleInjector } from './injector';
|
|
87
98
|
export { SheetManager } from './sheet-manager';
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* Style injector that works with structured style objects
|
|
3
3
|
* Eliminates CSS string parsing for better performance
|
|
4
4
|
*/
|
|
5
|
-
import { StyleResult } from '../
|
|
6
|
-
import { GlobalInjectResult, InjectResult, KeyframesResult, KeyframesSteps, StyleInjectorConfig } from './types';
|
|
7
|
-
import type { ComponentType } from 'react';
|
|
5
|
+
import { StyleResult } from '../pipeline';
|
|
6
|
+
import { GlobalInjectResult, InjectResult, KeyframesResult, KeyframesSteps, RawCSSResult, StyleInjectorConfig } from './types';
|
|
8
7
|
export declare class StyleInjector {
|
|
9
8
|
private sheetManager;
|
|
10
9
|
private config;
|
|
@@ -37,11 +36,19 @@ export declare class StyleInjector {
|
|
|
37
36
|
root?: Document | ShadowRoot;
|
|
38
37
|
}): GlobalInjectResult;
|
|
39
38
|
/**
|
|
40
|
-
* Inject
|
|
39
|
+
* Inject raw CSS text directly without parsing
|
|
40
|
+
* This is a low-overhead alternative to createGlobalStyle for raw CSS
|
|
41
|
+
* The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking
|
|
41
42
|
*/
|
|
42
|
-
|
|
43
|
+
injectRawCSS(css: string, options?: {
|
|
43
44
|
root?: Document | ShadowRoot;
|
|
44
|
-
}):
|
|
45
|
+
}): RawCSSResult;
|
|
46
|
+
/**
|
|
47
|
+
* Get raw CSS text for SSR
|
|
48
|
+
*/
|
|
49
|
+
getRawCSSText(options?: {
|
|
50
|
+
root?: Document | ShadowRoot;
|
|
51
|
+
}): string;
|
|
45
52
|
/**
|
|
46
53
|
* Dispose of a className
|
|
47
54
|
*/
|
|
@@ -94,6 +101,12 @@ export declare class StyleInjector {
|
|
|
94
101
|
}): boolean;
|
|
95
102
|
/**
|
|
96
103
|
* Inject keyframes and return object with toString() and dispose()
|
|
104
|
+
*
|
|
105
|
+
* Keyframes are cached by content (steps). If the same content is injected
|
|
106
|
+
* multiple times with different provided names, the first injected name is reused.
|
|
107
|
+
*
|
|
108
|
+
* If the same name is provided with different content (collision), a unique
|
|
109
|
+
* name is generated to avoid overwriting the existing keyframes.
|
|
97
110
|
*/
|
|
98
111
|
keyframes(steps: KeyframesSteps, nameOrOptions?: string | {
|
|
99
112
|
root?: Document | ShadowRoot;
|
|
@@ -107,11 +120,4 @@ export declare class StyleInjector {
|
|
|
107
120
|
* Destroy all resources for a root
|
|
108
121
|
*/
|
|
109
122
|
destroy(root?: Document | ShadowRoot): void;
|
|
110
|
-
/**
|
|
111
|
-
* Create a global style component like styled-components createGlobalStyle
|
|
112
|
-
* Returns a React component that injects global styles when mounted and cleans up when unmounted
|
|
113
|
-
*/
|
|
114
|
-
createGlobalStyle<Props = {}>(strings: TemplateStringsArray, ...interpolations: Array<string | number | ((props: Props) => string | number)>): ComponentType<Props & {
|
|
115
|
-
root?: Document | ShadowRoot;
|
|
116
|
-
}>;
|
|
117
123
|
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import { CacheMetrics, KeyframesInfo, KeyframesSteps, RootRegistry, RuleInfo, SheetInfo, StyleInjectorConfig, StyleRule } from './types';
|
|
1
|
+
import { CacheMetrics, KeyframesInfo, KeyframesSteps, RawCSSResult, RootRegistry, RuleInfo, SheetInfo, StyleInjectorConfig, StyleRule } from './types';
|
|
2
2
|
export declare class SheetManager {
|
|
3
3
|
private rootRegistries;
|
|
4
4
|
private config;
|
|
5
|
+
/** Dedicated style elements for raw CSS per root */
|
|
6
|
+
private rawStyleElements;
|
|
7
|
+
/** Tracking for raw CSS blocks per root */
|
|
8
|
+
private rawCSSBlocks;
|
|
9
|
+
/** Counter for generating unique raw CSS IDs */
|
|
10
|
+
private rawCSSCounter;
|
|
5
11
|
constructor(config: StyleInjectorConfig);
|
|
6
12
|
/**
|
|
7
13
|
* Get or create registry for a root (Document or ShadowRoot)
|
|
@@ -95,4 +101,22 @@ export declare class SheetManager {
|
|
|
95
101
|
* Clean up resources for a root
|
|
96
102
|
*/
|
|
97
103
|
cleanup(root: Document | ShadowRoot): void;
|
|
104
|
+
/**
|
|
105
|
+
* Get or create a dedicated style element for raw CSS
|
|
106
|
+
* Raw CSS is kept separate from tasty-managed sheets to avoid index conflicts
|
|
107
|
+
*/
|
|
108
|
+
private getOrCreateRawStyleElement;
|
|
109
|
+
/**
|
|
110
|
+
* Inject raw CSS text directly without parsing
|
|
111
|
+
* Returns a dispose function to remove the injected CSS
|
|
112
|
+
*/
|
|
113
|
+
injectRawCSS(css: string, root: Document | ShadowRoot): RawCSSResult;
|
|
114
|
+
/**
|
|
115
|
+
* Remove a raw CSS block by ID
|
|
116
|
+
*/
|
|
117
|
+
private disposeRawCSS;
|
|
118
|
+
/**
|
|
119
|
+
* Get the raw CSS content for SSR
|
|
120
|
+
*/
|
|
121
|
+
getRawCSSText(root: Document | ShadowRoot): string;
|
|
98
122
|
}
|
|
@@ -26,6 +26,12 @@ export interface StyleInjectorConfig {
|
|
|
26
26
|
* Helps avoid races during rapid mount/unmount cycles. Default: 10000ms.
|
|
27
27
|
*/
|
|
28
28
|
unusedStylesMinAgeMs?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Global predefined states for advanced state mapping.
|
|
31
|
+
* These are state aliases that can be used in any component.
|
|
32
|
+
* Example: { '@mobile': '@media(w < 920px)', '@dark': '@root(theme=dark)' }
|
|
33
|
+
*/
|
|
34
|
+
states?: Record<string, string>;
|
|
29
35
|
}
|
|
30
36
|
export interface RuleInfo {
|
|
31
37
|
className: string;
|
|
@@ -76,8 +82,10 @@ export interface RootRegistry {
|
|
|
76
82
|
metrics?: CacheMetrics;
|
|
77
83
|
/** Counter for generating sequential class names like t0, t1, t2... */
|
|
78
84
|
classCounter: number;
|
|
79
|
-
/** Keyframes cache by
|
|
85
|
+
/** Keyframes cache by content hash -> entry */
|
|
80
86
|
keyframesCache: Map<string, KeyframesCacheEntry>;
|
|
87
|
+
/** Keyframes name to content hash mapping for collision detection */
|
|
88
|
+
keyframesNameToContent: Map<string, string>;
|
|
81
89
|
/** Counter for generating keyframes names like k0, k1, k2... */
|
|
82
90
|
keyframesCounter: number;
|
|
83
91
|
/** Set of injected @property names for tracking */
|
|
@@ -85,7 +93,7 @@ export interface RootRegistry {
|
|
|
85
93
|
/** Global rules tracking for index adjustment */
|
|
86
94
|
globalRules: Map<string, RuleInfo>;
|
|
87
95
|
}
|
|
88
|
-
export type StyleRule = import('../
|
|
96
|
+
export type StyleRule = import('../pipeline').StyleResult;
|
|
89
97
|
export interface KeyframesInfo {
|
|
90
98
|
name: string;
|
|
91
99
|
sheetIndex: number;
|
|
@@ -104,3 +112,16 @@ export interface KeyframesCacheEntry {
|
|
|
104
112
|
refCount: number;
|
|
105
113
|
info: KeyframesInfo;
|
|
106
114
|
}
|
|
115
|
+
export interface RawCSSInfo {
|
|
116
|
+
/** Unique identifier for this raw CSS block */
|
|
117
|
+
id: string;
|
|
118
|
+
/** The raw CSS text */
|
|
119
|
+
css: string;
|
|
120
|
+
/** Start offset in the style element's textContent */
|
|
121
|
+
startOffset: number;
|
|
122
|
+
/** End offset in the style element's textContent */
|
|
123
|
+
endOffset: number;
|
|
124
|
+
}
|
|
125
|
+
export interface RawCSSResult {
|
|
126
|
+
dispose: () => void;
|
|
127
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keyframes Utilities
|
|
3
|
+
*
|
|
4
|
+
* Optimized utilities for extracting and processing keyframes in styles.
|
|
5
|
+
* Designed for zero overhead when no keyframes are used.
|
|
6
|
+
*/
|
|
7
|
+
import { KeyframesSteps } from '../injector/types';
|
|
8
|
+
import { Styles } from '../styles/types';
|
|
9
|
+
/**
|
|
10
|
+
* Check if styles object has local @keyframes definition.
|
|
11
|
+
* Fast path: single property lookup.
|
|
12
|
+
*/
|
|
13
|
+
export declare function hasLocalKeyframes(styles: Styles): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Extract local @keyframes from styles object.
|
|
16
|
+
* Returns null if no local keyframes (fast path).
|
|
17
|
+
*/
|
|
18
|
+
export declare function extractLocalKeyframes(styles: Styles): Record<string, KeyframesSteps> | null;
|
|
19
|
+
/**
|
|
20
|
+
* Merge local and global keyframes.
|
|
21
|
+
* Local keyframes take priority over global.
|
|
22
|
+
* Returns null if no keyframes exist (fast path).
|
|
23
|
+
*/
|
|
24
|
+
export declare function mergeKeyframes(local: Record<string, KeyframesSteps> | null, global: Record<string, KeyframesSteps> | null): Record<string, KeyframesSteps> | null;
|
|
25
|
+
/**
|
|
26
|
+
* Get merged keyframes for styles (local + global).
|
|
27
|
+
* Returns null if no keyframes defined anywhere (fast path).
|
|
28
|
+
*/
|
|
29
|
+
export declare function getKeyframesForStyles(styles: Styles): Record<string, KeyframesSteps> | null;
|
|
30
|
+
/**
|
|
31
|
+
* Extract all animation names referenced in styles.
|
|
32
|
+
* Scans 'animation' and 'animationName' properties including in state mappings.
|
|
33
|
+
* Returns empty set if no animation properties found (fast path).
|
|
34
|
+
*/
|
|
35
|
+
export declare function extractAnimationNamesFromStyles(styles: Styles): Set<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Replace animation names in CSS declarations with injected names.
|
|
38
|
+
* Optimized to avoid regex creation - uses simple string replacement.
|
|
39
|
+
*
|
|
40
|
+
* @param declarations CSS declarations string
|
|
41
|
+
* @param nameMap Map from original name to injected name (only contains names that differ)
|
|
42
|
+
* @returns Updated declarations string
|
|
43
|
+
*/
|
|
44
|
+
export declare function replaceAnimationNames(declarations: string, nameMap: Map<string, string>): string;
|
|
45
|
+
/**
|
|
46
|
+
* Filter keyframes to only those that are actually used.
|
|
47
|
+
* Returns null if no keyframes are used (fast path).
|
|
48
|
+
*/
|
|
49
|
+
export declare function filterUsedKeyframes(keyframes: Record<string, KeyframesSteps> | null, usedNames: Set<string>): Record<string, KeyframesSteps> | null;
|
|
@@ -7,5 +7,9 @@ export declare class StyleParser {
|
|
|
7
7
|
setFuncs(funcs: Required<ParserOptions>['funcs']): void;
|
|
8
8
|
setUnits(units: Required<ParserOptions>['units']): void;
|
|
9
9
|
updateOptions(patch: Partial<ParserOptions>): void;
|
|
10
|
+
/**
|
|
11
|
+
* Get the current units configuration.
|
|
12
|
+
*/
|
|
13
|
+
getUnits(): ParserOptions['units'];
|
|
10
14
|
}
|
|
11
15
|
export type { StyleDetails, ProcessedStyle } from './types';
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConditionNode Types and Helpers
|
|
3
|
+
*
|
|
4
|
+
* Core data structures for representing style conditions as an abstract syntax tree.
|
|
5
|
+
* Used throughout the pipeline for parsing, simplification, and CSS generation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base interface for all state conditions (leaf nodes)
|
|
9
|
+
*/
|
|
10
|
+
interface BaseStateCondition {
|
|
11
|
+
kind: 'state';
|
|
12
|
+
negated: boolean;
|
|
13
|
+
raw: string;
|
|
14
|
+
uniqueId: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Modifier condition: [data-attr] or [data-attr="value"]
|
|
18
|
+
*/
|
|
19
|
+
export interface ModifierCondition extends BaseStateCondition {
|
|
20
|
+
type: 'modifier';
|
|
21
|
+
attribute: string;
|
|
22
|
+
value?: string;
|
|
23
|
+
operator?: '=' | '^=' | '$=' | '*=';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Pseudo-class condition: :hover, :focus-visible
|
|
27
|
+
*/
|
|
28
|
+
export interface PseudoCondition extends BaseStateCondition {
|
|
29
|
+
type: 'pseudo';
|
|
30
|
+
pseudo: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Numeric bound for dimension queries
|
|
34
|
+
*/
|
|
35
|
+
export interface NumericBound {
|
|
36
|
+
value: string;
|
|
37
|
+
valueNumeric: number | null;
|
|
38
|
+
inclusive: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Media query condition
|
|
42
|
+
*/
|
|
43
|
+
export interface MediaCondition extends BaseStateCondition {
|
|
44
|
+
type: 'media';
|
|
45
|
+
subtype: 'dimension' | 'feature' | 'type';
|
|
46
|
+
dimension?: 'width' | 'height' | 'inline-size' | 'block-size';
|
|
47
|
+
lowerBound?: NumericBound;
|
|
48
|
+
upperBound?: NumericBound;
|
|
49
|
+
feature?: string;
|
|
50
|
+
featureValue?: string;
|
|
51
|
+
mediaType?: 'print' | 'screen' | 'all' | 'speech';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Container query condition
|
|
55
|
+
*/
|
|
56
|
+
export interface ContainerCondition extends BaseStateCondition {
|
|
57
|
+
type: 'container';
|
|
58
|
+
subtype: 'dimension' | 'style';
|
|
59
|
+
containerName?: string;
|
|
60
|
+
dimension?: 'width' | 'height' | 'inline-size' | 'block-size';
|
|
61
|
+
lowerBound?: NumericBound;
|
|
62
|
+
upperBound?: NumericBound;
|
|
63
|
+
property?: string;
|
|
64
|
+
propertyValue?: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Root state condition: @root(theme=dark)
|
|
68
|
+
*/
|
|
69
|
+
export interface RootCondition extends BaseStateCondition {
|
|
70
|
+
type: 'root';
|
|
71
|
+
selector: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Own state condition: @own(hovered)
|
|
75
|
+
*/
|
|
76
|
+
export interface OwnCondition extends BaseStateCondition {
|
|
77
|
+
type: 'own';
|
|
78
|
+
innerCondition: ConditionNode;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Starting style condition: @starting
|
|
82
|
+
*/
|
|
83
|
+
export interface StartingCondition extends BaseStateCondition {
|
|
84
|
+
type: 'starting';
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Supports query condition: @supports(display: grid), @supports($, :has(*))
|
|
88
|
+
*/
|
|
89
|
+
export interface SupportsCondition extends BaseStateCondition {
|
|
90
|
+
type: 'supports';
|
|
91
|
+
subtype: 'feature' | 'selector';
|
|
92
|
+
condition: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Union of all state condition types
|
|
96
|
+
*/
|
|
97
|
+
export type StateCondition = ModifierCondition | PseudoCondition | MediaCondition | ContainerCondition | RootCondition | OwnCondition | StartingCondition | SupportsCondition;
|
|
98
|
+
/**
|
|
99
|
+
* Compound node: combines conditions with AND/OR
|
|
100
|
+
*/
|
|
101
|
+
export interface CompoundCondition {
|
|
102
|
+
kind: 'compound';
|
|
103
|
+
operator: 'AND' | 'OR';
|
|
104
|
+
children: ConditionNode[];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* True condition (matches everything)
|
|
108
|
+
*/
|
|
109
|
+
export interface TrueCondition {
|
|
110
|
+
kind: 'true';
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* False condition (matches nothing - skip this rule)
|
|
114
|
+
*/
|
|
115
|
+
export interface FalseCondition {
|
|
116
|
+
kind: 'false';
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Union of all condition node types
|
|
120
|
+
*/
|
|
121
|
+
export type ConditionNode = StateCondition | CompoundCondition | TrueCondition | FalseCondition;
|
|
122
|
+
/**
|
|
123
|
+
* Create a TRUE condition (matches everything)
|
|
124
|
+
*/
|
|
125
|
+
export declare function trueCondition(): TrueCondition;
|
|
126
|
+
/**
|
|
127
|
+
* Create a FALSE condition (matches nothing)
|
|
128
|
+
*/
|
|
129
|
+
export declare function falseCondition(): FalseCondition;
|
|
130
|
+
/**
|
|
131
|
+
* Create an AND compound condition
|
|
132
|
+
*/
|
|
133
|
+
export declare function and(...children: ConditionNode[]): ConditionNode;
|
|
134
|
+
/**
|
|
135
|
+
* Create an OR compound condition
|
|
136
|
+
*/
|
|
137
|
+
export declare function or(...children: ConditionNode[]): ConditionNode;
|
|
138
|
+
/**
|
|
139
|
+
* Negate a condition
|
|
140
|
+
*/
|
|
141
|
+
export declare function not(node: ConditionNode): ConditionNode;
|
|
142
|
+
/**
|
|
143
|
+
* Check if a condition is a compound condition
|
|
144
|
+
*/
|
|
145
|
+
export declare function isCompoundCondition(node: ConditionNode): node is CompoundCondition;
|
|
146
|
+
/**
|
|
147
|
+
* Generate a normalized unique ID for a modifier condition
|
|
148
|
+
*/
|
|
149
|
+
export declare function modifierUniqueId(attribute: string, value?: string, operator?: string, negated?: boolean): string;
|
|
150
|
+
/**
|
|
151
|
+
* Generate a normalized unique ID for a pseudo condition
|
|
152
|
+
*/
|
|
153
|
+
export declare function pseudoUniqueId(pseudo: string, negated?: boolean): string;
|
|
154
|
+
/**
|
|
155
|
+
* Generate a normalized unique ID for a media condition
|
|
156
|
+
*/
|
|
157
|
+
export declare function mediaUniqueId(subtype: 'dimension' | 'feature' | 'type', props: {
|
|
158
|
+
dimension?: string;
|
|
159
|
+
lowerBound?: NumericBound;
|
|
160
|
+
upperBound?: NumericBound;
|
|
161
|
+
feature?: string;
|
|
162
|
+
featureValue?: string;
|
|
163
|
+
mediaType?: string;
|
|
164
|
+
}, negated?: boolean): string;
|
|
165
|
+
/**
|
|
166
|
+
* Generate a normalized unique ID for a container condition
|
|
167
|
+
*/
|
|
168
|
+
export declare function containerUniqueId(subtype: 'dimension' | 'style', props: {
|
|
169
|
+
containerName?: string;
|
|
170
|
+
dimension?: string;
|
|
171
|
+
lowerBound?: NumericBound;
|
|
172
|
+
upperBound?: NumericBound;
|
|
173
|
+
property?: string;
|
|
174
|
+
propertyValue?: string;
|
|
175
|
+
}, negated?: boolean): string;
|
|
176
|
+
/**
|
|
177
|
+
* Generate a normalized unique ID for a root condition
|
|
178
|
+
*/
|
|
179
|
+
export declare function rootUniqueId(selector: string, negated?: boolean): string;
|
|
180
|
+
/**
|
|
181
|
+
* Generate a normalized unique ID for an own condition
|
|
182
|
+
*/
|
|
183
|
+
export declare function ownUniqueId(innerUniqueId: string, negated?: boolean): string;
|
|
184
|
+
/**
|
|
185
|
+
* Generate a normalized unique ID for a starting condition
|
|
186
|
+
*/
|
|
187
|
+
export declare function startingUniqueId(negated?: boolean): string;
|
|
188
|
+
/**
|
|
189
|
+
* Generate a normalized unique ID for a supports condition
|
|
190
|
+
*/
|
|
191
|
+
export declare function supportsUniqueId(subtype: 'feature' | 'selector', condition: string, negated?: boolean): string;
|
|
192
|
+
/**
|
|
193
|
+
* Create a modifier condition
|
|
194
|
+
*/
|
|
195
|
+
export declare function createModifierCondition(attribute: string, value?: string, operator?: '=' | '^=' | '$=' | '*=', negated?: boolean, raw?: string): ModifierCondition;
|
|
196
|
+
/**
|
|
197
|
+
* Create a pseudo condition
|
|
198
|
+
*/
|
|
199
|
+
export declare function createPseudoCondition(pseudo: string, negated?: boolean, raw?: string): PseudoCondition;
|
|
200
|
+
/**
|
|
201
|
+
* Create a media dimension condition
|
|
202
|
+
*/
|
|
203
|
+
export declare function createMediaDimensionCondition(dimension: 'width' | 'height' | 'inline-size' | 'block-size', lowerBound?: NumericBound, upperBound?: NumericBound, negated?: boolean, raw?: string): MediaCondition;
|
|
204
|
+
/**
|
|
205
|
+
* Create a media feature condition
|
|
206
|
+
*/
|
|
207
|
+
export declare function createMediaFeatureCondition(feature: string, featureValue?: string, negated?: boolean, raw?: string): MediaCondition;
|
|
208
|
+
/**
|
|
209
|
+
* Create a media type condition
|
|
210
|
+
*/
|
|
211
|
+
export declare function createMediaTypeCondition(mediaType: 'print' | 'screen' | 'all' | 'speech', negated?: boolean, raw?: string): MediaCondition;
|
|
212
|
+
/**
|
|
213
|
+
* Create a container dimension condition
|
|
214
|
+
*/
|
|
215
|
+
export declare function createContainerDimensionCondition(dimension: 'width' | 'height' | 'inline-size' | 'block-size', lowerBound?: NumericBound, upperBound?: NumericBound, containerName?: string, negated?: boolean, raw?: string): ContainerCondition;
|
|
216
|
+
/**
|
|
217
|
+
* Create a container style condition
|
|
218
|
+
*/
|
|
219
|
+
export declare function createContainerStyleCondition(property: string, propertyValue?: string, containerName?: string, negated?: boolean, raw?: string): ContainerCondition;
|
|
220
|
+
/**
|
|
221
|
+
* Create a root condition
|
|
222
|
+
*/
|
|
223
|
+
export declare function createRootCondition(selector: string, negated?: boolean, raw?: string): RootCondition;
|
|
224
|
+
/**
|
|
225
|
+
* Create an own condition
|
|
226
|
+
*/
|
|
227
|
+
export declare function createOwnCondition(innerCondition: ConditionNode, negated?: boolean, raw?: string): OwnCondition;
|
|
228
|
+
/**
|
|
229
|
+
* Create a starting condition
|
|
230
|
+
*/
|
|
231
|
+
export declare function createStartingCondition(negated?: boolean, raw?: string): StartingCondition;
|
|
232
|
+
/**
|
|
233
|
+
* Create a supports condition
|
|
234
|
+
*
|
|
235
|
+
* @param subtype 'feature' for @supports(display: grid), 'selector' for @supports($, :has(*))
|
|
236
|
+
* @param condition The condition string (e.g., "display: grid" or ":has(*)")
|
|
237
|
+
*/
|
|
238
|
+
export declare function createSupportsCondition(subtype: 'feature' | 'selector', condition: string, negated?: boolean, raw?: string): SupportsCondition;
|
|
239
|
+
/**
|
|
240
|
+
* Get the unique ID for any condition node
|
|
241
|
+
*/
|
|
242
|
+
export declare function getConditionUniqueId(node: ConditionNode): string;
|
|
243
|
+
export {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exclusive Condition Builder
|
|
3
|
+
*
|
|
4
|
+
* Transforms parsed style entries into exclusive conditions.
|
|
5
|
+
* Each entry's condition is ANDed with the negation of all higher-priority conditions,
|
|
6
|
+
* ensuring exactly one condition matches at any given time.
|
|
7
|
+
*/
|
|
8
|
+
import { StyleValue } from '../utils/styles';
|
|
9
|
+
import { ConditionNode } from './conditions';
|
|
10
|
+
/**
|
|
11
|
+
* Parsed style entry with condition
|
|
12
|
+
*/
|
|
13
|
+
export interface ParsedStyleEntry {
|
|
14
|
+
styleKey: string;
|
|
15
|
+
stateKey: string;
|
|
16
|
+
value: StyleValue;
|
|
17
|
+
condition: ConditionNode;
|
|
18
|
+
priority: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Style entry with exclusive condition
|
|
22
|
+
*/
|
|
23
|
+
export interface ExclusiveStyleEntry extends ParsedStyleEntry {
|
|
24
|
+
exclusiveCondition: ConditionNode;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Build exclusive conditions for a list of parsed style entries.
|
|
28
|
+
*
|
|
29
|
+
* The entries should be ordered by priority (highest priority first).
|
|
30
|
+
*
|
|
31
|
+
* For each entry, we compute:
|
|
32
|
+
* exclusiveCondition = condition & !prior[0] & !prior[1] & ...
|
|
33
|
+
*
|
|
34
|
+
* This ensures exactly one condition matches at any time.
|
|
35
|
+
*
|
|
36
|
+
* Example:
|
|
37
|
+
* Input (ordered highest to lowest priority):
|
|
38
|
+
* A: value1 (priority 2)
|
|
39
|
+
* B: value2 (priority 1)
|
|
40
|
+
* C: value3 (priority 0)
|
|
41
|
+
*
|
|
42
|
+
* Output:
|
|
43
|
+
* A: A
|
|
44
|
+
* B: B & !A
|
|
45
|
+
* C: C & !A & !B
|
|
46
|
+
*
|
|
47
|
+
* @param entries Parsed style entries ordered by priority (highest first)
|
|
48
|
+
* @returns Entries with exclusive conditions, filtered to remove impossible ones
|
|
49
|
+
*/
|
|
50
|
+
export declare function buildExclusiveConditions(entries: ParsedStyleEntry[]): ExclusiveStyleEntry[];
|
|
51
|
+
/**
|
|
52
|
+
* Parse style entries from a value mapping object.
|
|
53
|
+
*
|
|
54
|
+
* @param styleKey The style key (e.g., 'padding')
|
|
55
|
+
* @param valueMap The value mapping { '': '2x', 'compact': '1x', '@media(w < 768px)': '0.5x' }
|
|
56
|
+
* @param parseCondition Function to parse state keys into conditions
|
|
57
|
+
* @returns Parsed entries ordered by priority (highest first)
|
|
58
|
+
*/
|
|
59
|
+
export declare function parseStyleEntries(styleKey: string, valueMap: Record<string, StyleValue>, parseCondition: (stateKey: string) => ConditionNode): ParsedStyleEntry[];
|
|
60
|
+
/**
|
|
61
|
+
* Check if a value is a style value mapping (object with state keys)
|
|
62
|
+
*/
|
|
63
|
+
export declare function isValueMapping(value: StyleValue | Record<string, StyleValue>): value is Record<string, StyleValue>;
|
|
64
|
+
/**
|
|
65
|
+
* Expand OR conditions in parsed entries into multiple exclusive entries.
|
|
66
|
+
*
|
|
67
|
+
* For an entry with condition `A | B | C`, this creates 3 entries:
|
|
68
|
+
* - condition: A
|
|
69
|
+
* - condition: B & !A
|
|
70
|
+
* - condition: C & !A & !B
|
|
71
|
+
*
|
|
72
|
+
* This ensures OR branches are mutually exclusive BEFORE the main
|
|
73
|
+
* exclusive condition building pass.
|
|
74
|
+
*
|
|
75
|
+
* @param entries Parsed entries (may contain OR conditions)
|
|
76
|
+
* @returns Expanded entries with OR branches made exclusive
|
|
77
|
+
*/
|
|
78
|
+
export declare function expandOrConditions(entries: ParsedStyleEntry[]): ParsedStyleEntry[];
|
|
79
|
+
/**
|
|
80
|
+
* Expand OR conditions in exclusive entries AFTER buildExclusiveConditions.
|
|
81
|
+
*
|
|
82
|
+
* This handles ORs that arise from De Morgan expansion during negation:
|
|
83
|
+
* !(A & B) = !A | !B
|
|
84
|
+
*
|
|
85
|
+
* These ORs need to be made exclusive to avoid overlapping CSS rules:
|
|
86
|
+
* !A | !B → !A | (A & !B)
|
|
87
|
+
*
|
|
88
|
+
* This is logically equivalent but ensures each branch has proper context.
|
|
89
|
+
*
|
|
90
|
+
* Example:
|
|
91
|
+
* Input: { "": V1, "@supports(...) & :has()": V2 }
|
|
92
|
+
* V2's exclusive = @supports & :has
|
|
93
|
+
* V1's exclusive = !(@supports & :has) = !@supports | !:has
|
|
94
|
+
*
|
|
95
|
+
* Without this fix: V1 gets two rules:
|
|
96
|
+
* - @supports (not ...) → V1 ✓
|
|
97
|
+
* - :not(:has()) → V1 ✗ (missing @supports context!)
|
|
98
|
+
*
|
|
99
|
+
* With this fix: V1 gets two exclusive rules:
|
|
100
|
+
* - @supports (not ...) → V1 ✓
|
|
101
|
+
* - @supports (...) { :not(:has()) } → V1 ✓ (proper context!)
|
|
102
|
+
*/
|
|
103
|
+
export declare function expandExclusiveOrs(entries: ExclusiveStyleEntry[]): ExclusiveStyleEntry[];
|