@cube-dev/ui-kit 0.201.0 → 0.203.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 +56 -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.js +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 +233 -178
- 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/index.d.ts +2 -2
- package/dist/components/data/ItemTable/item-table-sections.js +68 -0
- package/dist/components/data/ItemTable/item-table-sections.js.map +1 -0
- package/dist/components/data/ItemTable/types.d.ts +12 -0
- 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 +31 -27
- package/dist/components/data/ItemTable/use-item-table-selection.js.map +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 +1 -1
- package/dist/components/data/TableBase/TableView.d.ts +1 -0
- package/dist/components/data/TableBase/TableView.js +86 -21
- 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 +25 -1
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-body-sections.d.ts +3 -0
- package/dist/components/data/TableBase/table-body-sections.js +30 -0
- package/dist/components/data/TableBase/table-body-sections.js.map +1 -0
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.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/data/index.d.ts +2 -2
- 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 +7 -5
- package/dist/components/fields/ComboBox/ComboBox.js +704 -639
- 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 +6 -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 +84 -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 +116 -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 +288 -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 -6
- 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 +71 -100
- 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 +40 -21
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +52 -37
- package/dist/components/fields/NumberInput/StepButton.js.map +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 -3
- 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 +25 -4
- package/dist/components/fields/TextInput/TextInputBase.js +214 -106
- 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 +20 -0
- package/dist/components/form/field-layout.js +114 -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 +7 -3
- package/dist/components/navigation/Tabs/Tabs.js.map +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 +18 -18
- 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 +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +25 -1
- 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 -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 +5 -4
- 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 +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 +2 -2
- package/docs/CreateComponent.md +1 -1
- package/docs/FieldProperties.md +29 -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 +25 -0
- 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 +9 -7
- package/docs/components/fields/CommandTextArea.md +4 -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 -3
- package/docs/components/fields/ListBox.md +0 -3
- package/docs/components/fields/NumberInput.md +9 -6
- package/docs/components/fields/PasswordInput.md +9 -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 +16 -4
- package/docs/components/fields/Select.md +0 -3
- package/docs/components/fields/Slider.md +0 -2
- package/docs/components/fields/Switch.md +16 -3
- package/docs/components/fields/TagInput.md +3 -6
- package/docs/components/fields/TextArea.md +10 -8
- package/docs/components/fields/TextInput.md +52 -10
- package/docs/components/navigation/Tabs.md +47 -0
- package/docs/components/overlays/Tooltip.md +1 -1
- package/package.json +4 -2
- 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,6 +1,6 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
2
|
-
import { extractStyles } from "../../../utils/styles.js";
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
|
|
3
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
|
+
import { getDisabledElementProps, getInertInputProps } from "../../../utils/react/disabledProps.js";
|
|
4
4
|
import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
5
5
|
import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
|
|
6
6
|
import { useAutoTooltip } from "../../content/use-auto-tooltip.js";
|
|
@@ -11,10 +11,11 @@ import { getValidationMods, resolveValidationProps } from "../../form/validation
|
|
|
11
11
|
import { INLINE_LABEL_STYLES, LABEL_STYLES } from "../../form/Label.js";
|
|
12
12
|
import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
|
|
13
13
|
import { wrapWithField } from "../../form/wrapper.js";
|
|
14
|
+
import { splitFieldLayout } from "../../form/field-layout.js";
|
|
14
15
|
import { HiddenInput } from "../../HiddenInput.js";
|
|
15
16
|
import { CheckboxGroupContext } from "./context.js";
|
|
16
17
|
import { CheckboxGroup as _CheckboxGroup } from "./CheckboxGroup.js";
|
|
17
|
-
import {
|
|
18
|
+
import { Element, filterBaseProps, tasty } from "@tenphi/tasty";
|
|
18
19
|
import { forwardRef, useContext, useMemo, useRef } from "react";
|
|
19
20
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
20
21
|
import { useCheckbox, useCheckboxGroupItem, useHover } from "react-aria";
|
|
@@ -49,17 +50,19 @@ const CheckboxElement = tasty({ styles: {
|
|
|
49
50
|
"invalid & checked": "#danger",
|
|
50
51
|
"valid & !checked": "#surface",
|
|
51
52
|
"valid & checked": "#success",
|
|
53
|
+
readonly: "#surface-2",
|
|
52
54
|
disabled: "#dark.12"
|
|
53
55
|
},
|
|
54
56
|
color: {
|
|
55
57
|
"": "#clear",
|
|
56
|
-
"checked | indeterminate": "#white"
|
|
58
|
+
"checked | indeterminate": "#white",
|
|
59
|
+
"readonly & !disabled & (checked | indeterminate)": "#dark-02"
|
|
57
60
|
},
|
|
58
61
|
border: {
|
|
59
62
|
"": "#dark.30",
|
|
60
63
|
invalid: "#danger",
|
|
61
64
|
valid: "#success",
|
|
62
|
-
"disabled | ((indeterminate | checked) & !invalid & !valid)": "#clear"
|
|
65
|
+
"disabled | ((indeterminate | checked) & !invalid & !valid & !readonly)": "#clear"
|
|
63
66
|
},
|
|
64
67
|
width: "(2x - 2bw)",
|
|
65
68
|
height: "(2x - 2bw)",
|
|
@@ -83,16 +86,15 @@ function Checkbox(allProps, ref) {
|
|
|
83
86
|
unsafe__isDisabled: !!groupState
|
|
84
87
|
});
|
|
85
88
|
let { qa, isIndeterminate = false, isDisabled = false, insideForm, children, label, isInvalid, isValid, labelProps, labelRef, labelStyles, labelPosition, inputStyles, isHidden, tooltip } = props;
|
|
86
|
-
|
|
89
|
+
const { styles, field } = splitFieldLayout(props, groupState ? { hasChrome: false } : void 0);
|
|
87
90
|
labelStyles = useMemo(() => ({
|
|
88
91
|
...!groupState ? LABEL_STYLES : INLINE_LABEL_STYLES,
|
|
89
92
|
...labelStyles
|
|
90
93
|
}), [groupState, labelStyles]);
|
|
91
94
|
let { isFocused, focusProps } = useFocus$1(true);
|
|
92
|
-
let { hoverProps, isHovered } = useHover({ isDisabled });
|
|
93
95
|
let inputRef = useRef(null);
|
|
94
96
|
let domRef = useFocusableRef(ref, inputRef);
|
|
95
|
-
let { renderWithTooltip } = useAutoTooltip({
|
|
97
|
+
let { renderWithTooltip, isTooltipActive } = useAutoTooltip({
|
|
96
98
|
tooltip,
|
|
97
99
|
children: null
|
|
98
100
|
});
|
|
@@ -102,12 +104,18 @@ function Checkbox(allProps, ref) {
|
|
|
102
104
|
form: void 0,
|
|
103
105
|
children: children ?? label
|
|
104
106
|
};
|
|
105
|
-
let { inputProps } = groupState ? useCheckboxGroupItem({
|
|
107
|
+
let { inputProps, isDisabled: isInputDisabled, isReadOnly } = groupState ? useCheckboxGroupItem({
|
|
106
108
|
...ariaProps,
|
|
107
109
|
value: props.value || "",
|
|
108
110
|
isRequired: originalProps.isRequired,
|
|
109
111
|
isInvalid: resolveValidationProps(originalProps).isInvalid
|
|
110
112
|
}, groupState, inputRef) : useCheckbox(ariaProps, toggleState, inputRef);
|
|
113
|
+
let { hoverProps, isHovered } = useHover({ isDisabled: isDisabled || isReadOnly });
|
|
114
|
+
if (getDisabledElementProps({
|
|
115
|
+
isDisabled: isInputDisabled,
|
|
116
|
+
keepEvents: isTooltipActive,
|
|
117
|
+
as: "input"
|
|
118
|
+
}).isInert) inputProps = getInertInputProps(inputProps, { excludeFromTabOrder: props.excludeFromTabOrder });
|
|
111
119
|
let markIcon = isIndeterminate ? /* @__PURE__ */ jsx(Icon, {
|
|
112
120
|
size: 12,
|
|
113
121
|
stroke: 3,
|
|
@@ -135,6 +143,7 @@ function Checkbox(allProps, ref) {
|
|
|
135
143
|
isValid
|
|
136
144
|
}),
|
|
137
145
|
disabled: isDisabled,
|
|
146
|
+
readonly: isReadOnly,
|
|
138
147
|
hovered: isHovered,
|
|
139
148
|
focused: isFocused,
|
|
140
149
|
"side-label": labelPosition === "side",
|
|
@@ -157,7 +166,8 @@ function Checkbox(allProps, ref) {
|
|
|
157
166
|
"data-input-type": "checkbox",
|
|
158
167
|
...props.autoFocus ? { "data-autofocus": "" } : void 0,
|
|
159
168
|
...mergeTooltipFocusProps(mergeProps$1(inputProps, focusProps), tooltipFocusProps),
|
|
160
|
-
ref: inputRef
|
|
169
|
+
ref: inputRef,
|
|
170
|
+
mods: { disabled: isInputDisabled }
|
|
161
171
|
}), /* @__PURE__ */ jsx(CheckboxElement, {
|
|
162
172
|
"data-element": "Input",
|
|
163
173
|
mods,
|
|
@@ -186,6 +196,7 @@ function Checkbox(allProps, ref) {
|
|
|
186
196
|
}, "top");
|
|
187
197
|
return wrapWithField(checkboxField, {
|
|
188
198
|
...props,
|
|
199
|
+
...field,
|
|
189
200
|
tooltip: void 0,
|
|
190
201
|
labelProps: {
|
|
191
202
|
...props.labelProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","names":["useFocusableRef","IconCheck","IconMinus","BaseProps","CONTAINER_STYLES","ContainerStyleProps","Element","filterBaseProps","Styles","tasty","forwardRef","ReactElement","RefObject","useContext","useMemo","useRef","AriaCheckboxProps","useCheckbox","useCheckboxGroupItem","useHover","useToggleState","Icon","FieldBaseProps","ToggleSelectionProps","mergeProps","mergeRefs","useFocus","castNullableIsSelected","WithNullableSelected","extractStyles","useAutoTooltip","getValidationMods","INLINE_LABEL_STYLES","LABEL_STYLES","resolveValidationProps","useFieldProps","wrapWithField","HiddenInput","mergeTooltipFocusProps","splitTooltipTriggerProps","TooltipFocusProps","CheckboxGroup","CheckboxGroupContext","FocusableRef","CubeTooltipProviderProps","CubeCheckboxProps","Omit","inputStyles","isIndeterminate","value","tooltip","CheckboxWrapperElement","as","qa","styles","position","display","placeItems","placeContent","gap","flow","preset","cursor","width","color","CheckboxElement","radius","fill","disabled","border","invalid","valid","height","outline","focused","outlineOffset","transition","Checkbox","allProps","ref","groupState","originalProps","props","defaultValidationTrigger","valuePropsMapper","onChange","isSelected","unsafe__isDisabled","isDisabled","insideForm","children","label","isInvalid","isValid","labelProps","labelRef","labelStyles","labelPosition","isHidden","isFocused","focusProps","hoverProps","isHovered","inputRef","domRef","renderWithTooltip","toggleState","ariaProps","form","undefined","inputProps","isRequired","markIcon","key","console","warn","mods","checked","indeterminate","hovered","wrapperProps","className","style","qaVal","wrapperRefWith","tooltipRef","HTMLElement","renderCheckbox","tooltipFocusProps","autoFocus","checkboxField","tooltipTriggerProps","pointerProps","for","id","_Checkbox","cubeInputType","__Checkbox","Object","assign","Group","displayName","useFocus","mergeProps","CheckboxGroup"],"sources":["../../../../src/components/fields/Checkbox/Checkbox.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport { IconCheck, IconMinus } from '@tabler/icons-react';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Element,\n filterBaseProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n forwardRef,\n ReactElement,\n RefObject,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport {\n AriaCheckboxProps,\n useCheckbox,\n useCheckboxGroupItem,\n useHover,\n} from 'react-aria';\nimport { useToggleState } from 'react-stately';\n\nimport { Icon } from '../../../icons/Icon';\nimport { FieldBaseProps, ToggleSelectionProps } from '../../../shared';\nimport { mergeProps, mergeRefs } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport {\n castNullableIsSelected,\n WithNullableSelected,\n} from '../../../utils/react/nullableValue';\nimport { extractStyles } from '../../../utils/styles';\nimport { useAutoTooltip } from '../../content/use-auto-tooltip';\nimport {\n getValidationMods,\n INLINE_LABEL_STYLES,\n LABEL_STYLES,\n resolveValidationProps,\n useFieldProps,\n wrapWithField,\n} from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\nimport {\n mergeTooltipFocusProps,\n splitTooltipTriggerProps,\n TooltipFocusProps,\n} from '../../overlays/Tooltip/split-trigger-props';\n\nimport { CheckboxGroup } from './CheckboxGroup';\nimport { CheckboxGroupContext } from './context';\n\nimport type { FocusableRef } from '@react-types/shared';\nimport type { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\n\nexport interface CubeCheckboxProps\n extends\n BaseProps,\n ContainerStyleProps,\n Omit<AriaCheckboxProps, 'form' | 'name'>,\n ToggleSelectionProps,\n FieldBaseProps<boolean | null | undefined> {\n inputStyles?: Styles;\n isIndeterminate?: boolean;\n value?: string;\n /**\n * The checkbox's own tooltip, shown on hover over the box and its inline\n * label — also while the checkbox is disabled — and on keyboard focus. A string, or `TooltipProvider` props\n * (`title`, `placement`, …). The info badge next to a field label is\n * `labelTooltip`.\n */\n tooltip?: string | Omit<CubeTooltipProviderProps, 'children'>;\n}\n\nconst CheckboxWrapperElement = tasty({\n as: 'label',\n qa: 'CheckboxWrapper',\n styles: {\n position: 'relative',\n display: 'flex',\n placeItems: 'center start',\n placeContent: 'baseline',\n gap: '1x',\n flow: 'row',\n preset: 'default',\n cursor: '$pointer',\n width: 'max max-content',\n color: '#dark-02',\n },\n});\n\nconst CheckboxElement = tasty({\n styles: {\n display: 'grid',\n placeItems: 'center',\n radius: '.5r',\n fill: {\n '': '#surface',\n 'checked | indeterminate': '#primary',\n 'invalid & !checked': '#surface',\n 'invalid & checked': '#danger',\n 'valid & !checked': '#surface',\n 'valid & checked': '#success',\n disabled: '#dark.12',\n },\n // The check / minus icon is always rendered inside the box, so the\n // default color must be transparent when the checkbox is neither\n // checked nor indeterminate — otherwise the white stroke shows through\n // the dark `#surface` fill in dark schemes (it used to be hidden\n // accidentally by the legacy white-on-white `fill: '#white'`).\n color: {\n '': '#clear',\n 'checked | indeterminate': '#white',\n },\n border: {\n '': '#dark.30',\n invalid: '#danger',\n valid: '#success',\n 'disabled | ((indeterminate | checked) & !invalid & !valid)': '#clear',\n },\n width: '(2x - 2bw)',\n height: '(2x - 2bw)',\n outline: {\n '': '#primary-text.0',\n focused: '$ring-width #primary-text',\n },\n outlineOffset: '$outline-offset',\n transition: 'theme',\n },\n});\n\nfunction Checkbox(\n allProps: WithNullableSelected<CubeCheckboxProps>,\n ref: FocusableRef,\n) {\n // Swap hooks depending on whether this checkbox is inside a CheckboxGroup.\n // This is a bit unorthodox. Typically, hooks cannot be called in a conditional,\n // but since the checkbox won't move in and out of a group, it should be safe.\n let groupState = useContext(CheckboxGroupContext);\n\n const originalProps = castNullableIsSelected(allProps);\n\n const props = useFieldProps(originalProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n isSelected: value ?? false,\n isIndeterminate: false,\n onChange: onChange,\n }),\n unsafe__isDisabled: !!groupState,\n });\n\n let {\n qa,\n isIndeterminate = false,\n isDisabled = false,\n insideForm,\n children,\n label,\n isInvalid,\n isValid,\n labelProps,\n labelRef,\n labelStyles,\n labelPosition,\n inputStyles,\n isHidden,\n tooltip,\n } = props;\n\n let styles: Styles = extractStyles(props, CONTAINER_STYLES);\n\n labelStyles = useMemo(\n () => ({\n ...(!groupState ? LABEL_STYLES : INLINE_LABEL_STYLES),\n ...labelStyles,\n }),\n [groupState, labelStyles],\n );\n\n let { isFocused, focusProps } = useFocus(true);\n let { hoverProps, isHovered } = useHover({ isDisabled });\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n // Triggered by the wrapper rather than the input, so a disabled checkbox —\n // whose input ignores the pointer — still shows it.\n let { renderWithTooltip } = useAutoTooltip({ tooltip, children: null });\n\n const toggleState = useToggleState(props);\n\n // React Aria writes `form` onto the input as the id of its `<form>`, so the\n // form instance would render as `form=\"[object Object]\"` and detach it. It\n // reads `children` only to warn about a checkbox with no visible label; a\n // field `label` is one, named through its `<label for>`. Writing it into\n // `aria-label` instead used to drop the inline text from the name and\n // replace the caller's own `aria-label`.\n let ariaProps = { ...props, form: undefined, children: children ?? label };\n let { inputProps } = groupState\n ? useCheckboxGroupItem(\n {\n ...ariaProps,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires strictNullChecks disabled).\n value: props.value || '',\n // Only pass isRequired and the validation state to react-aria if they came from\n // the props for this individual checkbox, and not from the group via context.\n isRequired: originalProps.isRequired,\n isInvalid: resolveValidationProps(originalProps).isInvalid,\n },\n groupState,\n inputRef,\n )\n : useCheckbox(ariaProps, toggleState, inputRef);\n\n // Decorative: the input already announces checked, unchecked and mixed.\n let markIcon = isIndeterminate ? (\n <Icon size={12} stroke={3} aria-hidden=\"true\">\n <IconMinus />\n </Icon>\n ) : (\n <Icon size={12} stroke={3} aria-hidden=\"true\">\n <IconCheck />\n </Icon>\n );\n\n if (groupState) {\n for (let key of ['isSelected', 'defaultSelected', 'isEmphasized']) {\n // The raw props: `castNullableIsSelected` turns `null` into `false`.\n if (allProps[key] != null) {\n console.warn(\n `CubeUIKit: ${key} is unsupported on individual <Checkbox> elements within a <CheckboxGroup>. Please apply these props to the group instead.`,\n );\n }\n }\n if (props.value == null) {\n console.warn(\n 'CubeUIKit: A <Checkbox> element within a <CheckboxGroup> requires a `value` property.',\n );\n }\n }\n\n const mods = {\n checked: inputProps.checked,\n indeterminate: isIndeterminate,\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n hovered: isHovered,\n focused: isFocused,\n 'side-label': labelPosition === 'side',\n 'inside-form': insideForm,\n };\n\n // The wrapper's props, the same in both branches. React Aria puts `id`,\n // `aria-*` and `data-*` on the input, so they stay off the `<label>`: the\n // grouped one used to copy them, and `#id`, `for` and `aria-labelledby`\n // resolved to it. A caller's own `mods` stay, under the state ones.\n const wrapperProps = {\n className: props.className,\n style: props.style,\n qaVal: props.qaVal,\n styles,\n isHidden,\n mods: { ...props.mods, ...mods },\n };\n\n // The wrapper is the checkbox's element in both branches, so the field's ref\n // reaches it with or without the field chrome; a tooltip's ref shares it.\n const wrapperRefWith = (tooltipRef?: RefObject<HTMLElement>) =>\n tooltipRef ? mergeRefs(domRef, tooltipRef) : domRef;\n\n // The input, where keyboard focus lands, takes the tooltip's focus-side\n // trigger props; the wrapper keeps the hover side and positions the tooltip.\n const renderCheckbox = (tooltipFocusProps?: TooltipFocusProps) => (\n <>\n <HiddenInput\n qa={qa || 'Checkbox'}\n data-input-type=\"checkbox\"\n // For a dialog kept mounted while closed, as on `Button`.\n {...(props.autoFocus ? { 'data-autofocus': '' } : undefined)}\n {...mergeTooltipFocusProps(\n mergeProps(inputProps, focusProps),\n tooltipFocusProps,\n )}\n ref={inputRef}\n />\n <CheckboxElement data-element=\"Input\" mods={mods} styles={inputStyles}>\n {markIcon}\n </CheckboxElement>\n </>\n );\n\n if (!groupState) {\n const checkboxField = renderWithTooltip(\n (tooltipTriggerProps, tooltipRef) => {\n const { pointerProps, focusProps: tooltipFocusProps } =\n splitTooltipTriggerProps(tooltipTriggerProps);\n\n return (\n // `styles` is forwarded here as well as in the in-group branch\n // below — it used to be extracted from props and then dropped on\n // this path, so `<Checkbox styles={{ … }}>` outside a group was a\n // silent no-op.\n <CheckboxWrapperElement\n {...wrapperProps}\n {...mergeProps(hoverProps, pointerProps)}\n ref={wrapperRefWith(tooltipRef)}\n >\n {renderCheckbox(tooltipFocusProps)}\n {children ? (\n // Same element and preset as the in-group branch. This path used\n // to force children through `<Text nowrap>`: `white-space:\n // nowrap` inherits, so a label longer than a few words — or any\n // custom node with two lines in it — could not wrap at all, and\n // the label also missed the preset a grouped one picks up.\n <Element\n styles={INLINE_LABEL_STYLES}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n }}\n >\n {children}\n </Element>\n ) : null}\n </CheckboxWrapperElement>\n );\n },\n 'top',\n );\n\n // `tooltip` is the checkbox's own here, not a legacy label badge.\n // `renderWithTooltip` is typed for any node; here it returns an element.\n // The field label names the input through `for`, which `useFieldProps`\n // leaves unset for a caller's own `id` and inside the legacy `<Field>`, as\n // `Switch` does.\n return wrapWithField(checkboxField as ReactElement, {\n ...props,\n tooltip: undefined,\n labelProps: { ...props.labelProps, for: props.id },\n });\n }\n\n return renderWithTooltip((tooltipTriggerProps, tooltipRef) => {\n const { pointerProps, focusProps: tooltipFocusProps } =\n splitTooltipTriggerProps(tooltipTriggerProps);\n\n return (\n <CheckboxWrapperElement\n {...wrapperProps}\n {...mergeProps(hoverProps, pointerProps)}\n ref={wrapperRefWith(tooltipRef)}\n >\n {renderCheckbox(tooltipFocusProps)}\n {(label ?? children) ? (\n <Element\n // Before `labelProps`, so a `ref` passed there still wins.\n ref={labelRef}\n styles={labelStyles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n }}\n {...(labelProps ? filterBaseProps(labelProps) : undefined)}\n >\n {label ?? children}\n </Element>\n ) : null}\n </CheckboxWrapperElement>\n );\n }, 'top');\n}\n\n/**\n * Checkboxes allow users to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n */\nlet _Checkbox = forwardRef(Checkbox);\n\n(_Checkbox as any).cubeInputType = 'Checkbox';\nlet __Checkbox = Object.assign(\n _Checkbox as typeof _Checkbox & { Group: typeof CheckboxGroup },\n { Group: CheckboxGroup },\n);\n\n__Checkbox.displayName = 'Checkbox';\n\nexport { __Checkbox as Checkbox };\nexport type { AriaCheckboxProps };\nexport { useCheckbox };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Checkbox.js","names":["useFocusableRef","IconCheck","IconMinus","BaseProps","Element","filterBaseProps","Styles","tasty","forwardRef","ReactElement","RefObject","useContext","useMemo","useRef","AriaCheckboxProps","useCheckbox","useCheckboxGroupItem","useHover","useToggleState","Icon","FieldBaseProps","ToggleSelectionProps","mergeProps","mergeRefs","getDisabledElementProps","getInertInputProps","useFocus","castNullableIsSelected","WithNullableSelected","useAutoTooltip","getValidationMods","INLINE_LABEL_STYLES","LABEL_STYLES","resolveValidationProps","useFieldProps","wrapWithField","FieldLayoutStyleProps","splitFieldLayout","HiddenInput","mergeTooltipFocusProps","splitTooltipTriggerProps","TooltipFocusProps","CheckboxGroup","CheckboxGroupContext","FocusableRef","CubeTooltipProviderProps","CubeCheckboxProps","Omit","inputStyles","isIndeterminate","value","tooltip","CheckboxWrapperElement","as","qa","styles","position","display","placeItems","placeContent","gap","flow","preset","cursor","width","color","CheckboxElement","radius","fill","readonly","disabled","border","invalid","valid","height","outline","focused","outlineOffset","transition","Checkbox","allProps","ref","groupState","originalProps","props","defaultValidationTrigger","valuePropsMapper","onChange","isSelected","unsafe__isDisabled","isDisabled","insideForm","children","label","isInvalid","isValid","labelProps","labelRef","labelStyles","labelPosition","isHidden","field","hasChrome","undefined","isFocused","focusProps","inputRef","domRef","renderWithTooltip","isTooltipActive","toggleState","ariaProps","form","inputProps","isInputDisabled","isReadOnly","isRequired","hoverProps","isHovered","keepEvents","isInert","excludeFromTabOrder","markIcon","key","console","warn","mods","checked","indeterminate","hovered","wrapperProps","className","style","qaVal","wrapperRefWith","tooltipRef","HTMLElement","renderCheckbox","tooltipFocusProps","autoFocus","checkboxField","tooltipTriggerProps","pointerProps","for","id","_Checkbox","cubeInputType","__Checkbox","Object","assign","Group","displayName","useFocus","mergeProps","CheckboxGroup"],"sources":["../../../../src/components/fields/Checkbox/Checkbox.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport { IconCheck, IconMinus } from '@tabler/icons-react';\nimport {\n BaseProps,\n Element,\n filterBaseProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n forwardRef,\n ReactElement,\n RefObject,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport {\n AriaCheckboxProps,\n useCheckbox,\n useCheckboxGroupItem,\n useHover,\n} from 'react-aria';\nimport { useToggleState } from 'react-stately';\n\nimport { Icon } from '../../../icons/Icon';\nimport { FieldBaseProps, ToggleSelectionProps } from '../../../shared';\nimport { mergeProps, mergeRefs } from '../../../utils/react';\nimport {\n getDisabledElementProps,\n getInertInputProps,\n} from '../../../utils/react/disabledProps';\nimport { useFocus } from '../../../utils/react/interactions';\nimport {\n castNullableIsSelected,\n WithNullableSelected,\n} from '../../../utils/react/nullableValue';\nimport { useAutoTooltip } from '../../content/use-auto-tooltip';\nimport {\n getValidationMods,\n INLINE_LABEL_STYLES,\n LABEL_STYLES,\n resolveValidationProps,\n useFieldProps,\n wrapWithField,\n} from '../../form';\nimport {\n FieldLayoutStyleProps,\n splitFieldLayout,\n} from '../../form/field-layout';\nimport { HiddenInput } from '../../HiddenInput';\nimport {\n mergeTooltipFocusProps,\n splitTooltipTriggerProps,\n TooltipFocusProps,\n} from '../../overlays/Tooltip/split-trigger-props';\n\nimport { CheckboxGroup } from './CheckboxGroup';\nimport { CheckboxGroupContext } from './context';\n\nimport type { FocusableRef } from '@react-types/shared';\nimport type { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\n\nexport interface CubeCheckboxProps\n extends\n BaseProps,\n FieldLayoutStyleProps,\n Omit<AriaCheckboxProps, 'form' | 'name'>,\n ToggleSelectionProps,\n FieldBaseProps<boolean | null | undefined> {\n inputStyles?: Styles;\n isIndeterminate?: boolean;\n value?: string;\n /**\n * The checkbox's own tooltip, shown on hover over the box and its inline\n * label — also while the checkbox is disabled — and on keyboard focus. A string, or `TooltipProvider` props\n * (`title`, `placement`, …). The info badge next to a field label is\n * `labelTooltip`.\n */\n tooltip?: string | Omit<CubeTooltipProviderProps, 'children'>;\n}\n\nconst CheckboxWrapperElement = tasty({\n as: 'label',\n qa: 'CheckboxWrapper',\n styles: {\n position: 'relative',\n display: 'flex',\n placeItems: 'center start',\n placeContent: 'baseline',\n gap: '1x',\n flow: 'row',\n preset: 'default',\n cursor: '$pointer',\n width: 'max max-content',\n color: '#dark-02',\n },\n});\n\nconst CheckboxElement = tasty({\n styles: {\n display: 'grid',\n placeItems: 'center',\n radius: '.5r',\n fill: {\n '': '#surface',\n 'checked | indeterminate': '#primary',\n 'invalid & !checked': '#surface',\n 'invalid & checked': '#danger',\n 'valid & !checked': '#surface',\n 'valid & checked': '#success',\n readonly: '#surface-2',\n disabled: '#dark.12',\n },\n // The check / minus icon is always rendered inside the box, so the\n // default color must be transparent when the checkbox is neither\n // checked nor indeterminate — otherwise the white stroke shows through\n // the dark `#surface` fill in dark schemes (it used to be hidden\n // accidentally by the legacy white-on-white `fill: '#white'`).\n color: {\n '': '#clear',\n 'checked | indeterminate': '#white',\n 'readonly & !disabled & (checked | indeterminate)': '#dark-02',\n },\n border: {\n '': '#dark.30',\n invalid: '#danger',\n valid: '#success',\n 'disabled | ((indeterminate | checked) & !invalid & !valid & !readonly)':\n '#clear',\n },\n width: '(2x - 2bw)',\n height: '(2x - 2bw)',\n outline: {\n '': '#primary-text.0',\n focused: '$ring-width #primary-text',\n },\n outlineOffset: '$outline-offset',\n transition: 'theme',\n },\n});\n\nfunction Checkbox(\n allProps: WithNullableSelected<CubeCheckboxProps>,\n ref: FocusableRef,\n) {\n // Swap hooks depending on whether this checkbox is inside a CheckboxGroup.\n // This is a bit unorthodox. Typically, hooks cannot be called in a conditional,\n // but since the checkbox won't move in and out of a group, it should be safe.\n let groupState = useContext(CheckboxGroupContext);\n\n const originalProps = castNullableIsSelected(allProps);\n\n const props = useFieldProps(originalProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n isSelected: value ?? false,\n isIndeterminate: false,\n onChange: onChange,\n }),\n unsafe__isDisabled: !!groupState,\n });\n\n let {\n qa,\n isIndeterminate = false,\n isDisabled = false,\n insideForm,\n children,\n label,\n isInvalid,\n isValid,\n labelProps,\n labelRef,\n labelStyles,\n labelPosition,\n inputStyles,\n isHidden,\n tooltip,\n } = props;\n\n // A grouped checkbox is an option of its group's field and never wraps.\n const { styles, field } = splitFieldLayout(\n props,\n groupState ? { hasChrome: false } : undefined,\n );\n\n labelStyles = useMemo(\n () => ({\n ...(!groupState ? LABEL_STYLES : INLINE_LABEL_STYLES),\n ...labelStyles,\n }),\n [groupState, labelStyles],\n );\n\n let { isFocused, focusProps } = useFocus(true);\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n let { renderWithTooltip, isTooltipActive } = useAutoTooltip({\n tooltip,\n children: null,\n });\n\n const toggleState = useToggleState(props);\n\n // React Aria writes `form` onto the input as the id of its `<form>`, so the\n // form instance would render as `form=\"[object Object]\"` and detach it. It\n // reads `children` only to warn about a checkbox with no visible label; a\n // field `label` is one, named through its `<label for>`. Writing it into\n // `aria-label` instead used to drop the inline text from the name and\n // replace the caller's own `aria-label`.\n let ariaProps = { ...props, form: undefined, children: children ?? label };\n // `isReadOnly` is React Aria's: the checkbox's own or its group's.\n let {\n inputProps,\n isDisabled: isInputDisabled,\n isReadOnly,\n } = groupState\n ? useCheckboxGroupItem(\n {\n ...ariaProps,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires strictNullChecks disabled).\n value: props.value || '',\n // Only pass isRequired and the validation state to react-aria if they came from\n // the props for this individual checkbox, and not from the group via context.\n isRequired: originalProps.isRequired,\n isInvalid: resolveValidationProps(originalProps).isInvalid,\n },\n groupState,\n inputRef,\n )\n : useCheckbox(ariaProps, toggleState, inputRef);\n\n // A read-only checkbox takes no hover state: a press would change nothing.\n let { hoverProps, isHovered } = useHover({\n isDisabled: isDisabled || isReadOnly,\n });\n\n // A disabled checkbox with a tooltip to show keeps its focus, as a disabled\n // `Button` or `Radio` does: the tooltip is usually the reason it is disabled,\n // and focus is how the keyboard opens it. It is `aria-disabled` and inert\n // instead. React Aria's own result covers a disabled group too.\n if (\n getDisabledElementProps({\n isDisabled: isInputDisabled,\n keepEvents: isTooltipActive,\n as: 'input',\n }).isInert\n ) {\n inputProps = getInertInputProps(inputProps, {\n excludeFromTabOrder: props.excludeFromTabOrder,\n });\n }\n\n // Decorative: the input already announces checked, unchecked and mixed.\n let markIcon = isIndeterminate ? (\n <Icon size={12} stroke={3} aria-hidden=\"true\">\n <IconMinus />\n </Icon>\n ) : (\n <Icon size={12} stroke={3} aria-hidden=\"true\">\n <IconCheck />\n </Icon>\n );\n\n if (groupState) {\n for (let key of ['isSelected', 'defaultSelected', 'isEmphasized']) {\n // The raw props: `castNullableIsSelected` turns `null` into `false`.\n if (allProps[key] != null) {\n console.warn(\n `CubeUIKit: ${key} is unsupported on individual <Checkbox> elements within a <CheckboxGroup>. Please apply these props to the group instead.`,\n );\n }\n }\n if (props.value == null) {\n console.warn(\n 'CubeUIKit: A <Checkbox> element within a <CheckboxGroup> requires a `value` property.',\n );\n }\n }\n\n const mods = {\n checked: inputProps.checked,\n indeterminate: isIndeterminate,\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n readonly: isReadOnly,\n hovered: isHovered,\n focused: isFocused,\n 'side-label': labelPosition === 'side',\n 'inside-form': insideForm,\n };\n\n // The wrapper's props, the same in both branches. React Aria puts `id`,\n // `aria-*` and `data-*` on the input, so they stay off the `<label>`: the\n // grouped one used to copy them, and `#id`, `for` and `aria-labelledby`\n // resolved to it. A caller's own `mods` stay, under the state ones.\n const wrapperProps = {\n className: props.className,\n style: props.style,\n qaVal: props.qaVal,\n styles,\n isHidden,\n mods: { ...props.mods, ...mods },\n };\n\n // The wrapper is the checkbox's element in both branches, so the field's ref\n // reaches it with or without the field chrome; a tooltip's ref shares it.\n const wrapperRefWith = (tooltipRef?: RefObject<HTMLElement>) =>\n tooltipRef ? mergeRefs(domRef, tooltipRef) : domRef;\n\n // The input, where keyboard focus lands, takes the tooltip's focus-side\n // trigger props; the wrapper keeps the hover side and positions the tooltip.\n const renderCheckbox = (tooltipFocusProps?: TooltipFocusProps) => (\n <>\n <HiddenInput\n qa={qa || 'Checkbox'}\n data-input-type=\"checkbox\"\n // For a dialog kept mounted while closed, as on `Button`.\n {...(props.autoFocus ? { 'data-autofocus': '' } : undefined)}\n {...mergeTooltipFocusProps(\n mergeProps(inputProps, focusProps),\n tooltipFocusProps,\n )}\n ref={inputRef}\n // Not left to the native `disabled`, which an inert input drops.\n mods={{ disabled: isInputDisabled }}\n />\n <CheckboxElement data-element=\"Input\" mods={mods} styles={inputStyles}>\n {markIcon}\n </CheckboxElement>\n </>\n );\n\n if (!groupState) {\n const checkboxField = renderWithTooltip(\n (tooltipTriggerProps, tooltipRef) => {\n const { pointerProps, focusProps: tooltipFocusProps } =\n splitTooltipTriggerProps(tooltipTriggerProps);\n\n return (\n // `styles` is forwarded here as well as in the in-group branch\n // below — it used to be extracted from props and then dropped on\n // this path, so `<Checkbox styles={{ … }}>` outside a group was a\n // silent no-op.\n <CheckboxWrapperElement\n {...wrapperProps}\n {...mergeProps(hoverProps, pointerProps)}\n ref={wrapperRefWith(tooltipRef)}\n >\n {renderCheckbox(tooltipFocusProps)}\n {children ? (\n // Same element and preset as the in-group branch. This path used\n // to force children through `<Text nowrap>`: `white-space:\n // nowrap` inherits, so a label longer than a few words — or any\n // custom node with two lines in it — could not wrap at all, and\n // the label also missed the preset a grouped one picks up.\n <Element\n styles={INLINE_LABEL_STYLES}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n }}\n >\n {children}\n </Element>\n ) : null}\n </CheckboxWrapperElement>\n );\n },\n 'top',\n );\n\n // `tooltip` is the checkbox's own here, not a legacy label badge.\n // `renderWithTooltip` is typed for any node; here it returns an element.\n // The field label names the input through `for`, which `useFieldProps`\n // leaves unset for a caller's own `id` and inside the legacy `<Field>`, as\n // `Switch` does.\n return wrapWithField(checkboxField as ReactElement, {\n ...props,\n ...field,\n tooltip: undefined,\n labelProps: { ...props.labelProps, for: props.id },\n });\n }\n\n return renderWithTooltip((tooltipTriggerProps, tooltipRef) => {\n const { pointerProps, focusProps: tooltipFocusProps } =\n splitTooltipTriggerProps(tooltipTriggerProps);\n\n return (\n <CheckboxWrapperElement\n {...wrapperProps}\n {...mergeProps(hoverProps, pointerProps)}\n ref={wrapperRefWith(tooltipRef)}\n >\n {renderCheckbox(tooltipFocusProps)}\n {(label ?? children) ? (\n <Element\n // Before `labelProps`, so a `ref` passed there still wins.\n ref={labelRef}\n styles={labelStyles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n }}\n {...(labelProps ? filterBaseProps(labelProps) : undefined)}\n >\n {label ?? children}\n </Element>\n ) : null}\n </CheckboxWrapperElement>\n );\n }, 'top');\n}\n\n/**\n * Checkboxes allow users to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n */\nlet _Checkbox = forwardRef(Checkbox);\n\n(_Checkbox as any).cubeInputType = 'Checkbox';\nlet __Checkbox = Object.assign(\n _Checkbox as typeof _Checkbox & { Group: typeof CheckboxGroup },\n { Group: CheckboxGroup },\n);\n\n__Checkbox.displayName = 'Checkbox';\n\nexport { __Checkbox as Checkbox };\nexport type { AriaCheckboxProps };\nexport { useCheckbox };\n"],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
import { FieldBaseProps } from "../../../shared/form.js";
|
|
3
3
|
import "../../../shared/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { FieldLayoutStyleProps } from "../../form/field-layout.js";
|
|
5
|
+
import { BaseProps, Styles } from "@tenphi/tasty";
|
|
5
6
|
import { AriaCheckboxGroupProps } from "react-aria";
|
|
6
7
|
//#region src/components/fields/Checkbox/CheckboxGroup.d.ts
|
|
7
|
-
export interface CubeCheckboxGroupProps extends BaseProps, Omit<AriaCheckboxGroupProps, 'errorMessage' | 'form' | 'name'>, FieldBaseProps<readonly string[] | null | undefined>,
|
|
8
|
+
export interface CubeCheckboxGroupProps extends BaseProps, Omit<AriaCheckboxGroupProps, 'errorMessage' | 'form' | 'name'>, FieldBaseProps<readonly string[] | null | undefined>, FieldLayoutStyleProps {
|
|
8
9
|
orientation?: 'vertical' | 'horizontal';
|
|
9
10
|
inputStyles?: Styles;
|
|
10
11
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
2
|
-
import { extractStyles } from "../../../utils/styles.js";
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
|
|
3
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
|
+
import { Provider } from "../../../provider.js";
|
|
4
4
|
import { castNullableArrayValue } from "../../../utils/react/nullableValue.js";
|
|
5
5
|
import { FormScopeMask } from "../../form/Form/Form.js";
|
|
6
6
|
import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
|
|
7
7
|
import { wrapWithField } from "../../form/wrapper.js";
|
|
8
|
+
import { splitFieldLayout } from "../../form/field-layout.js";
|
|
8
9
|
import { CheckboxGroupContext } from "./context.js";
|
|
9
10
|
import { c } from "react/compiler-runtime";
|
|
10
|
-
import {
|
|
11
|
+
import { tasty } from "@tenphi/tasty";
|
|
11
12
|
import { forwardRef } from "react";
|
|
12
13
|
import { jsx } from "react/jsx-runtime";
|
|
13
14
|
import { useCheckboxGroup } from "react-aria";
|
|
@@ -31,7 +32,7 @@ const CheckGroupElement = tasty({
|
|
|
31
32
|
}
|
|
32
33
|
});
|
|
33
34
|
function CheckboxGroup(rawProps, ref) {
|
|
34
|
-
const $ = c(
|
|
35
|
+
const $ = c(21);
|
|
35
36
|
let t0;
|
|
36
37
|
if ($[0] !== rawProps) {
|
|
37
38
|
t0 = castNullableArrayValue(rawProps);
|
|
@@ -48,10 +49,10 @@ function CheckboxGroup(rawProps, ref) {
|
|
|
48
49
|
$[2] = t1;
|
|
49
50
|
} else t1 = $[2];
|
|
50
51
|
const props = useFieldProps(rawProps, t1);
|
|
51
|
-
const { id, isDisabled,
|
|
52
|
+
const { id, isDisabled, isReadOnly, isInvalid, isValid, children, orientation: t2, labelProps: baseLabelProps, inputStyles } = props;
|
|
52
53
|
const orientation = t2 === void 0 ? "vertical" : t2;
|
|
53
54
|
const domRef = useObjectRef(ref);
|
|
54
|
-
const styles =
|
|
55
|
+
const { styles, field } = splitFieldLayout(props, { defaultStyles: inputStyles });
|
|
55
56
|
const state = useCheckboxGroupState(props);
|
|
56
57
|
let t3;
|
|
57
58
|
if ($[3] !== props) {
|
|
@@ -93,47 +94,40 @@ function CheckboxGroup(rawProps, ref) {
|
|
|
93
94
|
$[13] = t7;
|
|
94
95
|
} else t7 = $[13];
|
|
95
96
|
let t8;
|
|
96
|
-
if ($[14] !==
|
|
97
|
-
t8 = /* @__PURE__ */ jsx(
|
|
98
|
-
|
|
97
|
+
if ($[14] !== isDisabled || $[15] !== isReadOnly || $[16] !== t7) {
|
|
98
|
+
t8 = /* @__PURE__ */ jsx(Provider, {
|
|
99
|
+
isDisabled,
|
|
100
|
+
isReadOnly,
|
|
99
101
|
children: t7
|
|
100
102
|
});
|
|
101
|
-
$[14] =
|
|
102
|
-
$[15] =
|
|
103
|
-
$[16] =
|
|
104
|
-
|
|
103
|
+
$[14] = isDisabled;
|
|
104
|
+
$[15] = isReadOnly;
|
|
105
|
+
$[16] = t7;
|
|
106
|
+
$[17] = t8;
|
|
107
|
+
} else t8 = $[17];
|
|
105
108
|
let t9;
|
|
106
|
-
if ($[
|
|
107
|
-
t9 = /* @__PURE__ */ jsx(
|
|
108
|
-
|
|
109
|
-
...groupProps,
|
|
110
|
-
id,
|
|
111
|
-
styles,
|
|
112
|
-
mods: t5,
|
|
109
|
+
if ($[18] !== t6 || $[19] !== t8) {
|
|
110
|
+
t9 = /* @__PURE__ */ jsx(FormScopeMask, {
|
|
111
|
+
value: t6,
|
|
113
112
|
children: t8
|
|
114
113
|
});
|
|
115
|
-
$[
|
|
116
|
-
$[
|
|
117
|
-
$[
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
$
|
|
131
|
-
|
|
132
|
-
$[26] = props;
|
|
133
|
-
$[27] = radioGroup;
|
|
134
|
-
$[28] = t10;
|
|
135
|
-
} else t10 = $[28];
|
|
136
|
-
return t10;
|
|
114
|
+
$[18] = t6;
|
|
115
|
+
$[19] = t8;
|
|
116
|
+
$[20] = t9;
|
|
117
|
+
} else t9 = $[20];
|
|
118
|
+
const radioGroup = /* @__PURE__ */ jsx(CheckGroupElement, {
|
|
119
|
+
ref: domRef,
|
|
120
|
+
...groupProps,
|
|
121
|
+
id,
|
|
122
|
+
styles,
|
|
123
|
+
mods: t5,
|
|
124
|
+
children: t9
|
|
125
|
+
});
|
|
126
|
+
return wrapWithField(radioGroup, {
|
|
127
|
+
...props,
|
|
128
|
+
...field,
|
|
129
|
+
labelProps: mergeProps$1(baseLabelProps, labelProps)
|
|
130
|
+
});
|
|
137
131
|
}
|
|
138
132
|
/**
|
|
139
133
|
* Checkbox groups allow users to select any number of options from a list.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxGroup.js","names":["useObjectRef","BaseProps","
|
|
1
|
+
{"version":3,"file":"CheckboxGroup.js","names":["useObjectRef","BaseProps","Styles","tasty","forwardRef","AriaCheckboxGroupProps","useCheckboxGroup","useCheckboxGroupState","Provider","FieldBaseProps","mergeProps","castNullableArrayValue","WithNullableValue","FormScopeMask","useFieldProps","wrapWithField","FieldLayoutStyleProps","splitFieldLayout","CheckboxGroupContext","CheckGroupElement","qa","styles","display","placeItems","placeContent","flow","horizontal","gap","CubeCheckboxGroupProps","Omit","orientation","inputStyles","CheckboxGroup","rawProps","ref","$","_c","t0","t1","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","props","id","isDisabled","isReadOnly","isInvalid","isValid","children","t2","labelProps","baseLabelProps","undefined","domRef","field","defaultStyles","state","t3","form","groupProps","t4","t5","t6","t7","t8","t9","radioGroup","value","onChange","_CheckboxGroup","cubeInputType","displayName","_c","mergeProps"],"sources":["../../../../src/components/fields/Checkbox/CheckboxGroup.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\nimport { AriaCheckboxGroupProps, useCheckboxGroup } from 'react-aria';\nimport { useCheckboxGroupState } from 'react-stately';\n\nimport { Provider } from '../../../provider';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport {\n castNullableArrayValue,\n WithNullableValue,\n} from '../../../utils/react/nullableValue';\nimport { FormScopeMask, useFieldProps, wrapWithField } from '../../form';\nimport {\n FieldLayoutStyleProps,\n splitFieldLayout,\n} from '../../form/field-layout';\n\nimport { CheckboxGroupContext } from './context';\n\nconst CheckGroupElement = tasty({\n qa: 'CheckboxGroup',\n styles: {\n display: 'flex',\n placeItems: 'start',\n placeContent: 'start',\n flow: {\n '': 'column',\n horizontal: 'row wrap',\n },\n gap: {\n '': '1x',\n horizontal: '1x 2x',\n },\n },\n});\n\nexport interface CubeCheckboxGroupProps\n extends\n BaseProps,\n Omit<AriaCheckboxGroupProps, 'errorMessage' | 'form' | 'name'>,\n FieldBaseProps<readonly string[] | null | undefined>,\n FieldLayoutStyleProps {\n orientation?: 'vertical' | 'horizontal';\n inputStyles?: Styles;\n}\n\nfunction CheckboxGroup(\n rawProps: WithNullableValue<CubeCheckboxGroupProps>,\n ref,\n) {\n rawProps = castNullableArrayValue(rawProps);\n let props = useFieldProps(rawProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value != null ? value : [],\n onChange: onChange,\n }),\n });\n\n let {\n id,\n isDisabled,\n isReadOnly,\n isRequired,\n necessityIndicator,\n label,\n extra,\n isInvalid,\n isValid,\n children,\n orientation = 'vertical',\n message,\n description,\n labelStyles,\n labelProps: baseLabelProps,\n labelSuffix,\n inputStyles,\n form,\n } = props;\n let domRef = useObjectRef(ref);\n\n // `inputStyles` styles the group too; `styles` goes over it.\n const { styles, field } = splitFieldLayout(props, {\n defaultStyles: inputStyles,\n });\n\n let state = useCheckboxGroupState(props);\n // React Aria hands `form` to every item's input as the id of its `<form>`,\n // so the form instance would render as `form=\"[object Object]\"` on each.\n let { groupProps, labelProps } = useCheckboxGroup(\n { ...props, form: undefined },\n state,\n );\n\n // The group owns its semantics in both presentations: `isBare` omits the\n // field wrapper, so putting them there would lose its role and name.\n let radioGroup = (\n <CheckGroupElement\n ref={domRef}\n {...groupProps}\n id={id}\n styles={styles}\n mods={{\n horizontal: orientation === 'horizontal',\n }}\n >\n <FormScopeMask\n value={{\n isDisabled,\n isInvalid,\n isValid,\n }}\n >\n {/* Each checkbox is a field that reads the provider before the form\n context, so the group's own state has to reach it here to beat an\n enclosing disabled or read-only form. `<Provider>` skips\n `undefined`, so a group that sets nothing keeps the form's state. */}\n <Provider isDisabled={isDisabled} isReadOnly={isReadOnly}>\n <CheckboxGroupContext.Provider value={state}>\n {children}\n </CheckboxGroupContext.Provider>\n </Provider>\n </FormScopeMask>\n </CheckGroupElement>\n );\n\n return wrapWithField(radioGroup, {\n ...props,\n ...field,\n labelProps: mergeProps(baseLabelProps, labelProps),\n });\n}\n\n/**\n * Checkbox groups allow users to select any number of options from a list.\n * All possible options are exposed up front for users to compare.\n */\nconst _CheckboxGroup = forwardRef(CheckboxGroup);\n\n(_CheckboxGroup as any).cubeInputType = 'CheckboxGroup';\n_CheckboxGroup.displayName = 'CheckboxGroup';\n\nexport { _CheckboxGroup as CheckboxGroup };\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
|
|
2
2
|
import { createContext } from "react";
|
|
3
3
|
//#region src/components/fields/Checkbox/context.ts
|
|
4
4
|
const CheckboxGroupContext = createContext(null);
|
|
@@ -1,9 +1,10 @@
|
|
|
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
6
|
import { ColorSpace } from "../color/channels.js";
|
|
6
|
-
import { BaseProps,
|
|
7
|
+
import { BaseProps, Styles } from "@tenphi/tasty";
|
|
7
8
|
import { FocusEvent, RefObject } from "react";
|
|
8
9
|
import { Placement } from "react-aria";
|
|
9
10
|
//#region src/components/fields/ColorInput/ColorInput.d.ts
|
|
@@ -18,7 +19,7 @@ import { Placement } from "react-aria";
|
|
|
18
19
|
* unparsable entry falls back to the last valid one.
|
|
19
20
|
*/
|
|
20
21
|
export type ColorInputFormatMode = 'forced' | 'derive' | 'free';
|
|
21
|
-
export interface CubeColorInputProps extends BaseProps,
|
|
22
|
+
export interface CubeColorInputProps extends BaseProps, FieldLayoutStyleProps, FieldBaseProps<string | null | undefined> {
|
|
22
23
|
/** The selected color, as a color string. */
|
|
23
24
|
value?: string | null;
|
|
24
25
|
/** The initial color of an uncontrolled picker. */
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { ItemActionProvider } from "../../actions/ItemActionContext.js";
|
|
5
5
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
6
6
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
7
7
|
import { Dialog } from "../../overlays/Dialog/Dialog.js";
|
|
8
|
+
import { settleOverlayKey } from "../../../utils/react/overlayKeyPropagation.js";
|
|
8
9
|
import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
|
|
9
10
|
import { DialogTrigger } from "../../overlays/Dialog/DialogTrigger.js";
|
|
10
|
-
import { TextInputBase } from "../TextInput/TextInputBase.js";
|
|
11
|
+
import { TextInputBase as _TextInputBase } from "../TextInput/TextInputBase.js";
|
|
11
12
|
import { detectFormat, formatColor, parseColor } from "../color/color.js";
|
|
12
13
|
import { PipetteIcon } from "../../../icons/PipetteIcon.js";
|
|
13
14
|
import { ColorPanel } from "../color/ColorPanel.js";
|
|
@@ -208,6 +209,7 @@ const ColorInput = forwardRef(function ColorInput(allProps, ref) {
|
|
|
208
209
|
if ($[35] !== settle) {
|
|
209
210
|
t19 = (event_2) => {
|
|
210
211
|
if (event_2.key === "Enter") settle();
|
|
212
|
+
settleOverlayKey(event_2);
|
|
211
213
|
};
|
|
212
214
|
$[35] = settle;
|
|
213
215
|
$[36] = t19;
|
|
@@ -362,7 +364,7 @@ const ColorInput = forwardRef(function ColorInput(allProps, ref) {
|
|
|
362
364
|
} else t28 = $[86];
|
|
363
365
|
let t29;
|
|
364
366
|
if ($[87] !== inputStyles || $[88] !== isDisabled || $[89] !== isInvalid || $[90] !== isLoading || $[91] !== isReadOnly || $[92] !== isValid || $[93] !== props || $[94] !== ref || $[95] !== size || $[96] !== t23 || $[97] !== t24 || $[98] !== t25 || $[99] !== t26 || $[100] !== t27 || $[101] !== t28 || $[102] !== text) {
|
|
365
|
-
t29 = /* @__PURE__ */ jsx(
|
|
367
|
+
t29 = /* @__PURE__ */ jsx(_TextInputBase, {
|
|
366
368
|
...props,
|
|
367
369
|
ref,
|
|
368
370
|
value: text,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorInput.js","names":["BaseProps","BaseStyleProps","BlockStyleProps","ColorStyleProps","OuterStyleProps","Styles","tasty","FocusEvent","ForwardedRef","forwardRef","KeyboardEvent","MouseEvent","RefObject","useEffect","useRef","useState","Placement","useTextField","useEvent","useI18n","PipetteIcon","FieldBaseProps","mergeProps","ItemAction","ItemActionProvider","useFieldProps","Dialog","DialogTrigger","ColorSpace","ColorFormat","ColorValue","detectFormat","formatColor","parseColor","ColorPanel","useIsInsideColorPopover","ColorSwatch","TextInputBase","ColorInputFormatMode","POPOVER_STYLES","overflow","FALLBACK_COLOR","h","s","l","ColorInputTrigger","qa","icon","CubeColorInputProps","value","defaultValue","onChange","format","formatMode","defaultSpace","isOpen","defaultOpen","onOpenChange","shouldFlip","targetRef","HTMLElement","placement","placeholder","size","onFocus","event","HTMLInputElement","onBlur","styles","inputStyles","triggerStyles","swatchStyles","ColorInput","allProps","ref","$","_c","t","t0","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","props","value_0","onChange_0","t1","t2","t3","controlledOpen","targetRefProp","t4","t5","isDisabled","isReadOnly","isInvalid","isValid","isLoading","autoFocus","labelProps","userLabelProps","userOnBlur","label","description","ariaLabel","ariaLabelledby","ariaDescribedby","id","undefined","isInsidePopover","t6","t7","toString","initialText","t8","parsed","text","setText","t9","color","setColor","space","setSpace","setOpen","inputRef","t10","validText","emitted","t11","next","current","emit","t12","source","outputFormat","t13","t14","raw","parsed_0","nextText","t15","nextText_0","trim","parsed_1","handleTextChange","t16","parsed_2","settle","t17","currentTarget","select","handleFocus","handleMouseDown","_temp2","t18","event_1","handleBlur","t19","event_2","key","handleKeyDown","t20","nextColor","nextText_1","handleColorChange","t21","next_0","handleOpenChange","t22","type","onKeyDown","inputProps","t23","t24","t25","t26","spellCheck","onMouseDown","t27","t28","t29","cubeInputType","event_0","document","activeElement","preventDefault","focus","_c","mergeProps"],"sources":["../../../../src/components/fields/ColorInput/ColorInput.tsx"],"sourcesContent":["import {\n BaseProps,\n BaseStyleProps,\n BlockStyleProps,\n ColorStyleProps,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n RefObject,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { Placement, useTextField } from 'react-aria';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { PipetteIcon } from '../../../icons/PipetteIcon';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { ItemAction, ItemActionProvider } from '../../actions';\nimport { useFieldProps } from '../../form';\nimport { Dialog } from '../../overlays/Dialog/Dialog';\nimport { DialogTrigger } from '../../overlays/Dialog/DialogTrigger';\nimport { ColorSpace } from '../color/channels';\nimport {\n ColorFormat,\n ColorValue,\n detectFormat,\n formatColor,\n parseColor,\n} from '../color/color';\nimport { ColorPanel } from '../color/ColorPanel';\nimport { useIsInsideColorPopover } from '../color/context';\nimport { ColorSwatch } from '../ColorSwatch';\nimport { TextInputBase } from '../TextInput/TextInputBase';\n\n/**\n * How the text in the input relates to the committed value.\n *\n * - `forced` — the text is rewritten in `format` whenever it is not mid-edit,\n * and the value is always written in `format`.\n * - `derive` — the user's own notation is left alone, and the value is\n * normalized in whichever notation the text is written in.\n * - `free` — the text *is* the value, verbatim. It is still verified, so an\n * unparsable entry falls back to the last valid one.\n */\nexport type ColorInputFormatMode = 'forced' | 'derive' | 'free';\n\n/**\n * A popover caps its height at half the viewport. The panel can exceed that on\n * a short screen, and would otherwise spill outside the popover's own border.\n */\nconst POPOVER_STYLES: Styles = { overflow: 'auto' };\n\n/** What the popover starts from when there is no color to edit yet. */\nconst FALLBACK_COLOR: ColorValue = { h: 264, s: 0.8, l: 0.6 };\n\nconst ColorInputTrigger = tasty(ItemAction, {\n qa: 'ColorInputTrigger',\n icon: <PipetteIcon />,\n});\n\nexport interface CubeColorInputProps\n extends\n BaseProps,\n BaseStyleProps,\n OuterStyleProps,\n BlockStyleProps,\n ColorStyleProps,\n FieldBaseProps<string | null | undefined> {\n /** The selected color, as a color string. */\n value?: string | null;\n /** The initial color of an uncontrolled picker. */\n defaultValue?: string | null;\n /** Called with the normalized color string, or `null` when the field is cleared. */\n onChange?: (value: string | null) => void;\n /** Notation the value is written in, and the one `forced` mode displays. */\n format?: ColorFormat;\n /** How strictly the input text is tied to `format`. */\n formatMode?: ColorInputFormatMode;\n /** Color concept the popover opens with. */\n defaultSpace?: ColorSpace;\n /** Whether the popover is open. Makes the disclosure controlled. */\n isOpen?: boolean;\n /** Whether the popover is open initially. */\n defaultOpen?: boolean;\n /** Called when the popover opens or closes. */\n onOpenChange?: (isOpen: boolean) => void;\n /** Whether the popover may flip to the other side of the input. */\n shouldFlip?: boolean;\n /**\n * The ref of the element the popover should visually attach itself to.\n * Defaults to the field wrapper.\n *\n * Forwarded to `DialogTrigger`, so the anchor also becomes what outside-click\n * dismissal treats as the trigger.\n */\n targetRef?: RefObject<HTMLElement | null>;\n /**\n * Placement of the popover relative to the anchor.\n * Accepts React Aria's `Placement` strings (e.g. `'bottom start'`,\n * `'top start'`, `'right top'`, `'left top'`).\n * @default 'bottom right'\n */\n placement?: Placement;\n /** Text shown while the field is empty. */\n placeholder?: string;\n /** The size of the input. */\n size?: 'small' | 'medium' | 'large' | (string & {});\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n styles?: Styles;\n /** Styles of the text input element. */\n inputStyles?: Styles;\n /** Styles of the popover trigger button. */\n triggerStyles?: Styles;\n /** Styles of the color swatch shown inside the input. */\n swatchStyles?: Styles;\n}\n\n/**\n * A color field: the color as text, a swatch of the current value, and a\n * popover to dial it in across OKHST, OKLCH and RGB.\n */\nexport const ColorInput = forwardRef(function ColorInput(\n allProps: CubeColorInputProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n const props = useFieldProps(allProps, {\n defaultValidationTrigger: 'onBlur',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value as string | null | undefined,\n onChange,\n }),\n });\n\n const {\n qa,\n value,\n defaultValue,\n onChange,\n format = 'hex',\n formatMode = 'forced',\n defaultSpace = 'hst',\n isOpen: controlledOpen,\n defaultOpen,\n onOpenChange,\n shouldFlip,\n targetRef: targetRefProp,\n placement = 'bottom right',\n placeholder = 'Pick a color',\n size,\n isDisabled,\n isReadOnly,\n isInvalid,\n isValid,\n isLoading,\n autoFocus,\n inputStyles,\n triggerStyles,\n swatchStyles,\n labelProps: userLabelProps,\n onBlur: userOnBlur,\n onFocus,\n label,\n description,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n id,\n } = props;\n\n // Already inside a color popover: this is the value field for that popover,\n // so it must not offer a popover of its own.\n const isInsidePopover = useIsInsideColorPopover();\n\n const initialText = (value ?? defaultValue ?? '').toString();\n const [text, setText] = useState(() => {\n const parsed = parseColor(initialText);\n\n return parsed && formatMode === 'forced'\n ? formatColor(parsed, format)\n : initialText;\n });\n const [color, setColor] = useState(() => parseColor(initialText));\n const [space, setSpace] = useState<ColorSpace>(defaultSpace);\n const [isOpen, setOpen] = useState(defaultOpen ?? false);\n\n const targetRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n /** The last text that parsed, so an invalid entry has something to fall back to. */\n const validText = useRef(parseColor(initialText) ? text : '');\n /** What was last handed to `onChange`, to tell our own updates from outside ones. */\n const emitted = useRef<string | null | undefined>(value);\n\n const emit = useEvent((next: string | null) => {\n emitted.current = next;\n onChange?.(next);\n });\n\n /** The notation a value should be written in, given the current text. */\n const outputFormat = (source: string): ColorFormat =>\n formatMode === 'forced' ? format : (detectFormat(source) ?? format);\n\n // Adopt values that did not come from here — a form reset, or a parent that\n // overrides what the user picked.\n useEffect(() => {\n if (value === undefined || value === emitted.current) return;\n\n emitted.current = value;\n\n const raw = (value ?? '').toString();\n const parsed = parseColor(raw);\n const nextText =\n parsed && formatMode === 'forced' ? formatColor(parsed, format) : raw;\n\n setColor(parsed);\n setText(nextText);\n validText.current = parsed ? nextText : '';\n }, [value, format, formatMode]);\n\n const handleTextChange = useEvent((nextText: string) => {\n setText(nextText);\n\n if (!nextText.trim()) {\n setColor(null);\n validText.current = '';\n emit(null);\n\n return;\n }\n\n const parsed = parseColor(nextText);\n\n // Half-typed input keeps the last valid color, so the value stays a real\n // color at every keystroke.\n if (!parsed) return;\n\n setColor(parsed);\n validText.current = nextText;\n emit(\n formatMode === 'free'\n ? nextText.trim()\n : formatColor(parsed, outputFormat(nextText)),\n );\n });\n\n /** Resolve whatever is in the input into a real color, or undo it. */\n const settle = useEvent(() => {\n if (!text.trim()) return;\n\n const parsed = parseColor(text);\n\n if (!parsed) {\n setText(validText.current);\n\n return;\n }\n\n if (formatMode === 'forced') setText(formatColor(parsed, format));\n });\n\n /**\n * Focusing offers the whole value up for replacement, the way a hex field\n * does. The string is the unit of editing here: a single channel is tuned\n * with the sliders, not by hand-editing one number inside `oklch(…)`.\n *\n * Read off the event rather than `inputRef`, which `TextInputBase` re-points\n * through `useCombinedRefs`.\n */\n const handleFocus = useEvent((event: FocusEvent<HTMLInputElement>) => {\n event.currentTarget.select();\n onFocus?.(event);\n });\n\n /**\n * A click would otherwise drop a caret and undo that selection — the browser\n * applies it after the focus handler has run. Suppressing the default action\n * of the focusing press means no caret is ever placed; focus is then moved\n * here instead, which selects.\n *\n * Only the press that *takes* focus is suppressed, so clicking a field that\n * already has focus still positions the caret, and dragging still selects a\n * range.\n */\n const handleMouseDown = useEvent((event: MouseEvent<HTMLInputElement>) => {\n if (document.activeElement === event.currentTarget) return;\n\n event.preventDefault();\n event.currentTarget.focus();\n });\n\n const handleBlur = useEvent((event: FocusEvent<HTMLInputElement>) => {\n settle();\n userOnBlur?.(event);\n });\n\n const handleKeyDown = useEvent((event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') settle();\n });\n\n const handleColorChange = useEvent((nextColor: ColorValue) => {\n const nextText = formatColor(nextColor, outputFormat(text));\n\n setColor(nextColor);\n setText(nextText);\n validText.current = nextText;\n emit(nextText);\n });\n\n const handleOpenChange = useEvent((next: boolean) => {\n setOpen(next);\n onOpenChange?.(next);\n });\n\n const { labelProps, inputProps } = useTextField(\n {\n id,\n label,\n description,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n isDisabled,\n isReadOnly,\n isInvalid,\n autoFocus,\n placeholder,\n value: text,\n type: 'text',\n onChange: handleTextChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n },\n inputRef,\n );\n\n return (\n <TextInputBase\n {...props}\n ref={ref}\n value={text}\n defaultValue={props.defaultValue ?? undefined}\n qa={qa || 'ColorInput'}\n size={size}\n autoComplete=\"off\"\n // A flat 20px at every field size, which is what this has always rendered.\n // Neither of the other two options is right here: tracking `$size` puts a\n // large field's swatch against the border, because a text input hangs its\n // prefix off the edge with no padding of its own, and passing the field's\n // own size through grows the swatch with the field — visibly, and for no\n // reason a caller asked for. The swatch is a fixed badge, not a control.\n icon={<ColorSwatch size=\"small\" color={color} styles={swatchStyles} />}\n inputRef={inputRef}\n inputProps={{\n ...inputProps,\n spellCheck: false,\n onMouseDown: handleMouseDown,\n }}\n inputStyles={inputStyles}\n labelProps={mergeProps(labelProps, userLabelProps)}\n wrapperRef={targetRef}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n isLoading={isLoading}\n // The validation state reads left of the trigger, the way `DateInputBase`\n // orders it for the date pickers.\n suffixPosition=\"after\"\n suffix={\n isInsidePopover ? null : (\n <DialogTrigger\n hideArrow\n type=\"popover\"\n placement={placement}\n targetRef={targetRefProp ?? targetRef}\n isOpen={controlledOpen ?? isOpen}\n shouldFlip={shouldFlip}\n onOpenChange={handleOpenChange}\n >\n {/*\n The trigger is disabled by either flag, but the two arrive through\n different channels on purpose. A disabled FIELD travels through the\n provider so `current` treats the state as inherited: the field has\n already faded the colour the trigger paints from, and fading again\n multiplies the two (measured `.12` — all but invisible). Read-only\n alone leaves the field's text opaque, so there the trigger really is\n disabled on its own and should fade itself.\n */}\n <ItemActionProvider isDisabled={isDisabled}>\n <ColorInputTrigger\n size={size}\n aria-label={t(\n 'colorInput.openColorPicker',\n 'Open the color picker',\n )}\n isDisabled={isReadOnly && !isDisabled ? true : undefined}\n styles={triggerStyles}\n />\n </ItemActionProvider>\n <Dialog\n aria-label={t('colorPicker.colorPicker', 'Color picker')}\n width=\"max-content\"\n styles={POPOVER_STYLES}\n >\n <ColorPanel\n color={color ?? FALLBACK_COLOR}\n space={space}\n isDisabled={isDisabled || isReadOnly}\n previewFormat={outputFormat(text)}\n onChange={handleColorChange}\n onSpaceChange={setSpace}\n />\n </Dialog>\n </DialogTrigger>\n )\n }\n />\n );\n});\n\n(ColorInput as any).cubeInputType = 'Text';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColorInput.js","names":["BaseProps","Styles","tasty","FocusEvent","ForwardedRef","forwardRef","KeyboardEvent","MouseEvent","RefObject","useEffect","useRef","useState","Placement","useTextField","useEvent","useI18n","PipetteIcon","FieldBaseProps","mergeProps","settleOverlayKey","ItemAction","ItemActionProvider","useFieldProps","FieldLayoutStyleProps","Dialog","DialogTrigger","ColorSpace","ColorFormat","ColorValue","detectFormat","formatColor","parseColor","ColorPanel","useIsInsideColorPopover","ColorSwatch","TextInputBase","ColorInputFormatMode","POPOVER_STYLES","overflow","FALLBACK_COLOR","h","s","l","ColorInputTrigger","qa","icon","CubeColorInputProps","value","defaultValue","onChange","format","formatMode","defaultSpace","isOpen","defaultOpen","onOpenChange","shouldFlip","targetRef","HTMLElement","placement","placeholder","size","onFocus","event","HTMLInputElement","onBlur","styles","inputStyles","triggerStyles","swatchStyles","ColorInput","allProps","ref","$","_c","t","t0","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","props","value_0","onChange_0","t1","t2","t3","controlledOpen","targetRefProp","t4","t5","isDisabled","isReadOnly","isInvalid","isValid","isLoading","autoFocus","labelProps","userLabelProps","userOnBlur","label","description","ariaLabel","ariaLabelledby","ariaDescribedby","id","undefined","isInsidePopover","t6","t7","toString","initialText","t8","parsed","text","setText","t9","color","setColor","space","setSpace","setOpen","inputRef","t10","validText","emitted","t11","next","current","emit","t12","source","outputFormat","t13","t14","raw","parsed_0","nextText","t15","nextText_0","trim","parsed_1","handleTextChange","t16","parsed_2","settle","t17","currentTarget","select","handleFocus","handleMouseDown","_temp2","t18","event_1","handleBlur","t19","event_2","key","handleKeyDown","t20","nextColor","nextText_1","handleColorChange","t21","next_0","handleOpenChange","t22","type","onKeyDown","inputProps","t23","t24","t25","t26","spellCheck","onMouseDown","t27","t28","t29","cubeInputType","event_0","document","activeElement","preventDefault","focus","_c","mergeProps","TextInputBase"],"sources":["../../../../src/components/fields/ColorInput/ColorInput.tsx"],"sourcesContent":["import { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n RefObject,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { Placement, useTextField } from 'react-aria';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { PipetteIcon } from '../../../icons/PipetteIcon';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { settleOverlayKey } from '../../../utils/react/overlayKeyPropagation';\nimport { ItemAction, ItemActionProvider } from '../../actions';\nimport { useFieldProps } from '../../form';\nimport { FieldLayoutStyleProps } from '../../form/field-layout';\nimport { Dialog } from '../../overlays/Dialog/Dialog';\nimport { DialogTrigger } from '../../overlays/Dialog/DialogTrigger';\nimport { ColorSpace } from '../color/channels';\nimport {\n ColorFormat,\n ColorValue,\n detectFormat,\n formatColor,\n parseColor,\n} from '../color/color';\nimport { ColorPanel } from '../color/ColorPanel';\nimport { useIsInsideColorPopover } from '../color/context';\nimport { ColorSwatch } from '../ColorSwatch';\nimport { TextInputBase } from '../TextInput/TextInputBase';\n\n/**\n * How the text in the input relates to the committed value.\n *\n * - `forced` — the text is rewritten in `format` whenever it is not mid-edit,\n * and the value is always written in `format`.\n * - `derive` — the user's own notation is left alone, and the value is\n * normalized in whichever notation the text is written in.\n * - `free` — the text *is* the value, verbatim. It is still verified, so an\n * unparsable entry falls back to the last valid one.\n */\nexport type ColorInputFormatMode = 'forced' | 'derive' | 'free';\n\n/**\n * A popover caps its height at half the viewport. The panel can exceed that on\n * a short screen, and would otherwise spill outside the popover's own border.\n */\nconst POPOVER_STYLES: Styles = { overflow: 'auto' };\n\n/** What the popover starts from when there is no color to edit yet. */\nconst FALLBACK_COLOR: ColorValue = { h: 264, s: 0.8, l: 0.6 };\n\nconst ColorInputTrigger = tasty(ItemAction, {\n qa: 'ColorInputTrigger',\n icon: <PipetteIcon />,\n});\n\nexport interface CubeColorInputProps\n extends\n BaseProps,\n FieldLayoutStyleProps,\n FieldBaseProps<string | null | undefined> {\n /** The selected color, as a color string. */\n value?: string | null;\n /** The initial color of an uncontrolled picker. */\n defaultValue?: string | null;\n /** Called with the normalized color string, or `null` when the field is cleared. */\n onChange?: (value: string | null) => void;\n /** Notation the value is written in, and the one `forced` mode displays. */\n format?: ColorFormat;\n /** How strictly the input text is tied to `format`. */\n formatMode?: ColorInputFormatMode;\n /** Color concept the popover opens with. */\n defaultSpace?: ColorSpace;\n /** Whether the popover is open. Makes the disclosure controlled. */\n isOpen?: boolean;\n /** Whether the popover is open initially. */\n defaultOpen?: boolean;\n /** Called when the popover opens or closes. */\n onOpenChange?: (isOpen: boolean) => void;\n /** Whether the popover may flip to the other side of the input. */\n shouldFlip?: boolean;\n /**\n * The ref of the element the popover should visually attach itself to.\n * Defaults to the field wrapper.\n *\n * Forwarded to `DialogTrigger`, so the anchor also becomes what outside-click\n * dismissal treats as the trigger.\n */\n targetRef?: RefObject<HTMLElement | null>;\n /**\n * Placement of the popover relative to the anchor.\n * Accepts React Aria's `Placement` strings (e.g. `'bottom start'`,\n * `'top start'`, `'right top'`, `'left top'`).\n * @default 'bottom right'\n */\n placement?: Placement;\n /** Text shown while the field is empty. */\n placeholder?: string;\n /** The size of the input. */\n size?: 'small' | 'medium' | 'large' | (string & {});\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n styles?: Styles;\n /** Styles of the text input element. */\n inputStyles?: Styles;\n /** Styles of the popover trigger button. */\n triggerStyles?: Styles;\n /** Styles of the color swatch shown inside the input. */\n swatchStyles?: Styles;\n}\n\n/**\n * A color field: the color as text, a swatch of the current value, and a\n * popover to dial it in across OKHST, OKLCH and RGB.\n */\nexport const ColorInput = forwardRef(function ColorInput(\n allProps: CubeColorInputProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n const props = useFieldProps(allProps, {\n defaultValidationTrigger: 'onBlur',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value as string | null | undefined,\n onChange,\n }),\n });\n\n const {\n qa,\n value,\n defaultValue,\n onChange,\n format = 'hex',\n formatMode = 'forced',\n defaultSpace = 'hst',\n isOpen: controlledOpen,\n defaultOpen,\n onOpenChange,\n shouldFlip,\n targetRef: targetRefProp,\n placement = 'bottom right',\n placeholder = 'Pick a color',\n size,\n isDisabled,\n isReadOnly,\n isInvalid,\n isValid,\n isLoading,\n autoFocus,\n inputStyles,\n triggerStyles,\n swatchStyles,\n labelProps: userLabelProps,\n onBlur: userOnBlur,\n onFocus,\n label,\n description,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n id,\n } = props;\n\n // Already inside a color popover: this is the value field for that popover,\n // so it must not offer a popover of its own.\n const isInsidePopover = useIsInsideColorPopover();\n\n const initialText = (value ?? defaultValue ?? '').toString();\n const [text, setText] = useState(() => {\n const parsed = parseColor(initialText);\n\n return parsed && formatMode === 'forced'\n ? formatColor(parsed, format)\n : initialText;\n });\n const [color, setColor] = useState(() => parseColor(initialText));\n const [space, setSpace] = useState<ColorSpace>(defaultSpace);\n const [isOpen, setOpen] = useState(defaultOpen ?? false);\n\n const targetRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n /** The last text that parsed, so an invalid entry has something to fall back to. */\n const validText = useRef(parseColor(initialText) ? text : '');\n /** What was last handed to `onChange`, to tell our own updates from outside ones. */\n const emitted = useRef<string | null | undefined>(value);\n\n const emit = useEvent((next: string | null) => {\n emitted.current = next;\n onChange?.(next);\n });\n\n /** The notation a value should be written in, given the current text. */\n const outputFormat = (source: string): ColorFormat =>\n formatMode === 'forced' ? format : (detectFormat(source) ?? format);\n\n // Adopt values that did not come from here — a form reset, or a parent that\n // overrides what the user picked.\n useEffect(() => {\n if (value === undefined || value === emitted.current) return;\n\n emitted.current = value;\n\n const raw = (value ?? '').toString();\n const parsed = parseColor(raw);\n const nextText =\n parsed && formatMode === 'forced' ? formatColor(parsed, format) : raw;\n\n setColor(parsed);\n setText(nextText);\n validText.current = parsed ? nextText : '';\n }, [value, format, formatMode]);\n\n const handleTextChange = useEvent((nextText: string) => {\n setText(nextText);\n\n if (!nextText.trim()) {\n setColor(null);\n validText.current = '';\n emit(null);\n\n return;\n }\n\n const parsed = parseColor(nextText);\n\n // Half-typed input keeps the last valid color, so the value stays a real\n // color at every keystroke.\n if (!parsed) return;\n\n setColor(parsed);\n validText.current = nextText;\n emit(\n formatMode === 'free'\n ? nextText.trim()\n : formatColor(parsed, outputFormat(nextText)),\n );\n });\n\n /** Resolve whatever is in the input into a real color, or undo it. */\n const settle = useEvent(() => {\n if (!text.trim()) return;\n\n const parsed = parseColor(text);\n\n if (!parsed) {\n setText(validText.current);\n\n return;\n }\n\n if (formatMode === 'forced') setText(formatColor(parsed, format));\n });\n\n /**\n * Focusing offers the whole value up for replacement, the way a hex field\n * does. The string is the unit of editing here: a single channel is tuned\n * with the sliders, not by hand-editing one number inside `oklch(…)`.\n *\n * Read off the event rather than `inputRef`, which `TextInputBase` re-points\n * through `useCombinedRefs`.\n */\n const handleFocus = useEvent((event: FocusEvent<HTMLInputElement>) => {\n event.currentTarget.select();\n onFocus?.(event);\n });\n\n /**\n * A click would otherwise drop a caret and undo that selection — the browser\n * applies it after the focus handler has run. Suppressing the default action\n * of the focusing press means no caret is ever placed; focus is then moved\n * here instead, which selects.\n *\n * Only the press that *takes* focus is suppressed, so clicking a field that\n * already has focus still positions the caret, and dragging still selects a\n * range.\n */\n const handleMouseDown = useEvent((event: MouseEvent<HTMLInputElement>) => {\n if (document.activeElement === event.currentTarget) return;\n\n event.preventDefault();\n event.currentTarget.focus();\n });\n\n const handleBlur = useEvent((event: FocusEvent<HTMLInputElement>) => {\n settle();\n userOnBlur?.(event);\n });\n\n const handleKeyDown = useEvent((event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') settle();\n // React Aria holds every key this handler sees; `Escape` and `Tab` belong\n // to the overlay around the field.\n settleOverlayKey(event);\n });\n\n const handleColorChange = useEvent((nextColor: ColorValue) => {\n const nextText = formatColor(nextColor, outputFormat(text));\n\n setColor(nextColor);\n setText(nextText);\n validText.current = nextText;\n emit(nextText);\n });\n\n const handleOpenChange = useEvent((next: boolean) => {\n setOpen(next);\n onOpenChange?.(next);\n });\n\n const { labelProps, inputProps } = useTextField(\n {\n id,\n label,\n description,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n isDisabled,\n isReadOnly,\n isInvalid,\n autoFocus,\n placeholder,\n value: text,\n type: 'text',\n onChange: handleTextChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n },\n inputRef,\n );\n\n return (\n <TextInputBase\n {...props}\n ref={ref}\n value={text}\n defaultValue={props.defaultValue ?? undefined}\n qa={qa || 'ColorInput'}\n size={size}\n autoComplete=\"off\"\n // A flat 20px at every field size, which is what this has always rendered.\n // Neither of the other two options is right here: tracking `$size` puts a\n // large field's swatch against the border, because a text input hangs its\n // prefix off the edge with no padding of its own, and passing the field's\n // own size through grows the swatch with the field — visibly, and for no\n // reason a caller asked for. The swatch is a fixed badge, not a control.\n icon={<ColorSwatch size=\"small\" color={color} styles={swatchStyles} />}\n inputRef={inputRef}\n inputProps={{\n ...inputProps,\n spellCheck: false,\n onMouseDown: handleMouseDown,\n }}\n inputStyles={inputStyles}\n labelProps={mergeProps(labelProps, userLabelProps)}\n wrapperRef={targetRef}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n isLoading={isLoading}\n // The validation state reads left of the trigger, the way `DateInputBase`\n // orders it for the date pickers.\n suffixPosition=\"after\"\n suffix={\n isInsidePopover ? null : (\n <DialogTrigger\n hideArrow\n type=\"popover\"\n placement={placement}\n targetRef={targetRefProp ?? targetRef}\n isOpen={controlledOpen ?? isOpen}\n shouldFlip={shouldFlip}\n onOpenChange={handleOpenChange}\n >\n {/*\n The trigger is disabled by either flag, but the two arrive through\n different channels on purpose. A disabled FIELD travels through the\n provider so `current` treats the state as inherited: the field has\n already faded the colour the trigger paints from, and fading again\n multiplies the two (measured `.12` — all but invisible). Read-only\n alone leaves the field's text opaque, so there the trigger really is\n disabled on its own and should fade itself.\n */}\n <ItemActionProvider isDisabled={isDisabled}>\n <ColorInputTrigger\n size={size}\n aria-label={t(\n 'colorInput.openColorPicker',\n 'Open the color picker',\n )}\n isDisabled={isReadOnly && !isDisabled ? true : undefined}\n styles={triggerStyles}\n />\n </ItemActionProvider>\n <Dialog\n aria-label={t('colorPicker.colorPicker', 'Color picker')}\n width=\"max-content\"\n styles={POPOVER_STYLES}\n >\n <ColorPanel\n color={color ?? FALLBACK_COLOR}\n space={space}\n isDisabled={isDisabled || isReadOnly}\n previewFormat={outputFormat(text)}\n onChange={handleColorChange}\n onSpaceChange={setSpace}\n />\n </Dialog>\n </DialogTrigger>\n )\n }\n />\n );\n});\n\n(ColorInput as any).cubeInputType = 'Text';\n"],"mappings":"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"}
|