@cube-dev/ui-kit 0.74.3 → 0.76.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 +28 -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 +3 -7
- 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 +3 -3
- 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 +703 -0
- package/es/tasty/index.js +3 -1
- package/es/tasty/injector/index.js +187 -0
- package/es/tasty/injector/injector.js +678 -0
- package/es/tasty/injector/sheet-manager.js +912 -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 +120 -35
- 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/isDevEnv.js +36 -0
- package/es/tasty/utils/mergeStyles.js +1 -1
- package/es/tasty/utils/modAttrs.js +1 -1
- package/es/tasty/utils/renderStyles.js +710 -58
- package/es/tasty/utils/responsive.js +1 -7
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +100 -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 +762 -765
- package/types/components/actions/use-action.d.ts +1 -1
- package/types/components/content/List/SectionHeading.d.ts +254 -255
- package/types/components/fields/DatePicker/DatePickerElement.d.ts +254 -255
- package/types/tasty/debug.d.ts +163 -0
- package/types/tasty/index.d.ts +2 -0
- package/types/tasty/injector/index.d.ts +87 -0
- package/types/tasty/injector/injector.d.ts +111 -0
- package/types/tasty/injector/sheet-manager.d.ts +98 -0
- package/types/tasty/injector/types.d.ts +106 -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/isDevEnv.d.ts +6 -0
- package/types/tasty/utils/renderStyles.d.ts +30 -7
- package/types/tasty/utils/responsive.d.ts +0 -1
- package/types/tasty/utils/styles.d.ts +7 -90
- package/types/tokens.d.ts +0 -11
@@ -0,0 +1,163 @@
|
|
1
|
+
/**
|
2
|
+
* Debug utilities for inspecting tasty-generated CSS at runtime
|
3
|
+
*/
|
4
|
+
type CSSTarget = 'all' | 'global' | 'active' | 'unused' | 'page' | string | string[] | Element;
|
5
|
+
interface CssOptions {
|
6
|
+
root?: Document | ShadowRoot;
|
7
|
+
prettify?: boolean;
|
8
|
+
log?: boolean;
|
9
|
+
}
|
10
|
+
interface InspectResult {
|
11
|
+
element?: Element | null;
|
12
|
+
classes: string[];
|
13
|
+
css: string;
|
14
|
+
size: number;
|
15
|
+
rules: number;
|
16
|
+
}
|
17
|
+
interface CacheMetrics {
|
18
|
+
hits: number;
|
19
|
+
misses: number;
|
20
|
+
bulkCleanups: number;
|
21
|
+
totalInsertions: number;
|
22
|
+
totalUnused: number;
|
23
|
+
stylesCleanedUp: number;
|
24
|
+
cleanupHistory: Array<{
|
25
|
+
timestamp: number;
|
26
|
+
classesDeleted: number;
|
27
|
+
cssSize: number;
|
28
|
+
rulesDeleted: number;
|
29
|
+
}>;
|
30
|
+
startTime: number;
|
31
|
+
unusedHits?: number;
|
32
|
+
}
|
33
|
+
interface CacheStatus {
|
34
|
+
classes: {
|
35
|
+
active: string[];
|
36
|
+
unused: string[];
|
37
|
+
all: string[];
|
38
|
+
};
|
39
|
+
metrics: CacheMetrics | null;
|
40
|
+
}
|
41
|
+
interface GlobalBreakdown {
|
42
|
+
css: string;
|
43
|
+
totalRules: number;
|
44
|
+
totalCSSSize: number;
|
45
|
+
selectors: {
|
46
|
+
elements: string[];
|
47
|
+
classes: string[];
|
48
|
+
ids: string[];
|
49
|
+
pseudoClasses: string[];
|
50
|
+
mediaQueries: string[];
|
51
|
+
keyframes: string[];
|
52
|
+
other: string[];
|
53
|
+
};
|
54
|
+
}
|
55
|
+
interface Definitions {
|
56
|
+
properties: string[];
|
57
|
+
keyframes: Array<{
|
58
|
+
name: string;
|
59
|
+
refCount: number;
|
60
|
+
}>;
|
61
|
+
}
|
62
|
+
interface SummaryOptions {
|
63
|
+
root?: Document | ShadowRoot;
|
64
|
+
log?: boolean;
|
65
|
+
includePageCSS?: false | true | 'all';
|
66
|
+
}
|
67
|
+
interface Summary {
|
68
|
+
activeClasses: string[];
|
69
|
+
unusedClasses: string[];
|
70
|
+
totalStyledClasses: string[];
|
71
|
+
activeCSSSize: number;
|
72
|
+
unusedCSSSize: number;
|
73
|
+
totalCSSSize: number;
|
74
|
+
activeCSS: string;
|
75
|
+
unusedCSS: string;
|
76
|
+
allCSS: string;
|
77
|
+
globalCSS: string;
|
78
|
+
globalCSSSize: number;
|
79
|
+
globalRuleCount: number;
|
80
|
+
page?: {
|
81
|
+
css?: string;
|
82
|
+
cssSize: number;
|
83
|
+
ruleCount: number;
|
84
|
+
stylesheetCount: number;
|
85
|
+
skippedStylesheets: number;
|
86
|
+
};
|
87
|
+
metrics: CacheMetrics | null;
|
88
|
+
definedProperties: string[];
|
89
|
+
definedKeyframes: Array<{
|
90
|
+
name: string;
|
91
|
+
refCount: number;
|
92
|
+
}>;
|
93
|
+
propertyCount: number;
|
94
|
+
keyframeCount: number;
|
95
|
+
cleanupSummary: {
|
96
|
+
enabled: boolean;
|
97
|
+
totalCleanups: number;
|
98
|
+
totalClassesDeleted: number;
|
99
|
+
totalCssDeleted: number;
|
100
|
+
totalRulesDeleted: number;
|
101
|
+
averageClassesPerCleanup: number;
|
102
|
+
averageCssPerCleanup: number;
|
103
|
+
averageRulesPerCleanup: number;
|
104
|
+
lastCleanup?: {
|
105
|
+
timestamp: number;
|
106
|
+
date: string;
|
107
|
+
classesDeleted: number;
|
108
|
+
cssSize: number;
|
109
|
+
rulesDeleted: number;
|
110
|
+
};
|
111
|
+
};
|
112
|
+
}
|
113
|
+
/**
|
114
|
+
* Concise tastyDebug API for inspecting styles at runtime
|
115
|
+
*/
|
116
|
+
export declare const tastyDebug: {
|
117
|
+
css(target: CSSTarget, opts?: CssOptions): string;
|
118
|
+
inspect(target: string | Element, opts?: {
|
119
|
+
root?: Document | ShadowRoot;
|
120
|
+
}): InspectResult;
|
121
|
+
cache(opts?: {
|
122
|
+
root?: Document | ShadowRoot;
|
123
|
+
includeHistory?: boolean;
|
124
|
+
}): CacheStatus;
|
125
|
+
cleanup(opts?: {
|
126
|
+
root?: Document | ShadowRoot;
|
127
|
+
}): void;
|
128
|
+
metrics(opts?: {
|
129
|
+
root?: Document | ShadowRoot;
|
130
|
+
}): CacheMetrics | null;
|
131
|
+
resetMetrics(opts?: {
|
132
|
+
root?: Document | ShadowRoot;
|
133
|
+
}): void;
|
134
|
+
global(opts?: {
|
135
|
+
root?: Document | ShadowRoot;
|
136
|
+
log?: boolean;
|
137
|
+
}): GlobalBreakdown;
|
138
|
+
defs(opts?: {
|
139
|
+
root?: Document | ShadowRoot;
|
140
|
+
}): Definitions;
|
141
|
+
summary(opts?: SummaryOptions): Summary;
|
142
|
+
pageCSS(opts?: {
|
143
|
+
root?: Document | ShadowRoot;
|
144
|
+
prettify?: boolean;
|
145
|
+
log?: boolean;
|
146
|
+
includeCrossOrigin?: boolean;
|
147
|
+
}): string;
|
148
|
+
pageStats(opts?: {
|
149
|
+
root?: Document | ShadowRoot;
|
150
|
+
includeCrossOrigin?: boolean;
|
151
|
+
}): {
|
152
|
+
cssSize: number;
|
153
|
+
ruleCount: number;
|
154
|
+
stylesheetCount: number;
|
155
|
+
skippedStylesheets: number;
|
156
|
+
};
|
157
|
+
install(): void;
|
158
|
+
log(target: CSSTarget, opts?: CssOptions & {
|
159
|
+
title?: string;
|
160
|
+
}): void;
|
161
|
+
help(): void;
|
162
|
+
};
|
163
|
+
export {};
|
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,87 @@
|
|
1
|
+
import { StyleResult } from '../utils/renderStyles';
|
2
|
+
import { StyleInjector } from './injector';
|
3
|
+
import { GlobalInjectResult, 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
|
+
* Allocate a className for a cacheKey without injecting styles yet
|
16
|
+
*/
|
17
|
+
export declare function allocateClassName(cacheKey: string, options?: {
|
18
|
+
root?: Document | ShadowRoot;
|
19
|
+
}): {
|
20
|
+
className: string;
|
21
|
+
isNewAllocation: boolean;
|
22
|
+
};
|
23
|
+
/**
|
24
|
+
* Inject styles and return className with dispose function
|
25
|
+
*/
|
26
|
+
export declare function inject(rules: StyleResult[], options?: {
|
27
|
+
root?: Document | ShadowRoot;
|
28
|
+
cacheKey?: string;
|
29
|
+
}): InjectResult;
|
30
|
+
/**
|
31
|
+
* Inject global rules that should not reserve tasty class names
|
32
|
+
*/
|
33
|
+
export declare function injectGlobal(rules: StyleResult[], options?: {
|
34
|
+
root?: Document | ShadowRoot;
|
35
|
+
}): GlobalInjectResult;
|
36
|
+
/**
|
37
|
+
* Inject keyframes and return object with toString() and dispose()
|
38
|
+
*/
|
39
|
+
export declare function keyframes(steps: import('./types').KeyframesSteps, nameOrOptions?: string | {
|
40
|
+
root?: Document | ShadowRoot;
|
41
|
+
name?: string;
|
42
|
+
}): import('./types').KeyframesResult;
|
43
|
+
/**
|
44
|
+
* Get CSS text from all sheets (for SSR)
|
45
|
+
*/
|
46
|
+
export declare function getCssText(options?: {
|
47
|
+
root?: Document | ShadowRoot;
|
48
|
+
}): string;
|
49
|
+
/**
|
50
|
+
* Collect only CSS used by a rendered subtree (like jest-styled-components).
|
51
|
+
* Pass the container returned by render(...).
|
52
|
+
*/
|
53
|
+
export declare function getCssTextForNode(node: ParentNode | Element | DocumentFragment, options?: {
|
54
|
+
root?: Document | ShadowRoot;
|
55
|
+
}): string;
|
56
|
+
/**
|
57
|
+
* Force cleanup of unused rules
|
58
|
+
*/
|
59
|
+
export declare function cleanup(root?: Document | ShadowRoot): void;
|
60
|
+
/**
|
61
|
+
* Check if we're currently running in a test environment
|
62
|
+
*/
|
63
|
+
export declare function getIsTestEnvironment(): boolean;
|
64
|
+
/**
|
65
|
+
* Get the global injector instance for debugging
|
66
|
+
*/
|
67
|
+
export declare const injector: {
|
68
|
+
readonly instance: StyleInjector;
|
69
|
+
};
|
70
|
+
/**
|
71
|
+
* Destroy all resources and clean up
|
72
|
+
*/
|
73
|
+
export declare function destroy(root?: Document | ShadowRoot): void;
|
74
|
+
/**
|
75
|
+
* Create a new isolated injector instance
|
76
|
+
*/
|
77
|
+
export declare function createInjector(config?: Partial<StyleInjectorConfig>): StyleInjector;
|
78
|
+
/**
|
79
|
+
* Create a global style component like styled-components createGlobalStyle
|
80
|
+
* Returns a React component that injects global styles when mounted and cleans up when unmounted
|
81
|
+
*/
|
82
|
+
export declare function createGlobalStyle<Props = {}>(strings: TemplateStringsArray, ...interpolations: Array<string | number | ((props: Props) => string | number)>): import('react').ComponentType<Props & {
|
83
|
+
root?: Document | ShadowRoot;
|
84
|
+
}>;
|
85
|
+
export type { StyleInjectorConfig, InjectResult, DisposeFunction, RuleInfo, SheetInfo, RootRegistry, StyleRule, KeyframesInfo, KeyframesResult, KeyframesSteps, KeyframesCacheEntry, CacheMetrics, } from './types';
|
86
|
+
export { StyleInjector } from './injector';
|
87
|
+
export { SheetManager } from './sheet-manager';
|
@@ -0,0 +1,111 @@
|
|
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 { GlobalInjectResult, 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
|
+
private globalRuleCounter;
|
13
|
+
constructor(config?: StyleInjectorConfig);
|
14
|
+
/**
|
15
|
+
* Allocate a className for a cacheKey without injecting styles yet.
|
16
|
+
* This allows separating className allocation (render phase) from style injection (insertion phase).
|
17
|
+
*/
|
18
|
+
allocateClassName(cacheKey: string, options?: {
|
19
|
+
root?: Document | ShadowRoot;
|
20
|
+
}): {
|
21
|
+
className: string;
|
22
|
+
isNewAllocation: boolean;
|
23
|
+
};
|
24
|
+
/**
|
25
|
+
* Inject styles from StyleResult objects
|
26
|
+
*/
|
27
|
+
inject(rules: StyleResult[], options?: {
|
28
|
+
root?: Document | ShadowRoot;
|
29
|
+
cacheKey?: string;
|
30
|
+
}): InjectResult;
|
31
|
+
/**
|
32
|
+
* Inject global styles (rules without a generated tasty class selector)
|
33
|
+
* This ensures we don't reserve a tasty class name (t{number}) for global rules,
|
34
|
+
* which could otherwise collide with element-level styles and break lookups.
|
35
|
+
*/
|
36
|
+
injectGlobal(rules: StyleResult[], options?: {
|
37
|
+
root?: Document | ShadowRoot;
|
38
|
+
}): GlobalInjectResult;
|
39
|
+
/**
|
40
|
+
* Dispose of a className
|
41
|
+
*/
|
42
|
+
private dispose;
|
43
|
+
/**
|
44
|
+
* Force bulk cleanup of unused styles
|
45
|
+
*/
|
46
|
+
cleanup(root?: Document | ShadowRoot): void;
|
47
|
+
/**
|
48
|
+
* Get CSS text from all sheets (for SSR)
|
49
|
+
*/
|
50
|
+
getCssText(options?: {
|
51
|
+
root?: Document | ShadowRoot;
|
52
|
+
}): string;
|
53
|
+
/**
|
54
|
+
* Get CSS only for the provided tasty classNames (e.g., ["t0","t3"])
|
55
|
+
*/
|
56
|
+
getCssTextForClasses(classNames: Iterable<string>, options?: {
|
57
|
+
root?: Document | ShadowRoot;
|
58
|
+
}): string;
|
59
|
+
/**
|
60
|
+
* Get cache performance metrics
|
61
|
+
*/
|
62
|
+
getMetrics(options?: {
|
63
|
+
root?: Document | ShadowRoot;
|
64
|
+
}): any;
|
65
|
+
/**
|
66
|
+
* Reset cache performance metrics
|
67
|
+
*/
|
68
|
+
resetMetrics(options?: {
|
69
|
+
root?: Document | ShadowRoot;
|
70
|
+
}): void;
|
71
|
+
/**
|
72
|
+
* Define a CSS @property custom property
|
73
|
+
* Example:
|
74
|
+
* @property --rotation { syntax: "<angle>"; inherits: false; initial-value: 45deg; }
|
75
|
+
* Note: No caching or dispose — this defines a global property.
|
76
|
+
*/
|
77
|
+
property(name: string, options?: {
|
78
|
+
syntax?: string;
|
79
|
+
inherits?: boolean;
|
80
|
+
initialValue?: string | number;
|
81
|
+
root?: Document | ShadowRoot;
|
82
|
+
}): void;
|
83
|
+
/**
|
84
|
+
* Check whether a given @property name was already injected by this injector
|
85
|
+
*/
|
86
|
+
isPropertyDefined(name: string, options?: {
|
87
|
+
root?: Document | ShadowRoot;
|
88
|
+
}): boolean;
|
89
|
+
/**
|
90
|
+
* Inject keyframes and return object with toString() and dispose()
|
91
|
+
*/
|
92
|
+
keyframes(steps: KeyframesSteps, nameOrOptions?: string | {
|
93
|
+
root?: Document | ShadowRoot;
|
94
|
+
name?: string;
|
95
|
+
}): KeyframesResult;
|
96
|
+
/**
|
97
|
+
* Dispose keyframes
|
98
|
+
*/
|
99
|
+
private disposeKeyframes;
|
100
|
+
/**
|
101
|
+
* Destroy all resources for a root
|
102
|
+
*/
|
103
|
+
destroy(root?: Document | ShadowRoot): void;
|
104
|
+
/**
|
105
|
+
* Create a global style component like styled-components createGlobalStyle
|
106
|
+
* Returns a React component that injects global styles when mounted and cleans up when unmounted
|
107
|
+
*/
|
108
|
+
createGlobalStyle<Props = {}>(strings: TemplateStringsArray, ...interpolations: Array<string | number | ((props: Props) => string | number)>): ComponentType<Props & {
|
109
|
+
root?: Document | ShadowRoot;
|
110
|
+
}>;
|
111
|
+
}
|
@@ -0,0 +1,98 @@
|
|
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[], globalKey: string, root: Document | ShadowRoot): RuleInfo | null;
|
26
|
+
/**
|
27
|
+
* Delete a global CSS rule by key
|
28
|
+
*/
|
29
|
+
deleteGlobalRule(registry: RootRegistry, globalKey: string): void;
|
30
|
+
/**
|
31
|
+
* Adjust rule indices after deletion to account for shifting
|
32
|
+
*/
|
33
|
+
private adjustIndicesAfterDeletion;
|
34
|
+
/**
|
35
|
+
* Delete a CSS rule from the sheet
|
36
|
+
*/
|
37
|
+
deleteRule(registry: RootRegistry, ruleInfo: RuleInfo): void;
|
38
|
+
/**
|
39
|
+
* Find a sheet with available space or return null
|
40
|
+
*/
|
41
|
+
private findAvailableSheet;
|
42
|
+
/**
|
43
|
+
* Find an available rule index in the sheet
|
44
|
+
*/
|
45
|
+
findAvailableRuleIndex(sheet: SheetInfo): number;
|
46
|
+
/**
|
47
|
+
* Schedule bulk cleanup of all unused styles (non-stacking)
|
48
|
+
*/
|
49
|
+
private scheduleBulkCleanup;
|
50
|
+
/**
|
51
|
+
* Force cleanup of unused styles
|
52
|
+
*/
|
53
|
+
forceCleanup(registry: RootRegistry): void;
|
54
|
+
/**
|
55
|
+
* Perform bulk cleanup of all unused styles
|
56
|
+
*/
|
57
|
+
private performBulkCleanup;
|
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
|
+
* Schedule async cleanup check (non-stacking)
|
88
|
+
*/
|
89
|
+
checkCleanupNeeded(registry: RootRegistry): void;
|
90
|
+
/**
|
91
|
+
* Perform the actual cleanup check (called asynchronously)
|
92
|
+
*/
|
93
|
+
private performCleanupCheck;
|
94
|
+
/**
|
95
|
+
* Clean up resources for a root
|
96
|
+
*/
|
97
|
+
cleanup(root: Document | ShadowRoot): void;
|
98
|
+
}
|
@@ -0,0 +1,106 @@
|
|
1
|
+
export interface InjectResult {
|
2
|
+
className: string;
|
3
|
+
dispose: () => void;
|
4
|
+
}
|
5
|
+
export interface GlobalInjectResult {
|
6
|
+
dispose: () => void;
|
7
|
+
}
|
8
|
+
export type DisposeFunction = () => void;
|
9
|
+
export interface StyleInjectorConfig {
|
10
|
+
nonce?: string;
|
11
|
+
maxRulesPerSheet?: number;
|
12
|
+
unusedStylesThreshold?: number;
|
13
|
+
bulkCleanupDelay?: number;
|
14
|
+
idleCleanup?: boolean;
|
15
|
+
forceTextInjection?: boolean;
|
16
|
+
/** Enable development mode features: performance metrics and debug information storage */
|
17
|
+
devMode?: boolean;
|
18
|
+
/**
|
19
|
+
* Ratio of unused styles to delete per bulk cleanup run (0..1).
|
20
|
+
* Defaults to 0.5 (oldest half) to reduce risk of removing styles
|
21
|
+
* that may be restored shortly after being marked unused.
|
22
|
+
*/
|
23
|
+
bulkCleanupBatchRatio?: number;
|
24
|
+
/**
|
25
|
+
* Minimum age (in ms) a style must remain unused before eligible for deletion.
|
26
|
+
* Helps avoid races during rapid mount/unmount cycles. Default: 10000ms.
|
27
|
+
*/
|
28
|
+
unusedStylesMinAgeMs?: number;
|
29
|
+
}
|
30
|
+
export interface RuleInfo {
|
31
|
+
className: string;
|
32
|
+
ruleIndex: number;
|
33
|
+
sheetIndex: number;
|
34
|
+
/** Dev-only: full CSS texts inserted for this class; omitted in production */
|
35
|
+
cssText?: string[];
|
36
|
+
/** Inclusive end index of the contiguous block of inserted rules for this className */
|
37
|
+
endRuleIndex?: number;
|
38
|
+
/** NEW: exact indices of all inserted rules for this className */
|
39
|
+
indices?: number[];
|
40
|
+
}
|
41
|
+
export interface SheetInfo {
|
42
|
+
sheet: HTMLStyleElement;
|
43
|
+
ruleCount: number;
|
44
|
+
holes: number[];
|
45
|
+
}
|
46
|
+
export interface CleanupStats {
|
47
|
+
timestamp: number;
|
48
|
+
classesDeleted: number;
|
49
|
+
cssSize: number;
|
50
|
+
rulesDeleted: number;
|
51
|
+
}
|
52
|
+
export interface CacheMetrics {
|
53
|
+
hits: number;
|
54
|
+
misses: number;
|
55
|
+
bulkCleanups: number;
|
56
|
+
totalInsertions: number;
|
57
|
+
totalUnused: number;
|
58
|
+
stylesCleanedUp: number;
|
59
|
+
cleanupHistory: CleanupStats[];
|
60
|
+
startTime: number;
|
61
|
+
unusedHits?: number;
|
62
|
+
}
|
63
|
+
export interface RootRegistry {
|
64
|
+
sheets: SheetInfo[];
|
65
|
+
refCounts: Map<string, number>;
|
66
|
+
rules: Map<string, RuleInfo>;
|
67
|
+
/** Cache key to className mapping to avoid dual storage of RuleInfo objects */
|
68
|
+
cacheKeyToClassName: Map<string, string>;
|
69
|
+
/** Deduplication set of fully materialized CSS rules inserted into sheets */
|
70
|
+
ruleTextSet: Set<string>;
|
71
|
+
/** Scheduled bulk cleanup timeout */
|
72
|
+
bulkCleanupTimeout: ReturnType<typeof requestIdleCallback> | ReturnType<typeof setTimeout> | null;
|
73
|
+
/** Scheduled cleanup check timeout */
|
74
|
+
cleanupCheckTimeout: ReturnType<typeof setTimeout> | null;
|
75
|
+
/** Performance metrics (optional) */
|
76
|
+
metrics?: CacheMetrics;
|
77
|
+
/** Counter for generating sequential class names like t0, t1, t2... */
|
78
|
+
classCounter: number;
|
79
|
+
/** Keyframes cache by JSON.stringify(steps) -> entry */
|
80
|
+
keyframesCache: Map<string, KeyframesCacheEntry>;
|
81
|
+
/** Counter for generating keyframes names like k0, k1, k2... */
|
82
|
+
keyframesCounter: number;
|
83
|
+
/** Set of injected @property names for tracking */
|
84
|
+
injectedProperties: Set<string>;
|
85
|
+
/** Global rules tracking for index adjustment */
|
86
|
+
globalRules: Map<string, RuleInfo>;
|
87
|
+
}
|
88
|
+
export type StyleRule = import('../utils/renderStyles').StyleResult;
|
89
|
+
export interface KeyframesInfo {
|
90
|
+
name: string;
|
91
|
+
sheetIndex: number;
|
92
|
+
ruleIndex: number;
|
93
|
+
/** Dev-only: full CSS text of the @keyframes rule; omitted in production */
|
94
|
+
cssText?: string;
|
95
|
+
}
|
96
|
+
export type KeyframeStep = string | Record<string, string | number>;
|
97
|
+
export type KeyframesSteps = Record<string, KeyframeStep>;
|
98
|
+
export interface KeyframesResult {
|
99
|
+
toString(): string;
|
100
|
+
dispose: () => void;
|
101
|
+
}
|
102
|
+
export interface KeyframesCacheEntry {
|
103
|
+
name: string;
|
104
|
+
refCount: number;
|
105
|
+
info: KeyframesInfo;
|
106
|
+
}
|
@@ -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[][];
|
@@ -1,10 +1,33 @@
|
|
1
|
+
/**
|
2
|
+
* Style rendering that works with structured style objects
|
3
|
+
* Eliminates CSS string parsing for better performance
|
4
|
+
*/
|
1
5
|
import { Styles } from '../styles/types';
|
2
|
-
export
|
6
|
+
export interface StyleResult {
|
7
|
+
selector: string;
|
8
|
+
declarations: string;
|
9
|
+
atRules?: string[];
|
10
|
+
needsClassName?: boolean;
|
11
|
+
}
|
12
|
+
export interface RenderResult {
|
13
|
+
rules: StyleResult[];
|
14
|
+
className?: string;
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* Check if a key represents a CSS selector
|
18
|
+
*/
|
19
|
+
export declare function isSelector(key: string): boolean;
|
20
|
+
/**
|
21
|
+
* Render styles to StyleResult[] format (recommended)
|
22
|
+
* Supports both component and global styling with advanced optimizations
|
23
|
+
*/
|
24
|
+
export declare function renderStyles(styles?: Styles, responsive?: number[], className?: string): RenderResult;
|
25
|
+
/**
|
26
|
+
* Render styles without className for element styles (injector will add it)
|
27
|
+
*/
|
28
|
+
export declare function renderStyles(styles: Styles | undefined, responsive?: number[]): RenderResult;
|
3
29
|
/**
|
4
|
-
* Render
|
5
|
-
*
|
6
|
-
* @param responsive - A list of responsive zones
|
7
|
-
* @param {string} [suffix]
|
8
|
-
* @return {string}
|
30
|
+
* Render styles for direct injection with a specific selector
|
31
|
+
* Bypasses CSS text generation and flattening by directly creating StyleResult[]
|
9
32
|
*/
|
10
|
-
export declare function renderStyles(styles
|
33
|
+
export declare function renderStyles(styles: Styles | undefined, responsive: number[], selector: string): StyleResult[];
|