@cube-dev/ui-kit 0.0.0-canary-63be1e5 → 0.0.0-canary-dec6fb1
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 +23 -1
- package/es/tasty/debug.js +1 -1
- package/es/tasty/hooks/index.js +1 -1
- package/es/tasty/hooks/useGlobalStyles.js +10 -2
- 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 -1
- package/es/tasty/pipeline/exclusive.js +85 -2
- package/es/tasty/pipeline/index.js +10 -5
- package/es/tasty/pipeline/materialize.js +109 -9
- package/es/tasty/pipeline/parseStateKey.js +12 -2
- package/es/tasty/pipeline/simplify.js +1 -1
- package/es/tasty/states/index.js +5 -10
- package/es/tasty/styles/align.js +1 -1
- package/es/tasty/styles/border.js +1 -1
- package/es/tasty/styles/boxShadow.combinator.js +1 -1
- package/es/tasty/styles/color.js +1 -1
- package/es/tasty/styles/createStyle.js +1 -1
- package/es/tasty/styles/dimension.js +1 -1
- package/es/tasty/styles/display.js +1 -1
- package/es/tasty/styles/fade.js +1 -1
- package/es/tasty/styles/fill.js +1 -1
- package/es/tasty/styles/flow.js +1 -1
- package/es/tasty/styles/font.js +1 -1
- package/es/tasty/styles/fontStyle.js +1 -1
- package/es/tasty/styles/gap.js +1 -1
- package/es/tasty/styles/groupRadius.js +1 -1
- package/es/tasty/styles/height.js +1 -1
- package/es/tasty/styles/index.js +1 -1
- package/es/tasty/styles/inset.js +1 -1
- package/es/tasty/styles/justify.js +1 -1
- package/es/tasty/styles/list.js +1 -1
- package/es/tasty/styles/margin.js +1 -1
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +1 -1
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +1 -1
- package/es/tasty/styles/preset.js +1 -1
- package/es/tasty/styles/radius.js +1 -1
- package/es/tasty/styles/reset.js +1 -1
- package/es/tasty/styles/scrollbar.js +1 -1
- package/es/tasty/styles/shadow.js +1 -1
- package/es/tasty/styles/styledScrollbar.js +1 -1
- package/es/tasty/styles/transition.js +1 -1
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +1 -1
- package/es/tasty/tasty.js +1 -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 +2 -2
- package/es/tasty/utils/modAttrs.js +1 -1
- package/es/tasty/utils/processTokens.js +1 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +1 -1
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tokens.js +1 -1
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/index.js +1 -1
- package/es/utils/modules.js +1 -1
- package/es/utils/promise.js +1 -1
- package/es/utils/raf.js +1 -1
- package/es/utils/random.js +1 -1
- package/es/utils/range.js +1 -1
- package/es/utils/react/RenderCache.js +1 -1
- package/es/utils/react/Slots.js +1 -1
- package/es/utils/react/chain.js +1 -1
- package/es/utils/react/forwardRefWithGenerics.js +1 -1
- package/es/utils/react/index.js +1 -1
- package/es/utils/react/interactions.js +1 -1
- package/es/utils/react/isTextOnly.js +1 -1
- package/es/utils/react/mapProps.js +1 -1
- package/es/utils/react/mergeProps.js +1 -1
- package/es/utils/react/nullableValue.js +1 -1
- package/es/utils/react/resolveIcon.js +1 -1
- package/es/utils/react/sharedStore.js +1 -1
- package/es/utils/react/useCombinedRefs.js +1 -1
- package/es/utils/react/useControlledFocusVisible.js +1 -1
- package/es/utils/react/useEventBus.js +1 -1
- package/es/utils/react/useId.js +1 -1
- package/es/utils/react/useIsDarwin.js +1 -1
- package/es/utils/react/useKeySymbols.js +1 -1
- package/es/utils/react/useLayoutEffect.js +1 -1
- package/es/utils/react/useLocalStorage.js +1 -1
- package/es/utils/react/useQaProps.js +1 -1
- package/es/utils/react/useViewportSize.js +1 -1
- package/es/utils/react/wrapNodeIfPlain.js +1 -1
- package/es/utils/tree.js +1 -1
- package/es/utils/warnings.js +1 -1
- package/es/version.js +2 -2
- package/package.json +1 -1
- package/types/components/HiddenInput.d.ts +1 -1
- package/types/components/actions/CommandMenu/styled.d.ts +5 -5
- package/types/components/actions/Menu/styled.d.ts +8 -8
- package/types/components/content/List/SectionHeading.d.ts +1 -1
- package/types/components/content/Text.d.ts +7 -7
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +1 -1
- package/types/components/fields/Select/Select.d.ts +1 -1
- package/types/components/fields/Slider/elements.d.ts +6 -6
- package/types/tasty/chunks/renderChunk.d.ts +5 -0
- package/types/tasty/injector/types.d.ts +1 -1
- package/types/tasty/pipeline/exclusive.d.ts +15 -0
- package/types/tasty/tasty.d.ts +1 -1
- package/es/tasty/utils/getModCombinations.js +0 -38
- package/es/tasty/utils/mediaRangeOptimizer.js +0 -338
- package/es/tasty/utils/renderStyles.js +0 -1624
- package/types/tasty/utils/getModCombinations.d.ts +0 -9
- package/types/tasty/utils/mediaRangeOptimizer.d.ts +0 -88
- package/types/tasty/utils/renderStyles.d.ts +0 -47
|
@@ -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-dec6fb1
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* to only include relevant keys before passing to renderStyles.
|
|
13
13
|
*/
|
|
14
14
|
import { renderStyles } from '../pipeline';
|
|
15
|
+
import { extractLocalPredefinedStates } from '../states';
|
|
15
16
|
import { CHUNK_NAMES } from './definitions';
|
|
16
17
|
/**
|
|
17
18
|
* Render styles for a specific chunk.
|
|
@@ -19,6 +20,11 @@ import { CHUNK_NAMES } from './definitions';
|
|
|
19
20
|
* Creates a filtered styles object containing only the keys for this chunk,
|
|
20
21
|
* then delegates to the existing renderStyles function.
|
|
21
22
|
*
|
|
23
|
+
* IMPORTANT: Local predefined states (e.g., '@mobile': '@media(w < 600px)')
|
|
24
|
+
* are always included in the filtered styles, regardless of which chunk is
|
|
25
|
+
* being rendered. This ensures that state references like '@mobile' in any
|
|
26
|
+
* chunk can be properly resolved by the pipeline.
|
|
27
|
+
*
|
|
22
28
|
* @param styles - The full styles object
|
|
23
29
|
* @param chunkName - Name of the chunk being rendered
|
|
24
30
|
* @param styleKeys - Keys of styles belonging to this chunk
|
|
@@ -33,9 +39,17 @@ export function renderStylesForChunk(styles, chunkName, styleKeys) {
|
|
|
33
39
|
if (chunkName === CHUNK_NAMES.SUBCOMPONENTS) {
|
|
34
40
|
return renderSubcomponentsChunk(styles, styleKeys);
|
|
35
41
|
}
|
|
42
|
+
// Extract local predefined states from the full styles object
|
|
43
|
+
// These must be included for state resolution to work across chunks
|
|
44
|
+
const localPredefinedStates = extractLocalPredefinedStates(styles);
|
|
36
45
|
// For regular chunks, create a filtered styles object
|
|
37
46
|
// This is memory-efficient: we only create a shallow copy with filtered keys
|
|
38
47
|
const filteredStyles = {};
|
|
48
|
+
// First, add local predefined states so they're available for resolution
|
|
49
|
+
for (const [key, value] of Object.entries(localPredefinedStates)) {
|
|
50
|
+
filteredStyles[key] = value;
|
|
51
|
+
}
|
|
52
|
+
// Then add the chunk's style keys
|
|
39
53
|
for (const key of styleKeys) {
|
|
40
54
|
const value = styles[key];
|
|
41
55
|
if (value !== undefined) {
|
|
@@ -56,8 +70,16 @@ export function renderStylesForChunk(styles, chunkName, styleKeys) {
|
|
|
56
70
|
* @returns RenderResult with rules for all subcomponents
|
|
57
71
|
*/
|
|
58
72
|
function renderSubcomponentsChunk(styles, selectorKeys) {
|
|
73
|
+
// Extract local predefined states from the full styles object
|
|
74
|
+
// These must be included for state resolution to work in nested styles
|
|
75
|
+
const localPredefinedStates = extractLocalPredefinedStates(styles);
|
|
59
76
|
// Create a styles object containing only the selector keys
|
|
60
77
|
const filteredStyles = {};
|
|
78
|
+
// First, add local predefined states so they're available for resolution
|
|
79
|
+
for (const [key, value] of Object.entries(localPredefinedStates)) {
|
|
80
|
+
filteredStyles[key] = value;
|
|
81
|
+
}
|
|
82
|
+
// Then add the selector keys
|
|
61
83
|
for (const key of selectorKeys) {
|
|
62
84
|
const value = styles[key];
|
|
63
85
|
if (value !== undefined) {
|
package/es/tasty/debug.js
CHANGED
package/es/tasty/hooks/index.js
CHANGED
|
@@ -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-dec6fb1
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -35,8 +35,16 @@ export function useGlobalStyles({ selector, styles, }) {
|
|
|
35
35
|
const styleResults = useMemo(() => {
|
|
36
36
|
if (!styles)
|
|
37
37
|
return [];
|
|
38
|
+
// Validate selector - empty string would cause renderStyles to return RenderResult instead of StyleResult[]
|
|
39
|
+
if (!selector) {
|
|
40
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
41
|
+
console.warn('[Tasty] useGlobalStyles: selector is required and cannot be empty. ' +
|
|
42
|
+
'Styles will not be injected.');
|
|
43
|
+
}
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
38
46
|
const result = renderStyles(styles, selector);
|
|
39
|
-
// When a selector is provided, renderStyles returns StyleResult[]
|
|
47
|
+
// When a non-empty selector is provided, renderStyles returns StyleResult[]
|
|
40
48
|
return result;
|
|
41
49
|
}, [styles, selector]);
|
|
42
50
|
// Inject as global styles
|
package/es/tasty/index.js
CHANGED
package/es/tasty/parser/const.js
CHANGED
package/es/tasty/parser/lru.js
CHANGED
package/es/tasty/parser/types.js
CHANGED
|
@@ -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-dec6fb1
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* Each entry's condition is ANDed with the negation of all higher-priority conditions,
|
|
13
13
|
* ensuring exactly one condition matches at any given time.
|
|
14
14
|
*/
|
|
15
|
-
import { and, not, trueCondition } from './conditions';
|
|
15
|
+
import { and, isCompoundCondition, not, trueCondition, } from './conditions';
|
|
16
16
|
import { simplifyCondition } from './simplify';
|
|
17
17
|
// ============================================================================
|
|
18
18
|
// Main Function
|
|
@@ -106,5 +106,88 @@ export function isValueMapping(value) {
|
|
|
106
106
|
!Array.isArray(value) &&
|
|
107
107
|
!(value instanceof Date));
|
|
108
108
|
}
|
|
109
|
+
// ============================================================================
|
|
110
|
+
// OR Expansion
|
|
111
|
+
// ============================================================================
|
|
112
|
+
/**
|
|
113
|
+
* Expand OR conditions in parsed entries into multiple exclusive entries.
|
|
114
|
+
*
|
|
115
|
+
* For an entry with condition `A | B | C`, this creates 3 entries:
|
|
116
|
+
* - condition: A
|
|
117
|
+
* - condition: B & !A
|
|
118
|
+
* - condition: C & !A & !B
|
|
119
|
+
*
|
|
120
|
+
* This ensures OR branches are mutually exclusive BEFORE the main
|
|
121
|
+
* exclusive condition building pass.
|
|
122
|
+
*
|
|
123
|
+
* @param entries Parsed entries (may contain OR conditions)
|
|
124
|
+
* @returns Expanded entries with OR branches made exclusive
|
|
125
|
+
*/
|
|
126
|
+
export function expandOrConditions(entries) {
|
|
127
|
+
const result = [];
|
|
128
|
+
for (const entry of entries) {
|
|
129
|
+
const expanded = expandSingleEntry(entry);
|
|
130
|
+
result.push(...expanded);
|
|
131
|
+
}
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Expand a single entry's OR condition into multiple exclusive entries
|
|
136
|
+
*/
|
|
137
|
+
function expandSingleEntry(entry) {
|
|
138
|
+
const orBranches = collectOrBranches(entry.condition);
|
|
139
|
+
// If no OR (single branch), return as-is
|
|
140
|
+
if (orBranches.length <= 1) {
|
|
141
|
+
return [entry];
|
|
142
|
+
}
|
|
143
|
+
// Make each OR branch exclusive from prior branches
|
|
144
|
+
const result = [];
|
|
145
|
+
const priorBranches = [];
|
|
146
|
+
for (let i = 0; i < orBranches.length; i++) {
|
|
147
|
+
const branch = orBranches[i];
|
|
148
|
+
// Build: branch & !prior[0] & !prior[1] & ...
|
|
149
|
+
let exclusiveBranch = branch;
|
|
150
|
+
for (const prior of priorBranches) {
|
|
151
|
+
exclusiveBranch = and(exclusiveBranch, not(prior));
|
|
152
|
+
}
|
|
153
|
+
// Simplify to detect impossible combinations
|
|
154
|
+
const simplified = simplifyCondition(exclusiveBranch);
|
|
155
|
+
// Skip impossible branches
|
|
156
|
+
if (simplified.kind === 'false') {
|
|
157
|
+
priorBranches.push(branch);
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
result.push({
|
|
161
|
+
...entry,
|
|
162
|
+
stateKey: `${entry.stateKey}[${i}]`, // Mark as expanded branch
|
|
163
|
+
condition: simplified,
|
|
164
|
+
// Keep same priority - all branches from same entry have same priority
|
|
165
|
+
});
|
|
166
|
+
priorBranches.push(branch);
|
|
167
|
+
}
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Collect top-level OR branches from a condition.
|
|
172
|
+
*
|
|
173
|
+
* For `A | B | C`, returns [A, B, C]
|
|
174
|
+
* For `A & B`, returns [A & B] (single branch)
|
|
175
|
+
* For `A | (B & C)`, returns [A, B & C]
|
|
176
|
+
*/
|
|
177
|
+
function collectOrBranches(condition) {
|
|
178
|
+
if (condition.kind === 'true' || condition.kind === 'false') {
|
|
179
|
+
return [condition];
|
|
180
|
+
}
|
|
181
|
+
if (isCompoundCondition(condition) && condition.operator === 'OR') {
|
|
182
|
+
// Flatten nested ORs
|
|
183
|
+
const branches = [];
|
|
184
|
+
for (const child of condition.children) {
|
|
185
|
+
branches.push(...collectOrBranches(child));
|
|
186
|
+
}
|
|
187
|
+
return branches;
|
|
188
|
+
}
|
|
189
|
+
// Not an OR - return as single branch
|
|
190
|
+
return [condition];
|
|
191
|
+
}
|
|
109
192
|
|
|
110
193
|
|
|
@@ -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-dec6fb1
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -25,7 +25,7 @@ import { createStateParserContext } from '../states';
|
|
|
25
25
|
import { createStyle, STYLE_HANDLER_MAP } from '../styles';
|
|
26
26
|
import { stringifyStyles } from '../utils/styles';
|
|
27
27
|
import { and, or, trueCondition, } from './conditions';
|
|
28
|
-
import { buildExclusiveConditions, isValueMapping, parseStyleEntries, } from './exclusive';
|
|
28
|
+
import { buildExclusiveConditions, expandOrConditions, isValueMapping, parseStyleEntries, } from './exclusive';
|
|
29
29
|
import { buildAtRulesFromVariant, conditionToCSS, } from './materialize';
|
|
30
30
|
import { parseStateKey } from './parseStateKey';
|
|
31
31
|
import { simplifyCondition } from './simplify';
|
|
@@ -102,7 +102,8 @@ function runPipeline(styles, parserContext) {
|
|
|
102
102
|
// Deduplicate rules
|
|
103
103
|
const seen = new Set();
|
|
104
104
|
const dedupedRules = allRules.filter((rule) => {
|
|
105
|
-
|
|
105
|
+
// Include rootPrefix in dedup key - rules with different root prefixes are distinct
|
|
106
|
+
const key = `${rule.selector}|${rule.declarations}|${JSON.stringify(rule.atRules || [])}|${rule.rootPrefix || ''}`;
|
|
106
107
|
if (seen.has(key))
|
|
107
108
|
return false;
|
|
108
109
|
seen.add(key);
|
|
@@ -151,8 +152,12 @@ function processStyles(styles, selectorSuffix, parserContext, allRules) {
|
|
|
151
152
|
if (isValueMapping(value)) {
|
|
152
153
|
// Parse entries from value mapping
|
|
153
154
|
const parsed = parseStyleEntries(styleName, value, (stateKey) => parseStateKey(stateKey, { context: parserContext }));
|
|
154
|
-
//
|
|
155
|
-
|
|
155
|
+
// Expand OR conditions into exclusive branches
|
|
156
|
+
// This ensures OR branches like `A | B | C` become:
|
|
157
|
+
// A, B & !A, C & !A & !B
|
|
158
|
+
const expanded = expandOrConditions(parsed);
|
|
159
|
+
// Build exclusive conditions across all entries
|
|
160
|
+
const exclusive = buildExclusiveConditions(expanded);
|
|
156
161
|
exclusiveByStyle.set(styleName, exclusive);
|
|
157
162
|
}
|
|
158
163
|
else {
|
|
@@ -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-dec6fb1
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -271,18 +271,105 @@ function dedupeArray(arr) {
|
|
|
271
271
|
* Deduplicates selectors to avoid `.foo:not([x]):not([x])` repetition
|
|
272
272
|
*/
|
|
273
273
|
function mergeVariants(a, b) {
|
|
274
|
+
const mergedMedia = dedupeArray([...a.mediaRules, ...b.mediaRules]);
|
|
275
|
+
// Check for contradictory media rules
|
|
276
|
+
if (hasMediaContradiction(mergedMedia)) {
|
|
277
|
+
return null; // Impossible variant
|
|
278
|
+
}
|
|
279
|
+
// Combine root prefixes and check for contradictions
|
|
280
|
+
const combinedRoot = combineRootPrefixes(a.rootPrefix, b.rootPrefix);
|
|
281
|
+
if (combinedRoot && hasRootPrefixContradiction(combinedRoot)) {
|
|
282
|
+
return null; // Impossible variant
|
|
283
|
+
}
|
|
284
|
+
// Merge modifier selectors and check for contradictions
|
|
285
|
+
const mergedModifiers = dedupeArray([
|
|
286
|
+
...a.modifierSelectors,
|
|
287
|
+
...b.modifierSelectors,
|
|
288
|
+
]);
|
|
289
|
+
if (hasModifierContradiction(mergedModifiers)) {
|
|
290
|
+
return null; // Impossible variant
|
|
291
|
+
}
|
|
274
292
|
return {
|
|
275
|
-
modifierSelectors:
|
|
276
|
-
...a.modifierSelectors,
|
|
277
|
-
...b.modifierSelectors,
|
|
278
|
-
]),
|
|
293
|
+
modifierSelectors: mergedModifiers,
|
|
279
294
|
ownSelectors: dedupeArray([...a.ownSelectors, ...b.ownSelectors]),
|
|
280
|
-
mediaRules:
|
|
295
|
+
mediaRules: mergedMedia,
|
|
281
296
|
containerRules: dedupeArray([...a.containerRules, ...b.containerRules]),
|
|
282
|
-
rootPrefix:
|
|
297
|
+
rootPrefix: combinedRoot,
|
|
283
298
|
startingStyle: a.startingStyle || b.startingStyle,
|
|
284
299
|
};
|
|
285
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Check if a set of media rules contains contradictions
|
|
303
|
+
* e.g., "@media (prefers-color-scheme: light)" and "@media not (prefers-color-scheme: light)"
|
|
304
|
+
*/
|
|
305
|
+
function hasMediaContradiction(mediaRules) {
|
|
306
|
+
const features = new Map();
|
|
307
|
+
for (const rule of mediaRules) {
|
|
308
|
+
// Parse the rule to extract the feature condition
|
|
309
|
+
// Format: "@media (feature: value)" or "@media not (feature: value)"
|
|
310
|
+
const notMatch = rule.match(/@media\s+not\s+\(([^:]+):\s*([^)]+)\)/i);
|
|
311
|
+
const posMatch = rule.match(/@media\s+\(([^:]+):\s*([^)]+)\)/i);
|
|
312
|
+
if (notMatch) {
|
|
313
|
+
const key = `${notMatch[1].trim()}:${notMatch[2].trim()}`;
|
|
314
|
+
const existing = features.get(key);
|
|
315
|
+
if (existing && existing.positive) {
|
|
316
|
+
return true; // Found: (feature: value) AND not (feature: value)
|
|
317
|
+
}
|
|
318
|
+
features.set(key, { positive: false, rule });
|
|
319
|
+
}
|
|
320
|
+
else if (posMatch) {
|
|
321
|
+
const key = `${posMatch[1].trim()}:${posMatch[2].trim()}`;
|
|
322
|
+
const existing = features.get(key);
|
|
323
|
+
if (existing && !existing.positive) {
|
|
324
|
+
return true; // Found: not (feature: value) AND (feature: value)
|
|
325
|
+
}
|
|
326
|
+
features.set(key, { positive: true, rule });
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return false;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Check if a root prefix contains contradictions
|
|
333
|
+
* e.g., ":root:not([data-x="y"])[data-x="y"]" is a contradiction
|
|
334
|
+
*/
|
|
335
|
+
function hasRootPrefixContradiction(rootPrefix) {
|
|
336
|
+
return hasSelectorStringContradiction(rootPrefix);
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Check if modifier selectors contain contradictions
|
|
340
|
+
* e.g., "[data-selected]" and ":not([data-selected])" together
|
|
341
|
+
*/
|
|
342
|
+
function hasModifierContradiction(modifiers) {
|
|
343
|
+
const combined = modifiers.join('');
|
|
344
|
+
return hasSelectorStringContradiction(combined);
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Check if a selector string contains contradictions
|
|
348
|
+
* e.g., "[data-x]:not([data-x])" or "[data-x="y"]:not([data-x="y"])"
|
|
349
|
+
*/
|
|
350
|
+
function hasSelectorStringContradiction(selector) {
|
|
351
|
+
const positiveAttrs = [];
|
|
352
|
+
const negativeAttrs = [];
|
|
353
|
+
// Match :not([attr]) or :not([attr="value"])
|
|
354
|
+
const notPattern = /:not\(\[([^\]]+)\]\)/g;
|
|
355
|
+
let match;
|
|
356
|
+
while ((match = notPattern.exec(selector)) !== null) {
|
|
357
|
+
negativeAttrs.push(match[1]);
|
|
358
|
+
}
|
|
359
|
+
// Match [attr] or [attr="value"] (not inside :not())
|
|
360
|
+
// The lookbehind (?<!...) ensures we don't match attributes inside :not()
|
|
361
|
+
const attrPattern = /(?<!:not\()\[([^\]]+)\]/g;
|
|
362
|
+
while ((match = attrPattern.exec(selector)) !== null) {
|
|
363
|
+
positiveAttrs.push(match[1]);
|
|
364
|
+
}
|
|
365
|
+
// Check for contradictions
|
|
366
|
+
for (const neg of negativeAttrs) {
|
|
367
|
+
if (positiveAttrs.includes(neg)) {
|
|
368
|
+
return true;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
return false;
|
|
372
|
+
}
|
|
286
373
|
/**
|
|
287
374
|
* Combine two root prefixes
|
|
288
375
|
*/
|
|
@@ -327,6 +414,9 @@ function dedupeVariants(variants) {
|
|
|
327
414
|
*
|
|
328
415
|
* AND of conditions means cartesian product of variants:
|
|
329
416
|
* (A1 | A2) & (B1 | B2) = A1&B1 | A1&B2 | A2&B1 | A2&B2
|
|
417
|
+
*
|
|
418
|
+
* Variants that result in contradictions (e.g., conflicting media rules)
|
|
419
|
+
* are filtered out.
|
|
330
420
|
*/
|
|
331
421
|
function andToCSS(children) {
|
|
332
422
|
// Start with a single empty variant
|
|
@@ -340,9 +430,16 @@ function andToCSS(children) {
|
|
|
340
430
|
const newVariants = [];
|
|
341
431
|
for (const current of currentVariants) {
|
|
342
432
|
for (const childVariant of childCSS.variants) {
|
|
343
|
-
|
|
433
|
+
const merged = mergeVariants(current, childVariant);
|
|
434
|
+
// Skip impossible variants (contradictions detected during merge)
|
|
435
|
+
if (merged !== null) {
|
|
436
|
+
newVariants.push(merged);
|
|
437
|
+
}
|
|
344
438
|
}
|
|
345
439
|
}
|
|
440
|
+
if (newVariants.length === 0) {
|
|
441
|
+
return { variants: [], isImpossible: true };
|
|
442
|
+
}
|
|
346
443
|
// Deduplicate after each step to prevent exponential blowup
|
|
347
444
|
currentVariants = dedupeVariants(newVariants);
|
|
348
445
|
}
|
|
@@ -357,6 +454,10 @@ function andToCSS(children) {
|
|
|
357
454
|
* OR in CSS means multiple selector variants (DNF).
|
|
358
455
|
* Each variant becomes a separate selector in the comma-separated list,
|
|
359
456
|
* or multiple CSS rules if they have different at-rules.
|
|
457
|
+
*
|
|
458
|
+
* Note: OR exclusivity is handled at the pipeline level (expandOrConditions),
|
|
459
|
+
* so here we just collect all variants. Any remaining ORs in the condition
|
|
460
|
+
* tree (e.g., from De Morgan expansion) are handled as simple alternatives.
|
|
360
461
|
*/
|
|
361
462
|
function orToCSS(children) {
|
|
362
463
|
const allVariants = [];
|
|
@@ -364,7 +465,6 @@ function orToCSS(children) {
|
|
|
364
465
|
const childCSS = conditionToCSSInner(child);
|
|
365
466
|
if (childCSS.isImpossible)
|
|
366
467
|
continue;
|
|
367
|
-
// Collect all variants from this OR branch
|
|
368
468
|
allVariants.push(...childCSS.variants);
|
|
369
469
|
}
|
|
370
470
|
if (allVariants.length === 0) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license MIT
|
|
3
3
|
* author: Cube Dev Team
|
|
4
|
-
* @cube-dev/ui-kit v0.0.0-canary-
|
|
4
|
+
* @cube-dev/ui-kit v0.0.0-canary-dec6fb1
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -531,8 +531,18 @@ export function parseStateKey(stateKey, options = {}) {
|
|
|
531
531
|
return trueCondition();
|
|
532
532
|
}
|
|
533
533
|
const trimmed = stateKey.trim();
|
|
534
|
+
// Build cache key including local predefined states (they affect parsing)
|
|
535
|
+
// Global predefined states are set once at initialization and don't change
|
|
536
|
+
const ctx = options.context;
|
|
537
|
+
const localStatesKey = ctx && Object.keys(ctx.localPredefinedStates).length > 0
|
|
538
|
+
? JSON.stringify(ctx.localPredefinedStates)
|
|
539
|
+
: '';
|
|
540
|
+
const cacheKey = JSON.stringify([
|
|
541
|
+
trimmed,
|
|
542
|
+
options.isSubElement,
|
|
543
|
+
localStatesKey,
|
|
544
|
+
]);
|
|
534
545
|
// Check cache
|
|
535
|
-
const cacheKey = JSON.stringify([trimmed, options.isSubElement]);
|
|
536
546
|
const cached = parseCache.get(cacheKey);
|
|
537
547
|
if (cached) {
|
|
538
548
|
return cached;
|
package/es/tasty/states/index.js
CHANGED
|
@@ -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-dec6fb1
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -125,15 +125,10 @@ export function extractPredefinedStateRefs(value) {
|
|
|
125
125
|
const refs = [];
|
|
126
126
|
for (const match of matches) {
|
|
127
127
|
const stateName = '@' + match[1];
|
|
128
|
-
// Skip built-in states
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
!stateName.startsWith('@medi') && // @media
|
|
133
|
-
!stateName.startsWith('@roo') && // @root
|
|
134
|
-
!stateName.startsWith('@ow') && // @own
|
|
135
|
-
!stateName.startsWith('@starti') // @starting
|
|
136
|
-
) {
|
|
128
|
+
// Skip built-in states (@starting) and duplicates
|
|
129
|
+
// Note: @media, @root, @own are always followed by '(' so the regex
|
|
130
|
+
// negative lookahead (?![A-Za-z0-9-:(]) already excludes them
|
|
131
|
+
if (!BUILTIN_STATES.has(stateName) && !refs.includes(stateName)) {
|
|
137
132
|
refs.push(stateName);
|
|
138
133
|
}
|
|
139
134
|
}
|
package/es/tasty/styles/align.js
CHANGED