@cube-dev/ui-kit 0.0.0-canary-e5edbab → 0.0.0-canary-7c4d463
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/CHANGELOG.md +18 -0
- package/es/_internal/hooks/index.js +1 -1
- package/es/_internal/hooks/use-chained-callback.js +1 -1
- package/es/_internal/hooks/use-debounced-value.js +1 -1
- package/es/_internal/hooks/use-deprecation-warning.js +1 -1
- package/es/_internal/hooks/use-effect-once.js +1 -1
- package/es/_internal/hooks/use-event.js +1 -1
- package/es/_internal/hooks/use-is-first-render.js +1 -1
- package/es/_internal/hooks/use-sync-ref.js +1 -1
- package/es/_internal/hooks/use-timer/index.js +1 -1
- package/es/_internal/hooks/use-timer/timer.js +1 -1
- package/es/_internal/hooks/use-timer/use-timer.js +1 -1
- package/es/_internal/hooks/use-update-effect.js +1 -1
- package/es/_internal/hooks/use-warn.js +1 -1
- package/es/_internal/index.js +1 -1
- package/es/components/Block.js +1 -1
- package/es/components/CollectionItem.js +1 -1
- package/es/components/GlobalStyles.js +1 -1
- package/es/components/GridProvider.js +1 -1
- package/es/components/HiddenInput.js +1 -1
- package/es/components/OpenTrasition.js +1 -1
- package/es/components/Root.js +1 -1
- package/es/components/actions/Action/Action.js +1 -1
- package/es/components/actions/Button/Button.js +1 -1
- package/es/components/actions/Button/index.js +1 -1
- package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/es/components/actions/CommandMenu/index.js +1 -1
- package/es/components/actions/CommandMenu/styled.js +1 -1
- package/es/components/actions/ItemAction/ItemAction.js +1 -1
- package/es/components/actions/ItemAction/index.js +1 -1
- package/es/components/actions/ItemActionContext.js +1 -1
- package/es/components/actions/ItemButton/ItemButton.js +1 -1
- package/es/components/actions/ItemButton/index.js +1 -1
- package/es/components/actions/Link/Link.js +1 -1
- package/es/components/actions/Menu/Menu.js +1 -1
- package/es/components/actions/Menu/MenuItem.js +1 -1
- package/es/components/actions/Menu/MenuSection.js +1 -1
- package/es/components/actions/Menu/MenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/es/components/actions/Menu/context.js +1 -1
- package/es/components/actions/Menu/index.js +1 -1
- package/es/components/actions/Menu/styled.js +1 -1
- package/es/components/actions/index.js +1 -1
- package/es/components/actions/use-action.js +1 -1
- package/es/components/actions/use-anchored-menu.js +1 -1
- package/es/components/actions/use-context-menu.js +1 -1
- package/es/components/content/ActiveZone/ActiveZone.js +2 -2
- 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/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 +30 -38
- 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/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/Title.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 +2 -2
- 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 +2 -2
- 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 +7 -7
- 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 +2 -2
- 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/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 +6 -6
- package/es/components/organisms/FileTabs/FileTabs.js +5 -5
- package/es/components/organisms/StatsCard/StatsCard.js +1 -1
- package/es/components/other/Base64Upload/Base64Upload.js +3 -3
- 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 +2 -3
- 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/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/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/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 +13 -0
- 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 +2 -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/Layout.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 +1 -1
- package/es/tasty/injector/index.js +1 -1
- package/es/tasty/injector/injector.js +1 -1
- package/es/tasty/injector/sheet-manager.js +1 -1
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/parser/classify.js +1 -1
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +1 -1
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +1 -1
- package/es/tasty/providers/BreakpointsProvider.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 +4 -4
- 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 +24 -3
- package/es/tasty/utils/renderStyles.js +203 -18
- package/es/tasty/utils/responsive.js +1 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +25 -3
- 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/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/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/Menu/styled.d.ts +3 -3
- package/types/components/content/Item/Item.d.ts +8 -0
- package/types/components/content/List/SectionHeading.d.ts +1 -1
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +1 -1
- package/types/components/fields/FilterListBox/FilterListBox.d.ts +1 -1
- package/types/components/fields/FilterPicker/FilterPicker.d.ts +1 -1
- package/types/components/fields/ListBox/ListBox.d.ts +2 -2
- package/types/components/fields/Picker/Picker.d.ts +1 -1
- package/types/icons/TrashIcon.d.ts +4 -0
- package/types/icons/index.d.ts +1 -0
- package/types/tasty/types.d.ts +1 -1
|
@@ -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-7c4d463
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -80,7 +80,7 @@ function parseAttributeSelector(selector) {
|
|
|
80
80
|
if (cached !== undefined) {
|
|
81
81
|
return cached;
|
|
82
82
|
}
|
|
83
|
-
// Match patterns like [data-size="medium"] or [data-
|
|
83
|
+
// Match patterns like [data-size="medium"] or [data-selected]
|
|
84
84
|
const match = selector.match(/^\[([^=\]]+)(?:="([^"]+)")?\]$/);
|
|
85
85
|
const result = match
|
|
86
86
|
? {
|
|
@@ -94,18 +94,26 @@ function parseAttributeSelector(selector) {
|
|
|
94
94
|
return result;
|
|
95
95
|
}
|
|
96
96
|
function hasConflictingAttributeSelectors(mods, parsedMods) {
|
|
97
|
-
const
|
|
97
|
+
const attributeValues = new Map();
|
|
98
|
+
const attributeBooleans = new Set();
|
|
98
99
|
for (const mod of mods) {
|
|
99
100
|
const parsed = parsedMods?.get(mod) ?? parseAttributeSelector(mod);
|
|
100
|
-
if (parsed
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
if (!parsed)
|
|
102
|
+
continue;
|
|
103
|
+
if (parsed.value === 'true') {
|
|
104
|
+
// Boolean attribute
|
|
105
|
+
attributeBooleans.add(parsed.attribute);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
// Value attribute
|
|
109
|
+
if (!attributeValues.has(parsed.attribute)) {
|
|
110
|
+
attributeValues.set(parsed.attribute, []);
|
|
103
111
|
}
|
|
104
|
-
|
|
112
|
+
attributeValues.get(parsed.attribute).push(parsed.value);
|
|
105
113
|
}
|
|
106
114
|
}
|
|
107
|
-
// Check
|
|
108
|
-
for (const values of
|
|
115
|
+
// Check for multiple different values for the same attribute
|
|
116
|
+
for (const values of attributeValues.values()) {
|
|
109
117
|
if (values.length > 1)
|
|
110
118
|
return true;
|
|
111
119
|
}
|
|
@@ -149,23 +157,182 @@ function buildAttributeMaps(currentMods, allMods) {
|
|
|
149
157
|
}
|
|
150
158
|
return { allAttributes, currentAttributes, parsedMods };
|
|
151
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Check if a combination of positive and negative selectors creates a contradiction
|
|
162
|
+
* Returns true if the combination is INVALID and should be pruned
|
|
163
|
+
*/
|
|
164
|
+
function hasContradiction(currentMods, notMods, parsedMods) {
|
|
165
|
+
// Build maps of positive selector states
|
|
166
|
+
const positiveAttributes = new Map();
|
|
167
|
+
const positiveBooleans = new Set();
|
|
168
|
+
for (const mod of currentMods) {
|
|
169
|
+
const parsed = parsedMods.get(mod);
|
|
170
|
+
if (parsed) {
|
|
171
|
+
if (parsed.value === 'true') {
|
|
172
|
+
// Boolean attribute (e.g., [data-theme])
|
|
173
|
+
positiveBooleans.add(parsed.attribute);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Value attribute (e.g., [data-theme="danger"])
|
|
177
|
+
if (!positiveAttributes.has(parsed.attribute)) {
|
|
178
|
+
positiveAttributes.set(parsed.attribute, []);
|
|
179
|
+
}
|
|
180
|
+
positiveAttributes.get(parsed.attribute).push(parsed.value);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Check negative selectors for contradictions
|
|
185
|
+
for (const mod of notMods) {
|
|
186
|
+
const parsed = parsedMods.get(mod);
|
|
187
|
+
if (parsed) {
|
|
188
|
+
if (parsed.value === 'true') {
|
|
189
|
+
// Negative boolean: !([data-theme])
|
|
190
|
+
// Case 6: Value positive + attribute negative = CONTRADICTION
|
|
191
|
+
if (positiveAttributes.has(parsed.attribute) ||
|
|
192
|
+
positiveBooleans.has(parsed.attribute)) {
|
|
193
|
+
return true; // INVALID: can't have value without attribute
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
// Negative value: !([data-theme="danger"])
|
|
198
|
+
// No contradiction - this is valid
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
152
204
|
function optimizeNotSelectors(currentMods, allMods, precomputedMaps) {
|
|
153
205
|
const maps = precomputedMaps || buildAttributeMaps(currentMods, allMods);
|
|
154
206
|
const notMods = allMods.filter((mod) => !currentMods.includes(mod));
|
|
155
207
|
const optimizedNotMods = [];
|
|
208
|
+
// Build maps of positive selector states for subsumption optimization
|
|
209
|
+
const positiveAttributes = new Map();
|
|
210
|
+
const positiveBooleans = new Set();
|
|
211
|
+
for (const mod of currentMods) {
|
|
212
|
+
const parsed = maps.parsedMods.get(mod);
|
|
213
|
+
if (parsed) {
|
|
214
|
+
if (parsed.value === 'true') {
|
|
215
|
+
positiveBooleans.add(parsed.attribute);
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
if (!positiveAttributes.has(parsed.attribute)) {
|
|
219
|
+
positiveAttributes.set(parsed.attribute, []);
|
|
220
|
+
}
|
|
221
|
+
positiveAttributes.get(parsed.attribute).push(parsed.value);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
156
225
|
for (const mod of notMods) {
|
|
157
226
|
const parsed = maps.parsedMods.get(mod);
|
|
158
227
|
if (parsed && parsed.value !== 'true') {
|
|
228
|
+
// Negative value selector
|
|
159
229
|
// If we already have a value for this attribute, skip this not selector
|
|
160
|
-
// because it's already mutually exclusive
|
|
230
|
+
// because it's already mutually exclusive (optimization)
|
|
231
|
+
if (maps.currentAttributes.has(parsed.attribute)) {
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// If we have a positive value for this attribute, skip the negative boolean
|
|
236
|
+
// This avoids producing selectors like [data-attr="x"]:not([data-attr])
|
|
237
|
+
if (parsed && parsed.value === 'true') {
|
|
161
238
|
if (maps.currentAttributes.has(parsed.attribute)) {
|
|
162
239
|
continue;
|
|
163
240
|
}
|
|
164
241
|
}
|
|
242
|
+
// Case 4 subsumption: If we have a value positive and boolean positive for same attribute
|
|
243
|
+
// The value implies the boolean, so we can skip the boolean from positive mods
|
|
244
|
+
// (This is handled elsewhere - the value selector is more specific)
|
|
245
|
+
// Case 7 subsumption: If we have a value negative and boolean negative for same attribute
|
|
246
|
+
// The boolean negative implies value negative, so skip the value negative
|
|
247
|
+
if (parsed && parsed.value !== 'true') {
|
|
248
|
+
// Check if we also have the boolean attribute in negative mods
|
|
249
|
+
const booleanMod = allMods.find((m) => {
|
|
250
|
+
const p = maps.parsedMods.get(m);
|
|
251
|
+
return (p &&
|
|
252
|
+
p.value === 'true' &&
|
|
253
|
+
p.attribute === parsed.attribute &&
|
|
254
|
+
!currentMods.includes(m));
|
|
255
|
+
});
|
|
256
|
+
if (booleanMod) {
|
|
257
|
+
// We have both !([data-attr]) and !([data-attr="value"])
|
|
258
|
+
// Skip the value negative as it's subsumed by attribute negative
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
165
262
|
optimizedNotMods.push(mod);
|
|
166
263
|
}
|
|
167
264
|
return optimizedNotMods;
|
|
168
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* Filter mods based on priority order for same-attribute conflicts.
|
|
268
|
+
* If a boolean selector has higher priority than value selectors for the same attribute,
|
|
269
|
+
* remove the value selectors (they would be shadowed by the boolean).
|
|
270
|
+
*
|
|
271
|
+
* Priority is determined by order in the styleStates (after reversal - earlier = higher priority)
|
|
272
|
+
*/
|
|
273
|
+
function filterModsByPriority(allMods, styleStates, lookupStyles, parsedModsCache) {
|
|
274
|
+
// Parse all mods once
|
|
275
|
+
const parsedMods = parsedModsCache || new Map();
|
|
276
|
+
if (!parsedModsCache) {
|
|
277
|
+
for (const mod of allMods) {
|
|
278
|
+
if (!parsedMods.has(mod)) {
|
|
279
|
+
parsedMods.set(mod, parseAttributeSelector(getModSelector(mod)));
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
// Build priority map: for each mod, find its earliest appearance in any state list
|
|
284
|
+
const modPriorities = new Map();
|
|
285
|
+
for (const style of lookupStyles) {
|
|
286
|
+
const states = styleStates[style];
|
|
287
|
+
if (!states)
|
|
288
|
+
continue;
|
|
289
|
+
// states are already reversed (higher priority = lower index)
|
|
290
|
+
states.forEach((state, index) => {
|
|
291
|
+
if (!state.mods)
|
|
292
|
+
return;
|
|
293
|
+
state.mods.forEach((mod) => {
|
|
294
|
+
const currentPriority = modPriorities.get(mod);
|
|
295
|
+
if (currentPriority === undefined || index < currentPriority) {
|
|
296
|
+
modPriorities.set(mod, index);
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
// Group mods by attribute
|
|
302
|
+
const attributeGroups = new Map();
|
|
303
|
+
for (const mod of allMods) {
|
|
304
|
+
const parsed = parsedMods.get(mod);
|
|
305
|
+
if (!parsed)
|
|
306
|
+
continue;
|
|
307
|
+
const priority = modPriorities.get(mod);
|
|
308
|
+
if (priority === undefined)
|
|
309
|
+
continue;
|
|
310
|
+
const isBool = parsed.value === 'true';
|
|
311
|
+
if (!attributeGroups.has(parsed.attribute)) {
|
|
312
|
+
attributeGroups.set(parsed.attribute, []);
|
|
313
|
+
}
|
|
314
|
+
attributeGroups.get(parsed.attribute).push({
|
|
315
|
+
mod,
|
|
316
|
+
isBool,
|
|
317
|
+
priority,
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
// Filter: for each attribute, if boolean has higher priority than any value, remove values
|
|
321
|
+
const modsToRemove = new Set();
|
|
322
|
+
for (const [attribute, group] of attributeGroups.entries()) {
|
|
323
|
+
const boolMods = group.filter((m) => m.isBool);
|
|
324
|
+
const valueMods = group.filter((m) => !m.isBool);
|
|
325
|
+
// Check if any boolean has higher priority (lower index) than all values
|
|
326
|
+
for (const boolMod of boolMods) {
|
|
327
|
+
const hasHigherPriorityThanAllValues = valueMods.every((valueMod) => boolMod.priority < valueMod.priority);
|
|
328
|
+
if (hasHigherPriorityThanAllValues && valueMods.length > 0) {
|
|
329
|
+
// This boolean shadows all value mods for this attribute
|
|
330
|
+
valueMods.forEach((valueMod) => modsToRemove.add(valueMod.mod));
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
return allMods.filter((mod) => !modsToRemove.has(mod));
|
|
335
|
+
}
|
|
169
336
|
/**
|
|
170
337
|
* Explode a style handler result into logical rules with proper mapping
|
|
171
338
|
* Phase 1: Handler fan-out ($ selectors, arrays)
|
|
@@ -552,11 +719,13 @@ function generateLogicalRules(styles, responsive = [], parentSuffix = '') {
|
|
|
552
719
|
}
|
|
553
720
|
});
|
|
554
721
|
const allModsArray = Array.from(allMods);
|
|
722
|
+
// Apply priority-based filtering for same-attribute boolean vs value conflicts
|
|
723
|
+
const filteredMods = filterModsByPriority(allModsArray, styleStates, lookupStyles);
|
|
555
724
|
// Precompute attribute maps once for all combinations
|
|
556
|
-
const attributeMaps = buildAttributeMaps([],
|
|
725
|
+
const attributeMaps = buildAttributeMaps([], filteredMods);
|
|
557
726
|
// Generate combinations with conflict-aware pruning
|
|
558
727
|
const conflictChecker = createAttributeConflictChecker(attributeMaps.parsedMods);
|
|
559
|
-
const combinations = getModCombinationsIterative(
|
|
728
|
+
const combinations = getModCombinationsIterative(filteredMods, true, conflictChecker);
|
|
560
729
|
combinations.forEach((modCombination) => {
|
|
561
730
|
const stateProps = {};
|
|
562
731
|
lookupStyles.forEach((style) => {
|
|
@@ -567,8 +736,15 @@ function generateLogicalRules(styles, responsive = [], parentSuffix = '') {
|
|
|
567
736
|
}
|
|
568
737
|
});
|
|
569
738
|
// Use precomputed maps for efficient not selector optimization
|
|
570
|
-
const currentMaps = buildAttributeMaps(modCombination,
|
|
571
|
-
|
|
739
|
+
const currentMaps = buildAttributeMaps(modCombination, filteredMods);
|
|
740
|
+
// Compute raw NOTs for contradiction check (before optimization)
|
|
741
|
+
const rawNotMods = filteredMods.filter((mod) => !modCombination.includes(mod));
|
|
742
|
+
// Check for contradictions between positive and negative selectors
|
|
743
|
+
if (hasContradiction(modCombination, rawNotMods, currentMaps.parsedMods)) {
|
|
744
|
+
return; // Skip this invalid combination
|
|
745
|
+
}
|
|
746
|
+
// Optimize NOT selectors afterwards (pure simplification)
|
|
747
|
+
const optimizedNotMods = optimizeNotSelectors(modCombination, filteredMods, currentMaps);
|
|
572
748
|
const modsSelectors = `${modCombination
|
|
573
749
|
.map(getModSelector)
|
|
574
750
|
.join('')}${optimizedNotMods
|
|
@@ -619,11 +795,13 @@ function generateLogicalRules(styles, responsive = [], parentSuffix = '') {
|
|
|
619
795
|
});
|
|
620
796
|
// Generate all possible mod combinations
|
|
621
797
|
const allModsArray = Array.from(allMods);
|
|
798
|
+
// Apply priority-based filtering for same-attribute boolean vs value conflicts
|
|
799
|
+
const filteredMods = filterModsByPriority(allModsArray, styleStates, lookupStyles);
|
|
622
800
|
// Precompute attribute maps once for all combinations
|
|
623
|
-
const attributeMaps = buildAttributeMaps([],
|
|
801
|
+
const attributeMaps = buildAttributeMaps([], filteredMods);
|
|
624
802
|
// Generate combinations with conflict-aware pruning
|
|
625
803
|
const conflictChecker = createAttributeConflictChecker(attributeMaps.parsedMods);
|
|
626
|
-
const combinations = getModCombinationsIterative(
|
|
804
|
+
const combinations = getModCombinationsIterative(filteredMods, true, conflictChecker);
|
|
627
805
|
combinations.forEach((modCombination) => {
|
|
628
806
|
const stateProps = {};
|
|
629
807
|
lookupStyles.forEach((style) => {
|
|
@@ -637,8 +815,15 @@ function generateLogicalRules(styles, responsive = [], parentSuffix = '') {
|
|
|
637
815
|
}
|
|
638
816
|
});
|
|
639
817
|
// Use precomputed maps for efficient not selector optimization
|
|
640
|
-
const currentMaps = buildAttributeMaps(modCombination,
|
|
641
|
-
|
|
818
|
+
const currentMaps = buildAttributeMaps(modCombination, filteredMods);
|
|
819
|
+
// Compute raw NOTs for contradiction check (before optimization)
|
|
820
|
+
const rawNotMods = filteredMods.filter((mod) => !modCombination.includes(mod));
|
|
821
|
+
// Check for contradictions between positive and negative selectors
|
|
822
|
+
if (hasContradiction(modCombination, rawNotMods, currentMaps.parsedMods)) {
|
|
823
|
+
return; // Skip this invalid combination
|
|
824
|
+
}
|
|
825
|
+
// Optimize NOT selectors afterwards (pure simplification)
|
|
826
|
+
const optimizedNotMods = optimizeNotSelectors(modCombination, filteredMods, currentMaps);
|
|
642
827
|
const modsSelectors = `${modCombination
|
|
643
828
|
.map(getModSelector)
|
|
644
829
|
.join('')}${optimizedNotMods
|
package/es/tasty/utils/string.js
CHANGED
package/es/tasty/utils/styles.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-7c4d463
|
|
5
5
|
* Released under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -57,7 +57,29 @@ export const DIRECTIONS = ['top', 'right', 'bottom', 'left'];
|
|
|
57
57
|
const MOD_NAME_CACHE = new Map();
|
|
58
58
|
export function getModSelector(modName) {
|
|
59
59
|
if (!MOD_NAME_CACHE.has(modName)) {
|
|
60
|
-
|
|
60
|
+
let selector;
|
|
61
|
+
// Check if it's a shorthand value mod: key=value, key="value", or key='value'
|
|
62
|
+
const valueModMatch = modName.match(/^([a-z][a-z0-9-]*)=(.+)$/i);
|
|
63
|
+
if (valueModMatch) {
|
|
64
|
+
const key = valueModMatch[1];
|
|
65
|
+
let value = valueModMatch[2];
|
|
66
|
+
// Remove quotes if present
|
|
67
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
68
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
69
|
+
value = value.slice(1, -1);
|
|
70
|
+
}
|
|
71
|
+
// Convert to full attribute selector
|
|
72
|
+
selector = `[data-${camelToKebab(key)}="${value}"]`;
|
|
73
|
+
}
|
|
74
|
+
else if (modName.match(/^[a-z]/)) {
|
|
75
|
+
// Boolean mod: convert camelCase to kebab-case
|
|
76
|
+
selector = `[data-${camelToKebab(modName)}]`;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Pass through (e.g., :hover, .class, [attr])
|
|
80
|
+
selector = modName;
|
|
81
|
+
}
|
|
82
|
+
MOD_NAME_CACHE.set(modName, selector);
|
|
61
83
|
}
|
|
62
84
|
return MOD_NAME_CACHE.get(modName);
|
|
63
85
|
}
|
|
@@ -230,7 +252,7 @@ export function extractStyles(props, styleList = [], defaultStyles, propMap, ign
|
|
|
230
252
|
}, {});
|
|
231
253
|
return styles;
|
|
232
254
|
}
|
|
233
|
-
const STATES_REGEXP = /([&|!^])|([()])|([a-z][a-z0-9-]+)|(:[a-z][a-z0-9-]+\([^)]+\)|:[a-z][a-z0-9-]+)|(\.[a-z][a-z0-9-]+)|(\[[^\]]+])/gi;
|
|
255
|
+
const STATES_REGEXP = /([&|!^])|([()])|([a-z][a-z0-9-]+=(?:"[^"]*"|'[^']*'|[^\s&|!^()]+))|([a-z][a-z0-9-]+)|(:[a-z][a-z0-9-]+\([^)]+\)|:[a-z][a-z0-9-]+)|(\.[a-z][a-z0-9-]+)|(\[[^\]]+])/gi;
|
|
234
256
|
export const STATE_OPERATORS = {
|
|
235
257
|
NOT: '!',
|
|
236
258
|
AND: '&',
|
package/es/tokens.js
CHANGED
package/es/utils/ResizeSensor.js
CHANGED
package/es/utils/index.js
CHANGED
package/es/utils/modules.js
CHANGED
package/es/utils/promise.js
CHANGED
package/es/utils/raf.js
CHANGED
package/es/utils/random.js
CHANGED
package/es/utils/range.js
CHANGED
package/es/utils/react/Slots.js
CHANGED
package/es/utils/react/chain.js
CHANGED
package/es/utils/react/index.js
CHANGED
package/es/utils/react/useId.js
CHANGED