@cube-dev/ui-kit 0.202.0 → 0.204.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 +24 -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-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +2 -2
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +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/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +233 -178
- package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/ItemTable/index.d.ts +2 -2
- package/dist/components/data/ItemTable/item-table-sections.js +68 -0
- package/dist/components/data/ItemTable/item-table-sections.js.map +1 -0
- package/dist/components/data/ItemTable/types.d.ts +12 -0
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +31 -27
- package/dist/components/data/ItemTable/use-item-table-selection.js.map +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableRowLink.js +1 -1
- package/dist/components/data/TableBase/TableView.d.ts +1 -0
- package/dist/components/data/TableBase/TableView.js +86 -21
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/column-header.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.js +25 -1
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-body-sections.d.ts +3 -0
- package/dist/components/data/TableBase/table-body-sections.js +30 -0
- package/dist/components/data/TableBase/table-body-sections.js.map +1 -0
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-window.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/data/index.d.ts +2 -2
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +382 -344
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +3 -4
- package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +3 -4
- package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +3 -4
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +3 -4
- 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.js +3 -3
- 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.js +4 -5
- package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +77 -79
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterListBox/styled.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/FilterPicker/FilterTree.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +36 -19
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +52 -37
- package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js.map +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Slider/types.d.ts +0 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +1 -1
- package/dist/components/fields/TagInput/useTagError.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +10 -0
- package/dist/components/fields/TextInput/TextInputBase.js +67 -55
- 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/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/fields/option-origin-press.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +18 -2
- package/dist/components/form/Form/modern/store.js.map +1 -1
- package/dist/components/form/Form/modern/types.d.ts +5 -0
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/field-chrome.js +1 -1
- package/dist/components/form/field-layout.d.ts +12 -2
- package/dist/components/form/field-layout.js +29 -11
- package/dist/components/form/field-layout.js.map +1 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +7 -3
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +18 -18
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +2 -2
- package/dist/components/overlays/AlertDialog/types.d.ts +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +9 -4
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.d.ts +7 -0
- package/dist/components/overlays/Dialog/DialogContainer.js +61 -32
- package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogForm.d.ts +7 -0
- package/dist/components/overlays/Dialog/DialogForm.js +10 -3
- package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.d.ts +8 -0
- package/dist/components/overlays/Dialog/DialogTrigger.js +24 -11
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +213 -185
- package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/context.js.map +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
- package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +211 -0
- package/dist/components/overlays/Dialog/use-dismiss-confirmation.js.map +1 -0
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/modal-containment.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +25 -1
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +10 -2
- package/dist/i18n/locales/en-US/uikit.js +10 -2
- package/dist/i18n/locales/en-US/uikit.json.d.ts +11 -4
- package/dist/i18n/locales/es-ES/uikit.js +10 -2
- package/dist/i18n/locales/es-MX/uikit.js +10 -2
- package/dist/i18n/locales/fr-FR/uikit.js +10 -2
- package/dist/i18n/locales/it-IT/uikit.js +10 -2
- package/dist/i18n/locales/ja-JP/uikit.js +10 -2
- package/dist/i18n/locales/nb-NO/uikit.js +10 -2
- package/dist/i18n/locales/pt-BR/uikit.js +10 -2
- package/dist/i18n/locales/pt-PT/uikit.js +10 -2
- package/dist/i18n/locales/sv-SE/uikit.js +10 -2
- package/dist/i18n/locales/vi-VN/uikit.js +10 -2
- 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 +2 -2
- package/dist/index.js +2 -2
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/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 +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/overlayKeyPropagation.js +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +2 -2
- package/docs/FieldProperties.md +16 -4
- package/docs/Usage.md +1 -1
- package/docs/components/data/ItemTable.md +25 -0
- package/docs/components/fields/ComboBox.md +8 -4
- package/docs/components/fields/CommandTextArea.md +1 -0
- package/docs/components/fields/HueSlider.md +0 -1
- package/docs/components/fields/NumberInput.md +4 -0
- package/docs/components/fields/PasswordInput.md +2 -0
- package/docs/components/fields/SearchInput.md +13 -0
- package/docs/components/fields/Slider.md +0 -1
- package/docs/components/fields/TextArea.md +1 -0
- package/docs/components/fields/TextInput.md +14 -1
- package/docs/components/navigation/Tabs.md +47 -0
- package/docs/components/overlays/Dialog.md +2 -2
- package/docs/components/overlays/DialogContainer.md +1 -0
- package/docs/components/overlays/DialogForm.md +3 -1
- package/docs/components/overlays/DialogTrigger.md +31 -1
- package/package.json +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
2
|
-
import { mergeStyleLayers } from "../../../utils/styles.js";
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
3
2
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
4
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
5
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
@@ -186,7 +185,7 @@ function FileInput(allProps, ref) {
|
|
|
186
185
|
$[19] = t7;
|
|
187
186
|
} else t7 = $[19];
|
|
188
187
|
const onLocalChange = useEvent(t7);
|
|
189
|
-
const { styles, field } = splitFieldLayout(props);
|
|
188
|
+
const { styles, field } = splitFieldLayout(props, { overStyles: inputStyles });
|
|
190
189
|
const { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy } = props;
|
|
191
190
|
const labelId = props.labelProps?.id ?? `${id}-label`;
|
|
192
191
|
const triggerId = `${id}-trigger`;
|
|
@@ -221,68 +220,67 @@ function FileInput(allProps, ref) {
|
|
|
221
220
|
$[25] = t9;
|
|
222
221
|
} else t9 = $[25];
|
|
223
222
|
const t10 = t9.join(" ");
|
|
224
|
-
const t11 =
|
|
225
|
-
|
|
226
|
-
let t13;
|
|
223
|
+
const t11 = !!fileName;
|
|
224
|
+
let t12;
|
|
227
225
|
if ($[26] !== isInvalid || $[27] !== isValid) {
|
|
228
|
-
|
|
226
|
+
t12 = getValidationMods({
|
|
229
227
|
isInvalid,
|
|
230
228
|
isValid
|
|
231
229
|
});
|
|
232
230
|
$[26] = isInvalid;
|
|
233
231
|
$[27] = isValid;
|
|
234
|
-
$[28] =
|
|
235
|
-
} else
|
|
236
|
-
let
|
|
237
|
-
if ($[29] !== dragHover || $[30] !==
|
|
238
|
-
|
|
239
|
-
selected:
|
|
232
|
+
$[28] = t12;
|
|
233
|
+
} else t12 = $[28];
|
|
234
|
+
let t13;
|
|
235
|
+
if ($[29] !== dragHover || $[30] !== t11 || $[31] !== t12) {
|
|
236
|
+
t13 = {
|
|
237
|
+
selected: t11,
|
|
240
238
|
"drag-hover": dragHover,
|
|
241
|
-
...
|
|
239
|
+
...t12
|
|
242
240
|
};
|
|
243
241
|
$[29] = dragHover;
|
|
244
|
-
$[30] =
|
|
245
|
-
$[31] =
|
|
246
|
-
$[32] =
|
|
247
|
-
} else
|
|
248
|
-
let
|
|
242
|
+
$[30] = t11;
|
|
243
|
+
$[31] = t12;
|
|
244
|
+
$[32] = t13;
|
|
245
|
+
} else t13 = $[32];
|
|
246
|
+
let t14;
|
|
249
247
|
if ($[33] !== inputRef) {
|
|
250
|
-
|
|
248
|
+
t14 = (e) => {
|
|
251
249
|
if (e.key === "Enter" || e.key === "Space") inputRef?.current?.click();
|
|
252
250
|
};
|
|
253
251
|
$[33] = inputRef;
|
|
254
|
-
$[34] =
|
|
255
|
-
} else
|
|
256
|
-
const
|
|
252
|
+
$[34] = t14;
|
|
253
|
+
} else t14 = $[34];
|
|
254
|
+
const t15 = qa || "FileInput";
|
|
255
|
+
let t16;
|
|
257
256
|
let t17;
|
|
258
257
|
let t18;
|
|
259
|
-
let t19;
|
|
260
258
|
if ($[35] === Symbol.for("react.memo_cache_sentinel")) {
|
|
261
|
-
|
|
259
|
+
t16 = () => {
|
|
262
260
|
setDragHover(true);
|
|
263
261
|
};
|
|
264
|
-
|
|
262
|
+
t17 = () => {
|
|
265
263
|
setDragHover(false);
|
|
266
264
|
};
|
|
267
|
-
|
|
265
|
+
t18 = () => {
|
|
268
266
|
setDragHover(false);
|
|
269
267
|
};
|
|
270
|
-
$[35] =
|
|
271
|
-
$[36] =
|
|
272
|
-
$[37] =
|
|
268
|
+
$[35] = t16;
|
|
269
|
+
$[36] = t17;
|
|
270
|
+
$[37] = t18;
|
|
273
271
|
} else {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
272
|
+
t16 = $[35];
|
|
273
|
+
t17 = $[36];
|
|
274
|
+
t18 = $[37];
|
|
277
275
|
}
|
|
278
|
-
let
|
|
279
|
-
if ($[38] !== accept || $[39] !== id || $[40] !== inputProps || $[41] !== inputRef || $[42] !== isDisabled || $[43] !== name || $[44] !== onLocalChange || $[45] !==
|
|
280
|
-
|
|
276
|
+
let t19;
|
|
277
|
+
if ($[38] !== accept || $[39] !== id || $[40] !== inputProps || $[41] !== inputRef || $[42] !== isDisabled || $[43] !== name || $[44] !== onLocalChange || $[45] !== t15) {
|
|
278
|
+
t19 = /* @__PURE__ */ jsx("input", {
|
|
281
279
|
ref: inputRef,
|
|
282
280
|
id,
|
|
283
281
|
name,
|
|
284
282
|
accept,
|
|
285
|
-
"data-qa":
|
|
283
|
+
"data-qa": t15,
|
|
286
284
|
"data-input-type": "fileinput",
|
|
287
285
|
"data-element": "Input",
|
|
288
286
|
disabled: isDisabled,
|
|
@@ -290,9 +288,9 @@ function FileInput(allProps, ref) {
|
|
|
290
288
|
multiple: false,
|
|
291
289
|
tabIndex: -1,
|
|
292
290
|
onChange: onLocalChange,
|
|
293
|
-
onDragEnter:
|
|
294
|
-
onDragLeave:
|
|
295
|
-
onDrop:
|
|
291
|
+
onDragEnter: t16,
|
|
292
|
+
onDragLeave: t17,
|
|
293
|
+
onDrop: t18,
|
|
296
294
|
...inputProps
|
|
297
295
|
});
|
|
298
296
|
$[38] = accept;
|
|
@@ -302,72 +300,72 @@ function FileInput(allProps, ref) {
|
|
|
302
300
|
$[42] = isDisabled;
|
|
303
301
|
$[43] = name;
|
|
304
302
|
$[44] = onLocalChange;
|
|
305
|
-
$[45] =
|
|
306
|
-
$[46] =
|
|
307
|
-
} else
|
|
308
|
-
let
|
|
303
|
+
$[45] = t15;
|
|
304
|
+
$[46] = t19;
|
|
305
|
+
} else t19 = $[46];
|
|
306
|
+
let t20;
|
|
309
307
|
if ($[47] !== t) {
|
|
310
|
-
|
|
308
|
+
t20 = t("fileInput.chooseFile", "Choose file");
|
|
311
309
|
$[47] = t;
|
|
312
|
-
$[48] =
|
|
313
|
-
} else
|
|
314
|
-
let
|
|
315
|
-
if ($[49] !== chooseFileId || $[50] !==
|
|
316
|
-
|
|
310
|
+
$[48] = t20;
|
|
311
|
+
} else t20 = $[48];
|
|
312
|
+
let t21;
|
|
313
|
+
if ($[49] !== chooseFileId || $[50] !== t20) {
|
|
314
|
+
t21 = /* @__PURE__ */ jsx("div", {
|
|
317
315
|
id: chooseFileId,
|
|
318
316
|
"data-element": "Button",
|
|
319
|
-
children:
|
|
317
|
+
children: t20
|
|
320
318
|
});
|
|
321
319
|
$[49] = chooseFileId;
|
|
322
|
-
$[50] =
|
|
323
|
-
$[51] =
|
|
324
|
-
} else
|
|
325
|
-
const
|
|
326
|
-
let
|
|
320
|
+
$[50] = t20;
|
|
321
|
+
$[51] = t21;
|
|
322
|
+
} else t21 = $[51];
|
|
323
|
+
const t22 = fileName ? "Value" : "Placeholder";
|
|
324
|
+
let t23;
|
|
327
325
|
if ($[52] !== fileName || $[53] !== placeholder || $[54] !== t) {
|
|
328
|
-
|
|
326
|
+
t23 = fileName || placeholder || t("fileInput.noFileSelected", "No file selected");
|
|
329
327
|
$[52] = fileName;
|
|
330
328
|
$[53] = placeholder;
|
|
331
329
|
$[54] = t;
|
|
332
|
-
$[55] =
|
|
333
|
-
} else
|
|
334
|
-
let
|
|
335
|
-
if ($[56] !== fileNameId || $[57] !==
|
|
336
|
-
|
|
330
|
+
$[55] = t23;
|
|
331
|
+
} else t23 = $[55];
|
|
332
|
+
let t24;
|
|
333
|
+
if ($[56] !== fileNameId || $[57] !== t22 || $[58] !== t23) {
|
|
334
|
+
t24 = /* @__PURE__ */ jsx("div", {
|
|
337
335
|
id: fileNameId,
|
|
338
|
-
"data-element":
|
|
339
|
-
children:
|
|
336
|
+
"data-element": t22,
|
|
337
|
+
children: t23
|
|
340
338
|
});
|
|
341
339
|
$[56] = fileNameId;
|
|
342
|
-
$[57] =
|
|
343
|
-
$[58] =
|
|
344
|
-
$[59] =
|
|
345
|
-
} else
|
|
346
|
-
let
|
|
340
|
+
$[57] = t22;
|
|
341
|
+
$[58] = t23;
|
|
342
|
+
$[59] = t24;
|
|
343
|
+
} else t24 = $[59];
|
|
344
|
+
let t25;
|
|
347
345
|
if ($[60] !== isInvalid || $[61] !== isValid) {
|
|
348
|
-
|
|
346
|
+
t25 = /* @__PURE__ */ jsx(ValidationIndicator, {
|
|
349
347
|
isInvalid,
|
|
350
348
|
isValid
|
|
351
349
|
});
|
|
352
350
|
$[60] = isInvalid;
|
|
353
351
|
$[61] = isValid;
|
|
354
|
-
$[62] =
|
|
355
|
-
} else
|
|
352
|
+
$[62] = t25;
|
|
353
|
+
} else t25 = $[62];
|
|
356
354
|
return wrapWithField(/* @__PURE__ */ jsxs(FileInputElement, {
|
|
357
355
|
ref: actionRef,
|
|
358
356
|
id: triggerId,
|
|
359
357
|
"aria-label": ariaLabel,
|
|
360
358
|
"aria-labelledby": t10,
|
|
361
359
|
"aria-describedby": ariaDescribedBy,
|
|
362
|
-
styles
|
|
360
|
+
styles,
|
|
363
361
|
isDisabled,
|
|
364
|
-
mods:
|
|
365
|
-
onKeyDown:
|
|
362
|
+
mods: t13,
|
|
363
|
+
onKeyDown: t14,
|
|
366
364
|
children: [
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
365
|
+
t19,
|
|
366
|
+
t21,
|
|
367
|
+
t24,
|
|
368
|
+
t25
|
|
371
369
|
]
|
|
372
370
|
}), {
|
|
373
371
|
...props,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileInput.js","names":["createFocusableRef","unwrapDOMRef","useControlledState","BaseProps","Styles","tasty","forwardRef","RefObject","useEffect","useImperativeHandle","useRef","useState","useEvent","useI18n","FieldBaseProps","mergeProps","useCombinedRefs","mergeStyleLayers","Action","getValidationMods","useFieldProps","ValidationIndicator","wrapWithField","FieldLayoutStyleProps","splitFieldLayout","AriaLabelingProps","FocusableRefValue","ChangeEvent","AriaTextFieldProps","Props","FileInputElement","qa","styles","display","position","preset","padding","gap","flow","placeItems","fill","disabled","border","valid","invalid","radius","cursor","overflow","whiteSpace","Button","pressed","color","transition","Placeholder","textOverflow","width","Value","State","ValidationIcon","$","fontSize","Input","top","right","bottom","left","opacity","zIndex","CubeFileInputProps","Omit","size","inputRef","HTMLInputElement","inputStyles","type","inputProps","accept","value","defaultValue","onChange","placeholder","extractFileNameFromValue","split","pop","undefined","FileInput","allProps","ref","_c","t","t0","Symbol","for","defaultValidationTrigger","props","id","name","inputRefProp","isDisabled","isInvalid","isValid","t1","dragHover","setDragHover","currentValue","setValue","selection","setSelection","t2","fileName","reader","actionRef","t3","current","t4","t5","abort","t6","t7","event","file","target","files","name_0","commit","next","nextReader","FileReader","onload","String","result","readAsText","onLocalChange","field","ariaLabel","ariaLabelledBy","ariaDescribedBy","labelId","labelProps","triggerId","chooseFileId","fileNameId","nameSource","label","t8","select","getInputElement","t9","filter","Boolean","t10","join","t11","t12","t13","t14","selected","t15","e","key","click","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","fileInput","_FileInput","displayName","_c"],"sources":["../../../../src/components/fields/FileInput/FileInput.tsx"],"sourcesContent":["import { createFocusableRef, unwrapDOMRef } from '@react-spectrum/utils';\nimport { useControlledState } from '@react-stately/utils';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport {\n forwardRef,\n RefObject,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { mergeStyleLayers } from '../../../utils/styles';\nimport { Action } from '../../actions';\nimport {\n getValidationMods,\n useFieldProps,\n ValidationIndicator,\n wrapWithField,\n} from '../../form';\nimport {\n FieldLayoutStyleProps,\n splitFieldLayout,\n} from '../../form/field-layout';\n\nimport type { AriaLabelingProps, FocusableRefValue } from '@react-types/shared';\nimport type { ChangeEvent } from 'react';\nimport type { AriaTextFieldProps } from 'react-aria';\nimport type { Props } from '../../../props';\n\nconst FileInputElement = tasty(Action, {\n qa: 'FileInputWrapper',\n styles: {\n display: 'inline-flex',\n position: 'relative',\n preset: 't3',\n padding: '.5x 1x',\n gap: '1x',\n flow: 'row',\n placeItems: 'center start',\n fill: {\n '': '#surface',\n 'drag-hover': '#primary.16',\n ':hover': '#primary.08',\n disabled: '#disabled-surface',\n },\n border: {\n '': true,\n valid: '#success-text.50',\n invalid: '#danger-text.50',\n ':focus-within & :focus-visible': '#primary-text',\n },\n radius: true,\n cursor: '$pointer',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n\n Button: {\n radius: true,\n border: {\n '': '#clear',\n pressed: '#primary.30',\n },\n fill: '#primary.12',\n color: {\n '': '#primary',\n disabled: '#dark.30',\n },\n padding: '.5x (1.5x - 1bw)',\n transition: 'theme',\n },\n\n Placeholder: {\n color: '#dark-02',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n width: 'max 100%',\n overflow: 'hidden',\n },\n\n Value: {\n color: '#dark-02',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n width: 'max 100%',\n overflow: 'hidden',\n },\n\n State: {\n display: 'flex',\n placeItems: 'center',\n },\n\n ValidationIcon: {\n $: '> State >',\n display: 'grid',\n placeItems: 'center',\n width: 'min 2x',\n fontSize: '$icon-size',\n },\n\n Input: {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n radius: '$content-radius',\n opacity: 0.01,\n cursor: '$pointer',\n zIndex: 10,\n },\n },\n});\n\nexport interface CubeFileInputProps\n extends\n BaseProps,\n FieldLayoutStyleProps,\n Omit<AriaTextFieldProps, 'form' | 'name' | 'errorMessage'>,\n FieldBaseProps<string | null | undefined> {\n /**\n * The size of the input\n * @default default\n */\n size?: 'small' | 'default' | 'large' | string;\n /** The input ref */\n inputRef?: RefObject<HTMLInputElement | null>;\n /** Style map for the input */\n inputStyles?: Styles;\n /**\n * The type of the input\n * @default file\n */\n type?: 'file' | 'text';\n /** Direct input props */\n inputProps?: Props;\n /** The file types that the input should accept */\n accept?: string;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n}\n\nfunction extractFileNameFromValue(value?: string) {\n return typeof value === 'string'\n ? (value as string).split('\\\\')?.pop()\n : undefined;\n}\n\nfunction FileInput(allProps: CubeFileInputProps, ref) {\n const { t } = useI18n();\n\n const props = useFieldProps(allProps, {\n defaultValidationTrigger: 'onChange',\n });\n\n let {\n id,\n name,\n qa,\n value,\n onChange,\n placeholder,\n inputRef: inputRefProp,\n isDisabled,\n isInvalid,\n isValid,\n inputStyles,\n type = 'file',\n inputProps,\n accept,\n form,\n } = props;\n\n const [dragHover, setDragHover] = useState(false);\n const [currentValue, setValue] = useControlledState(\n value,\n props.defaultValue ?? '',\n onChange,\n );\n const [selection, setSelection] = useState<{\n value: string;\n name: string;\n }>();\n const fileName =\n type === 'file'\n ? extractFileNameFromValue(currentValue)\n : currentValue === selection?.value\n ? selection?.name\n : undefined;\n const reader = useRef<FileReader | null>(null);\n\n // `Action` hands its ref a focusable handle, not the element.\n const actionRef = useRef<FocusableRefValue<HTMLElement>>(null);\n\n const inputRef = useCombinedRefs(inputRefProp);\n\n useEffect(() => {\n // Browsers only allow clearing a file input programmatically. A reset or\n // external value replacement must also release the old native selection.\n if (inputRef.current && currentValue !== selection?.value) {\n inputRef.current.value = '';\n }\n }, [currentValue, selection, inputRef]);\n useEffect(() => () => reader.current?.abort(), [type]);\n\n const onLocalChange = useEvent((event: ChangeEvent<HTMLInputElement>) => {\n reader.current?.abort();\n const file = event.target.files?.[0];\n const name = file?.name ?? '';\n const commit = (next: string) => {\n setSelection({ value: next, name });\n setValue(next);\n };\n if (type === 'file') {\n commit(event.target.value);\n } else if (file) {\n const nextReader = new FileReader();\n reader.current = nextReader;\n nextReader.onload = () => commit(String(nextReader.result ?? ''));\n nextReader.readAsText(file);\n } else {\n commit('');\n }\n });\n\n const { styles, field } = splitFieldLayout(props);\n\n // The button is the control: the label points at the hidden native input so\n // that clicking it opens the file dialog, but the button is what takes focus.\n // So it names itself — the label, or its own `aria-label`, then what it says\n // — and takes the field's description and message.\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n } = props as AriaLabelingProps;\n // A caller's own label id is kept: the trigger refers to whichever it is.\n const labelId = props.labelProps?.id ?? `${id}-label`;\n const triggerId = `${id}-trigger`;\n const chooseFileId = `${id}-choose-file`;\n const fileNameId = `${id}-file-name`;\n const nameSource =\n ariaLabelledBy ?? (props.label ? labelId : ariaLabel ? triggerId : null);\n\n // Expose imperative interface for ref\n useImperativeHandle(ref, () => ({\n ...createFocusableRef(unwrapDOMRef(actionRef), inputRef),\n select() {\n if (inputRef?.current) {\n inputRef.current.select();\n }\n },\n getInputElement() {\n return inputRef?.current;\n },\n }));\n\n const fileInput = (\n <FileInputElement\n ref={actionRef}\n id={triggerId}\n aria-label={ariaLabel}\n aria-labelledby={[nameSource, chooseFileId, fileNameId]\n .filter(Boolean)\n .join(' ')}\n aria-describedby={ariaDescribedBy}\n // The button is the root, so `inputStyles` styles the same element and\n // wins over `styles`, as `wrapperStyles` does on the date pickers.\n styles={mergeStyleLayers(styles, inputStyles)}\n isDisabled={isDisabled}\n mods={{\n selected: !!fileName,\n 'drag-hover': dragHover,\n ...getValidationMods({ isInvalid, isValid }),\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === 'Space') {\n inputRef?.current?.click();\n }\n }}\n >\n <input\n ref={inputRef}\n id={id}\n name={name}\n accept={accept}\n data-qa={qa || 'FileInput'}\n data-input-type=\"fileinput\"\n data-element=\"Input\"\n disabled={isDisabled}\n type=\"file\"\n multiple={false}\n tabIndex={-1}\n onChange={onLocalChange}\n onDragEnter={() => {\n setDragHover(true);\n }}\n onDragLeave={() => {\n setDragHover(false);\n }}\n onDrop={() => {\n setDragHover(false);\n }}\n {...inputProps}\n />\n <div id={chooseFileId} data-element=\"Button\">\n {t('fileInput.chooseFile', 'Choose file')}\n </div>\n <div id={fileNameId} data-element={fileName ? 'Value' : 'Placeholder'}>\n {fileName ||\n placeholder ||\n t('fileInput.noFileSelected', 'No file selected')}\n </div>\n <ValidationIndicator isInvalid={isInvalid} isValid={isValid} />\n </FileInputElement>\n );\n\n return wrapWithField(fileInput, {\n ...props,\n ...field,\n labelProps: mergeProps(props.labelProps, { id: labelId }),\n });\n}\n\n/**\n * FileInputs are file inputs that allow users to select local files to\n * upload them to the server.\n */\nconst _FileInput = forwardRef(FileInput);\n\n_FileInput.displayName = 'FileInput';\n\nexport { _FileInput as FileInput };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileInput.js","names":["createFocusableRef","unwrapDOMRef","useControlledState","BaseProps","Styles","tasty","forwardRef","RefObject","useEffect","useImperativeHandle","useRef","useState","useEvent","useI18n","FieldBaseProps","mergeProps","useCombinedRefs","Action","getValidationMods","useFieldProps","ValidationIndicator","wrapWithField","FieldLayoutStyleProps","splitFieldLayout","AriaLabelingProps","FocusableRefValue","ChangeEvent","AriaTextFieldProps","Props","FileInputElement","qa","styles","display","position","preset","padding","gap","flow","placeItems","fill","disabled","border","valid","invalid","radius","cursor","overflow","whiteSpace","Button","pressed","color","transition","Placeholder","textOverflow","width","Value","State","ValidationIcon","$","fontSize","Input","top","right","bottom","left","opacity","zIndex","CubeFileInputProps","Omit","size","inputRef","HTMLInputElement","inputStyles","type","inputProps","accept","value","defaultValue","onChange","placeholder","extractFileNameFromValue","split","pop","undefined","FileInput","allProps","ref","_c","t","t0","Symbol","for","defaultValidationTrigger","props","id","name","inputRefProp","isDisabled","isInvalid","isValid","t1","dragHover","setDragHover","currentValue","setValue","selection","setSelection","t2","fileName","reader","actionRef","t3","current","t4","t5","abort","t6","t7","event","file","target","files","name_0","commit","next","nextReader","FileReader","onload","String","result","readAsText","onLocalChange","field","overStyles","ariaLabel","ariaLabelledBy","ariaDescribedBy","labelId","labelProps","triggerId","chooseFileId","fileNameId","nameSource","label","t8","select","getInputElement","t9","filter","Boolean","t10","join","t11","t12","t13","selected","t14","e","key","click","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","fileInput","_FileInput","displayName","_c"],"sources":["../../../../src/components/fields/FileInput/FileInput.tsx"],"sourcesContent":["import { createFocusableRef, unwrapDOMRef } from '@react-spectrum/utils';\nimport { useControlledState } from '@react-stately/utils';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport {\n forwardRef,\n RefObject,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { Action } from '../../actions';\nimport {\n getValidationMods,\n useFieldProps,\n ValidationIndicator,\n wrapWithField,\n} from '../../form';\nimport {\n FieldLayoutStyleProps,\n splitFieldLayout,\n} from '../../form/field-layout';\n\nimport type { AriaLabelingProps, FocusableRefValue } from '@react-types/shared';\nimport type { ChangeEvent } from 'react';\nimport type { AriaTextFieldProps } from 'react-aria';\nimport type { Props } from '../../../props';\n\nconst FileInputElement = tasty(Action, {\n qa: 'FileInputWrapper',\n styles: {\n display: 'inline-flex',\n position: 'relative',\n preset: 't3',\n padding: '.5x 1x',\n gap: '1x',\n flow: 'row',\n placeItems: 'center start',\n fill: {\n '': '#surface',\n 'drag-hover': '#primary.16',\n ':hover': '#primary.08',\n disabled: '#disabled-surface',\n },\n border: {\n '': true,\n valid: '#success-text.50',\n invalid: '#danger-text.50',\n ':focus-within & :focus-visible': '#primary-text',\n },\n radius: true,\n cursor: '$pointer',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n\n Button: {\n radius: true,\n border: {\n '': '#clear',\n pressed: '#primary.30',\n },\n fill: '#primary.12',\n color: {\n '': '#primary',\n disabled: '#dark.30',\n },\n padding: '.5x (1.5x - 1bw)',\n transition: 'theme',\n },\n\n Placeholder: {\n color: '#dark-02',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n width: 'max 100%',\n overflow: 'hidden',\n },\n\n Value: {\n color: '#dark-02',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n width: 'max 100%',\n overflow: 'hidden',\n },\n\n State: {\n display: 'flex',\n placeItems: 'center',\n },\n\n ValidationIcon: {\n $: '> State >',\n display: 'grid',\n placeItems: 'center',\n width: 'min 2x',\n fontSize: '$icon-size',\n },\n\n Input: {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n radius: '$content-radius',\n opacity: 0.01,\n cursor: '$pointer',\n zIndex: 10,\n },\n },\n});\n\nexport interface CubeFileInputProps\n extends\n BaseProps,\n FieldLayoutStyleProps,\n Omit<AriaTextFieldProps, 'form' | 'name' | 'errorMessage'>,\n FieldBaseProps<string | null | undefined> {\n /**\n * The size of the input\n * @default default\n */\n size?: 'small' | 'default' | 'large' | string;\n /** The input ref */\n inputRef?: RefObject<HTMLInputElement | null>;\n /** Style map for the input */\n inputStyles?: Styles;\n /**\n * The type of the input\n * @default file\n */\n type?: 'file' | 'text';\n /** Direct input props */\n inputProps?: Props;\n /** The file types that the input should accept */\n accept?: string;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n}\n\nfunction extractFileNameFromValue(value?: string) {\n return typeof value === 'string'\n ? (value as string).split('\\\\')?.pop()\n : undefined;\n}\n\nfunction FileInput(allProps: CubeFileInputProps, ref) {\n const { t } = useI18n();\n\n const props = useFieldProps(allProps, {\n defaultValidationTrigger: 'onChange',\n });\n\n let {\n id,\n name,\n qa,\n value,\n onChange,\n placeholder,\n inputRef: inputRefProp,\n isDisabled,\n isInvalid,\n isValid,\n inputStyles,\n type = 'file',\n inputProps,\n accept,\n form,\n } = props;\n\n const [dragHover, setDragHover] = useState(false);\n const [currentValue, setValue] = useControlledState(\n value,\n props.defaultValue ?? '',\n onChange,\n );\n const [selection, setSelection] = useState<{\n value: string;\n name: string;\n }>();\n const fileName =\n type === 'file'\n ? extractFileNameFromValue(currentValue)\n : currentValue === selection?.value\n ? selection?.name\n : undefined;\n const reader = useRef<FileReader | null>(null);\n\n // `Action` hands its ref a focusable handle, not the element.\n const actionRef = useRef<FocusableRefValue<HTMLElement>>(null);\n\n const inputRef = useCombinedRefs(inputRefProp);\n\n useEffect(() => {\n // Browsers only allow clearing a file input programmatically. A reset or\n // external value replacement must also release the old native selection.\n if (inputRef.current && currentValue !== selection?.value) {\n inputRef.current.value = '';\n }\n }, [currentValue, selection, inputRef]);\n useEffect(() => () => reader.current?.abort(), [type]);\n\n const onLocalChange = useEvent((event: ChangeEvent<HTMLInputElement>) => {\n reader.current?.abort();\n const file = event.target.files?.[0];\n const name = file?.name ?? '';\n const commit = (next: string) => {\n setSelection({ value: next, name });\n setValue(next);\n };\n if (type === 'file') {\n commit(event.target.value);\n } else if (file) {\n const nextReader = new FileReader();\n reader.current = nextReader;\n nextReader.onload = () => commit(String(nextReader.result ?? ''));\n nextReader.readAsText(file);\n } else {\n commit('');\n }\n });\n\n // The button is the root, so `inputStyles` styles the same element and wins\n // over `styles`, as `wrapperStyles` does on the date pickers.\n const { styles, field } = splitFieldLayout(props, {\n overStyles: inputStyles,\n });\n\n // The button is the control: the label points at the hidden native input so\n // that clicking it opens the file dialog, but the button is what takes focus.\n // So it names itself — the label, or its own `aria-label`, then what it says\n // — and takes the field's description and message.\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n } = props as AriaLabelingProps;\n // A caller's own label id is kept: the trigger refers to whichever it is.\n const labelId = props.labelProps?.id ?? `${id}-label`;\n const triggerId = `${id}-trigger`;\n const chooseFileId = `${id}-choose-file`;\n const fileNameId = `${id}-file-name`;\n const nameSource =\n ariaLabelledBy ?? (props.label ? labelId : ariaLabel ? triggerId : null);\n\n // Expose imperative interface for ref\n useImperativeHandle(ref, () => ({\n ...createFocusableRef(unwrapDOMRef(actionRef), inputRef),\n select() {\n if (inputRef?.current) {\n inputRef.current.select();\n }\n },\n getInputElement() {\n return inputRef?.current;\n },\n }));\n\n const fileInput = (\n <FileInputElement\n ref={actionRef}\n id={triggerId}\n aria-label={ariaLabel}\n aria-labelledby={[nameSource, chooseFileId, fileNameId]\n .filter(Boolean)\n .join(' ')}\n aria-describedby={ariaDescribedBy}\n styles={styles}\n isDisabled={isDisabled}\n mods={{\n selected: !!fileName,\n 'drag-hover': dragHover,\n ...getValidationMods({ isInvalid, isValid }),\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === 'Space') {\n inputRef?.current?.click();\n }\n }}\n >\n <input\n ref={inputRef}\n id={id}\n name={name}\n accept={accept}\n data-qa={qa || 'FileInput'}\n data-input-type=\"fileinput\"\n data-element=\"Input\"\n disabled={isDisabled}\n type=\"file\"\n multiple={false}\n tabIndex={-1}\n onChange={onLocalChange}\n onDragEnter={() => {\n setDragHover(true);\n }}\n onDragLeave={() => {\n setDragHover(false);\n }}\n onDrop={() => {\n setDragHover(false);\n }}\n {...inputProps}\n />\n <div id={chooseFileId} data-element=\"Button\">\n {t('fileInput.chooseFile', 'Choose file')}\n </div>\n <div id={fileNameId} data-element={fileName ? 'Value' : 'Placeholder'}>\n {fileName ||\n placeholder ||\n t('fileInput.noFileSelected', 'No file selected')}\n </div>\n <ValidationIndicator isInvalid={isInvalid} isValid={isValid} />\n </FileInputElement>\n );\n\n return wrapWithField(fileInput, {\n ...props,\n ...field,\n labelProps: mergeProps(props.labelProps, { id: labelId }),\n });\n}\n\n/**\n * FileInputs are file inputs that allow users to select local files to\n * upload them to the server.\n */\nconst _FileInput = forwardRef(FileInput);\n\n_FileInput.displayName = 'FileInput';\n\nexport { _FileInput as FileInput };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiCA,MAAM6B,mBAAmBxB,MAAMY,QAAQ;CACrCa,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,UAAU;EACVC,QAAQ;EACRC,SAAS;EACTC,KAAK;EACLC,MAAM;EACNC,YAAY;EACZC,MAAM;GACJ,IAAI;GACJ,cAAc;GACd,UAAU;GACVC,UAAU;EACZ;EACAC,QAAQ;GACN,IAAI;GACJC,OAAO;GACPC,SAAS;GACT,kCAAkC;EACpC;EACAC,QAAQ;EACRC,QAAQ;EACRC,UAAU;EACVC,YAAY;EAEZC,QAAQ;GACNJ,QAAQ;GACRH,QAAQ;IACN,IAAI;IACJQ,SAAS;GACX;GACAV,MAAM;GACNW,OAAO;IACL,IAAI;IACJV,UAAU;GACZ;GACAL,SAAS;GACTgB,YAAY;EACd;EAEAC,aAAa;GACXF,OAAO;GACPH,YAAY;GACZM,cAAc;GACdC,OAAO;GACPR,UAAU;EACZ;EAEAS,OAAO;GACLL,OAAO;GACPH,YAAY;GACZM,cAAc;GACdC,OAAO;GACPR,UAAU;EACZ;EAEAU,OAAO;GACLxB,SAAS;GACTM,YAAY;EACd;EAEAmB,gBAAgB;GACdC,GAAG;GACH1B,SAAS;GACTM,YAAY;GACZgB,OAAO;GACPK,UAAU;EACZ;EAEAC,OAAO;GACL3B,UAAU;GACV4B,KAAK;GACLC,OAAO;GACPC,QAAQ;GACRC,MAAM;GACNpB,QAAQ;GACRqB,SAAS;GACTpB,QAAQ;GACRqB,QAAQ;EACV;CACF;AACF,CAAC;AAgCD,SAASc,yBAAyBJ,OAAgB;CAChD,OAAO,OAAOA,UAAU,WACnBA,MAAiBK,MAAM,IAAI,CAAC,EAAEC,IAAI,IACnCC,KAAAA;AACN;AAEA,SAAAC,UAAAC,UAAAC,KAAA;CAAA,MAAA5B,IAAA6B,EAAA,EAAA;CACE,MAAA,EAAAC,MAAc3E,QAAQ;CAAE,IAAA4E;CAAA,IAAA/B,EAAA,OAAAgC,OAAAC,IAAA,2BAAA,GAAA;EAEcF,KAAA,EAAAG,0BACV,WAC5B;EAAClC,EAAA,KAAA+B;CAAA,OAAAA,KAAA/B,EAAA;CAFD,MAAAmC,QAAc1E,cAAckE,UAAUI,EAErC;CAED,MAAA,EAAAK,IAAAC,MAAAjE,IAAA8C,OAAAE,UAAAC,aAAAT,UAAA0B,cAAAC,YAAAC,WAAAC,SAAA3B,aAAAC,MAAA2B,IAAA1B,YAAAC,WAgBIkB;CAJF,MAAApB,OAAA2B,OAAAjB,KAAAA,IAAA,SAAAiB;CAMF,MAAA,CAAAC,WAAAC,gBAAkC3F,SAAS,KAAK;CAChD,MAAA,CAAA4F,cAAAC,YAAiCtG,mBAC/B0E,OACAiB,MAAKhB,gBAAL,IACAC,QACF;CACA,MAAA,CAAA2B,WAAAC,gBAAkC/F,SAG/B;CAAE,IAAAgG;CAAA,IAAAjD,EAAA,OAAA6C,gBAAA7C,EAAA,OAAA+C,WAAAV,QAAArC,EAAA,OAAA+C,WAAA7B,SAAAlB,EAAA,OAAAe,MAAA;EAEHkC,KAAAlC,SAAS,SACLO,yBAAyBuB,YAGf,IAFVA,iBAAiBE,WAAS7B,QACxB6B,WAASV,OADXZ,KAAAA;EAEWzB,EAAA,KAAA6C;EAAA7C,EAAA,KAAA+C,WAAAV;EAAArC,EAAA,KAAA+C,WAAA7B;EAAAlB,EAAA,KAAAe;EAAAf,EAAA,KAAAiD;CAAA,OAAAA,KAAAjD,EAAA;CALjB,MAAAkD,WACED;CAKF,MAAAE,SAAenG,OAA0B,IAAI;CAG7C,MAAAoG,YAAkBpG,OAAuC,IAAI;CAE7D,MAAA4D,WAAiBtD,gBAAgBgF,YAAY;CAAE,IAAAe;CAAA,IAAArD,EAAA,OAAA6C,gBAAA7C,EAAA,OAAAY,YAAAZ,EAAA,OAAA+C,WAAA7B,OAAA;EAErCmC,WAAA;GAGR,IAAIzC,SAAQ0C,WAAYT,iBAAiBE,WAAS7B,OAChDN,SAAQ0C,QAAQpC,QAAS;EAC1B;EACFlB,EAAA,KAAA6C;EAAA7C,EAAA,KAAAY;EAAAZ,EAAA,KAAA+C,WAAA7B;EAAAlB,EAAA,KAAAqD;CAAA,OAAAA,KAAArD,EAAA;CAAA,IAAAuD;CAAA,IAAAvD,EAAA,QAAA6C,gBAAA7C,EAAA,QAAAY,YAAAZ,EAAA,QAAA+C,WAAA;EAAEQ,KAAA;GAACV;GAAcE;GAAWnC;EAAQ;EAACZ,EAAA,MAAA6C;EAAA7C,EAAA,MAAAY;EAAAZ,EAAA,MAAA+C;EAAA/C,EAAA,MAAAuD;CAAA,OAAAA,KAAAvD,EAAA;CANtClD,UAAUuG,IAMPE,EAAmC;CAAC,IAAAC;CAAA,IAAAxD,EAAA,QAAAgC,OAAAC,IAAA,2BAAA,GAAA;EAC7BuB,iBAAYL,OAAMG,SAAeG,MAAC;EAACzD,EAAA,MAAAwD;CAAA,OAAAA,KAAAxD,EAAA;CAAA,IAAA0D;CAAA,IAAA1D,EAAA,QAAAe,MAAA;EAAE2C,KAAA,CAAC3C,IAAI;EAACf,EAAA,MAAAe;EAAAf,EAAA,MAAA0D;CAAA,OAAAA,KAAA1D,EAAA;CAArDlD,UAAU0G,IAAqCE,EAAM;CAAC,IAAAC;CAAA,IAAA3D,EAAA,QAAA8C,YAAA9C,EAAA,QAAAe,MAAA;EAEvB4C,MAAAC,UAAA;GAC7BT,OAAMG,SAAeG,MAAC;GACtB,MAAAI,OAAaD,MAAKE,OAAOC,QAAW;GACpC,MAAAC,SAAaH,MAAIxB,QAAJ;GACb,MAAA4B,UAAeC,SAAA;IACblB,aAAa;KAAA9B,OAASgD;KAAI7B,MAAEA;IAAK,CAAC;IAClCS,SAASoB,IAAI;GAAC;GAEhB,IAAInD,SAAS,QACXkD,OAAOL,MAAKE,OAAO5C,KAAM;QACpB,IAAI2C,MAAI;IACb,MAAAM,aAAmB,IAAIC,WAAW;IAClCjB,OAAMG,UAAWa;IACjBA,WAAUE,eAAgBJ,OAAOK,OAAOH,WAAUI,UAAV,EAAuB,CAAC;IAChEJ,WAAUK,WAAYX,IAAI;GAAC,OAE3BI,OAAO,EAAE;EACV;EACFjE,EAAA,MAAA8C;EAAA9C,EAAA,MAAAe;EAAAf,EAAA,MAAA2D;CAAA,OAAAA,KAAA3D,EAAA;CAlBD,MAAAyE,gBAAsBvH,SAASyG,EAkB9B;CAID,MAAA,EAAAtF,QAAAqG,UAA0B7G,iBAAiBsE,OAAO,EAAAwC,YACpC7D,YACd,CAAC;CAMD,MAAA,EAAA,cAAA8D,WAAA,mBAAAC,gBAAA,oBAAAC,oBAII3C;CAEJ,MAAA4C,UAAgB5C,MAAK6C,YAAe5C,MAApB,GAA2BA,GAAE;CAC7C,MAAA6C,YAAkB,GAAG7C,GAAE;CACvB,MAAA8C,eAAqB,GAAG9C,GAAE;CAC1B,MAAA+C,aAAmB,GAAG/C,GAAE;CACxB,MAAAgD,aACEP,mBAAmB1C,MAAKkD,QAALN,UAAwBH,YAAAK,YAAA;CAA8B,IAAAK;CAAA,IAAAtF,EAAA,QAAAY,UAAA;EAGlD0E,YAAO;GAAA,GAC3BhJ,mBAAmBC,aAAa6G,SAAS,GAAGxC,QAAQ;GAAC2E,SAAA;IAEtD,IAAI3E,UAAQ0C,SACV1C,SAAQ0C,QAAQiC,OAAQ;GACzB;GAAAC,kBAAA;IAAA,OAGM5E,UAAQ0C;GAAS;EAE5B;EAAEtD,EAAA,MAAAY;EAAAZ,EAAA,MAAAsF;CAAA,OAAAA,KAAAtF,EAAA;CAVFjD,oBAAoB6E,KAAK0D,EAUvB;CAAC,IAAAG;CAAA,IAAAzF,EAAA,QAAAkF,gBAAAlF,EAAA,QAAAmF,cAAAnF,EAAA,QAAAoF,YAAA;EAOkBK,KAAA;GAACL;GAAYF;GAAcC;EAAU,CAAC,CAAAO,OAC7CC,OAAO;EAAC3F,EAAA,MAAAkF;EAAAlF,EAAA,MAAAmF;EAAAnF,EAAA,MAAAoF;EAAApF,EAAA,MAAAyF;CAAA,OAAAA,KAAAzF,EAAA;CADD,MAAA4F,MAAAH,GACCI,KACV,GAAG;CAKC,MAAAC,MAAA,CAAC,CAAC5C;CAAQ,IAAA6C;CAAA,IAAA/F,EAAA,QAAAwC,aAAAxC,EAAA,QAAAyC,SAAA;EAEjBsD,MAAAvI,kBAAkB;GAAAgF;GAAAC;EAAqB,CAAC;EAACzC,EAAA,MAAAwC;EAAAxC,EAAA,MAAAyC;EAAAzC,EAAA,MAAA+F;CAAA,OAAAA,MAAA/F,EAAA;CAAA,IAAAgG;CAAA,IAAAhG,EAAA,QAAA2C,aAAA3C,EAAA,QAAA8F,OAAA9F,EAAA,QAAA+F,KAAA;EAHxCC,MAAA;GAAAC,UACMH;GAAU,cACNnD;GAAS,GACpBoD;EACL;EAAC/F,EAAA,MAAA2C;EAAA3C,EAAA,MAAA8F;EAAA9F,EAAA,MAAA+F;EAAA/F,EAAA,MAAAgG;CAAA,OAAAA,MAAAhG,EAAA;CAAA,IAAAkG;CAAA,IAAAlG,EAAA,QAAAY,UAAA;EACUsF,OAAAC,MAAA;GACT,IAAIA,EAACC,QAAS,WAAWD,EAACC,QAAS,SACjCxF,UAAQ0C,SAAgB+C,MAAC;EAC1B;EACFrG,EAAA,MAAAY;EAAAZ,EAAA,MAAAkG;CAAA,OAAAA,MAAAlG,EAAA;CAOU,MAAAsG,MAAAlI,MAAA;CAAiB,IAAAmI;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAzG,EAAA,QAAAgC,OAAAC,IAAA,2BAAA,GAAA;EAQbsE,YAAA;GACX3D,aAAa,IAAI;EAAC;EAEP4D,YAAA;GACX5D,aAAa,KAAK;EAAC;EAEb6D,YAAA;GACN7D,aAAa,KAAK;EAAC;EACpB5C,EAAA,MAAAuG;EAAAvG,EAAA,MAAAwG;EAAAxG,EAAA,MAAAyG;CAAA,OAAA;EAAAF,MAAAvG,EAAA;EAAAwG,MAAAxG,EAAA;EAAAyG,MAAAzG,EAAA;CAAA;CAAA,IAAA0G;CAAA,IAAA1G,EAAA,QAAAiB,UAAAjB,EAAA,QAAAoC,MAAApC,EAAA,QAAAgB,cAAAhB,EAAA,QAAAY,YAAAZ,EAAA,QAAAuC,cAAAvC,EAAA,QAAAqC,QAAArC,EAAA,QAAAyE,iBAAAzE,EAAA,QAAAsG,KAAA;EArBHI,MAAA,oBAAA,SAAA;GACO9F,KAAAA;GACDwB;GACEC;GACEpB;GACC,WAAAqF;GACO,mBAAA;GACH,gBAAA;GACH/D,UAAAA;GACL,MAAA;GACK,UAAA;GACA,UAAA;GACAkC,UAAAA;GACG,aAAA8B;GAGA,aAAAC;GAGL,QAAAC;GAEP,GACGzF;EAAU,CAAA;EACdhB,EAAA,MAAAiB;EAAAjB,EAAA,MAAAoC;EAAApC,EAAA,MAAAgB;EAAAhB,EAAA,MAAAY;EAAAZ,EAAA,MAAAuC;EAAAvC,EAAA,MAAAqC;EAAArC,EAAA,MAAAyE;EAAAzE,EAAA,MAAAsG;EAAAtG,EAAA,MAAA0G;CAAA,OAAAA,MAAA1G,EAAA;CAAA,IAAA2G;CAAA,IAAA3G,EAAA,QAAA8B,GAAA;EAEC6E,MAAA7E,EAAE,wBAAwB,aAAa;EAAC9B,EAAA,MAAA8B;EAAA9B,EAAA,MAAA2G;CAAA,OAAAA,MAAA3G,EAAA;CAAA,IAAA4G;CAAA,IAAA5G,EAAA,QAAAkF,gBAAAlF,EAAA,QAAA2G,KAAA;EAD3CC,MAAA,oBAAA,OAAA;GAAS1B,IAAAA;GAA2B,gBAAA;GACjCyB,UAAAA;EACG,CAAA;EAAA3G,EAAA,MAAAkF;EAAAlF,EAAA,MAAA2G;EAAA3G,EAAA,MAAA4G;CAAA,OAAAA,MAAA5G,EAAA;CAC6B,MAAA6G,MAAA3D,WAAA,UAAA;CAAkC,IAAA4D;CAAA,IAAA9G,EAAA,QAAAkD,YAAAlD,EAAA,QAAAqB,eAAArB,EAAA,QAAA8B,GAAA;EAClEgF,MAAA5D,YAAA7B,eAECS,EAAE,4BAA4B,kBAAkB;EAAC9B,EAAA,MAAAkD;EAAAlD,EAAA,MAAAqB;EAAArB,EAAA,MAAA8B;EAAA9B,EAAA,MAAA8G;CAAA,OAAAA,MAAA9G,EAAA;CAAA,IAAA+G;CAAA,IAAA/G,EAAA,QAAAmF,cAAAnF,EAAA,QAAA6G,OAAA7G,EAAA,QAAA8G,KAAA;EAHrDC,MAAA,oBAAA,OAAA;GAAS5B,IAAAA;GAA0B,gBAAA0B;GAChCC,UAAAA;EAGG,CAAA;EAAA9G,EAAA,MAAAmF;EAAAnF,EAAA,MAAA6G;EAAA7G,EAAA,MAAA8G;EAAA9G,EAAA,MAAA+G;CAAA,OAAAA,MAAA/G,EAAA;CAAA,IAAAgH;CAAA,IAAAhH,EAAA,QAAAwC,aAAAxC,EAAA,QAAAyC,SAAA;EACNuE,MAAA,oBAAC,qBAAD;GAAgCxE;GAAoBC;EAAO,CAAA;EAAIzC,EAAA,MAAAwC;EAAAxC,EAAA,MAAAyC;EAAAzC,EAAA,MAAAgH;CAAA,OAAAA,MAAAhH,EAAA;CAEjE,OAEKrC,cAAcsJ,qBAzDlB,kBAAD;EACO7D,KAAAA;EACD6B,IAAAA;EACQL,cAAAA;EACK,mBAAAgB;EAGCd,oBAAAA;EACVzG;EACIkE;EACN,MAAAyD;EAKK,WAAAE;EAfb,UAAA;GAqBEQ;GAwBAE;GAGAG;GAKAC;EArDe;CAyDEC,CAAAA,GAAW;EAAA,GAC3B9E;EAAK,GACLuC;EAAKM,YACI3H,WAAW8E,MAAK6C,YAAa,EAAA5C,IAAM2C,QAAQ,CAAC;CAC1D,CAAC;AAAC;;;;;AAOJ,MAAMmC,aAAatK,WAAW8E,SAAS;AAEvCwF,WAAWC,cAAc"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
import { StyledHeader } from "../../actions/Menu/styled.js";
|
|
3
3
|
import { DEFAULT_INPUT_STYLES, INPUT_WRAPPER_STYLES } from "../TextInput/TextInputBase.js";
|
|
4
4
|
import { mergeStyles, tasty } from "@tenphi/tasty";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
import { mergeStyleLayers } from "../../../utils/styles.js";
|
|
3
3
|
import { Text as _Text } from "../../content/Text.js";
|
|
4
4
|
import { isTextOnly } from "../../../utils/react/isTextOnly.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
3
3
|
import { LoadingIcon } from "../../../icons/LoadingIcon.js";
|
|
4
4
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
import { FileInput as _FileInput } from "../FileInput/FileInput.js";
|
|
3
3
|
import { NumberInput as _NumberInput } from "../NumberInput/NumberInput.js";
|
|
4
4
|
import { PasswordInput as _PasswordInput } from "../PasswordInput/PasswordInput.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
import { DraggableCollection } from "../../shared/DraggableCollection.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { useWarn } from "../../../_internal/hooks/use-warn.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { mergeRefs as mergeRefs$1 } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
//#region src/components/fields/ListBoxPopover/listNavigation.ts
|
|
3
3
|
/**
|
|
4
4
|
* Walks a collection (possibly nested under sections) and collects the keys of
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useEffect, useRef } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { settleOverlayKey } from "../../../utils/react/overlayKeyPropagation.js";
|
|
@@ -24,7 +24,7 @@ const StepperContainer = tasty({ styles: {
|
|
|
24
24
|
margin: "(.5x - 1bw) left"
|
|
25
25
|
} });
|
|
26
26
|
function NumberInput(rawProps, ref) {
|
|
27
|
-
const $ = c(
|
|
27
|
+
const $ = c(57);
|
|
28
28
|
const { t } = useI18n();
|
|
29
29
|
let t0;
|
|
30
30
|
if ($[0] !== rawProps) {
|
|
@@ -141,13 +141,15 @@ function NumberInput(rawProps, ref) {
|
|
|
141
141
|
direction: "up",
|
|
142
142
|
...incrementButtonProps,
|
|
143
143
|
"aria-label": stepUpLabel,
|
|
144
|
-
size: otherProps.size
|
|
144
|
+
size: otherProps.size,
|
|
145
|
+
isPlain: otherProps.shape === "plain"
|
|
145
146
|
}), /* @__PURE__ */ jsx(StepButton, {
|
|
146
147
|
isDisabled: props.isDisabled,
|
|
147
148
|
direction: "down",
|
|
148
149
|
...decrementButtonProps,
|
|
149
150
|
"aria-label": stepDownLabel,
|
|
150
|
-
size: otherProps.size
|
|
151
|
+
size: otherProps.size,
|
|
152
|
+
isPlain: otherProps.shape === "plain"
|
|
151
153
|
})] }) : void 0;
|
|
152
154
|
const T0 = StyledTextInputBase;
|
|
153
155
|
const t11 = otherProps;
|
|
@@ -174,8 +176,21 @@ function NumberInput(rawProps, ref) {
|
|
|
174
176
|
$[41] = t14;
|
|
175
177
|
} else t14 = $[41];
|
|
176
178
|
let t15;
|
|
177
|
-
if ($[42] !==
|
|
178
|
-
t15 = /* @__PURE__ */ jsx(
|
|
179
|
+
if ($[42] !== props.isDisabled || $[43] !== props.name || $[44] !== state) {
|
|
180
|
+
t15 = props.name ? /* @__PURE__ */ jsx("input", {
|
|
181
|
+
type: "hidden",
|
|
182
|
+
name: props.name,
|
|
183
|
+
value: isNaN(state.numberValue) ? "" : state.numberValue,
|
|
184
|
+
disabled: props.isDisabled
|
|
185
|
+
}) : null;
|
|
186
|
+
$[42] = props.isDisabled;
|
|
187
|
+
$[43] = props.name;
|
|
188
|
+
$[44] = state;
|
|
189
|
+
$[45] = t15;
|
|
190
|
+
} else t15 = $[45];
|
|
191
|
+
let t16;
|
|
192
|
+
if ($[46] !== T0 || $[47] !== groupProps || $[48] !== inputRef || $[49] !== mergedLabelProps || $[50] !== otherProps || $[51] !== ref || $[52] !== t12 || $[53] !== t13 || $[54] !== t14 || $[55] !== t15) {
|
|
193
|
+
t16 = /* @__PURE__ */ jsx(T0, {
|
|
179
194
|
...t11,
|
|
180
195
|
...t12,
|
|
181
196
|
ref,
|
|
@@ -184,20 +199,22 @@ function NumberInput(rawProps, ref) {
|
|
|
184
199
|
inputRef,
|
|
185
200
|
wrapperProps: groupProps,
|
|
186
201
|
suffixPosition: "after",
|
|
187
|
-
suffix: t14
|
|
202
|
+
suffix: t14,
|
|
203
|
+
children: t15
|
|
188
204
|
});
|
|
189
|
-
$[
|
|
190
|
-
$[
|
|
191
|
-
$[
|
|
192
|
-
$[
|
|
193
|
-
$[
|
|
194
|
-
$[
|
|
195
|
-
$[
|
|
196
|
-
$[
|
|
197
|
-
$[
|
|
198
|
-
$[
|
|
199
|
-
|
|
200
|
-
|
|
205
|
+
$[46] = T0;
|
|
206
|
+
$[47] = groupProps;
|
|
207
|
+
$[48] = inputRef;
|
|
208
|
+
$[49] = mergedLabelProps;
|
|
209
|
+
$[50] = otherProps;
|
|
210
|
+
$[51] = ref;
|
|
211
|
+
$[52] = t12;
|
|
212
|
+
$[53] = t13;
|
|
213
|
+
$[54] = t14;
|
|
214
|
+
$[55] = t15;
|
|
215
|
+
$[56] = t16;
|
|
216
|
+
} else t16 = $[56];
|
|
217
|
+
return t16;
|
|
201
218
|
}
|
|
202
219
|
/**
|
|
203
220
|
* NumberFields allow users to enter a number and increment or decrement the value using stepper buttons.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.js","names":["tasty","ForwardedRef","forwardRef","KeyboardEvent","RefObject","useRef","AriaNumberFieldProps","mergeProps","mergeAriaProps","useKeyboard","useLocale","useNumberField","useNumberFieldState","useI18n","castNullableNumberValue","WithNullableValue","settleOverlayKey","useFieldProps","useDisplayedValidation","CubeTextInputBaseProps","TextInputBase","StepButton","TextInputDOMEvents","FieldBaseProps","TextFieldKeyboardProps","CubeNumberInputProps","Omit","field","hideStepper","suffixPosition","StyledTextInputBase","inputStyles","textAlign","StepperContainer","styles","display","gridColumns","gridRows","flow","placeSelf","margin","NumberInput","rawProps","ref","$","_c","t","t0","t1","Symbol","for","showsValidateErrors","props","suffix","value","defaultValue","onChange","inputRef","labelProps","userLabelProps","inputProps","userInputProps","wrapperProps","otherProps","showStepper","locale","displayedValidation","t2","trackTouched","ariaProps","t3","state","localInputRef","t4","onKeyDown","undefined","onKeyUp","groupProps","ariaGroupProps","incrementButtonProps","decrementButtonProps","validation","HTMLInputElement","t5","fieldLabel","label","t6","incrementAriaLabel","stepUpLabel","t7","decrementAriaLabel","stepDownLabel","t8","event","defaultPrevented","isDefaultPrevented","key","continuePropagation","t9","isDisabled","keyboardProps","t10","mergedLabelProps","steppers","size","T0","t12","getDisplayedValidation","t13","id","t14","t15","_NumberInput","cubeInputType","displayName","TextInputBase","_c","mergeProps","mergeAriaProps"],"sources":["../../../../src/components/fields/NumberInput/NumberInput.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n RefObject,\n useRef,\n} from 'react';\nimport {\n AriaNumberFieldProps,\n mergeProps as mergeAriaProps,\n useKeyboard,\n useLocale,\n useNumberField,\n} from 'react-aria';\nimport { useNumberFieldState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps } from '../../../utils/react';\nimport {\n castNullableNumberValue,\n WithNullableValue,\n} from '../../../utils/react/nullableValue';\nimport { settleOverlayKey } from '../../../utils/react/overlayKeyPropagation';\nimport { useFieldProps } from '../../form';\nimport { useDisplayedValidation } from '../TextInput/displayed-validation';\nimport {\n CubeTextInputBaseProps,\n TextInputBase,\n} from '../TextInput/TextInputBase';\n\nimport { StepButton } from './StepButton';\n\nimport type { TextInputDOMEvents } from '@react-types/shared';\nimport type {\n FieldBaseProps,\n TextFieldKeyboardProps,\n} from '../../../shared/form';\n\nexport interface CubeNumberInputProps\n extends\n Omit<\n CubeTextInputBaseProps,\n | 'defaultValue'\n | 'value'\n | 'onChange'\n | 'field'\n | 'validate'\n | 'onFocus'\n | 'onBlur'\n | keyof TextInputDOMEvents\n >,\n Omit<\n AriaNumberFieldProps,\n 'form' | 'name' | 'errorMessage' | 'onKeyDown' | 'onKeyUp'\n >,\n TextFieldKeyboardProps {\n field?: FieldBaseProps<number | null | undefined>['field'];\n /** Whether or to hide stepper */\n hideStepper?: boolean;\n /**\n * Whether the suffix goes before or after the stepper buttons. Defaults to\n * `before`, so a unit sits next to the number. The validation and loading\n * icons always come before both.\n */\n suffixPosition?: 'before' | 'after';\n}\n\nconst StyledTextInputBase = tasty(TextInputBase, {\n inputStyles: {\n textAlign: 'right',\n },\n});\n\nconst StepperContainer = tasty({\n styles: {\n display: 'grid',\n gridColumns: '1sf',\n gridRows: '1sf 1sf',\n flow: 'column',\n placeSelf: 'stretch',\n margin: '(.5x - 1bw) left',\n },\n});\n\nfunction NumberInput(\n rawProps: WithNullableValue<CubeNumberInputProps>,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n\n // `NaN` is the number field's own empty value.\n rawProps = castNullableNumberValue(rawProps);\n let props = useFieldProps(rawProps, { showsValidateErrors: true });\n\n let {\n hideStepper,\n suffix,\n value,\n defaultValue,\n onChange,\n inputRef,\n labelProps: userLabelProps,\n inputProps: userInputProps,\n wrapperProps,\n ...otherProps\n } = props;\n let showStepper = !hideStepper;\n let { locale } = useLocale();\n // The state commits typed text on blur and Enter, so its `onChange` is the\n // change `validate` sees.\n let displayedValidation = useDisplayedValidation();\n let ariaProps = displayedValidation.trackTouched(props);\n let state = useNumberFieldState({ ...ariaProps, locale });\n let localInputRef = useRef<HTMLInputElement>(null);\n\n inputRef = inputRef ?? localInputRef;\n\n let {\n groupProps: ariaGroupProps,\n labelProps,\n inputProps,\n incrementButtonProps,\n decrementButtonProps,\n ...validation\n } = useNumberField(\n { ...ariaProps, onKeyDown: undefined, onKeyUp: undefined },\n state,\n inputRef as RefObject<HTMLInputElement>,\n );\n let groupProps = mergeProps(ariaGroupProps, wrapperProps);\n\n // React Aria names each stepper after the field: a text label goes into the\n // name, any other label is composed in through the `aria-labelledby` it sets.\n // The UI Kit strings take the label the same way, so they replace React\n // Aria's own without losing the field name. Without a text label the name\n // has to read on its own, so it has strings of its own rather than an\n // empty `{{label}}` slot.\n let fieldLabel =\n props['aria-label'] || (typeof props.label === 'string' ? props.label : '');\n let stepUpLabel =\n props.incrementAriaLabel ??\n (fieldLabel\n ? t('numberInput.stepUp', 'Increase {{label}}', { label: fieldLabel })\n : t('numberInput.increase', 'Increase'));\n let stepDownLabel =\n props.decrementAriaLabel ??\n (fieldLabel\n ? t('numberInput.stepDown', 'Decrease {{label}}', { label: fieldLabel })\n : t('numberInput.decrease', 'Decrease'));\n // Keep native commits and user callbacks inside one Aria event wrapper so\n // continuePropagation can still undo the native shortcut's propagation stop.\n let { keyboardProps } = useKeyboard({\n isDisabled: props.isDisabled,\n onKeyDown: (event) => {\n inputProps.onKeyDown?.(event as KeyboardEvent<HTMLInputElement>);\n event.defaultPrevented = event.isDefaultPrevented();\n // NumberInput historically lets every key except Enter reach ancestors.\n if (event.key !== 'Enter') event.continuePropagation();\n props.onKeyDown?.(event);\n // Number handling never prevents `Escape` or `Tab`, so a prevented one\n // is the caller's and stops here, as in every other field. An\n // unprevented one already goes on, unless the caller stopped it.\n if (event.isDefaultPrevented()) settleOverlayKey(event);\n },\n onKeyUp: props.onKeyUp,\n });\n\n // Merge user-provided labelProps with aria labelProps\n const mergedLabelProps = mergeProps(labelProps, userLabelProps);\n\n const steppers = showStepper ? (\n <StepperContainer>\n <StepButton\n isDisabled={props.isDisabled}\n direction=\"up\"\n {...incrementButtonProps}\n aria-label={stepUpLabel}\n size={otherProps.size}\n />\n <StepButton\n isDisabled={props.isDisabled}\n direction=\"down\"\n {...decrementButtonProps}\n aria-label={stepDownLabel}\n size={otherProps.size}\n />\n </StepperContainer>\n ) : undefined;\n\n return (\n <StyledTextInputBase\n {...otherProps}\n {...displayedValidation.getDisplayedValidation(otherProps, validation)}\n ref={ref}\n labelProps={mergedLabelProps}\n inputProps={mergeProps(\n // `useNumberField` seeds its input id once. Merging the current id\n // through react-aria's own `mergeProps` updates that seed, so the\n // input, its label and the steppers' `aria-controls` follow the id\n // when the form binding changes after mount.\n mergeAriaProps({ ...inputProps, ...keyboardProps }, { id: props.id }),\n { 'data-input-type': 'numberinput' },\n userInputProps,\n )}\n inputRef={inputRef}\n wrapperProps={groupProps}\n // The validation/loading icon always comes first; `suffixPosition`\n // places the suffix against the steppers instead.\n suffixPosition=\"after\"\n suffix={\n showStepper ? (\n props.suffixPosition === 'after' ? (\n <>\n {steppers}\n {suffix}\n </>\n ) : (\n <>\n {suffix}\n {steppers}\n </>\n )\n ) : (\n suffix\n )\n }\n />\n );\n}\n\n/**\n * NumberFields allow users to enter a number and increment or decrement the value using stepper buttons.\n */\nconst _NumberInput = forwardRef(NumberInput);\n\n(_NumberInput as any).cubeInputType = 'Number';\n\n_NumberInput.displayName = 'NumberInput';\n\nexport { _NumberInput as NumberInput };\nexport type { AriaNumberFieldProps };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NumberInput.js","names":["tasty","ForwardedRef","forwardRef","KeyboardEvent","RefObject","useRef","AriaNumberFieldProps","mergeProps","mergeAriaProps","useKeyboard","useLocale","useNumberField","useNumberFieldState","useI18n","castNullableNumberValue","WithNullableValue","settleOverlayKey","useFieldProps","useDisplayedValidation","CubeTextInputBaseProps","TextInputBase","StepButton","TextInputDOMEvents","FieldBaseProps","TextFieldKeyboardProps","CubeNumberInputProps","Omit","field","hideStepper","suffixPosition","StyledTextInputBase","inputStyles","textAlign","StepperContainer","styles","display","gridColumns","gridRows","flow","placeSelf","margin","NumberInput","rawProps","ref","$","_c","t","t0","t1","Symbol","for","showsValidateErrors","props","suffix","value","defaultValue","onChange","inputRef","labelProps","userLabelProps","inputProps","userInputProps","wrapperProps","otherProps","showStepper","locale","displayedValidation","t2","trackTouched","ariaProps","t3","state","localInputRef","t4","onKeyDown","undefined","onKeyUp","groupProps","ariaGroupProps","incrementButtonProps","decrementButtonProps","validation","HTMLInputElement","t5","fieldLabel","label","t6","incrementAriaLabel","stepUpLabel","t7","decrementAriaLabel","stepDownLabel","t8","event","defaultPrevented","isDefaultPrevented","key","continuePropagation","t9","isDisabled","keyboardProps","t10","mergedLabelProps","steppers","size","shape","T0","t12","getDisplayedValidation","t13","id","t14","t15","name","isNaN","numberValue","t16","_NumberInput","cubeInputType","displayName","TextInputBase","_c","mergeProps","mergeAriaProps"],"sources":["../../../../src/components/fields/NumberInput/NumberInput.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n RefObject,\n useRef,\n} from 'react';\nimport {\n AriaNumberFieldProps,\n mergeProps as mergeAriaProps,\n useKeyboard,\n useLocale,\n useNumberField,\n} from 'react-aria';\nimport { useNumberFieldState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps } from '../../../utils/react';\nimport {\n castNullableNumberValue,\n WithNullableValue,\n} from '../../../utils/react/nullableValue';\nimport { settleOverlayKey } from '../../../utils/react/overlayKeyPropagation';\nimport { useFieldProps } from '../../form';\nimport { useDisplayedValidation } from '../TextInput/displayed-validation';\nimport {\n CubeTextInputBaseProps,\n TextInputBase,\n} from '../TextInput/TextInputBase';\n\nimport { StepButton } from './StepButton';\n\nimport type { TextInputDOMEvents } from '@react-types/shared';\nimport type {\n FieldBaseProps,\n TextFieldKeyboardProps,\n} from '../../../shared/form';\n\nexport interface CubeNumberInputProps\n extends\n Omit<\n CubeTextInputBaseProps,\n | 'defaultValue'\n | 'value'\n | 'onChange'\n | 'field'\n | 'validate'\n | 'onFocus'\n | 'onBlur'\n | keyof TextInputDOMEvents\n >,\n Omit<\n AriaNumberFieldProps,\n 'form' | 'name' | 'errorMessage' | 'onKeyDown' | 'onKeyUp'\n >,\n TextFieldKeyboardProps {\n field?: FieldBaseProps<number | null | undefined>['field'];\n /** Whether or to hide stepper */\n hideStepper?: boolean;\n /**\n * Whether the suffix goes before or after the stepper buttons. Defaults to\n * `before`, so a unit sits next to the number. The validation and loading\n * icons always come before both.\n */\n suffixPosition?: 'before' | 'after';\n}\n\nconst StyledTextInputBase = tasty(TextInputBase, {\n inputStyles: {\n textAlign: 'right',\n },\n});\n\nconst StepperContainer = tasty({\n styles: {\n display: 'grid',\n gridColumns: '1sf',\n gridRows: '1sf 1sf',\n flow: 'column',\n placeSelf: 'stretch',\n margin: '(.5x - 1bw) left',\n },\n});\n\nfunction NumberInput(\n rawProps: WithNullableValue<CubeNumberInputProps>,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n\n // `NaN` is the number field's own empty value.\n rawProps = castNullableNumberValue(rawProps);\n let props = useFieldProps(rawProps, { showsValidateErrors: true });\n\n let {\n hideStepper,\n suffix,\n value,\n defaultValue,\n onChange,\n inputRef,\n labelProps: userLabelProps,\n inputProps: userInputProps,\n wrapperProps,\n ...otherProps\n } = props;\n let showStepper = !hideStepper;\n let { locale } = useLocale();\n // The state commits typed text on blur and Enter, so its `onChange` is the\n // change `validate` sees.\n let displayedValidation = useDisplayedValidation();\n let ariaProps = displayedValidation.trackTouched(props);\n let state = useNumberFieldState({ ...ariaProps, locale });\n let localInputRef = useRef<HTMLInputElement>(null);\n\n inputRef = inputRef ?? localInputRef;\n\n let {\n groupProps: ariaGroupProps,\n labelProps,\n inputProps,\n incrementButtonProps,\n decrementButtonProps,\n ...validation\n } = useNumberField(\n { ...ariaProps, onKeyDown: undefined, onKeyUp: undefined },\n state,\n inputRef as RefObject<HTMLInputElement>,\n );\n let groupProps = mergeProps(ariaGroupProps, wrapperProps);\n\n // React Aria names each stepper after the field: a text label goes into the\n // name, any other label is composed in through the `aria-labelledby` it sets.\n // The UI Kit strings take the label the same way, so they replace React\n // Aria's own without losing the field name. Without a text label the name\n // has to read on its own, so it has strings of its own rather than an\n // empty `{{label}}` slot.\n let fieldLabel =\n props['aria-label'] || (typeof props.label === 'string' ? props.label : '');\n let stepUpLabel =\n props.incrementAriaLabel ??\n (fieldLabel\n ? t('numberInput.stepUp', 'Increase {{label}}', { label: fieldLabel })\n : t('numberInput.increase', 'Increase'));\n let stepDownLabel =\n props.decrementAriaLabel ??\n (fieldLabel\n ? t('numberInput.stepDown', 'Decrease {{label}}', { label: fieldLabel })\n : t('numberInput.decrease', 'Decrease'));\n // Keep native commits and user callbacks inside one Aria event wrapper so\n // continuePropagation can still undo the native shortcut's propagation stop.\n let { keyboardProps } = useKeyboard({\n isDisabled: props.isDisabled,\n onKeyDown: (event) => {\n inputProps.onKeyDown?.(event as KeyboardEvent<HTMLInputElement>);\n event.defaultPrevented = event.isDefaultPrevented();\n // NumberInput historically lets every key except Enter reach ancestors.\n if (event.key !== 'Enter') event.continuePropagation();\n props.onKeyDown?.(event);\n // Number handling never prevents `Escape` or `Tab`, so a prevented one\n // is the caller's and stops here, as in every other field. An\n // unprevented one already goes on, unless the caller stopped it.\n if (event.isDefaultPrevented()) settleOverlayKey(event);\n },\n onKeyUp: props.onKeyUp,\n });\n\n // Merge user-provided labelProps with aria labelProps\n const mergedLabelProps = mergeProps(labelProps, userLabelProps);\n\n const steppers = showStepper ? (\n <StepperContainer>\n <StepButton\n isDisabled={props.isDisabled}\n direction=\"up\"\n {...incrementButtonProps}\n aria-label={stepUpLabel}\n size={otherProps.size}\n isPlain={otherProps.shape === 'plain'}\n />\n <StepButton\n isDisabled={props.isDisabled}\n direction=\"down\"\n {...decrementButtonProps}\n aria-label={stepDownLabel}\n size={otherProps.size}\n isPlain={otherProps.shape === 'plain'}\n />\n </StepperContainer>\n ) : undefined;\n\n return (\n <StyledTextInputBase\n {...otherProps}\n {...displayedValidation.getDisplayedValidation(otherProps, validation)}\n ref={ref}\n labelProps={mergedLabelProps}\n inputProps={mergeProps(\n // `useNumberField` seeds its input id once. Merging the current id\n // through react-aria's own `mergeProps` updates that seed, so the\n // input, its label and the steppers' `aria-controls` follow the id\n // when the form binding changes after mount.\n mergeAriaProps({ ...inputProps, ...keyboardProps }, { id: props.id }),\n { 'data-input-type': 'numberinput' },\n userInputProps,\n )}\n inputRef={inputRef}\n wrapperProps={groupProps}\n // The validation/loading icon always comes first; `suffixPosition`\n // places the suffix against the steppers instead.\n suffixPosition=\"after\"\n suffix={\n showStepper ? (\n props.suffixPosition === 'after' ? (\n <>\n {steppers}\n {suffix}\n </>\n ) : (\n <>\n {suffix}\n {steppers}\n </>\n )\n ) : (\n suffix\n )\n }\n >\n {/* `useNumberField` keeps `name` off the input, whose text is formatted, so a native `<form>` submits the number from here. */}\n {props.name ? (\n <input\n type=\"hidden\"\n name={props.name}\n value={isNaN(state.numberValue) ? '' : state.numberValue}\n disabled={props.isDisabled}\n />\n ) : null}\n </StyledTextInputBase>\n );\n}\n\n/**\n * NumberFields allow users to enter a number and increment or decrement the value using stepper buttons.\n */\nconst _NumberInput = forwardRef(NumberInput);\n\n(_NumberInput as any).cubeInputType = 'Number';\n\n_NumberInput.displayName = 'NumberInput';\n\nexport { _NumberInput as NumberInput };\nexport type { AriaNumberFieldProps };\n"],"mappings":";;;;;;;;;;;;;;;;AAoEA,MAAM8B,sBAAsB9B,MAAMoB,gBAAe,EAC/CW,aAAa,EACXC,WAAW,QACb,EACF,CAAC;AAED,MAAMC,mBAAmBjC,MAAM,EAC7BkC,QAAQ;CACNC,SAAS;CACTC,aAAa;CACbC,UAAU;CACVC,MAAM;CACNC,WAAW;CACXC,QAAQ;AACV,EACF,CAAC;AAED,SAAAC,YAAAC,UAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAIE,MAAA,EAAAC,MAAcjC,QAAQ;CAAE,IAAAkC;CAAA,IAAAH,EAAA,OAAAF,UAAA;EAGbK,KAAAjC,wBAAwB4B,QAAQ;EAACE,EAAA,KAAAF;EAAAE,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAA5CF,WAAWA;CAAH,IAAAM;CAAA,IAAAJ,EAAA,OAAAK,OAAAC,IAAA,2BAAA,GAAA;EAC4BF,KAAA,EAAAG,qBAAuB,KAAK;EAACP,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAjE,MAAAQ,QAAYnC,cAAcyB,UAAUM,EAA6B;CAEjE,IAAA,EAAApB,aAAAyB,QAAAC,OAAAC,cAAAC,UAAAC,UAAAC,YAAAC,gBAAAC,YAAAC,gBAAAC,cAAA,GAAAC,eAWIX;CACJ,MAAAY,cAAkB,CAACpC;CACnB,MAAA,EAAAqC,WAAiBvD,UAAU;CAG3B,MAAAwD,sBAA0BhD,uBAAuB;CAAE,IAAAiD;CAAA,IAAAvB,EAAA,OAAAsB,uBAAAtB,EAAA,OAAAQ,OAAA;EACnCe,KAAAD,oBAAmBE,aAAchB,KAAK;EAACR,EAAA,KAAAsB;EAAAtB,EAAA,KAAAQ;EAAAR,EAAA,KAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAvD,MAAAyB,YAAgBF;CAAwC,IAAAG;CAAA,IAAA1B,EAAA,OAAAyB,aAAAzB,EAAA,OAAAqB,QAAA;EACxBK,KAAA;GAAA,GAAKD;GAASJ;EAAS;EAACrB,EAAA,KAAAyB;EAAAzB,EAAA,KAAAqB;EAAArB,EAAA,KAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAxD,MAAA2B,QAAY3D,oBAAoB0D,EAAwB;CACxD,MAAAE,gBAAoBnE,OAAyB,IAAI;CAEjDoD,WAAWA,YAAAA;CAAH,IAAAgB;CAAA,IAAA7B,EAAA,OAAAyB,WAAA;EAUNI,KAAA;GAAA,GAAKJ;GAASK,WAAaC,KAAAA;GAASC,SAAWD,KAAAA;EAAU;EAAC/B,EAAA,KAAAyB;EAAAzB,EAAA,MAAA6B;CAAA,OAAAA,KAAA7B,EAAA;CAR5D,MAAA,EAAAiC,YAAAC,gBAAApB,YAAAE,YAAAmB,sBAAAC,sBAAA,GAAAC,eAOItE,eACF8D,IACAF,OACAd,QACF;CAAE,IAAA0B;CAAA,IAAAvC,EAAA,QAAAkC,kBAAAlC,EAAA,QAAAkB,cAAA;EACeqB,KAAA5E,aAAWuE,gBAAgBhB,YAAY;EAAClB,EAAA,MAAAkC;EAAAlC,EAAA,MAAAkB;EAAAlB,EAAA,MAAAuC;CAAA,OAAAA,KAAAvC,EAAA;CAAzD,MAAAiC,aAAiBM;CAQjB,MAAAC,aACEhC,MAAM,kBAAkB,OAAOA,MAAKiC,UAAW,WAAWjC,MAAKiC,QAAvC;CAAoD,IAAAC;CAAA,IAAA1C,EAAA,QAAAwC,cAAAxC,EAAA,QAAAQ,MAAAmC,sBAAA3C,EAAA,QAAAE,GAAA;EAE5EwC,KAAAlC,MAAKmC,uBACJH,aACGtC,EAAE,sBAAsB,sBAAsB,EAAAuC,OAASD,WAAW,CAC9B,IAApCtC,EAAE,wBAAwB,UAAU;EAAEF,EAAA,MAAAwC;EAAAxC,EAAA,MAAAQ,MAAAmC;EAAA3C,EAAA,MAAAE;EAAAF,EAAA,MAAA0C;CAAA,OAAAA,KAAA1C,EAAA;CAJ5C,MAAA4C,cACEF;CAG2C,IAAAG;CAAA,IAAA7C,EAAA,QAAAwC,cAAAxC,EAAA,QAAAQ,MAAAsC,sBAAA9C,EAAA,QAAAE,GAAA;EAE3C2C,KAAArC,MAAKsC,uBACJN,aACGtC,EAAE,wBAAwB,sBAAsB,EAAAuC,OAASD,WAAW,CAChC,IAApCtC,EAAE,wBAAwB,UAAU;EAAEF,EAAA,MAAAwC;EAAAxC,EAAA,MAAAQ,MAAAsC;EAAA9C,EAAA,MAAAE;EAAAF,EAAA,MAAA6C;CAAA,OAAAA,KAAA7C,EAAA;CAJ5C,MAAA+C,gBACEF;CAG2C,IAAAG;CAAA,IAAAhD,EAAA,QAAAgB,cAAAhB,EAAA,QAAAQ,OAAA;EAKhCwC,MAAAC,UAAA;GACTjC,WAAUc,YAAamB,KAAwC;GAC/DA,MAAKC,mBAAoBD,MAAKE,mBAAoB;GAElD,IAAIF,MAAKG,QAAS,SAASH,MAAKI,oBAAqB;GACrD7C,MAAKsB,YAAamB,KAAK;GAIvB,IAAIA,MAAKE,mBAAoB,GAAG/E,iBAAiB6E,KAAK;EAAE;EACzDjD,EAAA,MAAAgB;EAAAhB,EAAA,MAAAQ;EAAAR,EAAA,MAAAgD;CAAA,OAAAA,KAAAhD,EAAA;CAAA,IAAAsD;CAAA,IAAAtD,EAAA,QAAAQ,MAAA+C,cAAAvD,EAAA,QAAAQ,MAAAwB,WAAAhC,EAAA,QAAAgD,IAAA;EAZiCM,KAAA;GAAAC,YACtB/C,MAAK+C;GAAWzB,WACjBkB;GAUVhB,SACQxB,MAAKwB;EAChB;EAAChC,EAAA,MAAAQ,MAAA+C;EAAAvD,EAAA,MAAAQ,MAAAwB;EAAAhC,EAAA,MAAAgD;EAAAhD,EAAA,MAAAsD;CAAA,OAAAA,KAAAtD,EAAA;CAdD,MAAA,EAAAwD,kBAAwB3F,YAAYyF,EAcnC;CAAE,IAAAG;CAAA,IAAAzD,EAAA,QAAAc,cAAAd,EAAA,QAAAe,gBAAA;EAGsB0C,MAAA9F,aAAWmD,YAAYC,cAAc;EAACf,EAAA,MAAAc;EAAAd,EAAA,MAAAe;EAAAf,EAAA,MAAAyD;CAAA,OAAAA,MAAAzD,EAAA;CAA/D,MAAA0D,mBAAyBD;CAEzB,MAAAE,WAAiBvC,cACf,qBAAC,kBAAD,EAAA,UAAA,CACE,oBAAC,YAAD;EACc,YAAAZ,MAAK+C;EACP,WAAA;EAAI,GACVpB;EACQS,cAAAA;EACN,MAAAzB,WAAUyC;EACP,SAAAzC,WAAU0C,UAAW;CAAO,CAAA,GAEvC,oBAAC,YAAD;EACc,YAAArD,MAAK+C;EACP,WAAA;EAAM,GACZnB;EACQW,cAAAA;EACN,MAAA5B,WAAUyC;EACP,SAAAzC,WAAU0C,UAAW;CAAO,CAAA,CAfxB,EAAA,CAAA,IADF9B,KAAAA;CAsBd,MAAA+B,KAAA5E;CACKiC,MAAAA,MAAAA;CACA,MAAA4C,MAAAzC,oBAAmB0C,uBAAwB7C,YAAYkB,UAAU;CAAC,IAAA4B;CAAA,IAAAjE,EAAA,QAAAgB,cAAAhB,EAAA,QAAAwD,iBAAAxD,EAAA,QAAAQ,MAAA0D,MAAAlE,EAAA,QAAAiB,gBAAA;EAG1DgD,MAAAtG,aAKVC,WAAe;GAAA,GAAKoD;GAAU,GAAKwC;EAAc,GAAG,EAAAU,IAAM1D,MAAK0D,GAAI,CAAC,GACpE,EAAA,mBAAqB,cAAc,GACnCjD,cACF;EAACjB,EAAA,MAAAgB;EAAAhB,EAAA,MAAAwD;EAAAxD,EAAA,MAAAQ,MAAA0D;EAAAlE,EAAA,MAAAiB;EAAAjB,EAAA,MAAAiE;CAAA,OAAAA,MAAAjE,EAAA;CAAA,IAAAmE;CAAA,IAAAnE,EAAA,QAAAQ,MAAAvB,kBAAAe,EAAA,QAAAoB,eAAApB,EAAA,QAAA2D,YAAA3D,EAAA,QAAAS,QAAA;EAOC0D,MAAA/C,cACEZ,MAAKvB,mBAAoB,UAAzB,qBAAA,YAAA,EAAA,UAAA,CAEK0E,UACAlD,MAAM,EAAA,CAAA,IAHX,qBAAA,YAAA,EAAA,UAAA,CAOKA,QACAkD,QAAQ,EAAA,CAAA,IATflD;EAcCT,EAAA,MAAAQ,MAAAvB;EAAAe,EAAA,MAAAoB;EAAApB,EAAA,MAAA2D;EAAA3D,EAAA,MAAAS;EAAAT,EAAA,MAAAmE;CAAA,OAAAA,MAAAnE,EAAA;CAAA,IAAAoE;CAAA,IAAApE,EAAA,QAAAQ,MAAA+C,cAAAvD,EAAA,QAAAQ,MAAA6D,QAAArE,EAAA,QAAA2B,OAAA;EAIFyC,MAAA5D,MAAK6D,OACJ,oBAAA,SAAA;GACO,MAAA;GACC,MAAA7D,MAAK6D;GACJ,OAAAC,MAAM3C,MAAK4C,WAAqC,IAAhD,KAAgC5C,MAAK4C;GAClC,UAAA/D,MAAK+C;EAAW,CAAA,IAL7B;EAOOvD,EAAA,MAAAQ,MAAA+C;EAAAvD,EAAA,MAAAQ,MAAA6D;EAAArE,EAAA,MAAA2B;EAAA3B,EAAA,MAAAoE;CAAA,OAAAA,MAAApE,EAAA;CAAA,IAAAwE;CAAA,IAAAxE,EAAA,QAAA8D,MAAA9D,EAAA,QAAAiC,cAAAjC,EAAA,QAAAa,YAAAb,EAAA,QAAA0D,oBAAA1D,EAAA,QAAAmB,cAAAnB,EAAA,QAAAD,OAAAC,EAAA,QAAA+D,OAAA/D,EAAA,QAAAiE,OAAAjE,EAAA,QAAAmE,OAAAnE,EAAA,QAAAoE,KAAA;EA7CVI,MAAA,oBAAC,IAAD;GAAoB,GACdrD;GAAU,GACV4C;GACChE;GACO2D,YAAAA;GACA,YAAAO;GASFpD;GACIoB,cAAAA;GAGC,gBAAA;GAEb,QAAAkC;GAkBDC,UAAAA;EAtCiB,CAAA;EA8CEpE,EAAA,MAAA8D;EAAA9D,EAAA,MAAAiC;EAAAjC,EAAA,MAAAa;EAAAb,EAAA,MAAA0D;EAAA1D,EAAA,MAAAmB;EAAAnB,EAAA,MAAAD;EAAAC,EAAA,MAAA+D;EAAA/D,EAAA,MAAAiE;EAAAjE,EAAA,MAAAmE;EAAAnE,EAAA,MAAAoE;EAAApE,EAAA,MAAAwE;CAAA,OAAAA,MAAAxE,EAAA;CAAA,OA9CtBwE;AA8CsB;;;;AAO1B,MAAMC,eAAenH,WAAWuC,WAAW;AAE3C,aAAsB6E,gBAAgB;AAEtCD,aAAaE,cAAc"}
|