@cube-dev/ui-kit 0.0.0-canary-9159359 → 0.0.0-canary-a6dee8e
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 +3 -3
- 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 +3 -5
- 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 +8 -2
- 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/debug.js +1 -1
- package/es/tasty/index.js +3 -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/providers/BreakpointsProvider.js +16 -0
- package/es/tasty/styles/align.js +1 -1
- package/es/tasty/styles/border.js +1 -1
- package/es/tasty/styles/boxShadow.combinator.js +1 -1
- package/es/tasty/styles/color.js +1 -1
- package/es/tasty/styles/createStyle.js +1 -1
- package/es/tasty/styles/dimension.js +1 -1
- package/es/tasty/styles/display.js +1 -1
- package/es/tasty/styles/fade.js +1 -1
- package/es/tasty/styles/fill.js +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 +21 -14
- 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/getModCombinations.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/renderStyles.js +343 -63
- package/es/tasty/utils/responsive.js +60 -0
- 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 +826 -826
- package/types/components/actions/Button/Button.d.ts +1644 -1644
- package/types/components/actions/CommandMenu/styled.d.ts +4130 -4130
- package/types/components/actions/Menu/styled.d.ts +4298 -4298
- package/types/components/content/List/SectionHeading.d.ts +56 -56
- package/types/components/content/Text.d.ts +122 -122
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +56 -56
- package/types/components/fields/Select/Select.d.ts +826 -826
- package/types/components/fields/Slider/elements.d.ts +4956 -4956
- package/types/provider.d.ts +2 -1
- package/types/tasty/index.d.ts +3 -1
- package/types/tasty/providers/BreakpointsProvider.d.ts +8 -0
- package/types/tasty/styles/types.d.ts +3 -3
- package/types/tasty/tasty.d.ts +831 -828
- package/types/tasty/utils/renderStyles.d.ts +3 -3
- package/types/tasty/utils/responsive.d.ts +8 -0
- package/types/tasty/utils/styles.d.ts +4 -8
|
@@ -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-a6dee8e
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -20,7 +20,14 @@
|
|
|
20
20
|
import { Lru } from '../parser/lru';
|
|
21
21
|
import { createStyle, STYLE_HANDLER_MAP } from '../styles';
|
|
22
22
|
import { getModCombinationsIterative } from './getModCombinations';
|
|
23
|
+
import { normalizeStyleZones, pointsToZones, } from './responsive';
|
|
23
24
|
import { computeState, getModSelector, stringifyStyles, styleStateMapToStyleStateDataList, } from './styles';
|
|
25
|
+
// Detect if a value is a state map whose entries contain responsive arrays
|
|
26
|
+
function stateMapHasResponsiveArrays(value) {
|
|
27
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
28
|
+
return false;
|
|
29
|
+
return Object.values(value).some((v) => Array.isArray(v));
|
|
30
|
+
}
|
|
24
31
|
// Cache logical rules per styles+breakpoints to avoid recomputation across identical calls
|
|
25
32
|
const logicalRulesCache = new Lru(5000);
|
|
26
33
|
// Normalize selector suffixes coming from `$` in style handler results.
|
|
@@ -380,10 +387,11 @@ function filterModsByPriority(allMods, styleStates, lookupStyles, parsedModsCach
|
|
|
380
387
|
}
|
|
381
388
|
/**
|
|
382
389
|
* Explode a style handler result into logical rules with proper mapping
|
|
383
|
-
* Phase 1: Handler fan-out ($ selectors)
|
|
384
|
-
* Phase 2:
|
|
390
|
+
* Phase 1: Handler fan-out ($ selectors, arrays)
|
|
391
|
+
* Phase 2: Responsive fan-out (breakpoint arrays)
|
|
392
|
+
* Phase 3: Rule materialization
|
|
385
393
|
*/
|
|
386
|
-
function explodeHandlerResult(result, selectorSuffix = '') {
|
|
394
|
+
function explodeHandlerResult(result, zones, selectorSuffix = '', forceBreakpointIdx, responsiveOrigin = false) {
|
|
387
395
|
if (!result)
|
|
388
396
|
return [];
|
|
389
397
|
// Phase 1: Handler fan-out - normalize to array
|
|
@@ -393,34 +401,90 @@ function explodeHandlerResult(result, selectorSuffix = '') {
|
|
|
393
401
|
if (!item || typeof item !== 'object')
|
|
394
402
|
continue;
|
|
395
403
|
const { $, ...styleProps } = item;
|
|
396
|
-
//
|
|
397
|
-
const
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
404
|
+
// Phase 2: Responsive fan-out - handle array values
|
|
405
|
+
const breakpointGroups = new Map();
|
|
406
|
+
if (forceBreakpointIdx !== undefined) {
|
|
407
|
+
// When breakpoint is forced (from responsive processing), use all props for that breakpoint
|
|
408
|
+
const group = {};
|
|
409
|
+
for (const [prop, value] of Object.entries(styleProps)) {
|
|
410
|
+
if (value != null && value !== '') {
|
|
411
|
+
group[prop] = String(value);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
if (Object.keys(group).length > 0) {
|
|
415
|
+
breakpointGroups.set(forceBreakpointIdx, group);
|
|
401
416
|
}
|
|
402
417
|
}
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
418
|
+
else {
|
|
419
|
+
// Normal processing - handle responsive arrays
|
|
420
|
+
const responsiveProps = [];
|
|
421
|
+
for (const [prop, value] of Object.entries(styleProps)) {
|
|
422
|
+
if (Array.isArray(value)) {
|
|
423
|
+
// Responsive array - create entry for each breakpoint
|
|
424
|
+
value.forEach((val, idx) => {
|
|
425
|
+
if (val != null && val !== '' && idx < zones.length) {
|
|
426
|
+
responsiveProps.push({ prop, value: val, breakpointIdx: idx });
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
else if (value != null && value !== '') {
|
|
431
|
+
// Single value - goes to base breakpoint
|
|
432
|
+
responsiveProps.push({ prop, value, breakpointIdx: 0 });
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
// Group by breakpoint index
|
|
436
|
+
for (const { prop, value, breakpointIdx } of responsiveProps) {
|
|
437
|
+
const group = breakpointGroups.get(breakpointIdx) || {};
|
|
438
|
+
group[prop] = String(value);
|
|
439
|
+
breakpointGroups.set(breakpointIdx, group);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
// Phase 3: Selector fan-out - handle $ suffixes
|
|
406
443
|
// IMPORTANT: If we are already in a pseudo-element context (contains '::'),
|
|
407
444
|
// CSS does not allow further descendant/child selectors (e.g., '>*') after
|
|
408
|
-
// a pseudo-element. In such cases we must ignore the `$`-derived
|
|
445
|
+
// a pseudo-element. In such cases we must ignore only the `$`-derived
|
|
446
|
+
// selectors while still preserving base declarations for the current
|
|
447
|
+
// selector. Previously this branch returned early and accidentally dropped
|
|
448
|
+
// all declarations computed before, including valid base ones.
|
|
409
449
|
const inPseudoElementContext = selectorSuffix.includes('::');
|
|
410
450
|
if (inPseudoElementContext && $) {
|
|
411
451
|
// Skip this item entirely to avoid producing invalid selectors like
|
|
412
|
-
// `.t0::before>*`.
|
|
452
|
+
// `.t0::before>*`. Other items (without $) in the same handler result
|
|
453
|
+
// will still be processed and preserved.
|
|
413
454
|
continue;
|
|
414
455
|
}
|
|
415
456
|
const suffixes = $
|
|
416
457
|
? (Array.isArray($) ? $ : [$]).map((s) => selectorSuffix + normalizeDollarSelectorSuffix(String(s)))
|
|
417
458
|
: [selectorSuffix];
|
|
418
|
-
//
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
459
|
+
// Early identical-breakpoint coalescing: skip duplicate declarations
|
|
460
|
+
const seenDeclarations = new Map();
|
|
461
|
+
// Process breakpoints in order to prefer lower breakpoint indices
|
|
462
|
+
const sortedBreakpoints = Array.from(breakpointGroups.entries()).sort(([a], [b]) => a - b);
|
|
463
|
+
for (const [breakpointIdx, declarations] of sortedBreakpoints) {
|
|
464
|
+
if (Object.keys(declarations).length === 0)
|
|
465
|
+
continue;
|
|
466
|
+
// Create a stable hash key for identical declarations
|
|
467
|
+
const declarationKeys = Object.keys(declarations).sort();
|
|
468
|
+
const declarationHash = declarationKeys
|
|
469
|
+
.map((key) => `${key}:${declarations[key]}`)
|
|
470
|
+
.join(';');
|
|
471
|
+
const existingBreakpointIdx = seenDeclarations.get(declarationHash);
|
|
472
|
+
if (existingBreakpointIdx !== undefined) {
|
|
473
|
+
// Skip this breakpoint as it has identical declarations to a previous one
|
|
474
|
+
// The CSS cascade will handle the responsive behavior correctly
|
|
475
|
+
continue;
|
|
476
|
+
}
|
|
477
|
+
// Mark this declaration set as seen
|
|
478
|
+
seenDeclarations.set(declarationHash, breakpointIdx);
|
|
479
|
+
// Create logical rules for this unique declaration set
|
|
480
|
+
for (const suffix of suffixes) {
|
|
481
|
+
logicalRules.push({
|
|
482
|
+
selectorSuffix: suffix,
|
|
483
|
+
breakpointIdx,
|
|
484
|
+
declarations,
|
|
485
|
+
responsiveSource: responsiveOrigin || forceBreakpointIdx !== undefined,
|
|
486
|
+
});
|
|
487
|
+
}
|
|
424
488
|
}
|
|
425
489
|
}
|
|
426
490
|
return logicalRules;
|
|
@@ -484,7 +548,7 @@ function convertHandlerResultToCSS(result, selectorSuffix = '') {
|
|
|
484
548
|
* This consolidates the common logic for handling mod combinations, priority filtering,
|
|
485
549
|
* contradiction checking, and selector optimization.
|
|
486
550
|
*/
|
|
487
|
-
function processStateMapsWithModCombinations(styleStates, lookupStyles, handler, parentSuffix, allLogicalRules) {
|
|
551
|
+
function processStateMapsWithModCombinations(styleStates, lookupStyles, zones, handler, parentSuffix, allLogicalRules, cachedNormalizeStyleZones, breakpointIdx, responsiveOrigin = false) {
|
|
488
552
|
// Collect all mods from style states
|
|
489
553
|
const allMods = [];
|
|
490
554
|
const seenMods = new Set();
|
|
@@ -515,7 +579,7 @@ function processStateMapsWithModCombinations(styleStates, lookupStyles, handler,
|
|
|
515
579
|
const result = handler(stateProps);
|
|
516
580
|
if (!result)
|
|
517
581
|
return;
|
|
518
|
-
const logicalRules = explodeHandlerResult(result, parentSuffix);
|
|
582
|
+
const logicalRules = explodeHandlerResult(result, zones, parentSuffix, breakpointIdx, responsiveOrigin);
|
|
519
583
|
allLogicalRules.push(...logicalRules);
|
|
520
584
|
return;
|
|
521
585
|
}
|
|
@@ -561,18 +625,46 @@ function processStateMapsWithModCombinations(styleStates, lookupStyles, handler,
|
|
|
561
625
|
return sel.startsWith(':not(') ? sel.slice(5, -1) : `:not(${sel})`;
|
|
562
626
|
})
|
|
563
627
|
.join('')}`;
|
|
564
|
-
//
|
|
565
|
-
const
|
|
566
|
-
if (
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
628
|
+
// Check if any state value is responsive (array)
|
|
629
|
+
const hasResponsiveStateValues = lookupStyles.some((style) => Array.isArray(stateProps[style]));
|
|
630
|
+
if (hasResponsiveStateValues) {
|
|
631
|
+
// Fan out by breakpoint for responsive state values
|
|
632
|
+
const propsByPoint = zones.map((_, i) => {
|
|
633
|
+
const pointProps = {};
|
|
634
|
+
lookupStyles.forEach((style) => {
|
|
635
|
+
const v = stateProps[style];
|
|
636
|
+
if (Array.isArray(v)) {
|
|
637
|
+
const arr = cachedNormalizeStyleZones(v, zones.length);
|
|
638
|
+
pointProps[style] = arr?.[i];
|
|
639
|
+
}
|
|
640
|
+
else {
|
|
641
|
+
pointProps[style] = v;
|
|
642
|
+
}
|
|
643
|
+
});
|
|
644
|
+
return pointProps;
|
|
645
|
+
});
|
|
646
|
+
propsByPoint.forEach((props, bpIdx) => {
|
|
647
|
+
const res = handler(props);
|
|
648
|
+
if (!res)
|
|
649
|
+
return;
|
|
650
|
+
const logical = explodeHandlerResult(res, zones, `${modsSelectors}${parentSuffix}`, bpIdx, true);
|
|
651
|
+
allLogicalRules.push(...logical);
|
|
652
|
+
});
|
|
653
|
+
}
|
|
654
|
+
else {
|
|
655
|
+
// Simple non-responsive state values
|
|
656
|
+
const result = handler(stateProps);
|
|
657
|
+
if (!result)
|
|
658
|
+
return;
|
|
659
|
+
const logical = explodeHandlerResult(result, zones, `${modsSelectors}${parentSuffix}`, breakpointIdx, responsiveOrigin);
|
|
660
|
+
allLogicalRules.push(...logical);
|
|
661
|
+
}
|
|
570
662
|
});
|
|
571
663
|
}
|
|
572
664
|
/**
|
|
573
665
|
* Convert logical rules to final StyleResult format
|
|
574
666
|
*/
|
|
575
|
-
function materializeRules(logicalRules, className) {
|
|
667
|
+
function materializeRules(logicalRules, className, zones) {
|
|
576
668
|
return logicalRules.map((rule) => {
|
|
577
669
|
// Generate base selector
|
|
578
670
|
let selector = `.${className}${rule.selectorSuffix}`;
|
|
@@ -583,9 +675,16 @@ function materializeRules(logicalRules, className) {
|
|
|
583
675
|
const declarations = Object.entries(rule.declarations)
|
|
584
676
|
.map(([prop, value]) => `${prop}: ${value};`)
|
|
585
677
|
.join(' ');
|
|
678
|
+
const q = rule.breakpointIdx > 0
|
|
679
|
+
? zones[rule.breakpointIdx]?.mediaQuery
|
|
680
|
+
: rule.responsiveSource
|
|
681
|
+
? zones[0]?.mediaQuery
|
|
682
|
+
: undefined;
|
|
683
|
+
const atRules = q ? [`@media ${q}`] : undefined;
|
|
586
684
|
return {
|
|
587
685
|
selector,
|
|
588
686
|
declarations,
|
|
687
|
+
atRules,
|
|
589
688
|
};
|
|
590
689
|
});
|
|
591
690
|
}
|
|
@@ -593,8 +692,102 @@ function materializeRules(logicalRules, className) {
|
|
|
593
692
|
* Core style processing logic that generates logical rules
|
|
594
693
|
* Used by the unified renderStyles function
|
|
595
694
|
*/
|
|
596
|
-
function generateLogicalRules(styles, parentSuffix = '') {
|
|
695
|
+
function generateLogicalRules(styles, responsive = [], parentSuffix = '') {
|
|
696
|
+
const zones = pointsToZones(responsive || []);
|
|
597
697
|
const allLogicalRules = [];
|
|
698
|
+
// Cache for normalizeStyleZones results to avoid repeated computation
|
|
699
|
+
// WeakMap allows automatic cleanup when arrays are garbage collected
|
|
700
|
+
const normalizeCache = new WeakMap();
|
|
701
|
+
// Helper function to get cached normalizeStyleZones result
|
|
702
|
+
function cachedNormalizeStyleZones(value, zoneNumber) {
|
|
703
|
+
// Only cache for arrays - other types are fast to process
|
|
704
|
+
if (!Array.isArray(value)) {
|
|
705
|
+
return normalizeStyleZones(value, zoneNumber);
|
|
706
|
+
}
|
|
707
|
+
// Check if we have a cache for this array reference
|
|
708
|
+
let zoneCache = normalizeCache.get(value);
|
|
709
|
+
if (!zoneCache) {
|
|
710
|
+
zoneCache = new Map();
|
|
711
|
+
normalizeCache.set(value, zoneCache);
|
|
712
|
+
}
|
|
713
|
+
// Check if we have a cached result for this zone count
|
|
714
|
+
let result = zoneCache.get(zoneNumber);
|
|
715
|
+
if (result === undefined) {
|
|
716
|
+
result = normalizeStyleZones(value, zoneNumber);
|
|
717
|
+
zoneCache.set(zoneNumber, result);
|
|
718
|
+
}
|
|
719
|
+
return result;
|
|
720
|
+
}
|
|
721
|
+
// Local versions of helpers that leverage cachedNormalizeStyleZones
|
|
722
|
+
function stateMapToArrayOfStateMapsLocal(value, zoneNumber) {
|
|
723
|
+
// Short-circuit for single zone - avoid array allocation
|
|
724
|
+
if (zoneNumber === 1) {
|
|
725
|
+
const singleMap = {};
|
|
726
|
+
for (const [state, stateValue] of Object.entries(value)) {
|
|
727
|
+
if (Array.isArray(stateValue)) {
|
|
728
|
+
// Take the first value from the array or null if empty
|
|
729
|
+
singleMap[state] = stateValue.length > 0 ? stateValue[0] : null;
|
|
730
|
+
}
|
|
731
|
+
else {
|
|
732
|
+
singleMap[state] = stateValue;
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
return [singleMap];
|
|
736
|
+
}
|
|
737
|
+
const result = Array.from({ length: zoneNumber }, () => ({}));
|
|
738
|
+
for (const [state, stateValue] of Object.entries(value)) {
|
|
739
|
+
const perZone = Array.isArray(stateValue)
|
|
740
|
+
? cachedNormalizeStyleZones(stateValue, zoneNumber)
|
|
741
|
+
: Array(zoneNumber).fill(stateValue);
|
|
742
|
+
for (let i = 0; i < zoneNumber; i++) {
|
|
743
|
+
const v = perZone[i];
|
|
744
|
+
result[i][state] = v;
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
return result;
|
|
748
|
+
}
|
|
749
|
+
function normalizeArrayWithStateMapsLocal(valueArray, zoneNumber) {
|
|
750
|
+
// Short-circuit for single zone - avoid array propagation and mapping
|
|
751
|
+
if (zoneNumber === 1) {
|
|
752
|
+
const firstEntry = valueArray.length > 0 ? valueArray[0] : null;
|
|
753
|
+
if (firstEntry &&
|
|
754
|
+
typeof firstEntry === 'object' &&
|
|
755
|
+
!Array.isArray(firstEntry)) {
|
|
756
|
+
return [firstEntry];
|
|
757
|
+
}
|
|
758
|
+
return [{ '': firstEntry }];
|
|
759
|
+
}
|
|
760
|
+
const propagated = cachedNormalizeStyleZones(valueArray, zoneNumber);
|
|
761
|
+
// Trim trailing null/undefined entries to reduce processing
|
|
762
|
+
let lastNonNullIndex = propagated.length - 1;
|
|
763
|
+
while (lastNonNullIndex >= 0 && propagated[lastNonNullIndex] == null) {
|
|
764
|
+
lastNonNullIndex--;
|
|
765
|
+
}
|
|
766
|
+
// If all entries are null, return minimal array
|
|
767
|
+
if (lastNonNullIndex < 0) {
|
|
768
|
+
return Array.from({ length: zoneNumber }, () => ({ '': null }));
|
|
769
|
+
}
|
|
770
|
+
// Process only up to the last non-null entry, then fill the rest with the last value
|
|
771
|
+
const result = [];
|
|
772
|
+
let lastProcessedEntry = null;
|
|
773
|
+
for (let i = 0; i <= lastNonNullIndex; i++) {
|
|
774
|
+
const entry = propagated[i];
|
|
775
|
+
let processedEntry;
|
|
776
|
+
if (entry && typeof entry === 'object' && !Array.isArray(entry)) {
|
|
777
|
+
processedEntry = entry;
|
|
778
|
+
}
|
|
779
|
+
else {
|
|
780
|
+
processedEntry = { '': entry };
|
|
781
|
+
}
|
|
782
|
+
result.push(processedEntry);
|
|
783
|
+
lastProcessedEntry = processedEntry;
|
|
784
|
+
}
|
|
785
|
+
// Fill remaining slots with the last processed entry (CSS cascade behavior)
|
|
786
|
+
for (let i = lastNonNullIndex + 1; i < zoneNumber; i++) {
|
|
787
|
+
result.push(lastProcessedEntry || { '': null });
|
|
788
|
+
}
|
|
789
|
+
return result;
|
|
790
|
+
}
|
|
598
791
|
// Process styles recursively, preserving mod selectors and combining with nested selector suffixes
|
|
599
792
|
function processStyles(currentStyles, parentSuffix = '') {
|
|
600
793
|
const keys = Object.keys(currentStyles || {});
|
|
@@ -623,51 +816,119 @@ function generateLogicalRules(styles, parentSuffix = '') {
|
|
|
623
816
|
return;
|
|
624
817
|
}
|
|
625
818
|
seenHandlers.add(handler);
|
|
819
|
+
let isResponsive = false;
|
|
626
820
|
const lookupStyles = handler.__lookupStyles;
|
|
627
821
|
const filteredStyleMap = lookupStyles.reduce((map, name) => {
|
|
628
822
|
const value = currentStyles?.[name];
|
|
629
823
|
if (value !== undefined) {
|
|
630
|
-
map
|
|
824
|
+
// Case 1: state-map-of-arrays → array-of-state-maps
|
|
825
|
+
if (value &&
|
|
826
|
+
typeof value === 'object' &&
|
|
827
|
+
!Array.isArray(value) &&
|
|
828
|
+
stateMapHasResponsiveArrays(value)) {
|
|
829
|
+
map[name] = stateMapToArrayOfStateMapsLocal(value, zones.length);
|
|
830
|
+
isResponsive = true;
|
|
831
|
+
}
|
|
832
|
+
else if (Array.isArray(value)) {
|
|
833
|
+
// Case 2: array that may contain state maps → normalize to array-of-state-maps
|
|
834
|
+
if (value.length > 0) {
|
|
835
|
+
map[name] = normalizeArrayWithStateMapsLocal(value, zones.length);
|
|
836
|
+
isResponsive = true;
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
else {
|
|
840
|
+
map[name] = value;
|
|
841
|
+
}
|
|
631
842
|
}
|
|
632
843
|
return map;
|
|
633
844
|
}, {});
|
|
634
845
|
handlerQueue.push({
|
|
635
846
|
handler,
|
|
636
847
|
styleMap: filteredStyleMap,
|
|
848
|
+
isResponsive,
|
|
637
849
|
});
|
|
638
850
|
});
|
|
639
851
|
});
|
|
640
|
-
// Process handlers
|
|
641
|
-
handlerQueue.forEach(({ handler, styleMap }) => {
|
|
852
|
+
// Process handlers using the three-phase approach
|
|
853
|
+
handlerQueue.forEach(({ handler, styleMap, isResponsive }) => {
|
|
642
854
|
const lookupStyles = handler.__lookupStyles;
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
const
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
//
|
|
650
|
-
const
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
855
|
+
if (isResponsive) {
|
|
856
|
+
// For responsive styles, resolve arrays using normalizeStyleZones
|
|
857
|
+
const valueMap = lookupStyles.reduce((map, style) => {
|
|
858
|
+
map[style] = cachedNormalizeStyleZones(styleMap[style], zones.length);
|
|
859
|
+
return map;
|
|
860
|
+
}, {});
|
|
861
|
+
// Create props for each breakpoint
|
|
862
|
+
const propsByPoint = zones.map((zone, i) => {
|
|
863
|
+
const pointProps = {};
|
|
864
|
+
lookupStyles.forEach((style) => {
|
|
865
|
+
if (valueMap != null && valueMap[style] != null) {
|
|
866
|
+
pointProps[style] = valueMap[style][i];
|
|
867
|
+
}
|
|
868
|
+
});
|
|
869
|
+
return pointProps;
|
|
870
|
+
});
|
|
871
|
+
// Call handler for each breakpoint, with state map processing if needed
|
|
872
|
+
propsByPoint.forEach((pointProps, breakpointIdx) => {
|
|
873
|
+
const hasStateMapsAtPoint = lookupStyles.some((style) => {
|
|
874
|
+
const v = pointProps[style];
|
|
875
|
+
return v && typeof v === 'object' && !Array.isArray(v);
|
|
876
|
+
});
|
|
877
|
+
if (hasStateMapsAtPoint) {
|
|
878
|
+
// Build styleStates from point props
|
|
879
|
+
const styleStates = {};
|
|
880
|
+
lookupStyles.forEach((style) => {
|
|
881
|
+
const v = pointProps[style];
|
|
882
|
+
if (v && typeof v === 'object' && !Array.isArray(v)) {
|
|
883
|
+
const { states } = styleStateMapToStyleStateDataList(v);
|
|
884
|
+
styleStates[style] = states;
|
|
885
|
+
}
|
|
886
|
+
else {
|
|
887
|
+
styleStates[style] = [{ mods: [], notMods: [], value: v }];
|
|
888
|
+
}
|
|
889
|
+
});
|
|
890
|
+
// Use the consolidated helper for mod combination processing
|
|
891
|
+
processStateMapsWithModCombinations(styleStates, lookupStyles, zones || [], handler, parentSuffix, allLogicalRules, cachedNormalizeStyleZones, breakpointIdx, true);
|
|
656
892
|
}
|
|
657
893
|
else {
|
|
658
|
-
|
|
659
|
-
|
|
894
|
+
const result = handler(pointProps);
|
|
895
|
+
if (!result)
|
|
896
|
+
return;
|
|
897
|
+
const logicalRules = explodeHandlerResult(result, zones || [], parentSuffix, breakpointIdx, true);
|
|
898
|
+
allLogicalRules.push(...logicalRules);
|
|
660
899
|
}
|
|
661
900
|
});
|
|
662
|
-
// Use the consolidated helper for mod combination processing
|
|
663
|
-
processStateMapsWithModCombinations(styleStates, lookupStyles, handler, parentSuffix, allLogicalRules);
|
|
664
901
|
}
|
|
665
902
|
else {
|
|
666
|
-
//
|
|
667
|
-
const
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
903
|
+
// For non-responsive styles, check if any values have state maps
|
|
904
|
+
const hasStateMaps = lookupStyles.some((style) => {
|
|
905
|
+
const value = styleMap[style];
|
|
906
|
+
return value && typeof value === 'object' && !Array.isArray(value);
|
|
907
|
+
});
|
|
908
|
+
if (hasStateMaps) {
|
|
909
|
+
// Build styleStates from styleMap
|
|
910
|
+
const styleStates = {};
|
|
911
|
+
lookupStyles.forEach((style) => {
|
|
912
|
+
const value = styleMap[style];
|
|
913
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
914
|
+
const { states } = styleStateMapToStyleStateDataList(value);
|
|
915
|
+
styleStates[style] = states;
|
|
916
|
+
}
|
|
917
|
+
else {
|
|
918
|
+
// Simple value, create a single state
|
|
919
|
+
styleStates[style] = [{ mods: [], notMods: [], value }];
|
|
920
|
+
}
|
|
921
|
+
});
|
|
922
|
+
// Use the consolidated helper for mod combination processing
|
|
923
|
+
processStateMapsWithModCombinations(styleStates, lookupStyles, zones || [], handler, parentSuffix, allLogicalRules, cachedNormalizeStyleZones);
|
|
924
|
+
}
|
|
925
|
+
else {
|
|
926
|
+
// Simple case: no state maps, call handler directly
|
|
927
|
+
const result = handler(styleMap);
|
|
928
|
+
if (result) {
|
|
929
|
+
const logical = explodeHandlerResult(result, zones || [], parentSuffix);
|
|
930
|
+
allLogicalRules.push(...logical);
|
|
931
|
+
}
|
|
671
932
|
}
|
|
672
933
|
}
|
|
673
934
|
});
|
|
@@ -676,18 +937,21 @@ function generateLogicalRules(styles, parentSuffix = '') {
|
|
|
676
937
|
processStyles(styles, parentSuffix);
|
|
677
938
|
return allLogicalRules;
|
|
678
939
|
}
|
|
679
|
-
export function renderStyles(styles, classNameOrSelector) {
|
|
940
|
+
export function renderStyles(styles, responsive = [], classNameOrSelector) {
|
|
680
941
|
const directSelector = !!classNameOrSelector;
|
|
681
942
|
if (!styles) {
|
|
682
943
|
return directSelector ? [] : { rules: [] };
|
|
683
944
|
}
|
|
684
|
-
// Generate logical rules using shared pipeline (memoized per styles)
|
|
945
|
+
// Generate logical rules using shared pipeline (memoized per styles+breakpoints)
|
|
685
946
|
const stylesKey = stringifyStyles(styles);
|
|
686
|
-
|
|
947
|
+
const bpKey = (responsive || []).join(',');
|
|
948
|
+
const lrKey = `${stylesKey}#${bpKey}`;
|
|
949
|
+
let allLogicalRules = logicalRulesCache.get(lrKey);
|
|
687
950
|
if (!allLogicalRules) {
|
|
688
|
-
allLogicalRules = generateLogicalRules(styles);
|
|
689
|
-
logicalRulesCache.set(
|
|
951
|
+
allLogicalRules = generateLogicalRules(styles, responsive);
|
|
952
|
+
logicalRulesCache.set(lrKey, allLogicalRules);
|
|
690
953
|
}
|
|
954
|
+
const zones = pointsToZones(responsive || []);
|
|
691
955
|
if (directSelector) {
|
|
692
956
|
// Direct selector mode: convert logical rules directly to StyleResult format
|
|
693
957
|
if (!classNameOrSelector) {
|
|
@@ -709,17 +973,24 @@ export function renderStyles(styles, classNameOrSelector) {
|
|
|
709
973
|
const declarations = Object.entries(rule.declarations)
|
|
710
974
|
.map(([prop, value]) => `${prop}: ${value};`)
|
|
711
975
|
.join(' ');
|
|
976
|
+
const q = rule.breakpointIdx > 0
|
|
977
|
+
? zones[rule.breakpointIdx]?.mediaQuery
|
|
978
|
+
: rule.responsiveSource
|
|
979
|
+
? zones[0]?.mediaQuery
|
|
980
|
+
: undefined;
|
|
981
|
+
const atRules = q ? [`@media ${q}`] : undefined;
|
|
712
982
|
return {
|
|
713
983
|
selector: finalSelector,
|
|
714
984
|
declarations,
|
|
985
|
+
atRules,
|
|
715
986
|
};
|
|
716
987
|
});
|
|
717
988
|
}
|
|
718
989
|
// Standard mode: use accumulation and materialization with className
|
|
719
990
|
const accumulatedRules = new Map();
|
|
720
991
|
for (const rule of allLogicalRules) {
|
|
721
|
-
// Create a key based on selectorSuffix
|
|
722
|
-
const ruleKey = rule.selectorSuffix
|
|
992
|
+
// Create a key based on breakpointIdx, selectorSuffix, and responsiveOrigin
|
|
993
|
+
const ruleKey = `${rule.breakpointIdx}|${rule.selectorSuffix}|${rule.responsiveSource}`;
|
|
723
994
|
const existing = accumulatedRules.get(ruleKey);
|
|
724
995
|
if (existing) {
|
|
725
996
|
// Merge declarations from this rule into the existing one
|
|
@@ -729,7 +1000,9 @@ export function renderStyles(styles, classNameOrSelector) {
|
|
|
729
1000
|
// Create a new accumulated rule
|
|
730
1001
|
accumulatedRules.set(ruleKey, {
|
|
731
1002
|
selectorSuffix: rule.selectorSuffix,
|
|
1003
|
+
breakpointIdx: rule.breakpointIdx,
|
|
732
1004
|
declarations: { ...rule.declarations },
|
|
1005
|
+
responsiveSource: rule.responsiveSource,
|
|
733
1006
|
});
|
|
734
1007
|
}
|
|
735
1008
|
}
|
|
@@ -739,9 +1012,16 @@ export function renderStyles(styles, classNameOrSelector) {
|
|
|
739
1012
|
const declarations = Object.entries(rule.declarations)
|
|
740
1013
|
.map(([prop, value]) => `${prop}: ${value};`)
|
|
741
1014
|
.join(' ');
|
|
1015
|
+
const q = rule.breakpointIdx > 0
|
|
1016
|
+
? zones[rule.breakpointIdx]?.mediaQuery
|
|
1017
|
+
: rule.responsiveSource
|
|
1018
|
+
? zones[0]?.mediaQuery
|
|
1019
|
+
: undefined;
|
|
1020
|
+
const atRules = q ? [`@media ${q}`] : undefined;
|
|
742
1021
|
return {
|
|
743
1022
|
selector: rule.selectorSuffix || '',
|
|
744
1023
|
declarations,
|
|
1024
|
+
atRules,
|
|
745
1025
|
needsClassName: true, // Flag for injector to prepend className
|
|
746
1026
|
};
|
|
747
1027
|
});
|
|
@@ -750,7 +1030,7 @@ export function renderStyles(styles, classNameOrSelector) {
|
|
|
750
1030
|
};
|
|
751
1031
|
}
|
|
752
1032
|
// Materialize the accumulated logical rules into final format
|
|
753
|
-
const finalRulesRaw = materializeRules(Array.from(accumulatedRules.values()), classNameOrSelector);
|
|
1033
|
+
const finalRulesRaw = materializeRules(Array.from(accumulatedRules.values()), classNameOrSelector, zones || []);
|
|
754
1034
|
// Simplified deduplication (should be much less work now)
|
|
755
1035
|
const seen = new Set();
|
|
756
1036
|
const finalRules = finalRulesRaw.filter((rule) => {
|