@cube-dev/ui-kit 0.0.0-canary-e76eb3e → 0.0.0-canary-01fea9d
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-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 +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.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 +44 -42
- package/dist/components/actions/use-context-menu.js.map +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 +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 +2 -2
- package/dist/components/content/Tag/Tag.js.map +1 -1
- package/dist/components/content/Text.d.ts +14 -14
- 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 +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.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.d.ts +67 -0
- package/dist/components/fields/ColorInput/ColorInput.js +228 -0
- package/dist/components/fields/ColorInput/ColorInput.js.map +1 -0
- package/dist/components/fields/ColorInput/index.d.ts +2 -0
- package/dist/components/fields/ColorPicker/ColorPicker.d.ts +34 -37
- package/dist/components/fields/ColorPicker/ColorPicker.js +112 -184
- package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/components/fields/ColorPicker/index.d.ts +1 -3
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +50 -0
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +251 -0
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -0
- package/dist/components/fields/ColorSwatchGroup/index.d.ts +2 -0
- 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/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/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- 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 +1 -1
- package/dist/components/fields/Input/Input.js +2 -2
- 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/listNavigation.js +1 -1
- 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.d.ts +2 -2
- package/dist/components/fields/RadioGroup/Radio.js +4 -4
- package/dist/components/fields/RadioGroup/Radio.js.map +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.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 +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.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/{ColorPicker/ColorPickerPanel.js → color/ColorPanel.js} +13 -11
- package/dist/components/fields/color/ColorPanel.js.map +1 -0
- package/dist/components/fields/color/ColorSwatch.d.ts +22 -0
- package/dist/components/fields/color/ColorSwatch.js +58 -0
- package/dist/components/fields/color/ColorSwatch.js.map +1 -0
- package/dist/components/fields/{ColorPicker → color}/channels.d.ts +1 -1
- package/dist/components/fields/{ColorPicker → color}/channels.js +2 -2
- package/dist/components/fields/color/channels.js.map +1 -0
- package/dist/components/fields/color/color.d.ts +21 -0
- package/dist/components/fields/{ColorPicker → color}/color.js +2 -2
- package/dist/components/fields/color/color.js.map +1 -0
- package/dist/components/fields/color/context.js +20 -0
- package/dist/components/fields/color/context.js.map +1 -0
- package/dist/components/fields/color/index.d.ts +4 -0
- package/dist/components/fields/index.d.ts +9 -3
- 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.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/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/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/navigation/index.d.ts +1 -5
- 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/PeriodCalendar.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.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -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/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.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/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +8 -24
- package/dist/components/shared/DraggableCollection.js.map +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 -199
- package/dist/eslint-plugin/defaults.generated.js.map +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 -35
- package/dist/i18n/locales/en-US/uikit.js +1 -35
- package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -40
- package/dist/i18n/locales/es-ES/uikit.js +1 -35
- package/dist/i18n/locales/es-MX/uikit.js +1 -35
- package/dist/i18n/locales/fr-FR/uikit.js +1 -35
- package/dist/i18n/locales/it-IT/uikit.js +1 -35
- package/dist/i18n/locales/ja-JP/uikit.js +1 -35
- package/dist/i18n/locales/nb-NO/uikit.js +1 -35
- package/dist/i18n/locales/pt-BR/uikit.js +1 -35
- package/dist/i18n/locales/pt-PT/uikit.js +1 -35
- package/dist/i18n/locales/sv-SE/uikit.js +1 -35
- package/dist/i18n/locales/vi-VN/uikit.js +1 -35
- 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/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/wrap-icon.js +1 -1
- package/dist/index.d.ts +15 -22
- package/dist/index.js +9 -10
- package/dist/index.js.map +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/base.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/index.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.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.d.ts +1 -1
- package/dist/tokens/typography.js +2 -11
- package/dist/tokens/typography.js.map +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.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/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 +2 -2
- package/docs/components/fields/ColorInput.md +272 -0
- package/docs/components/fields/ColorPicker.md +80 -146
- package/docs/components/fields/ColorSwatchGroup.md +206 -0
- package/package.json +3 -8
- package/dist/components/data/DataTable/DataTable.d.ts +0 -13
- package/dist/components/data/DataTable/DataTable.js +0 -242
- package/dist/components/data/DataTable/DataTable.js.map +0 -1
- package/dist/components/data/DataTable/index.d.ts +0 -3
- package/dist/components/data/DataTable/types.d.ts +0 -140
- package/dist/components/data/ItemTable/ItemTable.d.ts +0 -19
- package/dist/components/data/ItemTable/ItemTable.js +0 -347
- package/dist/components/data/ItemTable/ItemTable.js.map +0 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.d.ts +0 -23
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +0 -131
- package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +0 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +0 -46
- package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +0 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +0 -79
- package/dist/components/data/ItemTable/ItemTableFooter.js.map +0 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.d.ts +0 -34
- package/dist/components/data/ItemTable/ItemTableToolbar.js +0 -91
- package/dist/components/data/ItemTable/ItemTableToolbar.js.map +0 -1
- package/dist/components/data/ItemTable/index.d.ts +0 -4
- package/dist/components/data/ItemTable/types.d.ts +0 -322
- package/dist/components/data/TableBase/ColumnResizer.js +0 -70
- package/dist/components/data/TableBase/ColumnResizer.js.map +0 -1
- package/dist/components/data/TableBase/RowCollection.js +0 -99
- package/dist/components/data/TableBase/RowCollection.js.map +0 -1
- package/dist/components/data/TableBase/TableRow.js +0 -89
- package/dist/components/data/TableBase/TableRow.js.map +0 -1
- package/dist/components/data/TableBase/TableView.d.ts +0 -22
- package/dist/components/data/TableBase/TableView.js +0 -857
- package/dist/components/data/TableBase/TableView.js.map +0 -1
- package/dist/components/data/TableBase/index.d.ts +0 -5
- package/dist/components/data/TableBase/row-menu.js +0 -40
- package/dist/components/data/TableBase/row-menu.js.map +0 -1
- package/dist/components/data/TableBase/styled.d.ts +0 -5
- package/dist/components/data/TableBase/styled.js +0 -504
- package/dist/components/data/TableBase/styled.js.map +0 -1
- package/dist/components/data/TableBase/types.d.ts +0 -161
- package/dist/components/data/TableBase/use-cell-selection.d.ts +0 -3
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-cell-selection.js.map +0 -1
- package/dist/components/data/TableBase/use-container-width.js +0 -35
- package/dist/components/data/TableBase/use-container-width.js.map +0 -1
- package/dist/components/data/TableBase/use-scrollability.js +0 -49
- package/dist/components/data/TableBase/use-scrollability.js.map +0 -1
- package/dist/components/data/TableBase/use-table-columns.d.ts +0 -2
- package/dist/components/data/TableBase/use-table-columns.js +0 -166
- package/dist/components/data/TableBase/use-table-columns.js.map +0 -1
- package/dist/components/data/TableBase/use-table-search.js +0 -50
- package/dist/components/data/TableBase/use-table-search.js.map +0 -1
- package/dist/components/data/TableBase/use-table-selection.d.ts +0 -4
- package/dist/components/data/TableBase/use-table-selection.js +0 -233
- package/dist/components/data/TableBase/use-table-selection.js.map +0 -1
- package/dist/components/data/TableBase/use-table-sort.js +0 -91
- package/dist/components/data/TableBase/use-table-sort.js.map +0 -1
- package/dist/components/data/TableBase/use-table-sorts.js +0 -97
- package/dist/components/data/TableBase/use-table-sorts.js.map +0 -1
- package/dist/components/data/TableBase/use-table-storage.d.ts +0 -8
- package/dist/components/data/TableBase/use-table-storage.js +0 -58
- package/dist/components/data/TableBase/use-table-storage.js.map +0 -1
- package/dist/components/data/index.d.ts +0 -10
- package/dist/components/fields/ColorPicker/ColorPickerPanel.js.map +0 -1
- package/dist/components/fields/ColorPicker/channels.js.map +0 -1
- package/dist/components/fields/ColorPicker/color.d.ts +0 -15
- package/dist/components/fields/ColorPicker/color.js.map +0 -1
- package/dist/components/navigation/Pagination/Pagination.d.ts +0 -9
- package/dist/components/navigation/Pagination/Pagination.js +0 -258
- package/dist/components/navigation/Pagination/Pagination.js.map +0 -1
- package/dist/components/navigation/Pagination/index.d.ts +0 -4
- package/dist/components/navigation/Pagination/types.d.ts +0 -81
- package/dist/components/navigation/Pagination/use-pagination.d.ts +0 -52
- package/dist/components/navigation/Pagination/use-pagination.js +0 -83
- package/dist/components/navigation/Pagination/use-pagination.js.map +0 -1
- package/docs/components/data/DataTable.md +0 -286
- package/docs/components/data/ItemTable.md +0 -970
- package/docs/components/navigation/Pagination.md +0 -245
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
# ColorInput
|
|
2
|
+
|
|
3
|
+
An input for a single color. It reads and writes color **text** — hex, `rgb()`,
|
|
4
|
+
`hsl()`, `okhsl()`, `okhst()` and `oklch()` — shows the current color as a
|
|
5
|
+
swatch, and opens a popover where the color can be dialed in on three
|
|
6
|
+
perceptual axes.
|
|
7
|
+
|
|
8
|
+
Every conversion goes through [Glaze](https://github.com/tenphi/glaze), so the
|
|
9
|
+
canonical value the picker holds is OKHSL: bounded on every channel, and always
|
|
10
|
+
inside the sRGB gamut. That is what makes an out-of-gamut state impossible and
|
|
11
|
+
lets the same value be re-serialized into any of the supported notations without
|
|
12
|
+
drift.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- Theme and branding forms — a seed color, an accent, a chart series color
|
|
17
|
+
- Anywhere a color has to be typed *or* explored, rather than chosen from a
|
|
18
|
+
fixed palette
|
|
19
|
+
- When the stored format matters (a design token file wants `oklch()`, a legacy
|
|
20
|
+
API wants hex) and the input has to guarantee it
|
|
21
|
+
|
|
22
|
+
Reach for a `RadioGroup` or `Picker` of swatches instead when the choice is
|
|
23
|
+
limited to a handful of approved colors.
|
|
24
|
+
|
|
25
|
+
## Component
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
### Properties
|
|
30
|
+
|
|
31
|
+
- **`value`** `string | null` — The selected color (controlled)
|
|
32
|
+
- **`defaultValue`** `string | null` — The selected color (uncontrolled)
|
|
33
|
+
- **`onChange`** `(value: string | null) => void` — Fired with the color string, or `null` when the field is cleared
|
|
34
|
+
- **`format`** `'hex' | 'rgb' | 'hsl' | 'okhsl' | 'okhst' | 'oklch'` (default: `hex`) — Notation the value is written in, and the one `forced` mode displays
|
|
35
|
+
- **`formatMode`** `'forced' | 'derive' | 'free'` (default: `forced`) — How strictly the input text is tied to `format`
|
|
36
|
+
- **`defaultSpace`** `'hst' | 'lch' | 'rgb'` (default: `hst`) — Color concept the popover opens with
|
|
37
|
+
- **`placeholder`** `string` (default: `Pick a color`) — Text shown while the field is empty
|
|
38
|
+
- **`size`** `'small' | 'medium' | 'large' | (string & {})` (default: `medium`) — Input size
|
|
39
|
+
- **`isOpen`** `boolean` — Whether the popover is open (controlled)
|
|
40
|
+
- **`defaultOpen`** `boolean` (default: `false`) — Whether the popover is open initially
|
|
41
|
+
- **`onOpenChange`** `(isOpen: boolean) => void` — Fired when the popover opens or closes
|
|
42
|
+
- **`shouldFlip`** `boolean` (default: `true`) — Whether the popover may flip to the other side of the input
|
|
43
|
+
- **`onFocus`** `(event: FocusEvent) => void` — Fired when the text input receives focus
|
|
44
|
+
- **`onBlur`** `(event: FocusEvent) => void` — Fired when the text input loses focus
|
|
45
|
+
|
|
46
|
+
Named CSS colors (`red`, `rebeccapurple`) are **not** accepted — they are not a
|
|
47
|
+
color space, and Glaze does not resolve them either. Alpha is parsed but
|
|
48
|
+
dropped: the value is always opaque.
|
|
49
|
+
|
|
50
|
+
Focusing the field selects the whole value, so a pasted color replaces it
|
|
51
|
+
outright. The string is the unit of editing here: a single channel is tuned with
|
|
52
|
+
the sliders rather than by hand-editing one number inside `oklch(…)`. Clicking a
|
|
53
|
+
field that already has focus positions the caret as usual, so the text stays
|
|
54
|
+
editable by hand.
|
|
55
|
+
|
|
56
|
+
### Base Properties
|
|
57
|
+
|
|
58
|
+
Supports [Base properties](../../BaseProperties.md)
|
|
59
|
+
|
|
60
|
+
### Field Properties
|
|
61
|
+
|
|
62
|
+
Supports all [Field properties](../../FieldProperties.md)
|
|
63
|
+
|
|
64
|
+
### Styling Properties
|
|
65
|
+
|
|
66
|
+
#### styles
|
|
67
|
+
|
|
68
|
+
Customizes the input wrapper — the element that owns the border, fill and size.
|
|
69
|
+
|
|
70
|
+
**Sub-elements:**
|
|
71
|
+
|
|
72
|
+
- `Prefix` — the container holding the color swatch
|
|
73
|
+
- `Suffix` — the container holding the validation state, then the popover trigger
|
|
74
|
+
- `InputIcon` — the swatch slot
|
|
75
|
+
- `State` — the validation / loading indicator
|
|
76
|
+
|
|
77
|
+
#### inputStyles
|
|
78
|
+
|
|
79
|
+
Customizes the `<input>` element itself.
|
|
80
|
+
|
|
81
|
+
#### triggerStyles
|
|
82
|
+
|
|
83
|
+
Customizes the popover trigger button.
|
|
84
|
+
|
|
85
|
+
#### swatchStyles
|
|
86
|
+
|
|
87
|
+
Customizes the color swatch shown inside the input.
|
|
88
|
+
|
|
89
|
+
### Style Properties
|
|
90
|
+
|
|
91
|
+
These properties allow direct style application without using the `styles` prop:
|
|
92
|
+
|
|
93
|
+
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
94
|
+
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
|
|
95
|
+
- **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
96
|
+
- **Block:** `border`, `radius`, `shadow`, `outline`, `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
|
|
97
|
+
- **Color:** `color`, `fill`, `fade`, `image`
|
|
98
|
+
|
|
99
|
+
### Modifiers
|
|
100
|
+
|
|
101
|
+
The `mods` property accepts the following modifiers you can override:
|
|
102
|
+
|
|
103
|
+
| Modifier | Type | Description |
|
|
104
|
+
| ---------- | --------- | ------------------------------------------------- |
|
|
105
|
+
| `focused` | `boolean` | The text input has focus |
|
|
106
|
+
| `hovered` | `boolean` | The pointer is over the input |
|
|
107
|
+
| `disabled` | `boolean` | The picker is disabled |
|
|
108
|
+
| `valid` | `boolean` | The field is in the valid state |
|
|
109
|
+
| `invalid` | `boolean` | The field is in the invalid state |
|
|
110
|
+
| `prefix` | `boolean` | A prefix (the swatch) is rendered |
|
|
111
|
+
| `suffix` | `boolean` | A suffix (the trigger) is rendered |
|
|
112
|
+
|
|
113
|
+
The swatch carries its own `empty` modifier while there is no color to show.
|
|
114
|
+
|
|
115
|
+
## Format modes
|
|
116
|
+
|
|
117
|
+
The three modes differ in how much freedom the *text* gets. The value is always
|
|
118
|
+
a real color in every one of them.
|
|
119
|
+
|
|
120
|
+
| Mode | Text | Value |
|
|
121
|
+
| -------- | ----------------------------------- | ---------------------------------------------------- |
|
|
122
|
+
| `forced` | Rewritten in `format` on blur/Enter | Always written in `format` |
|
|
123
|
+
| `derive` | Left exactly as typed | Normalized in the notation the text is written in |
|
|
124
|
+
| `free` | Left exactly as typed | The text itself, verbatim |
|
|
125
|
+
|
|
126
|
+
In every mode an entry that is not a color is rejected: the previous valid color
|
|
127
|
+
stays the value while it is being typed, and the text snaps back to it on blur.
|
|
128
|
+
Emptying the field is not an error — it commits `null`.
|
|
129
|
+
|
|
130
|
+
```jsx
|
|
131
|
+
// A design-token form that must store OKLCH
|
|
132
|
+
<ColorInput label="Accent" format="oklch" onChange={setAccent} />
|
|
133
|
+
|
|
134
|
+
// A CSS editor: keep whatever the author wrote, but guarantee it parses
|
|
135
|
+
<ColorInput label="Color" formatMode="free" onChange={setCss} />
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Color spaces
|
|
139
|
+
|
|
140
|
+
The popover edits one canonical color through three sets of axes:
|
|
141
|
+
|
|
142
|
+
| Space | Axes | Good for |
|
|
143
|
+
| ----- | ----------------------------- | ----------------------------------------------------- |
|
|
144
|
+
| `hst` | Hue, Saturation, Tone (OKHST) | Building ramps — equal tone steps read as equal steps |
|
|
145
|
+
| `lch` | Lightness, Chroma, Hue (OKLCH)| Matching a value from a design-token file |
|
|
146
|
+
| `rgb` | Red, Green, Blue | Matching a value from a legacy palette or a screenshot|
|
|
147
|
+
|
|
148
|
+
Each of these opens on its own space; the switcher inside the popover moves
|
|
149
|
+
between them at any time.
|
|
150
|
+
|
|
151
|
+
`H` means the same angle in HST and LCH, so the hue strip is identical in both.
|
|
152
|
+
The chroma slider is bounded by the sRGB gamut at the current lightness and hue,
|
|
153
|
+
which is why its range changes as `L` moves.
|
|
154
|
+
|
|
155
|
+
## Examples
|
|
156
|
+
|
|
157
|
+
### Basic usage
|
|
158
|
+
|
|
159
|
+
```jsx
|
|
160
|
+
<ColorInput label="Brand color" defaultValue="#7a4dbf" />
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Controlled
|
|
164
|
+
|
|
165
|
+
```jsx
|
|
166
|
+
const [color, setColor] = useState('#7a4dbf');
|
|
167
|
+
|
|
168
|
+
<ColorInput label="Brand color" value={color} onChange={setColor} />;
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Inside a form
|
|
172
|
+
|
|
173
|
+
```jsx
|
|
174
|
+
<Form onSubmit={onSubmit}>
|
|
175
|
+
<ColorInput
|
|
176
|
+
name="accent"
|
|
177
|
+
label="Accent color"
|
|
178
|
+
format="oklch"
|
|
179
|
+
rules={[{ required: true, message: 'Pick an accent color' }]}
|
|
180
|
+
/>
|
|
181
|
+
</Form>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Opening on a specific space
|
|
185
|
+
|
|
186
|
+
```jsx
|
|
187
|
+
<ColorInput label="Series color" defaultSpace="rgb" defaultValue="#26fcb2" />
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Using the value as a style
|
|
191
|
+
|
|
192
|
+
Because the emitted value is a plain color string, it can go straight into a
|
|
193
|
+
tasty style — including the `okhsl()` and `okhst()` notations, which tasty
|
|
194
|
+
parses natively.
|
|
195
|
+
|
|
196
|
+
```jsx
|
|
197
|
+
const [color, setColor] = useState('okhst(264 80% 60%)');
|
|
198
|
+
|
|
199
|
+
<>
|
|
200
|
+
<ColorInput label="Fill" format="okhst" value={color} onChange={setColor} />
|
|
201
|
+
<Block fill={color} height="10x" radius="1r" />
|
|
202
|
+
</>;
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Accessibility
|
|
206
|
+
|
|
207
|
+
### Keyboard Navigation
|
|
208
|
+
|
|
209
|
+
- `Tab` — moves focus to the text input, then to the popover trigger
|
|
210
|
+
- `Enter` — commits and normalizes the typed color without leaving the field
|
|
211
|
+
- `Space` / `Enter` on the trigger — opens the popover
|
|
212
|
+
- `Escape` — closes the popover
|
|
213
|
+
- `Left` / `Right`, `Home` / `End` on a channel slider — moves that channel
|
|
214
|
+
- `Left` / `Right` on the space switcher — moves between HST, LCH and RGB
|
|
215
|
+
|
|
216
|
+
### Screen Reader Support
|
|
217
|
+
|
|
218
|
+
- The text input announces as a textbox with the field's label
|
|
219
|
+
- The trigger announces as "Open the color picker"
|
|
220
|
+
- The popover announces as a dialog named "Color picker"
|
|
221
|
+
- Each channel slider sits in a group named after its axis (`Hue`,
|
|
222
|
+
`Saturation`, `Tone`, `Lightness`, `Chroma`, `Red`, `Green`, `Blue`)
|
|
223
|
+
- The swatch is decorative and is not announced — the text carries the value
|
|
224
|
+
|
|
225
|
+
### ARIA Properties
|
|
226
|
+
|
|
227
|
+
- `aria-label` — names the field when there is no visible label
|
|
228
|
+
- `aria-describedby` — wired to the field description by the form system
|
|
229
|
+
|
|
230
|
+
## Best Practices
|
|
231
|
+
|
|
232
|
+
1. **Do**: name the field, so the text input is announced meaningfully
|
|
233
|
+
|
|
234
|
+
```jsx
|
|
235
|
+
<ColorInput label="Brand color" />
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
2. **Don't**: rely on the swatch alone to convey the value
|
|
239
|
+
|
|
240
|
+
```jsx
|
|
241
|
+
<ColorInput aria-label="" />
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
3. **Do**: pick the `format` your backend stores, and leave `formatMode` at
|
|
245
|
+
`forced` so the two can never disagree.
|
|
246
|
+
|
|
247
|
+
4. **Don't**: use `free` mode when the value is later parsed by something
|
|
248
|
+
stricter than a browser — the text is passed through as written.
|
|
249
|
+
|
|
250
|
+
## Integration with Forms
|
|
251
|
+
|
|
252
|
+
This component supports all
|
|
253
|
+
[Field properties](../../FieldProperties.md) when used
|
|
254
|
+
within a Form. The field value is the color string, and clearing the input
|
|
255
|
+
stores `null`, which makes `required` rules behave as expected.
|
|
256
|
+
|
|
257
|
+
## Suggested Improvements
|
|
258
|
+
|
|
259
|
+
- An eyedropper that samples a pixel from the page, where
|
|
260
|
+
[`EyeDropper`](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper) is
|
|
261
|
+
available
|
|
262
|
+
- Optional alpha support, which the canonical value currently drops
|
|
263
|
+
- A row of recent or preset swatches inside the popover
|
|
264
|
+
- Editable numeric inputs next to each channel slider, for exact entry without
|
|
265
|
+
going through the text field
|
|
266
|
+
|
|
267
|
+
## Related Components
|
|
268
|
+
|
|
269
|
+
- [ColorPicker](./ColorPicker.md) — the same popover behind a swatch button, when the color is never typed
|
|
270
|
+
- [HueSlider](./HueSlider.md) — just the hue axis, when only a hue is needed
|
|
271
|
+
- [Slider](./Slider.md) — the primitive each channel is built from
|
|
272
|
+
- [TextInput](./TextInput.md) — the input chrome this component reuses
|
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
# ColorPicker
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
A swatch button that opens the color popover. It is the same popover
|
|
4
|
+
[ColorInput](./ColorInput.md) uses — three perceptual axes backed
|
|
5
|
+
by [Glaze](https://github.com/tenphi/glaze) — without the text field in front of
|
|
6
|
+
it.
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
inside the sRGB gamut. That is what makes an out-of-gamut state impossible and
|
|
11
|
-
lets the same value be re-serialized into any of the supported notations without
|
|
12
|
-
drift.
|
|
8
|
+
Reach for it when a color is **chosen but never typed**. Reach for `ColorInput`
|
|
9
|
+
when someone needs to paste `#7a4dbf` from a brand guide.
|
|
13
10
|
|
|
14
11
|
## When to Use
|
|
15
12
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
- When the stored format matters (a design token file wants `oklch()`, a legacy
|
|
20
|
-
API wants hex) and the input has to guarantee it
|
|
13
|
+
- A toolbar or inspector where space is tight
|
|
14
|
+
- A chart legend, a tag color, a cell in a dense table
|
|
15
|
+
- Anywhere the exact notation is an implementation detail the user never sees
|
|
21
16
|
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
Use [ColorInput](./ColorInput.md) instead when the color has to be
|
|
18
|
+
readable and pasteable as text.
|
|
24
19
|
|
|
25
20
|
## Component
|
|
26
21
|
|
|
@@ -30,28 +25,26 @@ limited to a handful of approved colors.
|
|
|
30
25
|
|
|
31
26
|
- **`value`** `string | null` — The selected color (controlled)
|
|
32
27
|
- **`defaultValue`** `string | null` — The selected color (uncontrolled)
|
|
33
|
-
- **`onChange`** `(value: string | null) => void` — Fired with the color string
|
|
34
|
-
- **`format`** `'hex' | 'rgb' | 'hsl' | 'okhsl' | 'okhst' | 'oklch'` (default: `hex`) — Notation the value is written in, and the one
|
|
35
|
-
- **`formatMode`** `'forced' | 'derive' | 'free'` (default: `forced`) — How strictly the input text is tied to `format`
|
|
28
|
+
- **`onChange`** `(value: string | null) => void` — Fired with the color string
|
|
29
|
+
- **`format`** `'hex' | 'rgb' | 'hsl' | 'okhsl' | 'okhst' | 'oklch'` (default: `hex`) — Notation the value is written in, and the one shown on the trigger
|
|
36
30
|
- **`defaultSpace`** `'hst' | 'lch' | 'rgb'` (default: `hst`) — Color concept the popover opens with
|
|
37
|
-
- **`
|
|
38
|
-
- **`
|
|
31
|
+
- **`children`** `ReactNode` — Replaces the color shown on the trigger. Pass `null` for a swatch on its own
|
|
32
|
+
- **`placeholder`** `ReactNode` (default: `Pick a color`) — Shown on the trigger while there is no color
|
|
33
|
+
- **`type`** `CubeItemProps['type']` (default: `outline`) — Visual type of the trigger
|
|
34
|
+
- **`theme`** `CubeItemProps['theme']` (default: `default`) — Theme of the trigger
|
|
35
|
+
- **`size`** `CubeItemProps['size']` — Size of the trigger
|
|
36
|
+
- **`triggerTooltip`** `CubeItemProps['tooltip']` — Tooltip for the trigger, separate from the field tooltip
|
|
37
|
+
- **`swatches`** `Array<string | { color: string; label?: string }>` — Colors to offer under the editor, as a [ColorSwatchGroup](./ColorSwatchGroup.md)
|
|
38
|
+
- **`swatchColumns`** `number` — How many swatches per row. Defaults to a single row
|
|
39
39
|
- **`isOpen`** `boolean` — Whether the popover is open (controlled)
|
|
40
40
|
- **`defaultOpen`** `boolean` (default: `false`) — Whether the popover is open initially
|
|
41
41
|
- **`onOpenChange`** `(isOpen: boolean) => void` — Fired when the popover opens or closes
|
|
42
|
-
- **`shouldFlip`** `boolean` (default: `true`) — Whether the popover may flip to the other side of the
|
|
43
|
-
- **`onFocus`** `(event: FocusEvent) => void` — Fired when the text input receives focus
|
|
44
|
-
- **`onBlur`** `(event: FocusEvent) => void` — Fired when the text input loses focus
|
|
42
|
+
- **`shouldFlip`** `boolean` (default: `true`) — Whether the popover may flip to the other side of the trigger
|
|
45
43
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
Focusing the field selects the whole value, so a pasted color replaces it
|
|
51
|
-
outright. The string is the unit of editing here: a single channel is tuned with
|
|
52
|
-
the sliders rather than by hand-editing one number inside `oklch(…)`. Clicking a
|
|
53
|
-
field that already has focus positions the caret as usual, so the text stays
|
|
54
|
-
editable by hand.
|
|
44
|
+
There is no `formatMode`: with no text to reconcile, `format` alone decides how
|
|
45
|
+
the value is written. Everything else about the color model — the notations it
|
|
46
|
+
reads, the gamut handling, the three spaces — is identical to `ColorInput` and
|
|
47
|
+
documented there.
|
|
55
48
|
|
|
56
49
|
### Base Properties
|
|
57
50
|
|
|
@@ -65,109 +58,77 @@ Supports all [Field properties](../../FieldProperties.md)
|
|
|
65
58
|
|
|
66
59
|
#### styles
|
|
67
60
|
|
|
68
|
-
Customizes the
|
|
69
|
-
|
|
70
|
-
**Sub-elements:**
|
|
71
|
-
|
|
72
|
-
- `Prefix` — the container holding the color swatch
|
|
73
|
-
- `Suffix` — the container holding the validation state, then the popover trigger
|
|
74
|
-
- `InputIcon` — the swatch slot
|
|
75
|
-
- `State` — the validation / loading indicator
|
|
76
|
-
|
|
77
|
-
#### inputStyles
|
|
78
|
-
|
|
79
|
-
Customizes the `<input>` element itself.
|
|
61
|
+
Customizes the wrapper around the trigger.
|
|
80
62
|
|
|
81
63
|
#### triggerStyles
|
|
82
64
|
|
|
83
|
-
Customizes the
|
|
65
|
+
Customizes the trigger button itself.
|
|
84
66
|
|
|
85
67
|
#### swatchStyles
|
|
86
68
|
|
|
87
|
-
Customizes the color swatch
|
|
69
|
+
Customizes the color swatch.
|
|
88
70
|
|
|
89
71
|
### Style Properties
|
|
90
72
|
|
|
91
73
|
These properties allow direct style application without using the `styles` prop:
|
|
92
74
|
|
|
93
|
-
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
94
75
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
|
|
95
76
|
- **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
96
77
|
- **Block:** `border`, `radius`, `shadow`, `outline`, `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
|
|
97
|
-
- **Color:** `color`, `fill`, `fade`, `image`
|
|
98
78
|
|
|
99
79
|
### Modifiers
|
|
100
80
|
|
|
101
81
|
The `mods` property accepts the following modifiers you can override:
|
|
102
82
|
|
|
103
|
-
| Modifier
|
|
104
|
-
|
|
|
105
|
-
| `
|
|
106
|
-
| `hovered` | `boolean` | The pointer is over the input |
|
|
107
|
-
| `disabled` | `boolean` | The picker is disabled |
|
|
108
|
-
| `valid` | `boolean` | The field is in the valid state |
|
|
109
|
-
| `invalid` | `boolean` | The field is in the invalid state |
|
|
110
|
-
| `prefix` | `boolean` | A prefix (the swatch) is rendered |
|
|
111
|
-
| `suffix` | `boolean` | A suffix (the trigger) is rendered |
|
|
83
|
+
| Modifier | Type | Description |
|
|
84
|
+
| ------------- | --------- | ------------------------------------ |
|
|
85
|
+
| `placeholder` | `boolean` | No color is selected yet |
|
|
112
86
|
|
|
113
87
|
The swatch carries its own `empty` modifier while there is no color to show.
|
|
114
88
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
The three modes differ in how much freedom the *text* gets. The value is always
|
|
118
|
-
a real color in every one of them.
|
|
89
|
+
### A palette under the editor
|
|
119
90
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
| `forced` | Rewritten in `format` on blur/Enter | Always written in `format` |
|
|
123
|
-
| `derive` | Left exactly as typed | Normalized in the notation the text is written in |
|
|
124
|
-
| `free` | Left exactly as typed | The text itself, verbatim |
|
|
125
|
-
|
|
126
|
-
In every mode an entry that is not a color is rejected: the previous valid color
|
|
127
|
-
stays the value while it is being typed, and the text snaps back to it on blur.
|
|
128
|
-
Emptying the field is not an error — it commits `null`.
|
|
91
|
+
Pass `swatches` and a [ColorSwatchGroup](./ColorSwatchGroup.md)
|
|
92
|
+
appears below the channels, so a common color is one press away.
|
|
129
93
|
|
|
130
94
|
```jsx
|
|
131
|
-
|
|
132
|
-
<ColorPicker label="Accent" format="oklch" onChange={setAccent} />
|
|
133
|
-
|
|
134
|
-
// A CSS editor: keep whatever the author wrote, but guarantee it parses
|
|
135
|
-
<ColorPicker label="Color" formatMode="free" onChange={setCss} />
|
|
95
|
+
<ColorPicker label="Brand color" swatches={palette} swatchColumns={4} />
|
|
136
96
|
```
|
|
137
97
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
The popover edits one canonical color through three sets of axes:
|
|
141
|
-
|
|
142
|
-
| Space | Axes | Good for |
|
|
143
|
-
| ----- | ----------------------------- | ----------------------------------------------------- |
|
|
144
|
-
| `hst` | Hue, Saturation, Tone (OKHST) | Building ramps — equal tone steps read as equal steps |
|
|
145
|
-
| `lch` | Lightness, Chroma, Hue (OKLCH)| Matching a value from a design-token file |
|
|
146
|
-
| `rgb` | Red, Green, Blue | Matching a value from a legacy palette or a screenshot|
|
|
147
|
-
|
|
148
|
-
Each of these opens on its own space; the switcher inside the popover moves
|
|
149
|
-
between them at any time.
|
|
150
|
-
|
|
151
|
-
`H` means the same angle in HST and LCH, so the hue strip is identical in both.
|
|
152
|
-
The chroma slider is bounded by the sRGB gamut at the current lightness and hue,
|
|
153
|
-
which is why its range changes as `L` moves.
|
|
98
|
+
That group never offers its own custom-color escape hatch, since the escape
|
|
99
|
+
hatch is a `ColorPicker` and would nest popovers without end.
|
|
154
100
|
|
|
155
101
|
## Examples
|
|
156
102
|
|
|
157
103
|
### Basic usage
|
|
158
104
|
|
|
159
105
|
```jsx
|
|
160
|
-
<ColorPicker label="
|
|
106
|
+
<ColorPicker label="Series color" defaultValue="#7a4dbf" />
|
|
161
107
|
```
|
|
162
108
|
|
|
163
|
-
###
|
|
109
|
+
### A swatch on its own
|
|
110
|
+
|
|
111
|
+
Drop the label for a compact button — a toolbar, or a cell in a table.
|
|
164
112
|
|
|
165
113
|
```jsx
|
|
166
|
-
|
|
114
|
+
<ColorPicker aria-label="Series color" value={color} onChange={setColor}>
|
|
115
|
+
{null}
|
|
116
|
+
</ColorPicker>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Give it an `aria-label` when you do: with no visible text, that is the only
|
|
120
|
+
thing naming the control.
|
|
121
|
+
|
|
122
|
+
### A label of your own
|
|
167
123
|
|
|
168
|
-
|
|
124
|
+
```jsx
|
|
125
|
+
<ColorPicker value={color} onChange={setColor}>
|
|
126
|
+
Accent
|
|
127
|
+
</ColorPicker>
|
|
169
128
|
```
|
|
170
129
|
|
|
130
|
+
### Trigger types
|
|
131
|
+
|
|
171
132
|
### Inside a form
|
|
172
133
|
|
|
173
134
|
```jsx
|
|
@@ -181,91 +142,64 @@ const [color, setColor] = useState('#7a4dbf');
|
|
|
181
142
|
</Form>
|
|
182
143
|
```
|
|
183
144
|
|
|
184
|
-
### Opening on a specific space
|
|
185
|
-
|
|
186
|
-
```jsx
|
|
187
|
-
<ColorPicker label="Series color" defaultSpace="rgb" defaultValue="#26fcb2" />
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
### Using the value as a style
|
|
191
|
-
|
|
192
|
-
Because the emitted value is a plain color string, it can go straight into a
|
|
193
|
-
tasty style — including the `okhsl()` and `okhst()` notations, which tasty
|
|
194
|
-
parses natively.
|
|
195
|
-
|
|
196
|
-
```jsx
|
|
197
|
-
const [color, setColor] = useState('okhst(264 80% 60%)');
|
|
198
|
-
|
|
199
|
-
<>
|
|
200
|
-
<ColorPicker label="Fill" format="okhst" value={color} onChange={setColor} />
|
|
201
|
-
<Block fill={color} height="10x" radius="1r" />
|
|
202
|
-
</>;
|
|
203
|
-
```
|
|
204
|
-
|
|
205
145
|
## Accessibility
|
|
206
146
|
|
|
207
147
|
### Keyboard Navigation
|
|
208
148
|
|
|
209
|
-
- `Tab` — moves focus to the
|
|
210
|
-
- `Enter` —
|
|
211
|
-
- `
|
|
212
|
-
- `Escape` — closes the popover
|
|
149
|
+
- `Tab` — moves focus to the trigger
|
|
150
|
+
- `Space` / `Enter` — opens the popover
|
|
151
|
+
- `Escape` — closes it
|
|
213
152
|
- `Left` / `Right`, `Home` / `End` on a channel slider — moves that channel
|
|
214
153
|
- `Left` / `Right` on the space switcher — moves between HST, LCH and RGB
|
|
215
154
|
|
|
216
155
|
### Screen Reader Support
|
|
217
156
|
|
|
218
|
-
- The
|
|
219
|
-
|
|
157
|
+
- The trigger announces as a button, named by the field label, `aria-label`, or
|
|
158
|
+
its own text
|
|
220
159
|
- The popover announces as a dialog named "Color picker"
|
|
221
|
-
- Each channel slider sits in a group named after its axis
|
|
222
|
-
|
|
223
|
-
|
|
160
|
+
- Each channel slider sits in a group named after its axis
|
|
161
|
+
- The swatch is decorative; the color is announced as the trigger's text unless
|
|
162
|
+
you replace it
|
|
224
163
|
|
|
225
164
|
### ARIA Properties
|
|
226
165
|
|
|
227
|
-
- `aria-label` — names the
|
|
228
|
-
- `aria-
|
|
166
|
+
- `aria-label` — names the trigger when there is no visible label or text
|
|
167
|
+
- `aria-expanded` — reflects the popover state
|
|
229
168
|
|
|
230
169
|
## Best Practices
|
|
231
170
|
|
|
232
|
-
1. **Do**: name
|
|
171
|
+
1. **Do**: name a swatch-only picker
|
|
233
172
|
|
|
234
173
|
```jsx
|
|
235
|
-
<ColorPicker label="
|
|
174
|
+
<ColorPicker aria-label="Series color">{null}</ColorPicker>
|
|
236
175
|
```
|
|
237
176
|
|
|
238
|
-
2. **Don't**:
|
|
177
|
+
2. **Don't**: leave a swatch-only picker unnamed — the swatch says nothing to a
|
|
178
|
+
screen reader
|
|
239
179
|
|
|
240
180
|
```jsx
|
|
241
|
-
<ColorPicker
|
|
181
|
+
<ColorPicker>{null}</ColorPicker>
|
|
242
182
|
```
|
|
243
183
|
|
|
244
|
-
3. **Do**:
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
4. **Don't**: use `free` mode when the value is later parsed by something
|
|
248
|
-
stricter than a browser — the text is passed through as written.
|
|
184
|
+
3. **Do**: reach for `ColorInput` the moment someone might want to paste a hex
|
|
185
|
+
value; a picker alone makes that impossible.
|
|
249
186
|
|
|
250
187
|
## Integration with Forms
|
|
251
188
|
|
|
252
189
|
This component supports all
|
|
253
190
|
[Field properties](../../FieldProperties.md) when used
|
|
254
|
-
within a Form. The field value is the color string
|
|
255
|
-
stores `null`, which makes `required` rules behave as expected.
|
|
191
|
+
within a Form. The field value is the color string.
|
|
256
192
|
|
|
257
193
|
## Suggested Improvements
|
|
258
194
|
|
|
195
|
+
- A row of recent or preset swatches inside the popover
|
|
259
196
|
- An eyedropper that samples a pixel from the page, where
|
|
260
197
|
[`EyeDropper`](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper) is
|
|
261
198
|
available
|
|
262
|
-
-
|
|
263
|
-
- A row of recent or preset swatches inside the popover
|
|
264
|
-
- Editable numeric inputs next to each channel slider, for exact entry without
|
|
265
|
-
going through the text field
|
|
199
|
+
- Clearing the color back to `null` from the trigger
|
|
266
200
|
|
|
267
201
|
## Related Components
|
|
268
202
|
|
|
269
|
-
- [
|
|
270
|
-
- [
|
|
271
|
-
- [
|
|
203
|
+
- [ColorInput](./ColorInput.md) — the same popover behind a text field
|
|
204
|
+
- [Picker](./Picker.md) — the same trigger-plus-popover shape, for lists
|
|
205
|
+
- [HueSlider](./HueSlider.md) — just the hue axis
|