@cube-dev/ui-kit 0.0.0-canary-e056095 → 0.0.0-canary-31f7f8e
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/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 +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +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 +0 -1
- 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.js +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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +2 -2
- 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 +28 -28
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +2 -2
- 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.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableView.js +2 -2
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.d.ts +1 -2
- package/dist/components/data/TableBase/styled.js +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.d.ts +0 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +2 -2
- package/dist/components/fields/Checkbox/CheckboxGroup.js +2 -2
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +2 -2
- package/dist/components/fields/ColorPicker/ColorPicker.js +2 -2
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +2 -2
- 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/DatePicker.js +2 -2
- 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 +2 -2
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +2 -2
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +2 -2
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.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.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +3 -3
- 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 +4 -4
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/index.d.ts +0 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +2 -2
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
- package/dist/components/fields/Picker/Picker.js +3 -3
- package/dist/components/fields/RadioGroup/Radio.js +2 -2
- package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
- 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 +2 -2
- package/dist/components/fields/Select/Select.js +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.js +2 -2
- package/dist/components/fields/TextArea/TextArea.js +2 -2
- package/dist/components/fields/TextInput/TextInput.js +2 -2
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +7 -6
- package/dist/components/fields/color/channels.js.map +1 -1
- package/dist/components/fields/color/color.d.ts +1 -0
- package/dist/components/fields/color/color.js +22 -100
- package/dist/components/fields/color/color.js.map +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- 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-modes.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/group-move.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/placement.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/Board/use-board-select-modifier-key.js +1 -1
- package/dist/components/layout/Board/use-board-selection.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/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +3 -3
- 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 +2 -2
- package/dist/components/navigation/Tabs/Tabs.js +2 -2
- 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/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/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +2 -2
- 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 +2 -2
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +4 -4
- 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 +1 -2
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.d.ts +0 -1
- package/dist/components/overlays/Modal/Overlay.js +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/Underlay.js +1 -1
- package/dist/components/overlays/Modal/types.d.ts +0 -1
- 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 +0 -2
- 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/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/index.d.ts +0 -1
- 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 -25
- package/dist/i18n/locales/en-US/uikit.js +1 -25
- package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -27
- package/dist/i18n/locales/es-ES/uikit.js +1 -25
- package/dist/i18n/locales/es-MX/uikit.js +1 -25
- package/dist/i18n/locales/fr-FR/uikit.js +1 -25
- package/dist/i18n/locales/it-IT/uikit.js +1 -25
- package/dist/i18n/locales/ja-JP/uikit.js +1 -25
- package/dist/i18n/locales/nb-NO/uikit.js +1 -25
- package/dist/i18n/locales/pt-BR/uikit.js +1 -25
- package/dist/i18n/locales/pt-PT/uikit.js +1 -25
- package/dist/i18n/locales/sv-SE/uikit.js +1 -25
- package/dist/i18n/locales/vi-VN/uikit.js +1 -25
- 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/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.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/PipetteIcon.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/index.d.ts +0 -8
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +2 -15
- package/dist/index.js +50 -61
- package/dist/index.js.map +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/tokens/all-tokens.js +2 -2
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +2 -2
- package/dist/tokens/index.d.ts +1 -0
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.d.ts +61 -0
- package/dist/tokens/legacy-color.js +58 -0
- package/dist/tokens/legacy-color.js.map +1 -0
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +2 -2
- package/dist/tokens/resolve.js +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/colors.d.ts +2 -0
- package/dist/utils/colors.js +247 -0
- package/dist/utils/colors.js.map +1 -0
- 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/disabledProps.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.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.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/useScheme.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 +2 -2
- package/docs/Usage.md +18 -0
- package/package.json +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +0 -2
- package/dist/components/layout/Dashboard/Dashboard.d.ts +0 -19
- package/dist/components/layout/Dashboard/Dashboard.js +0 -188
- package/dist/components/layout/Dashboard/Dashboard.js.map +0 -1
- package/dist/components/layout/Dashboard/DashboardContainer.d.ts +0 -13
- package/dist/components/layout/Dashboard/DashboardContainer.js +0 -272
- package/dist/components/layout/Dashboard/DashboardContainer.js.map +0 -1
- package/dist/components/layout/Dashboard/DashboardContainerContent.js +0 -405
- package/dist/components/layout/Dashboard/DashboardContainerContent.js.map +0 -1
- package/dist/components/layout/Dashboard/DashboardNodeActions.js +0 -228
- package/dist/components/layout/Dashboard/DashboardNodeActions.js.map +0 -1
- package/dist/components/layout/Dashboard/DashboardTabs.d.ts +0 -14
- package/dist/components/layout/Dashboard/DashboardTabs.js +0 -85
- package/dist/components/layout/Dashboard/DashboardTabs.js.map +0 -1
- package/dist/components/layout/Dashboard/DashboardWidget.d.ts +0 -9
- package/dist/components/layout/Dashboard/DashboardWidget.js +0 -196
- package/dist/components/layout/Dashboard/DashboardWidget.js.map +0 -1
- package/dist/components/layout/Dashboard/context.js +0 -37
- package/dist/components/layout/Dashboard/context.js.map +0 -1
- package/dist/components/layout/Dashboard/drag.js +0 -481
- package/dist/components/layout/Dashboard/drag.js.map +0 -1
- package/dist/components/layout/Dashboard/index.d.ts +0 -6
- package/dist/components/layout/Dashboard/occupancy.js +0 -240
- package/dist/components/layout/Dashboard/occupancy.js.map +0 -1
- package/dist/components/layout/Dashboard/placement.js +0 -94
- package/dist/components/layout/Dashboard/placement.js.map +0 -1
- package/dist/components/layout/Dashboard/styles.js +0 -344
- package/dist/components/layout/Dashboard/styles.js.map +0 -1
- package/dist/components/layout/Dashboard/types.d.ts +0 -220
- package/dist/components/layout/Dashboard/use-dashboard-gestures.js +0 -321
- package/dist/components/layout/Dashboard/use-dashboard-gestures.js.map +0 -1
- package/dist/components/layout/Dashboard/use-dashboard-node.js +0 -93
- package/dist/components/layout/Dashboard/use-dashboard-node.js.map +0 -1
- package/dist/components/portal/PortalProvider.d.ts +0 -2
- package/dist/icons/ArrowsHorizontalIcon.d.ts +0 -12
- package/dist/icons/ArrowsHorizontalIcon.js +0 -11
- package/dist/icons/ArrowsHorizontalIcon.js.map +0 -1
- package/dist/icons/ArrowsInHorizontalIcon.d.ts +0 -20
- package/dist/icons/ArrowsInHorizontalIcon.js +0 -31
- package/dist/icons/ArrowsInHorizontalIcon.js.map +0 -1
- package/dist/icons/ArrowsInVerticalIcon.d.ts +0 -13
- package/dist/icons/ArrowsInVerticalIcon.js +0 -24
- package/dist/icons/ArrowsInVerticalIcon.js.map +0 -1
- package/dist/icons/ArrowsMaximizeIcon.d.ts +0 -12
- package/dist/icons/ArrowsMaximizeIcon.js +0 -11
- package/dist/icons/ArrowsMaximizeIcon.js.map +0 -1
- package/dist/icons/ArrowsMinimizeIcon.d.ts +0 -12
- package/dist/icons/ArrowsMinimizeIcon.js +0 -11
- package/dist/icons/ArrowsMinimizeIcon.js.map +0 -1
- package/dist/icons/ArrowsVerticalIcon.d.ts +0 -12
- package/dist/icons/ArrowsVerticalIcon.js +0 -11
- package/dist/icons/ArrowsVerticalIcon.js.map +0 -1
- package/dist/icons/CirclePlusIcon.d.ts +0 -12
- package/dist/icons/CirclePlusIcon.js +0 -11
- package/dist/icons/CirclePlusIcon.js.map +0 -1
- package/dist/icons/MaximizeIcon.d.ts +0 -12
- package/dist/icons/MaximizeIcon.js +0 -11
- package/dist/icons/MaximizeIcon.js.map +0 -1
- package/docs/components/layout/Dashboard.md +0 -409
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
|
+
import { parseSrgbColor } from "../utils/colors.js";
|
|
3
|
+
import { srgbToHex } from "@tenphi/glaze";
|
|
4
|
+
|
|
5
|
+
//#region src/tokens/legacy-color.ts
|
|
6
|
+
/**
|
|
7
|
+
* Convert a color literal — most usefully the `oklch(...)` a color token
|
|
8
|
+
* resolves to — into a hex or `rgba()` string.
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* toLegacyColor(resolveTokenValue('#purple')); // '#6147d6'
|
|
12
|
+
* toLegacyColor('oklch(0.55 0.21 285 / 0.4)'); // 'rgba(97, 71, 214, 0.4)'
|
|
13
|
+
* toLegacyColor('oklch(0.55 0.21 285 / 0.4)', { alpha: 'hex' }); // '#6147d666'
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Takes `null` / `undefined` so it composes with `resolveTokenValue()` without
|
|
17
|
+
* a null check, and reads every notation the kit emits or accepts: `oklch()`,
|
|
18
|
+
* `okhsl()`, `okhst()`, `rgb()`, `hsl()`, hex (3/4/6/8 digits) and
|
|
19
|
+
* `transparent`, in either the modern slash or the legacy comma alpha syntax.
|
|
20
|
+
*
|
|
21
|
+
* Returns `options.fallback ?? null` rather than the input when the value
|
|
22
|
+
* cannot be read — a color that is not `oklch()` but still not legacy-safe is
|
|
23
|
+
* the failure this helper exists to prevent, so handing it back would defeat
|
|
24
|
+
* the purpose. Named colors other than `transparent`, `color-mix()` and
|
|
25
|
+
* relative syntax (`oklch(from …)`) are all unreadable here, the last two
|
|
26
|
+
* because their value only exists inside a CSS engine.
|
|
27
|
+
*/
|
|
28
|
+
function toLegacyColor(value, options = {}) {
|
|
29
|
+
const { alpha: format = "rgba", fallback = null } = options;
|
|
30
|
+
if (typeof value !== "string") return fallback;
|
|
31
|
+
const parsed = parseSrgbColor(value);
|
|
32
|
+
if (!parsed) return fallback;
|
|
33
|
+
const hex = srgbToHex(parsed.rgb);
|
|
34
|
+
if (parsed.alpha >= 1) return hex;
|
|
35
|
+
if (format === "hex") return `${hex}${toHexByte(parsed.alpha)}`;
|
|
36
|
+
const [r, g, b] = parsed.rgb.map(toByte);
|
|
37
|
+
return `rgba(${r}, ${g}, ${b}, ${round(parsed.alpha)})`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 8-bit channels rather than the fractional ones `formatRgb()` emits. The point
|
|
41
|
+
* of this helper is a value a *legacy* parser accepts, and those commonly read
|
|
42
|
+
* channels with an integer parse; the hex form is 8-bit regardless, so this also
|
|
43
|
+
* keeps the two output forms describing the same color.
|
|
44
|
+
*/
|
|
45
|
+
function toByte(channel) {
|
|
46
|
+
return Math.round(Math.min(Math.max(channel, 0), 1) * 255);
|
|
47
|
+
}
|
|
48
|
+
function toHexByte(alpha) {
|
|
49
|
+
return toByte(alpha).toString(16).padStart(2, "0");
|
|
50
|
+
}
|
|
51
|
+
/** Three decimals is finer than the 8-bit alpha the hex form can carry. */
|
|
52
|
+
function round(alpha) {
|
|
53
|
+
return Math.round(alpha * 1e3) / 1e3;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
export { toLegacyColor };
|
|
58
|
+
//# sourceMappingURL=legacy-color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-color.js","names":[],"sources":["../../src/tokens/legacy-color.ts"],"sourcesContent":["import { srgbToHex } from '@tenphi/glaze';\n\nimport { parseSrgbColor } from '../utils/colors';\n\n/**\n * Converting a resolved color token into a form a third-party parser will\n * actually accept.\n *\n * Since Glaze every color token computes to `oklch(...)`, and a large class of\n * consumers validates colors against \"HEX, `rgb()`, or `hsl()`\" and *silently\n * drops* anything else — Stripe's Appearance API falls back to its own light\n * theme, `d3-color` (so Vega) throws, mapbox-gl's `csscolorparser` rejects even\n * an `#rrggbbaa` tail. A round trip through the DOM does not normalize it:\n * Chrome serializes `oklch` back as `oklch`.\n *\n * So the value `resolveTokenValue()` hands back is correct and unusable at the\n * same time, and this is the step between them.\n */\n\n/** Output form for a *translucent* color — see {@link ToLegacyColorOptions}. */\nexport type LegacyAlphaFormat = 'rgba' | 'hex';\n\nexport interface ToLegacyColorOptions {\n /**\n * How to carry alpha when the color is translucent. An opaque color is always\n * `#rrggbb`, which every consumer accepts.\n *\n * - `'rgba'` (default) — `rgba(97, 71, 214, 0.4)`. The widest form: Stripe\n * takes it, mapbox-gl takes it, CSS takes it.\n * - `'hex'` — `#rrggbbaa`. Shorter, and what Vega and plain CSS prefer, but\n * mapbox-gl's hex branch accepts only `#rgb` / `#rrggbb` and will drop it.\n *\n * When in doubt keep the default; pick `'hex'` only for a consumer known to\n * read the tail.\n */\n alpha?: LegacyAlphaFormat;\n /** Returned in place of `null` when the input is not a color we can read. */\n fallback?: string;\n}\n\n/**\n * Convert a color literal — most usefully the `oklch(...)` a color token\n * resolves to — into a hex or `rgba()` string.\n *\n * ```ts\n * toLegacyColor(resolveTokenValue('#purple')); // '#6147d6'\n * toLegacyColor('oklch(0.55 0.21 285 / 0.4)'); // 'rgba(97, 71, 214, 0.4)'\n * toLegacyColor('oklch(0.55 0.21 285 / 0.4)', { alpha: 'hex' }); // '#6147d666'\n * ```\n *\n * Takes `null` / `undefined` so it composes with `resolveTokenValue()` without\n * a null check, and reads every notation the kit emits or accepts: `oklch()`,\n * `okhsl()`, `okhst()`, `rgb()`, `hsl()`, hex (3/4/6/8 digits) and\n * `transparent`, in either the modern slash or the legacy comma alpha syntax.\n *\n * Returns `options.fallback ?? null` rather than the input when the value\n * cannot be read — a color that is not `oklch()` but still not legacy-safe is\n * the failure this helper exists to prevent, so handing it back would defeat\n * the purpose. Named colors other than `transparent`, `color-mix()` and\n * relative syntax (`oklch(from …)`) are all unreadable here, the last two\n * because their value only exists inside a CSS engine.\n */\nexport function toLegacyColor(\n value: string | null | undefined,\n options: ToLegacyColorOptions = {},\n): string | null {\n const { alpha: format = 'rgba', fallback = null } = options;\n\n if (typeof value !== 'string') return fallback;\n\n const parsed = parseSrgbColor(value);\n\n if (!parsed) return fallback;\n\n const hex = srgbToHex(parsed.rgb);\n\n if (parsed.alpha >= 1) return hex;\n\n if (format === 'hex') return `${hex}${toHexByte(parsed.alpha)}`;\n\n const [r, g, b] = parsed.rgb.map(toByte);\n\n return `rgba(${r}, ${g}, ${b}, ${round(parsed.alpha)})`;\n}\n\n/**\n * 8-bit channels rather than the fractional ones `formatRgb()` emits. The point\n * of this helper is a value a *legacy* parser accepts, and those commonly read\n * channels with an integer parse; the hex form is 8-bit regardless, so this also\n * keeps the two output forms describing the same color.\n */\nfunction toByte(channel: number): number {\n return Math.round(Math.min(Math.max(channel, 0), 1) * 255);\n}\n\nfunction toHexByte(alpha: number): string {\n return toByte(alpha).toString(16).padStart(2, '0');\n}\n\n/** Three decimals is finer than the 8-bit alpha the hex form can carry. */\nfunction round(alpha: number): number {\n return Math.round(alpha * 1000) / 1000;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,SAAgB,cACd,OACA,UAAgC,EAAE,EACnB;CACf,MAAM,EAAE,OAAO,SAAS,QAAQ,WAAW,SAAS;AAEpD,KAAI,OAAO,UAAU,SAAU,QAAO;CAEtC,MAAM,SAAS,eAAe,MAAM;AAEpC,KAAI,CAAC,OAAQ,QAAO;CAEpB,MAAM,MAAM,UAAU,OAAO,IAAI;AAEjC,KAAI,OAAO,SAAS,EAAG,QAAO;AAE9B,KAAI,WAAW,MAAO,QAAO,GAAG,MAAM,UAAU,OAAO,MAAM;CAE7D,MAAM,CAAC,GAAG,GAAG,KAAK,OAAO,IAAI,IAAI,OAAO;AAExC,QAAO,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,OAAO,MAAM,CAAC;;;;;;;;AASvD,SAAS,OAAO,SAAyB;AACvC,QAAO,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI;;AAG5D,SAAS,UAAU,OAAuB;AACxC,QAAO,OAAO,MAAM,CAAC,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI;;;AAIpD,SAAS,MAAM,OAAuB;AACpC,QAAO,KAAK,MAAM,QAAQ,IAAK,GAAG"}
|
package/dist/tokens/palette.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
2
|
-
import { lazyStyles } from "./lazy-styles.js";
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
3
2
|
import { SURFACE_SATURATION_SHARE, getPaletteConfig, getPaletteVersion, resolvePaletteConfig } from "./palette-config.js";
|
|
3
|
+
import { lazyStyles } from "./lazy-styles.js";
|
|
4
4
|
import { apcaContrast, glaze, okhslToLinearSrgb, variantToOkhsl } from "@tenphi/glaze";
|
|
5
5
|
|
|
6
6
|
//#region src/tokens/palette.ts
|
package/dist/tokens/resolve.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "../utils/react/useLayoutEffect.js";
|
|
3
3
|
import { subscribeScheme } from "../utils/react/useScheme.js";
|
|
4
4
|
import { warn } from "../utils/warnings.js";
|
package/dist/tokens/shadows.js
CHANGED
package/dist/tokens/sizes.js
CHANGED
package/dist/tokens/spacing.js
CHANGED
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
|
+
import { hslToSrgb, okhslToOklch, okhslToSrgb, okhstToOkhsl, oklabToOkhsl, parseHexAlpha } from "@tenphi/glaze";
|
|
3
|
+
|
|
4
|
+
//#region src/utils/colors.ts
|
|
5
|
+
/**
|
|
6
|
+
* Reading a CSS color *literal* into channels — the layer under both the color
|
|
7
|
+
* fields (which parse what a user types) and {@link toLegacyColor} (which parses
|
|
8
|
+
* what `resolveTokenValue()` hands back).
|
|
9
|
+
*
|
|
10
|
+
* It lives here rather than in either consumer because the two need the same
|
|
11
|
+
* grammar and disagreeing about it is invisible: a component this parser fails
|
|
12
|
+
* to recognise does not throw, it makes the whole color unparseable, and the
|
|
13
|
+
* caller falls back to something that merely looks plausible. The cases that
|
|
14
|
+
* actually show up — a negative hue, a `none` component, scientific notation
|
|
15
|
+
* out of a serializer, `oklch(from …)` relative syntax — are exactly the ones a
|
|
16
|
+
* hand-rolled regex misses.
|
|
17
|
+
*
|
|
18
|
+
* Named CSS colors (`red`, `rebeccapurple`) are deliberately not supported,
|
|
19
|
+
* matching `glaze.color()`. `transparent` is the one exception, because the kit
|
|
20
|
+
* declares it: `#clear` is `transparent`.
|
|
21
|
+
*/
|
|
22
|
+
const FUNCTION_RE = /^([a-z]+)\(([^()]+)\)$/;
|
|
23
|
+
/**
|
|
24
|
+
* A number with an optional unit.
|
|
25
|
+
*
|
|
26
|
+
* The integer and fraction parts are deliberately written so that no two
|
|
27
|
+
* quantifiers can consume the same digit — `\d+(?:\.\d*)?` rather than
|
|
28
|
+
* `\d+\.?\d*`, whose `\d+` and `\d*` can split a digit run n ways and make
|
|
29
|
+
* rejecting a long one quadratic. This runs on whatever the user types.
|
|
30
|
+
*/
|
|
31
|
+
const NUMBER_RE = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:%|deg|rad|grad|turn)?$/;
|
|
32
|
+
/** Degrees per unit, for the angle units `<hue>` accepts. */
|
|
33
|
+
const ANGLE_UNITS = {
|
|
34
|
+
deg: 1,
|
|
35
|
+
rad: 180 / Math.PI,
|
|
36
|
+
grad: .9,
|
|
37
|
+
turn: 360
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* `none` is a real component value, not a parse failure. Outside interpolation
|
|
41
|
+
* and relative-color syntax CSS Color 4 resolves it to zero, which is what every
|
|
42
|
+
* caller here wants — `oklch(0.5 none 200)` is a grey, and `… / none` is
|
|
43
|
+
* invisible rather than unparseable.
|
|
44
|
+
*/
|
|
45
|
+
const NONE = "none";
|
|
46
|
+
/** A component we can read: a number with an optional unit, or `none`. */
|
|
47
|
+
function isComponent(arg) {
|
|
48
|
+
return arg === NONE || NUMBER_RE.test(arg);
|
|
49
|
+
}
|
|
50
|
+
/** The unit an argument carries, or `''` when it is a bare number. */
|
|
51
|
+
function unitOf(arg) {
|
|
52
|
+
const match = /[a-z%]+$/.exec(arg);
|
|
53
|
+
return match ? match[0] : "";
|
|
54
|
+
}
|
|
55
|
+
function normalizeHue(hue) {
|
|
56
|
+
if (!Number.isFinite(hue)) return 0;
|
|
57
|
+
return (hue % 360 + 360) % 360;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Split a color-function literal into its name, components and alpha. Both the
|
|
61
|
+
* modern space-separated (`rgb(0 0 0 / 50%)`) and legacy comma-separated
|
|
62
|
+
* (`rgba(0, 0, 0, 0.5)`) syntaxes are accepted.
|
|
63
|
+
*
|
|
64
|
+
* Returns `null` for anything that is not a plain color-function call, which
|
|
65
|
+
* includes the two forms whose value cannot be worked out without a CSS engine:
|
|
66
|
+
* relative syntax (`oklch(from var(--x) l c h)`) and `color-mix()`. Rejecting
|
|
67
|
+
* them is the point — passing them through unchanged is what makes a consumer
|
|
68
|
+
* silently drop the color.
|
|
69
|
+
*/
|
|
70
|
+
function parseColorFunction(input) {
|
|
71
|
+
const match = FUNCTION_RE.exec(input.trim().toLowerCase());
|
|
72
|
+
if (!match) return null;
|
|
73
|
+
const [, name, body] = match;
|
|
74
|
+
const [components, ...rest] = body.split("/");
|
|
75
|
+
if (rest.length > 1) return null;
|
|
76
|
+
let alpha = rest.length ? rest[0].trim() : null;
|
|
77
|
+
const args = components.trim().split(components.includes(",") ? "," : /\s+/).map((part) => part.trim()).filter(Boolean);
|
|
78
|
+
if (args.length === 4) {
|
|
79
|
+
if (alpha !== null) return null;
|
|
80
|
+
alpha = args.pop();
|
|
81
|
+
}
|
|
82
|
+
if (alpha !== null && !isComponent(alpha)) return null;
|
|
83
|
+
return args.every(isComponent) ? {
|
|
84
|
+
name,
|
|
85
|
+
args,
|
|
86
|
+
alpha
|
|
87
|
+
} : null;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Read a non-hue component. `scale` is what `100%` means in this position;
|
|
91
|
+
* `none` is zero, and an angle is not a value this position accepts.
|
|
92
|
+
*/
|
|
93
|
+
function readComponent(arg, scale) {
|
|
94
|
+
if (arg === NONE) return 0;
|
|
95
|
+
const unit = unitOf(arg);
|
|
96
|
+
if (unit === "%") return parseFloat(arg) / 100 * scale;
|
|
97
|
+
return unit ? NaN : parseFloat(arg);
|
|
98
|
+
}
|
|
99
|
+
/** Read a `<hue>`: any angle unit, or a bare number of degrees. Normalized. */
|
|
100
|
+
function readHue(arg) {
|
|
101
|
+
if (arg === NONE) return 0;
|
|
102
|
+
const unit = unitOf(arg);
|
|
103
|
+
if (unit === "%") return NaN;
|
|
104
|
+
const perDegree = unit ? ANGLE_UNITS[unit] : 1;
|
|
105
|
+
return perDegree === void 0 ? NaN : normalizeHue(parseFloat(arg) * perDegree);
|
|
106
|
+
}
|
|
107
|
+
/** Read an `<alpha-value>`. A missing alpha is opaque; out of range is clamped. */
|
|
108
|
+
function readAlpha(arg) {
|
|
109
|
+
if (arg === null) return 1;
|
|
110
|
+
const alpha = readComponent(arg, 1);
|
|
111
|
+
return Number.isFinite(alpha) ? clamp(alpha, 0, 1) : NaN;
|
|
112
|
+
}
|
|
113
|
+
function clamp(value, min, max) {
|
|
114
|
+
return value < min ? min : value > max ? max : value;
|
|
115
|
+
}
|
|
116
|
+
function anyNaN(...values) {
|
|
117
|
+
return values.some((value) => !Number.isFinite(value));
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The largest OKLCh chroma that stays inside the sRGB gamut for the given hue
|
|
121
|
+
* and OKHSL lightness — that is exactly what OKHSL saturation `1` means.
|
|
122
|
+
*/
|
|
123
|
+
function maxChroma(hue, lightness) {
|
|
124
|
+
return okhslToOklch(normalizeHue(hue), 1, clamp(lightness, 0, 1))[1];
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* OKLCh addresses colors outside the sRGB gamut, so chroma is clipped to the
|
|
128
|
+
* gamut boundary at the requested lightness. Hue is taken from the input rather
|
|
129
|
+
* than from the conversion, which loses it at zero chroma.
|
|
130
|
+
*/
|
|
131
|
+
function oklchToOkhsl(color) {
|
|
132
|
+
const h = normalizeHue(color.h);
|
|
133
|
+
const c = Math.max(color.c, 0);
|
|
134
|
+
const radians = h * Math.PI / 180;
|
|
135
|
+
const [, s, l] = oklabToOkhsl([
|
|
136
|
+
clamp(color.l, 0, 1),
|
|
137
|
+
c * Math.cos(radians),
|
|
138
|
+
c * Math.sin(radians)
|
|
139
|
+
]);
|
|
140
|
+
const limit = maxChroma(h, l);
|
|
141
|
+
return {
|
|
142
|
+
h,
|
|
143
|
+
s: limit > 0 ? c >= limit ? 1 : clamp(s, 0, 1) : 0,
|
|
144
|
+
l: clamp(l, 0, 1)
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
function rgbFromSrgb([r, g, b]) {
|
|
148
|
+
return {
|
|
149
|
+
r: r * 255,
|
|
150
|
+
g: g * 255,
|
|
151
|
+
b: b * 255
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Read any color literal the kit can emit or accept into gamma-encoded sRGB
|
|
156
|
+
* channels plus alpha — the space every legacy consumer speaks.
|
|
157
|
+
*
|
|
158
|
+
* Returns `null` when the input is not a color, or is one whose value depends on
|
|
159
|
+
* a CSS engine we do not have (see {@link parseColorFunction}).
|
|
160
|
+
*/
|
|
161
|
+
function parseSrgbColor(input) {
|
|
162
|
+
const text = input.trim().toLowerCase();
|
|
163
|
+
if (!text) return null;
|
|
164
|
+
if (text === "transparent") return {
|
|
165
|
+
rgb: [
|
|
166
|
+
0,
|
|
167
|
+
0,
|
|
168
|
+
0
|
|
169
|
+
],
|
|
170
|
+
alpha: 0
|
|
171
|
+
};
|
|
172
|
+
if (text.startsWith("#")) {
|
|
173
|
+
const parsed = parseHexAlpha(text);
|
|
174
|
+
return parsed ? {
|
|
175
|
+
rgb: parsed.rgb,
|
|
176
|
+
alpha: parsed.alpha ?? 1
|
|
177
|
+
} : null;
|
|
178
|
+
}
|
|
179
|
+
const parsed = parseColorFunction(text);
|
|
180
|
+
if (!parsed || parsed.args.length !== 3) return null;
|
|
181
|
+
const { name, args } = parsed;
|
|
182
|
+
const alpha = readAlpha(parsed.alpha);
|
|
183
|
+
if (!Number.isFinite(alpha)) return null;
|
|
184
|
+
const rgb = toSrgbChannels(name, args);
|
|
185
|
+
return rgb ? {
|
|
186
|
+
rgb,
|
|
187
|
+
alpha
|
|
188
|
+
} : null;
|
|
189
|
+
}
|
|
190
|
+
function toSrgbChannels(name, args) {
|
|
191
|
+
switch (name) {
|
|
192
|
+
case "rgb":
|
|
193
|
+
case "rgba": {
|
|
194
|
+
const [r, g, b] = args.map((arg) => readComponent(arg, 255));
|
|
195
|
+
if (anyNaN(r, g, b)) return null;
|
|
196
|
+
return [
|
|
197
|
+
clamp(r / 255, 0, 1),
|
|
198
|
+
clamp(g / 255, 0, 1),
|
|
199
|
+
clamp(b / 255, 0, 1)
|
|
200
|
+
];
|
|
201
|
+
}
|
|
202
|
+
case "hsl":
|
|
203
|
+
case "hsla": {
|
|
204
|
+
const h = readHue(args[0]);
|
|
205
|
+
const s = readComponent(args[1], 100) / 100;
|
|
206
|
+
const l = readComponent(args[2], 100) / 100;
|
|
207
|
+
if (anyNaN(h, s, l)) return null;
|
|
208
|
+
return hslToSrgb(h, clamp(s, 0, 1), clamp(l, 0, 1));
|
|
209
|
+
}
|
|
210
|
+
case "okhsl": {
|
|
211
|
+
const h = readHue(args[0]);
|
|
212
|
+
const s = readComponent(args[1], 100) / 100;
|
|
213
|
+
const l = readComponent(args[2], 100) / 100;
|
|
214
|
+
if (anyNaN(h, s, l)) return null;
|
|
215
|
+
return okhslToSrgb(h, clamp(s, 0, 1), clamp(l, 0, 1));
|
|
216
|
+
}
|
|
217
|
+
case "okhst": {
|
|
218
|
+
const h = readHue(args[0]);
|
|
219
|
+
const s = readComponent(args[1], 100) / 100;
|
|
220
|
+
const t = readComponent(args[2], 100) / 100;
|
|
221
|
+
if (anyNaN(h, s, t)) return null;
|
|
222
|
+
const okhsl = okhstToOkhsl({
|
|
223
|
+
h,
|
|
224
|
+
s: clamp(s, 0, 1),
|
|
225
|
+
t: clamp(t, 0, 1)
|
|
226
|
+
});
|
|
227
|
+
return okhslToSrgb(normalizeHue(okhsl.h), clamp(okhsl.s, 0, 1), clamp(okhsl.l, 0, 1));
|
|
228
|
+
}
|
|
229
|
+
case "oklch": {
|
|
230
|
+
const l = readComponent(args[0], 1);
|
|
231
|
+
const c = readComponent(args[1], .4);
|
|
232
|
+
const h = readHue(args[2]);
|
|
233
|
+
if (anyNaN(l, c, h)) return null;
|
|
234
|
+
const okhsl = oklchToOkhsl({
|
|
235
|
+
l,
|
|
236
|
+
c,
|
|
237
|
+
h
|
|
238
|
+
});
|
|
239
|
+
return okhslToSrgb(okhsl.h, okhsl.s, okhsl.l);
|
|
240
|
+
}
|
|
241
|
+
default: return null;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
//#endregion
|
|
246
|
+
export { anyNaN, clamp, maxChroma, normalizeHue, oklchToOkhsl, parseColorFunction, parseSrgbColor, readComponent, readHue, rgbFromSrgb };
|
|
247
|
+
//# sourceMappingURL=colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","names":[],"sources":["../../src/utils/colors.ts"],"sourcesContent":["import {\n hslToSrgb,\n okhslToOklch,\n okhslToSrgb,\n okhstToOkhsl,\n oklabToOkhsl,\n parseHexAlpha,\n} from '@tenphi/glaze';\n\nimport type { OkhslColor, OklchColor, RgbColor } from '@tenphi/glaze';\n\n/**\n * Reading a CSS color *literal* into channels — the layer under both the color\n * fields (which parse what a user types) and {@link toLegacyColor} (which parses\n * what `resolveTokenValue()` hands back).\n *\n * It lives here rather than in either consumer because the two need the same\n * grammar and disagreeing about it is invisible: a component this parser fails\n * to recognise does not throw, it makes the whole color unparseable, and the\n * caller falls back to something that merely looks plausible. The cases that\n * actually show up — a negative hue, a `none` component, scientific notation\n * out of a serializer, `oklch(from …)` relative syntax — are exactly the ones a\n * hand-rolled regex misses.\n *\n * Named CSS colors (`red`, `rebeccapurple`) are deliberately not supported,\n * matching `glaze.color()`. `transparent` is the one exception, because the kit\n * declares it: `#clear` is `transparent`.\n */\n\nconst FUNCTION_RE = /^([a-z]+)\\(([^()]+)\\)$/;\n\n/**\n * A number with an optional unit.\n *\n * The integer and fraction parts are deliberately written so that no two\n * quantifiers can consume the same digit — `\\d+(?:\\.\\d*)?` rather than\n * `\\d+\\.?\\d*`, whose `\\d+` and `\\d*` can split a digit run n ways and make\n * rejecting a long one quadratic. This runs on whatever the user types.\n */\nconst NUMBER_RE =\n /^[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?(?:%|deg|rad|grad|turn)?$/;\n\n/** Degrees per unit, for the angle units `<hue>` accepts. */\nconst ANGLE_UNITS: Record<string, number> = {\n deg: 1,\n rad: 180 / Math.PI,\n grad: 0.9,\n turn: 360,\n};\n\n/**\n * `none` is a real component value, not a parse failure. Outside interpolation\n * and relative-color syntax CSS Color 4 resolves it to zero, which is what every\n * caller here wants — `oklch(0.5 none 200)` is a grey, and `… / none` is\n * invisible rather than unparseable.\n */\nconst NONE = 'none';\n\n/** A component we can read: a number with an optional unit, or `none`. */\nfunction isComponent(arg: string): boolean {\n return arg === NONE || NUMBER_RE.test(arg);\n}\n\n/** The unit an argument carries, or `''` when it is a bare number. */\nfunction unitOf(arg: string): string {\n const match = /[a-z%]+$/.exec(arg);\n\n return match ? match[0] : '';\n}\n\nexport function normalizeHue(hue: number): number {\n if (!Number.isFinite(hue)) return 0;\n\n return ((hue % 360) + 360) % 360;\n}\n\n/**\n * A color-function call split into its parts, with alpha separated out. Each\n * component keeps its unit, so the caller can tell `50%` from `50` — what a\n * percentage means is per space and per position (`oklch()`'s `100%` is `1` for\n * lightness and `0.4` for chroma), so only the caller can scale it.\n */\nexport interface ColorFunction {\n /** Lowercased function name — `'oklch'`, `'rgba'`, `'okhst'`. */\n name: string;\n /** The color components, alpha excluded. */\n args: string[];\n /** The alpha component as written, or `null` when the call omits it. */\n alpha: string | null;\n}\n\n/**\n * Split a color-function literal into its name, components and alpha. Both the\n * modern space-separated (`rgb(0 0 0 / 50%)`) and legacy comma-separated\n * (`rgba(0, 0, 0, 0.5)`) syntaxes are accepted.\n *\n * Returns `null` for anything that is not a plain color-function call, which\n * includes the two forms whose value cannot be worked out without a CSS engine:\n * relative syntax (`oklch(from var(--x) l c h)`) and `color-mix()`. Rejecting\n * them is the point — passing them through unchanged is what makes a consumer\n * silently drop the color.\n */\nexport function parseColorFunction(input: string): ColorFunction | null {\n const match = FUNCTION_RE.exec(input.trim().toLowerCase());\n\n if (!match) return null;\n\n const [, name, body] = match;\n const [components, ...rest] = body.split('/');\n\n // More than one slash is never valid syntax.\n if (rest.length > 1) return null;\n\n let alpha: string | null = rest.length ? rest[0].trim() : null;\n\n const args = components\n .trim()\n .split(components.includes(',') ? ',' : /\\s+/)\n .map((part) => part.trim())\n .filter(Boolean);\n\n // A fourth component is alpha — that is the legacy `rgba(r, g, b, a)` /\n // `hsla(h, s, l, a)` form, and the same reading is the useful one for a\n // space-separated four-tuple someone typed without the slash.\n if (args.length === 4) {\n // `rgba(0, 0, 0, 1 / 0.5)` names alpha twice.\n if (alpha !== null) return null;\n\n alpha = args.pop()!;\n }\n\n if (alpha !== null && !isComponent(alpha)) return null;\n\n return args.every(isComponent) ? { name, args, alpha } : null;\n}\n\n/**\n * Read a non-hue component. `scale` is what `100%` means in this position;\n * `none` is zero, and an angle is not a value this position accepts.\n */\nexport function readComponent(arg: string, scale: number): number {\n if (arg === NONE) return 0;\n\n const unit = unitOf(arg);\n\n if (unit === '%') return (parseFloat(arg) / 100) * scale;\n\n return unit ? NaN : parseFloat(arg);\n}\n\n/** Read a `<hue>`: any angle unit, or a bare number of degrees. Normalized. */\nexport function readHue(arg: string): number {\n if (arg === NONE) return 0;\n\n const unit = unitOf(arg);\n\n // A percentage is not a valid hue angle.\n if (unit === '%') return NaN;\n\n const perDegree = unit ? ANGLE_UNITS[unit] : 1;\n\n return perDegree === undefined\n ? NaN\n : normalizeHue(parseFloat(arg) * perDegree);\n}\n\n/** Read an `<alpha-value>`. A missing alpha is opaque; out of range is clamped. */\nexport function readAlpha(arg: string | null): number {\n if (arg === null) return 1;\n\n const alpha = readComponent(arg, 1);\n\n return Number.isFinite(alpha) ? clamp(alpha, 0, 1) : NaN;\n}\n\nexport function clamp(value: number, min: number, max: number): number {\n return value < min ? min : value > max ? max : value;\n}\n\nexport function anyNaN(...values: number[]): boolean {\n return values.some((value) => !Number.isFinite(value));\n}\n\n/**\n * The largest OKLCh chroma that stays inside the sRGB gamut for the given hue\n * and OKHSL lightness — that is exactly what OKHSL saturation `1` means.\n */\nexport function maxChroma(hue: number, lightness: number): number {\n return okhslToOklch(normalizeHue(hue), 1, clamp(lightness, 0, 1))[1];\n}\n\n/**\n * OKLCh addresses colors outside the sRGB gamut, so chroma is clipped to the\n * gamut boundary at the requested lightness. Hue is taken from the input rather\n * than from the conversion, which loses it at zero chroma.\n */\nexport function oklchToOkhsl(color: OklchColor): OkhslColor {\n const h = normalizeHue(color.h);\n const c = Math.max(color.c, 0);\n const radians = (h * Math.PI) / 180;\n const [, s, l] = oklabToOkhsl([\n clamp(color.l, 0, 1),\n c * Math.cos(radians),\n c * Math.sin(radians),\n ]);\n const limit = maxChroma(h, l);\n\n return {\n h,\n s: limit > 0 ? (c >= limit ? 1 : clamp(s, 0, 1)) : 0,\n l: clamp(l, 0, 1),\n };\n}\n\nexport function rgbFromSrgb([r, g, b]: [number, number, number]): RgbColor {\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n/** Gamma-encoded sRGB channels in 0–1, plus alpha in 0–1. */\nexport interface SrgbColor {\n rgb: [number, number, number];\n alpha: number;\n}\n\n/**\n * Read any color literal the kit can emit or accept into gamma-encoded sRGB\n * channels plus alpha — the space every legacy consumer speaks.\n *\n * Returns `null` when the input is not a color, or is one whose value depends on\n * a CSS engine we do not have (see {@link parseColorFunction}).\n */\nexport function parseSrgbColor(input: string): SrgbColor | null {\n const text = input.trim().toLowerCase();\n\n if (!text) return null;\n\n // The one named color the kit declares: `#clear` is `transparent`. Browsers\n // compute it to `rgba(0, 0, 0, 0)`, but a token block read outside a browser\n // hands back the keyword as authored.\n if (text === 'transparent') return { rgb: [0, 0, 0], alpha: 0 };\n\n if (text.startsWith('#')) {\n const parsed = parseHexAlpha(text);\n\n return parsed ? { rgb: parsed.rgb, alpha: parsed.alpha ?? 1 } : null;\n }\n\n const parsed = parseColorFunction(text);\n\n if (!parsed || parsed.args.length !== 3) return null;\n\n const { name, args } = parsed;\n const alpha = readAlpha(parsed.alpha);\n\n if (!Number.isFinite(alpha)) return null;\n\n const rgb = toSrgbChannels(name, args);\n\n return rgb ? { rgb, alpha } : null;\n}\n\nfunction toSrgbChannels(\n name: string,\n args: string[],\n): [number, number, number] | null {\n switch (name) {\n case 'rgb':\n case 'rgba': {\n const [r, g, b] = args.map((arg) => readComponent(arg, 255));\n\n if (anyNaN(r, g, b)) return null;\n\n return [clamp(r / 255, 0, 1), clamp(g / 255, 0, 1), clamp(b / 255, 0, 1)];\n }\n case 'hsl':\n case 'hsla': {\n const h = readHue(args[0]);\n const s = readComponent(args[1], 100) / 100;\n const l = readComponent(args[2], 100) / 100;\n\n if (anyNaN(h, s, l)) return null;\n\n return hslToSrgb(h, clamp(s, 0, 1), clamp(l, 0, 1));\n }\n case 'okhsl': {\n const h = readHue(args[0]);\n const s = readComponent(args[1], 100) / 100;\n const l = readComponent(args[2], 100) / 100;\n\n if (anyNaN(h, s, l)) return null;\n\n return okhslToSrgb(h, clamp(s, 0, 1), clamp(l, 0, 1));\n }\n case 'okhst': {\n const h = readHue(args[0]);\n const s = readComponent(args[1], 100) / 100;\n const t = readComponent(args[2], 100) / 100;\n\n if (anyNaN(h, s, t)) return null;\n\n const okhsl = okhstToOkhsl({\n h,\n s: clamp(s, 0, 1),\n t: clamp(t, 0, 1),\n });\n\n return okhslToSrgb(\n normalizeHue(okhsl.h),\n clamp(okhsl.s, 0, 1),\n clamp(okhsl.l, 0, 1),\n );\n }\n case 'oklch': {\n // In `oklch()` a percentage means 1 for lightness and 0.4 for chroma.\n const l = readComponent(args[0], 1);\n const c = readComponent(args[1], 0.4);\n const h = readHue(args[2]);\n\n if (anyNaN(l, c, h)) return null;\n\n const okhsl = oklchToOkhsl({ l, c, h });\n\n return okhslToSrgb(okhsl.h, okhsl.s, okhsl.l);\n }\n default:\n return null;\n }\n}\n"],"mappings":"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"}
|
package/dist/utils/is-dev-env.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
//#region src/utils/is-dev-env.ts
|
|
3
3
|
function isDevEnv() {
|
|
4
4
|
if (typeof window !== "undefined" && window.localStorage) try {
|
package/dist/utils/modules.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
//#region src/utils/modules.ts
|
|
3
3
|
function extractModule(promise) {
|
|
4
4
|
return promise.then((module) => module.default || module);
|
package/dist/utils/promise.js
CHANGED
package/dist/utils/raf.js
CHANGED
package/dist/utils/random.js
CHANGED
package/dist/utils/range.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
import { mergeProps } from "./mergeProps.js";
|
|
3
3
|
import { Children, cloneElement, createContext, useContext, useMemo } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
//#region src/utils/react/chain.ts
|
|
3
3
|
/**
|
|
4
4
|
* Calls all functions in the order they were chained with the same arguments.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
//#region src/utils/react/disabledProps.ts
|
|
3
3
|
/**
|
|
4
4
|
* Tags where `disabled` is a real HTML attribute. Browsers refuse to dispatch
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
//#region src/utils/react/forwardRefWithGenerics.tsx
|
|
3
3
|
/**
|
|
4
4
|
* A helper for creating forwardRef components with generic types.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
import { chain } from "./chain.js";
|
|
3
3
|
import { getDisabledElementProps, omitActivationEventProps } from "./disabledProps.js";
|
|
4
4
|
import { forwardRefWithGenerics } from "./forwardRefWithGenerics.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
//#region src/utils/react/mapProps.ts
|
|
3
3
|
/** Converts AriaButtonProps to CubeButtonProps */
|
|
4
4
|
function ariaToCubeButtonProps(props) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
import { chain } from "./chain.js";
|
|
3
3
|
import { mergeIds } from "./useId.js";
|
|
4
4
|
import { mergeStyles } from "@tenphi/tasty";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
//#region src/utils/react/nullableValue.ts
|
|
3
3
|
function castNullableStringValue(props) {
|
|
4
4
|
return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
|
|
3
3
|
import { useCallback, useRef, useState } from "react";
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
import { createSharedStore } from "./sharedStore.js";
|
|
3
3
|
import { useEffect } from "react";
|
|
4
4
|
import { useFocusVisible } from "react-aria";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/utils/react/useEventBus.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
import { useSSRSafeId } from "@react-aria/ssr";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-31f7f8e | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../_internal/hooks/use-event.js";
|
|
3
3
|
import { useCallback, useSyncExternalStore } from "react";
|
|
4
4
|
|