@cube-dev/ui-kit 0.0.0-canary-9ec284f → 0.0.0-canary-949985c
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 +1 -1
- package/es/components/GridProvider.js +1 -1
- package/es/components/HiddenInput.js +1 -1
- package/es/components/OpenTrasition.js +1 -1
- package/es/components/Root.js +1 -1
- package/es/components/actions/Action/Action.js +1 -1
- package/es/components/actions/Button/Button.js +1 -1
- package/es/components/actions/Button/index.js +1 -1
- package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/es/components/actions/CommandMenu/index.js +1 -1
- package/es/components/actions/CommandMenu/styled.js +1 -1
- package/es/components/actions/ItemAction/ItemAction.js +1 -1
- package/es/components/actions/ItemAction/index.js +1 -1
- package/es/components/actions/ItemActionContext.js +1 -1
- package/es/components/actions/ItemButton/ItemButton.js +1 -1
- package/es/components/actions/ItemButton/index.js +1 -1
- package/es/components/actions/Link/Link.js +1 -1
- package/es/components/actions/Menu/Menu.js +1 -1
- package/es/components/actions/Menu/MenuItem.js +1 -1
- package/es/components/actions/Menu/MenuSection.js +1 -1
- package/es/components/actions/Menu/MenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/es/components/actions/Menu/context.js +1 -1
- package/es/components/actions/Menu/index.js +1 -1
- package/es/components/actions/Menu/styled.js +1 -1
- package/es/components/actions/index.js +1 -1
- package/es/components/actions/use-action.js +1 -1
- package/es/components/actions/use-anchored-menu.js +1 -1
- package/es/components/actions/use-context-menu.js +1 -1
- package/es/components/content/ActiveZone/ActiveZone.js +1 -1
- package/es/components/content/Alert/Alert.js +1 -1
- package/es/components/content/Alert/index.js +1 -1
- package/es/components/content/Alert/types.js +1 -1
- package/es/components/content/Alert/use-alert.js +1 -1
- package/es/components/content/Avatar/Avatar.js +1 -1
- package/es/components/content/Badge/Badge.js +1 -1
- package/es/components/content/Card/Card.js +1 -1
- package/es/components/content/Content.js +1 -1
- package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/es/components/content/CopyPasteBlock/index.js +1 -1
- package/es/components/content/CopySnippet/CopySnippet.js +1 -1
- package/es/components/content/CopySnippet/index.js +1 -1
- package/es/components/content/Disclosure/Disclosure.js +1 -1
- package/es/components/content/Disclosure/index.js +1 -1
- package/es/components/content/Divider.js +1 -1
- package/es/components/content/Footer.js +1 -1
- package/es/components/content/Header.js +1 -1
- package/es/components/content/HotKeys/HotKeys.js +1 -1
- package/es/components/content/HotKeys/index.js +1 -1
- package/es/components/content/Item/Item.js +1 -1
- package/es/components/content/Item/index.js +1 -1
- package/es/components/content/ItemBadge/ItemBadge.js +1 -1
- package/es/components/content/ItemBadge/index.js +1 -1
- package/es/components/content/Layout/GridLayout.js +1 -1
- package/es/components/content/Layout/Layout.js +1 -1
- package/es/components/content/Layout/LayoutBlock.js +1 -1
- package/es/components/content/Layout/LayoutCenter.js +1 -1
- package/es/components/content/Layout/LayoutContainer.js +1 -1
- package/es/components/content/Layout/LayoutContent.js +1 -1
- package/es/components/content/Layout/LayoutContext.js +1 -1
- package/es/components/content/Layout/LayoutFlex.js +1 -1
- package/es/components/content/Layout/LayoutFooter.js +1 -1
- package/es/components/content/Layout/LayoutGrid.js +1 -1
- package/es/components/content/Layout/LayoutHeader.js +1 -1
- package/es/components/content/Layout/LayoutPane.js +1 -1
- package/es/components/content/Layout/LayoutPanel.js +1 -1
- package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/es/components/content/Layout/LayoutToolbar.js +1 -1
- package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/es/components/content/Layout/index.js +1 -1
- package/es/components/content/Layout/utils.js +1 -1
- package/es/components/content/List/SectionHeading.js +1 -1
- package/es/components/content/List/index.js +1 -1
- package/es/components/content/Paragraph.js +1 -1
- package/es/components/content/Placeholder/Placeholder.js +1 -1
- package/es/components/content/PrismCode/PrismCode.js +1 -1
- package/es/components/content/PrismCode/prismSetup.js +1 -1
- package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/es/components/content/Result/Result.js +1 -1
- package/es/components/content/Skeleton/Skeleton.js +1 -1
- package/es/components/content/Tag/Tag.js +1 -1
- package/es/components/content/Text.js +1 -1
- package/es/components/content/TextItem/TextItem.js +1 -1
- package/es/components/content/TextItem/index.js +1 -1
- package/es/components/content/Title.js +1 -1
- package/es/components/content/highlightText.js +1 -1
- package/es/components/content/use-auto-tooltip.js +1 -1
- package/es/components/fields/Checkbox/Checkbox.js +1 -1
- package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/es/components/fields/Checkbox/context.js +1 -1
- package/es/components/fields/Checkbox/index.js +1 -1
- package/es/components/fields/ComboBox/ComboBox.js +1 -1
- package/es/components/fields/ComboBox/index.js +1 -1
- package/es/components/fields/DatePicker/DateInput.js +1 -1
- package/es/components/fields/DatePicker/DateInputBase.js +1 -1
- package/es/components/fields/DatePicker/DatePicker.js +1 -1
- package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/es/components/fields/DatePicker/TimeInput.js +1 -1
- package/es/components/fields/DatePicker/index.js +1 -1
- package/es/components/fields/DatePicker/intl.js +1 -1
- package/es/components/fields/DatePicker/parseDate.js +1 -1
- package/es/components/fields/DatePicker/props.js +1 -1
- package/es/components/fields/DatePicker/types.js +1 -1
- package/es/components/fields/DatePicker/utils.js +1 -1
- package/es/components/fields/FileInput/FileInput.js +1 -1
- package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/es/components/fields/FilterListBox/index.js +1 -1
- package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/es/components/fields/FilterPicker/index.js +1 -1
- package/es/components/fields/Input/Input.js +1 -1
- package/es/components/fields/Input/index.js +1 -1
- package/es/components/fields/ListBox/ListBox.js +1 -1
- package/es/components/fields/ListBox/index.js +1 -1
- package/es/components/fields/NumberInput/NumberInput.js +1 -1
- package/es/components/fields/NumberInput/StepButton.js +1 -1
- package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/es/components/fields/Picker/Picker.js +1 -1
- package/es/components/fields/Picker/index.js +1 -1
- package/es/components/fields/RadioGroup/Radio.js +1 -1
- package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/es/components/fields/RadioGroup/context.js +1 -1
- package/es/components/fields/RadioGroup/index.js +1 -1
- package/es/components/fields/SearchInput/SearchInput.js +1 -1
- package/es/components/fields/SearchInput/index.js +1 -1
- package/es/components/fields/Select/Select.js +1 -1
- package/es/components/fields/Select/index.js +1 -1
- package/es/components/fields/Slider/Gradation.js +1 -1
- package/es/components/fields/Slider/Header.js +1 -1
- package/es/components/fields/Slider/RangeSlider.js +1 -1
- package/es/components/fields/Slider/Slider.js +1 -1
- package/es/components/fields/Slider/SliderBase.js +1 -1
- package/es/components/fields/Slider/SliderInput.js +1 -1
- package/es/components/fields/Slider/SliderThumb.js +1 -1
- package/es/components/fields/Slider/SliderTrack.js +1 -1
- package/es/components/fields/Slider/elements.js +1 -1
- package/es/components/fields/Slider/index.js +1 -1
- package/es/components/fields/Slider/types.js +1 -1
- package/es/components/fields/Switch/Switch.js +1 -1
- package/es/components/fields/Switch/index.js +1 -1
- package/es/components/fields/TextArea/TextArea.js +1 -1
- package/es/components/fields/TextArea/index.js +1 -1
- package/es/components/fields/TextInput/TextInput.js +1 -1
- package/es/components/fields/TextInput/TextInputBase.js +1 -1
- package/es/components/fields/TextInput/index.js +1 -1
- package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/es/components/fields/TextInputMapper/index.js +1 -1
- package/es/components/fields/index.js +1 -1
- package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
- package/es/components/form/FieldWrapper/index.js +1 -1
- package/es/components/form/FieldWrapper/types.js +1 -1
- package/es/components/form/Form/Field.js +1 -1
- package/es/components/form/Form/Form.js +1 -1
- package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/es/components/form/Form/ResetButton/index.js +1 -1
- package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/es/components/form/Form/SubmitButton/index.js +1 -1
- package/es/components/form/Form/SubmitError.js +1 -1
- package/es/components/form/Form/index.js +1 -1
- package/es/components/form/Form/types.js +1 -1
- package/es/components/form/Form/use-field/index.js +1 -1
- package/es/components/form/Form/use-field/types.js +1 -1
- package/es/components/form/Form/use-field/use-field-props.js +1 -1
- package/es/components/form/Form/use-field/use-field.js +1 -1
- package/es/components/form/Form/use-form.js +1 -1
- package/es/components/form/Form/validation.js +1 -1
- package/es/components/form/Label.js +1 -1
- package/es/components/form/index.js +1 -1
- package/es/components/form/wrapper.js +1 -1
- package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/es/components/helpers/DisplayTransition/index.js +1 -1
- package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/es/components/helpers/index.js +1 -1
- package/es/components/layout/Flex.js +1 -1
- package/es/components/layout/Flow.js +1 -1
- package/es/components/layout/Grid.js +1 -1
- package/es/components/layout/Panel.js +1 -1
- package/es/components/layout/Prefix.js +1 -1
- package/es/components/layout/ResizablePanel.js +1 -1
- package/es/components/layout/Space.js +1 -1
- package/es/components/layout/Suffix.js +1 -1
- package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
- package/es/components/organisms/FileTabs/FileTabs.js +1 -1
- package/es/components/organisms/StatsCard/StatsCard.js +1 -1
- package/es/components/other/Base64Upload/Base64Upload.js +1 -1
- package/es/components/other/Calendar/Calendar.js +1 -1
- package/es/components/other/Calendar/CalendarCell.js +1 -1
- package/es/components/other/Calendar/CalendarGrid.js +1 -1
- package/es/components/other/Calendar/RangeCalendar.js +1 -1
- package/es/components/other/CloudLogo/CloudLogo.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/es/components/overlays/AlertDialog/index.js +1 -1
- package/es/components/overlays/AlertDialog/types.js +1 -1
- package/es/components/overlays/Dialog/Dialog.js +1 -1
- package/es/components/overlays/Dialog/DialogContainer.js +1 -1
- package/es/components/overlays/Dialog/DialogForm.js +1 -1
- package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/es/components/overlays/Dialog/context.js +1 -1
- package/es/components/overlays/Dialog/index.js +1 -1
- package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/es/components/overlays/Modal/Modal.js +1 -1
- package/es/components/overlays/Modal/OpenTransition.js +1 -1
- package/es/components/overlays/Modal/Overlay.js +1 -1
- package/es/components/overlays/Modal/Popover.js +1 -1
- package/es/components/overlays/Modal/Tray.js +1 -1
- package/es/components/overlays/Modal/Underlay.js +1 -1
- package/es/components/overlays/Modal/index.js +1 -1
- package/es/components/overlays/Modal/types.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
- package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
- package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
- package/es/components/overlays/NewNotifications/Notification.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
- package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
- package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
- package/es/components/overlays/NewNotifications/index.js +1 -1
- package/es/components/overlays/NewNotifications/types.js +1 -1
- package/es/components/overlays/Notification/Notification.js +1 -1
- package/es/components/overlays/OverlayWrapper.js +1 -1
- package/es/components/overlays/Toasts/Toast.js +1 -1
- package/es/components/overlays/Toasts/index.js +1 -1
- package/es/components/overlays/Toasts/types.js +1 -1
- package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
- package/es/components/overlays/Tooltip/Tooltip.js +1 -1
- package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/es/components/overlays/Tooltip/context.js +1 -1
- package/es/components/overlays/Tooltip/index.js +1 -1
- package/es/components/portal/Portal.js +1 -1
- package/es/components/portal/PortalProvider.js +1 -1
- package/es/components/portal/index.js +1 -1
- package/es/components/portal/types.js +1 -1
- package/es/components/portal/usePortal.js +1 -1
- package/es/components/shared/InvalidIcon.js +1 -1
- package/es/components/shared/ValidIcon.js +1 -1
- package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/es/components/status/LoadingAnimation/index.js +1 -1
- package/es/components/status/Spin/Cube.js +1 -1
- package/es/components/status/Spin/InternalSpinner.js +1 -1
- package/es/components/status/Spin/Spin.js +1 -1
- package/es/components/status/Spin/SpinsContainer.js +1 -1
- package/es/components/status/Spin/index.js +1 -1
- package/es/components/status/Spin/types.js +1 -1
- package/es/components/status/index.js +1 -1
- package/es/data/item-themes.js +1 -1
- package/es/data/themes.js +1 -1
- package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/es/icons/AdjustmentsIcon.js +1 -1
- package/es/icons/AiIcon.js +1 -1
- package/es/icons/AreaChartIcon.js +1 -1
- package/es/icons/BackwardIcon.js +1 -1
- package/es/icons/BarChartIcon.js +1 -1
- package/es/icons/BellFilledIcon.js +1 -1
- package/es/icons/BellIcon.js +1 -1
- package/es/icons/BooleanIcon.js +1 -1
- package/es/icons/CalendarEditIcon.js +1 -1
- package/es/icons/CalendarIcon.js +1 -1
- package/es/icons/CaretDownIcon.js +1 -1
- package/es/icons/CaretUpIcon.js +1 -1
- package/es/icons/ChartAreaStackedIcon.js +1 -1
- package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarGroupedIcon.js +1 -1
- package/es/icons/ChartBarHorizontalIcon.js +1 -1
- package/es/icons/ChartBarLineIcon.js +1 -1
- package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBoxPlot2Icon.js +1 -1
- package/es/icons/ChartBoxPlotIcon.js +1 -1
- package/es/icons/ChartBubbleIcon.js +1 -1
- package/es/icons/ChartDonut2Icon.js +1 -1
- package/es/icons/ChartFunnelIcon.js +1 -1
- package/es/icons/ChartHeatmapIcon.js +1 -1
- package/es/icons/ChartKPIIcon.js +1 -1
- package/es/icons/ChartPie2Icon.js +1 -1
- package/es/icons/ChartScatterIcon.js +1 -1
- package/es/icons/CheckCircleFilledIcon.js +1 -1
- package/es/icons/CheckCircleIcon.js +1 -1
- package/es/icons/CheckIcon.js +1 -1
- package/es/icons/CircleFilledIcon.js +1 -1
- package/es/icons/ClearIcon.js +1 -1
- package/es/icons/CloseCircleFilledIcon.js +1 -1
- package/es/icons/CloseCircleIcon.js +1 -1
- package/es/icons/CloseIcon.js +1 -1
- package/es/icons/CodeIcon.js +1 -1
- package/es/icons/ColumnTotalIcon.js +1 -1
- package/es/icons/CopyIcon.js +1 -1
- package/es/icons/CountIcon.js +1 -1
- package/es/icons/CubeIcon.js +1 -1
- package/es/icons/CubePauseIcon.js +1 -1
- package/es/icons/CubePlayIcon.js +1 -1
- package/es/icons/CurrencyDollarIcon.js +1 -1
- package/es/icons/DangerIcon.js +1 -1
- package/es/icons/DashboardIcon.js +1 -1
- package/es/icons/DatabaseIcon.js +1 -1
- package/es/icons/DecimalDecreaseIcon.js +1 -1
- package/es/icons/DecimalIncreaseIcon.js +1 -1
- package/es/icons/DirectionIcon.js +1 -1
- package/es/icons/DonutIcon.js +1 -1
- package/es/icons/DownIcon.js +1 -1
- package/es/icons/EditIcon.js +1 -1
- package/es/icons/ExclamationCircleFilledIcon.js +1 -1
- package/es/icons/ExclamationCircleIcon.js +1 -1
- package/es/icons/ExclamationIcon.js +1 -1
- package/es/icons/EyeIcon.js +1 -1
- package/es/icons/EyeInvisibleIcon.js +1 -1
- package/es/icons/FilterIcon.js +1 -1
- package/es/icons/FolderFilledIcon.js +1 -1
- package/es/icons/FolderIcon.js +1 -1
- package/es/icons/FolderOpenFilledIcon.js +1 -1
- package/es/icons/FolderOpenIcon.js +1 -1
- package/es/icons/ForwardIcon.js +1 -1
- package/es/icons/HierarchyIcon.js +1 -1
- package/es/icons/HierarchyOpenIcon.js +1 -1
- package/es/icons/Icon.js +1 -1
- package/es/icons/InfoCircleIcon.js +1 -1
- package/es/icons/InfoIcon.js +1 -1
- package/es/icons/KeyIcon.js +1 -1
- package/es/icons/LeftIcon.js +1 -1
- package/es/icons/LineChartIcon.js +1 -1
- package/es/icons/LoadingIcon.js +1 -1
- package/es/icons/LockFilledIcon.js +1 -1
- package/es/icons/LockIcon.js +1 -1
- package/es/icons/MoreIcon.js +1 -1
- package/es/icons/NotAllowedIcon.js +1 -1
- package/es/icons/Number123Icon.js +1 -1
- package/es/icons/NumberIcon.js +1 -1
- package/es/icons/PauseCircleFilledIcon.js +1 -1
- package/es/icons/PauseCircleIcon.js +1 -1
- package/es/icons/PauseIcon.js +1 -1
- package/es/icons/PercentageIcon.js +1 -1
- package/es/icons/PieChartIcon.js +1 -1
- package/es/icons/PlayCircleIcon.js +1 -1
- package/es/icons/PlayIcon.js +1 -1
- package/es/icons/PlusIcon.js +1 -1
- package/es/icons/ProgressBarIcon.js +1 -1
- package/es/icons/ReloadIcon.js +1 -1
- package/es/icons/ReportIcon.js +1 -1
- package/es/icons/ReturnIcon.js +1 -1
- package/es/icons/RightIcon.js +1 -1
- package/es/icons/RowTotalsIcon.js +1 -1
- package/es/icons/SchemeIcon.js +1 -1
- package/es/icons/SearchIcon.js +1 -1
- package/es/icons/SettingsIcon.js +1 -1
- package/es/icons/ShieldFilledIcon.js +1 -1
- package/es/icons/ShieldIcon.js +1 -1
- package/es/icons/SlashIcon.js +1 -1
- package/es/icons/SparklesIcon.js +1 -1
- package/es/icons/SqlIcon.js +1 -1
- package/es/icons/StatsIcon.js +1 -1
- package/es/icons/StopIcon.js +1 -1
- package/es/icons/StringIcon.js +1 -1
- package/es/icons/SubtotalsIcon.js +1 -1
- package/es/icons/SwitchIcon.js +1 -1
- package/es/icons/TableIcon.js +1 -1
- package/es/icons/ThumbsDownIcon.js +1 -1
- package/es/icons/ThumbsUpIcon.js +1 -1
- package/es/icons/ThunderboltCrossedIcon.js +1 -1
- package/es/icons/ThunderboltFilledIcon.js +1 -1
- package/es/icons/ThunderboltIcon.js +1 -1
- package/es/icons/TimeIcon.js +1 -1
- package/es/icons/TrashIcon.js +1 -1
- package/es/icons/UnlockIcon.js +1 -1
- package/es/icons/UpIcon.js +1 -1
- package/es/icons/UserGroupIcon.js +1 -1
- package/es/icons/UserIcon.js +1 -1
- package/es/icons/UserLockIcon.js +1 -1
- package/es/icons/ViewIcon.js +1 -1
- package/es/icons/WarningFilledIcon.js +1 -1
- package/es/icons/WarningIcon.js +1 -1
- package/es/icons/add-new-icon.js +1 -1
- package/es/icons/index.js +1 -1
- package/es/icons/wrap-icon.js +1 -1
- package/es/index.js +1 -1
- package/es/provider.js +1 -1
- package/es/providers/TrackingProvider.js +1 -1
- package/es/providers/navigation.types.js +1 -1
- package/es/providers/navigationAdapter.default.js +1 -1
- package/es/services/notification.js +1 -1
- package/es/shared/form.js +1 -1
- package/es/shared/index.js +1 -1
- package/es/stories/Form.legacy-stories.js +1 -1
- package/es/stories/FormFieldArgs.js +1 -1
- package/es/stories/SimpleLayout.stories.js +1 -1
- package/es/stories/Tasty.stories.js +1 -1
- package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
- package/es/stories/components/DialogFormApp.js +1 -1
- package/es/stories/components/StyledButton.js +1 -1
- package/es/stories/lists/baseProps.js +1 -1
- package/es/tasty/chunks/cacheKey.js +1 -1
- package/es/tasty/chunks/definitions.js +1 -1
- package/es/tasty/chunks/index.js +1 -1
- package/es/tasty/chunks/renderChunk.js +1 -1
- package/es/tasty/config.js +1 -1
- package/es/tasty/debug.js +1 -1
- package/es/tasty/hooks/index.js +1 -1
- package/es/tasty/hooks/useGlobalStyles.js +1 -1
- package/es/tasty/hooks/useRawCSS.js +1 -1
- package/es/tasty/hooks/useStyles.js +1 -1
- package/es/tasty/index.js +1 -1
- package/es/tasty/injector/index.js +1 -1
- package/es/tasty/injector/injector.js +1 -1
- package/es/tasty/injector/sheet-manager.js +1 -1
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/parser/classify.js +1 -1
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +1 -1
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +1 -1
- package/es/tasty/pipeline/conditions.js +1 -68
- package/es/tasty/pipeline/exclusive.js +119 -1
- package/es/tasty/pipeline/index.js +35 -8
- package/es/tasty/pipeline/materialize.js +367 -144
- package/es/tasty/pipeline/parseStateKey.js +1 -1
- package/es/tasty/pipeline/simplify.js +1 -1
- package/es/tasty/playground/PlaygroundEditor.js +97 -0
- package/es/tasty/playground/PlaygroundLayout.js +14 -0
- package/es/tasty/playground/PlaygroundOutput.js +92 -0
- package/es/tasty/playground/PlaygroundPreview.js +109 -0
- package/es/tasty/playground/components/Button.js +45 -0
- package/es/tasty/playground/components/Card.js +20 -0
- package/es/tasty/playground/examples.js +89 -0
- package/es/tasty/plugins/index.js +1 -1
- package/es/tasty/plugins/okhsl-plugin.js +1 -1
- package/es/tasty/plugins/types.js +1 -1
- package/es/tasty/states/index.js +1 -1
- package/es/tasty/static/index.js +1 -1
- package/es/tasty/static/tastyStatic.js +1 -1
- package/es/tasty/static/types.js +1 -1
- package/es/tasty/styles/align.js +1 -1
- package/es/tasty/styles/border.js +1 -1
- package/es/tasty/styles/boxShadow.combinator.js +1 -1
- package/es/tasty/styles/color.js +1 -1
- package/es/tasty/styles/createStyle.js +1 -1
- package/es/tasty/styles/dimension.js +1 -1
- package/es/tasty/styles/display.js +1 -1
- package/es/tasty/styles/fade.js +1 -1
- package/es/tasty/styles/fill.js +1 -1
- package/es/tasty/styles/flow.js +1 -1
- package/es/tasty/styles/font.js +1 -1
- package/es/tasty/styles/fontStyle.js +1 -1
- package/es/tasty/styles/gap.js +1 -1
- package/es/tasty/styles/groupRadius.js +1 -1
- package/es/tasty/styles/height.js +1 -1
- package/es/tasty/styles/index.js +1 -1
- package/es/tasty/styles/inset.js +1 -1
- package/es/tasty/styles/justify.js +1 -1
- package/es/tasty/styles/list.js +1 -1
- package/es/tasty/styles/margin.js +1 -1
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +1 -1
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +1 -1
- package/es/tasty/styles/preset.js +1 -1
- package/es/tasty/styles/radius.js +4 -11
- package/es/tasty/styles/reset.js +1 -1
- package/es/tasty/styles/scrollbar.js +1 -1
- package/es/tasty/styles/shadow.js +1 -1
- package/es/tasty/styles/styledScrollbar.js +1 -1
- package/es/tasty/styles/transition.js +1 -1
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +1 -1
- package/es/tasty/tasty.js +1 -1
- package/es/tasty/types.js +1 -1
- package/es/tasty/utils/cache-wrapper.js +1 -1
- package/es/tasty/utils/case-converter.js +1 -1
- package/es/tasty/utils/colors.js +1 -1
- package/es/tasty/utils/dotize.js +1 -1
- package/es/tasty/utils/filterBaseProps.js +1 -1
- package/es/tasty/utils/getDisplayName.js +1 -1
- package/es/tasty/utils/isDevEnv.js +1 -1
- package/es/tasty/utils/mergeStyles.js +1 -1
- package/es/tasty/utils/modAttrs.js +1 -1
- package/es/tasty/utils/processTokens.js +1 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +1 -1
- package/es/tasty/utils/typography.js +1 -1
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tasty/zero/babel.js +1 -1
- package/es/tasty/zero/css-writer.js +1 -1
- package/es/tasty/zero/extractor.js +26 -12
- package/es/tasty/zero/index.js +1 -1
- package/es/tasty/zero/next.js +1 -1
- package/es/tokens/base.js +1 -1
- package/es/tokens/colors.js +1 -1
- package/es/tokens/index.js +1 -1
- package/es/tokens/layout.js +1 -1
- package/es/tokens/shadows.js +1 -1
- package/es/tokens/sizes.js +1 -1
- package/es/tokens/spacing.js +1 -1
- package/es/tokens/typography.js +1 -1
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/index.js +1 -1
- package/es/utils/modules.js +1 -1
- package/es/utils/promise.js +1 -1
- package/es/utils/raf.js +1 -1
- package/es/utils/random.js +1 -1
- package/es/utils/range.js +1 -1
- package/es/utils/react/RenderCache.js +1 -1
- package/es/utils/react/Slots.js +1 -1
- package/es/utils/react/chain.js +1 -1
- package/es/utils/react/forwardRefWithGenerics.js +1 -1
- package/es/utils/react/index.js +1 -1
- package/es/utils/react/interactions.js +1 -1
- package/es/utils/react/isTextOnly.js +1 -1
- package/es/utils/react/mapProps.js +1 -1
- package/es/utils/react/mergeProps.js +1 -1
- package/es/utils/react/nullableValue.js +1 -1
- package/es/utils/react/resolveIcon.js +1 -1
- package/es/utils/react/sharedStore.js +1 -1
- package/es/utils/react/useCombinedRefs.js +1 -1
- package/es/utils/react/useControlledFocusVisible.js +1 -1
- package/es/utils/react/useEventBus.js +1 -1
- package/es/utils/react/useId.js +1 -1
- package/es/utils/react/useIsDarwin.js +1 -1
- package/es/utils/react/useKeySymbols.js +1 -1
- package/es/utils/react/useLayoutEffect.js +1 -1
- package/es/utils/react/useLocalStorage.js +1 -1
- package/es/utils/react/useQaProps.js +1 -1
- package/es/utils/react/useViewportSize.js +1 -1
- package/es/utils/react/wrapNodeIfPlain.js +1 -1
- package/es/utils/tree.js +1 -1
- package/es/utils/warnings.js +1 -1
- package/es/version.js +2 -2
- package/package.json +1 -1
- package/types/tasty/pipeline/conditions.d.ts +0 -24
- package/types/tasty/pipeline/exclusive.d.ts +25 -0
- package/types/tasty/pipeline/materialize.d.ts +49 -15
- package/types/tasty/playground/PlaygroundEditor.d.ts +6 -0
- package/types/tasty/playground/PlaygroundLayout.d.ts +8 -0
- package/types/tasty/playground/PlaygroundOutput.d.ts +5 -0
- package/types/tasty/playground/PlaygroundPreview.d.ts +6 -0
- package/types/tasty/playground/components/Button.d.ts +11 -0
- package/types/tasty/playground/components/Card.d.ts +7 -0
- package/types/tasty/playground/examples.d.ts +7 -0
- package/types/tasty/styles/radius.d.ts +2 -10
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.0.0-canary-
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-949985c
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -48,11 +48,13 @@ export function clearConditionCache() {
|
|
|
48
48
|
*/
|
|
49
49
|
function emptyVariant() {
|
|
50
50
|
return {
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
modifierConditions: [],
|
|
52
|
+
pseudoConditions: [],
|
|
53
|
+
ownConditions: [],
|
|
53
54
|
mediaConditions: [],
|
|
54
55
|
containerConditions: [],
|
|
55
56
|
supportsConditions: [],
|
|
57
|
+
rootConditions: [],
|
|
56
58
|
startingStyle: false,
|
|
57
59
|
};
|
|
58
60
|
}
|
|
@@ -109,10 +111,10 @@ function stateToCSS(state) {
|
|
|
109
111
|
const variant = emptyVariant();
|
|
110
112
|
switch (state.type) {
|
|
111
113
|
case 'modifier':
|
|
112
|
-
variant.
|
|
114
|
+
variant.modifierConditions.push(modifierToParsed(state));
|
|
113
115
|
break;
|
|
114
116
|
case 'pseudo':
|
|
115
|
-
variant.
|
|
117
|
+
variant.pseudoConditions.push(pseudoToParsed(state));
|
|
116
118
|
break;
|
|
117
119
|
case 'container':
|
|
118
120
|
variant.containerConditions.push(containerToParsed(state));
|
|
@@ -121,10 +123,10 @@ function stateToCSS(state) {
|
|
|
121
123
|
variant.supportsConditions.push(supportsToParsed(state));
|
|
122
124
|
break;
|
|
123
125
|
case 'root':
|
|
124
|
-
variant.
|
|
126
|
+
variant.rootConditions.push(rootToParsed(state));
|
|
125
127
|
break;
|
|
126
128
|
case 'own':
|
|
127
|
-
variant.
|
|
129
|
+
variant.ownConditions.push(...ownToParsed(state));
|
|
128
130
|
break;
|
|
129
131
|
case 'starting':
|
|
130
132
|
variant.startingStyle = !state.negated;
|
|
@@ -138,37 +140,57 @@ function stateToCSS(state) {
|
|
|
138
140
|
}
|
|
139
141
|
}
|
|
140
142
|
/**
|
|
141
|
-
* Convert modifier condition to
|
|
143
|
+
* Convert modifier condition to parsed structure
|
|
142
144
|
*/
|
|
143
|
-
function
|
|
145
|
+
function modifierToParsed(state) {
|
|
146
|
+
return {
|
|
147
|
+
attribute: state.attribute,
|
|
148
|
+
value: state.value,
|
|
149
|
+
operator: state.operator,
|
|
150
|
+
negated: state.negated ?? false,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Convert parsed modifier to CSS selector string (for final output)
|
|
155
|
+
*/
|
|
156
|
+
export function modifierToCSS(mod) {
|
|
144
157
|
let selector;
|
|
145
|
-
if (
|
|
158
|
+
if (mod.value !== undefined) {
|
|
146
159
|
// Value attribute: [data-attr="value"]
|
|
147
|
-
const op =
|
|
148
|
-
selector = `[${
|
|
160
|
+
const op = mod.operator || '=';
|
|
161
|
+
selector = `[${mod.attribute}${op}"${mod.value}"]`;
|
|
149
162
|
}
|
|
150
163
|
else {
|
|
151
164
|
// Boolean attribute: [data-attr]
|
|
152
|
-
selector = `[${
|
|
165
|
+
selector = `[${mod.attribute}]`;
|
|
153
166
|
}
|
|
154
|
-
if (
|
|
167
|
+
if (mod.negated) {
|
|
155
168
|
return `:not(${selector})`;
|
|
156
169
|
}
|
|
157
170
|
return selector;
|
|
158
171
|
}
|
|
159
172
|
/**
|
|
160
|
-
* Convert pseudo condition to
|
|
173
|
+
* Convert pseudo condition to parsed structure
|
|
161
174
|
*/
|
|
162
|
-
function
|
|
163
|
-
|
|
175
|
+
function pseudoToParsed(state) {
|
|
176
|
+
return {
|
|
177
|
+
pseudo: state.pseudo,
|
|
178
|
+
negated: state.negated ?? false,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Convert parsed pseudo to CSS selector string (for final output)
|
|
183
|
+
*/
|
|
184
|
+
export function pseudoToCSS(pseudo) {
|
|
185
|
+
if (pseudo.negated) {
|
|
164
186
|
// Wrap in :not() if not already
|
|
165
|
-
if (
|
|
187
|
+
if (pseudo.pseudo.startsWith(':not(')) {
|
|
166
188
|
// Double negation - remove :not()
|
|
167
|
-
return
|
|
189
|
+
return pseudo.pseudo.slice(5, -1);
|
|
168
190
|
}
|
|
169
|
-
return `:not(${
|
|
191
|
+
return `:not(${pseudo.pseudo})`;
|
|
170
192
|
}
|
|
171
|
-
return
|
|
193
|
+
return pseudo.pseudo;
|
|
172
194
|
}
|
|
173
195
|
/**
|
|
174
196
|
* Convert media condition to parsed structure(s)
|
|
@@ -306,49 +328,208 @@ function supportsToParsed(state) {
|
|
|
306
328
|
};
|
|
307
329
|
}
|
|
308
330
|
/**
|
|
309
|
-
* Convert root condition to
|
|
331
|
+
* Convert root condition to parsed structure
|
|
332
|
+
*/
|
|
333
|
+
function rootToParsed(state) {
|
|
334
|
+
return {
|
|
335
|
+
selector: state.selector,
|
|
336
|
+
negated: state.negated ?? false,
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Convert parsed root conditions to CSS selector prefix (for final output)
|
|
310
341
|
*/
|
|
311
|
-
function
|
|
312
|
-
if (
|
|
313
|
-
return
|
|
342
|
+
export function rootConditionsToCSS(roots) {
|
|
343
|
+
if (roots.length === 0)
|
|
344
|
+
return undefined;
|
|
345
|
+
// Combine all root conditions into a single :root prefix
|
|
346
|
+
// e.g., :root[data-theme="dark"]:not([data-mode="light"])
|
|
347
|
+
let prefix = ':root';
|
|
348
|
+
for (const root of roots) {
|
|
349
|
+
if (root.negated) {
|
|
350
|
+
prefix += `:not(${root.selector})`;
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
prefix += root.selector;
|
|
354
|
+
}
|
|
314
355
|
}
|
|
315
|
-
return
|
|
356
|
+
return prefix;
|
|
316
357
|
}
|
|
317
358
|
/**
|
|
318
|
-
* Convert own condition to
|
|
359
|
+
* Convert own condition to parsed structures for sub-element
|
|
319
360
|
*/
|
|
320
|
-
function
|
|
361
|
+
function ownToParsed(state) {
|
|
321
362
|
const innerCSS = conditionToCSS(state.innerCondition);
|
|
322
363
|
if (innerCSS.isImpossible || innerCSS.variants.length === 0) {
|
|
323
364
|
return [];
|
|
324
365
|
}
|
|
325
|
-
// Collect all modifier
|
|
326
|
-
|
|
327
|
-
const allSelectors = [];
|
|
366
|
+
// Collect all modifier/pseudo conditions from all variants
|
|
367
|
+
const allConditions = [];
|
|
328
368
|
for (const variant of innerCSS.variants) {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
369
|
+
for (const mod of variant.modifierConditions) {
|
|
370
|
+
// Apply outer negation
|
|
371
|
+
allConditions.push({
|
|
372
|
+
...mod,
|
|
373
|
+
negated: state.negated ? !mod.negated : mod.negated,
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
for (const pseudo of variant.pseudoConditions) {
|
|
377
|
+
// Apply outer negation
|
|
378
|
+
allConditions.push({
|
|
379
|
+
...pseudo,
|
|
380
|
+
negated: state.negated ? !pseudo.negated : pseudo.negated,
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
return allConditions;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Get unique key for a modifier condition
|
|
388
|
+
*/
|
|
389
|
+
function getModifierKey(mod) {
|
|
390
|
+
const base = mod.value
|
|
391
|
+
? `${mod.attribute}${mod.operator || '='}${mod.value}`
|
|
392
|
+
: mod.attribute;
|
|
393
|
+
return mod.negated ? `!${base}` : base;
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Get unique key for a pseudo condition
|
|
397
|
+
*/
|
|
398
|
+
function getPseudoKey(pseudo) {
|
|
399
|
+
return pseudo.negated ? `!${pseudo.pseudo}` : pseudo.pseudo;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Get unique key for a root condition
|
|
403
|
+
*/
|
|
404
|
+
function getRootKey(root) {
|
|
405
|
+
return root.negated ? `!${root.selector}` : root.selector;
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Deduplicate modifier conditions
|
|
409
|
+
*/
|
|
410
|
+
function dedupeModifierConditions(conditions) {
|
|
411
|
+
const seen = new Set();
|
|
412
|
+
const result = [];
|
|
413
|
+
for (const c of conditions) {
|
|
414
|
+
const key = getModifierKey(c);
|
|
415
|
+
if (!seen.has(key)) {
|
|
416
|
+
seen.add(key);
|
|
417
|
+
result.push(c);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
return result;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Deduplicate pseudo conditions
|
|
424
|
+
*/
|
|
425
|
+
function dedupePseudoConditions(conditions) {
|
|
426
|
+
const seen = new Set();
|
|
427
|
+
const result = [];
|
|
428
|
+
for (const c of conditions) {
|
|
429
|
+
const key = getPseudoKey(c);
|
|
430
|
+
if (!seen.has(key)) {
|
|
431
|
+
seen.add(key);
|
|
432
|
+
result.push(c);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
return result;
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Deduplicate root conditions
|
|
439
|
+
*/
|
|
440
|
+
function dedupeRootConditions(conditions) {
|
|
441
|
+
const seen = new Set();
|
|
442
|
+
const result = [];
|
|
443
|
+
for (const c of conditions) {
|
|
444
|
+
const key = getRootKey(c);
|
|
445
|
+
if (!seen.has(key)) {
|
|
446
|
+
seen.add(key);
|
|
447
|
+
result.push(c);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
return result;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Deduplicate own conditions (modifiers or pseudos)
|
|
454
|
+
*/
|
|
455
|
+
function dedupeOwnConditions(conditions) {
|
|
456
|
+
const seen = new Set();
|
|
457
|
+
const result = [];
|
|
458
|
+
for (const c of conditions) {
|
|
459
|
+
const key = 'attribute' in c
|
|
460
|
+
? `mod:${getModifierKey(c)}`
|
|
461
|
+
: `pseudo:${getPseudoKey(c)}`;
|
|
462
|
+
if (!seen.has(key)) {
|
|
463
|
+
seen.add(key);
|
|
464
|
+
result.push(c);
|
|
465
|
+
}
|
|
340
466
|
}
|
|
341
|
-
return
|
|
467
|
+
return result;
|
|
342
468
|
}
|
|
343
469
|
/**
|
|
344
|
-
*
|
|
470
|
+
* Check for modifier contradiction: same attribute with opposite negation
|
|
345
471
|
*/
|
|
346
|
-
function
|
|
347
|
-
|
|
472
|
+
function hasModifierContradiction(conditions) {
|
|
473
|
+
const byKey = new Map(); // base key -> isPositive
|
|
474
|
+
for (const mod of conditions) {
|
|
475
|
+
const baseKey = mod.value
|
|
476
|
+
? `${mod.attribute}${mod.operator || '='}${mod.value}`
|
|
477
|
+
: mod.attribute;
|
|
478
|
+
const existing = byKey.get(baseKey);
|
|
479
|
+
if (existing !== undefined && existing !== !mod.negated) {
|
|
480
|
+
return true; // Same attribute with opposite negation
|
|
481
|
+
}
|
|
482
|
+
byKey.set(baseKey, !mod.negated);
|
|
483
|
+
}
|
|
484
|
+
return false;
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Check for pseudo contradiction: same pseudo with opposite negation
|
|
488
|
+
*/
|
|
489
|
+
function hasPseudoContradiction(conditions) {
|
|
490
|
+
const byKey = new Map(); // pseudo -> isPositive
|
|
491
|
+
for (const pseudo of conditions) {
|
|
492
|
+
const existing = byKey.get(pseudo.pseudo);
|
|
493
|
+
if (existing !== undefined && existing !== !pseudo.negated) {
|
|
494
|
+
return true; // Same pseudo with opposite negation
|
|
495
|
+
}
|
|
496
|
+
byKey.set(pseudo.pseudo, !pseudo.negated);
|
|
497
|
+
}
|
|
498
|
+
return false;
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* Check for root condition contradiction: same selector with opposite negation
|
|
502
|
+
*/
|
|
503
|
+
function hasRootContradiction(conditions) {
|
|
504
|
+
const byKey = new Map(); // selector -> isPositive
|
|
505
|
+
for (const root of conditions) {
|
|
506
|
+
const existing = byKey.get(root.selector);
|
|
507
|
+
if (existing !== undefined && existing !== !root.negated) {
|
|
508
|
+
return true; // Same selector with opposite negation
|
|
509
|
+
}
|
|
510
|
+
byKey.set(root.selector, !root.negated);
|
|
511
|
+
}
|
|
512
|
+
return false;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Check for own condition contradiction
|
|
516
|
+
*/
|
|
517
|
+
function hasOwnConditionContradiction(conditions) {
|
|
518
|
+
const modifiers = [];
|
|
519
|
+
const pseudos = [];
|
|
520
|
+
for (const c of conditions) {
|
|
521
|
+
if ('attribute' in c) {
|
|
522
|
+
modifiers.push(c);
|
|
523
|
+
}
|
|
524
|
+
else {
|
|
525
|
+
pseudos.push(c);
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
return hasModifierContradiction(modifiers) || hasPseudoContradiction(pseudos);
|
|
348
529
|
}
|
|
349
530
|
/**
|
|
350
531
|
* Merge two selector variants (AND operation)
|
|
351
|
-
* Deduplicates
|
|
532
|
+
* Deduplicates conditions and checks for contradictions
|
|
352
533
|
*/
|
|
353
534
|
function mergeVariants(a, b) {
|
|
354
535
|
// Merge media conditions and check for contradictions
|
|
@@ -359,19 +540,38 @@ function mergeVariants(a, b) {
|
|
|
359
540
|
if (hasMediaContradiction(mergedMedia)) {
|
|
360
541
|
return null; // Impossible variant
|
|
361
542
|
}
|
|
362
|
-
//
|
|
363
|
-
const
|
|
364
|
-
|
|
543
|
+
// Merge root conditions and check for contradictions
|
|
544
|
+
const mergedRoots = dedupeRootConditions([
|
|
545
|
+
...a.rootConditions,
|
|
546
|
+
...b.rootConditions,
|
|
547
|
+
]);
|
|
548
|
+
if (hasRootContradiction(mergedRoots)) {
|
|
365
549
|
return null; // Impossible variant
|
|
366
550
|
}
|
|
367
|
-
// Merge modifier
|
|
368
|
-
const mergedModifiers =
|
|
369
|
-
...a.
|
|
370
|
-
...b.
|
|
551
|
+
// Merge modifier conditions and check for contradictions
|
|
552
|
+
const mergedModifiers = dedupeModifierConditions([
|
|
553
|
+
...a.modifierConditions,
|
|
554
|
+
...b.modifierConditions,
|
|
371
555
|
]);
|
|
372
556
|
if (hasModifierContradiction(mergedModifiers)) {
|
|
373
557
|
return null; // Impossible variant
|
|
374
558
|
}
|
|
559
|
+
// Merge pseudo conditions and check for contradictions
|
|
560
|
+
const mergedPseudos = dedupePseudoConditions([
|
|
561
|
+
...a.pseudoConditions,
|
|
562
|
+
...b.pseudoConditions,
|
|
563
|
+
]);
|
|
564
|
+
if (hasPseudoContradiction(mergedPseudos)) {
|
|
565
|
+
return null; // Impossible variant
|
|
566
|
+
}
|
|
567
|
+
// Merge own conditions and check for contradictions
|
|
568
|
+
const mergedOwn = dedupeOwnConditions([
|
|
569
|
+
...a.ownConditions,
|
|
570
|
+
...b.ownConditions,
|
|
571
|
+
]);
|
|
572
|
+
if (hasOwnConditionContradiction(mergedOwn)) {
|
|
573
|
+
return null; // Impossible variant
|
|
574
|
+
}
|
|
375
575
|
// Merge container conditions and check for contradictions
|
|
376
576
|
const mergedContainers = dedupeContainerConditions([
|
|
377
577
|
...a.containerConditions,
|
|
@@ -389,12 +589,13 @@ function mergeVariants(a, b) {
|
|
|
389
589
|
return null; // Impossible variant
|
|
390
590
|
}
|
|
391
591
|
return {
|
|
392
|
-
|
|
393
|
-
|
|
592
|
+
modifierConditions: mergedModifiers,
|
|
593
|
+
pseudoConditions: mergedPseudos,
|
|
594
|
+
ownConditions: mergedOwn,
|
|
394
595
|
mediaConditions: mergedMedia,
|
|
395
596
|
containerConditions: mergedContainers,
|
|
396
597
|
supportsConditions: mergedSupports,
|
|
397
|
-
|
|
598
|
+
rootConditions: mergedRoots,
|
|
398
599
|
startingStyle: a.startingStyle || b.startingStyle,
|
|
399
600
|
};
|
|
400
601
|
}
|
|
@@ -533,48 +734,6 @@ function hasMediaContradiction(conditions) {
|
|
|
533
734
|
}
|
|
534
735
|
return false;
|
|
535
736
|
}
|
|
536
|
-
/**
|
|
537
|
-
* Check if a root prefix contains contradictions
|
|
538
|
-
* e.g., ":root:not([data-x="y"])[data-x="y"]" is a contradiction
|
|
539
|
-
*/
|
|
540
|
-
function hasRootPrefixContradiction(rootPrefix) {
|
|
541
|
-
return hasSelectorStringContradiction(rootPrefix);
|
|
542
|
-
}
|
|
543
|
-
/**
|
|
544
|
-
* Check if modifier selectors contain contradictions
|
|
545
|
-
* e.g., "[data-selected]" and ":not([data-selected])" together
|
|
546
|
-
*/
|
|
547
|
-
function hasModifierContradiction(modifiers) {
|
|
548
|
-
const combined = modifiers.join('');
|
|
549
|
-
return hasSelectorStringContradiction(combined);
|
|
550
|
-
}
|
|
551
|
-
/**
|
|
552
|
-
* Check if a selector string contains contradictions
|
|
553
|
-
* e.g., "[data-x]:not([data-x])" or "[data-x="y"]:not([data-x="y"])"
|
|
554
|
-
*/
|
|
555
|
-
function hasSelectorStringContradiction(selector) {
|
|
556
|
-
const positiveAttrs = [];
|
|
557
|
-
const negativeAttrs = [];
|
|
558
|
-
// Match :not([attr]) or :not([attr="value"])
|
|
559
|
-
const notPattern = /:not\(\[([^\]]+)\]\)/g;
|
|
560
|
-
let match;
|
|
561
|
-
while ((match = notPattern.exec(selector)) !== null) {
|
|
562
|
-
negativeAttrs.push(match[1]);
|
|
563
|
-
}
|
|
564
|
-
// Match [attr] or [attr="value"] (not inside :not())
|
|
565
|
-
// The lookbehind (?<!...) ensures we don't match attributes inside :not()
|
|
566
|
-
const attrPattern = /(?<!:not\()\[([^\]]+)\]/g;
|
|
567
|
-
while ((match = attrPattern.exec(selector)) !== null) {
|
|
568
|
-
positiveAttrs.push(match[1]);
|
|
569
|
-
}
|
|
570
|
-
// Check for contradictions
|
|
571
|
-
for (const neg of negativeAttrs) {
|
|
572
|
-
if (positiveAttrs.includes(neg)) {
|
|
573
|
-
return true;
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
return false;
|
|
577
|
-
}
|
|
578
737
|
/**
|
|
579
738
|
* Check if container conditions contain contradictions in style queries
|
|
580
739
|
* e.g., style(--variant: danger) and style(--variant: success) together
|
|
@@ -639,21 +798,18 @@ function hasContainerStyleContradiction(conditions) {
|
|
|
639
798
|
}
|
|
640
799
|
return false;
|
|
641
800
|
}
|
|
642
|
-
/**
|
|
643
|
-
* Combine two root prefixes
|
|
644
|
-
*/
|
|
645
|
-
function combineRootPrefixes(a, b) {
|
|
646
|
-
if (!a)
|
|
647
|
-
return b;
|
|
648
|
-
if (!b)
|
|
649
|
-
return a;
|
|
650
|
-
// Combine: :root[x] + :root[y] → :root[x][y]
|
|
651
|
-
return `${a}${b.replace(':root', '')}`;
|
|
652
|
-
}
|
|
653
801
|
/**
|
|
654
802
|
* Get a unique key for a variant (for deduplication)
|
|
655
803
|
*/
|
|
656
804
|
function getVariantKey(v) {
|
|
805
|
+
const modifierKey = v.modifierConditions.map(getModifierKey).sort().join('|');
|
|
806
|
+
const pseudoKey = v.pseudoConditions.map(getPseudoKey).sort().join('|');
|
|
807
|
+
const ownKey = v.ownConditions
|
|
808
|
+
.map((c) => 'attribute' in c
|
|
809
|
+
? `mod:${getModifierKey(c)}`
|
|
810
|
+
: `pseudo:${getPseudoKey(c)}`)
|
|
811
|
+
.sort()
|
|
812
|
+
.join('|');
|
|
657
813
|
const containerKey = v.containerConditions
|
|
658
814
|
.map((c) => `${c.name ?? ''}:${c.negated ? '!' : ''}${c.condition}`)
|
|
659
815
|
.sort()
|
|
@@ -666,13 +822,15 @@ function getVariantKey(v) {
|
|
|
666
822
|
.map((c) => `${c.subtype}:${c.negated ? '!' : ''}${c.condition}`)
|
|
667
823
|
.sort()
|
|
668
824
|
.join('|');
|
|
825
|
+
const rootKey = v.rootConditions.map(getRootKey).sort().join('|');
|
|
669
826
|
return [
|
|
670
|
-
|
|
671
|
-
|
|
827
|
+
modifierKey,
|
|
828
|
+
pseudoKey,
|
|
829
|
+
ownKey,
|
|
672
830
|
mediaKey,
|
|
673
831
|
containerKey,
|
|
674
832
|
supportsKey,
|
|
675
|
-
|
|
833
|
+
rootKey,
|
|
676
834
|
v.startingStyle ? '1' : '0',
|
|
677
835
|
].join('###');
|
|
678
836
|
}
|
|
@@ -688,11 +846,12 @@ function getVariantKey(v) {
|
|
|
688
846
|
* A is a superset of B, so A is redundant when B exists.
|
|
689
847
|
*/
|
|
690
848
|
function isVariantSuperset(a, b) {
|
|
691
|
-
// Must have same context
|
|
692
|
-
if (a.rootPrefix !== b.rootPrefix)
|
|
693
|
-
return false;
|
|
849
|
+
// Must have same context
|
|
694
850
|
if (a.startingStyle !== b.startingStyle)
|
|
695
851
|
return false;
|
|
852
|
+
// Check if a.rootConditions is superset of b.rootConditions
|
|
853
|
+
if (!isRootConditionsSuperset(a.rootConditions, b.rootConditions))
|
|
854
|
+
return false;
|
|
696
855
|
// Check if a.mediaConditions is superset of b.mediaConditions
|
|
697
856
|
if (!isMediaConditionsSuperset(a.mediaConditions, b.mediaConditions))
|
|
698
857
|
return false;
|
|
@@ -702,24 +861,31 @@ function isVariantSuperset(a, b) {
|
|
|
702
861
|
// Check if a.supportsConditions is superset of b.supportsConditions
|
|
703
862
|
if (!isSupportsConditionsSuperset(a.supportsConditions, b.supportsConditions))
|
|
704
863
|
return false;
|
|
705
|
-
// Check if a.
|
|
706
|
-
if (!
|
|
864
|
+
// Check if a.modifierConditions is superset of b.modifierConditions
|
|
865
|
+
if (!isModifierConditionsSuperset(a.modifierConditions, b.modifierConditions))
|
|
707
866
|
return false;
|
|
708
|
-
// Check if a.
|
|
709
|
-
if (!
|
|
867
|
+
// Check if a.pseudoConditions is superset of b.pseudoConditions
|
|
868
|
+
if (!isPseudoConditionsSuperset(a.pseudoConditions, b.pseudoConditions))
|
|
869
|
+
return false;
|
|
870
|
+
// Check if a.ownConditions is superset of b.ownConditions
|
|
871
|
+
if (!isOwnConditionsSuperset(a.ownConditions, b.ownConditions))
|
|
710
872
|
return false;
|
|
711
873
|
// A is a superset if it has all of B's items (possibly more)
|
|
712
874
|
// and at least one category has strictly more items
|
|
713
875
|
const aTotal = a.mediaConditions.length +
|
|
714
876
|
a.containerConditions.length +
|
|
715
877
|
a.supportsConditions.length +
|
|
716
|
-
a.
|
|
717
|
-
a.
|
|
878
|
+
a.modifierConditions.length +
|
|
879
|
+
a.pseudoConditions.length +
|
|
880
|
+
a.rootConditions.length +
|
|
881
|
+
a.ownConditions.length;
|
|
718
882
|
const bTotal = b.mediaConditions.length +
|
|
719
883
|
b.containerConditions.length +
|
|
720
884
|
b.supportsConditions.length +
|
|
721
|
-
b.
|
|
722
|
-
b.
|
|
885
|
+
b.modifierConditions.length +
|
|
886
|
+
b.pseudoConditions.length +
|
|
887
|
+
b.rootConditions.length +
|
|
888
|
+
b.ownConditions.length;
|
|
723
889
|
return aTotal > bTotal;
|
|
724
890
|
}
|
|
725
891
|
/**
|
|
@@ -759,12 +925,50 @@ function isSupportsConditionsSuperset(a, b) {
|
|
|
759
925
|
return true;
|
|
760
926
|
}
|
|
761
927
|
/**
|
|
762
|
-
* Check if
|
|
928
|
+
* Check if modifier conditions A is a superset of B
|
|
929
|
+
*/
|
|
930
|
+
function isModifierConditionsSuperset(a, b) {
|
|
931
|
+
const aKeys = new Set(a.map(getModifierKey));
|
|
932
|
+
for (const c of b) {
|
|
933
|
+
if (!aKeys.has(getModifierKey(c)))
|
|
934
|
+
return false;
|
|
935
|
+
}
|
|
936
|
+
return true;
|
|
937
|
+
}
|
|
938
|
+
/**
|
|
939
|
+
* Check if pseudo conditions A is a superset of B
|
|
763
940
|
*/
|
|
764
|
-
function
|
|
765
|
-
const
|
|
766
|
-
for (const
|
|
767
|
-
if (!
|
|
941
|
+
function isPseudoConditionsSuperset(a, b) {
|
|
942
|
+
const aKeys = new Set(a.map(getPseudoKey));
|
|
943
|
+
for (const c of b) {
|
|
944
|
+
if (!aKeys.has(getPseudoKey(c)))
|
|
945
|
+
return false;
|
|
946
|
+
}
|
|
947
|
+
return true;
|
|
948
|
+
}
|
|
949
|
+
/**
|
|
950
|
+
* Check if root conditions A is a superset of B
|
|
951
|
+
*/
|
|
952
|
+
function isRootConditionsSuperset(a, b) {
|
|
953
|
+
const aKeys = new Set(a.map(getRootKey));
|
|
954
|
+
for (const c of b) {
|
|
955
|
+
if (!aKeys.has(getRootKey(c)))
|
|
956
|
+
return false;
|
|
957
|
+
}
|
|
958
|
+
return true;
|
|
959
|
+
}
|
|
960
|
+
/**
|
|
961
|
+
* Check if own conditions A is a superset of B
|
|
962
|
+
*/
|
|
963
|
+
function isOwnConditionsSuperset(a, b) {
|
|
964
|
+
const aKeys = new Set(a.map((c) => 'attribute' in c
|
|
965
|
+
? `mod:${getModifierKey(c)}`
|
|
966
|
+
: `pseudo:${getPseudoKey(c)}`));
|
|
967
|
+
for (const c of b) {
|
|
968
|
+
const key = 'attribute' in c
|
|
969
|
+
? `mod:${getModifierKey(c)}`
|
|
970
|
+
: `pseudo:${getPseudoKey(c)}`;
|
|
971
|
+
if (!aKeys.has(key))
|
|
768
972
|
return false;
|
|
769
973
|
}
|
|
770
974
|
return true;
|
|
@@ -788,18 +992,22 @@ function dedupeVariants(variants) {
|
|
|
788
992
|
}
|
|
789
993
|
}
|
|
790
994
|
// Second pass: remove supersets (more restrictive variants)
|
|
791
|
-
// Sort by total
|
|
995
|
+
// Sort by total condition count (fewer conditions = less restrictive = keep)
|
|
792
996
|
result.sort((a, b) => {
|
|
793
|
-
const aCount = a.
|
|
794
|
-
a.
|
|
997
|
+
const aCount = a.modifierConditions.length +
|
|
998
|
+
a.pseudoConditions.length +
|
|
999
|
+
a.ownConditions.length +
|
|
795
1000
|
a.mediaConditions.length +
|
|
796
1001
|
a.containerConditions.length +
|
|
797
|
-
a.supportsConditions.length
|
|
798
|
-
|
|
799
|
-
|
|
1002
|
+
a.supportsConditions.length +
|
|
1003
|
+
a.rootConditions.length;
|
|
1004
|
+
const bCount = b.modifierConditions.length +
|
|
1005
|
+
b.pseudoConditions.length +
|
|
1006
|
+
b.ownConditions.length +
|
|
800
1007
|
b.mediaConditions.length +
|
|
801
1008
|
b.containerConditions.length +
|
|
802
|
-
b.supportsConditions.length
|
|
1009
|
+
b.supportsConditions.length +
|
|
1010
|
+
b.rootConditions.length;
|
|
803
1011
|
return aCount - bCount;
|
|
804
1012
|
});
|
|
805
1013
|
// Remove variants that are supersets of earlier (less restrictive) variants
|
|
@@ -907,18 +1115,32 @@ function getConditionKey(node) {
|
|
|
907
1115
|
/**
|
|
908
1116
|
* Build a complete CSS selector from a single variant
|
|
909
1117
|
*/
|
|
910
|
-
|
|
1118
|
+
function buildCSSSelectorFromVariant(className, variant, selectorSuffix = '') {
|
|
911
1119
|
// Start with base class (doubled for specificity)
|
|
912
1120
|
let selector = `.${className}.${className}`;
|
|
913
1121
|
// Add modifier selectors
|
|
914
|
-
|
|
1122
|
+
for (const mod of variant.modifierConditions) {
|
|
1123
|
+
selector += modifierToCSS(mod);
|
|
1124
|
+
}
|
|
1125
|
+
// Add pseudo selectors
|
|
1126
|
+
for (const pseudo of variant.pseudoConditions) {
|
|
1127
|
+
selector += pseudoToCSS(pseudo);
|
|
1128
|
+
}
|
|
915
1129
|
// Add selector suffix (e.g., ' [data-element="Label"]')
|
|
916
1130
|
selector += selectorSuffix;
|
|
917
1131
|
// Add own selectors (after sub-element)
|
|
918
|
-
|
|
1132
|
+
for (const own of variant.ownConditions) {
|
|
1133
|
+
if ('attribute' in own) {
|
|
1134
|
+
selector += modifierToCSS(own);
|
|
1135
|
+
}
|
|
1136
|
+
else {
|
|
1137
|
+
selector += pseudoToCSS(own);
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
919
1140
|
// Add root prefix if present
|
|
920
|
-
|
|
921
|
-
|
|
1141
|
+
const rootPrefix = rootConditionsToCSS(variant.rootConditions);
|
|
1142
|
+
if (rootPrefix) {
|
|
1143
|
+
selector = `${rootPrefix} ${selector}`;
|
|
922
1144
|
}
|
|
923
1145
|
return selector;
|
|
924
1146
|
}
|
|
@@ -996,7 +1218,7 @@ function getAtRulesKey(variant) {
|
|
|
996
1218
|
* Returns an array of CSSRules because OR conditions may require multiple rules
|
|
997
1219
|
* (when different branches have different at-rules)
|
|
998
1220
|
*/
|
|
999
|
-
|
|
1221
|
+
function materializeRule(condition, declarations, selectorSuffix, className) {
|
|
1000
1222
|
const components = conditionToCSS(condition);
|
|
1001
1223
|
if (components.isImpossible || components.variants.length === 0) {
|
|
1002
1224
|
return [];
|
|
@@ -1026,8 +1248,9 @@ export function materializeRule(condition, declarations, selectorSuffix, classNa
|
|
|
1026
1248
|
if (atRules.length > 0) {
|
|
1027
1249
|
rule.atRules = atRules;
|
|
1028
1250
|
}
|
|
1029
|
-
|
|
1030
|
-
|
|
1251
|
+
const rootPrefix = rootConditionsToCSS(variants[0].rootConditions);
|
|
1252
|
+
if (rootPrefix) {
|
|
1253
|
+
rule.rootPrefix = rootPrefix;
|
|
1031
1254
|
}
|
|
1032
1255
|
rules.push(rule);
|
|
1033
1256
|
}
|