@cube-dev/ui-kit 0.200.1 → 0.202.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/CHANGELOG.md +50 -0
- package/dist/README.md +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 +2 -1
- package/dist/components/HiddenInput.js.map +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/ItemActionsWrapper.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/MenuCollectionItem.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/actions-run.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/Divider.d.ts +22 -0
- package/dist/components/content/Divider/Divider.js +159 -0
- package/dist/components/content/Divider/Divider.js.map +1 -0
- 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/Item/ItemWithNativeLinks.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/LayoutPanelTransition.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.d.ts +2 -1
- package/dist/components/content/TextItem/TextItem.js +134 -69
- package/dist/components/content/TextItem/TextItem.js.map +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +39 -14
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +8 -7
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/checked-keys.js +158 -0
- package/dist/components/content/Tree/checked-keys.js.map +1 -0
- package/dist/components/content/Tree/rowId.js +16 -0
- package/dist/components/content/Tree/rowId.js.map +1 -0
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +10 -2
- package/dist/components/content/Tree/tree-index.js.map +1 -1
- package/dist/components/content/Tree/types.d.ts +21 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +17 -123
- package/dist/components/content/Tree/use-checkbox-tree.js.map +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 +94 -66
- package/dist/components/data/ItemTable/ItemTable.js.map +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/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.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/TableRowLink.js +88 -0
- package/dist/components/data/TableBase/TableRowLink.js.map +1 -0
- package/dist/components/data/TableBase/TableView.js +317 -69
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/column-header.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.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.js +33 -22
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.d.ts +2 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/types.js.map +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-window.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-tooltip-refresh.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.d.ts +3 -2
- package/dist/components/fields/Checkbox/Checkbox.js +21 -10
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +3 -2
- package/dist/components/fields/Checkbox/CheckboxGroup.js +36 -42
- package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.d.ts +3 -2
- package/dist/components/fields/ColorInput/ColorInput.js +5 -3
- package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.d.ts +9 -3
- package/dist/components/fields/ColorPicker/ColorPicker.js +182 -200
- package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +3 -2
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +143 -171
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +6 -4
- package/dist/components/fields/ComboBox/ComboBox.js +601 -574
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +5 -4
- package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +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.d.ts +3 -2
- package/dist/components/fields/DatePicker/DateInput.js +7 -5
- package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +79 -76
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.d.ts +3 -2
- package/dist/components/fields/DatePicker/DatePicker.js +85 -173
- package/dist/components/fields/DatePicker/DatePicker.js.map +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.d.ts +3 -2
- package/dist/components/fields/DatePicker/DateRangePicker.js +117 -204
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +3 -2
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +289 -434
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.d.ts +3 -2
- package/dist/components/fields/DatePicker/PeriodPicker.js +87 -113
- package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.d.ts +3 -2
- package/dist/components/fields/DatePicker/TimeInput.js +7 -5
- package/dist/components/fields/DatePicker/TimeInput.js.map +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.d.ts +3 -2
- package/dist/components/fields/FileInput/FileInput.js +114 -141
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +10 -65
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterListBox/styled.js +66 -0
- package/dist/components/fields/FilterListBox/styled.js.map +1 -0
- package/dist/components/fields/FilterPicker/FilterPicker.d.ts +35 -3
- package/dist/components/fields/FilterPicker/FilterPicker.js +76 -15
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterTree.js +413 -0
- package/dist/components/fields/FilterPicker/FilterTree.js.map +1 -0
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.d.ts +3 -2
- package/dist/components/fields/ListBox/ListBox.js +7 -10
- package/dist/components/fields/ListBox/ListBox.js.map +1 -1
- package/dist/components/fields/ListBox/optionId.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 +5 -3
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +5 -3
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.d.ts +9 -3
- package/dist/components/fields/Picker/Picker.js +12 -11
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +152 -154
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.d.ts +3 -2
- package/dist/components/fields/RadioGroup/RadioGroup.js +85 -111
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/RadioGroup/context.js.map +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +9 -4
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +16 -23
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +52 -48
- package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/fields/Select/Select.d.ts +3 -2
- package/dist/components/fields/Select/Select.js +8 -10
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +19 -26
- package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
- package/dist/components/fields/Slider/Slider.js +51 -58
- package/dist/components/fields/Slider/Slider.js.map +1 -1
- package/dist/components/fields/Slider/SliderBase.js +61 -60
- package/dist/components/fields/Slider/SliderBase.js.map +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/Slider/types.d.ts +3 -2
- package/dist/components/fields/Switch/Switch.d.ts +12 -2
- package/dist/components/fields/Switch/Switch.js +97 -165
- package/dist/components/fields/Switch/Switch.js.map +1 -1
- package/dist/components/fields/TagInput/TagInput.d.ts +5 -2
- package/dist/components/fields/TagInput/TagInput.js +18 -13
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +1 -1
- package/dist/components/fields/TagInput/useTagError.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +5 -3
- package/dist/components/fields/TextArea/TextArea.js.map +1 -1
- package/dist/components/fields/TextInput/TextInput.js +5 -3
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +15 -4
- package/dist/components/fields/TextInput/TextInputBase.js +200 -104
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/displayed-validation.js +1 -1
- package/dist/components/fields/TextInput/index.d.ts +2 -2
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/fields/index.d.ts +2 -2
- package/dist/components/fields/option-origin-press.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +120 -57
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
- package/dist/components/form/FieldWrapper/field-description.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/ModernFormRoot.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/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.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/field-chrome.js +1 -1
- package/dist/components/form/field-chrome.js.map +1 -1
- package/dist/components/form/field-layout.d.ts +10 -0
- package/dist/components/form/field-layout.js +96 -0
- package/dist/components/form/field-layout.js.map +1 -0
- package/dist/components/form/index.d.ts +2 -1
- package/dist/components/form/legacy-tooltip.js +15 -2
- package/dist/components/form/legacy-tooltip.js.map +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 +6 -2
- package/dist/components/form/wrapper.js.map +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.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/BoardDragActiveProvider.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 +2 -1
- package/dist/components/navigation/Tabs/styled.js.map +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 +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/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.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/Modal/modal-containment.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 +2 -2
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.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 +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 +116 -116
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/namespace.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/wrap-icon.js +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -4
- 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.d.ts +5 -0
- package/dist/provider.js +19 -7
- package/dist/provider.js.map +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigation-url.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +1 -1
- package/dist/shared/form.d.ts +3 -1
- package/dist/tokens/all-tokens.js +1 -1
- 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 +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +4 -4
- package/dist/tokens/palette.js.map +1 -1
- 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.js +1 -1
- package/dist/utils/dotize.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/disabledProps.js +29 -2
- package/dist/utils/react/disabledProps.js.map +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/overlayKeyPropagation.js +44 -7
- package/dist/utils/react/overlayKeyPropagation.js.map +1 -1
- package/dist/utils/react/programmaticFocus.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/useOverlayEscapeGuard.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 +3 -3
- package/docs/CreateComponent.md +1 -1
- package/docs/FieldProperties.md +17 -7
- package/docs/Usage.md +3 -0
- package/docs/components/content/Divider.md +103 -21
- package/docs/components/content/Tree.md +5 -4
- package/docs/components/data/ItemTable.md +9 -1
- package/docs/components/fields/Checkbox.md +7 -8
- package/docs/components/fields/ColorInput.md +11 -13
- package/docs/components/fields/ColorPicker.md +2 -2
- package/docs/components/fields/ColorSwatchGroup.md +2 -3
- package/docs/components/fields/ComboBox.md +2 -4
- package/docs/components/fields/CommandTextArea.md +3 -5
- package/docs/components/fields/DatePicker.md +1 -4
- package/docs/components/fields/FileInput.md +1 -5
- package/docs/components/fields/FilterListBox.md +0 -3
- package/docs/components/fields/FilterPicker.md +68 -5
- package/docs/components/fields/HueSlider.md +1 -2
- package/docs/components/fields/ListBox.md +0 -3
- package/docs/components/fields/NumberInput.md +5 -6
- package/docs/components/fields/PasswordInput.md +7 -8
- package/docs/components/fields/PeriodPicker.md +0 -4
- package/docs/components/fields/Picker.md +2 -4
- package/docs/components/fields/RadioGroup.md +4 -5
- package/docs/components/fields/SearchComboBox.md +2 -4
- package/docs/components/fields/SearchInput.md +3 -4
- package/docs/components/fields/Select.md +0 -3
- package/docs/components/fields/Slider.md +0 -1
- package/docs/components/fields/Switch.md +16 -3
- package/docs/components/fields/TagInput.md +3 -6
- package/docs/components/fields/TextArea.md +9 -8
- package/docs/components/fields/TextInput.md +39 -10
- package/docs/components/overlays/Tooltip.md +1 -1
- package/docs/tasty/ai-agents.md +1 -1
- package/docs/tasty/react-api.md +1 -1
- package/docs/tasty/styles.md +37 -3
- package/package.json +6 -4
- package/dist/components/content/Divider.d.ts +0 -7
- package/dist/components/content/Divider.js +0 -105
- package/dist/components/content/Divider.js.map +0 -1
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
|
|
2
2
|
import { FieldBaseProps } from "../../../shared/form.js";
|
|
3
3
|
import "../../../shared/index.js";
|
|
4
|
+
import { FieldLayoutStyleProps } from "../../form/field-layout.js";
|
|
4
5
|
import { ColorFormat } from "../color/color.js";
|
|
5
|
-
import { BaseProps,
|
|
6
|
+
import { BaseProps, Styles } from "@tenphi/tasty";
|
|
6
7
|
//#region src/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts
|
|
7
8
|
/** A swatch: a color, and optionally a name to announce instead of the color. */
|
|
8
9
|
export type CubeColorSwatchItem = string | {
|
|
9
10
|
color: string;
|
|
10
11
|
label?: string;
|
|
11
12
|
};
|
|
12
|
-
export interface CubeColorSwatchGroupProps extends BaseProps,
|
|
13
|
+
export interface CubeColorSwatchGroupProps extends BaseProps, FieldLayoutStyleProps, FieldBaseProps<string | null | undefined> {
|
|
13
14
|
/** The colors to offer. Duplicates of the same color are dropped. */
|
|
14
15
|
colors?: CubeColorSwatchItem[];
|
|
15
16
|
/** The selected color (controlled). */
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
2
|
-
import { extractStyles } from "../../../utils/styles.js";
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
3
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
5
4
|
import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
|
|
@@ -7,12 +6,13 @@ import { useI18n } from "../../../i18n/useI18n.js";
|
|
|
7
6
|
import { getValidationMods } from "../../form/validation/resolve-validation-props.js";
|
|
8
7
|
import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
|
|
9
8
|
import { wrapWithField } from "../../form/wrapper.js";
|
|
9
|
+
import { splitFieldLayout } from "../../form/field-layout.js";
|
|
10
10
|
import { HiddenInput } from "../../HiddenInput.js";
|
|
11
11
|
import { formatColor, parseColor, toHex } from "../color/color.js";
|
|
12
12
|
import { useIsInsideColorPopover } from "../color/context.js";
|
|
13
13
|
import { ColorPicker } from "../ColorPicker/ColorPicker.js";
|
|
14
14
|
import { c } from "react/compiler-runtime";
|
|
15
|
-
import {
|
|
15
|
+
import { mergeStyles, tasty } from "@tenphi/tasty";
|
|
16
16
|
import { forwardRef, useRef, useState } from "react";
|
|
17
17
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
18
|
import { useRadio, useRadioGroup } from "react-aria";
|
|
@@ -221,7 +221,7 @@ function Swatch(t0) {
|
|
|
221
221
|
* ambiguous.
|
|
222
222
|
*/
|
|
223
223
|
const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(allProps, ref) {
|
|
224
|
-
const $ = c(
|
|
224
|
+
const $ = c(59);
|
|
225
225
|
const { t } = useI18n();
|
|
226
226
|
let t0;
|
|
227
227
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
@@ -242,17 +242,11 @@ const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(allProps, ref) {
|
|
|
242
242
|
const colors = t4;
|
|
243
243
|
const format = t2 === void 0 ? "hex" : t2;
|
|
244
244
|
const size = t3 === void 0 ? "medium" : t3;
|
|
245
|
-
|
|
246
|
-
if ($[3] !== props) {
|
|
247
|
-
t5 = extractStyles(props, [...OUTER_STYLES, ...BLOCK_STYLES]);
|
|
248
|
-
$[3] = props;
|
|
249
|
-
$[4] = t5;
|
|
250
|
-
} else t5 = $[4];
|
|
251
|
-
const styles = t5;
|
|
245
|
+
const { styles, field } = splitFieldLayout(props);
|
|
252
246
|
const isInsidePopover = useIsInsideColorPopover();
|
|
253
247
|
const showCustom = allowCustom && !isInsidePopover;
|
|
254
|
-
let
|
|
255
|
-
if ($[
|
|
248
|
+
let t5;
|
|
249
|
+
if ($[3] !== colors || $[4] !== format) {
|
|
256
250
|
const seen = /* @__PURE__ */ new Map();
|
|
257
251
|
for (const entry of colors) {
|
|
258
252
|
const raw = typeof entry === "string" ? entry : entry.color;
|
|
@@ -265,129 +259,128 @@ const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(allProps, ref) {
|
|
|
265
259
|
label: (typeof entry === "string" ? void 0 : entry.label) ?? formatColor(parsed, format)
|
|
266
260
|
});
|
|
267
261
|
}
|
|
268
|
-
|
|
269
|
-
$[
|
|
270
|
-
$[
|
|
262
|
+
t5 = [...seen.values()];
|
|
263
|
+
$[3] = colors;
|
|
264
|
+
$[4] = format;
|
|
265
|
+
$[5] = t5;
|
|
266
|
+
} else t5 = $[5];
|
|
267
|
+
const swatches = t5;
|
|
268
|
+
let t6;
|
|
269
|
+
if ($[6] !== defaultValue) {
|
|
270
|
+
t6 = () => defaultValue ?? null;
|
|
271
|
+
$[6] = defaultValue;
|
|
271
272
|
$[7] = t6;
|
|
272
273
|
} else t6 = $[7];
|
|
273
|
-
const
|
|
274
|
+
const [internalValue, setInternalValue] = useState(t6);
|
|
275
|
+
const currentValue = value_0 !== void 0 ? value_0 : internalValue;
|
|
274
276
|
let t7;
|
|
275
|
-
if ($[8] !==
|
|
276
|
-
|
|
277
|
-
|
|
277
|
+
if ($[8] !== currentValue) {
|
|
278
|
+
const selectedColor = parseColor((currentValue ?? "").toString());
|
|
279
|
+
t7 = selectedColor ? toHex(selectedColor) : null;
|
|
280
|
+
$[8] = currentValue;
|
|
278
281
|
$[9] = t7;
|
|
279
282
|
} else t7 = $[9];
|
|
280
|
-
const
|
|
281
|
-
const currentValue = value_0 !== void 0 ? value_0 : internalValue;
|
|
283
|
+
const selectedKey = t7;
|
|
282
284
|
let t8;
|
|
283
|
-
if ($[10] !==
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
$[
|
|
287
|
-
$[
|
|
288
|
-
} else t8 = $[
|
|
289
|
-
const
|
|
285
|
+
if ($[10] !== selectedKey || $[11] !== swatches) {
|
|
286
|
+
t8 = !!selectedKey && !swatches.some((s) => s.key === selectedKey);
|
|
287
|
+
$[10] = selectedKey;
|
|
288
|
+
$[11] = swatches;
|
|
289
|
+
$[12] = t8;
|
|
290
|
+
} else t8 = $[12];
|
|
291
|
+
const isCustom = t8;
|
|
290
292
|
let t9;
|
|
291
|
-
if ($[
|
|
292
|
-
t9 =
|
|
293
|
-
$[12] = selectedKey;
|
|
294
|
-
$[13] = swatches;
|
|
295
|
-
$[14] = t9;
|
|
296
|
-
} else t9 = $[14];
|
|
297
|
-
const isCustom = t9;
|
|
298
|
-
let t10;
|
|
299
|
-
if ($[15] !== onChange_0 || $[16] !== value_0) {
|
|
300
|
-
t10 = (next) => {
|
|
293
|
+
if ($[13] !== onChange_0 || $[14] !== value_0) {
|
|
294
|
+
t9 = (next) => {
|
|
301
295
|
if (value_0 === void 0) setInternalValue(next);
|
|
302
296
|
onChange_0?.(next);
|
|
303
297
|
};
|
|
304
|
-
$[
|
|
305
|
-
$[
|
|
306
|
-
$[
|
|
307
|
-
} else
|
|
308
|
-
const publish = useEvent(
|
|
309
|
-
let
|
|
310
|
-
if ($[
|
|
311
|
-
|
|
298
|
+
$[13] = onChange_0;
|
|
299
|
+
$[14] = value_0;
|
|
300
|
+
$[15] = t9;
|
|
301
|
+
} else t9 = $[15];
|
|
302
|
+
const publish = useEvent(t9);
|
|
303
|
+
let t10;
|
|
304
|
+
if ($[16] !== format || $[17] !== publish) {
|
|
305
|
+
t10 = (nextKey) => {
|
|
312
306
|
const parsed_0 = nextKey == null ? null : parseColor(nextKey);
|
|
313
307
|
publish(parsed_0 ? formatColor(parsed_0, format) : null);
|
|
314
308
|
};
|
|
315
|
-
$[
|
|
316
|
-
$[
|
|
317
|
-
$[
|
|
318
|
-
} else
|
|
319
|
-
const handleChange = useEvent(
|
|
320
|
-
const
|
|
321
|
-
let
|
|
322
|
-
if ($[
|
|
323
|
-
|
|
324
|
-
value:
|
|
309
|
+
$[16] = format;
|
|
310
|
+
$[17] = publish;
|
|
311
|
+
$[18] = t10;
|
|
312
|
+
} else t10 = $[18];
|
|
313
|
+
const handleChange = useEvent(t10);
|
|
314
|
+
const t11 = selectedKey ?? null;
|
|
315
|
+
let t12;
|
|
316
|
+
if ($[19] !== handleChange || $[20] !== isDisabled || $[21] !== isInvalid || $[22] !== props.isReadOnly || $[23] !== t11) {
|
|
317
|
+
t12 = {
|
|
318
|
+
value: t11,
|
|
325
319
|
isDisabled,
|
|
326
320
|
isReadOnly: props.isReadOnly,
|
|
327
321
|
isInvalid,
|
|
328
322
|
onChange: handleChange
|
|
329
323
|
};
|
|
330
|
-
$[
|
|
331
|
-
$[
|
|
332
|
-
$[
|
|
333
|
-
$[
|
|
334
|
-
$[
|
|
335
|
-
$[
|
|
336
|
-
} else
|
|
337
|
-
const state = useRadioGroupState(
|
|
324
|
+
$[19] = handleChange;
|
|
325
|
+
$[20] = isDisabled;
|
|
326
|
+
$[21] = isInvalid;
|
|
327
|
+
$[22] = props.isReadOnly;
|
|
328
|
+
$[23] = t11;
|
|
329
|
+
$[24] = t12;
|
|
330
|
+
} else t12 = $[24];
|
|
331
|
+
const state = useRadioGroupState(t12);
|
|
338
332
|
const domRef = useObjectRef(ref);
|
|
333
|
+
let t13;
|
|
334
|
+
if ($[25] !== ariaLabel || $[26] !== props.label || $[27] !== t) {
|
|
335
|
+
t13 = props.label ? void 0 : ariaLabel ?? t("colorSwatchGroup.colors", "Colors");
|
|
336
|
+
$[25] = ariaLabel;
|
|
337
|
+
$[26] = props.label;
|
|
338
|
+
$[27] = t;
|
|
339
|
+
$[28] = t13;
|
|
340
|
+
} else t13 = $[28];
|
|
339
341
|
let t14;
|
|
340
|
-
if ($[
|
|
341
|
-
t14 =
|
|
342
|
-
$[27] = ariaLabel;
|
|
343
|
-
$[28] = props.label;
|
|
344
|
-
$[29] = t;
|
|
345
|
-
$[30] = t14;
|
|
346
|
-
} else t14 = $[30];
|
|
347
|
-
let t15;
|
|
348
|
-
if ($[31] !== props || $[32] !== t14) {
|
|
349
|
-
t15 = {
|
|
342
|
+
if ($[29] !== props || $[30] !== t13) {
|
|
343
|
+
t14 = {
|
|
350
344
|
...props,
|
|
351
345
|
form: void 0,
|
|
352
|
-
"aria-label":
|
|
346
|
+
"aria-label": t13,
|
|
353
347
|
orientation: "horizontal"
|
|
354
348
|
};
|
|
355
|
-
$[
|
|
356
|
-
$[
|
|
357
|
-
$[
|
|
358
|
-
} else
|
|
359
|
-
const { radioGroupProps, labelProps } = useRadioGroup(
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
t17 = getValidationMods({
|
|
349
|
+
$[29] = props;
|
|
350
|
+
$[30] = t13;
|
|
351
|
+
$[31] = t14;
|
|
352
|
+
} else t14 = $[31];
|
|
353
|
+
const { radioGroupProps, labelProps } = useRadioGroup(t14, state);
|
|
354
|
+
let t15;
|
|
355
|
+
if ($[32] !== isInvalid || $[33] !== isValid) {
|
|
356
|
+
t15 = getValidationMods({
|
|
364
357
|
isInvalid,
|
|
365
358
|
isValid
|
|
366
359
|
});
|
|
367
|
-
$[
|
|
368
|
-
$[
|
|
369
|
-
$[
|
|
370
|
-
} else
|
|
371
|
-
const
|
|
372
|
-
let
|
|
373
|
-
if ($[
|
|
374
|
-
|
|
375
|
-
...
|
|
376
|
-
columns:
|
|
360
|
+
$[32] = isInvalid;
|
|
361
|
+
$[33] = isValid;
|
|
362
|
+
$[34] = t15;
|
|
363
|
+
} else t15 = $[34];
|
|
364
|
+
const t16 = !!columns;
|
|
365
|
+
let t17;
|
|
366
|
+
if ($[35] !== t15 || $[36] !== t16) {
|
|
367
|
+
t17 = {
|
|
368
|
+
...t15,
|
|
369
|
+
columns: t16
|
|
377
370
|
};
|
|
371
|
+
$[35] = t15;
|
|
372
|
+
$[36] = t16;
|
|
378
373
|
$[37] = t17;
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
if ($[42] !== isDisabled || $[43] !== size || $[44] !== state || $[45] !== swatchStyles || $[46] !== swatches) {
|
|
390
|
-
t21 = swatches.map((swatch) => /* @__PURE__ */ jsx(Swatch, {
|
|
374
|
+
} else t17 = $[37];
|
|
375
|
+
let t18;
|
|
376
|
+
if ($[38] !== columns) {
|
|
377
|
+
t18 = columns ? { $columns: columns } : void 0;
|
|
378
|
+
$[38] = columns;
|
|
379
|
+
$[39] = t18;
|
|
380
|
+
} else t18 = $[39];
|
|
381
|
+
let t19;
|
|
382
|
+
if ($[40] !== isDisabled || $[41] !== size || $[42] !== state || $[43] !== swatchStyles || $[44] !== swatches) {
|
|
383
|
+
t19 = swatches.map((swatch) => /* @__PURE__ */ jsx(Swatch, {
|
|
391
384
|
colorKey: swatch.key,
|
|
392
385
|
label: swatch.label,
|
|
393
386
|
state,
|
|
@@ -395,26 +388,26 @@ const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(allProps, ref) {
|
|
|
395
388
|
size,
|
|
396
389
|
styles: swatchStyles
|
|
397
390
|
}, swatch.key));
|
|
398
|
-
$[
|
|
399
|
-
$[
|
|
400
|
-
$[
|
|
401
|
-
$[
|
|
402
|
-
$[
|
|
403
|
-
$[
|
|
404
|
-
} else
|
|
405
|
-
let
|
|
406
|
-
if ($[
|
|
407
|
-
|
|
391
|
+
$[40] = isDisabled;
|
|
392
|
+
$[41] = size;
|
|
393
|
+
$[42] = state;
|
|
394
|
+
$[43] = swatchStyles;
|
|
395
|
+
$[44] = swatches;
|
|
396
|
+
$[45] = t19;
|
|
397
|
+
} else t19 = $[45];
|
|
398
|
+
let t20;
|
|
399
|
+
if ($[46] !== radioGroupProps || $[47] !== t19) {
|
|
400
|
+
t20 = /* @__PURE__ */ jsx(RadiosElement, {
|
|
408
401
|
...radioGroupProps,
|
|
409
|
-
children:
|
|
402
|
+
children: t19
|
|
410
403
|
});
|
|
411
|
-
$[
|
|
412
|
-
$[
|
|
413
|
-
$[
|
|
414
|
-
} else
|
|
415
|
-
let
|
|
416
|
-
if ($[
|
|
417
|
-
|
|
404
|
+
$[46] = radioGroupProps;
|
|
405
|
+
$[47] = t19;
|
|
406
|
+
$[48] = t20;
|
|
407
|
+
} else t20 = $[48];
|
|
408
|
+
let t21;
|
|
409
|
+
if ($[49] !== currentValue || $[50] !== format || $[51] !== isCustom || $[52] !== isDisabled || $[53] !== props.isReadOnly || $[54] !== publish || $[55] !== showCustom || $[56] !== size || $[57] !== t) {
|
|
410
|
+
t21 = showCustom ? /* @__PURE__ */ jsx(ColorPicker, {
|
|
418
411
|
isBare: true,
|
|
419
412
|
"aria-label": t("colorSwatchGroup.customColor", "Custom color"),
|
|
420
413
|
qa: "ColorSwatchGroupCustom",
|
|
@@ -429,52 +422,31 @@ const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(allProps, ref) {
|
|
|
429
422
|
onChange: publish,
|
|
430
423
|
children: null
|
|
431
424
|
}) : null;
|
|
432
|
-
$[
|
|
433
|
-
$[
|
|
434
|
-
$[
|
|
435
|
-
$[
|
|
436
|
-
$[
|
|
437
|
-
$[
|
|
438
|
-
$[
|
|
439
|
-
$[
|
|
440
|
-
$[
|
|
441
|
-
$[
|
|
442
|
-
} else
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
$
|
|
456
|
-
|
|
457
|
-
$[63] = styles;
|
|
458
|
-
$[64] = t16;
|
|
459
|
-
$[65] = t19;
|
|
460
|
-
$[66] = t20;
|
|
461
|
-
$[67] = t22;
|
|
462
|
-
$[68] = t23;
|
|
463
|
-
$[69] = t24;
|
|
464
|
-
} else t24 = $[69];
|
|
465
|
-
const group = t24;
|
|
466
|
-
let t25;
|
|
467
|
-
if ($[70] !== group || $[71] !== labelProps || $[72] !== props) {
|
|
468
|
-
t25 = wrapWithField(group, {
|
|
469
|
-
...props,
|
|
470
|
-
labelProps: mergeProps$1(props.labelProps, labelProps)
|
|
471
|
-
});
|
|
472
|
-
$[70] = group;
|
|
473
|
-
$[71] = labelProps;
|
|
474
|
-
$[72] = props;
|
|
475
|
-
$[73] = t25;
|
|
476
|
-
} else t25 = $[73];
|
|
477
|
-
return t25;
|
|
425
|
+
$[49] = currentValue;
|
|
426
|
+
$[50] = format;
|
|
427
|
+
$[51] = isCustom;
|
|
428
|
+
$[52] = isDisabled;
|
|
429
|
+
$[53] = props.isReadOnly;
|
|
430
|
+
$[54] = publish;
|
|
431
|
+
$[55] = showCustom;
|
|
432
|
+
$[56] = size;
|
|
433
|
+
$[57] = t;
|
|
434
|
+
$[58] = t21;
|
|
435
|
+
} else t21 = $[58];
|
|
436
|
+
return wrapWithField(/* @__PURE__ */ jsxs(GroupElement, {
|
|
437
|
+
ref: domRef,
|
|
438
|
+
qa: qa || "ColorSwatchGroup",
|
|
439
|
+
"data-size": size,
|
|
440
|
+
"data-input-type": "colorswatchgroup",
|
|
441
|
+
styles,
|
|
442
|
+
mods: t17,
|
|
443
|
+
tokens: t18,
|
|
444
|
+
children: [t20, t21]
|
|
445
|
+
}), {
|
|
446
|
+
...props,
|
|
447
|
+
...field,
|
|
448
|
+
labelProps: mergeProps$1(props.labelProps, labelProps)
|
|
449
|
+
});
|
|
478
450
|
});
|
|
479
451
|
ColorSwatchGroup.cubeInputType = "Picker";
|
|
480
452
|
function _temp(t0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorSwatchGroup.js","names":["useObjectRef","BaseProps","BLOCK_STYLES","BlockStyleProps","mergeStyles","OUTER_STYLES","OuterStyleProps","Styles","tasty","ForwardedRef","forwardRef","useMemo","useRef","useState","useRadio","useRadioGroup","useRadioGroupState","useEvent","useI18n","FieldBaseProps","mergeProps","useFocus","extractStyles","getValidationMods","useFieldProps","wrapWithField","HiddenInput","ColorFormat","formatColor","parseColor","toHex","useIsInsideColorPopover","ColorPicker","RadioGroupState","CubeColorSwatchItem","color","label","SELECTED_RING","SWATCH_PX","Record","small","medium","large","CUSTOM_TRIGGER_STYLES","width","height","padding","radius","border","position","CUSTOM_SWATCH_STYLES","inset","CUSTOM_SWATCH_SELECTED_STYLES","shadow","GroupElement","qa","styles","display","columns","flow","gap","placeItems","gridColumns","RadiosElement","SwatchElement","as","cursor","disabled","fill","opacity","selected","outline","focused","transition","CubeColorSwatchGroupProps","colors","value","defaultValue","onChange","format","allowCustom","size","swatchStyles","SwatchProps","colorKey","state","isDisabled","mods","Swatch","t0","$","_c","inputRef","t1","inputProps","isSelected","isRadioDisabled","isFocused","focusProps","t2","t3","t4","t5","button","t6","t7","ColorSwatchGroup","allProps","ref","t","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","props","value_0","onChange_0","isInvalid","isValid","ariaLabel","undefined","isInsidePopover","showCustom","seen","Map","entry","raw","parsed","key","has","set","values","swatches","internalValue","setInternalValue","currentValue","t8","selectedColor","toString","selectedKey","t9","some","s","isCustom","t10","next","publish","t11","nextKey","parsed_0","handleChange","t12","t13","isReadOnly","domRef","t14","t15","form","orientation","radioGroupProps","labelProps","t16","t17","t18","t19","t20","$columns","t21","map","swatch","t22","t23","t24","group","t25","cubeInputType","_c","useFocus","mergeProps"],"sources":["../../../../src/components/fields/ColorSwatchGroup/ColorSwatchGroup.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport {\n BaseProps,\n BLOCK_STYLES,\n BlockStyleProps,\n mergeStyles,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, useMemo, useRef, useState } from 'react';\nimport { useRadio, useRadioGroup } from 'react-aria';\nimport { useRadioGroupState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport { getValidationMods, useFieldProps, wrapWithField } from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\nimport { ColorFormat, formatColor, parseColor, toHex } from '../color/color';\nimport { useIsInsideColorPopover } from '../color/context';\nimport { ColorPicker } from '../ColorPicker';\n\nimport type { RadioGroupState } from 'react-stately';\n\n/** A swatch: a color, and optionally a name to announce instead of the color. */\nexport type CubeColorSwatchItem = string | { color: string; label?: string };\n\n/**\n * Two rings drawn inside the swatch, as React Aria marks selection. Outer ring\n * first: earlier shadows paint over later ones, so this reads as two ring widths\n * of `#surface-text` at the edge and two of `#surface` within it. Two tones that\n * flip with the scheme stay visible against any color the swatch holds.\n */\nconst SELECTED_RING =\n 'inset 0 0 0 (2 * $ring-width) #surface-text, inset 0 0 0 (4 * $ring-width) #surface';\n\n/** The swatch edge in px, per size. `Item` takes an exact number. */\nconst SWATCH_PX: Record<string, number> = {\n small: 16,\n medium: 20,\n large: 24,\n};\n\n/**\n * The trailing picker is a button wrapping a swatch, which would otherwise read\n * as a box inside a box. Stripping its chrome leaves just the swatch, so it\n * sits in the row as one of them.\n */\nconst CUSTOM_TRIGGER_STYLES: Styles = {\n // `size` sets the control's height; the box is pinned here as well so a flex\n // row cannot let the button size itself to its content instead.\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n padding: 0,\n radius: '1r',\n border: 0,\n position: 'relative',\n};\n\n/**\n * The swatch is docked over the whole button rather than placed inside it.\n * `Item` lays its icon out in a grid that reserves room for a label even when\n * there is none, which left the swatch a pixel off centre.\n */\nconst CUSTOM_SWATCH_STYLES: Styles = {\n position: 'absolute',\n inset: 0,\n width: 'auto',\n height: 'auto',\n radius: '1r',\n};\n\n/**\n * The ring goes on the swatch, not on the button around it: an inset shadow\n * paints under child content, and the swatch covers the button edge to edge.\n */\nconst CUSTOM_SWATCH_SELECTED_STYLES = mergeStyles(CUSTOM_SWATCH_STYLES, {\n shadow: SELECTED_RING,\n});\n\nconst GroupElement = tasty({\n qa: 'ColorSwatchGroup',\n styles: {\n // Wrapping is the better default: it is a single row wherever there is\n // room, and folds instead of overflowing where there is not. A fixed\n // `columns` switches to a grid, sized to the swatches rather than to the\n // container — `1fr` tracks would stretch them apart.\n display: {\n '': 'flex',\n columns: 'grid',\n },\n flow: {\n '': 'row wrap',\n columns: 'row',\n },\n gap: '.5x',\n placeItems: {\n '': 'center start',\n columns: 'stretch',\n },\n width: {\n '': 'auto',\n columns: 'max-content',\n },\n gridColumns: 'repeat($columns, max-content)',\n\n // 20px, 16px and 24px — 1x is 8px.\n '$swatch-size': {\n '': '2.5x',\n 'size=small': '2x',\n 'size=large': '3x',\n },\n },\n});\n\n/**\n * Only the swatches belong to the radiogroup. The custom picker is a button,\n * and inside `role=\"radiogroup\"` it both misreports what the palette holds and\n * hands arrow keys to React Aria's radio walker — pressing one while the picker\n * is focused jumps into a swatch and changes the color. The box is dropped so\n * the swatches remain direct children of the group's own layout.\n */\nconst RadiosElement = tasty({\n styles: { display: 'contents' },\n});\n\nconst SwatchElement = tasty({\n as: 'label',\n qa: 'ColorSwatchOption',\n styles: {\n display: 'grid',\n placeItems: 'stretch',\n position: 'relative',\n radius: '1r',\n cursor: {\n '': 'pointer',\n disabled: 'default',\n },\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n fill: '(#color-swatch, #clear)',\n opacity: {\n '': 1,\n disabled: '$disabled-opacity',\n },\n // A ring at one border-width's distance, so the color area stays whole —\n // the inner ring is the surface showing through as the gap. `outline` is\n // deliberately left to the focus ring.\n shadow: {\n '': 'inset 0 0 0 1bw #dark.15',\n selected: SELECTED_RING,\n },\n // The outline offset keeps the ring clear of the 4px gap to its neighbours.\n outline: {\n '': '(2 * $ring-width) #focus.0 / $outline-offset',\n focused: '(2 * $ring-width) #focus / $outline-offset',\n },\n transition: 'theme',\n },\n});\n\nexport interface CubeColorSwatchGroupProps\n extends\n BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n FieldBaseProps<string | null | undefined> {\n /** The colors to offer. Duplicates of the same color are dropped. */\n colors?: CubeColorSwatchItem[];\n /** The selected color (controlled). */\n value?: string | null;\n /** The selected color (uncontrolled). */\n defaultValue?: string | null;\n /** Called with the chosen color, written in `format`. */\n onChange?: (value: string | null) => void;\n /** Notation the value is written in. */\n format?: ColorFormat;\n /** How many swatches per row. Defaults to a single row. */\n columns?: number;\n /**\n * Append a `ColorPicker` for colors outside the set. Ignored inside a color\n * popover, which is where that picker would otherwise recurse.\n */\n allowCustom?: boolean;\n /** The size of each swatch. */\n size?: 'small' | 'medium' | 'large' | (string & {});\n styles?: Styles;\n /** Styles of an individual swatch. */\n swatchStyles?: Styles;\n 'aria-label'?: string;\n}\n\ninterface SwatchProps {\n colorKey: string;\n label: string;\n state: RadioGroupState;\n isDisabled?: boolean;\n size?: string;\n styles?: Styles;\n mods?: Record<string, boolean | undefined>;\n}\n\nfunction Swatch({\n colorKey,\n label,\n state,\n isDisabled,\n size,\n styles,\n mods,\n}: SwatchProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const {\n inputProps,\n isSelected,\n isDisabled: isRadioDisabled,\n } = useRadio(\n { value: colorKey, 'aria-label': label, isDisabled },\n state,\n inputRef,\n );\n // `useRadio` reports selection but not focus, and the swatch is the only\n // thing a keyboard user can see — without this the ring never appears.\n const { isFocused, focusProps } = useFocus(true);\n\n return (\n <SwatchElement\n data-size={size}\n mods={{\n selected: isSelected,\n disabled: isRadioDisabled,\n focused: isFocused,\n ...mods,\n }}\n styles={styles}\n tokens={{ '#color-swatch': colorKey }}\n >\n <HiddenInput\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n qa=\"ColorSwatchInput\"\n mods={{ button: true, disabled: isRadioDisabled }}\n />\n </SwatchElement>\n );\n}\n\n/**\n * A grid of color swatches, one of which can be selected — the palette half of\n * choosing a color, where `ColorPicker` is the freeform half.\n *\n * Swatches are keyed by their canonical hex, so the same color written two ways\n * collapses into one entry. Equivalent colors would otherwise make selection\n * ambiguous.\n */\nexport const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(\n allProps: CubeColorSwatchGroupProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n const props = useFieldProps(allProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value as string | null | undefined,\n onChange,\n }),\n });\n\n const {\n qa,\n colors = [],\n value,\n defaultValue,\n onChange,\n format = 'hex',\n columns,\n allowCustom,\n size = 'medium',\n isDisabled,\n isInvalid,\n isValid,\n swatchStyles,\n 'aria-label': ariaLabel,\n } = props;\n\n const styles = extractStyles(props, [...OUTER_STYLES, ...BLOCK_STYLES]);\n const isInsidePopover = useIsInsideColorPopover();\n // A custom picker inside a color popover would open a popover of its own.\n const showCustom = allowCustom && !isInsidePopover;\n\n /** Keyed by canonical hex so the same color written two ways is one swatch. */\n const swatches = useMemo(() => {\n const seen = new Map<string, { key: string; label: string }>();\n\n for (const entry of colors) {\n const raw = typeof entry === 'string' ? entry : entry.color;\n const parsed = parseColor(raw);\n\n if (!parsed) continue;\n\n const key = toHex(parsed);\n\n if (seen.has(key)) continue;\n\n seen.set(key, {\n key,\n label:\n (typeof entry === 'string' ? undefined : entry.label) ??\n formatColor(parsed, format),\n });\n }\n\n return [...seen.values()];\n }, [colors, format]);\n\n const [internalValue, setInternalValue] = useState<string | null>(\n () => defaultValue ?? null,\n );\n const currentValue = value !== undefined ? value : internalValue;\n\n const selectedColor = parseColor((currentValue ?? '').toString());\n const selectedKey = selectedColor ? toHex(selectedColor) : null;\n const isCustom =\n !!selectedKey && !swatches.some((s) => s.key === selectedKey);\n\n const publish = useEvent((next: string | null) => {\n if (value === undefined) setInternalValue(next);\n\n onChange?.(next);\n });\n\n // `null` arrives from React Aria's native form reset of a group that\n // mounted with no value.\n const handleChange = useEvent((nextKey: string | null) => {\n const parsed = nextKey == null ? null : parseColor(nextKey);\n\n publish(parsed ? formatColor(parsed, format) : null);\n });\n\n const state = useRadioGroupState({\n value: selectedKey ?? null,\n isDisabled,\n isReadOnly: props.isReadOnly,\n // Becomes the group's `aria-invalid`, which is what says the field is\n // invalid to a screen reader; the red outline says it only to the eye.\n isInvalid,\n onChange: handleChange,\n });\n\n // `useFocusableRef` wants the ref of a real focusable control to forward to,\n // and a group of radios has no single one — `RadioGroup` takes the same\n // approach for the same reason.\n const domRef = useObjectRef(ref);\n const { radioGroupProps, labelProps } = useRadioGroup(\n {\n ...props,\n // React Aria hands `form` to every swatch's input as the id of its\n // `<form>`, so the form instance would render as `form=\"[object Object]\"`.\n form: undefined,\n // Only name the group here when nothing else does: an `aria-label` set\n // unconditionally would outrank the visible label React Aria wires up.\n 'aria-label': props.label\n ? undefined\n : (ariaLabel ?? t('colorSwatchGroup.colors', 'Colors')),\n orientation: 'horizontal',\n },\n state,\n );\n\n const group = (\n <GroupElement\n ref={domRef}\n qa={qa || 'ColorSwatchGroup'}\n data-size={size}\n data-input-type=\"colorswatchgroup\"\n styles={styles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n columns: !!columns,\n }}\n tokens={columns ? { $columns: columns } : undefined}\n >\n <RadiosElement {...radioGroupProps}>\n {swatches.map((swatch) => (\n <Swatch\n key={swatch.key}\n colorKey={swatch.key}\n label={swatch.label}\n state={state}\n isDisabled={isDisabled}\n size={size}\n styles={swatchStyles}\n />\n ))}\n </RadiosElement>\n {showCustom ? (\n <ColorPicker\n isBare\n aria-label={t('colorSwatchGroup.customColor', 'Custom color')}\n qa=\"ColorSwatchGroupCustom\"\n format={format}\n type=\"clear\"\n size={SWATCH_PX[size] ?? SWATCH_PX.medium}\n value={isCustom ? (currentValue ?? null) : null}\n isDisabled={isDisabled}\n isReadOnly={props.isReadOnly}\n triggerStyles={CUSTOM_TRIGGER_STYLES}\n swatchStyles={\n isCustom ? CUSTOM_SWATCH_SELECTED_STYLES : CUSTOM_SWATCH_STYLES\n }\n onChange={publish}\n >\n {null}\n </ColorPicker>\n ) : null}\n </GroupElement>\n );\n\n return wrapWithField(group, {\n ...props,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n});\n\n(ColorSwatchGroup as any).cubeInputType = 'Picker';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColorSwatchGroup.js","names":["useObjectRef","BaseProps","mergeStyles","Styles","tasty","ForwardedRef","forwardRef","useMemo","useRef","useState","useRadio","useRadioGroup","useRadioGroupState","useEvent","useI18n","FieldBaseProps","mergeProps","useFocus","getValidationMods","useFieldProps","wrapWithField","FieldLayoutStyleProps","splitFieldLayout","HiddenInput","ColorFormat","formatColor","parseColor","toHex","useIsInsideColorPopover","ColorPicker","RadioGroupState","CubeColorSwatchItem","color","label","SELECTED_RING","SWATCH_PX","Record","small","medium","large","CUSTOM_TRIGGER_STYLES","width","height","padding","radius","border","position","CUSTOM_SWATCH_STYLES","inset","CUSTOM_SWATCH_SELECTED_STYLES","shadow","GroupElement","qa","styles","display","columns","flow","gap","placeItems","gridColumns","RadiosElement","SwatchElement","as","cursor","disabled","fill","opacity","selected","outline","focused","transition","CubeColorSwatchGroupProps","colors","value","defaultValue","onChange","format","allowCustom","size","swatchStyles","SwatchProps","colorKey","state","isDisabled","mods","Swatch","t0","$","_c","inputRef","t1","inputProps","isSelected","isRadioDisabled","isFocused","focusProps","t2","t3","t4","t5","button","t6","t7","ColorSwatchGroup","allProps","ref","t","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","props","value_0","onChange_0","isInvalid","isValid","ariaLabel","undefined","field","isInsidePopover","showCustom","seen","Map","entry","raw","parsed","key","has","set","values","swatches","internalValue","setInternalValue","currentValue","selectedColor","toString","selectedKey","t8","some","s","isCustom","t9","next","publish","t10","nextKey","parsed_0","handleChange","t11","t12","isReadOnly","domRef","t13","t14","form","orientation","radioGroupProps","labelProps","t15","t16","t17","t18","$columns","t19","map","swatch","t20","t21","group","cubeInputType","_c","useFocus","mergeProps"],"sources":["../../../../src/components/fields/ColorSwatchGroup/ColorSwatchGroup.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { BaseProps, mergeStyles, Styles, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, useMemo, useRef, useState } from 'react';\nimport { useRadio, useRadioGroup } from 'react-aria';\nimport { useRadioGroupState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { getValidationMods, useFieldProps, wrapWithField } from '../../form';\nimport {\n FieldLayoutStyleProps,\n splitFieldLayout,\n} from '../../form/field-layout';\nimport { HiddenInput } from '../../HiddenInput';\nimport { ColorFormat, formatColor, parseColor, toHex } from '../color/color';\nimport { useIsInsideColorPopover } from '../color/context';\nimport { ColorPicker } from '../ColorPicker';\n\nimport type { RadioGroupState } from 'react-stately';\n\n/** A swatch: a color, and optionally a name to announce instead of the color. */\nexport type CubeColorSwatchItem = string | { color: string; label?: string };\n\n/**\n * Two rings drawn inside the swatch, as React Aria marks selection. Outer ring\n * first: earlier shadows paint over later ones, so this reads as two ring widths\n * of `#surface-text` at the edge and two of `#surface` within it. Two tones that\n * flip with the scheme stay visible against any color the swatch holds.\n */\nconst SELECTED_RING =\n 'inset 0 0 0 (2 * $ring-width) #surface-text, inset 0 0 0 (4 * $ring-width) #surface';\n\n/** The swatch edge in px, per size. `Item` takes an exact number. */\nconst SWATCH_PX: Record<string, number> = {\n small: 16,\n medium: 20,\n large: 24,\n};\n\n/**\n * The trailing picker is a button wrapping a swatch, which would otherwise read\n * as a box inside a box. Stripping its chrome leaves just the swatch, so it\n * sits in the row as one of them.\n */\nconst CUSTOM_TRIGGER_STYLES: Styles = {\n // `size` sets the control's height; the box is pinned here as well so a flex\n // row cannot let the button size itself to its content instead.\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n padding: 0,\n radius: '1r',\n border: 0,\n position: 'relative',\n};\n\n/**\n * The swatch is docked over the whole button rather than placed inside it.\n * `Item` lays its icon out in a grid that reserves room for a label even when\n * there is none, which left the swatch a pixel off centre.\n */\nconst CUSTOM_SWATCH_STYLES: Styles = {\n position: 'absolute',\n inset: 0,\n width: 'auto',\n height: 'auto',\n radius: '1r',\n};\n\n/**\n * The ring goes on the swatch, not on the button around it: an inset shadow\n * paints under child content, and the swatch covers the button edge to edge.\n */\nconst CUSTOM_SWATCH_SELECTED_STYLES = mergeStyles(CUSTOM_SWATCH_STYLES, {\n shadow: SELECTED_RING,\n});\n\nconst GroupElement = tasty({\n qa: 'ColorSwatchGroup',\n styles: {\n // Wrapping is the better default: it is a single row wherever there is\n // room, and folds instead of overflowing where there is not. A fixed\n // `columns` switches to a grid, sized to the swatches rather than to the\n // container — `1fr` tracks would stretch them apart.\n display: {\n '': 'flex',\n columns: 'grid',\n },\n flow: {\n '': 'row wrap',\n columns: 'row',\n },\n gap: '.5x',\n placeItems: {\n '': 'center start',\n columns: 'stretch',\n },\n width: {\n '': 'auto',\n columns: 'max-content',\n },\n gridColumns: 'repeat($columns, max-content)',\n\n // 20px, 16px and 24px — 1x is 8px.\n '$swatch-size': {\n '': '2.5x',\n 'size=small': '2x',\n 'size=large': '3x',\n },\n },\n});\n\n/**\n * Only the swatches belong to the radiogroup. The custom picker is a button,\n * and inside `role=\"radiogroup\"` it both misreports what the palette holds and\n * hands arrow keys to React Aria's radio walker — pressing one while the picker\n * is focused jumps into a swatch and changes the color. The box is dropped so\n * the swatches remain direct children of the group's own layout.\n */\nconst RadiosElement = tasty({\n styles: { display: 'contents' },\n});\n\nconst SwatchElement = tasty({\n as: 'label',\n qa: 'ColorSwatchOption',\n styles: {\n display: 'grid',\n placeItems: 'stretch',\n position: 'relative',\n radius: '1r',\n cursor: {\n '': 'pointer',\n disabled: 'default',\n },\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n fill: '(#color-swatch, #clear)',\n opacity: {\n '': 1,\n disabled: '$disabled-opacity',\n },\n // A ring at one border-width's distance, so the color area stays whole —\n // the inner ring is the surface showing through as the gap. `outline` is\n // deliberately left to the focus ring.\n shadow: {\n '': 'inset 0 0 0 1bw #dark.15',\n selected: SELECTED_RING,\n },\n // The outline offset keeps the ring clear of the 4px gap to its neighbours.\n outline: {\n '': '(2 * $ring-width) #focus.0 / $outline-offset',\n focused: '(2 * $ring-width) #focus / $outline-offset',\n },\n transition: 'theme',\n },\n});\n\nexport interface CubeColorSwatchGroupProps\n extends\n BaseProps,\n FieldLayoutStyleProps,\n FieldBaseProps<string | null | undefined> {\n /** The colors to offer. Duplicates of the same color are dropped. */\n colors?: CubeColorSwatchItem[];\n /** The selected color (controlled). */\n value?: string | null;\n /** The selected color (uncontrolled). */\n defaultValue?: string | null;\n /** Called with the chosen color, written in `format`. */\n onChange?: (value: string | null) => void;\n /** Notation the value is written in. */\n format?: ColorFormat;\n /** How many swatches per row. Defaults to a single row. */\n columns?: number;\n /**\n * Append a `ColorPicker` for colors outside the set. Ignored inside a color\n * popover, which is where that picker would otherwise recurse.\n */\n allowCustom?: boolean;\n /** The size of each swatch. */\n size?: 'small' | 'medium' | 'large' | (string & {});\n styles?: Styles;\n /** Styles of an individual swatch. */\n swatchStyles?: Styles;\n 'aria-label'?: string;\n}\n\ninterface SwatchProps {\n colorKey: string;\n label: string;\n state: RadioGroupState;\n isDisabled?: boolean;\n size?: string;\n styles?: Styles;\n mods?: Record<string, boolean | undefined>;\n}\n\nfunction Swatch({\n colorKey,\n label,\n state,\n isDisabled,\n size,\n styles,\n mods,\n}: SwatchProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const {\n inputProps,\n isSelected,\n isDisabled: isRadioDisabled,\n } = useRadio(\n { value: colorKey, 'aria-label': label, isDisabled },\n state,\n inputRef,\n );\n // `useRadio` reports selection but not focus, and the swatch is the only\n // thing a keyboard user can see — without this the ring never appears.\n const { isFocused, focusProps } = useFocus(true);\n\n return (\n <SwatchElement\n data-size={size}\n mods={{\n selected: isSelected,\n disabled: isRadioDisabled,\n focused: isFocused,\n ...mods,\n }}\n styles={styles}\n tokens={{ '#color-swatch': colorKey }}\n >\n <HiddenInput\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n qa=\"ColorSwatchInput\"\n mods={{ button: true, disabled: isRadioDisabled }}\n />\n </SwatchElement>\n );\n}\n\n/**\n * A grid of color swatches, one of which can be selected — the palette half of\n * choosing a color, where `ColorPicker` is the freeform half.\n *\n * Swatches are keyed by their canonical hex, so the same color written two ways\n * collapses into one entry. Equivalent colors would otherwise make selection\n * ambiguous.\n */\nexport const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(\n allProps: CubeColorSwatchGroupProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n const props = useFieldProps(allProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value as string | null | undefined,\n onChange,\n }),\n });\n\n const {\n qa,\n colors = [],\n value,\n defaultValue,\n onChange,\n format = 'hex',\n columns,\n allowCustom,\n size = 'medium',\n isDisabled,\n isInvalid,\n isValid,\n swatchStyles,\n 'aria-label': ariaLabel,\n } = props;\n\n const { styles, field } = splitFieldLayout(props);\n const isInsidePopover = useIsInsideColorPopover();\n // A custom picker inside a color popover would open a popover of its own.\n const showCustom = allowCustom && !isInsidePopover;\n\n /** Keyed by canonical hex so the same color written two ways is one swatch. */\n const swatches = useMemo(() => {\n const seen = new Map<string, { key: string; label: string }>();\n\n for (const entry of colors) {\n const raw = typeof entry === 'string' ? entry : entry.color;\n const parsed = parseColor(raw);\n\n if (!parsed) continue;\n\n const key = toHex(parsed);\n\n if (seen.has(key)) continue;\n\n seen.set(key, {\n key,\n label:\n (typeof entry === 'string' ? undefined : entry.label) ??\n formatColor(parsed, format),\n });\n }\n\n return [...seen.values()];\n }, [colors, format]);\n\n const [internalValue, setInternalValue] = useState<string | null>(\n () => defaultValue ?? null,\n );\n const currentValue = value !== undefined ? value : internalValue;\n\n const selectedColor = parseColor((currentValue ?? '').toString());\n const selectedKey = selectedColor ? toHex(selectedColor) : null;\n const isCustom =\n !!selectedKey && !swatches.some((s) => s.key === selectedKey);\n\n const publish = useEvent((next: string | null) => {\n if (value === undefined) setInternalValue(next);\n\n onChange?.(next);\n });\n\n // `null` arrives from React Aria's native form reset of a group that\n // mounted with no value.\n const handleChange = useEvent((nextKey: string | null) => {\n const parsed = nextKey == null ? null : parseColor(nextKey);\n\n publish(parsed ? formatColor(parsed, format) : null);\n });\n\n const state = useRadioGroupState({\n value: selectedKey ?? null,\n isDisabled,\n isReadOnly: props.isReadOnly,\n // Becomes the group's `aria-invalid`, which is what says the field is\n // invalid to a screen reader; the red outline says it only to the eye.\n isInvalid,\n onChange: handleChange,\n });\n\n // `useFocusableRef` wants the ref of a real focusable control to forward to,\n // and a group of radios has no single one — `RadioGroup` takes the same\n // approach for the same reason.\n const domRef = useObjectRef(ref);\n const { radioGroupProps, labelProps } = useRadioGroup(\n {\n ...props,\n // React Aria hands `form` to every swatch's input as the id of its\n // `<form>`, so the form instance would render as `form=\"[object Object]\"`.\n form: undefined,\n // Only name the group here when nothing else does: an `aria-label` set\n // unconditionally would outrank the visible label React Aria wires up.\n 'aria-label': props.label\n ? undefined\n : (ariaLabel ?? t('colorSwatchGroup.colors', 'Colors')),\n orientation: 'horizontal',\n },\n state,\n );\n\n const group = (\n <GroupElement\n ref={domRef}\n qa={qa || 'ColorSwatchGroup'}\n data-size={size}\n data-input-type=\"colorswatchgroup\"\n styles={styles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n columns: !!columns,\n }}\n tokens={columns ? { $columns: columns } : undefined}\n >\n <RadiosElement {...radioGroupProps}>\n {swatches.map((swatch) => (\n <Swatch\n key={swatch.key}\n colorKey={swatch.key}\n label={swatch.label}\n state={state}\n isDisabled={isDisabled}\n size={size}\n styles={swatchStyles}\n />\n ))}\n </RadiosElement>\n {showCustom ? (\n <ColorPicker\n isBare\n aria-label={t('colorSwatchGroup.customColor', 'Custom color')}\n qa=\"ColorSwatchGroupCustom\"\n format={format}\n type=\"clear\"\n size={SWATCH_PX[size] ?? SWATCH_PX.medium}\n value={isCustom ? (currentValue ?? null) : null}\n isDisabled={isDisabled}\n isReadOnly={props.isReadOnly}\n triggerStyles={CUSTOM_TRIGGER_STYLES}\n swatchStyles={\n isCustom ? CUSTOM_SWATCH_SELECTED_STYLES : CUSTOM_SWATCH_STYLES\n }\n onChange={publish}\n >\n {null}\n </ColorPicker>\n ) : null}\n </GroupElement>\n );\n\n return wrapWithField(group, {\n ...props,\n ...field,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n});\n\n(ColorSwatchGroup as any).cubeInputType = 'Picker';\n"],"mappings":"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"}
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
import { FieldBaseProps, TextFieldKeyboardProps } from "../../../shared/form.js";
|
|
3
3
|
import "../../../shared/index.js";
|
|
4
4
|
import { CollectionItem as _CollectionItem } from "../../CollectionItem.js";
|
|
5
|
-
import {
|
|
5
|
+
import { FieldLayoutStyleProps } from "../../form/field-layout.js";
|
|
6
|
+
import { BasePropsWithoutChildren, Styles } from "@tenphi/tasty";
|
|
6
7
|
import { ForwardedRef, ReactElement, ReactNode, RefObject } from "react";
|
|
7
8
|
import { Section } from "react-stately";
|
|
8
9
|
import { FocusableRef, Key as Key$1 } from "@react-types/shared";
|
|
9
10
|
//#region src/components/fields/ComboBox/ComboBox.d.ts
|
|
10
11
|
type FilterFn = (textValue: string, inputValue: string) => boolean;
|
|
11
12
|
export type PopoverTriggerAction = 'focus' | 'input' | 'manual';
|
|
12
|
-
export interface CubeComboBoxProps<T> extends BasePropsWithoutChildren,
|
|
13
|
+
export interface CubeComboBoxProps<T> extends BasePropsWithoutChildren, FieldLayoutStyleProps, FieldBaseProps<string | null | undefined> {
|
|
13
14
|
/** The selected key in controlled mode */
|
|
14
15
|
selectedKey?: string | null;
|
|
15
16
|
/** The default selected key in uncontrolled mode */
|
|
@@ -37,8 +38,9 @@ export interface CubeComboBoxProps<T> extends BasePropsWithoutChildren, BaseStyl
|
|
|
37
38
|
* key handling. Receives React Aria's keyboard event: `e.preventDefault()`
|
|
38
39
|
* skips the built-in handling for the key. `Escape` and `Tab` go on to
|
|
39
40
|
* ancestors, such as a surrounding dialog, unless ComboBox acts on them
|
|
40
|
-
* (`Escape` closing the list or clearing the value)
|
|
41
|
-
* input unless the handler calls
|
|
41
|
+
* (`Escape` closing the list or clearing the value) or the handler prevents
|
|
42
|
+
* them; other keys stop at the input unless the handler calls
|
|
43
|
+
* `e.continuePropagation()`.
|
|
42
44
|
*/
|
|
43
45
|
onKeyDown?: TextFieldKeyboardProps['onKeyDown'];
|
|
44
46
|
/**
|