@cube-dev/ui-kit 0.0.0-canary-4777472 → 0.0.0-canary-b26ec55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/_internal/hooks/index.js +1 -1
- package/es/_internal/hooks/use-chained-callback.js +1 -1
- package/es/_internal/hooks/use-debounced-value.js +1 -1
- package/es/_internal/hooks/use-deprecation-warning.js +1 -1
- package/es/_internal/hooks/use-effect-once.js +1 -1
- package/es/_internal/hooks/use-event.js +1 -1
- package/es/_internal/hooks/use-is-first-render.js +1 -1
- package/es/_internal/hooks/use-sync-ref.js +1 -1
- package/es/_internal/hooks/use-timer/index.js +1 -1
- package/es/_internal/hooks/use-timer/timer.js +1 -1
- package/es/_internal/hooks/use-timer/use-timer.js +1 -1
- package/es/_internal/hooks/use-update-effect.js +1 -1
- package/es/_internal/hooks/use-warn.js +1 -1
- package/es/_internal/index.js +1 -1
- package/es/components/Block.js +1 -1
- package/es/components/CollectionItem.js +1 -1
- package/es/components/GlobalStyles.js +55 -64
- package/es/components/GridProvider.js +1 -1
- package/es/components/HiddenInput.js +1 -1
- package/es/components/OpenTrasition.js +1 -1
- package/es/components/Root.js +11 -52
- package/es/components/actions/Action/Action.js +1 -1
- package/es/components/actions/Button/Button.js +2 -2
- package/es/components/actions/Button/index.js +1 -1
- package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/es/components/actions/CommandMenu/index.js +1 -1
- package/es/components/actions/CommandMenu/styled.js +1 -1
- package/es/components/actions/ItemAction/ItemAction.js +1 -1
- package/es/components/actions/ItemAction/index.js +1 -1
- package/es/components/actions/ItemActionContext.js +1 -1
- package/es/components/actions/ItemButton/ItemButton.js +1 -1
- package/es/components/actions/ItemButton/index.js +1 -1
- package/es/components/actions/Link/Link.js +1 -1
- package/es/components/actions/Menu/Menu.js +1 -1
- package/es/components/actions/Menu/MenuItem.js +1 -1
- package/es/components/actions/Menu/MenuSection.js +1 -1
- package/es/components/actions/Menu/MenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/es/components/actions/Menu/context.js +1 -1
- package/es/components/actions/Menu/index.js +1 -1
- package/es/components/actions/Menu/styled.js +1 -1
- package/es/components/actions/index.js +1 -1
- package/es/components/actions/use-action.js +1 -1
- package/es/components/actions/use-anchored-menu.js +1 -1
- package/es/components/actions/use-context-menu.js +1 -1
- package/es/components/content/ActiveZone/ActiveZone.js +1 -1
- package/es/components/content/Alert/Alert.js +1 -1
- package/es/components/content/Alert/index.js +1 -1
- package/es/components/content/Alert/types.js +1 -1
- package/es/components/content/Alert/use-alert.js +1 -1
- package/es/components/content/Avatar/Avatar.js +1 -1
- package/es/components/content/Badge/Badge.js +1 -1
- package/es/components/content/Card/Card.js +1 -1
- package/es/components/content/Content.js +1 -1
- package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +2 -2
- package/es/components/content/CopyPasteBlock/index.js +1 -1
- package/es/components/content/CopySnippet/CopySnippet.js +1 -1
- package/es/components/content/CopySnippet/index.js +1 -1
- package/es/components/content/Disclosure/Disclosure.js +1 -1
- package/es/components/content/Disclosure/index.js +1 -1
- package/es/components/content/Divider.js +1 -1
- package/es/components/content/Footer.js +1 -1
- package/es/components/content/Header.js +1 -1
- package/es/components/content/HotKeys/HotKeys.js +1 -1
- package/es/components/content/HotKeys/index.js +1 -1
- package/es/components/content/Item/Item.js +2 -2
- package/es/components/content/Item/index.js +1 -1
- package/es/components/content/ItemBadge/ItemBadge.js +1 -1
- package/es/components/content/ItemBadge/index.js +1 -1
- package/es/components/content/Layout/GridLayout.js +1 -1
- package/es/components/content/Layout/Layout.js +2 -1
- package/es/components/content/Layout/LayoutBlock.js +2 -1
- package/es/components/content/Layout/LayoutCenter.js +1 -1
- package/es/components/content/Layout/LayoutContainer.js +1 -1
- package/es/components/content/Layout/LayoutContent.js +2 -1
- package/es/components/content/Layout/LayoutContext.js +1 -1
- package/es/components/content/Layout/LayoutFlex.js +2 -1
- package/es/components/content/Layout/LayoutFooter.js +2 -1
- package/es/components/content/Layout/LayoutGrid.js +2 -1
- package/es/components/content/Layout/LayoutHeader.js +2 -1
- package/es/components/content/Layout/LayoutPane.js +2 -1
- package/es/components/content/Layout/LayoutPanel.js +2 -1
- package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/es/components/content/Layout/LayoutToolbar.js +2 -1
- package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/es/components/content/Layout/index.js +1 -1
- package/es/components/content/Layout/utils.js +1 -1
- package/es/components/content/List/SectionHeading.js +1 -1
- package/es/components/content/List/index.js +1 -1
- package/es/components/content/Paragraph.js +1 -1
- package/es/components/content/Placeholder/Placeholder.js +1 -1
- package/es/components/content/PrismCode/PrismCode.js +1 -1
- package/es/components/content/PrismCode/prismSetup.js +1 -1
- package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/es/components/content/Result/Result.js +1 -1
- package/es/components/content/Skeleton/Skeleton.js +1 -1
- package/es/components/content/Tag/Tag.js +1 -1
- package/es/components/content/Text.js +1 -1
- package/es/components/content/TextItem/TextItem.js +1 -1
- package/es/components/content/TextItem/index.js +1 -1
- package/es/components/content/Title.js +1 -1
- package/es/components/content/highlightText.js +1 -1
- package/es/components/content/use-auto-tooltip.js +1 -1
- package/es/components/fields/Checkbox/Checkbox.js +1 -1
- package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/es/components/fields/Checkbox/context.js +1 -1
- package/es/components/fields/Checkbox/index.js +1 -1
- package/es/components/fields/ComboBox/ComboBox.js +1 -1
- package/es/components/fields/ComboBox/index.js +1 -1
- package/es/components/fields/DatePicker/DateInput.js +1 -1
- package/es/components/fields/DatePicker/DateInputBase.js +1 -1
- package/es/components/fields/DatePicker/DatePicker.js +1 -1
- package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/es/components/fields/DatePicker/TimeInput.js +1 -1
- package/es/components/fields/DatePicker/index.js +1 -1
- package/es/components/fields/DatePicker/intl.js +1 -1
- package/es/components/fields/DatePicker/parseDate.js +1 -1
- package/es/components/fields/DatePicker/props.js +1 -1
- package/es/components/fields/DatePicker/types.js +1 -1
- package/es/components/fields/DatePicker/utils.js +1 -1
- package/es/components/fields/FileInput/FileInput.js +1 -1
- package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/es/components/fields/FilterListBox/index.js +1 -1
- package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/es/components/fields/FilterPicker/index.js +1 -1
- package/es/components/fields/Input/Input.js +1 -1
- package/es/components/fields/Input/index.js +1 -1
- package/es/components/fields/ListBox/ListBox.js +6 -6
- package/es/components/fields/ListBox/index.js +1 -1
- package/es/components/fields/NumberInput/NumberInput.js +1 -1
- package/es/components/fields/NumberInput/StepButton.js +1 -1
- package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/es/components/fields/Picker/Picker.js +1 -1
- package/es/components/fields/Picker/index.js +1 -1
- package/es/components/fields/RadioGroup/Radio.js +1 -1
- package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/es/components/fields/RadioGroup/context.js +1 -1
- package/es/components/fields/RadioGroup/index.js +1 -1
- package/es/components/fields/SearchInput/SearchInput.js +1 -1
- package/es/components/fields/SearchInput/index.js +1 -1
- package/es/components/fields/Select/Select.js +1 -1
- package/es/components/fields/Select/index.js +1 -1
- package/es/components/fields/Slider/Gradation.js +1 -1
- package/es/components/fields/Slider/Header.js +1 -1
- package/es/components/fields/Slider/RangeSlider.js +1 -1
- package/es/components/fields/Slider/Slider.js +1 -1
- package/es/components/fields/Slider/SliderBase.js +1 -1
- package/es/components/fields/Slider/SliderInput.js +1 -1
- package/es/components/fields/Slider/SliderThumb.js +1 -1
- package/es/components/fields/Slider/SliderTrack.js +1 -1
- package/es/components/fields/Slider/elements.js +1 -1
- package/es/components/fields/Slider/index.js +1 -1
- package/es/components/fields/Slider/types.js +1 -1
- package/es/components/fields/Switch/Switch.js +1 -1
- package/es/components/fields/Switch/index.js +1 -1
- package/es/components/fields/TextArea/TextArea.js +1 -1
- package/es/components/fields/TextArea/index.js +1 -1
- package/es/components/fields/TextInput/TextInput.js +1 -1
- package/es/components/fields/TextInput/TextInputBase.js +1 -1
- package/es/components/fields/TextInput/index.js +1 -1
- package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/es/components/fields/TextInputMapper/index.js +1 -1
- package/es/components/fields/index.js +1 -1
- package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
- package/es/components/form/FieldWrapper/index.js +1 -1
- package/es/components/form/FieldWrapper/types.js +1 -1
- package/es/components/form/Form/Field.js +1 -1
- package/es/components/form/Form/Form.js +1 -1
- package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/es/components/form/Form/ResetButton/index.js +1 -1
- package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/es/components/form/Form/SubmitButton/index.js +1 -1
- package/es/components/form/Form/SubmitError.js +1 -1
- package/es/components/form/Form/index.js +1 -1
- package/es/components/form/Form/types.js +1 -1
- package/es/components/form/Form/use-field/index.js +1 -1
- package/es/components/form/Form/use-field/types.js +1 -1
- package/es/components/form/Form/use-field/use-field-props.js +1 -1
- package/es/components/form/Form/use-field/use-field.js +1 -1
- package/es/components/form/Form/use-form.js +1 -1
- package/es/components/form/Form/validation.js +1 -1
- package/es/components/form/Label.js +1 -1
- package/es/components/form/index.js +1 -1
- package/es/components/form/wrapper.js +1 -1
- package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/es/components/helpers/DisplayTransition/index.js +1 -1
- package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/es/components/helpers/index.js +1 -1
- package/es/components/layout/Flex.js +1 -1
- package/es/components/layout/Flow.js +1 -1
- package/es/components/layout/Grid.js +1 -1
- package/es/components/layout/Panel.js +1 -1
- package/es/components/layout/Prefix.js +1 -1
- package/es/components/layout/ResizablePanel.js +1 -1
- package/es/components/layout/Space.js +1 -1
- package/es/components/layout/Suffix.js +1 -1
- package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
- package/es/components/organisms/FileTabs/FileTabs.js +1 -1
- package/es/components/organisms/StatsCard/StatsCard.js +1 -1
- package/es/components/other/Base64Upload/Base64Upload.js +1 -1
- package/es/components/other/Calendar/Calendar.js +1 -1
- package/es/components/other/Calendar/CalendarCell.js +1 -1
- package/es/components/other/Calendar/CalendarGrid.js +1 -1
- package/es/components/other/Calendar/RangeCalendar.js +1 -1
- package/es/components/other/CloudLogo/CloudLogo.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/es/components/overlays/AlertDialog/index.js +1 -1
- package/es/components/overlays/AlertDialog/types.js +1 -1
- package/es/components/overlays/Dialog/Dialog.js +1 -1
- package/es/components/overlays/Dialog/DialogContainer.js +1 -1
- package/es/components/overlays/Dialog/DialogForm.js +1 -1
- package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/es/components/overlays/Dialog/context.js +1 -1
- package/es/components/overlays/Dialog/index.js +1 -1
- package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/es/components/overlays/Modal/Modal.js +1 -1
- package/es/components/overlays/Modal/OpenTransition.js +1 -1
- package/es/components/overlays/Modal/Overlay.js +1 -1
- package/es/components/overlays/Modal/Popover.js +1 -1
- package/es/components/overlays/Modal/Tray.js +1 -1
- package/es/components/overlays/Modal/Underlay.js +1 -1
- package/es/components/overlays/Modal/index.js +1 -1
- package/es/components/overlays/Modal/types.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
- package/es/components/overlays/NewNotifications/Notification.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
- package/es/components/overlays/NewNotifications/index.js +1 -1
- package/es/components/overlays/NewNotifications/types.js +1 -1
- package/es/components/overlays/Notification/Notification.js +1 -1
- package/es/components/overlays/OverlayWrapper.js +1 -1
- package/es/components/overlays/Toasts/Toast.js +1 -1
- package/es/components/overlays/Toasts/index.js +1 -1
- package/es/components/overlays/Toasts/types.js +1 -1
- package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
- package/es/components/overlays/Tooltip/Tooltip.js +1 -1
- package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/es/components/overlays/Tooltip/context.js +1 -1
- package/es/components/overlays/Tooltip/index.js +1 -1
- package/es/components/portal/Portal.js +1 -1
- package/es/components/portal/PortalProvider.js +1 -1
- package/es/components/portal/index.js +1 -1
- package/es/components/portal/types.js +1 -1
- package/es/components/portal/usePortal.js +1 -1
- package/es/components/shared/InvalidIcon.js +1 -1
- package/es/components/shared/ValidIcon.js +1 -1
- package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/es/components/status/LoadingAnimation/index.js +1 -1
- package/es/components/status/Spin/Cube.js +1 -1
- package/es/components/status/Spin/InternalSpinner.js +1 -1
- package/es/components/status/Spin/Spin.js +1 -1
- package/es/components/status/Spin/SpinsContainer.js +1 -1
- package/es/components/status/Spin/index.js +1 -1
- package/es/components/status/Spin/types.js +1 -1
- package/es/components/status/index.js +1 -1
- package/es/data/item-themes.js +1 -1
- package/es/data/themes.js +1 -1
- package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/es/icons/AdjustmentsIcon.js +1 -1
- package/es/icons/AiIcon.js +1 -1
- package/es/icons/AreaChartIcon.js +1 -1
- package/es/icons/BackwardIcon.js +1 -1
- package/es/icons/BarChartIcon.js +1 -1
- package/es/icons/BellFilledIcon.js +1 -1
- package/es/icons/BellIcon.js +1 -1
- package/es/icons/BooleanIcon.js +1 -1
- package/es/icons/CalendarEditIcon.js +1 -1
- package/es/icons/CalendarIcon.js +1 -1
- package/es/icons/CaretDownIcon.js +1 -1
- package/es/icons/CaretUpIcon.js +1 -1
- package/es/icons/ChartAreaStackedIcon.js +1 -1
- package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarGroupedIcon.js +1 -1
- package/es/icons/ChartBarHorizontalIcon.js +1 -1
- package/es/icons/ChartBarLineIcon.js +1 -1
- package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBoxPlot2Icon.js +1 -1
- package/es/icons/ChartBoxPlotIcon.js +1 -1
- package/es/icons/ChartBubbleIcon.js +1 -1
- package/es/icons/ChartDonut2Icon.js +1 -1
- package/es/icons/ChartFunnelIcon.js +1 -1
- package/es/icons/ChartHeatmapIcon.js +1 -1
- package/es/icons/ChartKPIIcon.js +1 -1
- package/es/icons/ChartPie2Icon.js +1 -1
- package/es/icons/ChartScatterIcon.js +1 -1
- package/es/icons/CheckCircleFilledIcon.js +1 -1
- package/es/icons/CheckCircleIcon.js +1 -1
- package/es/icons/CheckIcon.js +1 -1
- package/es/icons/CircleFilledIcon.js +1 -1
- package/es/icons/ClearIcon.js +1 -1
- package/es/icons/CloseCircleFilledIcon.js +1 -1
- package/es/icons/CloseCircleIcon.js +1 -1
- package/es/icons/CloseIcon.js +1 -1
- package/es/icons/CodeIcon.js +1 -1
- package/es/icons/ColumnTotalIcon.js +1 -1
- package/es/icons/CopyIcon.js +1 -1
- package/es/icons/CountIcon.js +1 -1
- package/es/icons/CubeIcon.js +1 -1
- package/es/icons/CubePauseIcon.js +1 -1
- package/es/icons/CubePlayIcon.js +1 -1
- package/es/icons/CurrencyDollarIcon.js +1 -1
- package/es/icons/DangerIcon.js +1 -1
- package/es/icons/DashboardIcon.js +1 -1
- package/es/icons/DatabaseIcon.js +1 -1
- package/es/icons/DecimalDecreaseIcon.js +1 -1
- package/es/icons/DecimalIncreaseIcon.js +1 -1
- package/es/icons/DirectionIcon.js +1 -1
- package/es/icons/DonutIcon.js +1 -1
- package/es/icons/DownIcon.js +1 -1
- package/es/icons/EditIcon.js +1 -1
- package/es/icons/ExclamationCircleFilledIcon.js +1 -1
- package/es/icons/ExclamationCircleIcon.js +1 -1
- package/es/icons/ExclamationIcon.js +1 -1
- package/es/icons/EyeIcon.js +1 -1
- package/es/icons/EyeInvisibleIcon.js +1 -1
- package/es/icons/FilterIcon.js +1 -1
- package/es/icons/FolderFilledIcon.js +1 -1
- package/es/icons/FolderIcon.js +1 -1
- package/es/icons/FolderOpenFilledIcon.js +1 -1
- package/es/icons/FolderOpenIcon.js +1 -1
- package/es/icons/ForwardIcon.js +1 -1
- package/es/icons/HierarchyIcon.js +1 -1
- package/es/icons/HierarchyOpenIcon.js +1 -1
- package/es/icons/Icon.js +1 -1
- package/es/icons/InfoCircleIcon.js +1 -1
- package/es/icons/InfoIcon.js +1 -1
- package/es/icons/KeyIcon.js +1 -1
- package/es/icons/LeftIcon.js +1 -1
- package/es/icons/LineChartIcon.js +1 -1
- package/es/icons/LoadingIcon.js +1 -1
- package/es/icons/LockFilledIcon.js +1 -1
- package/es/icons/LockIcon.js +1 -1
- package/es/icons/MoreIcon.js +1 -1
- package/es/icons/NotAllowedIcon.js +1 -1
- package/es/icons/Number123Icon.js +1 -1
- package/es/icons/NumberIcon.js +1 -1
- package/es/icons/PauseCircleFilledIcon.js +1 -1
- package/es/icons/PauseCircleIcon.js +1 -1
- package/es/icons/PauseIcon.js +1 -1
- package/es/icons/PercentageIcon.js +1 -1
- package/es/icons/PieChartIcon.js +1 -1
- package/es/icons/PlayCircleIcon.js +1 -1
- package/es/icons/PlayIcon.js +1 -1
- package/es/icons/PlusIcon.js +1 -1
- package/es/icons/ProgressBarIcon.js +1 -1
- package/es/icons/ReloadIcon.js +1 -1
- package/es/icons/ReportIcon.js +1 -1
- package/es/icons/ReturnIcon.js +1 -1
- package/es/icons/RightIcon.js +1 -1
- package/es/icons/RowTotalsIcon.js +1 -1
- package/es/icons/SchemeIcon.js +1 -1
- package/es/icons/SearchIcon.js +1 -1
- package/es/icons/SettingsIcon.js +1 -1
- package/es/icons/ShieldFilledIcon.js +1 -1
- package/es/icons/ShieldIcon.js +1 -1
- package/es/icons/SlashIcon.js +1 -1
- package/es/icons/SparklesIcon.js +1 -1
- package/es/icons/SqlIcon.js +1 -1
- package/es/icons/StatsIcon.js +1 -1
- package/es/icons/StopIcon.js +1 -1
- package/es/icons/StringIcon.js +1 -1
- package/es/icons/SubtotalsIcon.js +1 -1
- package/es/icons/SwitchIcon.js +1 -1
- package/es/icons/TableIcon.js +1 -1
- package/es/icons/ThumbsDownIcon.js +1 -1
- package/es/icons/ThumbsUpIcon.js +1 -1
- package/es/icons/ThunderboltCrossedIcon.js +1 -1
- package/es/icons/ThunderboltFilledIcon.js +1 -1
- package/es/icons/ThunderboltIcon.js +1 -1
- package/es/icons/TimeIcon.js +1 -1
- package/es/icons/TrashIcon.js +1 -1
- package/es/icons/UnlockIcon.js +1 -1
- package/es/icons/UpIcon.js +1 -1
- package/es/icons/UserGroupIcon.js +1 -1
- package/es/icons/UserIcon.js +1 -1
- package/es/icons/UserLockIcon.js +1 -1
- package/es/icons/ViewIcon.js +1 -1
- package/es/icons/WarningFilledIcon.js +1 -1
- package/es/icons/WarningIcon.js +1 -1
- package/es/icons/add-new-icon.js +1 -1
- package/es/icons/index.js +1 -1
- package/es/icons/wrap-icon.js +1 -1
- package/es/index.js +2 -1
- package/es/provider.js +2 -8
- package/es/providers/TrackingProvider.js +1 -1
- package/es/providers/navigation.types.js +1 -1
- package/es/providers/navigationAdapter.default.js +1 -1
- package/es/services/notification.js +1 -1
- package/es/shared/form.js +1 -1
- package/es/shared/index.js +1 -1
- package/es/stories/Form.legacy-stories.js +1 -1
- package/es/stories/FormFieldArgs.js +1 -1
- package/es/stories/SimpleLayout.stories.js +1 -1
- package/es/stories/Tasty.stories.js +1 -1
- package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
- package/es/stories/components/DialogFormApp.js +1 -1
- package/es/stories/components/StyledButton.js +18 -14
- package/es/stories/lists/baseProps.js +1 -1
- package/es/tasty/chunks/cacheKey.js +98 -0
- package/es/tasty/chunks/definitions.js +280 -0
- package/es/tasty/chunks/index.js +12 -0
- package/es/tasty/chunks/renderChunk.js +97 -0
- package/es/tasty/config.js +244 -0
- package/es/tasty/debug.js +193 -7
- package/es/tasty/hooks/index.js +12 -0
- package/es/tasty/hooks/useGlobalStyles.js +67 -0
- package/es/tasty/hooks/useRawCSS.js +40 -0
- package/es/tasty/hooks/useStyles.js +146 -0
- package/es/tasty/index.js +18 -4
- package/es/tasty/injector/index.js +31 -87
- package/es/tasty/injector/injector.js +30 -279
- package/es/tasty/injector/sheet-manager.js +126 -2
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/parser/classify.js +5 -3
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +14 -1
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +2 -1
- package/es/tasty/pipeline/conditions.js +469 -0
- package/es/tasty/pipeline/exclusive.js +193 -0
- package/es/tasty/pipeline/index.js +515 -0
- package/es/tasty/pipeline/materialize.js +1001 -0
- package/es/tasty/pipeline/parseStateKey.js +565 -0
- package/es/tasty/pipeline/simplify.js +786 -0
- package/es/tasty/plugins/index.js +26 -0
- package/es/tasty/plugins/okhsl-plugin.js +400 -0
- package/es/tasty/plugins/types.js +10 -0
- package/es/tasty/states/index.js +515 -0
- package/es/tasty/static/index.js +47 -0
- package/es/tasty/static/tastyStatic.js +55 -0
- package/es/tasty/static/types.js +34 -0
- package/es/tasty/styles/align.js +1 -1
- package/es/tasty/styles/border.js +1 -1
- package/es/tasty/styles/boxShadow.combinator.js +1 -1
- package/es/tasty/styles/color.js +1 -1
- package/es/tasty/styles/createStyle.js +1 -1
- package/es/tasty/styles/dimension.js +1 -1
- package/es/tasty/styles/display.js +1 -1
- package/es/tasty/styles/fade.js +1 -1
- package/es/tasty/styles/fill.js +10 -20
- package/es/tasty/styles/flow.js +1 -1
- package/es/tasty/styles/font.js +1 -1
- package/es/tasty/styles/fontStyle.js +1 -1
- package/es/tasty/styles/gap.js +1 -1
- package/es/tasty/styles/groupRadius.js +1 -1
- package/es/tasty/styles/height.js +1 -1
- package/es/tasty/styles/index.js +1 -1
- package/es/tasty/styles/inset.js +1 -1
- package/es/tasty/styles/justify.js +1 -1
- package/es/tasty/styles/list.js +1 -1
- package/es/tasty/styles/margin.js +75 -55
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +75 -55
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +3 -2
- package/es/tasty/styles/preset.js +1 -1
- package/es/tasty/styles/radius.js +1 -1
- package/es/tasty/styles/reset.js +2 -6
- package/es/tasty/styles/scrollbar.js +1 -1
- package/es/tasty/styles/shadow.js +1 -1
- package/es/tasty/styles/styledScrollbar.js +1 -1
- package/es/tasty/styles/transition.js +1 -1
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +1 -1
- package/es/tasty/tasty.js +76 -117
- package/es/tasty/types.js +1 -1
- package/es/tasty/utils/cache-wrapper.js +1 -1
- package/es/tasty/utils/case-converter.js +1 -1
- package/es/tasty/utils/colors.js +1 -1
- package/es/tasty/utils/dotize.js +1 -1
- package/es/tasty/utils/filterBaseProps.js +1 -1
- package/es/tasty/utils/getDisplayName.js +1 -1
- package/es/tasty/utils/isDevEnv.js +1 -1
- package/es/tasty/utils/mergeStyles.js +2 -2
- package/es/tasty/utils/modAttrs.js +1 -1
- package/es/tasty/utils/processTokens.js +87 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +252 -19
- package/es/tasty/utils/typography.js +67 -0
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tasty/zero/babel.js +401 -0
- package/es/tasty/zero/css-writer.js +94 -0
- package/es/tasty/zero/extractor.js +75 -0
- package/es/tasty/zero/index.js +28 -0
- package/es/tasty/zero/next.js +102 -0
- package/es/tokens/base.js +64 -0
- package/es/tokens/colors.js +68 -0
- package/es/tokens/index.js +63 -0
- package/es/tokens/layout.js +26 -0
- package/es/tokens/shadows.js +27 -0
- package/es/tokens/sizes.js +42 -0
- package/es/tokens/spacing.js +22 -0
- package/es/tokens/typography.js +237 -0
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/index.js +1 -1
- package/es/utils/modules.js +1 -1
- package/es/utils/promise.js +1 -1
- package/es/utils/raf.js +1 -1
- package/es/utils/random.js +1 -1
- package/es/utils/range.js +1 -1
- package/es/utils/react/RenderCache.js +1 -1
- package/es/utils/react/Slots.js +1 -1
- package/es/utils/react/chain.js +1 -1
- package/es/utils/react/forwardRefWithGenerics.js +1 -1
- package/es/utils/react/index.js +1 -1
- package/es/utils/react/interactions.js +1 -1
- package/es/utils/react/isTextOnly.js +1 -1
- package/es/utils/react/mapProps.js +1 -1
- package/es/utils/react/mergeProps.js +1 -1
- package/es/utils/react/nullableValue.js +1 -1
- package/es/utils/react/resolveIcon.js +1 -1
- package/es/utils/react/sharedStore.js +1 -1
- package/es/utils/react/useCombinedRefs.js +1 -1
- package/es/utils/react/useControlledFocusVisible.js +1 -1
- package/es/utils/react/useEventBus.js +1 -1
- package/es/utils/react/useId.js +1 -1
- package/es/utils/react/useIsDarwin.js +1 -1
- package/es/utils/react/useKeySymbols.js +1 -1
- package/es/utils/react/useLayoutEffect.js +1 -1
- package/es/utils/react/useLocalStorage.js +1 -1
- package/es/utils/react/useQaProps.js +1 -1
- package/es/utils/react/useViewportSize.js +1 -1
- package/es/utils/react/wrapNodeIfPlain.js +1 -1
- package/es/utils/tree.js +1 -1
- package/es/utils/warnings.js +1 -1
- package/es/version.js +2 -2
- package/package.json +3 -1
- package/types/components/GlobalStyles.d.ts +2 -1
- package/types/components/HiddenInput.d.ts +827 -826
- package/types/components/Root.d.ts +1 -0
- package/types/components/actions/Button/Button.d.ts +1647 -1645
- package/types/components/actions/CommandMenu/styled.d.ts +4135 -4130
- package/types/components/actions/Menu/styled.d.ts +4384 -4379
- package/types/components/actions/use-action.d.ts +1 -1
- package/types/components/content/List/SectionHeading.d.ts +83 -83
- package/types/components/content/Text.d.ts +311 -311
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +83 -83
- package/types/components/fields/Select/Select.d.ts +827 -826
- package/types/components/fields/Slider/elements.d.ts +4962 -4956
- package/types/index.d.ts +1 -0
- package/types/provider.d.ts +1 -2
- package/types/stories/components/StyledButton.d.ts +1 -1
- package/types/tasty/chunks/cacheKey.d.ts +26 -0
- package/types/tasty/chunks/definitions.d.ts +75 -0
- package/types/tasty/chunks/index.d.ts +4 -0
- package/types/tasty/chunks/renderChunk.d.ts +25 -0
- package/types/tasty/config.d.ts +145 -0
- package/types/tasty/debug.d.ts +35 -0
- package/types/tasty/hooks/index.d.ts +4 -0
- package/types/tasty/hooks/useGlobalStyles.d.ts +22 -0
- package/types/tasty/hooks/useRawCSS.d.ts +50 -0
- package/types/tasty/hooks/useStyles.d.ts +38 -0
- package/types/tasty/index.d.ts +14 -4
- package/types/tasty/injector/index.d.ts +30 -19
- package/types/tasty/injector/injector.d.ts +13 -13
- package/types/tasty/injector/sheet-manager.d.ts +25 -1
- package/types/tasty/injector/types.d.ts +20 -1
- package/types/tasty/parser/parser.d.ts +4 -0
- package/types/tasty/parser/types.d.ts +1 -0
- package/types/tasty/pipeline/conditions.d.ts +248 -0
- package/types/tasty/pipeline/exclusive.d.ts +78 -0
- package/types/tasty/pipeline/index.d.ts +67 -0
- package/types/tasty/pipeline/materialize.d.ts +115 -0
- package/types/tasty/pipeline/parseStateKey.d.ts +20 -0
- package/types/tasty/pipeline/simplify.d.ts +28 -0
- package/types/tasty/plugins/index.d.ts +17 -0
- package/types/tasty/plugins/okhsl-plugin.d.ts +45 -0
- package/types/tasty/plugins/types.d.ts +34 -0
- package/types/tasty/states/index.d.ts +101 -0
- package/types/tasty/static/index.d.ts +39 -0
- package/types/tasty/static/tastyStatic.d.ts +41 -0
- package/types/tasty/static/types.d.ts +44 -0
- package/types/tasty/styles/fill.d.ts +11 -1
- package/types/tasty/styles/margin.d.ts +3 -1
- package/types/tasty/styles/padding.d.ts +3 -1
- package/types/tasty/styles/types.d.ts +13 -3
- package/types/tasty/tasty.d.ts +891 -840
- package/types/tasty/utils/styles.d.ts +50 -6
- package/types/tasty/utils/typography.d.ts +32 -0
- package/types/tasty/zero/babel.d.ts +56 -0
- package/types/tasty/zero/css-writer.d.ts +41 -0
- package/types/tasty/zero/extractor.d.ts +19 -0
- package/types/tasty/zero/index.d.ts +18 -0
- package/types/tasty/zero/next.d.ts +57 -0
- package/types/tokens/base.d.ts +8 -0
- package/types/tokens/colors.d.ts +6 -0
- package/types/tokens/index.d.ts +41 -0
- package/types/tokens/layout.d.ts +7 -0
- package/types/tokens/shadows.d.ts +12 -0
- package/types/tokens/sizes.d.ts +25 -0
- package/types/tokens/spacing.d.ts +8 -0
- package/types/tokens/typography.d.ts +30 -0
- package/es/tasty/providers/BreakpointsProvider.js +0 -16
- package/es/tasty/utils/getModCombinations.js +0 -38
- package/es/tasty/utils/renderStyles.js +0 -1050
- package/es/tasty/utils/responsive.js +0 -60
- package/es/tokens.js +0 -309
- package/types/tasty/providers/BreakpointsProvider.d.ts +0 -8
- package/types/tasty/utils/getModCombinations.d.ts +0 -9
- package/types/tasty/utils/renderStyles.d.ts +0 -41
- package/types/tasty/utils/responsive.d.ts +0 -8
- package/types/tokens.d.ts +0 -221
|
@@ -1,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;
|
|
@@ -85,7 +91,7 @@ export interface RootRegistry {
|
|
|
85
91
|
/** Global rules tracking for index adjustment */
|
|
86
92
|
globalRules: Map<string, RuleInfo>;
|
|
87
93
|
}
|
|
88
|
-
export type StyleRule = import('../
|
|
94
|
+
export type StyleRule = import('../pipeline').StyleResult;
|
|
89
95
|
export interface KeyframesInfo {
|
|
90
96
|
name: string;
|
|
91
97
|
sheetIndex: number;
|
|
@@ -104,3 +110,16 @@ export interface KeyframesCacheEntry {
|
|
|
104
110
|
refCount: number;
|
|
105
111
|
info: KeyframesInfo;
|
|
106
112
|
}
|
|
113
|
+
export interface RawCSSInfo {
|
|
114
|
+
/** Unique identifier for this raw CSS block */
|
|
115
|
+
id: string;
|
|
116
|
+
/** The raw CSS text */
|
|
117
|
+
css: string;
|
|
118
|
+
/** Start offset in the style element's textContent */
|
|
119
|
+
startOffset: number;
|
|
120
|
+
/** End offset in the style element's textContent */
|
|
121
|
+
endOffset: number;
|
|
122
|
+
}
|
|
123
|
+
export interface RawCSSResult {
|
|
124
|
+
dispose: () => void;
|
|
125
|
+
}
|
|
@@ -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,248 @@
|
|
|
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
|
+
* Union of all state condition types
|
|
88
|
+
*/
|
|
89
|
+
export type StateCondition = ModifierCondition | PseudoCondition | MediaCondition | ContainerCondition | RootCondition | OwnCondition | StartingCondition;
|
|
90
|
+
/**
|
|
91
|
+
* Compound node: combines conditions with AND/OR
|
|
92
|
+
*/
|
|
93
|
+
export interface CompoundCondition {
|
|
94
|
+
kind: 'compound';
|
|
95
|
+
operator: 'AND' | 'OR';
|
|
96
|
+
children: ConditionNode[];
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* True condition (matches everything)
|
|
100
|
+
*/
|
|
101
|
+
export interface TrueCondition {
|
|
102
|
+
kind: 'true';
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* False condition (matches nothing - skip this rule)
|
|
106
|
+
*/
|
|
107
|
+
export interface FalseCondition {
|
|
108
|
+
kind: 'false';
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Union of all condition node types
|
|
112
|
+
*/
|
|
113
|
+
export type ConditionNode = StateCondition | CompoundCondition | TrueCondition | FalseCondition;
|
|
114
|
+
/**
|
|
115
|
+
* Create a TRUE condition (matches everything)
|
|
116
|
+
*/
|
|
117
|
+
export declare function trueCondition(): TrueCondition;
|
|
118
|
+
/**
|
|
119
|
+
* Create a FALSE condition (matches nothing)
|
|
120
|
+
*/
|
|
121
|
+
export declare function falseCondition(): FalseCondition;
|
|
122
|
+
/**
|
|
123
|
+
* Create an AND compound condition
|
|
124
|
+
*/
|
|
125
|
+
export declare function and(...children: ConditionNode[]): ConditionNode;
|
|
126
|
+
/**
|
|
127
|
+
* Create an OR compound condition
|
|
128
|
+
*/
|
|
129
|
+
export declare function or(...children: ConditionNode[]): ConditionNode;
|
|
130
|
+
/**
|
|
131
|
+
* Negate a condition
|
|
132
|
+
*/
|
|
133
|
+
export declare function not(node: ConditionNode): ConditionNode;
|
|
134
|
+
/**
|
|
135
|
+
* Check if a condition is a state condition
|
|
136
|
+
*/
|
|
137
|
+
export declare function isStateCondition(node: ConditionNode): node is StateCondition;
|
|
138
|
+
/**
|
|
139
|
+
* Check if a condition is a compound condition
|
|
140
|
+
*/
|
|
141
|
+
export declare function isCompoundCondition(node: ConditionNode): node is CompoundCondition;
|
|
142
|
+
/**
|
|
143
|
+
* Check if a condition is TRUE
|
|
144
|
+
*/
|
|
145
|
+
export declare function isTrueCondition(node: ConditionNode): node is TrueCondition;
|
|
146
|
+
/**
|
|
147
|
+
* Check if a condition is FALSE
|
|
148
|
+
*/
|
|
149
|
+
export declare function isFalseCondition(node: ConditionNode): node is FalseCondition;
|
|
150
|
+
/**
|
|
151
|
+
* Generate a normalized unique ID for a modifier condition
|
|
152
|
+
*/
|
|
153
|
+
export declare function modifierUniqueId(attribute: string, value?: string, operator?: string, negated?: boolean): string;
|
|
154
|
+
/**
|
|
155
|
+
* Generate a normalized unique ID for a pseudo condition
|
|
156
|
+
*/
|
|
157
|
+
export declare function pseudoUniqueId(pseudo: string, negated?: boolean): string;
|
|
158
|
+
/**
|
|
159
|
+
* Generate a normalized unique ID for a media condition
|
|
160
|
+
*/
|
|
161
|
+
export declare function mediaUniqueId(subtype: 'dimension' | 'feature' | 'type', props: {
|
|
162
|
+
dimension?: string;
|
|
163
|
+
lowerBound?: NumericBound;
|
|
164
|
+
upperBound?: NumericBound;
|
|
165
|
+
feature?: string;
|
|
166
|
+
featureValue?: string;
|
|
167
|
+
mediaType?: string;
|
|
168
|
+
}, negated?: boolean): string;
|
|
169
|
+
/**
|
|
170
|
+
* Generate a normalized unique ID for a container condition
|
|
171
|
+
*/
|
|
172
|
+
export declare function containerUniqueId(subtype: 'dimension' | 'style', props: {
|
|
173
|
+
containerName?: string;
|
|
174
|
+
dimension?: string;
|
|
175
|
+
lowerBound?: NumericBound;
|
|
176
|
+
upperBound?: NumericBound;
|
|
177
|
+
property?: string;
|
|
178
|
+
propertyValue?: string;
|
|
179
|
+
}, negated?: boolean): string;
|
|
180
|
+
/**
|
|
181
|
+
* Generate a normalized unique ID for a root condition
|
|
182
|
+
*/
|
|
183
|
+
export declare function rootUniqueId(selector: string, negated?: boolean): string;
|
|
184
|
+
/**
|
|
185
|
+
* Generate a normalized unique ID for an own condition
|
|
186
|
+
*/
|
|
187
|
+
export declare function ownUniqueId(innerUniqueId: string, negated?: boolean): string;
|
|
188
|
+
/**
|
|
189
|
+
* Generate a normalized unique ID for a starting condition
|
|
190
|
+
*/
|
|
191
|
+
export declare function startingUniqueId(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
|
+
* Get the unique ID for any condition node
|
|
234
|
+
*/
|
|
235
|
+
export declare function getConditionUniqueId(node: ConditionNode): string;
|
|
236
|
+
/**
|
|
237
|
+
* Check if two conditions are equal based on their unique IDs
|
|
238
|
+
*/
|
|
239
|
+
export declare function conditionsEqual(a: ConditionNode, b: ConditionNode): boolean;
|
|
240
|
+
/**
|
|
241
|
+
* Get all state conditions from a condition tree (flattened)
|
|
242
|
+
*/
|
|
243
|
+
export declare function getAllStateConditions(node: ConditionNode): StateCondition[];
|
|
244
|
+
/**
|
|
245
|
+
* Clone a condition node (deep copy)
|
|
246
|
+
*/
|
|
247
|
+
export declare function cloneCondition(node: ConditionNode): ConditionNode;
|
|
248
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
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[];
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tasty Style Rendering Pipeline
|
|
3
|
+
*
|
|
4
|
+
* This is the main entrypoint for the new pipeline implementation.
|
|
5
|
+
* It implements the complete flow from style objects to CSS rules.
|
|
6
|
+
*
|
|
7
|
+
* Pipeline stages:
|
|
8
|
+
* 1. PARSE CONDITIONS - Parse state keys into ConditionNode trees
|
|
9
|
+
* 2. BUILD EXCLUSIVE CONDITIONS - AND with negation of higher-priority conditions
|
|
10
|
+
* 3. SIMPLIFY CONDITIONS - Apply boolean algebra, detect contradictions
|
|
11
|
+
* 4. GROUP BY HANDLER - Collect styles per handler, compute combinations
|
|
12
|
+
* 5. COMPUTE CSS VALUES - Call handlers to get CSS declarations
|
|
13
|
+
* 6. MERGE BY VALUE - Merge rules with identical CSS output
|
|
14
|
+
* 7. MATERIALIZE CSS - Convert conditions to CSS selectors + at-rules
|
|
15
|
+
*/
|
|
16
|
+
import { Styles } from '../styles/types';
|
|
17
|
+
import { CSSRule } from './materialize';
|
|
18
|
+
/**
|
|
19
|
+
* Matches the old StyleResult interface for backward compatibility
|
|
20
|
+
*/
|
|
21
|
+
export interface StyleResult {
|
|
22
|
+
selector: string;
|
|
23
|
+
declarations: string;
|
|
24
|
+
atRules?: string[];
|
|
25
|
+
needsClassName?: boolean;
|
|
26
|
+
rootPrefix?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Matches the old RenderResult interface for backward compatibility
|
|
30
|
+
*/
|
|
31
|
+
export interface RenderResult {
|
|
32
|
+
rules: StyleResult[];
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface PipelineResult {
|
|
36
|
+
rules: CSSRule[];
|
|
37
|
+
className?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Render styles using the new pipeline.
|
|
41
|
+
*
|
|
42
|
+
* This is the main entrypoint that implements the complete flow.
|
|
43
|
+
*/
|
|
44
|
+
export declare function renderStylesPipeline(styles?: Styles, className?: string): PipelineResult;
|
|
45
|
+
/**
|
|
46
|
+
* Clear the pipeline cache (for testing)
|
|
47
|
+
*/
|
|
48
|
+
export declare function clearPipelineCache(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Check if a key is a CSS selector
|
|
51
|
+
*/
|
|
52
|
+
export declare function isSelector(key: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Render styles to CSS rules.
|
|
55
|
+
*
|
|
56
|
+
* When called without classNameOrSelector, returns RenderResult with needsClassName=true.
|
|
57
|
+
* When called with a selector/className string, returns StyleResult[] for direct injection.
|
|
58
|
+
*/
|
|
59
|
+
export declare function renderStyles(styles?: Styles): RenderResult;
|
|
60
|
+
export declare function renderStyles(styles: Styles | undefined, classNameOrSelector: string): StyleResult[];
|
|
61
|
+
export type { ConditionNode } from './conditions';
|
|
62
|
+
export { and, or, not, trueCondition, falseCondition } from './conditions';
|
|
63
|
+
export { parseStateKey } from './parseStateKey';
|
|
64
|
+
export { simplifyCondition } from './simplify';
|
|
65
|
+
export { buildExclusiveConditions } from './exclusive';
|
|
66
|
+
export { conditionToCSS } from './materialize';
|
|
67
|
+
export type { CSSRule } from './materialize';
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS Materialization
|
|
3
|
+
*
|
|
4
|
+
* Converts condition trees into CSS selectors and at-rules.
|
|
5
|
+
* This is the final stage that produces actual CSS output.
|
|
6
|
+
*/
|
|
7
|
+
import { ConditionNode } from './conditions';
|
|
8
|
+
/**
|
|
9
|
+
* Parsed media condition for structured analysis and combination
|
|
10
|
+
*/
|
|
11
|
+
export interface ParsedMediaCondition {
|
|
12
|
+
/** Subtype for structured analysis */
|
|
13
|
+
subtype: 'dimension' | 'feature' | 'type';
|
|
14
|
+
/** Whether this is a negated condition */
|
|
15
|
+
negated: boolean;
|
|
16
|
+
/** The condition part for CSS output (e.g., "(width < 600px)", "print") */
|
|
17
|
+
condition: string;
|
|
18
|
+
/** For dimension queries: dimension name */
|
|
19
|
+
dimension?: 'width' | 'height' | 'inline-size' | 'block-size';
|
|
20
|
+
/** For dimension queries: lower bound value */
|
|
21
|
+
lowerBound?: {
|
|
22
|
+
value: string;
|
|
23
|
+
valueNumeric: number | null;
|
|
24
|
+
inclusive: boolean;
|
|
25
|
+
};
|
|
26
|
+
/** For dimension queries: upper bound value */
|
|
27
|
+
upperBound?: {
|
|
28
|
+
value: string;
|
|
29
|
+
valueNumeric: number | null;
|
|
30
|
+
inclusive: boolean;
|
|
31
|
+
};
|
|
32
|
+
/** For feature queries: feature name */
|
|
33
|
+
feature?: string;
|
|
34
|
+
/** For feature queries: feature value */
|
|
35
|
+
featureValue?: string;
|
|
36
|
+
/** For type queries: media type */
|
|
37
|
+
mediaType?: 'print' | 'screen' | 'all' | 'speech';
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Parsed container condition for structured analysis and combination
|
|
41
|
+
*/
|
|
42
|
+
export interface ParsedContainerCondition {
|
|
43
|
+
/** Container name (undefined = unnamed/nearest container) */
|
|
44
|
+
name?: string;
|
|
45
|
+
/** The condition part (e.g., "(width < 600px)" or "style(--variant: danger)") */
|
|
46
|
+
condition: string;
|
|
47
|
+
/** Whether this is a negated condition */
|
|
48
|
+
negated: boolean;
|
|
49
|
+
/** Subtype for structured analysis */
|
|
50
|
+
subtype: 'dimension' | 'style';
|
|
51
|
+
/** For style queries: property name (without --) */
|
|
52
|
+
property?: string;
|
|
53
|
+
/** For style queries: property value (undefined = existence check) */
|
|
54
|
+
propertyValue?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A single selector variant (one term in a DNF expression)
|
|
58
|
+
*/
|
|
59
|
+
export interface SelectorVariant {
|
|
60
|
+
/** Attribute/pseudo selectors to add to element selector (e.g., '[data-hovered]', ':not([data-disabled])') */
|
|
61
|
+
modifierSelectors: string[];
|
|
62
|
+
/** Selector suffixes for @own states (applied to sub-element) */
|
|
63
|
+
ownSelectors: string[];
|
|
64
|
+
/** Parsed media conditions for structured combination */
|
|
65
|
+
mediaConditions: ParsedMediaCondition[];
|
|
66
|
+
/** Parsed container conditions for structured combination */
|
|
67
|
+
containerConditions: ParsedContainerCondition[];
|
|
68
|
+
/** Root state prefix (e.g., ':root[data-theme="dark"]') */
|
|
69
|
+
rootPrefix?: string;
|
|
70
|
+
/** Whether to wrap in @starting-style */
|
|
71
|
+
startingStyle: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* CSS output components extracted from a condition
|
|
75
|
+
* Supports multiple variants for OR conditions (DNF form)
|
|
76
|
+
*/
|
|
77
|
+
export interface CSSComponents {
|
|
78
|
+
/** Selector variants - OR means multiple variants, AND means single variant with combined selectors */
|
|
79
|
+
variants: SelectorVariant[];
|
|
80
|
+
/** Whether condition is impossible (should skip) */
|
|
81
|
+
isImpossible: boolean;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Final CSS rule output
|
|
85
|
+
*/
|
|
86
|
+
export interface CSSRule {
|
|
87
|
+
/** Single selector or array of selector fragments (for OR conditions) */
|
|
88
|
+
selector: string | string[];
|
|
89
|
+
declarations: string;
|
|
90
|
+
atRules?: string[];
|
|
91
|
+
rootPrefix?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Convert a condition tree to CSS components
|
|
95
|
+
*/
|
|
96
|
+
export declare function conditionToCSS(node: ConditionNode): CSSComponents;
|
|
97
|
+
/**
|
|
98
|
+
* Clear the condition cache (for testing)
|
|
99
|
+
*/
|
|
100
|
+
export declare function clearConditionCache(): void;
|
|
101
|
+
/**
|
|
102
|
+
* Build a complete CSS selector from a single variant
|
|
103
|
+
*/
|
|
104
|
+
export declare function buildCSSSelectorFromVariant(className: string, variant: SelectorVariant, selectorSuffix?: string): string;
|
|
105
|
+
/**
|
|
106
|
+
* Build at-rules array from a variant
|
|
107
|
+
*/
|
|
108
|
+
export declare function buildAtRulesFromVariant(variant: SelectorVariant): string[];
|
|
109
|
+
/**
|
|
110
|
+
* Materialize a computed rule into final CSS format
|
|
111
|
+
*
|
|
112
|
+
* Returns an array of CSSRules because OR conditions may require multiple rules
|
|
113
|
+
* (when different branches have different at-rules)
|
|
114
|
+
*/
|
|
115
|
+
export declare function materializeRule(condition: ConditionNode, declarations: Record<string, string>, selectorSuffix: string, className: string): CSSRule[];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Key Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses state notation strings (like 'hovered & !disabled', '@media(w < 768px)')
|
|
5
|
+
* into ConditionNode trees for processing in the pipeline.
|
|
6
|
+
*/
|
|
7
|
+
import { StateParserContext } from '../states';
|
|
8
|
+
import { ConditionNode } from './conditions';
|
|
9
|
+
export interface ParseStateKeyOptions {
|
|
10
|
+
context?: StateParserContext;
|
|
11
|
+
isSubElement?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Parse a state key string into a ConditionNode
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseStateKey(stateKey: string, options?: ParseStateKeyOptions): ConditionNode;
|
|
17
|
+
/**
|
|
18
|
+
* Clear the parse cache (for testing)
|
|
19
|
+
*/
|
|
20
|
+
export declare function clearParseCache(): void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Condition Simplification Engine
|
|
3
|
+
*
|
|
4
|
+
* Simplifies condition trees by applying boolean algebra rules,
|
|
5
|
+
* detecting contradictions, merging ranges, and deduplicating terms.
|
|
6
|
+
*
|
|
7
|
+
* This is critical for:
|
|
8
|
+
* 1. Detecting invalid combinations (A & !A → FALSE)
|
|
9
|
+
* 2. Reducing CSS output size
|
|
10
|
+
* 3. Producing cleaner selectors
|
|
11
|
+
*/
|
|
12
|
+
import { ConditionNode } from './conditions';
|
|
13
|
+
/**
|
|
14
|
+
* Simplify a condition tree aggressively.
|
|
15
|
+
*
|
|
16
|
+
* This applies all possible simplification rules:
|
|
17
|
+
* - Boolean algebra (identity, annihilator, idempotent, absorption)
|
|
18
|
+
* - Contradiction detection (A & !A → FALSE)
|
|
19
|
+
* - Tautology detection (A | !A → TRUE)
|
|
20
|
+
* - Range intersection for numeric queries
|
|
21
|
+
* - Attribute value conflict detection
|
|
22
|
+
* - Deduplication and sorting
|
|
23
|
+
*/
|
|
24
|
+
export declare function simplifyCondition(node: ConditionNode): ConditionNode;
|
|
25
|
+
/**
|
|
26
|
+
* Clear the simplify cache (for testing)
|
|
27
|
+
*/
|
|
28
|
+
export declare function clearSimplifyCache(): void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tasty Plugins
|
|
3
|
+
*
|
|
4
|
+
* This module exports official tasty plugins that extend the style system.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { configure } from '@cube-dev/ui-kit';
|
|
9
|
+
* import { okhslPlugin } from '@cube-dev/ui-kit/tasty/plugins';
|
|
10
|
+
*
|
|
11
|
+
* configure({
|
|
12
|
+
* plugins: [okhslPlugin()],
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export type { TastyPlugin, TastyPluginFactory } from './types';
|
|
17
|
+
export { okhslPlugin, okhslFunc } from './okhsl-plugin';
|