@cube-dev/ui-kit 0.0.0-canary-2757f7b → 0.0.0-canary-8b6ee8a
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/README.md +12 -0
- package/dist/README.md +12 -0
- package/dist/_internal/hooks/use-chained-callback.js +1 -1
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +3 -2
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.d.ts +10 -0
- package/dist/components/Root.js +7 -3
- package/dist/components/Root.js.map +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.d.ts +1 -0
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.d.ts +1 -2
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.d.ts +35 -28
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/Text.js.map +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.d.ts +0 -6
- package/dist/components/content/Title.js +3 -2
- package/dist/components/content/Title.js.map +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +1 -1
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.d.ts +1 -0
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/content/use-auto-tooltip.js.map +1 -1
- package/dist/components/fields/Checkbox/Checkbox.d.ts +2 -2
- package/dist/components/fields/Checkbox/Checkbox.js +2 -2
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.d.ts +1 -2
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/index.d.ts +1 -0
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +2 -0
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.d.ts +1 -2
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.d.ts +2 -2
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/Switch/Switch.js.map +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +1 -2
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +1 -2
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/types.d.ts +1 -2
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Board/Board.js +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.js +1 -1
- package/dist/components/layout/Board/Widget.js +1 -1
- package/dist/components/layout/Board/WidgetHost.js +1 -1
- package/dist/components/layout/Board/board-context.js +1 -1
- package/dist/components/layout/Board/board-store.js +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js +1 -1
- package/dist/components/layout/Board/grid-core/collision.js +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/index.js +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/use-board-layout.js +1 -1
- package/dist/components/layout/Board/use-board-registry.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.d.ts +2 -1
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/Modal.js.map +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.d.ts +1 -0
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js.map +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Tray.js.map +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/types.d.ts +1 -0
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.d.ts +2 -0
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/context.js.map +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.d.ts +2 -0
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/index.d.ts +1 -0
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts +1 -1
- package/dist/provider.js +1 -1
- package/dist/provider.js.map +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/shared/form.d.ts +28 -3
- package/dist/shared/index.d.ts +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/colors.d.ts +41 -2
- package/dist/tokens/colors.js +77 -9
- package/dist/tokens/colors.js.map +1 -1
- package/dist/tokens/index.d.ts +3 -2
- package/dist/tokens/index.js +23 -16
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +10 -6
- package/dist/tokens/lazy-styles.js.map +1 -1
- package/dist/tokens/palette-config.d.ts +203 -0
- package/dist/tokens/palette-config.js +253 -0
- package/dist/tokens/palette-config.js.map +1 -0
- package/dist/tokens/palette.d.ts +45 -5
- package/dist/tokens/palette.js +567 -403
- package/dist/tokens/palette.js.map +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.d.ts +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/mergeProps.js.map +1 -1
- package/dist/utils/react/nullableValue.d.ts +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/nullableValue.js.map +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +3 -3
- package/docs/Colors.md +4 -0
- package/docs/Theming.md +327 -0
- package/docs/Usage.md +30 -3
- package/docs/components/Root.md +1 -0
- package/docs/glaze/api.md +156 -8
- package/docs/glaze/methodology.md +21 -1
- package/docs/glaze/okhst.md +13 -0
- package/docs/tasty/README.md +1 -3
- package/docs/tasty/ai-agents.md +7 -21
- package/docs/tasty/configuration.md +30 -220
- package/docs/tasty/debug.md +7 -7
- package/docs/tasty/design-system.md +2 -2
- package/docs/tasty/dsl.md +8 -68
- package/docs/tasty/injector.md +4 -31
- package/docs/tasty/methodology.md +1 -1
- package/docs/tasty/pipeline.md +3 -3
- package/docs/tasty/react-api.md +1 -61
- package/docs/tasty/ssr.md +33 -40
- package/docs/tasty/styles.md +9 -27
- package/docs/tasty/tasty-static.md +6 -8
- package/package.json +4 -4
- package/dist/props.d.ts +0 -13
- package/docs/tasty/migration-v3.md +0 -285
- package/docs/tasty/plugins.md +0 -349
|
@@ -642,6 +642,25 @@ In HC variants, Glaze bypasses the normal tone window and uses the full
|
|
|
642
642
|
`[0, 100]` range. Edge tones can reach the edge; contrast floors have more room
|
|
643
643
|
to solve.
|
|
644
644
|
|
|
645
|
+
### A slider instead of a tier
|
|
646
|
+
|
|
647
|
+
The two-tier model assumes contrast is a binary OS preference. When contrast is
|
|
648
|
+
instead a setting *your users* control, set
|
|
649
|
+
[`contrastLevel`](api.md#manual-contrast-level) to a number and the HC tier
|
|
650
|
+
becomes a `0–100` ramp: level `0` is your normal palette, `100` is the HC
|
|
651
|
+
palette you already authored, and everything between is resolved at that level.
|
|
652
|
+
|
|
653
|
+
The authoring work is the same — the HC pairs above are what the slider ramps
|
|
654
|
+
toward, so a palette tuned for high contrast needs no new fields. Two
|
|
655
|
+
consequences worth planning for:
|
|
656
|
+
|
|
657
|
+
- The separate HC tier stops being emitted, so wire the level itself into your
|
|
658
|
+
build or runtime rather than a `prefers-contrast: more` block. Existing
|
|
659
|
+
media-query wiring keeps working; it just receives the same values as the base
|
|
660
|
+
block.
|
|
661
|
+
- `contrastLevel: 0` is a useful state in its own right: normal contrast with no
|
|
662
|
+
HC tier at all, for products that ship the slider but default it off.
|
|
663
|
+
|
|
645
664
|
## Checklist
|
|
646
665
|
|
|
647
666
|
Before shipping a palette, verify:
|
|
@@ -654,7 +673,8 @@ Before shipping a palette, verify:
|
|
|
654
673
|
- Low-stakes visual relationships use tone deltas instead of fake contrast
|
|
655
674
|
floors.
|
|
656
675
|
- `inherit: false` is set on default-only tokens so status themes stay focused.
|
|
657
|
-
- HC pairs exist where high contrast should visibly tighten
|
|
676
|
+
- HC pairs exist where high contrast should visibly tighten (they double as the
|
|
677
|
+
ramp for a manual `contrastLevel`).
|
|
658
678
|
- `glaze.configure({ states, modes })` matches the states registered in the app.
|
|
659
679
|
- Every emitted scheme (`light`, `dark`, `lightContrast`, `darkContrast`) has
|
|
660
680
|
been reviewed on complete screens, not only in a token grid.
|
package/docs/glaze/okhst.md
CHANGED
|
@@ -85,6 +85,19 @@ lightTone: { lo: 10, hi: 100, eps: 0.05 }
|
|
|
85
85
|
Pass `false` to use the full range. High-contrast variants always bypass the
|
|
86
86
|
ordinary boundaries and use the full range.
|
|
87
87
|
|
|
88
|
+
A [manual contrast level](api.md#manual-contrast-level) generalizes that bypass
|
|
89
|
+
continuously: with `contrastLevel: L` (`f = L / 100`), each boundary moves toward
|
|
90
|
+
the full range instead of jumping to it —
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
lo(f) = lo + (0 - lo) * f
|
|
94
|
+
hi(f) = hi + (100 - hi) * f
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
— so the light default walks `[10, 100] → [0, 100]` and the dark default
|
|
98
|
+
`[15, 95] → [0, 100]`. The render `eps` is not interpolated, and a `false` window
|
|
99
|
+
is already the full range and therefore level-invariant.
|
|
100
|
+
|
|
88
101
|
## Scheme adaptation
|
|
89
102
|
|
|
90
103
|
Each regular color has an adaptation `mode`:
|
package/docs/tasty/README.md
CHANGED
|
@@ -20,15 +20,13 @@ Tasty is a styling engine for design systems that turns component state into det
|
|
|
20
20
|
- **React components**: [React API](react-api.md)
|
|
21
21
|
- **Zero-runtime / build-time extraction**: [Zero Runtime (tastyStatic)](tasty-static.md)
|
|
22
22
|
- **Runtime `tasty()` with server collection and hydration**: [Server-Side Rendering](ssr.md)
|
|
23
|
-
- **Upgrading from v2**: [Migration Guide (v2 → v3)](migration-v3.md)
|
|
24
23
|
|
|
25
24
|
## By Task
|
|
26
25
|
|
|
27
26
|
- **Learn the style language**: [Style DSL](dsl.md)
|
|
28
27
|
- **Brief an AI agent (or yourself) on writing correct styles**: [Style Rules for AI Agents](ai-agents.md)
|
|
29
28
|
- **Look up a property handler**: [Style Properties](styles.md)
|
|
30
|
-
- **Define tokens, units, recipes, keyframes,
|
|
31
|
-
- **Extend Tasty with a plugin, custom handler, or custom prop**: [Plugins & Extension Points](plugins.md)
|
|
29
|
+
- **Define tokens, units, recipes, keyframes, or properties globally**: [Configuration](configuration.md)
|
|
32
30
|
- **Debug generated CSS or cache behavior**: [Debug Utilities](debug.md)
|
|
33
31
|
- **Understand how selector generation works internally**: [Style rendering pipeline](pipeline.md)
|
|
34
32
|
- **Understand runtime injection internals**: [Style Injector](injector.md)
|
package/docs/tasty/ai-agents.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Tasty Style Rules for AI Agents
|
|
2
2
|
|
|
3
|
-
A compact ruleset for **writing correct `@tenphi/tasty` styles**. It is not an API tour —
|
|
3
|
+
A compact ruleset for **writing correct `@tenphi/tasty` styles**. It is not an API tour — every rule here is machine-checked by [`@tenphi/eslint-plugin-tasty`](https://www.npmjs.com/package/@tenphi/eslint-plugin-tasty), so following it means clean lint output. For explanations and the complete API, see [Style DSL](dsl.md), [Style Properties](styles.md), [React API](react-api.md).
|
|
4
4
|
|
|
5
5
|
Notation: ❌ wrong → ✅ correct.
|
|
6
6
|
|
|
@@ -64,8 +64,7 @@ The last row goes the other way — longhands over the shorthand — because `fl
|
|
|
64
64
|
| `#clear` / `#current` | `transparent` / `currentcolor` |
|
|
65
65
|
| `$name` | custom property → `var(--name)` |
|
|
66
66
|
| `(#a, #b)` | fallback chain |
|
|
67
|
-
| `$$name` / `##name` | the
|
|
68
|
-
| `$$name(…)` | call a CSS `@function` declared via `@function`, `useFunction`, or config |
|
|
67
|
+
| `$$name` / `##name` | the property *name* — only inside `transition` |
|
|
69
68
|
|
|
70
69
|
- ❌ `#f5f5f5`, `rgb(0 0 0)`, `oklch(…)`, `okhsl(…)`, `red` → ✅ `#surface` (add the token to the config if it doesn't exist).
|
|
71
70
|
- ❌ `var(--gap)` → ✅ `$gap` · ❌ `$accent-color` → ✅ `#accent` · ❌ `transparent` → ✅ `#clear` · ❌ `currentColor` → ✅ `#current`.
|
|
@@ -83,7 +82,7 @@ Prefer units over raw pixels: `8px` → `1x` … `64px` → `8x`; `radius: '6px'
|
|
|
83
82
|
|
|
84
83
|
### `true`
|
|
85
84
|
|
|
86
|
-
`true` means "the design-system default" and is accepted **only** by: `border`, `radius`, `outline`, `shadow`, `padding`, `margin`, `gap`, `inset`, `width`, `height`, `fill`, `color`, `
|
|
85
|
+
`true` means "the design-system default" and is accepted **only** by: `border`, `radius`, `outline`, `shadow`, `padding`, `margin`, `gap`, `inset`, `width`, `height`, `fill`, `color`, `preset`, `font`, `scrollbar`, `hide`. Anywhere else it is an error.
|
|
87
86
|
|
|
88
87
|
### `!important`
|
|
89
88
|
|
|
@@ -91,7 +90,7 @@ Never use it. Tasty owns specificity through doubled selectors and state orderin
|
|
|
91
90
|
|
|
92
91
|
### Modifiers
|
|
93
92
|
|
|
94
|
-
A value is `[values…] [modifiers…]`, and several groups can be comma-separated (later groups override earlier ones).
|
|
93
|
+
A value is `[values…] [modifiers…]`, and several groups can be comma-separated (later groups override earlier ones). Only the modifiers a property knows are valid:
|
|
95
94
|
|
|
96
95
|
| Property | Modifiers |
|
|
97
96
|
|----------|-----------|
|
|
@@ -112,8 +111,6 @@ Directional modifiers beat placeholder zeros:
|
|
|
112
111
|
- ❌ `padding: '0 0 2x 0'` → ✅ `padding: '2x bottom'`
|
|
113
112
|
- ❌ `padding: '1x 1x 2x 1x'` → ✅ `padding: '1x, 2x bottom'`
|
|
114
113
|
- ❌ `border: '0 0 1bw 0'` — four tokens parse as *one* border value, so this renders no border at all → ✅ `border: '1bw bottom'`
|
|
115
|
-
- ❌ `padding: '2x 4x top right'` — a directional group takes one value, so `4x` is dropped → ✅ `padding: '2x top, 4x right'`
|
|
116
|
-
- ❌ `fade: '3x 1x top bottom'` → ✅ `fade: '3x top, 1x bottom'`
|
|
117
114
|
|
|
118
115
|
Value-only properties reject both colors and modifiers: `gap`, `columnGap`, `rowGap`, `opacity`, `zIndex`, `order`, `flexGrow`, `flexShrink`, `flexBasis`, `aspectRatio`, `lineClamp`, `tabSize`, `paddingInline`, `paddingBlock`. `fill` and `color` take a color (plus `none` / `transparent`); `caretColor` and `accentColor` take a color only.
|
|
119
116
|
|
|
@@ -187,21 +184,11 @@ styles: { Title: { preset: 'h3' }, Icon: { $: '>@:last-child', color: '#accent'
|
|
|
187
184
|
| Key | Shape |
|
|
188
185
|
|-----|-------|
|
|
189
186
|
| `@keyframes` | `{ name: { '0%': styles, … } }` |
|
|
190
|
-
| `@
|
|
191
|
-
| `@
|
|
192
|
-
| `@
|
|
193
|
-
| `@function` | `{ '$$name': { args, returns?, result, '$local'? } }` |
|
|
187
|
+
| `@properties` | `{ '$name': { syntax, inherits, initialValue } }` |
|
|
188
|
+
| `@fontFace` | `{ 'Family Name': descriptors \| descriptors[] }` |
|
|
189
|
+
| `@counterStyle` | `{ name: descriptors }` |
|
|
194
190
|
| `recipe` | a **string** of configured recipe names: `'card elevated'`, `'reset input / autofill'`, `'none / disabled'` |
|
|
195
191
|
|
|
196
|
-
At-rule keys match the real CSS at-rule names, so they are kebab-case, not camelCase. Inside `@function`, the callable is `$$name` but its parameters and local variables are `$name`:
|
|
197
|
-
|
|
198
|
-
```jsx
|
|
199
|
-
styles: {
|
|
200
|
-
'@function': { $$negative: { args: ['$value'], result: '(-1 * $value)' } },
|
|
201
|
-
marginTop: '$$negative(2x)',
|
|
202
|
-
}
|
|
203
|
-
```
|
|
204
|
-
|
|
205
192
|
## 7. `tastyStatic()`
|
|
206
193
|
|
|
207
194
|
The selector must be a string literal and valid CSS. Values must be static — strings, numbers, booleans, `null`, or objects/arrays of those. No variables, template literals, function calls, or spreads.
|
|
@@ -216,5 +203,4 @@ The selector must be a string literal and valid CSS. Values must be static — s
|
|
|
216
203
|
- Modifiers valid for the property; directional shorthand instead of placeholder zeros.
|
|
217
204
|
- Every state map starts with `''` (or `_`), is flat, and lives inside a property value.
|
|
218
205
|
- `@own()` only inside sub-elements; sub-element keys are capitalized and hold objects.
|
|
219
|
-
- At-rule keys are kebab-case (`@property`, `@font-face`, `@counter-style`, `@function`); `@function` names use `$$`, their args and locals use `$`.
|
|
220
206
|
- Values are static; dynamic behavior comes from `mods` / `tokens` / `styleProps`.
|
|
@@ -26,15 +26,12 @@ configure({
|
|
|
26
26
|
custom: (n) => `${n * 10}px`, // Function-based unit
|
|
27
27
|
},
|
|
28
28
|
|
|
29
|
-
// Custom functions
|
|
30
|
-
|
|
31
|
-
// Bare key + function value → parse-time function, called as `double(...)`
|
|
29
|
+
// Custom functions for the parser
|
|
30
|
+
funcs: {
|
|
32
31
|
double: (groups) => {
|
|
33
32
|
const value = parseFloat(groups[0]?.output || '0');
|
|
34
33
|
return `${value * 2}px`;
|
|
35
34
|
},
|
|
36
|
-
// `$$name` key + object value → declarative CSS @function, called as `$$negative(...)`
|
|
37
|
-
$$negative: { args: ['$value'], result: '(-1 * $value)' },
|
|
38
35
|
},
|
|
39
36
|
});
|
|
40
37
|
```
|
|
@@ -48,31 +45,23 @@ These docs use `data-schema="dark"` in examples. If your app already standardize
|
|
|
48
45
|
| Option | Type | Default | Description |
|
|
49
46
|
|--------|------|---------|-------------|
|
|
50
47
|
| `nonce` | `string` | - | CSP nonce for style elements |
|
|
51
|
-
| `maxRulesPerSheet` | `number` | `8192` | Maximum rules per injected stylesheet |
|
|
52
|
-
| `forceTextInjection` | `boolean` | auto (`true` in test envs) | Force text-node CSS injection instead of constructable stylesheets |
|
|
53
|
-
| `devMode` | `boolean` | auto | Enable development-mode features: performance metrics and debug info |
|
|
54
48
|
| `states` | `Record<string, string>` | - | Global state aliases for advanced state mapping |
|
|
55
49
|
| `parserCacheSize` | `number` | `1000` | Parser LRU cache size |
|
|
56
|
-
| `units` | `Record<string, string \|
|
|
57
|
-
| `
|
|
58
|
-
| `handlers` | `Record<string, StyleHandlerDefinition>` | Built-in | Custom style handlers (replace built-in)
|
|
59
|
-
| `propHandlers` | `Record<string, PropHandlerDefinition>` | - | Props middleware for every component — props in, props out. See [Props Middleware](#props-middleware) |
|
|
60
|
-
| `baseStyleProps` | `readonly string[]` | - | Style names exposed as props on **every** component. See [Base Style Props](#base-style-props) |
|
|
50
|
+
| `units` | `Record<string, string \| Function>` | Built-in | Custom units (merged with built-in). See [built-in units](dsl.md#built-in-units) |
|
|
51
|
+
| `funcs` | `Record<string, Function>` | - | Custom parser functions (merged with existing) |
|
|
52
|
+
| `handlers` | `Record<string, StyleHandlerDefinition>` | Built-in | Custom style handlers (replace built-in) |
|
|
61
53
|
| `tokens` | `Record<string, value \| stateMap>` | - | Design tokens injected as `:root` CSS custom properties |
|
|
62
|
-
| `replaceTokens` | `Record<string, string \| number
|
|
54
|
+
| `replaceTokens` | `Record<string, string \| number>` | - | Parse-time token substitution (inline replacement) |
|
|
63
55
|
| `keyframes` | `Record<string, KeyframesSteps>` | - | Global keyframes for animations |
|
|
64
56
|
| `properties` | `Record<string, PropertyDefinition>` | - | Global CSS @property definitions |
|
|
65
|
-
| `
|
|
66
|
-
| `
|
|
67
|
-
| `polyfills` | `{ functions?: boolean }` | `{}` | Opt-in polyfills for not-yet-baseline features. `functions: true` inlines `@function` calls into plain CSS at parse time |
|
|
57
|
+
| `fontFace` | `Record<string, FontFaceInput>` | - | Global @font-face definitions |
|
|
58
|
+
| `counterStyle` | `Record<string, CounterStyleDescriptors>` | - | Global @counter-style definitions |
|
|
68
59
|
| `autoPropertyTypes` | `boolean` | `true` | Auto-infer and register `@property` types from values |
|
|
69
60
|
| `recipes` | `Record<string, RecipeStyles>` | - | Predefined style recipes (named style bundles) |
|
|
70
61
|
| `presets` | `Record<string, TypographyPreset>` | - | Typography presets — shorthand for `generateTypographyTokens()` |
|
|
71
62
|
| `globalStyles` | `Record<string, Styles>` | - | Global Tasty styles keyed by CSS selector |
|
|
72
|
-
| `plugins` | `TastyPlugin[]` | - | Plugins that bundle any of the above (processed in order; later override earlier, and direct config wins over all). See [Plugins](plugins.md) |
|
|
73
|
-
| `gc` | `GCConfig` | - | Garbage-collection tuning for unused styles (`{ touchInterval, capacity }`) |
|
|
74
63
|
| `colorSpace` | `'rgb' \| 'hsl' \| 'oklch'` | `'oklch'` | Color space for decomposed color token companion variables |
|
|
75
|
-
| `namePrefix` | `string` | `'t'` (runtime) / `'ts'` (zero-runtime) | Prefix prepended to every generated identifier (class, keyframe, counter-style names).
|
|
64
|
+
| `namePrefix` | `string` | `'t'` (runtime) / `'ts'` (zero-runtime) | Prefix prepended to every generated identifier (class, keyframe, counter-style names). See [Name prefix](#name-prefix). |
|
|
76
65
|
|
|
77
66
|
---
|
|
78
67
|
|
|
@@ -198,7 +187,7 @@ Register custom fonts globally so every component can reference them by family n
|
|
|
198
187
|
|
|
199
188
|
```ts
|
|
200
189
|
configure({
|
|
201
|
-
|
|
190
|
+
fontFace: {
|
|
202
191
|
'Brand Sans': [
|
|
203
192
|
{
|
|
204
193
|
src: 'url("/fonts/brand-regular.woff2") format("woff2")',
|
|
@@ -221,7 +210,7 @@ configure({
|
|
|
221
210
|
|
|
222
211
|
Now any component can use `fontFamily: '"Brand Sans", sans-serif'` and the browser will already have the `@font-face` rules in the stylesheet.
|
|
223
212
|
|
|
224
|
-
See [Font Face (`@
|
|
213
|
+
See [Font Face (`@fontFace`)](dsl.md#font-face-fontface) for inline usage inside component styles and the full list of supported descriptors.
|
|
225
214
|
|
|
226
215
|
---
|
|
227
216
|
|
|
@@ -231,7 +220,7 @@ Define custom list-marker algorithms globally. Rules are injected eagerly when s
|
|
|
231
220
|
|
|
232
221
|
```ts
|
|
233
222
|
configure({
|
|
234
|
-
|
|
223
|
+
counterStyle: {
|
|
235
224
|
thumbs: {
|
|
236
225
|
system: 'cyclic',
|
|
237
226
|
symbols: '"👍"',
|
|
@@ -247,98 +236,7 @@ configure({
|
|
|
247
236
|
|
|
248
237
|
Components can then reference `listStyleType: 'thumbs'` directly.
|
|
249
238
|
|
|
250
|
-
See [Counter Style (`@
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
|
-
## Functions
|
|
255
|
-
|
|
256
|
-
The single `functions` map holds both kinds of custom functions, discriminated by the value type:
|
|
257
|
-
|
|
258
|
-
- **Parse functions** — a **bare key** with a **function value** `(groups) => string`. Runs at parse time and is called as `name(...)`. Use these for computed/derived CSS that JavaScript produces (e.g. color-space conversions).
|
|
259
|
-
- **CSS `@function` definitions** — a **`$$name` key** with an **object value** (a [`FunctionDefinition`](https://developer.mozilla.org/en-US/docs/Web/CSS/@function)). Injected eagerly as a native `@function` rule and called as `$$name(...)` (→ `--name(...)`).
|
|
260
|
-
|
|
261
|
-
```ts
|
|
262
|
-
configure({
|
|
263
|
-
functions: {
|
|
264
|
-
// Parse function — bare key, function value
|
|
265
|
-
double: (groups) => `calc(2 * ${groups[0]?.output ?? '0'})`,
|
|
266
|
-
|
|
267
|
-
// CSS @function — `$$` key, object value
|
|
268
|
-
$$negative: { args: ['$value'], result: '(-1 * $value)' },
|
|
269
|
-
$$shadow: {
|
|
270
|
-
args: { '$shadow-color': { syntax: '<color>', default: 'inherit' } },
|
|
271
|
-
returns: '<color>',
|
|
272
|
-
$offset: '2px',
|
|
273
|
-
result: '$offset $offset ($shadow-color, black)',
|
|
274
|
-
},
|
|
275
|
-
},
|
|
276
|
-
});
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
Components then invoke parse functions as `double(...)` and CSS functions with the `$$name(...)` sugar, e.g. `marginTop: '$$negative(10px)'`.
|
|
280
|
-
|
|
281
|
-
> A key whose prefix doesn't match its value type (an object under a bare key, or a function under a `$$` key) is **ignored with a dev-mode warning**.
|
|
282
|
-
|
|
283
|
-
See [Functions (`@function`)](dsl.md#functions-function) for inline usage inside component styles, the full descriptor shape, and token conventions. `@function` is an experimental CSS feature — unsupported browsers safely ignore the native rule (see the polyfill below).
|
|
284
|
-
|
|
285
|
-
### Custom color functions
|
|
286
|
-
|
|
287
|
-
A parse function whose output is an already-supported color (`rgb`, `hsl`, `#…`, `oklch`, …) is treated as a **color function**: it works everywhere a color is accepted — style values, `#token.alpha` opacity injection, token decomposition into the configured color space, and `parseColor` — with no extra registration. This is the same mechanism the built-in `okhsl`/`okhst` plugins use; they are ordinary plugins registered by default.
|
|
288
|
-
|
|
289
|
-
```ts
|
|
290
|
-
import { configure, createColorFunc } from '@tenphi/tasty';
|
|
291
|
-
|
|
292
|
-
// A custom color space is just a `functions` entry.
|
|
293
|
-
const myColorPlugin = () => ({
|
|
294
|
-
name: 'mycolor',
|
|
295
|
-
functions: {
|
|
296
|
-
// Hand-written parse function:
|
|
297
|
-
mycolor: (groups) => {
|
|
298
|
-
const [r, g, b] = groups[0].all;
|
|
299
|
-
return `rgb(${r} ${g} ${b})`;
|
|
300
|
-
},
|
|
301
|
-
},
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
configure({ plugins: [myColorPlugin()] });
|
|
305
|
-
|
|
306
|
-
// Now `mycolor(...)` is a color in every context:
|
|
307
|
-
// fill: 'mycolor(255 0 0)'
|
|
308
|
-
// fill: '#brand.5' (with replaceTokens: { '#brand': 'mycolor(255 0 0)' })
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
For HSL-style color spaces (a hue angle plus two percentages), the exported `createColorFunc(name, convert, label?)` helper handles angle/percentage parsing, clamping, alpha, and caching. `convert` returns sRGB `[r, g, b]` in 0-1; `label` is an optional string used only in dev warnings (e.g. `'H S L'`) and has no effect on output. This is exactly how `okhslPlugin`/`okhstPlugin` are implemented.
|
|
312
|
-
|
|
313
|
-
---
|
|
314
|
-
|
|
315
|
-
## Polyfills
|
|
316
|
-
|
|
317
|
-
`@function` only ships natively in Chromium 139+. To use CSS functions in browsers that don't support the at-rule yet (Firefox, Safari), enable the **functions polyfill**, which expands every `$$name(...)` call into plain CSS (`calc()`/`var()`/`color-mix()`) at parse time instead of emitting the native `@function` rule:
|
|
318
|
-
|
|
319
|
-
```ts
|
|
320
|
-
configure({
|
|
321
|
-
polyfills: {
|
|
322
|
-
functions: true, // default: false
|
|
323
|
-
},
|
|
324
|
-
functions: {
|
|
325
|
-
$$negative: { args: ['$value'], result: '(-1 * $value)' },
|
|
326
|
-
},
|
|
327
|
-
});
|
|
328
|
-
|
|
329
|
-
// Now `marginTop: '$$negative(10px)'` renders `margin-top: calc(-1 * 10px)`
|
|
330
|
-
// — no native @function rule is emitted.
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
This works across all rendering modes (client, SSR/RSC, and `tastyStatic`) because expansion happens in the parser. Note `polyfills.functions` (the feature toggle) is distinct from the top-level `functions` (the definitions map).
|
|
334
|
-
|
|
335
|
-
**Decided limitations when the polyfill is on:**
|
|
336
|
-
|
|
337
|
-
- **No native fallback** — functions are always inlined; we do exactly what is configured.
|
|
338
|
-
- **Conditional results** (`@media`/`@supports`/`if()` inside `result`) are inlined verbatim; the conditional nuance is not resolved per-element.
|
|
339
|
-
- **Typed params / `returns`** are dropped (inlining is purely lexical substitution).
|
|
340
|
-
- **Param name collisions** are avoided by fully inlining argument values (no function-internal custom properties are emitted) and by namespacing the function's own variables.
|
|
341
|
-
- **Recursion** — self/mutually-recursive functions are not expanded; the cycle guard bails and leaves the call untouched.
|
|
239
|
+
See [Counter Style (`@counterStyle`)](dsl.md#counter-style-counterstyle) for inline usage inside component styles and the full list of supported descriptors.
|
|
342
240
|
|
|
343
241
|
---
|
|
344
242
|
|
|
@@ -362,7 +260,7 @@ configure({
|
|
|
362
260
|
});
|
|
363
261
|
```
|
|
364
262
|
|
|
365
|
-
Recipe values are flat tasty styles (no sub-element keys). They may contain base styles, tokens, local states, `@keyframes`, and `@
|
|
263
|
+
Recipe values are flat tasty styles (no sub-element keys). They may contain base styles, tokens, local states, `@keyframes`, and `@properties`. Recipes cannot reference other recipes.
|
|
366
264
|
|
|
367
265
|
For how to apply, compose, and override recipes in components, see [Recipes](dsl.md#recipes) in the Style DSL reference.
|
|
368
266
|
|
|
@@ -451,12 +349,12 @@ Supported types:
|
|
|
451
349
|
| `300ms`, `1s` (time units) | `<time>` |
|
|
452
350
|
| `#name` tokens (by naming convention) | `<color>` |
|
|
453
351
|
|
|
454
|
-
Auto-inferred properties use `inherits: true` (the CSS default). Use explicit `@
|
|
352
|
+
Auto-inferred properties use `inherits: true` (the CSS default). Use explicit `@properties` when you need different settings:
|
|
455
353
|
|
|
456
354
|
```jsx
|
|
457
355
|
// In component styles
|
|
458
356
|
styles: {
|
|
459
|
-
'@
|
|
357
|
+
'@properties': {
|
|
460
358
|
'$scale': { syntax: '<number>', inherits: false, initialValue: 1 },
|
|
461
359
|
},
|
|
462
360
|
}
|
|
@@ -469,7 +367,7 @@ configure({
|
|
|
469
367
|
});
|
|
470
368
|
```
|
|
471
369
|
|
|
472
|
-
To disable auto-inference entirely (only explicit `@
|
|
370
|
+
To disable auto-inference entirely (only explicit `@properties` will be used):
|
|
473
371
|
|
|
474
372
|
```jsx
|
|
475
373
|
configure({ autoPropertyTypes: false });
|
|
@@ -487,13 +385,21 @@ Override or extend the built-in style property handlers. A handler definition ca
|
|
|
487
385
|
| Single dep | `['styleName', handler]` | Triggered by the specified style property |
|
|
488
386
|
| Multi dep | `[['dep1', 'dep2', ...], handler]` | Triggered by any of the listed properties; receives all of them |
|
|
489
387
|
|
|
490
|
-
The multi-dep form is useful when output depends on several style properties together (e.g., `gap` needs to know `display` and `flow` to decide the CSS strategy).
|
|
388
|
+
The multi-dep form is useful when output depends on several style properties together (e.g., `gap` needs to know `display` and `flow` to decide the CSS strategy).
|
|
491
389
|
|
|
492
390
|
```jsx
|
|
493
|
-
import { configure,
|
|
391
|
+
import { configure, styleHandlers } from '@tenphi/tasty';
|
|
494
392
|
|
|
495
393
|
configure({
|
|
496
394
|
handlers: {
|
|
395
|
+
// Function only — overrides built-in fill handler
|
|
396
|
+
fill: ({ fill }) => {
|
|
397
|
+
if (fill?.startsWith('gradient:')) {
|
|
398
|
+
return { background: fill.slice(9) };
|
|
399
|
+
}
|
|
400
|
+
return styleHandlers.fill({ fill });
|
|
401
|
+
},
|
|
402
|
+
|
|
497
403
|
// Function only — new single-prop handler
|
|
498
404
|
elevation: ({ elevation }) => {
|
|
499
405
|
const level = parseInt(elevation) || 1;
|
|
@@ -503,112 +409,16 @@ configure({
|
|
|
503
409
|
};
|
|
504
410
|
},
|
|
505
411
|
|
|
506
|
-
// Overriding a built-in: declare every style the built-in handled and pass
|
|
507
|
-
// them all through, or the ones you leave out stop working (see below).
|
|
508
|
-
fill: defineHandler(
|
|
509
|
-
[
|
|
510
|
-
'fill', 'backgroundColor', 'image', 'backgroundImage',
|
|
511
|
-
'backgroundPosition', 'backgroundSize', 'backgroundRepeat',
|
|
512
|
-
],
|
|
513
|
-
(props) => {
|
|
514
|
-
if (typeof props.fill === 'string' && props.fill.startsWith('gradient:')) {
|
|
515
|
-
return { background: props.fill.slice(9) };
|
|
516
|
-
}
|
|
517
|
-
return styleHandlers.fill(props);
|
|
518
|
-
},
|
|
519
|
-
),
|
|
520
|
-
|
|
521
412
|
// Multi dep — handler reads multiple style properties
|
|
522
|
-
gap:
|
|
413
|
+
gap: [['display', 'flow', 'gap'], ({ display, flow, gap }) => {
|
|
523
414
|
if (!gap) return;
|
|
524
|
-
const isGrid =
|
|
415
|
+
const isGrid = display?.includes('grid');
|
|
525
416
|
return { gap: isGrid ? gap : `/* custom logic for ${flow} */` };
|
|
526
|
-
}
|
|
417
|
+
}],
|
|
527
418
|
},
|
|
528
419
|
});
|
|
529
420
|
```
|
|
530
421
|
|
|
531
|
-
### Return shape
|
|
532
|
-
|
|
533
|
-
A handler returns a `CSSMap`, an array of them, or nothing:
|
|
534
|
-
|
|
535
|
-
- Keys are **kebab-case** CSS property names (`'background-color'`, not `backgroundColor`) or `--custom-property` names. A camelCase key warns in development and is emitted verbatim, which the browser ignores.
|
|
536
|
-
- Values are stringified, so numbers are fine (`{ '-webkit-line-clamp': 3 }`).
|
|
537
|
-
- The reserved `$` key is a **selector suffix**: `{ $: '& > *:not(:last-child)', 'margin-right': gap }` applies the declarations to a nested selector. It accepts an array to fan out over several.
|
|
538
|
-
- Return an array of maps to emit several declaration sets, each with its own `$`.
|
|
539
|
-
|
|
540
|
-
Values arrive **state-resolved but unparsed** — the raw authored DSL string (`'2x'`, `'#purple.5'`, `true`, `4`). Call the exported `parseStyle()` / `parseColor()` yourself; nothing parses them for you.
|
|
541
|
-
|
|
542
|
-
### Replacing a built-in handler
|
|
543
|
-
|
|
544
|
-
Built-in handlers are shared across several style names. Registering a handler for one of those names unregisters the built-in from **all** of them, and the displaced names then fall back to auto-generated CSS aliases — so `hide: true` starts emitting a literal `hide: true` declaration. A development-mode warning lists exactly what was displaced.
|
|
545
|
-
|
|
546
|
-
The shared groups worth knowing:
|
|
547
|
-
|
|
548
|
-
| Registering a handler for | Also takes over |
|
|
549
|
-
|---|---|
|
|
550
|
-
| `fill` | `backgroundColor`, `image`, `backgroundImage`, `backgroundPosition`, `backgroundSize`, `backgroundRepeat` |
|
|
551
|
-
| `display` | `hide`, `overflow`, `whiteSpace`, `textOverflow`, `flow`, `gap` |
|
|
552
|
-
| `preset` | `font`, `fontSize`, `fontWeight`, `fontStyle`, `lineHeight`, `letterSpacing`, `textTransform` |
|
|
553
|
-
| `padding` / `margin` / `inset` | their `*Top`/`*Right`/`*Bottom`/`*Left`/`*Block`/`*Inline` longhands |
|
|
554
|
-
|
|
555
|
-
Either declare the whole group and delegate the rest to `styleHandlers.*`, or pick a name that isn't shared.
|
|
556
|
-
|
|
557
|
-
### Chunk membership
|
|
558
|
-
|
|
559
|
-
Tasty renders and caches CSS in independent chunks, and a chunk's cache key covers only its own style values. All of a handler's dependencies must therefore live in one chunk. Custom style names are pulled into their handler's chunk automatically at registration; a handler whose dependencies span two *built-in* chunks (say `fill` and `padding`) warns, because it would be invoked once per chunk with a subset of its inputs.
|
|
560
|
-
|
|
561
|
-
`configure({ handlers })` must run before the first render, like every other config option.
|
|
562
|
-
|
|
563
|
-
---
|
|
564
|
-
|
|
565
|
-
## Props Middleware
|
|
566
|
-
|
|
567
|
-
`propHandlers` are middleware over a component's props — props in, props out. Where a style *handler* turns a style property into CSS declarations, a prop handler turns a **component prop** into other props, including `styles`. It is the extension point for props whose value isn't a style value.
|
|
568
|
-
|
|
569
|
-
```jsx
|
|
570
|
-
import { configure, mergeStyles } from '@tenphi/tasty';
|
|
571
|
-
|
|
572
|
-
configure({
|
|
573
|
-
propHandlers: {
|
|
574
|
-
glaze: (props) => {
|
|
575
|
-
const { glaze, ...rest } = props;
|
|
576
|
-
if (!glaze) return rest;
|
|
577
|
-
|
|
578
|
-
return { ...rest, styles: mergeStyles(glazeStyles(glaze), rest.styles) };
|
|
579
|
-
},
|
|
580
|
-
},
|
|
581
|
-
});
|
|
582
|
-
|
|
583
|
-
<Element glaze="purple" />
|
|
584
|
-
```
|
|
585
|
-
|
|
586
|
-
The map key is the handler's name and, by default, the prop that triggers it, so an absent prop costs one property check rather than a call. A tuple overrides that: `['glaze', fn]`, `[['glaze', 'tint'], fn]`, or `['*', fn]` for unconditional.
|
|
587
|
-
|
|
588
|
-
Handlers run at the very top of every component's render, before any prop is destructured, so one can rewrite `styles`, `mods`, `tokens`, `variant`, `as`, `element`, and `qa`. They run in registration order — plugins first, then direct config — each receiving the previous one's output.
|
|
589
|
-
|
|
590
|
-
Handlers must be **pure** and must not mutate their input, and should memoize the styles they build per input value: style values are cached by object identity, so mutating one in place yields stale CSS, and a reference-stable object avoids re-serializing on every render.
|
|
591
|
-
|
|
592
|
-
Injected styles occupy the `styles` slot, so they beat a component's own default styles and lose to a style prop at the call site. Prop handlers do not apply to sub-elements or to zero-runtime `tastyStatic()`, which has no props.
|
|
593
|
-
|
|
594
|
-
See [Plugins → Props middleware](plugins.md#props-middleware) for the full contract and a worked example.
|
|
595
|
-
|
|
596
|
-
---
|
|
597
|
-
|
|
598
|
-
## Base Style Props
|
|
599
|
-
|
|
600
|
-
`baseStyleProps` exposes style properties as props on **every** `tasty()` component, on top of the built-in base styles (`display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`):
|
|
601
|
-
|
|
602
|
-
```jsx
|
|
603
|
-
configure({ baseStyleProps: ['radius', 'shadow'] });
|
|
604
|
-
|
|
605
|
-
<Card radius="1r" shadow />
|
|
606
|
-
```
|
|
607
|
-
|
|
608
|
-
`configure()` may run after your components are defined — each factory resolves its prop list lazily.
|
|
609
|
-
|
|
610
|
-
Each name costs one property check per render of every component, and the effect is app-global, so keep the list short and use a factory's own `styleProps` for anything narrower. Avoid names that collide with real DOM or component props (`width`, `size`, `color`), since every component will then swallow them as styles.
|
|
611
|
-
|
|
612
422
|
---
|
|
613
423
|
|
|
614
424
|
## Extending Style Types (TypeScript)
|
package/docs/tasty/debug.md
CHANGED
|
@@ -79,7 +79,7 @@ Retrieves CSS text for a given target. Logs the result with rule count and size.
|
|
|
79
79
|
**Extra options:**
|
|
80
80
|
|
|
81
81
|
```typescript
|
|
82
|
-
interface
|
|
82
|
+
interface CssOptions extends DebugOptions {
|
|
83
83
|
prettify?: boolean; // Format output (default: true)
|
|
84
84
|
source?: boolean; // Read original CSS instead of live CSSOM (default: false, dev-mode only)
|
|
85
85
|
}
|
|
@@ -111,14 +111,14 @@ Inspects a DOM element and returns detailed information about its tasty styles,
|
|
|
111
111
|
```typescript
|
|
112
112
|
interface InspectResult {
|
|
113
113
|
element?: Element | null;
|
|
114
|
-
classes: string[];
|
|
115
|
-
chunks:
|
|
116
|
-
css: string;
|
|
117
|
-
size: number;
|
|
118
|
-
rules: number;
|
|
114
|
+
classes: string[]; // Tasty classes on the element
|
|
115
|
+
chunks: ChunkInfo[]; // Chunk assignment per class
|
|
116
|
+
css: string; // Prettified CSS
|
|
117
|
+
size: number; // CSS size in characters
|
|
118
|
+
rules: number; // Number of CSS rule blocks
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
interface
|
|
121
|
+
interface ChunkInfo {
|
|
122
122
|
className: string;
|
|
123
123
|
chunkName: string | null; // e.g., 'appearance', 'font', 'dimension'
|
|
124
124
|
}
|
|
@@ -117,11 +117,11 @@ Then use `preset: 'h1'` or `preset: 't2'` in any component's styles.
|
|
|
117
117
|
|
|
118
118
|
### Registering brand fonts
|
|
119
119
|
|
|
120
|
-
Register your design system's custom fonts via `configure({
|
|
120
|
+
Register your design system's custom fonts via `configure({ fontFace })` so every component can reference them:
|
|
121
121
|
|
|
122
122
|
```ts
|
|
123
123
|
configure({
|
|
124
|
-
|
|
124
|
+
fontFace: {
|
|
125
125
|
'Brand Sans': [
|
|
126
126
|
{ src: 'url("/fonts/brand-regular.woff2") format("woff2")', fontWeight: 400, fontDisplay: 'swap' },
|
|
127
127
|
{ src: 'url("/fonts/brand-bold.woff2") format("woff2")', fontWeight: 700, fontDisplay: 'swap' },
|