@cube-dev/ui-kit 0.74.3 → 0.75.0
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 +14 -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/GlobalStyles.js +10 -15
- package/es/components/GridProvider.js +1 -1
- package/es/components/HiddenInput.js +25 -24
- package/es/components/Item.js +1 -1
- package/es/components/OpenTrasition.js +1 -1
- package/es/components/Root.js +2 -2
- package/es/components/actions/Action/Action.js +15 -19
- package/es/components/actions/Button/Button.js +2 -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/ItemButton/ItemButton.js +1 -1
- package/es/components/actions/ItemButton/index.js +1 -1
- package/es/components/actions/Menu/Menu.js +1 -1
- package/es/components/actions/Menu/MenuItem.js +3 -8
- 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/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/ItemBase/ItemBase.js +9 -3
- package/es/components/content/ItemBase/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 +46 -41
- 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 +3 -3
- package/es/components/content/Title.js +3 -3
- 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/RadioGroup/Radio.js +2 -2
- 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 +3 -2
- 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/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/navigation/Link/Link.js +1 -1
- package/es/components/organisms/FileTabs/FileTabs.js +1 -1
- package/es/components/organisms/Modal/Modal.js +59 -68
- 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/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/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/CopyIcon.js +1 -1
- package/es/icons/CountIcon.js +1 -1
- package/es/icons/CubeIcon.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/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/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/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/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/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/UnlockIcon.js +1 -1
- package/es/icons/UpIcon.js +1 -1
- package/es/icons/UserGroupIcon.js +1 -1
- package/es/icons/UserIcon.js +1 -1
- package/es/icons/UserLockIcon.js +1 -1
- package/es/icons/ViewIcon.js +1 -1
- package/es/icons/WarningFilledIcon.js +1 -1
- package/es/icons/WarningIcon.js +1 -1
- package/es/icons/add-new-icon.js +1 -1
- package/es/icons/index.js +1 -1
- package/es/icons/wrap-icon.js +1 -1
- package/es/index.js +1 -1
- package/es/provider.js +1 -1
- package/es/providers/TrackingProvider.js +1 -1
- package/es/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 -2
- package/es/tasty/debug.js +906 -0
- package/es/tasty/index.js +3 -1
- package/es/tasty/injector/index.js +171 -0
- package/es/tasty/injector/injector.js +688 -0
- package/es/tasty/injector/sheet-manager.js +754 -0
- package/es/tasty/injector/types.js +10 -0
- package/es/tasty/parser/classify.js +1 -1
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +38 -2
- 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 +8 -12
- package/es/tasty/styles/createStyle.js +19 -4
- 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 +6 -8
- 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/marginBlock.js +1 -1
- package/es/tasty/styles/marginInline.js +1 -1
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +1 -1
- package/es/tasty/styles/paddingBlock.js +1 -1
- package/es/tasty/styles/paddingInline.js +1 -1
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +1 -3
- package/es/tasty/styles/preset.js +1 -1
- package/es/tasty/styles/radius.js +1 -1
- package/es/tasty/styles/reset.js +40 -44
- 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 +2 -1
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +1 -1
- package/es/tasty/tasty.js +94 -20
- 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 +26 -30
- package/es/tasty/utils/mergeStyles.js +1 -1
- package/es/tasty/utils/modAttrs.js +1 -1
- package/es/tasty/utils/renderStyles.js +670 -58
- package/es/tasty/utils/responsive.js +1 -7
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +62 -235
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tokens.js +1 -12
- package/es/type-checks.js +1 -1
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/modules.js +1 -1
- package/es/utils/promise.js +1 -1
- package/es/utils/random.js +1 -1
- package/es/utils/range.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/transitions.js +1 -1
- package/es/utils/tree.js +1 -1
- package/es/utils/warnings.js +1 -1
- package/es/version.js +2 -2
- package/package.json +1 -1
- package/types/components/HiddenInput.d.ts +1 -3
- package/types/components/actions/Button/Button.d.ts +1 -0
- package/types/components/actions/Menu/styled.d.ts +702 -705
- package/types/components/actions/use-action.d.ts +1 -1
- package/types/components/content/List/SectionHeading.d.ts +234 -235
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +234 -235
- package/types/tasty/debug.d.ts +250 -0
- package/types/tasty/index.d.ts +2 -0
- package/types/tasty/injector/index.d.ts +71 -0
- package/types/tasty/injector/injector.d.ts +109 -0
- package/types/tasty/injector/sheet-manager.d.ts +94 -0
- package/types/tasty/injector/types.d.ts +90 -0
- package/types/tasty/parser/lru.d.ts +5 -1
- package/types/tasty/styles/color.d.ts +3 -1
- package/types/tasty/styles/reset.d.ts +1 -2
- package/types/tasty/types.d.ts +0 -2
- package/types/tasty/utils/getModCombinations.d.ts +9 -1
- package/types/tasty/utils/renderStyles.d.ts +25 -7
- package/types/tasty/utils/responsive.d.ts +0 -1
- package/types/tasty/utils/styles.d.ts +6 -90
- package/types/tokens.d.ts +0 -11
@@ -0,0 +1,250 @@
|
|
1
|
+
/**
|
2
|
+
* Debug utilities for inspecting tasty-generated CSS at runtime
|
3
|
+
*/
|
4
|
+
/**
|
5
|
+
* Debug utilities for inspecting tasty styles in runtime applications
|
6
|
+
*/
|
7
|
+
export declare const tastyDebug: {
|
8
|
+
/**
|
9
|
+
* Get CSS for a specific tasty class (e.g., 't24')
|
10
|
+
*/
|
11
|
+
getCSSForClass(className: string): string;
|
12
|
+
/**
|
13
|
+
* Get CSS for multiple tasty classes
|
14
|
+
*/
|
15
|
+
getCSSForClasses(classNames: string[]): string;
|
16
|
+
/**
|
17
|
+
* Log CSS for a specific tasty class (e.g., 't24') to console
|
18
|
+
*/
|
19
|
+
logCSSForClass(className: string): void;
|
20
|
+
/**
|
21
|
+
* Log CSS for multiple tasty classes to console
|
22
|
+
*/
|
23
|
+
logCSSForClasses(classNames: string[]): void;
|
24
|
+
/**
|
25
|
+
* Inspect an element by CSS selector and get its tasty CSS
|
26
|
+
*/
|
27
|
+
inspectElement(selector: string): string;
|
28
|
+
/**
|
29
|
+
* Inspect a DOM element directly and get its tasty CSS
|
30
|
+
*/
|
31
|
+
inspectDOMElement(element: Element): string;
|
32
|
+
/**
|
33
|
+
* Get all tasty CSS currently injected into the page
|
34
|
+
*/
|
35
|
+
getAllCSS(): string;
|
36
|
+
/**
|
37
|
+
* Find all tasty classes used in the page (in DOM)
|
38
|
+
*/
|
39
|
+
findAllTastyClasses(): string[];
|
40
|
+
/**
|
41
|
+
* Find all tasty classes that have styles in the stylesheet (used + unused)
|
42
|
+
*/
|
43
|
+
findAllStyledClasses(): string[];
|
44
|
+
/**
|
45
|
+
* Get active vs cached class breakdown
|
46
|
+
*/
|
47
|
+
getClassUsage(): {
|
48
|
+
activeClasses: string[];
|
49
|
+
cachedClasses: string[];
|
50
|
+
totalStyledClasses: string[];
|
51
|
+
};
|
52
|
+
/**
|
53
|
+
* Get a comprehensive summary of all tasty styles
|
54
|
+
*/
|
55
|
+
getSummary(): {
|
56
|
+
activeClasses: string[];
|
57
|
+
cachedClasses: string[];
|
58
|
+
totalStyledClasses: string[];
|
59
|
+
activeCSSSize: number;
|
60
|
+
cachedCSSSize: number;
|
61
|
+
totalCSSSize: number;
|
62
|
+
activeCSS: string;
|
63
|
+
cachedCSS: string;
|
64
|
+
allCSS: string;
|
65
|
+
globalCSS: string;
|
66
|
+
globalCSSSize: number;
|
67
|
+
globalRuleCount: number;
|
68
|
+
metrics: any;
|
69
|
+
definedProperties: string[];
|
70
|
+
definedKeyframes: {
|
71
|
+
name: string;
|
72
|
+
refCount: number;
|
73
|
+
cssText?: string;
|
74
|
+
}[];
|
75
|
+
propertyCount: number;
|
76
|
+
keyframeCount: number;
|
77
|
+
cleanupSummary: {
|
78
|
+
enabled: boolean;
|
79
|
+
totalCleanups: number;
|
80
|
+
totalClassesDeleted: number;
|
81
|
+
totalCssDeleted: number;
|
82
|
+
totalRulesDeleted: number;
|
83
|
+
averageClassesPerCleanup: number;
|
84
|
+
averageCssPerCleanup: number;
|
85
|
+
averageRulesPerCleanup: number;
|
86
|
+
lastCleanup?: {
|
87
|
+
timestamp: number;
|
88
|
+
date: string;
|
89
|
+
classesDeleted: number;
|
90
|
+
cssSize: number;
|
91
|
+
rulesDeleted: number;
|
92
|
+
};
|
93
|
+
};
|
94
|
+
};
|
95
|
+
/**
|
96
|
+
* Helper to log CSS in a readable format
|
97
|
+
*/
|
98
|
+
logCSS(css: string, title?: string): void;
|
99
|
+
/**
|
100
|
+
* Advanced inspection with detailed breakdown and statistics
|
101
|
+
*/
|
102
|
+
inspect(target: string | Element): {
|
103
|
+
element: Element | null;
|
104
|
+
tastyClasses: string[];
|
105
|
+
css: string;
|
106
|
+
cssSize: number;
|
107
|
+
ruleCount: number;
|
108
|
+
breakdown: {
|
109
|
+
[className: string]: {
|
110
|
+
css: string;
|
111
|
+
cssSize: number;
|
112
|
+
ruleCount: number;
|
113
|
+
};
|
114
|
+
};
|
115
|
+
stats: {
|
116
|
+
totalClasses: number;
|
117
|
+
totalRules: number;
|
118
|
+
totalCSSSize: number;
|
119
|
+
averageRulesPerClass: number;
|
120
|
+
averageCSSPerClass: number;
|
121
|
+
};
|
122
|
+
};
|
123
|
+
/**
|
124
|
+
* Get CSS for active classes only
|
125
|
+
*/
|
126
|
+
getActiveCSS(): string;
|
127
|
+
/**
|
128
|
+
* Get CSS for cached classes only
|
129
|
+
*/
|
130
|
+
getCachedCSS(): string;
|
131
|
+
/**
|
132
|
+
* Get all defined @property custom properties
|
133
|
+
*/
|
134
|
+
getDefinedProperties(): string[];
|
135
|
+
/**
|
136
|
+
* Get all defined keyframes
|
137
|
+
*/
|
138
|
+
getDefinedKeyframes(): {
|
139
|
+
name: string;
|
140
|
+
refCount: number;
|
141
|
+
cssText?: string;
|
142
|
+
}[];
|
143
|
+
/**
|
144
|
+
* Check if a specific @property is defined
|
145
|
+
*/
|
146
|
+
isPropertyDefined(propertyName: string): boolean;
|
147
|
+
/**
|
148
|
+
* Check if a specific keyframe is defined
|
149
|
+
*/
|
150
|
+
isKeyframeDefined(keyframeName: string): boolean;
|
151
|
+
/**
|
152
|
+
* Get detailed cleanup statistics history
|
153
|
+
*/
|
154
|
+
getCleanupHistory(): {
|
155
|
+
totalCleanups: number;
|
156
|
+
totalClassesDeleted: number;
|
157
|
+
totalCssDeleted: number;
|
158
|
+
totalRulesDeleted: number;
|
159
|
+
cleanupHistory: Array<{
|
160
|
+
timestamp: number;
|
161
|
+
date: string;
|
162
|
+
classesDeleted: number;
|
163
|
+
cssSize: number;
|
164
|
+
rulesDeleted: number;
|
165
|
+
}>;
|
166
|
+
};
|
167
|
+
/**
|
168
|
+
* Get cleanup statistics summary
|
169
|
+
*/
|
170
|
+
getCleanupSummary(): {
|
171
|
+
enabled: boolean;
|
172
|
+
totalCleanups: number;
|
173
|
+
totalClassesDeleted: number;
|
174
|
+
totalCssDeleted: number;
|
175
|
+
totalRulesDeleted: number;
|
176
|
+
averageClassesPerCleanup: number;
|
177
|
+
averageCssPerCleanup: number;
|
178
|
+
averageRulesPerCleanup: number;
|
179
|
+
lastCleanup?: {
|
180
|
+
timestamp: number;
|
181
|
+
date: string;
|
182
|
+
classesDeleted: number;
|
183
|
+
cssSize: number;
|
184
|
+
rulesDeleted: number;
|
185
|
+
};
|
186
|
+
};
|
187
|
+
/**
|
188
|
+
* Log cleanup history to console in a readable format
|
189
|
+
*/
|
190
|
+
logCleanupHistory(): void;
|
191
|
+
/**
|
192
|
+
* Get all global CSS rules (non-tasty class selectors)
|
193
|
+
*/
|
194
|
+
getGlobalCSS(): string;
|
195
|
+
/**
|
196
|
+
* Log global CSS to console
|
197
|
+
*/
|
198
|
+
logGlobalCSS(): void;
|
199
|
+
/**
|
200
|
+
* Get global CSS rules breakdown with detailed analysis
|
201
|
+
*/
|
202
|
+
getGlobalCSSBreakdown(): {
|
203
|
+
globalRules: Array<{
|
204
|
+
selector: string;
|
205
|
+
declarations: string;
|
206
|
+
ruleCount: number;
|
207
|
+
}>;
|
208
|
+
totalRules: number;
|
209
|
+
totalCSSSize: number;
|
210
|
+
css: string;
|
211
|
+
selectors: {
|
212
|
+
elements: string[];
|
213
|
+
classes: string[];
|
214
|
+
ids: string[];
|
215
|
+
pseudoClasses: string[];
|
216
|
+
mediaQueries: string[];
|
217
|
+
keyframes: string[];
|
218
|
+
other: string[];
|
219
|
+
};
|
220
|
+
};
|
221
|
+
/**
|
222
|
+
* Log detailed global CSS breakdown
|
223
|
+
*/
|
224
|
+
logGlobalCSSBreakdown(): void;
|
225
|
+
/**
|
226
|
+
* Helper to extract CSS rules from raw CSS text
|
227
|
+
*/
|
228
|
+
extractCSSRules(css: string): Array<{
|
229
|
+
selector: string;
|
230
|
+
declarations: string;
|
231
|
+
}>;
|
232
|
+
/**
|
233
|
+
* Safe CSS parser that handles nested rules properly
|
234
|
+
*/
|
235
|
+
parseCSSSafe(css: string, rules: Array<{
|
236
|
+
selector: string;
|
237
|
+
declarations: string;
|
238
|
+
}>): void;
|
239
|
+
/**
|
240
|
+
* Debug method to see raw CSS content and rule parsing
|
241
|
+
*/
|
242
|
+
debugRawCSS(): void;
|
243
|
+
};
|
244
|
+
/**
|
245
|
+
* Install tastyDebug on window object for easy access in browser console
|
246
|
+
* Only in non-production environments
|
247
|
+
*/
|
248
|
+
export declare function installGlobalDebug(options?: {
|
249
|
+
force?: boolean;
|
250
|
+
}): void;
|
package/types/tasty/index.d.ts
CHANGED
@@ -11,6 +11,8 @@ export * from './providers/BreakpointsProvider';
|
|
11
11
|
export * from './utils/mergeStyles';
|
12
12
|
export * from './utils/warnings';
|
13
13
|
export * from './utils/getDisplayName';
|
14
|
+
export * from './injector';
|
15
|
+
export * from './debug';
|
14
16
|
export type { TastyProps, GlobalTastyProps, AllBasePropsWithMods, } from './tasty';
|
15
17
|
export type { AllBaseProps, BaseProps, BaseStyleProps, DimensionStyleProps, ColorStyleProps, OuterStyleProps, PositionStyleProps, TextStyleProps, BlockStyleProps, ContainerStyleProps, BasePropsWithoutChildren, Props, FlowStyleProps, ShortGridStyles, GlobalStyledProps, TagName, } from './types';
|
16
18
|
export type { StylesInterface, Styles, StylesWithoutSelectors, NoType, Selector, SuffixForSelector, NotSelector, } from './styles/types';
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { StyleResult } from '../utils/renderStyles';
|
2
|
+
import { StyleInjector } from './injector';
|
3
|
+
import { InjectResult, StyleInjectorConfig } from './types';
|
4
|
+
declare const GLOBAL_INJECTOR_KEY = "__TASTY_GLOBAL_INJECTOR__";
|
5
|
+
declare global {
|
6
|
+
interface Window {
|
7
|
+
[GLOBAL_INJECTOR_KEY]?: StyleInjector;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
/**
|
11
|
+
* Configure the global style injector
|
12
|
+
*/
|
13
|
+
export declare function configure(config?: Partial<StyleInjectorConfig>): void;
|
14
|
+
/**
|
15
|
+
* Inject styles and return className with dispose function
|
16
|
+
*/
|
17
|
+
export declare function inject(rules: StyleResult[], options?: {
|
18
|
+
root?: Document | ShadowRoot;
|
19
|
+
}): InjectResult;
|
20
|
+
/**
|
21
|
+
* Inject keyframes and return object with toString() and dispose()
|
22
|
+
*/
|
23
|
+
export declare function keyframes(steps: import('./types').KeyframesSteps, nameOrOptions?: string | {
|
24
|
+
root?: Document | ShadowRoot;
|
25
|
+
name?: string;
|
26
|
+
}): import('./types').KeyframesResult;
|
27
|
+
/**
|
28
|
+
* Get CSS text from all sheets (for SSR)
|
29
|
+
*/
|
30
|
+
export declare function getCssText(options?: {
|
31
|
+
root?: Document | ShadowRoot;
|
32
|
+
}): string;
|
33
|
+
/**
|
34
|
+
* Collect only CSS used by a rendered subtree (like jest-styled-components).
|
35
|
+
* Pass the container returned by render(...).
|
36
|
+
*/
|
37
|
+
export declare function getCssTextForNode(node: ParentNode | Element | DocumentFragment, options?: {
|
38
|
+
root?: Document | ShadowRoot;
|
39
|
+
}): string;
|
40
|
+
/**
|
41
|
+
* Force cleanup of unused rules
|
42
|
+
*/
|
43
|
+
export declare function cleanup(root?: Document | ShadowRoot): void;
|
44
|
+
/**
|
45
|
+
* Check if we're currently running in a test environment
|
46
|
+
*/
|
47
|
+
export declare function getIsTestEnvironment(): boolean;
|
48
|
+
/**
|
49
|
+
* Get the global injector instance for debugging
|
50
|
+
*/
|
51
|
+
export declare const injector: {
|
52
|
+
readonly instance: StyleInjector;
|
53
|
+
};
|
54
|
+
/**
|
55
|
+
* Destroy all resources and clean up
|
56
|
+
*/
|
57
|
+
export declare function destroy(root?: Document | ShadowRoot): void;
|
58
|
+
/**
|
59
|
+
* Create a new isolated injector instance
|
60
|
+
*/
|
61
|
+
export declare function createInjector(config?: Partial<StyleInjectorConfig>): StyleInjector;
|
62
|
+
/**
|
63
|
+
* Create a global style component like styled-components createGlobalStyle
|
64
|
+
* Returns a React component that injects global styles when mounted and cleans up when unmounted
|
65
|
+
*/
|
66
|
+
export declare function createGlobalStyle<Props = {}>(strings: TemplateStringsArray, ...interpolations: Array<string | number | ((props: Props) => string | number)>): import('react').ComponentType<Props & {
|
67
|
+
root?: Document | ShadowRoot;
|
68
|
+
}>;
|
69
|
+
export type { StyleInjectorConfig, InjectResult, DisposeFunction, RuleInfo, SheetInfo, RootRegistry, StyleRule, KeyframesInfo, KeyframesResult, KeyframesSteps, KeyframesCacheEntry, UnusedRuleInfo, CacheMetrics, } from './types';
|
70
|
+
export { StyleInjector } from './injector';
|
71
|
+
export { SheetManager } from './sheet-manager';
|
@@ -0,0 +1,109 @@
|
|
1
|
+
/**
|
2
|
+
* Style injector that works with structured style objects
|
3
|
+
* Eliminates CSS string parsing for better performance
|
4
|
+
*/
|
5
|
+
import { StyleResult } from '../utils/renderStyles';
|
6
|
+
import { InjectResult, KeyframesResult, KeyframesSteps, StyleInjectorConfig } from './types';
|
7
|
+
import type { ComponentType } from 'react';
|
8
|
+
export declare class StyleInjector {
|
9
|
+
private sheetManager;
|
10
|
+
private config;
|
11
|
+
private cleanupScheduled;
|
12
|
+
constructor(config?: StyleInjectorConfig);
|
13
|
+
/**
|
14
|
+
* Inject styles from StyleResult objects
|
15
|
+
*/
|
16
|
+
inject(rules: StyleResult[], options?: {
|
17
|
+
root?: Document | ShadowRoot;
|
18
|
+
}): InjectResult;
|
19
|
+
/**
|
20
|
+
* Extract className from rules (assumes first rule contains the base className)
|
21
|
+
*/
|
22
|
+
private extractClassName;
|
23
|
+
/**
|
24
|
+
* Generate cache key from style rules with optimized deduplication
|
25
|
+
*/
|
26
|
+
private generateCacheKey;
|
27
|
+
/**
|
28
|
+
* Dispose of a className
|
29
|
+
*/
|
30
|
+
private dispose;
|
31
|
+
/**
|
32
|
+
* Cleanup unused rules
|
33
|
+
*/
|
34
|
+
cleanup(root?: Document | ShadowRoot): void;
|
35
|
+
/**
|
36
|
+
* Force bulk cleanup of unused styles
|
37
|
+
*/
|
38
|
+
forceBulkCleanup(root?: Document | ShadowRoot): void;
|
39
|
+
/**
|
40
|
+
* Get CSS text from all sheets (for SSR)
|
41
|
+
*/
|
42
|
+
getCssText(options?: {
|
43
|
+
root?: Document | ShadowRoot;
|
44
|
+
}): string;
|
45
|
+
/**
|
46
|
+
* Get CSS only for the provided tasty classNames (e.g., ["t0","t3"])
|
47
|
+
*/
|
48
|
+
getCssTextForClasses(classNames: Iterable<string>, options?: {
|
49
|
+
root?: Document | ShadowRoot;
|
50
|
+
}): string;
|
51
|
+
/**
|
52
|
+
* Get cache performance metrics
|
53
|
+
*/
|
54
|
+
getMetrics(options?: {
|
55
|
+
root?: Document | ShadowRoot;
|
56
|
+
}): any;
|
57
|
+
/**
|
58
|
+
* Reset cache performance metrics
|
59
|
+
*/
|
60
|
+
resetMetrics(options?: {
|
61
|
+
root?: Document | ShadowRoot;
|
62
|
+
}): void;
|
63
|
+
/**
|
64
|
+
* Force cleanup of unused styles (useful for memory pressure)
|
65
|
+
*/
|
66
|
+
forceCleanupUnused(options?: {
|
67
|
+
root?: Document | ShadowRoot;
|
68
|
+
}): void;
|
69
|
+
/**
|
70
|
+
* Define a CSS @property custom property
|
71
|
+
* Example:
|
72
|
+
* @property --rotation { syntax: "<angle>"; inherits: false; initial-value: 45deg; }
|
73
|
+
* Note: No caching or dispose — this defines a global property.
|
74
|
+
*/
|
75
|
+
property(name: string, options?: {
|
76
|
+
syntax?: string;
|
77
|
+
inherits?: boolean;
|
78
|
+
initialValue?: string | number;
|
79
|
+
root?: Document | ShadowRoot;
|
80
|
+
}): void;
|
81
|
+
/**
|
82
|
+
* Check whether a given @property name was already injected by this injector
|
83
|
+
*/
|
84
|
+
isPropertyDefined(name: string, options?: {
|
85
|
+
root?: Document | ShadowRoot;
|
86
|
+
}): boolean;
|
87
|
+
/**
|
88
|
+
* Inject keyframes and return object with toString() and dispose()
|
89
|
+
*/
|
90
|
+
keyframes(steps: KeyframesSteps, nameOrOptions?: string | {
|
91
|
+
root?: Document | ShadowRoot;
|
92
|
+
name?: string;
|
93
|
+
}): KeyframesResult;
|
94
|
+
/**
|
95
|
+
* Dispose keyframes
|
96
|
+
*/
|
97
|
+
private disposeKeyframes;
|
98
|
+
/**
|
99
|
+
* Destroy all resources for a root
|
100
|
+
*/
|
101
|
+
destroy(root?: Document | ShadowRoot): void;
|
102
|
+
/**
|
103
|
+
* Create a global style component like styled-components createGlobalStyle
|
104
|
+
* Returns a React component that injects global styles when mounted and cleans up when unmounted
|
105
|
+
*/
|
106
|
+
createGlobalStyle<Props = {}>(strings: TemplateStringsArray, ...interpolations: Array<string | number | ((props: Props) => string | number)>): ComponentType<Props & {
|
107
|
+
root?: Document | ShadowRoot;
|
108
|
+
}>;
|
109
|
+
}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
import { CacheMetrics, KeyframesInfo, KeyframesSteps, RootRegistry, RuleInfo, SheetInfo, StyleInjectorConfig, StyleRule } from './types';
|
2
|
+
export declare class SheetManager {
|
3
|
+
private rootRegistries;
|
4
|
+
private config;
|
5
|
+
constructor(config: StyleInjectorConfig);
|
6
|
+
/**
|
7
|
+
* Get or create registry for a root (Document or ShadowRoot)
|
8
|
+
*/
|
9
|
+
getRegistry(root: Document | ShadowRoot): RootRegistry;
|
10
|
+
/**
|
11
|
+
* Create a new stylesheet for the registry
|
12
|
+
*/
|
13
|
+
createSheet(registry: RootRegistry, root: Document | ShadowRoot): SheetInfo;
|
14
|
+
/**
|
15
|
+
* Create a style element and append to document
|
16
|
+
*/
|
17
|
+
private createStyleElement;
|
18
|
+
/**
|
19
|
+
* Insert CSS rules as a single block
|
20
|
+
*/
|
21
|
+
insertRule(registry: RootRegistry, flattenedRules: StyleRule[], className: string, root: Document | ShadowRoot): RuleInfo | null;
|
22
|
+
/**
|
23
|
+
* Insert global CSS rules
|
24
|
+
*/
|
25
|
+
insertGlobalRule(registry: RootRegistry, flattenedRules: StyleRule[], className: string, root: Document | ShadowRoot): RuleInfo | null;
|
26
|
+
/**
|
27
|
+
* Delete a CSS rule from the sheet
|
28
|
+
*/
|
29
|
+
deleteRule(registry: RootRegistry, ruleInfo: RuleInfo): void;
|
30
|
+
/**
|
31
|
+
* Find a sheet with available space or return null
|
32
|
+
*/
|
33
|
+
private findAvailableSheet;
|
34
|
+
/**
|
35
|
+
* Find an available rule index in the sheet
|
36
|
+
*/
|
37
|
+
findAvailableRuleIndex(sheet: SheetInfo): number;
|
38
|
+
/**
|
39
|
+
* Mark a ruleset as unused but keep it in the stylesheet
|
40
|
+
*/
|
41
|
+
markAsUnused(registry: RootRegistry, className: string): void;
|
42
|
+
/**
|
43
|
+
* Restore a ruleset from unused styles
|
44
|
+
*/
|
45
|
+
restoreFromUnused(registry: RootRegistry, className: string): RuleInfo | null;
|
46
|
+
/**
|
47
|
+
* Schedule bulk cleanup of all unused styles
|
48
|
+
*/
|
49
|
+
private scheduleBulkCleanup;
|
50
|
+
/**
|
51
|
+
* Perform bulk cleanup of all unused styles
|
52
|
+
*/
|
53
|
+
private performBulkCleanup;
|
54
|
+
/**
|
55
|
+
* Process the deletion queue for cleanup
|
56
|
+
*/
|
57
|
+
processCleanupQueue(registry: RootRegistry): void;
|
58
|
+
/**
|
59
|
+
* Get total number of rules across all sheets
|
60
|
+
*/
|
61
|
+
getTotalRuleCount(registry: RootRegistry): number;
|
62
|
+
/**
|
63
|
+
* Get CSS text from all sheets (for SSR)
|
64
|
+
*/
|
65
|
+
getCssText(registry: RootRegistry): string;
|
66
|
+
/**
|
67
|
+
* Get cache performance metrics
|
68
|
+
*/
|
69
|
+
getMetrics(registry: RootRegistry): CacheMetrics | null;
|
70
|
+
/**
|
71
|
+
* Reset cache performance metrics
|
72
|
+
*/
|
73
|
+
resetMetrics(registry: RootRegistry): void;
|
74
|
+
/**
|
75
|
+
* Convert keyframes steps to CSS string
|
76
|
+
*/
|
77
|
+
private stepsToCSS;
|
78
|
+
/**
|
79
|
+
* Insert keyframes rule
|
80
|
+
*/
|
81
|
+
insertKeyframes(registry: RootRegistry, steps: KeyframesSteps, name: string, root: Document | ShadowRoot): KeyframesInfo | null;
|
82
|
+
/**
|
83
|
+
* Delete keyframes rule
|
84
|
+
*/
|
85
|
+
deleteKeyframes(registry: RootRegistry, info: KeyframesInfo): void;
|
86
|
+
/**
|
87
|
+
* Mark keyframes as unused
|
88
|
+
*/
|
89
|
+
markKeyframesAsUnused(registry: RootRegistry, name: string): void;
|
90
|
+
/**
|
91
|
+
* Clean up resources for a root
|
92
|
+
*/
|
93
|
+
cleanup(root: Document | ShadowRoot): void;
|
94
|
+
}
|
@@ -0,0 +1,90 @@
|
|
1
|
+
export interface InjectResult {
|
2
|
+
className: string;
|
3
|
+
dispose: () => void;
|
4
|
+
}
|
5
|
+
export type DisposeFunction = () => void;
|
6
|
+
export interface StyleInjectorConfig {
|
7
|
+
nonce?: string;
|
8
|
+
maxRulesPerSheet?: number;
|
9
|
+
unusedStylesThreshold?: number;
|
10
|
+
bulkCleanupDelay?: number;
|
11
|
+
idleCleanup?: boolean;
|
12
|
+
collectMetrics?: boolean;
|
13
|
+
forceTextInjection?: boolean;
|
14
|
+
/** When false, avoid storing full cssText for each rule block to reduce memory. */
|
15
|
+
debugMode?: boolean;
|
16
|
+
}
|
17
|
+
export interface RuleInfo {
|
18
|
+
className: string;
|
19
|
+
ruleIndex: number;
|
20
|
+
sheetIndex: number;
|
21
|
+
cssText: string[];
|
22
|
+
/** Inclusive end index of the contiguous block of inserted rules for this className */
|
23
|
+
endRuleIndex?: number;
|
24
|
+
}
|
25
|
+
export interface SheetInfo {
|
26
|
+
sheet: HTMLStyleElement;
|
27
|
+
ruleCount: number;
|
28
|
+
holes: number[];
|
29
|
+
}
|
30
|
+
export interface UnusedRuleInfo {
|
31
|
+
ruleInfo: RuleInfo;
|
32
|
+
markedUnusedAt: number;
|
33
|
+
}
|
34
|
+
export interface CleanupStats {
|
35
|
+
timestamp: number;
|
36
|
+
classesDeleted: number;
|
37
|
+
cssSize: number;
|
38
|
+
rulesDeleted: number;
|
39
|
+
}
|
40
|
+
export interface CacheMetrics {
|
41
|
+
hits: number;
|
42
|
+
misses: number;
|
43
|
+
unusedHits: number;
|
44
|
+
bulkCleanups: number;
|
45
|
+
totalInsertions: number;
|
46
|
+
totalUnused: number;
|
47
|
+
stylesCleanedUp: number;
|
48
|
+
cleanupHistory: CleanupStats[];
|
49
|
+
startTime: number;
|
50
|
+
}
|
51
|
+
export interface RootRegistry {
|
52
|
+
sheets: SheetInfo[];
|
53
|
+
refCounts: Map<string, number>;
|
54
|
+
rules: Map<string, RuleInfo>;
|
55
|
+
unusedRules: Map<string, UnusedRuleInfo>;
|
56
|
+
/** Deduplication set of fully materialized CSS rules inserted into sheets */
|
57
|
+
ruleTextSet: Set<string>;
|
58
|
+
/** Scheduled bulk cleanup timeout */
|
59
|
+
bulkCleanupTimeout: ReturnType<typeof requestIdleCallback> | ReturnType<typeof setTimeout> | null;
|
60
|
+
/** Performance metrics (optional) */
|
61
|
+
metrics?: CacheMetrics;
|
62
|
+
/** Counter for generating sequential class names like t0, t1, t2... */
|
63
|
+
classCounter: number;
|
64
|
+
/** Keyframes cache by JSON.stringify(steps) -> entry */
|
65
|
+
keyframesCache: Map<string, KeyframesCacheEntry>;
|
66
|
+
/** Unused keyframes for cleanup */
|
67
|
+
unusedKeyframes: Map<string, UnusedRuleInfo>;
|
68
|
+
/** Counter for generating keyframes names like k0, k1, k2... */
|
69
|
+
keyframesCounter: number;
|
70
|
+
/** Set of injected @property names for tracking */
|
71
|
+
injectedProperties: Set<string>;
|
72
|
+
}
|
73
|
+
export type StyleRule = import('../utils/renderStyles').StyleResult;
|
74
|
+
export interface KeyframesInfo {
|
75
|
+
name: string;
|
76
|
+
sheetIndex: number;
|
77
|
+
ruleIndex: number;
|
78
|
+
cssText: string;
|
79
|
+
}
|
80
|
+
export type KeyframeStep = string | Record<string, string | number>;
|
81
|
+
export type KeyframesSteps = Record<string, KeyframeStep>;
|
82
|
+
export interface KeyframesResult {
|
83
|
+
toString(): string;
|
84
|
+
dispose: () => void;
|
85
|
+
}
|
86
|
+
export interface KeyframesCacheEntry {
|
87
|
+
name: string;
|
88
|
+
refCount: number;
|
89
|
+
info: KeyframesInfo;
|
90
|
+
}
|
@@ -3,9 +3,13 @@ export declare class Lru<K, V> {
|
|
3
3
|
private map;
|
4
4
|
private head;
|
5
5
|
private tail;
|
6
|
-
|
6
|
+
private onEvict?;
|
7
|
+
constructor(limit?: number, onEvict?: (key: K, value: V) => void);
|
8
|
+
setOnEvict(fn?: (key: K, value: V) => void): void;
|
7
9
|
get(key: K): V | undefined;
|
8
10
|
set(key: K, value: V): void;
|
11
|
+
delete(key: K): void;
|
12
|
+
keys(): IterableIterator<K>;
|
9
13
|
private touch;
|
10
14
|
private evict;
|
11
15
|
clear(): void;
|
package/types/tasty/types.d.ts
CHANGED
@@ -32,8 +32,6 @@ export interface BasePropsWithoutChildren<K extends TagName = TagName> extends P
|
|
32
32
|
isDisabled?: boolean;
|
33
33
|
/** Plain css for the element */
|
34
34
|
css?: string;
|
35
|
-
/** The element name for using in style overriding */
|
36
|
-
styleName?: string;
|
37
35
|
/** The CSS style map */
|
38
36
|
style?: CSSProperties | (CSSProperties & {
|
39
37
|
[key: string]: string | number | null;
|
@@ -1 +1,9 @@
|
|
1
|
-
export
|
1
|
+
export type ConflictChecker = (combination: string[]) => boolean;
|
2
|
+
/**
|
3
|
+
* Efficient iterative combination generator with early pruning
|
4
|
+
* Generates combinations one by one and prunes branches early when conflicts are detected
|
5
|
+
* @param array - Array of mod strings to generate combinations from
|
6
|
+
* @param allowEmpty - Whether to include empty combination
|
7
|
+
* @param conflictChecker - Function to detect conflicting combinations (required)
|
8
|
+
*/
|
9
|
+
export declare function getModCombinationsIterative(array: string[], allowEmpty?: boolean, conflictChecker?: ConflictChecker): string[][];
|