@cube-dev/ui-kit 0.0.0-canary-cc110ce → 0.0.0-canary-3a2d415
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 +2 -2
- package/es/components/actions/Button/index.js +1 -1
- package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/es/components/actions/CommandMenu/index.js +1 -1
- package/es/components/actions/CommandMenu/styled.js +1 -1
- package/es/components/actions/ItemAction/ItemAction.js +1 -1
- package/es/components/actions/ItemAction/index.js +1 -1
- package/es/components/actions/ItemActionContext.js +1 -1
- package/es/components/actions/ItemButton/ItemButton.js +1 -1
- package/es/components/actions/ItemButton/index.js +1 -1
- package/es/components/actions/Link/Link.js +1 -1
- package/es/components/actions/Menu/Menu.js +1 -1
- package/es/components/actions/Menu/MenuItem.js +1 -1
- package/es/components/actions/Menu/MenuSection.js +1 -1
- package/es/components/actions/Menu/MenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/es/components/actions/Menu/context.js +1 -1
- package/es/components/actions/Menu/index.js +1 -1
- package/es/components/actions/Menu/styled.js +1 -1
- package/es/components/actions/index.js +1 -1
- package/es/components/actions/use-action.js +1 -1
- package/es/components/actions/use-anchored-menu.js +1 -1
- package/es/components/actions/use-context-menu.js +1 -1
- package/es/components/content/ActiveZone/ActiveZone.js +1 -1
- package/es/components/content/Alert/Alert.js +1 -1
- package/es/components/content/Alert/index.js +1 -1
- package/es/components/content/Alert/types.js +1 -1
- package/es/components/content/Alert/use-alert.js +1 -1
- package/es/components/content/Avatar/Avatar.js +1 -1
- package/es/components/content/Badge/Badge.js +1 -1
- package/es/components/content/Card/Card.js +1 -1
- package/es/components/content/Content.js +1 -1
- package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +2 -2
- package/es/components/content/CopyPasteBlock/index.js +1 -1
- package/es/components/content/CopySnippet/CopySnippet.js +1 -1
- package/es/components/content/CopySnippet/index.js +1 -1
- package/es/components/content/Disclosure/Disclosure.js +1 -1
- package/es/components/content/Disclosure/index.js +1 -1
- package/es/components/content/Divider.js +1 -1
- package/es/components/content/Footer.js +1 -1
- package/es/components/content/Header.js +1 -1
- package/es/components/content/HotKeys/HotKeys.js +1 -1
- package/es/components/content/HotKeys/index.js +1 -1
- package/es/components/content/Item/Item.js +2 -2
- package/es/components/content/Item/index.js +1 -1
- package/es/components/content/ItemBadge/ItemBadge.js +1 -1
- package/es/components/content/ItemBadge/index.js +1 -1
- package/es/components/content/Layout/GridLayout.js +1 -1
- package/es/components/content/Layout/Layout.js +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 +3 -1
- package/es/tasty/chunks/index.js +1 -1
- package/es/tasty/chunks/renderChunk.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/useStyles.js +1 -1
- package/es/tasty/index.js +2 -2
- 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 +1 -1
- package/es/tasty/pipeline/index.js +1 -1
- package/es/tasty/pipeline/materialize.js +272 -59
- package/es/tasty/pipeline/parseStateKey.js +1 -1
- package/es/tasty/pipeline/simplify.js +1 -1
- package/es/tasty/states/index.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 +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 +1 -1
- package/es/tasty/utils/modAttrs.js +1 -1
- package/es/tasty/utils/processTokens.js +1 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +1 -1
- package/es/tasty/utils/warnings.js +1 -1
- package/es/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/actions/Button/Button.d.ts +1 -1
- package/types/tasty/chunks/definitions.d.ts +1 -1
- package/types/tasty/index.d.ts +1 -1
package/es/tasty/debug.js
CHANGED
package/es/tasty/hooks/index.js
CHANGED
package/es/tasty/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-3a2d415
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -10,7 +10,7 @@ export { useStyles, useGlobalStyles } from './hooks';
|
|
|
10
10
|
// Chunk utilities for advanced use cases
|
|
11
11
|
export { CHUNK_NAMES, STYLE_TO_CHUNK, categorizeStyleKeys } from './chunks';
|
|
12
12
|
// Advanced state mapping utilities
|
|
13
|
-
export { getGlobalPredefinedStates } from './states';
|
|
13
|
+
export { getGlobalPredefinedStates, setGlobalPredefinedStates } from './states';
|
|
14
14
|
export * from './utils/filterBaseProps';
|
|
15
15
|
export * from './utils/colors';
|
|
16
16
|
export * from './utils/styles';
|
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-3a2d415
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -93,34 +93,45 @@ function conditionToCSSInner(node) {
|
|
|
93
93
|
* Convert a state condition to CSS
|
|
94
94
|
*/
|
|
95
95
|
function stateToCSS(state) {
|
|
96
|
-
const variant = emptyVariant();
|
|
97
96
|
switch (state.type) {
|
|
98
|
-
case '
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
97
|
+
case 'media': {
|
|
98
|
+
// Media rules can return multiple variants for negated ranges (OR branches)
|
|
99
|
+
const mediaResults = mediaToCSS(state);
|
|
100
|
+
const variants = mediaResults.map((mediaRule) => {
|
|
101
|
+
const v = emptyVariant();
|
|
102
|
+
v.mediaRules.push(mediaRule);
|
|
103
|
+
return v;
|
|
104
|
+
});
|
|
105
|
+
return { variants, isImpossible: false };
|
|
106
|
+
}
|
|
107
|
+
default: {
|
|
108
|
+
const variant = emptyVariant();
|
|
109
|
+
switch (state.type) {
|
|
110
|
+
case 'modifier':
|
|
111
|
+
variant.modifierSelectors.push(modifierToCSS(state));
|
|
112
|
+
break;
|
|
113
|
+
case 'pseudo':
|
|
114
|
+
variant.modifierSelectors.push(pseudoToCSS(state));
|
|
115
|
+
break;
|
|
116
|
+
case 'container':
|
|
117
|
+
variant.containerRules.push(containerToCSS(state));
|
|
118
|
+
break;
|
|
119
|
+
case 'root':
|
|
120
|
+
variant.rootPrefix = rootToCSS(state);
|
|
121
|
+
break;
|
|
122
|
+
case 'own':
|
|
123
|
+
variant.ownSelectors.push(...ownToCSS(state));
|
|
124
|
+
break;
|
|
125
|
+
case 'starting':
|
|
126
|
+
variant.startingStyle = !state.negated;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
variants: [variant],
|
|
131
|
+
isImpossible: false,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
119
134
|
}
|
|
120
|
-
return {
|
|
121
|
-
variants: [variant],
|
|
122
|
-
isImpossible: false,
|
|
123
|
-
};
|
|
124
135
|
}
|
|
125
136
|
/**
|
|
126
137
|
* Convert modifier condition to CSS selector
|
|
@@ -156,34 +167,44 @@ function pseudoToCSS(state) {
|
|
|
156
167
|
return state.pseudo;
|
|
157
168
|
}
|
|
158
169
|
/**
|
|
159
|
-
* Convert media condition to CSS at-rule
|
|
170
|
+
* Convert media condition to CSS at-rule(s)
|
|
171
|
+
* Returns an array because negated ranges produce OR branches (two separate rules)
|
|
160
172
|
*/
|
|
161
173
|
function mediaToCSS(state) {
|
|
162
|
-
let condition;
|
|
163
174
|
if (state.subtype === 'type') {
|
|
164
|
-
// @media:print → @media print
|
|
165
|
-
|
|
175
|
+
// @media:print → @media print (or @media not print)
|
|
176
|
+
const mediaType = state.mediaType || 'all';
|
|
177
|
+
if (state.negated) {
|
|
178
|
+
return [`@media not ${mediaType}`];
|
|
179
|
+
}
|
|
180
|
+
return [`@media ${mediaType}`];
|
|
166
181
|
}
|
|
167
182
|
else if (state.subtype === 'feature') {
|
|
168
183
|
// @media(prefers-contrast: high) → @media (prefers-contrast: high)
|
|
184
|
+
let condition;
|
|
169
185
|
if (state.featureValue) {
|
|
170
186
|
condition = `(${state.feature}: ${state.featureValue})`;
|
|
171
187
|
}
|
|
172
188
|
else {
|
|
173
189
|
condition = `(${state.feature})`;
|
|
174
190
|
}
|
|
191
|
+
// "not (condition)" is valid for feature queries like prefers-color-scheme
|
|
192
|
+
if (state.negated) {
|
|
193
|
+
return [`@media not ${condition}`];
|
|
194
|
+
}
|
|
195
|
+
return [`@media ${condition}`];
|
|
175
196
|
}
|
|
176
197
|
else {
|
|
177
|
-
// Dimension query
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
return `@media
|
|
198
|
+
// Dimension query - negation is handled by inverting the condition
|
|
199
|
+
// because "not (width < x)" doesn't work reliably in browsers
|
|
200
|
+
const conditions = dimensionToMediaCondition(state.dimension || 'width', state.lowerBound, state.upperBound, state.negated);
|
|
201
|
+
// dimensionToMediaCondition returns array for negated ranges (OR branches)
|
|
202
|
+
return conditions.map((c) => `@media ${c}`);
|
|
182
203
|
}
|
|
183
|
-
return `@media ${condition}`;
|
|
184
204
|
}
|
|
185
205
|
/**
|
|
186
206
|
* Convert container condition to CSS at-rule
|
|
207
|
+
* Container queries support "not (condition)" syntax, so we can use it directly
|
|
187
208
|
*/
|
|
188
209
|
function containerToCSS(state) {
|
|
189
210
|
const name = state.containerName ? `${state.containerName} ` : '';
|
|
@@ -198,8 +219,8 @@ function containerToCSS(state) {
|
|
|
198
219
|
}
|
|
199
220
|
}
|
|
200
221
|
else {
|
|
201
|
-
// Dimension query
|
|
202
|
-
condition =
|
|
222
|
+
// Dimension query - container queries support "not (condition)"
|
|
223
|
+
condition = dimensionToContainerCondition(state.dimension || 'width', state.lowerBound, state.upperBound);
|
|
203
224
|
}
|
|
204
225
|
if (state.negated) {
|
|
205
226
|
return `@container ${name}not ${condition}`;
|
|
@@ -207,9 +228,10 @@ function containerToCSS(state) {
|
|
|
207
228
|
return `@container ${name}${condition}`;
|
|
208
229
|
}
|
|
209
230
|
/**
|
|
210
|
-
* Convert dimension bounds to
|
|
231
|
+
* Convert dimension bounds to container query condition (single string)
|
|
232
|
+
* Container queries support "not (condition)", so no need to invert manually
|
|
211
233
|
*/
|
|
212
|
-
function
|
|
234
|
+
function dimensionToContainerCondition(dimension, lowerBound, upperBound) {
|
|
213
235
|
if (lowerBound && upperBound) {
|
|
214
236
|
const lowerOp = lowerBound.inclusive ? '<=' : '<';
|
|
215
237
|
const upperOp = upperBound.inclusive ? '<=' : '<';
|
|
@@ -225,6 +247,58 @@ function dimensionToMediaCondition(dimension, lowerBound, upperBound) {
|
|
|
225
247
|
}
|
|
226
248
|
return '(width)'; // Fallback
|
|
227
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Convert dimension bounds to media condition(s)
|
|
252
|
+
* Returns an array because negated ranges produce OR branches (two separate conditions)
|
|
253
|
+
*/
|
|
254
|
+
function dimensionToMediaCondition(dimension, lowerBound, upperBound, negated) {
|
|
255
|
+
if (negated) {
|
|
256
|
+
// Invert the condition manually since "not (width < x)" doesn't work in browsers
|
|
257
|
+
// Single bounds: flip the operator → returns single condition
|
|
258
|
+
// Range: NOT (a <= x < b) = (x < a) OR (x >= b) → returns two conditions (OR branches)
|
|
259
|
+
if (lowerBound && upperBound) {
|
|
260
|
+
// Range query: (lower <= dim < upper) negated is (dim < lower) OR (dim >= upper)
|
|
261
|
+
// Return two separate conditions - these become separate variants
|
|
262
|
+
const lowerOp = lowerBound.inclusive ? '<' : '<=';
|
|
263
|
+
const upperOp = upperBound.inclusive ? '>' : '>=';
|
|
264
|
+
return [
|
|
265
|
+
`(${dimension} ${lowerOp} ${lowerBound.value})`,
|
|
266
|
+
`(${dimension} ${upperOp} ${upperBound.value})`,
|
|
267
|
+
];
|
|
268
|
+
}
|
|
269
|
+
else if (upperBound) {
|
|
270
|
+
// (dim < upper) negated is (dim >= upper)
|
|
271
|
+
// (dim <= upper) negated is (dim > upper)
|
|
272
|
+
const op = upperBound.inclusive ? '>' : '>=';
|
|
273
|
+
return [`(${dimension} ${op} ${upperBound.value})`];
|
|
274
|
+
}
|
|
275
|
+
else if (lowerBound) {
|
|
276
|
+
// (dim >= lower) negated is (dim < lower)
|
|
277
|
+
// (dim > lower) negated is (dim <= lower)
|
|
278
|
+
const op = lowerBound.inclusive ? '<' : '<=';
|
|
279
|
+
return [`(${dimension} ${op} ${lowerBound.value})`];
|
|
280
|
+
}
|
|
281
|
+
// Fallback - should not happen
|
|
282
|
+
return ['(width < 0px)'];
|
|
283
|
+
}
|
|
284
|
+
// Positive condition - always returns single condition
|
|
285
|
+
if (lowerBound && upperBound) {
|
|
286
|
+
const lowerOp = lowerBound.inclusive ? '<=' : '<';
|
|
287
|
+
const upperOp = upperBound.inclusive ? '<=' : '<';
|
|
288
|
+
return [
|
|
289
|
+
`(${lowerBound.value} ${lowerOp} ${dimension} ${upperOp} ${upperBound.value})`,
|
|
290
|
+
];
|
|
291
|
+
}
|
|
292
|
+
else if (upperBound) {
|
|
293
|
+
const op = upperBound.inclusive ? '<=' : '<';
|
|
294
|
+
return [`(${dimension} ${op} ${upperBound.value})`];
|
|
295
|
+
}
|
|
296
|
+
else if (lowerBound) {
|
|
297
|
+
const op = lowerBound.inclusive ? '>=' : '>';
|
|
298
|
+
return [`(${dimension} ${op} ${lowerBound.value})`];
|
|
299
|
+
}
|
|
300
|
+
return ['(width)']; // Fallback
|
|
301
|
+
}
|
|
228
302
|
/**
|
|
229
303
|
* Convert root condition to CSS selector prefix
|
|
230
304
|
*/
|
|
@@ -298,32 +372,164 @@ function mergeVariants(a, b) {
|
|
|
298
372
|
startingStyle: a.startingStyle || b.startingStyle,
|
|
299
373
|
};
|
|
300
374
|
}
|
|
375
|
+
function parseValue(str) {
|
|
376
|
+
const match = str.match(/^(\d+(?:\.\d+)?)(px|em|rem|vh|vw|%)$/i);
|
|
377
|
+
if (match) {
|
|
378
|
+
return { value: parseFloat(match[1]), unit: match[2].toLowerCase() };
|
|
379
|
+
}
|
|
380
|
+
return null;
|
|
381
|
+
}
|
|
382
|
+
function parseDimensionCondition(condition) {
|
|
383
|
+
// Try range syntax first: (600px <= width < 900px)
|
|
384
|
+
const rangeMatch = condition.match(/\(\s*(\d+(?:\.\d+)?(?:px|em|rem|vh|vw|%))\s*(<=?)\s*(width|height)\s*(<=?)\s*(\d+(?:\.\d+)?(?:px|em|rem|vh|vw|%))\s*\)/i);
|
|
385
|
+
if (rangeMatch) {
|
|
386
|
+
const lowerVal = parseValue(rangeMatch[1]);
|
|
387
|
+
const upperVal = parseValue(rangeMatch[5]);
|
|
388
|
+
if (lowerVal && upperVal && lowerVal.unit === upperVal.unit) {
|
|
389
|
+
return {
|
|
390
|
+
dimension: rangeMatch[3].toLowerCase(),
|
|
391
|
+
lowerBound: {
|
|
392
|
+
value: lowerVal.value,
|
|
393
|
+
unit: lowerVal.unit,
|
|
394
|
+
inclusive: rangeMatch[2] === '<=',
|
|
395
|
+
},
|
|
396
|
+
upperBound: {
|
|
397
|
+
value: upperVal.value,
|
|
398
|
+
unit: upperVal.unit,
|
|
399
|
+
inclusive: rangeMatch[4] === '<=',
|
|
400
|
+
},
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
// Try single bound: (width < 600px) or (width >= 900px)
|
|
405
|
+
const singleMatch = condition.match(/\(\s*(width|height)\s*(<=?|>=?)\s*(\d+(?:\.\d+)?(?:px|em|rem|vh|vw|%))\s*\)/i);
|
|
406
|
+
if (singleMatch) {
|
|
407
|
+
const val = parseValue(singleMatch[3]);
|
|
408
|
+
if (val) {
|
|
409
|
+
const op = singleMatch[2];
|
|
410
|
+
if (op === '<' || op === '<=') {
|
|
411
|
+
return {
|
|
412
|
+
dimension: singleMatch[1].toLowerCase(),
|
|
413
|
+
upperBound: {
|
|
414
|
+
value: val.value,
|
|
415
|
+
unit: val.unit,
|
|
416
|
+
inclusive: op === '<=',
|
|
417
|
+
},
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
else {
|
|
421
|
+
return {
|
|
422
|
+
dimension: singleMatch[1].toLowerCase(),
|
|
423
|
+
lowerBound: {
|
|
424
|
+
value: val.value,
|
|
425
|
+
unit: val.unit,
|
|
426
|
+
inclusive: op === '>=',
|
|
427
|
+
},
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
return null;
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Check if two dimension conditions are contradictory
|
|
436
|
+
* e.g., "width >= 900px" and "width < 900px" are contradictory
|
|
437
|
+
* Also handles ranges: "(600px <= width < 900px)" and "(width < 600px)" are contradictory
|
|
438
|
+
*/
|
|
439
|
+
function areDimensionContradictions(a, b) {
|
|
440
|
+
if (a.dimension !== b.dimension)
|
|
441
|
+
return false;
|
|
442
|
+
// Get effective bounds - considering both single-bound and ranges
|
|
443
|
+
const aLower = a.lowerBound;
|
|
444
|
+
const aUpper = a.upperBound;
|
|
445
|
+
const bLower = b.lowerBound;
|
|
446
|
+
const bUpper = b.upperBound;
|
|
447
|
+
// Check if units are compatible (only compare if same unit)
|
|
448
|
+
const getUnit = (bound) => bound?.unit;
|
|
449
|
+
const units = [aLower, aUpper, bLower, bUpper]
|
|
450
|
+
.filter(Boolean)
|
|
451
|
+
.map((b) => b.unit);
|
|
452
|
+
if (units.length > 0 && !units.every((u) => u === units[0])) {
|
|
453
|
+
return false; // Different units, can't determine
|
|
454
|
+
}
|
|
455
|
+
// Two conditions contradict if their valid ranges don't overlap
|
|
456
|
+
// A range is [aLowerVal, aUpperVal) or similar
|
|
457
|
+
// Default: -Infinity to +Infinity
|
|
458
|
+
const aLowerVal = aLower?.value ?? -Infinity;
|
|
459
|
+
const aUpperVal = aUpper?.value ?? Infinity;
|
|
460
|
+
const bLowerVal = bLower?.value ?? -Infinity;
|
|
461
|
+
const bUpperVal = bUpper?.value ?? Infinity;
|
|
462
|
+
// For non-inclusive bounds, adjust slightly for comparison
|
|
463
|
+
// But for simplicity, we'll use strict non-overlap check
|
|
464
|
+
// Two ranges [aL, aU) and [bL, bU) don't overlap if:
|
|
465
|
+
// aU <= bL or bU <= aL (considering inclusivity)
|
|
466
|
+
// Check if a's upper bound is at or below b's lower bound
|
|
467
|
+
if (aUpper && bLower && aUpper.value === bLower.value) {
|
|
468
|
+
// Same value - check inclusivity
|
|
469
|
+
// If a.upper is exclusive (<) and b.lower is inclusive (>=), they don't overlap at this point
|
|
470
|
+
// If a.upper is inclusive (<=) and b.lower is exclusive (>), they don't overlap
|
|
471
|
+
if (!aUpper.inclusive && bLower.inclusive) {
|
|
472
|
+
return true; // a < X and X <= b → no overlap at X
|
|
473
|
+
}
|
|
474
|
+
if (aUpper.inclusive && !bLower.inclusive) {
|
|
475
|
+
return true; // a <= X and X > b → no overlap at X
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
if (aUpperVal < bLowerVal)
|
|
479
|
+
return true;
|
|
480
|
+
// Check if b's upper bound is at or below a's lower bound
|
|
481
|
+
if (bUpper && aLower && bUpper.value === aLower.value) {
|
|
482
|
+
if (!bUpper.inclusive && aLower.inclusive) {
|
|
483
|
+
return true;
|
|
484
|
+
}
|
|
485
|
+
if (bUpper.inclusive && !aLower.inclusive) {
|
|
486
|
+
return true;
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
if (bUpperVal < aLowerVal)
|
|
490
|
+
return true;
|
|
491
|
+
return false;
|
|
492
|
+
}
|
|
301
493
|
/**
|
|
302
494
|
* Check if a set of media rules contains contradictions
|
|
303
495
|
* e.g., "@media (prefers-color-scheme: light)" and "@media not (prefers-color-scheme: light)"
|
|
496
|
+
* or "@media (width >= 900px)" and "@media (width < 900px)"
|
|
304
497
|
*/
|
|
305
498
|
function hasMediaContradiction(mediaRules) {
|
|
306
|
-
const
|
|
499
|
+
const conditions = new Map();
|
|
500
|
+
const dimensionConditions = [];
|
|
307
501
|
for (const rule of mediaRules) {
|
|
308
|
-
//
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
const posMatch = rule.match(/@media\s
|
|
502
|
+
// Check for negated media rule: @media not (...)
|
|
503
|
+
const notMatch = rule.match(/@media\s+not\s+(\([^)]+\))/i);
|
|
504
|
+
// Check for positive media rule: @media (...)
|
|
505
|
+
const posMatch = rule.match(/@media\s+(\([^)]+\))/i);
|
|
312
506
|
if (notMatch) {
|
|
313
|
-
|
|
314
|
-
const
|
|
507
|
+
// Normalize the condition (remove extra whitespace)
|
|
508
|
+
const key = notMatch[1].replace(/\s+/g, ' ').trim();
|
|
509
|
+
const existing = conditions.get(key);
|
|
315
510
|
if (existing && existing.positive) {
|
|
316
|
-
return true; // Found: (
|
|
511
|
+
return true; // Found: (condition) AND not (condition)
|
|
317
512
|
}
|
|
318
|
-
|
|
513
|
+
conditions.set(key, { positive: false, rule });
|
|
319
514
|
}
|
|
320
515
|
else if (posMatch) {
|
|
321
|
-
|
|
322
|
-
const
|
|
516
|
+
// Normalize the condition (remove extra whitespace)
|
|
517
|
+
const key = posMatch[1].replace(/\s+/g, ' ').trim();
|
|
518
|
+
const existing = conditions.get(key);
|
|
323
519
|
if (existing && !existing.positive) {
|
|
324
|
-
return true; // Found: not (
|
|
520
|
+
return true; // Found: not (condition) AND (condition)
|
|
521
|
+
}
|
|
522
|
+
conditions.set(key, { positive: true, rule });
|
|
523
|
+
// Also check for dimension contradictions
|
|
524
|
+
const dimCond = parseDimensionCondition(posMatch[1]);
|
|
525
|
+
if (dimCond) {
|
|
526
|
+
for (const existing of dimensionConditions) {
|
|
527
|
+
if (areDimensionContradictions(dimCond, existing)) {
|
|
528
|
+
return true;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
dimensionConditions.push(dimCond);
|
|
325
532
|
}
|
|
326
|
-
features.set(key, { positive: true, rule });
|
|
327
533
|
}
|
|
328
534
|
}
|
|
329
535
|
return false;
|
|
@@ -604,11 +810,18 @@ export function buildAtRulesFromVariant(variant) {
|
|
|
604
810
|
const atRules = [];
|
|
605
811
|
// Add media rules
|
|
606
812
|
if (variant.mediaRules.length > 0) {
|
|
607
|
-
//
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
813
|
+
// Each rule is either:
|
|
814
|
+
// - "@media (condition)" for positive conditions
|
|
815
|
+
// - "@media not (condition)" for negated conditions
|
|
816
|
+
// - "@media not print" for negated media types
|
|
817
|
+
// - "@media (inverted-condition)" for negated dimension queries (already inverted)
|
|
818
|
+
//
|
|
819
|
+
// We strip "@media " and join with " and "
|
|
820
|
+
// This produces valid CSS like:
|
|
821
|
+
// @media not (prefers-color-scheme: dark) and (width > 800px)
|
|
822
|
+
// which means: NOT(dark) AND (width > 800px)
|
|
823
|
+
const conditions = variant.mediaRules.map((r) => r.replace(/^@media\s*/, ''));
|
|
824
|
+
atRules.push(`@media ${conditions.join(' and ')}`);
|
|
612
825
|
}
|
|
613
826
|
// Add container rules
|
|
614
827
|
atRules.push(...variant.containerRules);
|
package/es/tasty/states/index.js
CHANGED