@cube-dev/ui-kit 0.206.3 → 0.208.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/dist/CHANGELOG.md +18 -0
- 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-sync-ref.js.map +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.d.ts +0 -2
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/CollectionItem.js.map +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/GridProvider.js.map +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +3 -3
- package/dist/components/Root.js.map +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Banner/Banner.js.map +1 -1
- package/dist/components/actions/Button/Button.d.ts +10 -1
- package/dist/components/actions/Button/Button.js +13 -8
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/Button/index.d.ts +16 -1
- package/dist/components/actions/Button/index.js +13 -0
- package/dist/components/actions/Button/index.js.map +1 -0
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.d.ts +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +2 -2
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.d.ts +0 -2
- package/dist/components/actions/ItemButton/ItemButton.js +2 -2
- package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.d.ts +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/Menu.js.map +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +2 -2
- package/dist/components/actions/Menu/MenuItem.js.map +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +3 -3
- package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +2 -2
- package/dist/components/actions/Menu/SubMenuTrigger.js.map +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/index.d.ts +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.d.ts +6 -18
- package/dist/components/actions/use-action.js +2 -2
- package/dist/components/actions/use-action.js.map +1 -1
- package/dist/components/actions/use-anchored-menu.d.ts +0 -1
- package/dist/components/actions/use-anchored-menu.js +2 -2
- package/dist/components/actions/use-anchored-menu.js.map +1 -1
- package/dist/components/actions/use-context-menu.d.ts +0 -1
- package/dist/components/actions/use-context-menu.js +2 -2
- package/dist/components/actions/use-context-menu.js.map +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js.map +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/Alert/use-alert.js.map +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.d.ts +0 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Badge/Badge.js.map +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/Content.js.map +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -3
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.d.ts +2 -18
- package/dist/components/content/CopySnippet/CopySnippet.js +2 -2
- package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
- package/dist/components/content/Disclosure/Disclosure.d.ts +0 -1
- package/dist/components/content/Disclosure/Disclosure.js +2 -2
- package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
- package/dist/components/content/Divider/Divider.js +1 -1
- package/dist/components/content/Divider/Divider.js.map +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Footer.js.map +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/Header.js.map +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
- package/dist/components/content/Item/Item.d.ts +1 -2
- package/dist/components/content/Item/Item.js +4 -4
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +2 -2
- package/dist/components/content/Item/index.d.ts +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemBadge/index.d.ts +1 -2
- 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/Layout.js.map +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/LayoutContainer.js.map +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js.map +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js.map +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/LayoutHeader.js.map +1 -1
- package/dist/components/content/Layout/LayoutPane.js +2 -2
- package/dist/components/content/Layout/LayoutPane.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +3 -3
- package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js.map +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/Placeholder/Placeholder.js.map +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 +2 -2
- package/dist/components/content/Result/Result.js.map +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/content/Tag/Tag.d.ts +0 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Tag/Tag.js.map +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/Title.js.map +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +5 -5
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/checked-keys.js +1 -1
- package/dist/components/content/Tree/rowId.js +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/styled.js.map +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/types.d.ts +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- 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/Tree/use-load-data.js.map +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/DataTable/DataTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +2 -2
- package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -2
- package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
- package/dist/components/data/ItemTable/item-table-sections.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js.map +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/TableHeaderCell.js.map +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableRow.js.map +1 -1
- package/dist/components/data/TableBase/TableRowLink.js +1 -1
- package/dist/components/data/TableBase/TableView.js +6 -6
- 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-menu.js.map +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 +1 -1
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-body-sections.js +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-cell-selection.js.map +1 -1
- package/dist/components/data/TableBase/use-column-menu.js +2 -2
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js.map +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-selection.js.map +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js.map +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/TableBase/use-table-tree-state.js.map +1 -1
- package/dist/components/fields/Checkbox/Checkbox.d.ts +0 -1
- package/dist/components/fields/Checkbox/Checkbox.js +3 -3
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +0 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +3 -3
- 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 +0 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.d.ts +0 -3
- package/dist/components/fields/ColorPicker/ColorPicker.js +3 -3
- 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 +0 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +2 -2
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +0 -1
- package/dist/components/fields/ComboBox/ComboBox.js +6 -6
- 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.d.ts +1 -2
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +2 -2
- 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/CalendarPopover.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.d.ts +0 -1
- package/dist/components/fields/DatePicker/DateInput.js +2 -2
- package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.d.ts +0 -1
- package/dist/components/fields/DatePicker/DatePicker.js +2 -2
- package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js.map +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/DatePickerInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.d.ts +0 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +2 -2
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +0 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +2 -2
- 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 +0 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +2 -2
- 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 +0 -1
- package/dist/components/fields/DatePicker/TimeInput.js +2 -2
- 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 +0 -1
- package/dist/components/fields/FileInput/FileInput.js +3 -3
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +3 -3
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterListBox/styled.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.d.ts +0 -3
- package/dist/components/fields/FilterPicker/FilterPicker.js +8 -8
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterTree.js +2 -2
- package/dist/components/fields/FilterPicker/FilterTree.js.map +1 -1
- package/dist/components/fields/Input/Input.d.ts +0 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/Input/Input.js.map +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +4 -4
- 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 +2 -2
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.d.ts +0 -2
- package/dist/components/fields/Picker/Picker.js +8 -8
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.d.ts +0 -1
- package/dist/components/fields/RadioGroup/Radio.js +2 -2
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.d.ts +0 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +3 -3
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +0 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +6 -6
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +2 -2
- package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/fields/Select/Select.d.ts +1 -2
- package/dist/components/fields/Select/Select.js +7 -7
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/Slider.js.map +1 -1
- package/dist/components/fields/Slider/SliderBase.js +2 -2
- package/dist/components/fields/Slider/SliderBase.js.map +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +2 -2
- package/dist/components/fields/Slider/types.d.ts +0 -1
- package/dist/components/fields/Switch/Switch.d.ts +0 -1
- package/dist/components/fields/Switch/Switch.js +3 -3
- package/dist/components/fields/Switch/Switch.js.map +1 -1
- package/dist/components/fields/TagInput/TagInput.js +5 -5
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/TagList.js.map +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 +2 -2
- package/dist/components/fields/TextArea/TextArea.js.map +1 -1
- package/dist/components/fields/TextInput/TextInput.js +2 -2
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +0 -1
- package/dist/components/fields/TextInput/TextInputBase.js +3 -3
- 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/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.d.ts +0 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +3 -3
- package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/ColorPanel.js.map +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 +2 -2
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +1 -1
- package/dist/components/form/FieldWrapper/types.d.ts +0 -1
- package/dist/components/form/Form/Field.d.ts +0 -1
- package/dist/components/form/Form/Field.js +3 -3
- package/dist/components/form/Form/Field.js.map +1 -1
- package/dist/components/form/Form/Form.d.ts +1 -26
- package/dist/components/form/Form/Form.js +7 -116
- package/dist/components/form/Form/Form.js.map +1 -1
- package/dist/components/form/Form/FormContext.d.ts +30 -0
- package/dist/components/form/Form/FormContext.js +79 -0
- package/dist/components/form/Form/FormContext.js.map +1 -0
- package/dist/components/form/Form/FormElement.js +49 -0
- package/dist/components/form/Form/FormElement.js.map +1 -0
- package/dist/components/form/Form/ModernFormRoot.js +3 -2
- package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +2 -2
- package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +2 -2
- package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/dist/components/form/Form/SubmitError.d.ts +0 -1
- package/dist/components/form/Form/SubmitError.js +3 -3
- package/dist/components/form/Form/SubmitError.js.map +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.d.ts +2 -1
- package/dist/components/form/Form/index.js +6 -5
- package/dist/components/form/Form/index.js.map +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/types.d.ts +0 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +2 -2
- package/dist/components/form/Form/use-field/use-field-props.js +4 -4
- package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
- package/dist/components/form/Form/use-field/use-field.d.ts +0 -1
- package/dist/components/form/Form/use-field/use-field.js +2 -2
- package/dist/components/form/Form/use-field/use-field.js.map +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.d.ts +0 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/Label.js.map +1 -1
- package/dist/components/form/field-chrome.js +1 -1
- package/dist/components/form/field-layout.js +1 -1
- package/dist/components/form/field-layout.js.map +1 -1
- package/dist/components/form/index.d.ts +2 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.d.ts +0 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
- package/dist/components/form/validation/resolve-validation-props.d.ts +0 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js.map +1 -1
- package/dist/components/form/wrapper.d.ts +0 -1
- package/dist/components/form/wrapper.js +1 -1
- 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/Prefix.js.map +1 -1
- package/dist/components/layout/ResizablePanel.js +2 -2
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/layout/Suffix.js.map +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +3 -3
- package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js.map +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 +4 -4
- package/dist/components/navigation/Tabs/TabButton.js.map +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/TabPicker.js.map +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +2 -2
- 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/segmented-styles.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.d.ts +2 -2
- 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 +2 -2
- package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +2 -2
- package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
- package/dist/components/overlays/AlertDialog/types.d.ts +0 -1
- package/dist/components/overlays/Dialog/Dialog.js +2 -2
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +2 -2
- package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.d.ts +0 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +5 -5
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +2 -2
- package/dist/components/overlays/Dialog/ModernDialogForm.js.map +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-container.js.map +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
- package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +1 -1
- package/dist/components/overlays/Dialog/use-dismiss-confirmation.js.map +1 -1
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +2 -2
- package/dist/components/overlays/Modal/Modal.js.map +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js.map +1 -1
- package/dist/components/overlays/Modal/Popover.js +2 -2
- package/dist/components/overlays/Modal/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +2 -2
- package/dist/components/overlays/Modal/Tray.js.map +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/NotificationAction.js.map +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js.map +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/NotificationItem.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +2 -2
- package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/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-notification-state.js.map +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js.map +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-persistent-state.js.map +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +2 -2
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
- package/dist/components/overlays/Toast/useToast.js +2 -2
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +3 -3
- package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/context.js.map +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/LoadingAnimation/LoadingAnimation.js.map +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 +8 -32
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +5 -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 +4 -4
- package/dist/i18n/instance.js +3 -3
- 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 +29 -27
- package/dist/index.js +69 -69
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +2 -2
- 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/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 +23 -11
- package/dist/tokens/palette.js.map +1 -1
- package/dist/tokens/resolve.js +2 -2
- 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/index.d.ts +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 +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.d.ts +3 -3
- package/dist/utils/react/index.js +13 -13
- 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 +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/useOverlayEscapeGuard.js.map +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/components/actions/Button.md +10 -0
- package/docs/components/actions/ButtonSplit.md +1 -1
- package/docs/glaze/contrast.mdx +751 -0
- package/docs/glaze/exporting.mdx +635 -0
- package/docs/glaze/getting-started.mdx +487 -0
- package/docs/glaze/hdr.mdx +523 -0
- package/docs/glaze/methodology.mdx +979 -0
- package/docs/glaze/migration.md +476 -285
- package/docs/glaze/mixes.mdx +348 -0
- package/docs/glaze/okhst.mdx +692 -0
- package/docs/glaze/reference/color-definitions.md +552 -0
- package/docs/glaze/reference/color-tokens.md +421 -0
- package/docs/glaze/reference/configuration.md +532 -0
- package/docs/glaze/reference/contrast.md +279 -0
- package/docs/glaze/reference/index.md +225 -0
- package/docs/glaze/reference/output.md +714 -0
- package/docs/glaze/reference/palette.md +435 -0
- package/docs/glaze/reference/theme.md +332 -0
- package/docs/glaze/reference/utilities.md +646 -0
- package/docs/glaze/schemes.mdx +644 -0
- package/docs/glaze/shadows-and-glows.mdx +550 -0
- package/package.json +4 -4
- package/dist/components/actions/index.js +0 -29
- package/dist/components/actions/index.js.map +0 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.d.ts +0 -4
- package/dist/components/fields/ListBoxPopover/index.d.ts +0 -5
- package/dist/components/overlays/Modal/Modal.d.ts +0 -3
- package/dist/components/overlays/Modal/Popover.d.ts +0 -7
- package/dist/components/overlays/Modal/Tray.d.ts +0 -5
- package/dist/components/overlays/Modal/Underlay.d.ts +0 -3
- package/dist/components/overlays/Modal/index.d.ts +0 -8
- package/docs/glaze/api.md +0 -2021
- package/docs/glaze/methodology.md +0 -686
- package/docs/glaze/okhst.md +0 -207
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
3
3
|
import { ModernControllerContext } from "./modern/context.js";
|
|
4
|
-
import { FormContext } from "./
|
|
5
|
-
import { useFormSelector } from "./modern/react.js";
|
|
4
|
+
import { FormContext } from "./FormContext.js";
|
|
6
5
|
import { Alert } from "../../content/Alert/Alert.js";
|
|
6
|
+
import { useFormSelector } from "./modern/react.js";
|
|
7
7
|
import { c } from "react/compiler-runtime";
|
|
8
8
|
import { forwardRef, isValidElement, useContext } from "react";
|
|
9
9
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubmitError.js","names":["ForwardedRef","forwardRef","isValidElement","ReactNode","useContext","useI18n","Alert","CubeAlertProps","FormContext","ModernControllerContext","useFormSelector","FormController","SubmitErrorContextProps","submitError","CubeSubmitErrorProps","form","renderError","error","ErrorAlert","t0","ref","$","_c","props","t","t2","t3","t1","ForwardedErrorAlert","ModernSubmitError","alertRef","_temp","state","SubmitError","context","modern","legacy","_SubmitError","displayName","_c"],"sources":["../../../../src/components/form/Form/SubmitError.tsx"],"sourcesContent":["import {\n ForwardedRef,\n forwardRef,\n isValidElement,\n ReactNode,\n useContext,\n} from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { Alert
|
|
1
|
+
{"version":3,"file":"SubmitError.js","names":["ForwardedRef","forwardRef","isValidElement","ReactNode","useContext","useI18n","Alert","CubeAlertProps","FormContext","ModernControllerContext","useFormSelector","FormController","SubmitErrorContextProps","submitError","CubeSubmitErrorProps","form","renderError","error","ErrorAlert","t0","ref","$","_c","props","t","t2","t3","t1","ForwardedErrorAlert","ModernSubmitError","alertRef","_temp","state","SubmitError","context","modern","legacy","_SubmitError","displayName","_c"],"sources":["../../../../src/components/form/Form/SubmitError.tsx"],"sourcesContent":["import {\n ForwardedRef,\n forwardRef,\n isValidElement,\n ReactNode,\n useContext,\n} from 'react';\n\nimport { useI18n } from '../../../i18n/useI18n';\nimport { Alert } from '../../content/Alert/Alert';\nimport { CubeAlertProps } from '../../content/Alert/types';\n\nimport { FormContext } from './FormContext';\nimport { ModernControllerContext } from './modern/context';\nimport { useFormSelector } from './modern/react';\n\nimport type { FormController } from './modern/controller';\n\ntype SubmitErrorContextProps = {\n submitError?: unknown;\n};\n\nexport interface CubeSubmitErrorProps extends CubeAlertProps {\n form?: FormController<any>;\n renderError?: (error: unknown) => ReactNode;\n}\n\nfunction ErrorAlert(\n {\n submitError,\n renderError,\n ...props\n }: CubeSubmitErrorProps & SubmitErrorContextProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { t } = useI18n();\n\n if (!submitError) {\n return null;\n }\n\n if (renderError)\n return (\n <Alert ref={ref} theme=\"danger\" {...props}>\n {renderError(submitError)}\n </Alert>\n );\n\n if (\n !isValidElement(submitError as ReactNode) &&\n typeof submitError !== 'string'\n ) {\n submitError = t('form.internalError', 'Internal error');\n }\n\n return (\n <Alert ref={ref} theme=\"danger\" {...props}>\n {submitError as ReactNode}\n </Alert>\n );\n}\n\nconst ForwardedErrorAlert = forwardRef(ErrorAlert);\n\nfunction ModernSubmitError({\n form,\n alertRef,\n ...props\n}: CubeSubmitErrorProps & {\n form: FormController<any>;\n alertRef: ForwardedRef<HTMLDivElement>;\n}) {\n const submitError = useFormSelector(form, (state) => state.submitError);\n return (\n <ForwardedErrorAlert {...props} ref={alertRef} submitError={submitError} />\n );\n}\n\nfunction SubmitError(\n { form, ...props }: CubeSubmitErrorProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const context = useContext(ModernControllerContext);\n const modern = form ?? context;\n const legacy = useContext(FormContext) as SubmitErrorContextProps;\n return modern ? (\n <ModernSubmitError {...props} form={modern} alertRef={ref} />\n ) : (\n <ForwardedErrorAlert\n {...props}\n ref={ref}\n submitError={legacy.submitError}\n />\n );\n}\n\n/**\n * An alert that shows a form error message received from the onSubmit callback.\n */\nconst _SubmitError = forwardRef(SubmitError);\n\n_SubmitError.displayName = 'SubmitError';\n\nexport { _SubmitError as SubmitError };\n"],"mappings":"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"}
|
|
@@ -9,9 +9,10 @@ import { FormField, FormFieldContext, FormFieldOptions } from "./modern/field.js
|
|
|
9
9
|
import { FieldTypes, Fields } from "./types.js";
|
|
10
10
|
import { CubeFormInstance, useForm } from "./use-form.js";
|
|
11
11
|
import { ModernFormProps } from "./ModernFormRoot.js";
|
|
12
|
-
import { CubeFormProps,
|
|
12
|
+
import { CubeFormProps, FormRootComponent } from "./Form.js";
|
|
13
13
|
import { CubeSubmitButtonProps, SubmitButton as _SubmitButton } from "./SubmitButton/SubmitButton.js";
|
|
14
14
|
import { CubeFieldProps, Field } from "./Field.js";
|
|
15
|
+
import { FormContext, FormScopeMask, useFormProps } from "./FormContext.js";
|
|
15
16
|
import { useFormControllerContext } from "./modern/context.js";
|
|
16
17
|
import { FormSelectorOptions, FormSubscribe, FormSubscribeProps, useFormController, useFormFieldState, useFormSelector, useFormValue } from "./modern/react.js";
|
|
17
18
|
import { CubeResetButtonProps, ResetButton as _ResetButton } from "./ResetButton/ResetButton.js";
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { useFormControllerContext } from "./modern/context.js";
|
|
3
|
-
import {
|
|
4
|
-
import { Form as _Form, FormContext, FormScopeMask, useFormProps } from "./Form.js";
|
|
3
|
+
import { FormContext, FormScopeMask, useFormProps } from "./FormContext.js";
|
|
5
4
|
import { useField } from "./use-field/use-field.js";
|
|
6
|
-
import { useFieldProps } from "./use-field/use-field-props.js";
|
|
7
5
|
import { Field } from "./Field.js";
|
|
6
|
+
import { useFieldProps } from "./use-field/use-field-props.js";
|
|
7
|
+
import { useForm } from "./use-form.js";
|
|
8
|
+
import { Form as _Form } from "./Form.js";
|
|
8
9
|
import { FormSubscribe, useFormController, useFormFieldState, useFormSelector, useFormValue } from "./modern/react.js";
|
|
9
|
-
import { ResetButton as _ResetButton } from "./ResetButton/ResetButton.js";
|
|
10
10
|
import { SubmitButton as _SubmitButton } from "./SubmitButton/SubmitButton.js";
|
|
11
|
+
import { ResetButton as _ResetButton } from "./ResetButton/ResetButton.js";
|
|
11
12
|
import { SubmitError as _SubmitError } from "./SubmitError.js";
|
|
12
13
|
//#region src/components/form/Form/index.ts
|
|
13
14
|
const Form = Object.assign(_Form, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Field","Form","_Form","FormContext","FormScopeMask","useFormProps","useFormControllerContext","FormSubscribe","useFormController","useFormFieldState","useFormSelector","useFormValue","ResetButton","SubmitButton","SubmitError","useForm","FormRootComponent","FormComponent","Item","Submit","Reset","useController","useSelector","useValue","useFieldState","Subscribe","useControllerContext","Object","assign","CubeFormProps","CubeFieldProps","ModernFormProps","FormController","ModernFormState","ModernFieldState","ModernSubmitFailure","UseFormControllerOptions","ModernValidationRule","ModernValidationResult","ModernFieldValidationResult","ModernSubmitResult","FormSelectorOptions","FormSubscribeProps","FormChange","SetValueOptions","ModernSubmitContext","ModernValidationContext","FormPath","FormValueAtPath","CubeFormInstance","FieldTypes","Fields","FormField","FormFieldOptions","FormFieldContext","FormReadValue","FormValues","SubmitButton","ResetButton"],"sources":["../../../../src/components/form/Form/index.ts"],"sourcesContent":["import { Field } from './Field';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","names":["Field","Form","_Form","FormContext","FormScopeMask","useFormProps","useFormControllerContext","FormSubscribe","useFormController","useFormFieldState","useFormSelector","useFormValue","ResetButton","SubmitButton","SubmitError","useForm","FormRootComponent","FormComponent","Item","Submit","Reset","useController","useSelector","useValue","useFieldState","Subscribe","useControllerContext","Object","assign","CubeFormProps","CubeFieldProps","ModernFormProps","FormController","ModernFormState","ModernFieldState","ModernSubmitFailure","UseFormControllerOptions","ModernValidationRule","ModernValidationResult","ModernFieldValidationResult","ModernSubmitResult","FormSelectorOptions","FormSubscribeProps","FormChange","SetValueOptions","ModernSubmitContext","ModernValidationContext","FormPath","FormValueAtPath","CubeFormInstance","FieldTypes","Fields","FormField","FormFieldOptions","FormFieldContext","FormReadValue","FormValues","SubmitButton","ResetButton"],"sources":["../../../../src/components/form/Form/index.ts"],"sourcesContent":["import { Field } from './Field';\nimport { Form as _Form } from './Form';\nimport { FormContext, FormScopeMask, useFormProps } from './FormContext';\nimport { useFormControllerContext } from './modern/context';\nimport {\n FormSubscribe,\n useFormController,\n useFormFieldState,\n useFormSelector,\n useFormValue,\n} from './modern/react';\nimport { ResetButton } from './ResetButton';\nimport { SubmitButton } from './SubmitButton';\nimport { SubmitError } from './SubmitError';\nimport { useForm } from './use-form';\n\nimport type { FormRootComponent } from './Form';\n\nexport interface FormComponent extends FormRootComponent {\n Item: typeof Field;\n SubmitError: typeof SubmitError;\n Submit: typeof SubmitButton;\n Reset: typeof ResetButton;\n useForm: typeof useForm;\n useController: typeof useFormController;\n useSelector: typeof useFormSelector;\n useValue: typeof useFormValue;\n useFieldState: typeof useFormFieldState;\n Subscribe: typeof FormSubscribe;\n useControllerContext: typeof useFormControllerContext;\n}\n\nconst Form: FormComponent = Object.assign(_Form, {\n Item: Field,\n useForm,\n useController: useFormController,\n useSelector: useFormSelector,\n useValue: useFormValue,\n useFieldState: useFormFieldState,\n Subscribe: FormSubscribe,\n useControllerContext: useFormControllerContext,\n Submit: SubmitButton,\n Reset: ResetButton,\n SubmitError,\n});\n\nexport * from './SubmitError';\nexport * from './SubmitButton';\nexport * from './ResetButton';\nexport * from './use-field';\nexport { useFormProps, Form, Field, useForm, FormContext, FormScopeMask };\nexport type { CubeFormProps } from './Form';\nexport type { CubeFieldProps } from './Field';\nexport type { ModernFormProps } from './ModernFormRoot';\nexport type {\n FormController,\n ModernFormState,\n ModernFieldState,\n ModernSubmitFailure,\n UseFormControllerOptions,\n ModernValidationRule,\n ModernValidationResult,\n ModernFieldValidationResult,\n ModernSubmitResult,\n} from './modern/controller';\nexport type { FormSelectorOptions, FormSubscribeProps } from './modern/react';\nexport type {\n FormChange,\n SetValueOptions,\n ModernSubmitContext,\n} from './modern/types';\nexport type { ModernValidationContext } from './modern/validation';\nexport type { FormPath } from './modern/values';\nexport type { FormValueAtPath } from './modern/path-types';\nexport type { CubeFormInstance } from './use-form';\nexport type { FieldTypes, Fields } from './types';\n\nexport type {\n FormField,\n FormFieldOptions,\n FormFieldContext,\n} from './modern/field';\nexport type { FormReadValue, FormValues } from './modern/read-types';\n"],"mappings":";;;;;;;;;;;;;AAgCA,MAAMC,OAAsB0B,OAAOC,OAAO1B,OAAO;CAC/CgB,MAAMlB;CACNe;CACAM,eAAeb;CACfc,aAAaZ;CACba,UAAUZ;CACVa,eAAef;CACfgB,WAAWlB;CACXmB,sBAAsBpB;CACtBa,QAAQN;CACRO,OAAOR;CACPE,aAAAA;AACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { useProviderProps } from "../../../../provider.js";
|
|
4
4
|
import { Button } from "../../../actions/Button/Button.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { createContext, useContext } from "react";
|
|
3
3
|
//#region src/components/form/Form/modern/context.ts
|
|
4
4
|
const ModernControllerContext = createContext(null);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { FORM_BACKEND, isModernFormController } from "../backend.js";
|
|
3
3
|
import { createFormField } from "./field.js";
|
|
4
4
|
import { createFormStore } from "./store.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { getFieldKey, hasPath, normalizePath, readPath } from "./values.js";
|
|
3
3
|
import { getControllerInternals } from "./controller.js";
|
|
4
4
|
//#region src/components/form/Form/modern/field-binding.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { normalizePath } from "./values.js";
|
|
3
3
|
//#region src/components/form/Form/modern/field.ts
|
|
4
4
|
function createFormField(form, path, options = {}) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../../utils/react/useLayoutEffect.js";
|
|
3
3
|
import { ModernControllerContext } from "./context.js";
|
|
4
4
|
import { getFieldKey, normalizePath, readPath } from "./values.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { FORM_BACKEND } from "../backend.js";
|
|
3
3
|
import { createValueSnapshotter, defineValue, formValueEqual, freezeContainer, getFieldKey, hasPath, isPlainObject, normalizePath, pathValueChanged, readPath, readonlySet, sameMembers, writePath } from "./values.js";
|
|
4
4
|
import { rulesSignature, runRules } from "./validation.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { applyRule } from "../validation.js";
|
|
3
3
|
//#region src/components/form/Form/modern/validation.ts
|
|
4
4
|
/** Compare constraints and function source; captures still need deps/rulesKey. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
//#region src/components/form/Form/modern/values.ts
|
|
3
3
|
const ownedContainers = /* @__PURE__ */ new WeakSet();
|
|
4
4
|
function freezeContainer(value) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
//#region src/components/form/Form/reset-unbound-controls.ts
|
|
3
3
|
/**
|
|
4
4
|
* Both form roots cancel a native reset, because the browser would put a bound
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { FormController } from "../modern/controller.js";
|
|
3
3
|
import { FieldCoreProps, NecessityIndicator, ValidateTrigger, ValidationProps, ValidationState } from "../../../../shared/form.js";
|
|
4
|
-
import "../../../../shared/index.js";
|
|
5
4
|
import { CubeFieldData, FieldTypes } from "../types.js";
|
|
6
5
|
import { CubeFormInstance } from "../use-form.js";
|
|
7
6
|
import { ReactNode } from "react";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../../utils/react/useLayoutEffect.js";
|
|
3
3
|
import { useEvent } from "../../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { isModernFormController } from "../backend.js";
|
|
5
|
-
import { getFieldKey, getFieldPath, normalizePath, writePath } from "../modern/values.js";
|
|
6
5
|
import { useField } from "./use-field.js";
|
|
6
|
+
import { getFieldKey, getFieldPath, normalizePath, writePath } from "../modern/values.js";
|
|
7
7
|
import { createModernFieldBackend, fieldRegistrationOptions, sameFieldView } from "../modern/field-binding.js";
|
|
8
8
|
import { c } from "react/compiler-runtime";
|
|
9
9
|
import { useRef } from "react";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps } from "../../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useEvent } from "../../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { warn } from "../../../../utils/warnings.js";
|
|
5
5
|
import { useProviderProps } from "../../../../provider.js";
|
|
6
6
|
import { asksForFieldChrome, withFieldChrome } from "../../field-chrome.js";
|
|
7
|
-
import { useValidationProps } from "../../validation/use-validation-props.js";
|
|
8
7
|
import { useFieldDescribedBy } from "../../FieldWrapper/field-description.js";
|
|
8
|
+
import { useValidationProps } from "../../validation/use-validation-props.js";
|
|
9
9
|
import { isModernFormController } from "../backend.js";
|
|
10
|
+
import { useFormProps } from "../FormContext.js";
|
|
11
|
+
import { useInsideLegacyField } from "../Field.js";
|
|
10
12
|
import { getFieldKey } from "../modern/values.js";
|
|
11
|
-
import { useFormProps } from "../Form.js";
|
|
12
13
|
import { useFieldBinding } from "./use-field-binding.js";
|
|
13
|
-
import { useInsideLegacyField } from "../Field.js";
|
|
14
14
|
import { c } from "react/compiler-runtime";
|
|
15
15
|
import { useDebugValue, useId, useState } from "react";
|
|
16
16
|
//#region src/components/form/Form/use-field/use-field-props.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-field-props.js","names":["useDebugValue","useId","useState","useEvent","useProviderProps","mergeProps","warn","asksForFieldChrome","withFieldChrome","useFieldDescribedBy","useValidationProps","isModernFormController","useInsideLegacyField","useFormProps","getFieldKey","useFieldBinding","ValidateTrigger","ModernFormBrand","FieldTypes","UseFieldProps","UseFieldPropsParams","valuePropsMapper","value","onChange","defaultValidationTrigger","unsafe__isDisabled","showsValidateErrors","defaultValuePropsMapper","StrippedFieldKey","ResolvedFieldForm","Form","ResolvedFieldProps","Props","Key","useFieldProps","inputProps","t0","$","_c","t1","undefined","params","provided","t2","field","options","form","name","path","props","isDisabled","t3","t4","t5","isInsideLegacyField","rules","hasName","generatedId","isBound","t6","t7","unbound","isOutsideOfForm","t8","dontTouch","validateTrigger","onChangeEvent","t9","resolveResult","id","result","labelProps","for","valueProps","_form","_fieldValue","_fieldOnChange","onBlur","_fieldOnBlur","fieldRest","result_0","t10","resolved","isBare","result_1","_descriptor","dependsOn","_dependsOn","deps","_deps","domProps","namedProps","describedBy","t11","describedProps","_c"],"sources":["../../../../../src/components/form/Form/use-field/use-field-props.tsx"],"sourcesContent":["import { useDebugValue, useId, useState } from 'react';\n\nimport { useEvent } from '../../../../_internal/index';\nimport { useProviderProps } from '../../../../provider';\nimport { mergeProps } from '../../../../utils/react/index';\nimport { warn } from '../../../../utils/warnings';\nimport { asksForFieldChrome, withFieldChrome } from '../../field-chrome';\nimport { useFieldDescribedBy } from '../../FieldWrapper/field-description';\nimport { useValidationProps } from '../../validation/index';\nimport { isModernFormController } from '../backend';\nimport { useInsideLegacyField } from '../Field';\nimport { useFormProps } from '../Form';\nimport { getFieldKey } from '../modern/values';\n\nimport { useFieldBinding } from './use-field-binding';\n\nimport type { ValidateTrigger } from '../../../../shared/index';\nimport type { ModernFormBrand } from '../backend';\nimport type { FieldTypes } from '../types';\nimport type { UseFieldProps } from './types';\n\nexport type UseFieldPropsParams = {\n valuePropsMapper?: ({ value, onChange }) => any;\n /**\n * @default 'onBlur'\n */\n defaultValidationTrigger?: ValidateTrigger;\n /**\n * prop helps to prevent calling hook conditionally, but changing this prop during render is unsafe and forbidden\n * If you want to change this prop after mount, remount the component with a new value.\n */\n unsafe__isDisabled?: boolean;\n /**\n * The control shows the errors of its `validate` under itself, so a\n * `validate` asks for the field chrome even without a label.\n * @default false\n */\n showsValidateErrors?: boolean;\n};\n\nconst defaultValuePropsMapper = ({ value, onChange }) => ({\n value: value ?? null,\n onChange,\n});\n\n/** Binding inputs `useFieldProps` always strips before it returns. */\ntype StrippedFieldKey = 'field' | 'dependsOn' | 'deps';\n\n/**\n * A modern controller is stripped at runtime, so each member of `form` that is\n * one becomes `undefined`; a legacy instance survives, and `any` stays `any`.\n * Distributive, so it still applies when `Props` is a type parameter.\n */\ntype ResolvedFieldForm<Form> = Form extends ModernFormBrand ? undefined : Form;\n\n/**\n * The input's declared prop shape minus what the hook always strips: a DOM-safe\n * name, no binding inputs, and no modern controller in `form`.\n */\ntype ResolvedFieldProps<Props> = {\n [\n Key in keyof Props as Key extends StrippedFieldKey ? never : Key\n ]: Key extends 'name'\n ? string | undefined\n : Key extends 'form'\n ? ResolvedFieldForm<Props[Key]>\n : Props[Key];\n};\n\n/**\n * The single entry point for input components (see\n * `docs/rules/input-components.md`).\n *\n * Every hook below runs on every render, whatever the mode: standalone (no\n * `name`), inside the deprecated `<Field>`, disabled through\n * `unsafe__isDisabled`, or bound to a form. The mode only decides which props\n * come back, so an input can gain or lose a `name`, or move between forms,\n * without changing its hook order. The legacy binding (`useField`) is the\n * legacy backend's adapter and is inert when the field is not bound to it.\n */\nexport function useFieldProps<\n T extends FieldTypes,\n Props extends UseFieldProps<T>,\n>(\n inputProps: Props,\n params: UseFieldPropsParams = {},\n): ResolvedFieldProps<Props> {\n // Provider defaults, then form context, then the normalization of the\n // deprecated `validationState` prop into `isInvalid`/`isValid`.\n const provided = useProviderProps(inputProps);\n const props: Props = useValidationProps(\n useFormProps(\n provided.field\n ? {\n ...provided,\n ...provided.field.options,\n form: provided.field.form,\n name:\n typeof provided.field.path === 'string'\n ? provided.field.path\n : getFieldKey(provided.field.path),\n }\n : provided,\n ),\n );\n\n // The initial value is what counts: changing it after mount is unsupported.\n const [isDisabled] = useState(params.unsafe__isDisabled ?? false);\n\n const {\n valuePropsMapper = defaultValuePropsMapper,\n defaultValidationTrigger = 'onBlur',\n showsValidateErrors = false,\n } = params;\n\n const isInsideLegacyField = useInsideLegacyField();\n\n if (props.rules && !props.name) {\n warn(\n `The \"rules\" prop is not suitable for fields that are not part of a form. Use \"name\" prop to link the field to a form.`,\n );\n }\n\n const hasName = props.name != null;\n const generatedId = useId();\n const isBound = hasName && !isInsideLegacyField && !isDisabled;\n\n const field = useFieldBinding<T, Props>(\n props,\n {\n defaultValidationTrigger: params.defaultValidationTrigger,\n unbound: !isBound,\n },\n generatedId,\n );\n\n const isOutsideOfForm = field?.form == null;\n\n const onChangeEvent = useEvent((value, dontTouch: boolean) => {\n field?.onChange?.(\n value,\n dontTouch,\n field?.validateTrigger ?? defaultValidationTrigger,\n );\n });\n\n function resolveResult(): Props {\n if (isInsideLegacyField || isDisabled) {\n return props;\n }\n\n if (!hasName) {\n // Standalone field - just add generated ID if not provided\n if (!props.id) {\n const result = { ...props, id: generatedId };\n\n if (result.id && !result.labelProps) {\n result.labelProps = { for: result.id };\n } else if (result.id && result.labelProps && !result.labelProps.for) {\n result.labelProps = { ...result.labelProps, for: result.id };\n }\n\n return result as Props;\n }\n return props;\n }\n\n if (props.rules && isOutsideOfForm) {\n warn(\n `The \"rules\" prop is not supported for fields that are not part of a form. The \"${props.name}\" field is placed outside the form.`,\n );\n }\n\n const valueProps = !isOutsideOfForm\n ? valuePropsMapper({\n value: field.value,\n onChange: onChangeEvent,\n })\n : {};\n\n // Exclude `form` (it must never reach a DOM node) and the field's own\n // value and handlers: `valueProps` already maps the value and routes the\n // component's change event into `field.onChange` under the names the\n // component reads, and `onBlur` is added once below. `mergeProps` chains\n // same-named handlers, so merging them here as well made every user change\n // and every blur run the field handler twice — and onChange/onBlur-triggered\n // validation validate twice. A raw `value` replaced the caller's own on\n // controls that map it elsewhere: a `Checkbox` bound as `isSelected`\n // rendered and submitted `value=\"true\"` instead of its `value=\"yes\"`.\n const {\n form: _form,\n value: _fieldValue,\n onChange: _fieldOnChange,\n onBlur: _fieldOnBlur,\n ...fieldRest\n } = field ?? {};\n\n const result: Props = isOutsideOfForm\n ? props\n : mergeProps(props, fieldRest, valueProps, {\n validateTrigger: field.validateTrigger ?? defaultValidationTrigger,\n // Chained after the caller's own `onBlur` by `mergeProps`.\n onBlur: field.onBlur,\n });\n\n return result.id\n ? { ...result, labelProps: { ...result.labelProps, for: result.id } }\n : result;\n }\n\n // A field without a `label` still renders the field chrome when it is bound\n // to a form, its caller gives the chrome something to show (see\n // `asksForFieldChrome`), or it shows the errors of a `validate`\n // (`showsValidateErrors`). A nameless legacy Field already owns its child's\n // chrome. A named one binds its child and delegates presentation to it; its\n // message props come and go with the error, so they decide nothing.\n const resolved = isInsideLegacyField\n ? hasName\n ? withFieldChrome(resolveResult())\n : { ...resolveResult(), isBare: true }\n : (isBound && !isOutsideOfForm) ||\n asksForFieldChrome(inputProps) ||\n (showsValidateErrors && 'validate' in inputProps)\n ? withFieldChrome(resolveResult())\n : resolveResult();\n // React Aria forwards `form` to native inputs. A modern controller is a\n // binding source, never an HTML form id, including in standalone/group mode.\n const result = isModernFormController(resolved.form)\n ? { ...resolved, form: undefined }\n : resolved;\n\n const {\n field: _descriptor,\n dependsOn: _dependsOn,\n deps: _deps,\n ...domProps\n } = result;\n // Standalone and group-scoped inputs do not merge a bound field's props.\n // Their tuple must still become a string before React Aria or DOM forwarding.\n const namedProps =\n domProps.name != null && typeof domProps.name !== 'string'\n ? { ...domProps, name: getFieldKey(domProps.name) }\n : domProps;\n // Every input forwards `aria-describedby` to its control, so pointing it at\n // the field's description and message here reaches all of them.\n const describedBy = useFieldDescribedBy(\n namedProps.id,\n namedProps['aria-describedby'],\n );\n const describedProps =\n describedBy === namedProps['aria-describedby']\n ? namedProps\n : { ...namedProps, 'aria-describedby': describedBy };\n useDebugValue(describedProps);\n\n return describedProps as unknown as ResolvedFieldProps<Props>;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-field-props.js","names":["useDebugValue","useId","useState","useEvent","useProviderProps","mergeProps","warn","asksForFieldChrome","withFieldChrome","useFieldDescribedBy","useValidationProps","isModernFormController","useInsideLegacyField","useFormProps","getFieldKey","useFieldBinding","ValidateTrigger","ModernFormBrand","FieldTypes","UseFieldProps","UseFieldPropsParams","valuePropsMapper","value","onChange","defaultValidationTrigger","unsafe__isDisabled","showsValidateErrors","defaultValuePropsMapper","StrippedFieldKey","ResolvedFieldForm","Form","ResolvedFieldProps","Props","Key","useFieldProps","inputProps","t0","$","_c","t1","undefined","params","provided","t2","field","options","form","name","path","props","isDisabled","t3","t4","t5","isInsideLegacyField","rules","hasName","generatedId","isBound","t6","t7","unbound","isOutsideOfForm","t8","dontTouch","validateTrigger","onChangeEvent","t9","resolveResult","id","result","labelProps","for","valueProps","_form","_fieldValue","_fieldOnChange","onBlur","_fieldOnBlur","fieldRest","result_0","t10","resolved","isBare","result_1","_descriptor","dependsOn","_dependsOn","deps","_deps","domProps","namedProps","describedBy","t11","describedProps","_c"],"sources":["../../../../../src/components/form/Form/use-field/use-field-props.tsx"],"sourcesContent":["import { useDebugValue, useId, useState } from 'react';\n\nimport { useEvent } from '../../../../_internal/hooks/use-event';\nimport { useProviderProps } from '../../../../provider';\nimport { mergeProps } from '../../../../utils/react/mergeProps';\nimport { warn } from '../../../../utils/warnings';\nimport { asksForFieldChrome, withFieldChrome } from '../../field-chrome';\nimport { useFieldDescribedBy } from '../../FieldWrapper/field-description';\nimport { useValidationProps } from '../../validation/use-validation-props';\nimport { isModernFormController } from '../backend';\nimport { useInsideLegacyField } from '../Field';\nimport { useFormProps } from '../FormContext';\nimport { getFieldKey } from '../modern/values';\n\nimport { useFieldBinding } from './use-field-binding';\n\nimport type { ValidateTrigger } from '../../../../shared/index';\nimport type { ModernFormBrand } from '../backend';\nimport type { FieldTypes } from '../types';\nimport type { UseFieldProps } from './types';\n\nexport type UseFieldPropsParams = {\n valuePropsMapper?: ({ value, onChange }) => any;\n /**\n * @default 'onBlur'\n */\n defaultValidationTrigger?: ValidateTrigger;\n /**\n * prop helps to prevent calling hook conditionally, but changing this prop during render is unsafe and forbidden\n * If you want to change this prop after mount, remount the component with a new value.\n */\n unsafe__isDisabled?: boolean;\n /**\n * The control shows the errors of its `validate` under itself, so a\n * `validate` asks for the field chrome even without a label.\n * @default false\n */\n showsValidateErrors?: boolean;\n};\n\nconst defaultValuePropsMapper = ({ value, onChange }) => ({\n value: value ?? null,\n onChange,\n});\n\n/** Binding inputs `useFieldProps` always strips before it returns. */\ntype StrippedFieldKey = 'field' | 'dependsOn' | 'deps';\n\n/**\n * A modern controller is stripped at runtime, so each member of `form` that is\n * one becomes `undefined`; a legacy instance survives, and `any` stays `any`.\n * Distributive, so it still applies when `Props` is a type parameter.\n */\ntype ResolvedFieldForm<Form> = Form extends ModernFormBrand ? undefined : Form;\n\n/**\n * The input's declared prop shape minus what the hook always strips: a DOM-safe\n * name, no binding inputs, and no modern controller in `form`.\n */\ntype ResolvedFieldProps<Props> = {\n [\n Key in keyof Props as Key extends StrippedFieldKey ? never : Key\n ]: Key extends 'name'\n ? string | undefined\n : Key extends 'form'\n ? ResolvedFieldForm<Props[Key]>\n : Props[Key];\n};\n\n/**\n * The single entry point for input components (see\n * `docs/rules/input-components.md`).\n *\n * Every hook below runs on every render, whatever the mode: standalone (no\n * `name`), inside the deprecated `<Field>`, disabled through\n * `unsafe__isDisabled`, or bound to a form. The mode only decides which props\n * come back, so an input can gain or lose a `name`, or move between forms,\n * without changing its hook order. The legacy binding (`useField`) is the\n * legacy backend's adapter and is inert when the field is not bound to it.\n */\nexport function useFieldProps<\n T extends FieldTypes,\n Props extends UseFieldProps<T>,\n>(\n inputProps: Props,\n params: UseFieldPropsParams = {},\n): ResolvedFieldProps<Props> {\n // Provider defaults, then form context, then the normalization of the\n // deprecated `validationState` prop into `isInvalid`/`isValid`.\n const provided = useProviderProps(inputProps);\n const props: Props = useValidationProps(\n useFormProps(\n provided.field\n ? {\n ...provided,\n ...provided.field.options,\n form: provided.field.form,\n name:\n typeof provided.field.path === 'string'\n ? provided.field.path\n : getFieldKey(provided.field.path),\n }\n : provided,\n ),\n );\n\n // The initial value is what counts: changing it after mount is unsupported.\n const [isDisabled] = useState(params.unsafe__isDisabled ?? false);\n\n const {\n valuePropsMapper = defaultValuePropsMapper,\n defaultValidationTrigger = 'onBlur',\n showsValidateErrors = false,\n } = params;\n\n const isInsideLegacyField = useInsideLegacyField();\n\n if (props.rules && !props.name) {\n warn(\n `The \"rules\" prop is not suitable for fields that are not part of a form. Use \"name\" prop to link the field to a form.`,\n );\n }\n\n const hasName = props.name != null;\n const generatedId = useId();\n const isBound = hasName && !isInsideLegacyField && !isDisabled;\n\n const field = useFieldBinding<T, Props>(\n props,\n {\n defaultValidationTrigger: params.defaultValidationTrigger,\n unbound: !isBound,\n },\n generatedId,\n );\n\n const isOutsideOfForm = field?.form == null;\n\n const onChangeEvent = useEvent((value, dontTouch: boolean) => {\n field?.onChange?.(\n value,\n dontTouch,\n field?.validateTrigger ?? defaultValidationTrigger,\n );\n });\n\n function resolveResult(): Props {\n if (isInsideLegacyField || isDisabled) {\n return props;\n }\n\n if (!hasName) {\n // Standalone field - just add generated ID if not provided\n if (!props.id) {\n const result = { ...props, id: generatedId };\n\n if (result.id && !result.labelProps) {\n result.labelProps = { for: result.id };\n } else if (result.id && result.labelProps && !result.labelProps.for) {\n result.labelProps = { ...result.labelProps, for: result.id };\n }\n\n return result as Props;\n }\n return props;\n }\n\n if (props.rules && isOutsideOfForm) {\n warn(\n `The \"rules\" prop is not supported for fields that are not part of a form. The \"${props.name}\" field is placed outside the form.`,\n );\n }\n\n const valueProps = !isOutsideOfForm\n ? valuePropsMapper({\n value: field.value,\n onChange: onChangeEvent,\n })\n : {};\n\n // Exclude `form` (it must never reach a DOM node) and the field's own\n // value and handlers: `valueProps` already maps the value and routes the\n // component's change event into `field.onChange` under the names the\n // component reads, and `onBlur` is added once below. `mergeProps` chains\n // same-named handlers, so merging them here as well made every user change\n // and every blur run the field handler twice — and onChange/onBlur-triggered\n // validation validate twice. A raw `value` replaced the caller's own on\n // controls that map it elsewhere: a `Checkbox` bound as `isSelected`\n // rendered and submitted `value=\"true\"` instead of its `value=\"yes\"`.\n const {\n form: _form,\n value: _fieldValue,\n onChange: _fieldOnChange,\n onBlur: _fieldOnBlur,\n ...fieldRest\n } = field ?? {};\n\n const result: Props = isOutsideOfForm\n ? props\n : mergeProps(props, fieldRest, valueProps, {\n validateTrigger: field.validateTrigger ?? defaultValidationTrigger,\n // Chained after the caller's own `onBlur` by `mergeProps`.\n onBlur: field.onBlur,\n });\n\n return result.id\n ? { ...result, labelProps: { ...result.labelProps, for: result.id } }\n : result;\n }\n\n // A field without a `label` still renders the field chrome when it is bound\n // to a form, its caller gives the chrome something to show (see\n // `asksForFieldChrome`), or it shows the errors of a `validate`\n // (`showsValidateErrors`). A nameless legacy Field already owns its child's\n // chrome. A named one binds its child and delegates presentation to it; its\n // message props come and go with the error, so they decide nothing.\n const resolved = isInsideLegacyField\n ? hasName\n ? withFieldChrome(resolveResult())\n : { ...resolveResult(), isBare: true }\n : (isBound && !isOutsideOfForm) ||\n asksForFieldChrome(inputProps) ||\n (showsValidateErrors && 'validate' in inputProps)\n ? withFieldChrome(resolveResult())\n : resolveResult();\n // React Aria forwards `form` to native inputs. A modern controller is a\n // binding source, never an HTML form id, including in standalone/group mode.\n const result = isModernFormController(resolved.form)\n ? { ...resolved, form: undefined }\n : resolved;\n\n const {\n field: _descriptor,\n dependsOn: _dependsOn,\n deps: _deps,\n ...domProps\n } = result;\n // Standalone and group-scoped inputs do not merge a bound field's props.\n // Their tuple must still become a string before React Aria or DOM forwarding.\n const namedProps =\n domProps.name != null && typeof domProps.name !== 'string'\n ? { ...domProps, name: getFieldKey(domProps.name) }\n : domProps;\n // Every input forwards `aria-describedby` to its control, so pointing it at\n // the field's description and message here reaches all of them.\n const describedBy = useFieldDescribedBy(\n namedProps.id,\n namedProps['aria-describedby'],\n );\n const describedProps =\n describedBy === namedProps['aria-describedby']\n ? namedProps\n : { ...namedProps, 'aria-describedby': describedBy };\n useDebugValue(describedProps);\n\n return describedProps as unknown as ResolvedFieldProps<Props>;\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
import { ValidateTrigger } from "../../../../shared/form.js";
|
|
3
|
-
import "../../../../shared/index.js";
|
|
4
3
|
import { FieldTypes } from "../types.js";
|
|
5
4
|
import { FieldReturnValue, UseFieldProps } from "./types.js";
|
|
6
5
|
//#region src/components/form/Form/use-field/use-field.d.ts
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../../utils/react/useLayoutEffect.js";
|
|
3
3
|
import { useEvent } from "../../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { useIsFirstRender } from "../../../../_internal/hooks/use-is-first-render.js";
|
|
5
5
|
import { resolveValidationProps } from "../../validation/resolve-validation-props.js";
|
|
6
6
|
import { isModernFormController, modernBackendUnavailableError } from "../backend.js";
|
|
7
|
+
import { useFormProps } from "../FormContext.js";
|
|
7
8
|
import { delayValidationRule } from "../validation.js";
|
|
8
|
-
import { useFormProps } from "../Form.js";
|
|
9
9
|
import { useEffect, useMemo, useState } from "react";
|
|
10
10
|
//#region src/components/form/Form/use-field/use-field.ts
|
|
11
11
|
const ID_MAP = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-field.js","names":["useEffect","useMemo","useState","useEvent","useIsFirstRender","ValidateTrigger","useLayoutEffect","resolveValidationProps","isModernFormController","modernBackendUnavailableError","useFormProps","FieldTypes","delayValidationRule","FieldReturnValue","UseFieldProps","CubeFormInstance","ID_MAP","createId","name","i","id","includes","push","removeId","filter","_id","UseFieldParams","defaultValidationTrigger","unbound","useField","T","props","Props","params","defaultValue","idPrefix","form","sourceForm","rules","message","description","errorMessage","validateTrigger","validationDelay","showValid","shouldUpdate","isRequired","isRequiredProp","necessityIndicator","necessityIndicatorProp","undefined","isInvalid","isInvalidProp","isValid","isValidProp","processedRules","finalRules","hasRequiredRule","some","rule","required","length","nonInput","fieldName","isFirstRender","baseId","assignedId","setAssignedId","base","currentId","newId","previous","boundForms","Set","forEach","boundForm","removeField","clear","field","getFieldInstance","createField","value","setFieldValue","updateInitialFieldsValue","touched","find","suppressNecessityIndicator","add","forceReRender","onChangeHandler","val","dontTouch","fieldsValue","getFieldsValue","shouldNotBeUpdated","errors","validateField","catch","onBlurHandler","setTimeout","status","onBlur","onChange"],"sources":["../../../../../src/components/form/Form/use-field/use-field.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\n\nimport { useEvent, useIsFirstRender } from '../../../../_internal/index';\nimport { ValidateTrigger } from '../../../../shared/index';\nimport { useLayoutEffect } from '../../../../utils/react/useLayoutEffect';\nimport { resolveValidationProps } from '../../validation/index';\nimport {\n isModernFormController,\n modernBackendUnavailableError,\n} from '../backend';\nimport { useFormProps } from '../Form';\nimport { FieldTypes } from '../types';\nimport { delayValidationRule } from '../validation';\n\nimport { FieldReturnValue, UseFieldProps } from './types';\n\nimport type { CubeFormInstance } from '../use-form';\n\nconst ID_MAP = {};\n\nfunction createId(name) {\n if (!name) return;\n\n if (!ID_MAP[name]) {\n ID_MAP[name] = [];\n }\n\n let i = 0;\n let id;\n\n do {\n id = i ? `${name}_${i}` : name;\n i++;\n } while (ID_MAP[name].includes(id));\n\n ID_MAP[name].push(id);\n\n return id;\n}\n\nfunction removeId(name, id) {\n if (!ID_MAP[name]) return;\n\n ID_MAP[name] = ID_MAP[name].filter((_id) => _id !== id);\n}\n\nexport type UseFieldParams = {\n defaultValidationTrigger?: ValidateTrigger;\n /**\n * Run without a binding: `useFieldProps` sets this for an input that is\n * standalone, inside the deprecated `<Field>` or disabled, so that this hook\n * is still called (stable hook order) but registers nothing.\n */\n unbound?: boolean;\n};\n\nexport function useField<\n T extends FieldTypes,\n Props extends UseFieldProps<T> & { name?: string },\n>(props: Props, params: UseFieldParams): FieldReturnValue<T> {\n 'use no memo';\n // Legacy form state is mutable; preserve its render-time reads until migration.\n\n props = useFormProps(props);\n\n let {\n defaultValue,\n id,\n idPrefix,\n name,\n form: sourceForm,\n rules,\n message,\n description,\n errorMessage,\n validateTrigger = params.defaultValidationTrigger,\n validationDelay,\n showValid,\n shouldUpdate,\n isRequired: isRequiredProp,\n necessityIndicator: necessityIndicatorProp,\n } = props;\n\n if (params.unbound) {\n name = undefined;\n sourceForm = undefined;\n }\n\n if (!params.unbound && isModernFormController(sourceForm)) {\n throw modernBackendUnavailableError(\n name != null ? `The \"${name}\" field` : 'A field without a name',\n );\n }\n\n // A modern source is rejected above (or cleared when this adapter is inert).\n // Keep unbranded structural legacy instances supported as before.\n const form = sourceForm as CubeFormInstance<T> | undefined;\n\n const { isInvalid: isInvalidProp, isValid: isValidProp } =\n resolveValidationProps(props);\n\n const processedRules = useMemo(() => {\n let finalRules = rules;\n\n // If isRequired prop is set, ensure there's a required rule\n if (isRequiredProp) {\n const hasRequiredRule = finalRules?.some(\n (rule) => 'required' in rule && rule.required === true,\n );\n\n if (!hasRequiredRule) {\n finalRules = finalRules\n ? [{ required: true }, ...finalRules]\n : [{ required: true }];\n }\n }\n\n // Add delay rule if needed\n if (finalRules && finalRules.length && validationDelay) {\n return [delayValidationRule(validationDelay), ...finalRules];\n }\n\n return finalRules;\n }, [rules, validationDelay, isRequiredProp]);\n\n const nonInput = !name;\n const fieldName: string = name != null ? name : '';\n\n const isFirstRender = useIsFirstRender();\n const baseId = id || (idPrefix ? `${idPrefix}_${fieldName}` : fieldName);\n\n // The id the effect below registered, with the base it was registered for.\n // Between a base change and that effect's next run the state is stale, and\n // handing it out would let the element carry the previous binding's id for\n // one commit — which can duplicate a sibling's live id — so the current base\n // is used until the effect catches up. An explicit `id` is used as it is.\n const [assignedId, setAssignedId] = useState({ base: baseId, id: baseId });\n const currentId = id || (assignedId.base === baseId ? assignedId.id : baseId);\n\n // Ids are registered per base (form name prefix plus field name), so that\n // duplicates get a suffix and the base is released when it changes or the\n // input unmounts. `id` and `nonInput` cannot change without the base. A\n // layout effect: when the base changes, the commit that carries the\n // unsuffixed base is corrected before the browser paints, so a duplicate\n // never shows a colliding id.\n useLayoutEffect(() => {\n if (id || nonInput) return;\n\n const newId = createId(baseId);\n\n setAssignedId((previous) =>\n previous.base === baseId && previous.id === newId\n ? previous\n : { base: baseId, id: newId },\n );\n\n return () => {\n removeId(baseId, newId);\n };\n }, [baseId, id, nonInput]);\n\n // Every form this hook registered the current name with. The dual-backend\n // shell keeps the hook mounted for standalone inputs, so a form may arrive\n // later or change, and the name may change; the name is released from all\n // of them, not from whichever form a closure happened to capture. This is\n // state rather than a ref only to keep render free of ref access.\n const [boundForms] = useState(() => new Set<CubeFormInstance<any>>());\n\n useEffect(() => {\n return () => {\n if (fieldName) {\n boundForms.forEach((boundForm) => boundForm.removeField(fieldName));\n }\n\n boundForms.clear();\n };\n }, [fieldName, boundForms]);\n\n let field = form?.getFieldInstance(fieldName);\n\n if (form) {\n // First render of this binding: the hook's first render, or a named field\n // that is not registered yet because the name or the form changed after\n // mount. Without a name the engine returns an unstored placeholder, so it\n // is only created on the first render, as before: creating it again on\n // every render would give the effect below a new object each time.\n if (isFirstRender || (!field && fieldName)) {\n if (!field) {\n field = form.createField(fieldName, true);\n }\n\n if (field?.value == null && defaultValue != null) {\n form.setFieldValue(fieldName, defaultValue, false, true);\n form.updateInitialFieldsValue({ [fieldName]: defaultValue });\n\n field = form?.getFieldInstance(fieldName);\n }\n }\n\n if (!field?.touched && defaultValue != null) {\n form.setFieldValue(fieldName, defaultValue, false, true);\n }\n }\n\n if (field) {\n field.rules = processedRules;\n }\n\n let isRequired = !!processedRules?.find(\n (rule) => 'required' in rule && rule.required === true,\n );\n\n // `isRequired` has two sources with different intent. A `required` rule states\n // how the field behaves: it is what validation runs, and `aria-required` is\n // its programmatic mirror, so the flag has to reach the input either way. The\n // `isRequired` prop additionally states what the label should say. So unless\n // the prop itself asked for the marker, suppress it — an absent prop and an\n // explicit `isRequired={false}` both mean \"do not mark this\", the latter\n // rather more loudly. An explicit `necessityIndicator` overrides either way,\n // being a request for the marker in its own right.\n const suppressNecessityIndicator =\n isRequired && !isRequiredProp && necessityIndicatorProp === undefined;\n\n // Registration happens during render. Once it is committed, remember the\n // form for the release above and re-render the form's owner so its\n // render-time reads see the new field. `form` is deliberately not a\n // dependency: a form whose identity changes on every render (a copy, an\n // inline mock) shares its store, and re-running here would loop.\n useEffect(() => {\n if (form && field) {\n boundForms.add(form);\n form.forceReRender();\n }\n }, [field, boundForms]);\n\n const onChangeHandler = useEvent((val: any, dontTouch: boolean) => {\n if (!form) return;\n\n const field = form.getFieldInstance(fieldName);\n\n if (shouldUpdate) {\n const fieldsValue = form.getFieldsValue();\n\n // check if we should update the value of the field\n const shouldNotBeUpdated =\n typeof shouldUpdate === 'boolean'\n ? !shouldUpdate\n : !shouldUpdate(fieldsValue, {\n ...fieldsValue,\n [fieldName]: val,\n });\n\n if (shouldNotBeUpdated) {\n return;\n }\n }\n\n form.setFieldValue(fieldName, val, !dontTouch);\n\n if (\n !dontTouch &&\n (validateTrigger === 'onChange' ||\n (field && field.errors && field.errors.length))\n ) {\n form.validateField(fieldName).catch(() => {}); // do nothing on fail\n }\n });\n\n const onBlurHandler = useEvent(() => {\n if (validateTrigger === 'onBlur') {\n // We need a timeout so the change event can be done.\n setTimeout(() => {\n form?.validateField(fieldName).catch(() => {}); // do nothing on fail\n });\n }\n });\n\n let value = field?.value;\n\n return useMemo(\n () => ({\n id: currentId,\n name: fieldName,\n value,\n validateTrigger,\n form,\n field,\n nonInput,\n\n // Explicit validation props always win over the state derived from the form\n isInvalid: isInvalidProp ?? !!field?.errors?.length,\n isValid: isValidProp ?? !!(showValid && field?.status === 'valid'),\n ...(isRequired && { isRequired }),\n ...(suppressNecessityIndicator && { necessityIndicator: null }),\n message:\n message !== undefined\n ? message\n : field?.status === 'invalid' && field?.errors?.[0],\n description,\n errorMessage:\n errorMessage !== undefined\n ? errorMessage\n : field?.status === 'invalid' && field?.errors?.length\n ? field.errors[0]\n : undefined,\n onBlur: onBlurHandler,\n onChange: onChangeHandler,\n }),\n [\n form,\n field,\n field?.value,\n field?.errors?.length,\n field?.status,\n currentId,\n fieldName,\n isRequired,\n suppressNecessityIndicator,\n message,\n description,\n errorMessage,\n onBlurHandler,\n onChangeHandler,\n validateTrigger,\n isInvalidProp,\n isValidProp,\n showValid,\n nonInput,\n ],\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-field.js","names":["useEffect","useMemo","useState","useEvent","useIsFirstRender","ValidateTrigger","useLayoutEffect","resolveValidationProps","isModernFormController","modernBackendUnavailableError","useFormProps","FieldTypes","delayValidationRule","FieldReturnValue","UseFieldProps","CubeFormInstance","ID_MAP","createId","name","i","id","includes","push","removeId","filter","_id","UseFieldParams","defaultValidationTrigger","unbound","useField","T","props","Props","params","defaultValue","idPrefix","form","sourceForm","rules","message","description","errorMessage","validateTrigger","validationDelay","showValid","shouldUpdate","isRequired","isRequiredProp","necessityIndicator","necessityIndicatorProp","undefined","isInvalid","isInvalidProp","isValid","isValidProp","processedRules","finalRules","hasRequiredRule","some","rule","required","length","nonInput","fieldName","isFirstRender","baseId","assignedId","setAssignedId","base","currentId","newId","previous","boundForms","Set","forEach","boundForm","removeField","clear","field","getFieldInstance","createField","value","setFieldValue","updateInitialFieldsValue","touched","find","suppressNecessityIndicator","add","forceReRender","onChangeHandler","val","dontTouch","fieldsValue","getFieldsValue","shouldNotBeUpdated","errors","validateField","catch","onBlurHandler","setTimeout","status","onBlur","onChange"],"sources":["../../../../../src/components/form/Form/use-field/use-field.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\n\nimport { useEvent } from '../../../../_internal/hooks/use-event';\nimport { useIsFirstRender } from '../../../../_internal/hooks/use-is-first-render';\nimport { ValidateTrigger } from '../../../../shared/form';\nimport { useLayoutEffect } from '../../../../utils/react/useLayoutEffect';\nimport { resolveValidationProps } from '../../validation/resolve-validation-props';\nimport {\n isModernFormController,\n modernBackendUnavailableError,\n} from '../backend';\nimport { useFormProps } from '../FormContext';\nimport { FieldTypes } from '../types';\nimport { delayValidationRule } from '../validation';\n\nimport { FieldReturnValue, UseFieldProps } from './types';\n\nimport type { CubeFormInstance } from '../use-form';\n\nconst ID_MAP = {};\n\nfunction createId(name) {\n if (!name) return;\n\n if (!ID_MAP[name]) {\n ID_MAP[name] = [];\n }\n\n let i = 0;\n let id;\n\n do {\n id = i ? `${name}_${i}` : name;\n i++;\n } while (ID_MAP[name].includes(id));\n\n ID_MAP[name].push(id);\n\n return id;\n}\n\nfunction removeId(name, id) {\n if (!ID_MAP[name]) return;\n\n ID_MAP[name] = ID_MAP[name].filter((_id) => _id !== id);\n}\n\nexport type UseFieldParams = {\n defaultValidationTrigger?: ValidateTrigger;\n /**\n * Run without a binding: `useFieldProps` sets this for an input that is\n * standalone, inside the deprecated `<Field>` or disabled, so that this hook\n * is still called (stable hook order) but registers nothing.\n */\n unbound?: boolean;\n};\n\nexport function useField<\n T extends FieldTypes,\n Props extends UseFieldProps<T> & { name?: string },\n>(props: Props, params: UseFieldParams): FieldReturnValue<T> {\n 'use no memo';\n // Legacy form state is mutable; preserve its render-time reads until migration.\n\n props = useFormProps(props);\n\n let {\n defaultValue,\n id,\n idPrefix,\n name,\n form: sourceForm,\n rules,\n message,\n description,\n errorMessage,\n validateTrigger = params.defaultValidationTrigger,\n validationDelay,\n showValid,\n shouldUpdate,\n isRequired: isRequiredProp,\n necessityIndicator: necessityIndicatorProp,\n } = props;\n\n if (params.unbound) {\n name = undefined;\n sourceForm = undefined;\n }\n\n if (!params.unbound && isModernFormController(sourceForm)) {\n throw modernBackendUnavailableError(\n name != null ? `The \"${name}\" field` : 'A field without a name',\n );\n }\n\n // A modern source is rejected above (or cleared when this adapter is inert).\n // Keep unbranded structural legacy instances supported as before.\n const form = sourceForm as CubeFormInstance<T> | undefined;\n\n const { isInvalid: isInvalidProp, isValid: isValidProp } =\n resolveValidationProps(props);\n\n const processedRules = useMemo(() => {\n let finalRules = rules;\n\n // If isRequired prop is set, ensure there's a required rule\n if (isRequiredProp) {\n const hasRequiredRule = finalRules?.some(\n (rule) => 'required' in rule && rule.required === true,\n );\n\n if (!hasRequiredRule) {\n finalRules = finalRules\n ? [{ required: true }, ...finalRules]\n : [{ required: true }];\n }\n }\n\n // Add delay rule if needed\n if (finalRules && finalRules.length && validationDelay) {\n return [delayValidationRule(validationDelay), ...finalRules];\n }\n\n return finalRules;\n }, [rules, validationDelay, isRequiredProp]);\n\n const nonInput = !name;\n const fieldName: string = name != null ? name : '';\n\n const isFirstRender = useIsFirstRender();\n const baseId = id || (idPrefix ? `${idPrefix}_${fieldName}` : fieldName);\n\n // The id the effect below registered, with the base it was registered for.\n // Between a base change and that effect's next run the state is stale, and\n // handing it out would let the element carry the previous binding's id for\n // one commit — which can duplicate a sibling's live id — so the current base\n // is used until the effect catches up. An explicit `id` is used as it is.\n const [assignedId, setAssignedId] = useState({ base: baseId, id: baseId });\n const currentId = id || (assignedId.base === baseId ? assignedId.id : baseId);\n\n // Ids are registered per base (form name prefix plus field name), so that\n // duplicates get a suffix and the base is released when it changes or the\n // input unmounts. `id` and `nonInput` cannot change without the base. A\n // layout effect: when the base changes, the commit that carries the\n // unsuffixed base is corrected before the browser paints, so a duplicate\n // never shows a colliding id.\n useLayoutEffect(() => {\n if (id || nonInput) return;\n\n const newId = createId(baseId);\n\n setAssignedId((previous) =>\n previous.base === baseId && previous.id === newId\n ? previous\n : { base: baseId, id: newId },\n );\n\n return () => {\n removeId(baseId, newId);\n };\n }, [baseId, id, nonInput]);\n\n // Every form this hook registered the current name with. The dual-backend\n // shell keeps the hook mounted for standalone inputs, so a form may arrive\n // later or change, and the name may change; the name is released from all\n // of them, not from whichever form a closure happened to capture. This is\n // state rather than a ref only to keep render free of ref access.\n const [boundForms] = useState(() => new Set<CubeFormInstance<any>>());\n\n useEffect(() => {\n return () => {\n if (fieldName) {\n boundForms.forEach((boundForm) => boundForm.removeField(fieldName));\n }\n\n boundForms.clear();\n };\n }, [fieldName, boundForms]);\n\n let field = form?.getFieldInstance(fieldName);\n\n if (form) {\n // First render of this binding: the hook's first render, or a named field\n // that is not registered yet because the name or the form changed after\n // mount. Without a name the engine returns an unstored placeholder, so it\n // is only created on the first render, as before: creating it again on\n // every render would give the effect below a new object each time.\n if (isFirstRender || (!field && fieldName)) {\n if (!field) {\n field = form.createField(fieldName, true);\n }\n\n if (field?.value == null && defaultValue != null) {\n form.setFieldValue(fieldName, defaultValue, false, true);\n form.updateInitialFieldsValue({ [fieldName]: defaultValue });\n\n field = form?.getFieldInstance(fieldName);\n }\n }\n\n if (!field?.touched && defaultValue != null) {\n form.setFieldValue(fieldName, defaultValue, false, true);\n }\n }\n\n if (field) {\n field.rules = processedRules;\n }\n\n let isRequired = !!processedRules?.find(\n (rule) => 'required' in rule && rule.required === true,\n );\n\n // `isRequired` has two sources with different intent. A `required` rule states\n // how the field behaves: it is what validation runs, and `aria-required` is\n // its programmatic mirror, so the flag has to reach the input either way. The\n // `isRequired` prop additionally states what the label should say. So unless\n // the prop itself asked for the marker, suppress it — an absent prop and an\n // explicit `isRequired={false}` both mean \"do not mark this\", the latter\n // rather more loudly. An explicit `necessityIndicator` overrides either way,\n // being a request for the marker in its own right.\n const suppressNecessityIndicator =\n isRequired && !isRequiredProp && necessityIndicatorProp === undefined;\n\n // Registration happens during render. Once it is committed, remember the\n // form for the release above and re-render the form's owner so its\n // render-time reads see the new field. `form` is deliberately not a\n // dependency: a form whose identity changes on every render (a copy, an\n // inline mock) shares its store, and re-running here would loop.\n useEffect(() => {\n if (form && field) {\n boundForms.add(form);\n form.forceReRender();\n }\n }, [field, boundForms]);\n\n const onChangeHandler = useEvent((val: any, dontTouch: boolean) => {\n if (!form) return;\n\n const field = form.getFieldInstance(fieldName);\n\n if (shouldUpdate) {\n const fieldsValue = form.getFieldsValue();\n\n // check if we should update the value of the field\n const shouldNotBeUpdated =\n typeof shouldUpdate === 'boolean'\n ? !shouldUpdate\n : !shouldUpdate(fieldsValue, {\n ...fieldsValue,\n [fieldName]: val,\n });\n\n if (shouldNotBeUpdated) {\n return;\n }\n }\n\n form.setFieldValue(fieldName, val, !dontTouch);\n\n if (\n !dontTouch &&\n (validateTrigger === 'onChange' ||\n (field && field.errors && field.errors.length))\n ) {\n form.validateField(fieldName).catch(() => {}); // do nothing on fail\n }\n });\n\n const onBlurHandler = useEvent(() => {\n if (validateTrigger === 'onBlur') {\n // We need a timeout so the change event can be done.\n setTimeout(() => {\n form?.validateField(fieldName).catch(() => {}); // do nothing on fail\n });\n }\n });\n\n let value = field?.value;\n\n return useMemo(\n () => ({\n id: currentId,\n name: fieldName,\n value,\n validateTrigger,\n form,\n field,\n nonInput,\n\n // Explicit validation props always win over the state derived from the form\n isInvalid: isInvalidProp ?? !!field?.errors?.length,\n isValid: isValidProp ?? !!(showValid && field?.status === 'valid'),\n ...(isRequired && { isRequired }),\n ...(suppressNecessityIndicator && { necessityIndicator: null }),\n message:\n message !== undefined\n ? message\n : field?.status === 'invalid' && field?.errors?.[0],\n description,\n errorMessage:\n errorMessage !== undefined\n ? errorMessage\n : field?.status === 'invalid' && field?.errors?.length\n ? field.errors[0]\n : undefined,\n onBlur: onBlurHandler,\n onChange: onChangeHandler,\n }),\n [\n form,\n field,\n field?.value,\n field?.errors?.length,\n field?.status,\n currentId,\n fieldName,\n isRequired,\n suppressNecessityIndicator,\n message,\n description,\n errorMessage,\n onBlurHandler,\n onChangeHandler,\n validateTrigger,\n isInvalidProp,\n isValidProp,\n showValid,\n nonInput,\n ],\n );\n}\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.208.0 | Cube Dev Team */
|
|
2
2
|
import { FORM_BACKEND, isModernFormController, modernBackendUnavailableError } from "./backend.js";
|
|
3
3
|
import { applyRules } from "./validation.js";
|
|
4
4
|
import { dotizeConvert } from "../../../utils/dotize.js";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
import { LabelPosition, NecessityIndicator, ValidationProps } from "../../shared/form.js";
|
|
3
|
-
import "../../shared/index.js";
|
|
4
3
|
import { BaseProps, ContainerStyleProps, Styles } from "@tenphi/tasty";
|
|
5
4
|
//#region src/components/form/Label.d.ts
|
|
6
5
|
export interface CubeNecessityIndicatorProps {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../utils/styles.js";
|
|
3
3
|
import { useProviderProps } from "../../provider.js";
|
|
4
4
|
import { useI18n } from "../../i18n/useI18n.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Label.js","names":["useObjectRef","BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","Styles","tasty","forwardRef","useI18n","useProviderProps","LabelPosition","NecessityIndicator","ValidationProps","extractStyles","getValidationMods","RequiredIconElement","as","element","styles","width","height","transform","REQUIRED_ICON","NecessityLabelElement","qa","preset","color","fontWeight","CubeNecessityIndicatorProps","necessityIndicator","isRequired","isOptional","includeNecessityIndicatorInAccessibilityName","NecessityIndicatorMark","props","$","_c","t0","t1","undefined","t","t2","requiredLabel","t3","separator","role","t4","INLINE_LABEL_STYLES","invalid","const","LABEL_STYLES","display","side","split","LabelElement","CubeLabelProps","labelPosition","htmlFor","for","size","Label","ref","children","isDisabled","isInvalid","isValid","labelFor","otherProps","domRef","mark","T0","t5","t6","t7","t8","disabled","t9","t10","_Label","displayName","_c"],"sources":["../../../src/components/form/Label.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useI18n } from '../../i18n';\nimport { useProviderProps } from '../../provider';\nimport {\n LabelPosition,\n NecessityIndicator,\n ValidationProps,\n} from '../../shared/index';\nimport { extractStyles } from '../../utils/styles';\n\nimport { getValidationMods } from './validation/index';\n\nconst RequiredIconElement = tasty({\n as: 'svg',\n element: 'RequiredIcon',\n styles: {\n width: '.8em',\n height: '.8em',\n transform: 'rotate(-5deg)',\n },\n});\n\nconst REQUIRED_ICON = (\n <RequiredIconElement\n xmlns=\"http://www.w3.org/2000/svg\"\n version=\"1.1\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 125\"\n >\n <switch>\n <g>\n <polygon\n fill=\"currentColor\"\n points=\"97.5,47.5 90.5,26.1 61.3,35.6 61.3,4.8 38.7,4.8 38.7,35.6 9.5,26.1 2.5,47.5 31.8,57 13.7,82 31.9,95.2 50,70.3 68.1,95.2 86.3,82 68.2,57\"\n />\n </g>\n </switch>\n </RequiredIconElement>\n);\n\n/**\n * The `(required)` / `(optional)` note. Deliberately quieter than the label it\n * follows: it is an aside about the field, not part of its name.\n *\n * `t4` / `#dark-03` is the same tier `FieldWrapper` already gives `description`\n * and `message`, so the note joins the established secondary text rather than\n * inventing a size of its own. The weight is dropped back to 400 — `t4` carries\n * 500, the same weight as the label — because that contrast is what makes the\n * note read as an aside at a glance.\n */\nconst NecessityLabelElement = tasty({\n as: 'span',\n qa: 'NecessityLabel',\n styles: {\n preset: 't4',\n color: '#dark-03',\n fontWeight: 400,\n },\n});\n\nexport interface CubeNecessityIndicatorProps {\n /**\n * `'icon'` renders the asterisk, `'label'` the `(required)` / `(optional)`\n * text. Defaults to `'icon'`, which has no optional form and so only ever\n * marks a required field. `null` suppresses the indicator entirely.\n */\n necessityIndicator?: NecessityIndicator | null;\n /**\n * Marks the label as required. Only an `isRequired` authored on the input,\n * the label or the `Form` reaches this — a `required` validation rule drives\n * validation and `aria-required` without decorating the label.\n */\n isRequired?: boolean;\n /**\n * Marks the label as optional. Purely presentational, and ignored when the\n * field is required.\n */\n isOptional?: boolean;\n /**\n * Whether the indicator contributes to the field's accessible name. Off by\n * default because a required field already announces `aria-required`, and\n * repeating it in the name is noise.\n */\n includeNecessityIndicatorInAccessibilityName?: boolean;\n}\n\n/**\n * The `*` or `(required)` / `(optional)` marker that follows a field label.\n *\n * Its own component because two places render it and both need the same\n * strings: `Label` when it is given plain text, and `FieldWrapper`, which\n * builds a element tree around the label and therefore has to place the marker\n * beside the label text itself rather than after the whole tree.\n *\n * Both marks are opt-in: nothing renders unless the call site passed\n * `isRequired` or `isOptional`.\n */\nexport function NecessityIndicatorMark(props: CubeNecessityIndicatorProps) {\n const {\n isRequired,\n isOptional,\n necessityIndicator = 'icon',\n includeNecessityIndicatorInAccessibilityName = false,\n } = props;\n const { t } = useI18n();\n\n const requiredLabel = t('form.required', '(required)');\n\n // A plain space would collapse against the label text in a flex container,\n // and the zero-width space keeps the pair from being split across lines.\n const separator = ' ';\n\n // Anything that is not one of the two shapes means \"no indicator\" — `null`,\n // and also any stray falsy value a caller might still be passing.\n if (necessityIndicator !== 'icon' && necessityIndicator !== 'label') {\n return null;\n }\n\n if (isRequired) {\n if (necessityIndicator === 'icon') {\n return (\n <>\n {separator}\n {/*\n An image named \"(required)\" when it belongs in the name, hidden\n otherwise — never a bare `<svg>`, which a screen reader announces\n as an unnamed graphic.\n */}\n <span\n {...(includeNecessityIndicatorInAccessibilityName\n ? { role: 'img', 'aria-label': requiredLabel }\n : { 'aria-hidden': true })}\n >\n {REQUIRED_ICON}\n </span>\n </>\n );\n }\n\n // Hidden from screen readers by default, because `aria-required` on the\n // input already announces it and repeating it in the name is noise.\n return (\n <>\n {separator}\n <NecessityLabelElement\n aria-hidden={\n !includeNecessityIndicatorInAccessibilityName ? true : undefined\n }\n >\n {requiredLabel}\n </NecessityLabelElement>\n </>\n );\n }\n\n // There is no icon form of \"optional\", so the note is rendered whichever\n // indicator was asked for. Nothing else tells a screen reader the field is\n // optional, so this one stays in the accessible name.\n if (!isOptional) return null;\n\n return (\n <>\n {separator}\n <NecessityLabelElement>\n {t('form.optional', '(optional)')}\n </NecessityLabelElement>\n </>\n );\n}\n\nexport const INLINE_LABEL_STYLES: Styles = {\n preset: 't3',\n color: {\n '': '#dark-02',\n invalid: '#danger-text',\n },\n} as const;\n\nexport const LABEL_STYLES: Styles = {\n display: 'block',\n preset: {\n '': 't3m',\n 'size=small': 't4',\n },\n color: {\n '': '#dark',\n invalid: '#danger-text',\n },\n width: {\n '': 'initial',\n side: '($label-width, initial)',\n split: 'initial',\n },\n};\n\nconst LabelElement = tasty({\n as: 'label',\n qa: 'Label',\n styles: LABEL_STYLES,\n});\n\nexport interface CubeLabelProps\n extends BaseProps, ContainerStyleProps, ValidationProps {\n labelPosition?: LabelPosition;\n necessityIndicator?: NecessityIndicator | null;\n isRequired?: boolean;\n isOptional?: boolean;\n includeNecessityIndicatorInAccessibilityName?: boolean;\n htmlFor?: string;\n for?: string;\n size?: 'medium' | 'small';\n}\n\nfunction Label(props: CubeLabelProps, ref) {\n props = useProviderProps<CubeLabelProps>(props);\n\n const { t } = useI18n();\n\n let {\n as,\n qa,\n children,\n labelPosition = 'top',\n isRequired,\n isOptional,\n necessityIndicator,\n includeNecessityIndicatorInAccessibilityName = false,\n htmlFor,\n isDisabled,\n isInvalid,\n isValid,\n size = 'medium',\n for: labelFor,\n ...otherProps\n } = props;\n\n let domRef = useObjectRef(ref);\n\n const styles = extractStyles(otherProps, CONTAINER_STYLES);\n\n const mark = (\n <NecessityIndicatorMark\n isRequired={isRequired}\n isOptional={isOptional}\n necessityIndicator={necessityIndicator}\n includeNecessityIndicatorInAccessibilityName={\n includeNecessityIndicatorInAccessibilityName\n }\n />\n );\n\n return (\n <LabelElement\n {...filterBaseProps(otherProps)}\n ref={domRef}\n styles={styles}\n htmlFor={labelFor || htmlFor}\n data-size={size}\n mods={{\n side: labelPosition === 'side',\n disabled: isDisabled,\n ...getValidationMods({ isInvalid, isValid }),\n }}\n >\n {/*\n A non-string child is a tree the caller laid out \\u2014 `FieldWrapper`'s\n full-width `Flex`, for one \\u2014 and appending the marker after it would put\n it at the far end of that layout rather than next to the label text. So\n the marker is only appended here for plain-text labels; callers that\n build their own tree place `NecessityIndicatorMark` where it belongs.\n */}\n {typeof children !== 'string' ? (\n children\n ) : (\n <>\n {children}\n {mark}\n </>\n )}\n </LabelElement>\n );\n}\n\nlet _Label = forwardRef(Label);\n\n_Label.displayName = 'Label';\n\nexport { _Label as Label };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Label.js","names":["useObjectRef","BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","Styles","tasty","forwardRef","useI18n","useProviderProps","LabelPosition","NecessityIndicator","ValidationProps","extractStyles","getValidationMods","RequiredIconElement","as","element","styles","width","height","transform","REQUIRED_ICON","NecessityLabelElement","qa","preset","color","fontWeight","CubeNecessityIndicatorProps","necessityIndicator","isRequired","isOptional","includeNecessityIndicatorInAccessibilityName","NecessityIndicatorMark","props","$","_c","t0","t1","undefined","t","t2","requiredLabel","t3","separator","role","t4","INLINE_LABEL_STYLES","invalid","const","LABEL_STYLES","display","side","split","LabelElement","CubeLabelProps","labelPosition","htmlFor","for","size","Label","ref","children","isDisabled","isInvalid","isValid","labelFor","otherProps","domRef","mark","T0","t5","t6","t7","t8","disabled","t9","t10","_Label","displayName","_c"],"sources":["../../../src/components/form/Label.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useI18n } from '../../i18n/useI18n';\nimport { useProviderProps } from '../../provider';\nimport {\n LabelPosition,\n NecessityIndicator,\n ValidationProps,\n} from '../../shared/form';\nimport { extractStyles } from '../../utils/styles';\n\nimport { getValidationMods } from './validation/resolve-validation-props';\n\nconst RequiredIconElement = tasty({\n as: 'svg',\n element: 'RequiredIcon',\n styles: {\n width: '.8em',\n height: '.8em',\n transform: 'rotate(-5deg)',\n },\n});\n\nconst REQUIRED_ICON = (\n <RequiredIconElement\n xmlns=\"http://www.w3.org/2000/svg\"\n version=\"1.1\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 125\"\n >\n <switch>\n <g>\n <polygon\n fill=\"currentColor\"\n points=\"97.5,47.5 90.5,26.1 61.3,35.6 61.3,4.8 38.7,4.8 38.7,35.6 9.5,26.1 2.5,47.5 31.8,57 13.7,82 31.9,95.2 50,70.3 68.1,95.2 86.3,82 68.2,57\"\n />\n </g>\n </switch>\n </RequiredIconElement>\n);\n\n/**\n * The `(required)` / `(optional)` note. Deliberately quieter than the label it\n * follows: it is an aside about the field, not part of its name.\n *\n * `t4` / `#dark-03` is the same tier `FieldWrapper` already gives `description`\n * and `message`, so the note joins the established secondary text rather than\n * inventing a size of its own. The weight is dropped back to 400 — `t4` carries\n * 500, the same weight as the label — because that contrast is what makes the\n * note read as an aside at a glance.\n */\nconst NecessityLabelElement = tasty({\n as: 'span',\n qa: 'NecessityLabel',\n styles: {\n preset: 't4',\n color: '#dark-03',\n fontWeight: 400,\n },\n});\n\nexport interface CubeNecessityIndicatorProps {\n /**\n * `'icon'` renders the asterisk, `'label'` the `(required)` / `(optional)`\n * text. Defaults to `'icon'`, which has no optional form and so only ever\n * marks a required field. `null` suppresses the indicator entirely.\n */\n necessityIndicator?: NecessityIndicator | null;\n /**\n * Marks the label as required. Only an `isRequired` authored on the input,\n * the label or the `Form` reaches this — a `required` validation rule drives\n * validation and `aria-required` without decorating the label.\n */\n isRequired?: boolean;\n /**\n * Marks the label as optional. Purely presentational, and ignored when the\n * field is required.\n */\n isOptional?: boolean;\n /**\n * Whether the indicator contributes to the field's accessible name. Off by\n * default because a required field already announces `aria-required`, and\n * repeating it in the name is noise.\n */\n includeNecessityIndicatorInAccessibilityName?: boolean;\n}\n\n/**\n * The `*` or `(required)` / `(optional)` marker that follows a field label.\n *\n * Its own component because two places render it and both need the same\n * strings: `Label` when it is given plain text, and `FieldWrapper`, which\n * builds a element tree around the label and therefore has to place the marker\n * beside the label text itself rather than after the whole tree.\n *\n * Both marks are opt-in: nothing renders unless the call site passed\n * `isRequired` or `isOptional`.\n */\nexport function NecessityIndicatorMark(props: CubeNecessityIndicatorProps) {\n const {\n isRequired,\n isOptional,\n necessityIndicator = 'icon',\n includeNecessityIndicatorInAccessibilityName = false,\n } = props;\n const { t } = useI18n();\n\n const requiredLabel = t('form.required', '(required)');\n\n // A plain space would collapse against the label text in a flex container,\n // and the zero-width space keeps the pair from being split across lines.\n const separator = ' ';\n\n // Anything that is not one of the two shapes means \"no indicator\" — `null`,\n // and also any stray falsy value a caller might still be passing.\n if (necessityIndicator !== 'icon' && necessityIndicator !== 'label') {\n return null;\n }\n\n if (isRequired) {\n if (necessityIndicator === 'icon') {\n return (\n <>\n {separator}\n {/*\n An image named \"(required)\" when it belongs in the name, hidden\n otherwise — never a bare `<svg>`, which a screen reader announces\n as an unnamed graphic.\n */}\n <span\n {...(includeNecessityIndicatorInAccessibilityName\n ? { role: 'img', 'aria-label': requiredLabel }\n : { 'aria-hidden': true })}\n >\n {REQUIRED_ICON}\n </span>\n </>\n );\n }\n\n // Hidden from screen readers by default, because `aria-required` on the\n // input already announces it and repeating it in the name is noise.\n return (\n <>\n {separator}\n <NecessityLabelElement\n aria-hidden={\n !includeNecessityIndicatorInAccessibilityName ? true : undefined\n }\n >\n {requiredLabel}\n </NecessityLabelElement>\n </>\n );\n }\n\n // There is no icon form of \"optional\", so the note is rendered whichever\n // indicator was asked for. Nothing else tells a screen reader the field is\n // optional, so this one stays in the accessible name.\n if (!isOptional) return null;\n\n return (\n <>\n {separator}\n <NecessityLabelElement>\n {t('form.optional', '(optional)')}\n </NecessityLabelElement>\n </>\n );\n}\n\nexport const INLINE_LABEL_STYLES: Styles = {\n preset: 't3',\n color: {\n '': '#dark-02',\n invalid: '#danger-text',\n },\n} as const;\n\nexport const LABEL_STYLES: Styles = {\n display: 'block',\n preset: {\n '': 't3m',\n 'size=small': 't4',\n },\n color: {\n '': '#dark',\n invalid: '#danger-text',\n },\n width: {\n '': 'initial',\n side: '($label-width, initial)',\n split: 'initial',\n },\n};\n\nconst LabelElement = tasty({\n as: 'label',\n qa: 'Label',\n styles: LABEL_STYLES,\n});\n\nexport interface CubeLabelProps\n extends BaseProps, ContainerStyleProps, ValidationProps {\n labelPosition?: LabelPosition;\n necessityIndicator?: NecessityIndicator | null;\n isRequired?: boolean;\n isOptional?: boolean;\n includeNecessityIndicatorInAccessibilityName?: boolean;\n htmlFor?: string;\n for?: string;\n size?: 'medium' | 'small';\n}\n\nfunction Label(props: CubeLabelProps, ref) {\n props = useProviderProps<CubeLabelProps>(props);\n\n const { t } = useI18n();\n\n let {\n as,\n qa,\n children,\n labelPosition = 'top',\n isRequired,\n isOptional,\n necessityIndicator,\n includeNecessityIndicatorInAccessibilityName = false,\n htmlFor,\n isDisabled,\n isInvalid,\n isValid,\n size = 'medium',\n for: labelFor,\n ...otherProps\n } = props;\n\n let domRef = useObjectRef(ref);\n\n const styles = extractStyles(otherProps, CONTAINER_STYLES);\n\n const mark = (\n <NecessityIndicatorMark\n isRequired={isRequired}\n isOptional={isOptional}\n necessityIndicator={necessityIndicator}\n includeNecessityIndicatorInAccessibilityName={\n includeNecessityIndicatorInAccessibilityName\n }\n />\n );\n\n return (\n <LabelElement\n {...filterBaseProps(otherProps)}\n ref={domRef}\n styles={styles}\n htmlFor={labelFor || htmlFor}\n data-size={size}\n mods={{\n side: labelPosition === 'side',\n disabled: isDisabled,\n ...getValidationMods({ isInvalid, isValid }),\n }}\n >\n {/*\n A non-string child is a tree the caller laid out \\u2014 `FieldWrapper`'s\n full-width `Flex`, for one \\u2014 and appending the marker after it would put\n it at the far end of that layout rather than next to the label text. So\n the marker is only appended here for plain-text labels; callers that\n build their own tree place `NecessityIndicatorMark` where it belongs.\n */}\n {typeof children !== 'string' ? (\n children\n ) : (\n <>\n {children}\n {mark}\n </>\n )}\n </LabelElement>\n );\n}\n\nlet _Label = forwardRef(Label);\n\n_Label.displayName = 'Label';\n\nexport { _Label as Label };\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.208.0 | Cube Dev Team */
|
|
2
2
|
import { warn } from "../../utils/warnings.js";
|
|
3
3
|
//#region src/components/form/field-chrome.ts
|
|
4
4
|
/** Empty slot values suppress content; numeric zero is still text. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles, mergeStyleLayers } from "../../utils/styles.js";
|
|
3
3
|
import { mergeProps } from "../../utils/react/mergeProps.js";
|
|
4
4
|
import { rendersFieldChrome } from "./wrapper.js";
|