@cube-dev/ui-kit 0.202.0 → 0.203.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/dist/CHANGELOG.md +18 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuItem.js +1 -1
  32. package/dist/components/actions/Menu/MenuSection.js +1 -1
  33. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  36. package/dist/components/actions/Menu/context.js +1 -1
  37. package/dist/components/actions/Menu/styled.js +1 -1
  38. package/dist/components/actions/actions-run.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +1 -1
  42. package/dist/components/actions/use-context-menu.js +1 -1
  43. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  44. package/dist/components/content/Alert/Alert.js +1 -1
  45. package/dist/components/content/Alert/use-alert.js +1 -1
  46. package/dist/components/content/Avatar/Avatar.js +1 -1
  47. package/dist/components/content/Badge/Badge.js +1 -1
  48. package/dist/components/content/Card/Card.js +1 -1
  49. package/dist/components/content/Content.js +1 -1
  50. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  51. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  53. package/dist/components/content/Divider/Divider.js +1 -1
  54. package/dist/components/content/Footer.js +1 -1
  55. package/dist/components/content/Header.js +1 -1
  56. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  57. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  58. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  59. package/dist/components/content/Item/Item.js +1 -1
  60. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  61. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  62. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  63. package/dist/components/content/Layout/GridLayout.js +1 -1
  64. package/dist/components/content/Layout/Layout.js +1 -1
  65. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  66. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  67. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  68. package/dist/components/content/Layout/LayoutContent.js +1 -1
  69. package/dist/components/content/Layout/LayoutContext.js +1 -1
  70. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  71. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  72. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  73. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutPane.js +1 -1
  75. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  76. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  77. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  78. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  79. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  80. package/dist/components/content/Layout/index.js +1 -1
  81. package/dist/components/content/Layout/utils.js +1 -1
  82. package/dist/components/content/Paragraph.js +1 -1
  83. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  84. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  85. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  86. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  87. package/dist/components/content/Result/Result.js +1 -1
  88. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  89. package/dist/components/content/Tag/Tag.js +1 -1
  90. package/dist/components/content/Text.js +1 -1
  91. package/dist/components/content/TextItem/TextItem.js +1 -1
  92. package/dist/components/content/Title.js +1 -1
  93. package/dist/components/content/Tree/Tree.js +1 -1
  94. package/dist/components/content/Tree/TreeNode.js +1 -1
  95. package/dist/components/content/Tree/checked-keys.js +1 -1
  96. package/dist/components/content/Tree/rowId.js +1 -1
  97. package/dist/components/content/Tree/styled.js +1 -1
  98. package/dist/components/content/Tree/tree-index.js +1 -1
  99. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  100. package/dist/components/content/Tree/use-load-data.js +1 -1
  101. package/dist/components/content/highlightText.js +1 -1
  102. package/dist/components/content/use-auto-tooltip.js +1 -1
  103. package/dist/components/data/DataTable/DataTable.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTable.js +233 -178
  105. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  106. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  110. package/dist/components/data/ItemTable/index.d.ts +2 -2
  111. package/dist/components/data/ItemTable/item-table-sections.js +68 -0
  112. package/dist/components/data/ItemTable/item-table-sections.js.map +1 -0
  113. package/dist/components/data/ItemTable/types.d.ts +12 -0
  114. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  115. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  116. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  117. package/dist/components/data/ItemTable/use-item-table-selection.js +31 -27
  118. package/dist/components/data/ItemTable/use-item-table-selection.js.map +1 -1
  119. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  120. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  121. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  122. package/dist/components/data/TableBase/RowCollection.js +1 -1
  123. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  124. package/dist/components/data/TableBase/TableRow.js +1 -1
  125. package/dist/components/data/TableBase/TableRowLink.js +1 -1
  126. package/dist/components/data/TableBase/TableView.d.ts +1 -0
  127. package/dist/components/data/TableBase/TableView.js +86 -21
  128. package/dist/components/data/TableBase/TableView.js.map +1 -1
  129. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  130. package/dist/components/data/TableBase/column-header.js +1 -1
  131. package/dist/components/data/TableBase/column-menu.js +1 -1
  132. package/dist/components/data/TableBase/column-styles.js +1 -1
  133. package/dist/components/data/TableBase/column-tint.js +1 -1
  134. package/dist/components/data/TableBase/row-menu.js +1 -1
  135. package/dist/components/data/TableBase/styled.js +25 -1
  136. package/dist/components/data/TableBase/styled.js.map +1 -1
  137. package/dist/components/data/TableBase/table-body-sections.d.ts +3 -0
  138. package/dist/components/data/TableBase/table-body-sections.js +30 -0
  139. package/dist/components/data/TableBase/table-body-sections.js.map +1 -0
  140. package/dist/components/data/TableBase/table-tree.js +1 -1
  141. package/dist/components/data/TableBase/types.js +1 -1
  142. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  143. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  144. package/dist/components/data/TableBase/use-column-order.js +1 -1
  145. package/dist/components/data/TableBase/use-column-window.js +1 -1
  146. package/dist/components/data/TableBase/use-container-width.js +1 -1
  147. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  148. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  149. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  150. package/dist/components/data/TableBase/use-table-search.js +1 -1
  151. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  152. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  153. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  154. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  155. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  156. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  157. package/dist/components/data/index.d.ts +2 -2
  158. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  159. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  160. package/dist/components/fields/Checkbox/context.js +1 -1
  161. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  162. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  163. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  164. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  165. package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -1
  166. package/dist/components/fields/ComboBox/ComboBox.js +382 -344
  167. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  168. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  169. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  170. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  171. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  172. package/dist/components/fields/DatePicker/DateInput.js +3 -4
  173. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  174. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  175. package/dist/components/fields/DatePicker/DatePicker.js +3 -4
  176. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  177. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  178. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  179. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  180. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  181. package/dist/components/fields/DatePicker/DateRangePicker.js +3 -4
  182. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  183. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +3 -4
  184. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  185. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  186. package/dist/components/fields/DatePicker/PeriodPicker.js +3 -3
  187. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  188. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  189. package/dist/components/fields/DatePicker/TimeInput.js +4 -5
  190. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  191. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  192. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  193. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  194. package/dist/components/fields/DatePicker/period.js +1 -1
  195. package/dist/components/fields/DatePicker/props.js +1 -1
  196. package/dist/components/fields/DatePicker/utils.js +1 -1
  197. package/dist/components/fields/FileInput/FileInput.js +77 -79
  198. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  199. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  200. package/dist/components/fields/FilterListBox/styled.js +1 -1
  201. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  202. package/dist/components/fields/FilterPicker/FilterTree.js +1 -1
  203. package/dist/components/fields/Input/Input.js +1 -1
  204. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  205. package/dist/components/fields/ListBox/ListBox.js +1 -1
  206. package/dist/components/fields/ListBox/optionId.js +1 -1
  207. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  208. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  209. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  210. package/dist/components/fields/NumberInput/NumberInput.js +36 -19
  211. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  212. package/dist/components/fields/NumberInput/StepButton.js +52 -37
  213. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  214. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  215. package/dist/components/fields/Picker/Picker.js +1 -1
  216. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  217. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  218. package/dist/components/fields/RadioGroup/context.js +1 -1
  219. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  220. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  221. package/dist/components/fields/Select/Select.js +1 -1
  222. package/dist/components/fields/Slider/Gradation.js +1 -1
  223. package/dist/components/fields/Slider/HueSlider.js +1 -1
  224. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  225. package/dist/components/fields/Slider/Slider.js +1 -1
  226. package/dist/components/fields/Slider/SliderBase.js +1 -1
  227. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  228. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  229. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  230. package/dist/components/fields/Slider/elements.js +1 -1
  231. package/dist/components/fields/Slider/index.js +1 -1
  232. package/dist/components/fields/Slider/types.d.ts +0 -1
  233. package/dist/components/fields/Switch/Switch.js +1 -1
  234. package/dist/components/fields/TagInput/TagInput.js +1 -1
  235. package/dist/components/fields/TagInput/TagList.js +1 -1
  236. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  237. package/dist/components/fields/TagInput/useTagError.js +1 -1
  238. package/dist/components/fields/TextArea/TextArea.js +1 -1
  239. package/dist/components/fields/TextInput/TextInput.js +1 -1
  240. package/dist/components/fields/TextInput/TextInputBase.d.ts +10 -0
  241. package/dist/components/fields/TextInput/TextInputBase.js +67 -55
  242. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  243. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  244. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  245. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  246. package/dist/components/fields/TriggerActions.js +1 -1
  247. package/dist/components/fields/color/ColorPanel.js +1 -1
  248. package/dist/components/fields/color/channels.js +1 -1
  249. package/dist/components/fields/color/color.js +1 -1
  250. package/dist/components/fields/color/context.js +1 -1
  251. package/dist/components/fields/option-origin-press.js +1 -1
  252. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  253. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  254. package/dist/components/form/Form/Field.js +1 -1
  255. package/dist/components/form/Form/Form.js +1 -1
  256. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  257. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  258. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  259. package/dist/components/form/Form/SubmitError.js +1 -1
  260. package/dist/components/form/Form/backend.js +1 -1
  261. package/dist/components/form/Form/index.js +1 -1
  262. package/dist/components/form/Form/modern/actions.js +1 -1
  263. package/dist/components/form/Form/modern/context.js +1 -1
  264. package/dist/components/form/Form/modern/controller.js +1 -1
  265. package/dist/components/form/Form/modern/field-binding.js +1 -1
  266. package/dist/components/form/Form/modern/field.js +1 -1
  267. package/dist/components/form/Form/modern/react.js +1 -1
  268. package/dist/components/form/Form/modern/store.js +1 -1
  269. package/dist/components/form/Form/modern/validation.js +1 -1
  270. package/dist/components/form/Form/modern/values.js +1 -1
  271. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  272. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  273. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  274. package/dist/components/form/Form/use-field/use-field.js +1 -1
  275. package/dist/components/form/Form/use-form.js +1 -1
  276. package/dist/components/form/Form/validation.js +1 -1
  277. package/dist/components/form/Label.js +1 -1
  278. package/dist/components/form/field-chrome.js +1 -1
  279. package/dist/components/form/field-layout.d.ts +12 -2
  280. package/dist/components/form/field-layout.js +29 -11
  281. package/dist/components/form/field-layout.js.map +1 -1
  282. package/dist/components/form/legacy-tooltip.js +1 -1
  283. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  284. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  285. package/dist/components/form/validation/use-validation-props.js +1 -1
  286. package/dist/components/form/wrapper.js +1 -1
  287. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  288. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  289. package/dist/components/layout/Flex.js +1 -1
  290. package/dist/components/layout/Flow.js +1 -1
  291. package/dist/components/layout/Grid.js +1 -1
  292. package/dist/components/layout/Panel.js +1 -1
  293. package/dist/components/layout/Prefix.js +1 -1
  294. package/dist/components/layout/ResizablePanel.js +1 -1
  295. package/dist/components/layout/Space.js +1 -1
  296. package/dist/components/layout/Suffix.js +1 -1
  297. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  298. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  299. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  300. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  301. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  302. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  303. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  304. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  305. package/dist/components/navigation/Tabs/Tabs.js +7 -3
  306. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  307. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  308. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  309. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  310. package/dist/components/navigation/Tabs/styled.js +18 -18
  311. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  312. package/dist/components/navigation/Tabs/types.js +1 -1
  313. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  314. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  315. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  316. package/dist/components/other/Calendar/Calendar.js +1 -1
  317. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  318. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  319. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  320. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  321. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  322. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  323. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  324. package/dist/components/other/Calendar/styled.js +1 -1
  325. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  326. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  327. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  328. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  329. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  330. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  331. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  332. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  333. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  334. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  335. package/dist/components/overlays/Dialog/context.js +1 -1
  336. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  337. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  338. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  339. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  340. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  341. package/dist/components/overlays/Modal/Modal.js +1 -1
  342. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  343. package/dist/components/overlays/Modal/Overlay.js +1 -1
  344. package/dist/components/overlays/Modal/Popover.js +1 -1
  345. package/dist/components/overlays/Modal/Tray.js +1 -1
  346. package/dist/components/overlays/Modal/Underlay.js +1 -1
  347. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  348. package/dist/components/overlays/Notifications/Notification.js +1 -1
  349. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  350. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  351. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  352. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  353. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  354. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  355. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  356. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  357. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  358. package/dist/components/overlays/Notifications/index.js +1 -1
  359. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  360. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  361. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  362. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  363. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  364. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  365. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  366. package/dist/components/overlays/Toast/index.js +1 -1
  367. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  368. package/dist/components/overlays/Toast/useToast.js +1 -1
  369. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  370. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  371. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  372. package/dist/components/overlays/Tooltip/context.js +1 -1
  373. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  374. package/dist/components/portal/Portal.js +1 -1
  375. package/dist/components/portal/PortalProvider.js +1 -1
  376. package/dist/components/portal/usePortal.js +1 -1
  377. package/dist/components/shared/DraggableCollection.js +1 -1
  378. package/dist/components/shared/InvalidIcon.js +1 -1
  379. package/dist/components/shared/ValidIcon.js +1 -1
  380. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  381. package/dist/components/status/Spin/Cube.js +1 -1
  382. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  383. package/dist/components/status/Spin/Spin.js +1 -1
  384. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  385. package/dist/data/item-themes.js +1 -1
  386. package/dist/data/themes.js +1 -1
  387. package/dist/eslint-plugin/defaults.generated.js +25 -1
  388. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  389. package/dist/eslint-plugin/index.js +1 -1
  390. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  391. package/dist/i18n/I18nProvider.js +1 -1
  392. package/dist/i18n/createFormatter.js +1 -1
  393. package/dist/i18n/index.js +1 -1
  394. package/dist/i18n/instance.js +1 -1
  395. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  396. package/dist/i18n/locales/en-US/uikit.js +1 -1
  397. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  398. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  399. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  400. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  401. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  402. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  403. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  404. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  405. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  406. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  407. package/dist/i18n/locales.js +1 -1
  408. package/dist/i18n/namespace.js +1 -1
  409. package/dist/i18n/useFormatter.js +1 -1
  410. package/dist/i18n/useI18n.js +1 -1
  411. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  412. package/dist/icons/AdjustmentsIcon.js +1 -1
  413. package/dist/icons/AiIcon.js +1 -1
  414. package/dist/icons/AreaChartIcon.js +1 -1
  415. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  416. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  417. package/dist/icons/BackwardIcon.js +1 -1
  418. package/dist/icons/BarChartIcon.js +1 -1
  419. package/dist/icons/BellFilledIcon.js +1 -1
  420. package/dist/icons/BellIcon.js +1 -1
  421. package/dist/icons/BooleanIcon.js +1 -1
  422. package/dist/icons/CalendarEditIcon.js +1 -1
  423. package/dist/icons/CalendarIcon.js +1 -1
  424. package/dist/icons/CaretDownIcon.js +1 -1
  425. package/dist/icons/CaretUpIcon.js +1 -1
  426. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  427. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  428. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  429. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  430. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  431. package/dist/icons/ChartBarLineIcon.js +1 -1
  432. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  433. package/dist/icons/ChartBarStackedIcon.js +1 -1
  434. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  435. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  436. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  437. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  438. package/dist/icons/ChartBubbleIcon.js +1 -1
  439. package/dist/icons/ChartDonut2Icon.js +1 -1
  440. package/dist/icons/ChartFunnelIcon.js +1 -1
  441. package/dist/icons/ChartHeatmapIcon.js +1 -1
  442. package/dist/icons/ChartKPIIcon.js +1 -1
  443. package/dist/icons/ChartPie2Icon.js +1 -1
  444. package/dist/icons/ChartScatterIcon.js +1 -1
  445. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  446. package/dist/icons/CheckCircleIcon.js +1 -1
  447. package/dist/icons/CheckIcon.js +1 -1
  448. package/dist/icons/CircleFilledIcon.js +1 -1
  449. package/dist/icons/ClearIcon.js +1 -1
  450. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  451. package/dist/icons/CloseCircleIcon.js +1 -1
  452. package/dist/icons/CloseIcon.js +1 -1
  453. package/dist/icons/CodeIcon.js +1 -1
  454. package/dist/icons/ColumnTotalIcon.js +1 -1
  455. package/dist/icons/CopyIcon.js +1 -1
  456. package/dist/icons/CountIcon.js +1 -1
  457. package/dist/icons/CubeIcon.js +1 -1
  458. package/dist/icons/CubePauseIcon.js +1 -1
  459. package/dist/icons/CubePlayIcon.js +1 -1
  460. package/dist/icons/CurrencyDollarIcon.js +1 -1
  461. package/dist/icons/DangerIcon.js +1 -1
  462. package/dist/icons/DashboardIcon.js +1 -1
  463. package/dist/icons/DatabaseIcon.js +1 -1
  464. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  465. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  466. package/dist/icons/DirectionIcon.js +1 -1
  467. package/dist/icons/DonutIcon.js +1 -1
  468. package/dist/icons/DownIcon.js +1 -1
  469. package/dist/icons/EditIcon.js +1 -1
  470. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  471. package/dist/icons/ExclamationCircleIcon.js +1 -1
  472. package/dist/icons/ExclamationIcon.js +1 -1
  473. package/dist/icons/EyeIcon.js +1 -1
  474. package/dist/icons/EyeInvisibleIcon.js +1 -1
  475. package/dist/icons/FilterIcon.js +1 -1
  476. package/dist/icons/FolderFilledIcon.js +1 -1
  477. package/dist/icons/FolderIcon.js +1 -1
  478. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  479. package/dist/icons/FolderOpenIcon.js +1 -1
  480. package/dist/icons/ForwardIcon.js +1 -1
  481. package/dist/icons/GripVerticalIcon.js +1 -1
  482. package/dist/icons/HierarchyIcon.js +1 -1
  483. package/dist/icons/HierarchyOpenIcon.js +1 -1
  484. package/dist/icons/Icon.js +1 -1
  485. package/dist/icons/InfoCircleIcon.js +1 -1
  486. package/dist/icons/InfoIcon.js +1 -1
  487. package/dist/icons/KeyIcon.js +1 -1
  488. package/dist/icons/LeftIcon.js +1 -1
  489. package/dist/icons/LineChartIcon.js +1 -1
  490. package/dist/icons/LoadingIcon.js +1 -1
  491. package/dist/icons/LockFilledIcon.js +1 -1
  492. package/dist/icons/LockIcon.js +1 -1
  493. package/dist/icons/MoreIcon.js +1 -1
  494. package/dist/icons/NotAllowedIcon.js +1 -1
  495. package/dist/icons/Number123Icon.js +1 -1
  496. package/dist/icons/NumberIcon.js +1 -1
  497. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  498. package/dist/icons/PauseCircleIcon.js +1 -1
  499. package/dist/icons/PauseIcon.js +1 -1
  500. package/dist/icons/PercentageIcon.js +1 -1
  501. package/dist/icons/PieChartIcon.js +1 -1
  502. package/dist/icons/PipetteIcon.js +1 -1
  503. package/dist/icons/PlayCircleIcon.js +1 -1
  504. package/dist/icons/PlayIcon.js +1 -1
  505. package/dist/icons/PlusIcon.js +1 -1
  506. package/dist/icons/ProgressBarIcon.js +1 -1
  507. package/dist/icons/ReloadIcon.js +1 -1
  508. package/dist/icons/ReportIcon.js +1 -1
  509. package/dist/icons/ReturnIcon.js +1 -1
  510. package/dist/icons/RightIcon.js +1 -1
  511. package/dist/icons/RowTotalsIcon.js +1 -1
  512. package/dist/icons/SchemeIcon.js +1 -1
  513. package/dist/icons/SearchIcon.js +1 -1
  514. package/dist/icons/SemanticQueryIcon.js +1 -1
  515. package/dist/icons/SettingsIcon.js +1 -1
  516. package/dist/icons/ShieldFilledIcon.js +1 -1
  517. package/dist/icons/ShieldIcon.js +1 -1
  518. package/dist/icons/SlashIcon.js +1 -1
  519. package/dist/icons/SparklesIcon.js +1 -1
  520. package/dist/icons/SqlIcon.js +1 -1
  521. package/dist/icons/StatsIcon.js +1 -1
  522. package/dist/icons/StopIcon.js +1 -1
  523. package/dist/icons/StringIcon.js +1 -1
  524. package/dist/icons/SubtotalsIcon.js +1 -1
  525. package/dist/icons/SwitchIcon.js +1 -1
  526. package/dist/icons/TableIcon.js +1 -1
  527. package/dist/icons/ThumbsDownIcon.js +1 -1
  528. package/dist/icons/ThumbsUpIcon.js +1 -1
  529. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  530. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  531. package/dist/icons/ThunderboltIcon.js +1 -1
  532. package/dist/icons/TimeIcon.js +1 -1
  533. package/dist/icons/TrashIcon.js +1 -1
  534. package/dist/icons/UnlockIcon.js +1 -1
  535. package/dist/icons/UpIcon.js +1 -1
  536. package/dist/icons/UserGroupIcon.js +1 -1
  537. package/dist/icons/UserIcon.js +1 -1
  538. package/dist/icons/UserLockIcon.js +1 -1
  539. package/dist/icons/ViewIcon.js +1 -1
  540. package/dist/icons/WarningFilledIcon.js +1 -1
  541. package/dist/icons/WarningIcon.js +1 -1
  542. package/dist/icons/wrap-icon.js +1 -1
  543. package/dist/index.d.ts +2 -2
  544. package/dist/index.js +1 -1
  545. package/dist/probe/canonicalize.js +1 -1
  546. package/dist/probe/css.js +1 -1
  547. package/dist/probe/index.js +1 -1
  548. package/dist/provider.js +1 -1
  549. package/dist/providers/TrackingProvider.js +1 -1
  550. package/dist/providers/navigation-url.js +1 -1
  551. package/dist/providers/navigationAdapter.default.js +1 -1
  552. package/dist/providers/use-navigation.js +1 -1
  553. package/dist/tokens/all-tokens.js +1 -1
  554. package/dist/tokens/base.js +1 -1
  555. package/dist/tokens/color-seed.js +1 -1
  556. package/dist/tokens/color-theme.js +1 -1
  557. package/dist/tokens/colors.js +1 -1
  558. package/dist/tokens/layout.js +1 -1
  559. package/dist/tokens/lazy-styles.js +1 -1
  560. package/dist/tokens/legacy-color.js +1 -1
  561. package/dist/tokens/palette-config.js +1 -1
  562. package/dist/tokens/palette.js +1 -1
  563. package/dist/tokens/resolve.js +1 -1
  564. package/dist/tokens/shadows.js +1 -1
  565. package/dist/tokens/sizes.js +1 -1
  566. package/dist/tokens/spacing.js +1 -1
  567. package/dist/tokens/typography.js +1 -1
  568. package/dist/utils/ResizeSensor.js +1 -1
  569. package/dist/utils/colors.js +1 -1
  570. package/dist/utils/dotize.js +1 -1
  571. package/dist/utils/is-dev-env.js +1 -1
  572. package/dist/utils/modules.js +1 -1
  573. package/dist/utils/promise.js +1 -1
  574. package/dist/utils/raf.js +1 -1
  575. package/dist/utils/random.js +1 -1
  576. package/dist/utils/range.js +1 -1
  577. package/dist/utils/react/RenderCache.js +1 -1
  578. package/dist/utils/react/Slots.js +1 -1
  579. package/dist/utils/react/chain.js +1 -1
  580. package/dist/utils/react/disabledProps.js +1 -1
  581. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  582. package/dist/utils/react/index.js +1 -1
  583. package/dist/utils/react/interactions.js +1 -1
  584. package/dist/utils/react/isTextOnly.js +1 -1
  585. package/dist/utils/react/mapProps.js +1 -1
  586. package/dist/utils/react/mergeProps.js +1 -1
  587. package/dist/utils/react/nullableValue.js +1 -1
  588. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  589. package/dist/utils/react/programmaticFocus.js +1 -1
  590. package/dist/utils/react/resolveIcon.js +1 -1
  591. package/dist/utils/react/sharedStore.js +1 -1
  592. package/dist/utils/react/useBufferedValue.js +1 -1
  593. package/dist/utils/react/useCombinedRefs.js +1 -1
  594. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  595. package/dist/utils/react/useEventBus.js +1 -1
  596. package/dist/utils/react/useId.js +1 -1
  597. package/dist/utils/react/useIsDarwin.js +1 -1
  598. package/dist/utils/react/useKeySymbols.js +1 -1
  599. package/dist/utils/react/useLayoutEffect.js +1 -1
  600. package/dist/utils/react/useLocalStorage.js +1 -1
  601. package/dist/utils/react/useMergeStyles.js +1 -1
  602. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  603. package/dist/utils/react/usePopoverSync.js +1 -1
  604. package/dist/utils/react/useQaProps.js +1 -1
  605. package/dist/utils/react/useScheme.js +1 -1
  606. package/dist/utils/react/useViewportSize.js +1 -1
  607. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  608. package/dist/utils/selection.js +1 -1
  609. package/dist/utils/styles.js +1 -1
  610. package/dist/utils/tree.js +1 -1
  611. package/dist/utils/warnings.js +1 -1
  612. package/dist/version.js +2 -2
  613. package/docs/FieldProperties.md +16 -4
  614. package/docs/Usage.md +1 -1
  615. package/docs/components/data/ItemTable.md +25 -0
  616. package/docs/components/fields/ComboBox.md +8 -4
  617. package/docs/components/fields/CommandTextArea.md +1 -0
  618. package/docs/components/fields/HueSlider.md +0 -1
  619. package/docs/components/fields/NumberInput.md +4 -0
  620. package/docs/components/fields/PasswordInput.md +2 -0
  621. package/docs/components/fields/SearchInput.md +13 -0
  622. package/docs/components/fields/Slider.md +0 -1
  623. package/docs/components/fields/TextArea.md +1 -0
  624. package/docs/components/fields/TextInput.md +14 -1
  625. package/docs/components/navigation/Tabs.md +47 -0
  626. package/package.json +1 -1
@@ -1,5 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
- import { mergeStyleLayers } from "../../../utils/styles.js";
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.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 = mergeStyleLayers(styles, inputStyles);
225
- const t12 = !!fileName;
226
- let t13;
223
+ const t11 = !!fileName;
224
+ let t12;
227
225
  if ($[26] !== isInvalid || $[27] !== isValid) {
228
- t13 = getValidationMods({
226
+ t12 = getValidationMods({
229
227
  isInvalid,
230
228
  isValid
231
229
  });
232
230
  $[26] = isInvalid;
233
231
  $[27] = isValid;
234
- $[28] = t13;
235
- } else t13 = $[28];
236
- let t14;
237
- if ($[29] !== dragHover || $[30] !== t12 || $[31] !== t13) {
238
- t14 = {
239
- selected: t12,
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
- ...t13
239
+ ...t12
242
240
  };
243
241
  $[29] = dragHover;
244
- $[30] = t12;
245
- $[31] = t13;
246
- $[32] = t14;
247
- } else t14 = $[32];
248
- let t15;
242
+ $[30] = t11;
243
+ $[31] = t12;
244
+ $[32] = t13;
245
+ } else t13 = $[32];
246
+ let t14;
249
247
  if ($[33] !== inputRef) {
250
- t15 = (e) => {
248
+ t14 = (e) => {
251
249
  if (e.key === "Enter" || e.key === "Space") inputRef?.current?.click();
252
250
  };
253
251
  $[33] = inputRef;
254
- $[34] = t15;
255
- } else t15 = $[34];
256
- const t16 = qa || "FileInput";
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
- t17 = () => {
259
+ t16 = () => {
262
260
  setDragHover(true);
263
261
  };
264
- t18 = () => {
262
+ t17 = () => {
265
263
  setDragHover(false);
266
264
  };
267
- t19 = () => {
265
+ t18 = () => {
268
266
  setDragHover(false);
269
267
  };
270
- $[35] = t17;
271
- $[36] = t18;
272
- $[37] = t19;
268
+ $[35] = t16;
269
+ $[36] = t17;
270
+ $[37] = t18;
273
271
  } else {
274
- t17 = $[35];
275
- t18 = $[36];
276
- t19 = $[37];
272
+ t16 = $[35];
273
+ t17 = $[36];
274
+ t18 = $[37];
277
275
  }
278
- let t20;
279
- if ($[38] !== accept || $[39] !== id || $[40] !== inputProps || $[41] !== inputRef || $[42] !== isDisabled || $[43] !== name || $[44] !== onLocalChange || $[45] !== t16) {
280
- t20 = /* @__PURE__ */ jsx("input", {
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": t16,
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: t17,
294
- onDragLeave: t18,
295
- onDrop: t19,
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] = t16;
306
- $[46] = t20;
307
- } else t20 = $[46];
308
- let t21;
303
+ $[45] = t15;
304
+ $[46] = t19;
305
+ } else t19 = $[46];
306
+ let t20;
309
307
  if ($[47] !== t) {
310
- t21 = t("fileInput.chooseFile", "Choose file");
308
+ t20 = t("fileInput.chooseFile", "Choose file");
311
309
  $[47] = t;
312
- $[48] = t21;
313
- } else t21 = $[48];
314
- let t22;
315
- if ($[49] !== chooseFileId || $[50] !== t21) {
316
- t22 = /* @__PURE__ */ jsx("div", {
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: t21
317
+ children: t20
320
318
  });
321
319
  $[49] = chooseFileId;
322
- $[50] = t21;
323
- $[51] = t22;
324
- } else t22 = $[51];
325
- const t23 = fileName ? "Value" : "Placeholder";
326
- let t24;
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
- t24 = fileName || placeholder || t("fileInput.noFileSelected", "No file selected");
326
+ t23 = fileName || placeholder || t("fileInput.noFileSelected", "No file selected");
329
327
  $[52] = fileName;
330
328
  $[53] = placeholder;
331
329
  $[54] = t;
332
- $[55] = t24;
333
- } else t24 = $[55];
334
- let t25;
335
- if ($[56] !== fileNameId || $[57] !== t23 || $[58] !== t24) {
336
- t25 = /* @__PURE__ */ jsx("div", {
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": t23,
339
- children: t24
336
+ "data-element": t22,
337
+ children: t23
340
338
  });
341
339
  $[56] = fileNameId;
342
- $[57] = t23;
343
- $[58] = t24;
344
- $[59] = t25;
345
- } else t25 = $[59];
346
- let t26;
340
+ $[57] = t22;
341
+ $[58] = t23;
342
+ $[59] = t24;
343
+ } else t24 = $[59];
344
+ let t25;
347
345
  if ($[60] !== isInvalid || $[61] !== isValid) {
348
- t26 = /* @__PURE__ */ jsx(ValidationIndicator, {
346
+ t25 = /* @__PURE__ */ jsx(ValidationIndicator, {
349
347
  isInvalid,
350
348
  isValid
351
349
  });
352
350
  $[60] = isInvalid;
353
351
  $[61] = isValid;
354
- $[62] = t26;
355
- } else t26 = $[62];
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: t11,
360
+ styles,
363
361
  isDisabled,
364
- mods: t14,
365
- onKeyDown: t15,
362
+ mods: t13,
363
+ onKeyDown: t14,
366
364
  children: [
367
- t20,
368
- t22,
369
- t25,
370
- t26
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":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { 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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { 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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
2
2
  //#region src/components/fields/ListBox/optionId.ts
3
3
  /**
4
4
  * The DOM id of the option with `key` in the listbox whose id is `listBoxId`,
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { 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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { 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(52);
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] !== T0 || $[43] !== groupProps || $[44] !== inputRef || $[45] !== mergedLabelProps || $[46] !== otherProps || $[47] !== ref || $[48] !== t12 || $[49] !== t13 || $[50] !== t14) {
178
- t15 = /* @__PURE__ */ jsx(T0, {
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
- $[42] = T0;
190
- $[43] = groupProps;
191
- $[44] = inputRef;
192
- $[45] = mergedLabelProps;
193
- $[46] = otherProps;
194
- $[47] = ref;
195
- $[48] = t12;
196
- $[49] = t13;
197
- $[50] = t14;
198
- $[51] = t15;
199
- } else t15 = $[51];
200
- return t15;
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":"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"}