@cube-dev/ui-kit 0.195.0 → 0.197.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 (705) hide show
  1. package/dist/CHANGELOG.md +180 -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.d.ts +6 -0
  16. package/dist/components/Root.js +125 -102
  17. package/dist/components/Root.js.map +1 -1
  18. package/dist/components/actions/Action/Action.js +1 -1
  19. package/dist/components/actions/Banner/Banner.js +1 -1
  20. package/dist/components/actions/Button/Button.js +11 -5
  21. package/dist/components/actions/Button/Button.js.map +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.d.ts +9 -4
  24. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  25. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  26. package/dist/components/actions/ButtonSplit/context.js +1 -1
  27. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/dist/components/actions/CommandMenu/styled.js +1 -1
  29. package/dist/components/actions/ItemAction/ItemAction.js +27 -25
  30. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  31. package/dist/components/actions/ItemActionContext.js +1 -1
  32. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  33. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +1 -1
  36. package/dist/components/actions/Menu/MenuCollectionItem.js +7 -4
  37. package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -1
  38. package/dist/components/actions/Menu/MenuItem.js +69 -60
  39. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  40. package/dist/components/actions/Menu/MenuSection.js +1 -1
  41. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  42. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  43. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  44. package/dist/components/actions/Menu/context.js +1 -1
  45. package/dist/components/actions/Menu/styled.js +1 -4
  46. package/dist/components/actions/Menu/styled.js.map +1 -1
  47. package/dist/components/actions/actions-run.js +1 -1
  48. package/dist/components/actions/index.js +1 -1
  49. package/dist/components/actions/use-action.js +15 -14
  50. package/dist/components/actions/use-action.js.map +1 -1
  51. package/dist/components/actions/use-anchored-menu.js +1 -1
  52. package/dist/components/actions/use-context-menu.js +1 -1
  53. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  54. package/dist/components/content/Alert/Alert.js +1 -1
  55. package/dist/components/content/Alert/use-alert.js +1 -1
  56. package/dist/components/content/Avatar/Avatar.js +1 -1
  57. package/dist/components/content/Badge/Badge.js +1 -1
  58. package/dist/components/content/Card/Card.js +1 -1
  59. package/dist/components/content/Content.js +1 -1
  60. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  61. package/dist/components/content/CopySnippet/CopySnippet.d.ts +16 -16
  62. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  63. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  64. package/dist/components/content/Divider.js +1 -1
  65. package/dist/components/content/Footer.js +1 -1
  66. package/dist/components/content/Header.js +1 -1
  67. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  68. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  69. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  70. package/dist/components/content/Item/Item.js +16 -4
  71. package/dist/components/content/Item/Item.js.map +1 -1
  72. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  73. package/dist/components/content/ItemBadge/ItemBadge.js +7 -3
  74. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  75. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  76. package/dist/components/content/Layout/GridLayout.js +1 -1
  77. package/dist/components/content/Layout/Layout.js +29 -15
  78. package/dist/components/content/Layout/Layout.js.map +1 -1
  79. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  80. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  81. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  82. package/dist/components/content/Layout/LayoutContent.js +1 -1
  83. package/dist/components/content/Layout/LayoutContext.js +20 -10
  84. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  85. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  86. package/dist/components/content/Layout/LayoutFooter.js +12 -9
  87. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  88. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  89. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  90. package/dist/components/content/Layout/LayoutPane.js +1 -1
  91. package/dist/components/content/Layout/LayoutPanel.d.ts +7 -3
  92. package/dist/components/content/Layout/LayoutPanel.js +75 -3
  93. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  94. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  95. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  96. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  97. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  98. package/dist/components/content/Layout/index.js +1 -1
  99. package/dist/components/content/Layout/utils.js +1 -1
  100. package/dist/components/content/Paragraph.js +1 -1
  101. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  102. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  103. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  104. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  105. package/dist/components/content/Result/Result.js +1 -1
  106. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  107. package/dist/components/content/Tag/Tag.js +1 -1
  108. package/dist/components/content/Text.js +1 -1
  109. package/dist/components/content/TextItem/TextItem.js +1 -1
  110. package/dist/components/content/Title.js +1 -1
  111. package/dist/components/content/Tree/Tree.js +1 -1
  112. package/dist/components/content/Tree/TreeNode.js +2 -1
  113. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  114. package/dist/components/content/Tree/styled.js +1 -1
  115. package/dist/components/content/Tree/tree-index.js +1 -1
  116. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  117. package/dist/components/content/Tree/use-load-data.js +1 -1
  118. package/dist/components/content/highlightText.js +1 -1
  119. package/dist/components/content/use-auto-tooltip.js +3 -3
  120. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  121. package/dist/components/data/DataTable/DataTable.js +1 -1
  122. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  123. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  124. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  125. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  126. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -1
  127. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  128. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  129. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  130. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  131. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  132. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  133. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  134. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  135. package/dist/components/data/TableBase/RowCollection.js +1 -1
  136. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  137. package/dist/components/data/TableBase/TableRow.js +1 -1
  138. package/dist/components/data/TableBase/TableView.js +3 -1
  139. package/dist/components/data/TableBase/TableView.js.map +1 -1
  140. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  141. package/dist/components/data/TableBase/column-header.js +1 -1
  142. package/dist/components/data/TableBase/column-menu.js +1 -1
  143. package/dist/components/data/TableBase/column-styles.js +1 -1
  144. package/dist/components/data/TableBase/column-tint.js +1 -1
  145. package/dist/components/data/TableBase/row-menu.js +1 -1
  146. package/dist/components/data/TableBase/styled.js +1 -1
  147. package/dist/components/data/TableBase/table-tree.js +1 -1
  148. package/dist/components/data/TableBase/types.js +1 -1
  149. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  150. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  151. package/dist/components/data/TableBase/use-column-order.js +1 -1
  152. package/dist/components/data/TableBase/use-column-window.js +1 -1
  153. package/dist/components/data/TableBase/use-container-width.js +1 -1
  154. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  155. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  156. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  157. package/dist/components/data/TableBase/use-table-search.js +1 -1
  158. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  159. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  160. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  161. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  162. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  163. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  164. package/dist/components/fields/Checkbox/Checkbox.js +2 -2
  165. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  166. package/dist/components/fields/Checkbox/CheckboxGroup.js +5 -5
  167. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  168. package/dist/components/fields/Checkbox/context.js +1 -1
  169. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  170. package/dist/components/fields/ColorPicker/ColorPicker.js +3 -1
  171. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  172. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  173. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +2 -1
  174. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  175. package/dist/components/fields/ComboBox/ComboBox.d.ts +27 -7
  176. package/dist/components/fields/ComboBox/ComboBox.js +1095 -619
  177. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  178. package/dist/components/fields/ComboBox/comboBoxOptions.js +84 -0
  179. package/dist/components/fields/ComboBox/comboBoxOptions.js.map +1 -0
  180. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  181. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  182. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  183. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  184. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  185. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  186. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  187. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  188. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  189. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  190. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  191. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  192. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  193. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  194. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  195. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  196. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  197. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  198. package/dist/components/fields/DatePicker/parseDate.d.ts +7 -0
  199. package/dist/components/fields/DatePicker/parseDate.js +17 -3
  200. package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
  201. package/dist/components/fields/DatePicker/period.js +1 -1
  202. package/dist/components/fields/DatePicker/props.js +1 -1
  203. package/dist/components/fields/DatePicker/utils.js +1 -1
  204. package/dist/components/fields/FileInput/FileInput.js +1 -1
  205. package/dist/components/fields/FilterListBox/FilterListBox.js +2 -1
  206. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  207. package/dist/components/fields/FilterPicker/FilterPicker.js +15 -6
  208. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  209. package/dist/components/fields/Input/Input.d.ts +2 -2
  210. package/dist/components/fields/Input/Input.js +2 -2
  211. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  212. package/dist/components/fields/ListBox/ListBox.d.ts +10 -4
  213. package/dist/components/fields/ListBox/ListBox.js +298 -146
  214. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  215. package/dist/components/fields/ListBox/optionId.js +1 -1
  216. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +150 -139
  217. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  218. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  219. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  220. package/dist/components/fields/NumberInput/NumberInput.d.ts +6 -1
  221. package/dist/components/fields/NumberInput/NumberInput.js +136 -128
  222. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  223. package/dist/components/fields/NumberInput/StepButton.js +38 -48
  224. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  225. package/dist/components/fields/PasswordInput/PasswordInput.d.ts +1 -2
  226. package/dist/components/fields/PasswordInput/PasswordInput.js +77 -111
  227. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  228. package/dist/components/fields/Picker/Picker.d.ts +1 -1
  229. package/dist/components/fields/Picker/Picker.js +22 -8
  230. package/dist/components/fields/Picker/Picker.js.map +1 -1
  231. package/dist/components/fields/RadioGroup/Radio.d.ts +12 -12
  232. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  233. package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
  234. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  235. package/dist/components/fields/RadioGroup/context.js +1 -1
  236. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -6
  237. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  238. package/dist/components/fields/SearchInput/SearchInput.d.ts +8 -3
  239. package/dist/components/fields/SearchInput/SearchInput.js +22 -34
  240. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  241. package/dist/components/fields/Select/Select.d.ts +12 -1
  242. package/dist/components/fields/Select/Select.js +365 -207
  243. package/dist/components/fields/Select/Select.js.map +1 -1
  244. package/dist/components/fields/Slider/Gradation.js +1 -1
  245. package/dist/components/fields/Slider/HueSlider.js +1 -1
  246. package/dist/components/fields/Slider/RangeSlider.js +3 -4
  247. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  248. package/dist/components/fields/Slider/Slider.js +1 -1
  249. package/dist/components/fields/Slider/SliderBase.js +1 -1
  250. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  251. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  252. package/dist/components/fields/Slider/elements.js +1 -1
  253. package/dist/components/fields/Slider/index.js +1 -1
  254. package/dist/components/fields/Switch/Switch.js +1 -1
  255. package/dist/components/fields/TagInput/TagInput.js +2 -2
  256. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  257. package/dist/components/fields/TagInput/TagList.js +1 -1
  258. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  259. package/dist/components/fields/TagInput/useTagError.js +1 -1
  260. package/dist/components/fields/TextArea/TextArea.d.ts +0 -1
  261. package/dist/components/fields/TextArea/TextArea.js +49 -63
  262. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  263. package/dist/components/fields/TextInput/TextInput.d.ts +1 -1
  264. package/dist/components/fields/TextInput/TextInput.js +42 -46
  265. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  266. package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -2
  267. package/dist/components/fields/TextInput/TextInputBase.js +32 -10
  268. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  269. package/dist/components/fields/TextInput/displayed-validation.js +50 -0
  270. package/dist/components/fields/TextInput/displayed-validation.js.map +1 -0
  271. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  272. package/dist/components/fields/TextInputMapper/TextInputMapper.js +20 -17
  273. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  274. package/dist/components/fields/TriggerActions.js +1 -1
  275. package/dist/components/fields/color/ColorPanel.js +3 -1
  276. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  277. package/dist/components/fields/color/channels.js +1 -1
  278. package/dist/components/fields/color/color.js +1 -1
  279. package/dist/components/fields/color/context.js +1 -1
  280. package/dist/components/fields/index.d.ts +2 -2
  281. package/dist/components/fields/option-origin-press.js +78 -0
  282. package/dist/components/fields/option-origin-press.js.map +1 -0
  283. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +10 -8
  284. package/dist/components/form/FieldWrapper/FieldWrapper.js +214 -159
  285. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  286. package/dist/components/form/FieldWrapper/field-description.js +3 -3
  287. package/dist/components/form/FieldWrapper/field-description.js.map +1 -1
  288. package/dist/components/form/FieldWrapper/types.d.ts +4 -3
  289. package/dist/components/form/Form/Field.js +1 -1
  290. package/dist/components/form/Form/Form.js +1 -1
  291. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  292. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  293. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  294. package/dist/components/form/Form/SubmitError.js +1 -1
  295. package/dist/components/form/Form/backend.js +1 -1
  296. package/dist/components/form/Form/index.js +1 -1
  297. package/dist/components/form/Form/modern/actions.js +1 -1
  298. package/dist/components/form/Form/modern/context.js +1 -1
  299. package/dist/components/form/Form/modern/controller.js +1 -1
  300. package/dist/components/form/Form/modern/field-binding.js +1 -1
  301. package/dist/components/form/Form/modern/field.js +1 -1
  302. package/dist/components/form/Form/modern/react.js +1 -1
  303. package/dist/components/form/Form/modern/store.js +1 -1
  304. package/dist/components/form/Form/modern/validation.js +1 -1
  305. package/dist/components/form/Form/modern/values.js +1 -1
  306. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  307. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  308. package/dist/components/form/Form/use-field/use-field-props.js +21 -33
  309. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  310. package/dist/components/form/Form/use-field/use-field.js +1 -1
  311. package/dist/components/form/Form/use-form.js +1 -1
  312. package/dist/components/form/Form/validation.js +1 -1
  313. package/dist/components/form/Label.js +1 -1
  314. package/dist/components/form/field-chrome.js +4 -34
  315. package/dist/components/form/field-chrome.js.map +1 -1
  316. package/dist/components/form/legacy-tooltip.js +1 -1
  317. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  318. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  319. package/dist/components/form/validation/use-validation-props.js +1 -1
  320. package/dist/components/form/wrapper.d.ts +6 -17
  321. package/dist/components/form/wrapper.js +6 -14
  322. package/dist/components/form/wrapper.js.map +1 -1
  323. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  324. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  325. package/dist/components/layout/Flex.js +1 -1
  326. package/dist/components/layout/Flow.js +1 -1
  327. package/dist/components/layout/Grid.js +1 -1
  328. package/dist/components/layout/Panel.js +1 -1
  329. package/dist/components/layout/Prefix.js +1 -1
  330. package/dist/components/layout/ResizablePanel.js +1 -1
  331. package/dist/components/layout/Space.js +1 -1
  332. package/dist/components/layout/Suffix.js +1 -1
  333. package/dist/components/navigation/Pagination/Pagination.js +3 -1
  334. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  335. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  336. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  337. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  338. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  339. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  340. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  341. package/dist/components/navigation/Tabs/TabPicker.js +2 -1
  342. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  343. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  344. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  345. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  346. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  347. package/dist/components/navigation/Tabs/styled.js +1 -1
  348. package/dist/components/navigation/Tabs/types.js +1 -1
  349. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  350. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  351. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  352. package/dist/components/other/Calendar/Calendar.js +1 -1
  353. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  354. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  355. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  356. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  357. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  358. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  359. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  360. package/dist/components/other/Calendar/styled.js +1 -1
  361. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  362. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  363. package/dist/components/overlays/AlertDialog/AlertDialog.d.ts +6 -1
  364. package/dist/components/overlays/AlertDialog/AlertDialog.js +3 -2
  365. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  366. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +3 -2
  367. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  368. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  369. package/dist/components/overlays/Dialog/Dialog.js +28 -14
  370. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  371. package/dist/components/overlays/Dialog/DialogContainer.d.ts +4 -2
  372. package/dist/components/overlays/Dialog/DialogContainer.js +40 -34
  373. package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
  374. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  375. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +7 -3
  376. package/dist/components/overlays/Dialog/DialogTrigger.js +149 -132
  377. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  378. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  379. package/dist/components/overlays/Dialog/context.js +1 -1
  380. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  381. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  382. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  383. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +83 -0
  384. package/dist/components/overlays/Dialog/use-dialog-open-sync.js.map +1 -0
  385. package/dist/components/overlays/Modal/Modal.js +1 -1
  386. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  387. package/dist/components/overlays/Modal/Overlay.js +9 -3
  388. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  389. package/dist/components/overlays/Modal/Popover.d.ts +1 -1
  390. package/dist/components/overlays/Modal/Popover.js +31 -29
  391. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  392. package/dist/components/overlays/Modal/Tray.js +69 -60
  393. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  394. package/dist/components/overlays/Modal/Underlay.js +1 -1
  395. package/dist/components/overlays/Modal/index.d.ts +1 -1
  396. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  397. package/dist/components/overlays/Notifications/Notification.js +1 -1
  398. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  399. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  400. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  401. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  402. package/dist/components/overlays/Notifications/OverlayContainer.js +18 -32
  403. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  404. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  405. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  406. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  407. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  408. package/dist/components/overlays/Notifications/index.js +1 -1
  409. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  410. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  411. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  412. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  413. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  414. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  415. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  416. package/dist/components/overlays/Toast/index.js +1 -1
  417. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  418. package/dist/components/overlays/Toast/useToast.js +1 -1
  419. package/dist/components/overlays/Tooltip/Tooltip.d.ts +8 -0
  420. package/dist/components/overlays/Tooltip/Tooltip.js +16 -22
  421. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  422. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  423. package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +1 -1
  424. package/dist/components/overlays/Tooltip/TooltipTrigger.js +163 -113
  425. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  426. package/dist/components/overlays/Tooltip/context.js +1 -1
  427. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  428. package/dist/components/overlays/Tooltip/split-trigger-props.js +6 -5
  429. package/dist/components/overlays/Tooltip/split-trigger-props.js.map +1 -1
  430. package/dist/components/portal/Portal.js +1 -1
  431. package/dist/components/portal/PortalProvider.js +1 -1
  432. package/dist/components/portal/usePortal.js +1 -1
  433. package/dist/components/shared/DraggableCollection.js +1 -1
  434. package/dist/components/shared/InvalidIcon.js +1 -1
  435. package/dist/components/shared/ValidIcon.js +1 -1
  436. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  437. package/dist/components/status/Spin/Cube.js +1 -1
  438. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  439. package/dist/components/status/Spin/Spin.js +1 -1
  440. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  441. package/dist/data/item-themes.js +1 -1
  442. package/dist/data/themes.js +1 -1
  443. package/dist/eslint-plugin/defaults.generated.js +11 -17
  444. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  445. package/dist/eslint-plugin/index.js +1 -1
  446. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  447. package/dist/i18n/I18nProvider.js +1 -1
  448. package/dist/i18n/createFormatter.js +1 -1
  449. package/dist/i18n/index.js +1 -1
  450. package/dist/i18n/instance.js +1 -1
  451. package/dist/i18n/locales/de-DE/uikit.js +6 -4
  452. package/dist/i18n/locales/en-US/uikit.js +6 -4
  453. package/dist/i18n/locales/en-US/uikit.json.d.ts +3 -1
  454. package/dist/i18n/locales/es-ES/uikit.js +6 -4
  455. package/dist/i18n/locales/es-MX/uikit.js +6 -4
  456. package/dist/i18n/locales/fr-FR/uikit.js +6 -4
  457. package/dist/i18n/locales/it-IT/uikit.js +6 -4
  458. package/dist/i18n/locales/ja-JP/uikit.js +6 -4
  459. package/dist/i18n/locales/nb-NO/uikit.js +6 -4
  460. package/dist/i18n/locales/pt-BR/uikit.js +6 -4
  461. package/dist/i18n/locales/pt-PT/uikit.js +6 -4
  462. package/dist/i18n/locales/sv-SE/uikit.js +6 -4
  463. package/dist/i18n/locales/vi-VN/uikit.js +6 -4
  464. package/dist/i18n/locales.js +1 -1
  465. package/dist/i18n/namespace.js +1 -1
  466. package/dist/i18n/useFormatter.js +1 -1
  467. package/dist/i18n/useI18n.js +1 -1
  468. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  469. package/dist/icons/AdjustmentsIcon.js +1 -1
  470. package/dist/icons/AiIcon.js +1 -1
  471. package/dist/icons/AreaChartIcon.js +1 -1
  472. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  473. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  474. package/dist/icons/BackwardIcon.js +1 -1
  475. package/dist/icons/BarChartIcon.js +1 -1
  476. package/dist/icons/BellFilledIcon.js +1 -1
  477. package/dist/icons/BellIcon.js +1 -1
  478. package/dist/icons/BooleanIcon.js +1 -1
  479. package/dist/icons/CalendarEditIcon.js +1 -1
  480. package/dist/icons/CalendarIcon.js +1 -1
  481. package/dist/icons/CaretDownIcon.js +1 -1
  482. package/dist/icons/CaretUpIcon.js +1 -1
  483. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  484. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  485. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  486. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  487. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  488. package/dist/icons/ChartBarLineIcon.js +1 -1
  489. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  490. package/dist/icons/ChartBarStackedIcon.js +1 -1
  491. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  492. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  493. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  494. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  495. package/dist/icons/ChartBubbleIcon.js +1 -1
  496. package/dist/icons/ChartDonut2Icon.js +1 -1
  497. package/dist/icons/ChartFunnelIcon.js +1 -1
  498. package/dist/icons/ChartHeatmapIcon.js +1 -1
  499. package/dist/icons/ChartKPIIcon.js +1 -1
  500. package/dist/icons/ChartPie2Icon.js +1 -1
  501. package/dist/icons/ChartScatterIcon.js +1 -1
  502. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  503. package/dist/icons/CheckCircleIcon.js +1 -1
  504. package/dist/icons/CheckIcon.js +1 -1
  505. package/dist/icons/CircleFilledIcon.js +1 -1
  506. package/dist/icons/ClearIcon.js +1 -1
  507. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  508. package/dist/icons/CloseCircleIcon.js +1 -1
  509. package/dist/icons/CloseIcon.js +1 -1
  510. package/dist/icons/CodeIcon.js +1 -1
  511. package/dist/icons/ColumnTotalIcon.js +1 -1
  512. package/dist/icons/CopyIcon.js +1 -1
  513. package/dist/icons/CountIcon.js +1 -1
  514. package/dist/icons/CubeIcon.js +1 -1
  515. package/dist/icons/CubePauseIcon.js +1 -1
  516. package/dist/icons/CubePlayIcon.js +1 -1
  517. package/dist/icons/CurrencyDollarIcon.js +1 -1
  518. package/dist/icons/DangerIcon.js +1 -1
  519. package/dist/icons/DashboardIcon.js +1 -1
  520. package/dist/icons/DatabaseIcon.js +1 -1
  521. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  522. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  523. package/dist/icons/DirectionIcon.js +1 -1
  524. package/dist/icons/DonutIcon.js +1 -1
  525. package/dist/icons/DownIcon.js +1 -1
  526. package/dist/icons/EditIcon.js +1 -1
  527. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  528. package/dist/icons/ExclamationCircleIcon.js +1 -1
  529. package/dist/icons/ExclamationIcon.js +1 -1
  530. package/dist/icons/EyeIcon.js +1 -1
  531. package/dist/icons/EyeInvisibleIcon.js +1 -1
  532. package/dist/icons/FilterIcon.js +1 -1
  533. package/dist/icons/FolderFilledIcon.js +1 -1
  534. package/dist/icons/FolderIcon.js +1 -1
  535. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  536. package/dist/icons/FolderOpenIcon.js +1 -1
  537. package/dist/icons/ForwardIcon.js +1 -1
  538. package/dist/icons/GripVerticalIcon.js +1 -1
  539. package/dist/icons/HierarchyIcon.js +1 -1
  540. package/dist/icons/HierarchyOpenIcon.js +1 -1
  541. package/dist/icons/Icon.js +1 -1
  542. package/dist/icons/InfoCircleIcon.js +1 -1
  543. package/dist/icons/InfoIcon.js +1 -1
  544. package/dist/icons/KeyIcon.js +1 -1
  545. package/dist/icons/LeftIcon.js +1 -1
  546. package/dist/icons/LineChartIcon.js +1 -1
  547. package/dist/icons/LoadingIcon.js +1 -1
  548. package/dist/icons/LockFilledIcon.js +1 -1
  549. package/dist/icons/LockIcon.js +1 -1
  550. package/dist/icons/MoreIcon.js +1 -1
  551. package/dist/icons/NotAllowedIcon.js +1 -1
  552. package/dist/icons/Number123Icon.js +1 -1
  553. package/dist/icons/NumberIcon.js +1 -1
  554. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  555. package/dist/icons/PauseCircleIcon.js +1 -1
  556. package/dist/icons/PauseIcon.js +1 -1
  557. package/dist/icons/PercentageIcon.js +1 -1
  558. package/dist/icons/PieChartIcon.js +1 -1
  559. package/dist/icons/PipetteIcon.js +1 -1
  560. package/dist/icons/PlayCircleIcon.js +1 -1
  561. package/dist/icons/PlayIcon.js +1 -1
  562. package/dist/icons/PlusIcon.js +1 -1
  563. package/dist/icons/ProgressBarIcon.js +1 -1
  564. package/dist/icons/ReloadIcon.js +1 -1
  565. package/dist/icons/ReportIcon.js +1 -1
  566. package/dist/icons/ReturnIcon.js +1 -1
  567. package/dist/icons/RightIcon.js +1 -1
  568. package/dist/icons/RowTotalsIcon.js +1 -1
  569. package/dist/icons/SchemeIcon.js +1 -1
  570. package/dist/icons/SearchIcon.js +1 -1
  571. package/dist/icons/SemanticQueryIcon.js +1 -1
  572. package/dist/icons/SettingsIcon.js +1 -1
  573. package/dist/icons/ShieldFilledIcon.js +1 -1
  574. package/dist/icons/ShieldIcon.js +1 -1
  575. package/dist/icons/SlashIcon.js +1 -1
  576. package/dist/icons/SparklesIcon.js +1 -1
  577. package/dist/icons/SqlIcon.js +1 -1
  578. package/dist/icons/StatsIcon.js +1 -1
  579. package/dist/icons/StopIcon.js +1 -1
  580. package/dist/icons/StringIcon.js +1 -1
  581. package/dist/icons/SubtotalsIcon.js +1 -1
  582. package/dist/icons/SwitchIcon.js +1 -1
  583. package/dist/icons/TableIcon.js +1 -1
  584. package/dist/icons/ThumbsDownIcon.js +1 -1
  585. package/dist/icons/ThumbsUpIcon.js +1 -1
  586. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  587. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  588. package/dist/icons/ThunderboltIcon.js +1 -1
  589. package/dist/icons/TimeIcon.js +1 -1
  590. package/dist/icons/TrashIcon.js +1 -1
  591. package/dist/icons/UnlockIcon.js +1 -1
  592. package/dist/icons/UpIcon.js +1 -1
  593. package/dist/icons/UserGroupIcon.js +1 -1
  594. package/dist/icons/UserIcon.js +1 -1
  595. package/dist/icons/UserLockIcon.js +1 -1
  596. package/dist/icons/ViewIcon.js +1 -1
  597. package/dist/icons/WarningFilledIcon.js +1 -1
  598. package/dist/icons/WarningIcon.js +1 -1
  599. package/dist/icons/wrap-icon.js +1 -1
  600. package/dist/index.d.ts +1 -1
  601. package/dist/index.js +2 -2
  602. package/dist/probe/canonicalize.js +1 -1
  603. package/dist/probe/css.js +1 -1
  604. package/dist/probe/index.js +1 -1
  605. package/dist/provider.js +1 -1
  606. package/dist/providers/TrackingProvider.js +1 -1
  607. package/dist/providers/navigation-url.js +15 -3
  608. package/dist/providers/navigation-url.js.map +1 -1
  609. package/dist/providers/navigationAdapter.default.js +1 -1
  610. package/dist/providers/use-navigation.js +1 -1
  611. package/dist/shared/form.d.ts +11 -12
  612. package/dist/tokens/all-tokens.js +1 -1
  613. package/dist/tokens/base.js +1 -1
  614. package/dist/tokens/color-seed.js +1 -1
  615. package/dist/tokens/color-theme.js +1 -1
  616. package/dist/tokens/colors.js +1 -1
  617. package/dist/tokens/layout.js +1 -1
  618. package/dist/tokens/lazy-styles.js +1 -1
  619. package/dist/tokens/legacy-color.js +1 -1
  620. package/dist/tokens/palette-config.js +1 -1
  621. package/dist/tokens/palette.js +1 -1
  622. package/dist/tokens/resolve.js +1 -1
  623. package/dist/tokens/shadows.js +1 -1
  624. package/dist/tokens/sizes.js +1 -1
  625. package/dist/tokens/spacing.js +1 -1
  626. package/dist/tokens/typography.js +1 -1
  627. package/dist/utils/ResizeSensor.js +1 -1
  628. package/dist/utils/colors.js +1 -1
  629. package/dist/utils/dotize.js +1 -1
  630. package/dist/utils/is-dev-env.js +1 -1
  631. package/dist/utils/modules.js +1 -1
  632. package/dist/utils/promise.js +1 -1
  633. package/dist/utils/raf.js +1 -1
  634. package/dist/utils/random.js +1 -1
  635. package/dist/utils/range.js +1 -1
  636. package/dist/utils/react/RenderCache.js +1 -1
  637. package/dist/utils/react/Slots.js +1 -1
  638. package/dist/utils/react/chain.js +1 -1
  639. package/dist/utils/react/disabledProps.js +1 -1
  640. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  641. package/dist/utils/react/index.js +1 -1
  642. package/dist/utils/react/interactions.js +1 -1
  643. package/dist/utils/react/isTextOnly.js +1 -1
  644. package/dist/utils/react/mapProps.js +1 -1
  645. package/dist/utils/react/mergeProps.js +1 -1
  646. package/dist/utils/react/nullableValue.js +18 -9
  647. package/dist/utils/react/nullableValue.js.map +1 -1
  648. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  649. package/dist/utils/react/programmaticFocus.js +1 -1
  650. package/dist/utils/react/resolveIcon.js +1 -1
  651. package/dist/utils/react/sharedStore.js +1 -1
  652. package/dist/utils/react/useBufferedValue.js +1 -1
  653. package/dist/utils/react/useCombinedRefs.js +1 -1
  654. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  655. package/dist/utils/react/useEventBus.js +1 -1
  656. package/dist/utils/react/useId.js +1 -1
  657. package/dist/utils/react/useIsDarwin.js +1 -1
  658. package/dist/utils/react/useKeySymbols.js +1 -1
  659. package/dist/utils/react/useLayoutEffect.js +1 -1
  660. package/dist/utils/react/useLocalStorage.js +1 -1
  661. package/dist/utils/react/useMergeStyles.js +1 -1
  662. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  663. package/dist/utils/react/usePopoverSync.js +1 -1
  664. package/dist/utils/react/useQaProps.js +1 -1
  665. package/dist/utils/react/useScheme.js +1 -1
  666. package/dist/utils/react/useViewportSize.js +1 -1
  667. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  668. package/dist/utils/selection.js +1 -1
  669. package/dist/utils/styles.js +1 -1
  670. package/dist/utils/tree.js +1 -1
  671. package/dist/utils/warnings.js +1 -1
  672. package/dist/version.js +2 -2
  673. package/docs/ComplexLayout.md +1 -1
  674. package/docs/CreateComponent.md +6 -0
  675. package/docs/FieldProperties.md +31 -6
  676. package/docs/Theming.md +2 -1
  677. package/docs/Usage.md +6 -0
  678. package/docs/components/Root.md +1 -1
  679. package/docs/components/actions/Button.md +8 -2
  680. package/docs/components/actions/ButtonSplit.md +27 -1
  681. package/docs/components/actions/Link.md +1 -1
  682. package/docs/components/actions/Menu.md +4 -2
  683. package/docs/components/content/InfoBadge.md +2 -0
  684. package/docs/components/content/ItemBadge.md +4 -0
  685. package/docs/components/content/Layout.md +41 -6
  686. package/docs/components/fields/ComboBox.md +30 -19
  687. package/docs/components/fields/FilterListBox.md +2 -2
  688. package/docs/components/fields/FilterPicker.md +2 -2
  689. package/docs/components/fields/ListBox.md +14 -10
  690. package/docs/components/fields/NumberInput.md +20 -11
  691. package/docs/components/fields/PasswordInput.md +6 -7
  692. package/docs/components/fields/Picker.md +6 -5
  693. package/docs/components/fields/RadioGroup.md +1 -1
  694. package/docs/components/fields/SearchInput.md +7 -6
  695. package/docs/components/fields/Select.md +14 -8
  696. package/docs/components/fields/TagInput.md +8 -1
  697. package/docs/components/fields/TextArea.md +4 -3
  698. package/docs/components/fields/TextInput.md +13 -6
  699. package/docs/components/overlays/AlertDialog.md +7 -1
  700. package/docs/components/overlays/Dialog.md +5 -5
  701. package/docs/components/overlays/DialogContainer.md +26 -10
  702. package/docs/components/overlays/DialogTrigger.md +6 -6
  703. package/docs/components/overlays/Tooltip.md +17 -6
  704. package/docs/components/overlays/TooltipTrigger.md +2 -0
  705. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ColorSwatchGroup.js","names":["useObjectRef","BaseProps","BLOCK_STYLES","BlockStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","ForwardedRef","forwardRef","useMemo","useRef","useState","useRadio","useRadioGroup","useRadioGroupState","useEvent","useI18n","FieldBaseProps","mergeProps","useFocus","extractStyles","getValidationMods","useFieldProps","wrapWithField","HiddenInput","ColorFormat","formatColor","parseColor","toHex","useIsInsideColorPopover","ColorPicker","RadioGroupState","CubeColorSwatchItem","color","label","SELECTED_RING","SWATCH_PX","Record","small","medium","large","CUSTOM_TRIGGER_STYLES","width","height","padding","radius","border","position","CUSTOM_SWATCH_STYLES","inset","CUSTOM_SWATCH_SELECTED_STYLES","shadow","GroupElement","qa","styles","display","columns","flow","gap","placeItems","gridColumns","RadiosElement","SwatchElement","as","cursor","disabled","fill","opacity","selected","outline","focused","transition","CubeColorSwatchGroupProps","colors","value","defaultValue","onChange","format","allowCustom","size","swatchStyles","SwatchProps","colorKey","state","isDisabled","mods","Swatch","t0","$","_c","inputRef","t1","inputProps","isSelected","isRadioDisabled","isFocused","focusProps","t2","t3","t4","t5","button","t6","t7","ColorSwatchGroup","allProps","ref","HTMLElement","t","props","defaultValidationTrigger","valuePropsMapper","isInvalid","isValid","ariaLabel","isInsidePopover","showCustom","swatches","seen","Map","key","entry","raw","parsed","has","set","undefined","values","internalValue","setInternalValue","currentValue","selectedColor","toString","selectedKey","isCustom","some","s","publish","next","handleChange","nextKey","isReadOnly","domRef","radioGroupProps","labelProps","form","orientation","group","String","map","swatch","cubeInputType"],"sources":["../../../../src/components/fields/ColorSwatchGroup/ColorSwatchGroup.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport {\n BaseProps,\n BLOCK_STYLES,\n BlockStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, useMemo, useRef, useState } from 'react';\nimport { useRadio, useRadioGroup } from 'react-aria';\nimport { useRadioGroupState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport { getValidationMods, useFieldProps, wrapWithField } from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\nimport { ColorFormat, formatColor, parseColor, toHex } from '../color/color';\nimport { useIsInsideColorPopover } from '../color/context';\nimport { ColorPicker } from '../ColorPicker';\n\nimport type { RadioGroupState } from 'react-stately';\n\n/** A swatch: a color, and optionally a name to announce instead of the color. */\nexport type CubeColorSwatchItem = string | { color: string; label?: string };\n\n/**\n * Two rings drawn inside the swatch, as React Aria marks selection. Outer ring\n * first: earlier shadows paint over later ones, so this reads as 2bw of\n * `#surface-text` at the edge and 2bw of `#surface` within it. Two tones that\n * flip with the scheme stay visible against any color the swatch holds.\n */\nconst SELECTED_RING = 'inset 0 0 0 2bw #surface-text, inset 0 0 0 4bw #surface';\n\n/** The swatch edge in px, per size. `Item` takes an exact number. */\nconst SWATCH_PX: Record<string, number> = {\n small: 16,\n medium: 20,\n large: 24,\n};\n\n/**\n * The trailing picker is a button wrapping a swatch, which would otherwise read\n * as a box inside a box. Stripping its chrome leaves just the swatch, so it\n * sits in the row as one of them.\n */\nconst CUSTOM_TRIGGER_STYLES: Styles = {\n // `size` sets the control's height; the box is pinned here as well so a flex\n // row cannot let the button size itself to its content instead.\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n padding: 0,\n radius: '1r',\n border: 0,\n position: 'relative',\n};\n\n/**\n * The swatch is docked over the whole button rather than placed inside it.\n * `Item` lays its icon out in a grid that reserves room for a label even when\n * there is none, which left the swatch a pixel off centre.\n */\nconst CUSTOM_SWATCH_STYLES: Styles = {\n position: 'absolute',\n inset: 0,\n width: 'auto',\n height: 'auto',\n radius: '1r',\n};\n\n/**\n * The ring goes on the swatch, not on the button around it: an inset shadow\n * paints under child content, and the swatch covers the button edge to edge.\n */\nconst CUSTOM_SWATCH_SELECTED_STYLES: Styles = {\n ...CUSTOM_SWATCH_STYLES,\n shadow: SELECTED_RING,\n};\n\nconst GroupElement = tasty({\n qa: 'ColorSwatchGroup',\n styles: {\n // Wrapping is the better default: it is a single row wherever there is\n // room, and folds instead of overflowing where there is not. A fixed\n // `columns` switches to a grid, sized to the swatches rather than to the\n // container — `1fr` tracks would stretch them apart.\n display: {\n '': 'flex',\n columns: 'grid',\n },\n flow: {\n '': 'row wrap',\n columns: 'row',\n },\n gap: '.5x',\n placeItems: {\n '': 'center start',\n columns: 'stretch',\n },\n width: {\n '': 'auto',\n columns: 'max-content',\n },\n gridColumns: 'repeat($columns, max-content)',\n\n // 20px, 16px and 24px — 1x is 8px.\n '$swatch-size': {\n '': '2.5x',\n 'size=small': '2x',\n 'size=large': '3x',\n },\n },\n});\n\n/**\n * Only the swatches belong to the radiogroup. The custom picker is a button,\n * and inside `role=\"radiogroup\"` it both misreports what the palette holds and\n * hands arrow keys to React Aria's radio walker — pressing one while the picker\n * is focused jumps into a swatch and changes the color. The box is dropped so\n * the swatches remain direct children of the group's own layout.\n */\nconst RadiosElement = tasty({\n styles: { display: 'contents' },\n});\n\nconst SwatchElement = tasty({\n as: 'label',\n qa: 'ColorSwatchOption',\n styles: {\n display: 'grid',\n placeItems: 'stretch',\n position: 'relative',\n radius: '1r',\n cursor: {\n '': 'pointer',\n disabled: 'default',\n },\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n fill: '(#color-swatch, #clear)',\n opacity: {\n '': 1,\n disabled: '$disabled-opacity',\n },\n // A ring at one border-width's distance, so the color area stays whole —\n // the inner ring is the surface showing through as the gap. `outline` is\n // deliberately left to the focus ring.\n shadow: {\n '': 'inset 0 0 0 1bw #dark.15',\n selected: SELECTED_RING,\n },\n // A 1bw offset keeps the ring clear of the 4px gap to its neighbours.\n outline: {\n '': '2bw #focus.0 / 1bw',\n focused: '2bw #focus / 1bw',\n },\n transition: 'theme',\n },\n});\n\nexport interface CubeColorSwatchGroupProps\n extends BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n FieldBaseProps<string | null | undefined> {\n /** The colors to offer. Duplicates of the same color are dropped. */\n colors?: CubeColorSwatchItem[];\n /** The selected color (controlled). */\n value?: string | null;\n /** The selected color (uncontrolled). */\n defaultValue?: string | null;\n /** Called with the chosen color, written in `format`. */\n onChange?: (value: string | null) => void;\n /** Notation the value is written in. */\n format?: ColorFormat;\n /** How many swatches per row. Defaults to a single row. */\n columns?: number;\n /**\n * Append a `ColorPicker` for colors outside the set. Ignored inside a color\n * popover, which is where that picker would otherwise recurse.\n */\n allowCustom?: boolean;\n /** The size of each swatch. */\n size?: 'small' | 'medium' | 'large' | (string & {});\n styles?: Styles;\n /** Styles of an individual swatch. */\n swatchStyles?: Styles;\n 'aria-label'?: string;\n}\n\ninterface SwatchProps {\n colorKey: string;\n label: string;\n state: RadioGroupState;\n isDisabled?: boolean;\n size?: string;\n styles?: Styles;\n mods?: Record<string, boolean | undefined>;\n}\n\nfunction Swatch({\n colorKey,\n label,\n state,\n isDisabled,\n size,\n styles,\n mods,\n}: SwatchProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const {\n inputProps,\n isSelected,\n isDisabled: isRadioDisabled,\n } = useRadio(\n { value: colorKey, 'aria-label': label, isDisabled },\n state,\n inputRef,\n );\n // `useRadio` reports selection but not focus, and the swatch is the only\n // thing a keyboard user can see — without this the ring never appears.\n const { isFocused, focusProps } = useFocus(true);\n\n return (\n <SwatchElement\n data-size={size}\n mods={{\n selected: isSelected,\n disabled: isRadioDisabled,\n focused: isFocused,\n ...mods,\n }}\n styles={styles}\n style={{ '--color-swatch-color': colorKey }}\n >\n <HiddenInput\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n qa=\"ColorSwatchInput\"\n mods={{ button: true, disabled: isRadioDisabled }}\n />\n </SwatchElement>\n );\n}\n\n/**\n * A grid of color swatches, one of which can be selected — the palette half of\n * choosing a color, where `ColorPicker` is the freeform half.\n *\n * Swatches are keyed by their canonical hex, so the same color written two ways\n * collapses into one entry. Equivalent colors would otherwise make selection\n * ambiguous.\n */\nexport const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(\n allProps: CubeColorSwatchGroupProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n const props = useFieldProps(allProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value as string | null | undefined,\n onChange,\n }),\n });\n\n const {\n qa,\n colors = [],\n value,\n defaultValue,\n onChange,\n format = 'hex',\n columns,\n allowCustom,\n size = 'medium',\n isDisabled,\n isInvalid,\n isValid,\n swatchStyles,\n 'aria-label': ariaLabel,\n } = props;\n\n const styles = extractStyles(props, [...OUTER_STYLES, ...BLOCK_STYLES]);\n const isInsidePopover = useIsInsideColorPopover();\n // A custom picker inside a color popover would open a popover of its own.\n const showCustom = allowCustom && !isInsidePopover;\n\n /** Keyed by canonical hex so the same color written two ways is one swatch. */\n const swatches = useMemo(() => {\n const seen = new Map<string, { key: string; label: string }>();\n\n for (const entry of colors) {\n const raw = typeof entry === 'string' ? entry : entry.color;\n const parsed = parseColor(raw);\n\n if (!parsed) continue;\n\n const key = toHex(parsed);\n\n if (seen.has(key)) continue;\n\n seen.set(key, {\n key,\n label:\n (typeof entry === 'string' ? undefined : entry.label) ??\n formatColor(parsed, format),\n });\n }\n\n return [...seen.values()];\n }, [colors, format]);\n\n const [internalValue, setInternalValue] = useState<string | null>(\n () => defaultValue ?? null,\n );\n const currentValue = value !== undefined ? value : internalValue;\n\n const selectedColor = parseColor((currentValue ?? '').toString());\n const selectedKey = selectedColor ? toHex(selectedColor) : null;\n const isCustom =\n !!selectedKey && !swatches.some((s) => s.key === selectedKey);\n\n const publish = useEvent((next: string | null) => {\n if (value === undefined) setInternalValue(next);\n\n onChange?.(next);\n });\n\n // `null` arrives from React Aria's native form reset of a group that\n // mounted with no value.\n const handleChange = useEvent((nextKey: string | null) => {\n const parsed = nextKey == null ? null : parseColor(nextKey);\n\n publish(parsed ? formatColor(parsed, format) : null);\n });\n\n const state = useRadioGroupState({\n value: selectedKey ?? null,\n isDisabled,\n isReadOnly: props.isReadOnly,\n // Becomes the group's `aria-invalid`, which is what says the field is\n // invalid to a screen reader; the red outline says it only to the eye.\n isInvalid,\n onChange: handleChange,\n });\n\n // `useFocusableRef` wants the ref of a real focusable control to forward to,\n // and a group of radios has no single one — `RadioGroup` takes the same\n // approach for the same reason.\n const domRef = useObjectRef(ref);\n const { radioGroupProps, labelProps } = useRadioGroup(\n {\n ...props,\n // React Aria hands `form` to every swatch's input as the id of its\n // `<form>`, so the form instance would render as `form=\"[object Object]\"`.\n form: undefined,\n // Only name the group here when nothing else does: an `aria-label` set\n // unconditionally would outrank the visible label React Aria wires up.\n 'aria-label': props.label\n ? undefined\n : ariaLabel ?? t('colorSwatchGroup.colors', 'Colors'),\n orientation: 'horizontal',\n },\n state,\n );\n\n const group = (\n <GroupElement\n ref={domRef}\n qa={qa || 'ColorSwatchGroup'}\n data-size={size}\n data-input-type=\"colorswatchgroup\"\n styles={styles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n columns: !!columns,\n }}\n style={columns ? { '--columns': String(columns) } : undefined}\n >\n <RadiosElement {...radioGroupProps}>\n {swatches.map((swatch) => (\n <Swatch\n key={swatch.key}\n colorKey={swatch.key}\n label={swatch.label}\n state={state}\n isDisabled={isDisabled}\n size={size}\n styles={swatchStyles}\n />\n ))}\n </RadiosElement>\n {showCustom ? (\n <ColorPicker\n aria-label={t('colorSwatchGroup.customColor', 'Custom color')}\n qa=\"ColorSwatchGroupCustom\"\n format={format}\n type=\"clear\"\n size={SWATCH_PX[size] ?? SWATCH_PX.medium}\n value={isCustom ? currentValue ?? null : null}\n isDisabled={isDisabled}\n isReadOnly={props.isReadOnly}\n triggerStyles={CUSTOM_TRIGGER_STYLES}\n swatchStyles={\n isCustom ? CUSTOM_SWATCH_SELECTED_STYLES : CUSTOM_SWATCH_STYLES\n }\n onChange={publish}\n >\n {null}\n </ColorPicker>\n ) : null}\n </GroupElement>\n );\n\n return wrapWithField(group, domRef, {\n ...props,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n});\n\n(ColorSwatchGroup as any).cubeInputType = 'Picker';\n"],"mappings":"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"}
1
+ {"version":3,"file":"ColorSwatchGroup.js","names":["useObjectRef","BaseProps","BLOCK_STYLES","BlockStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","ForwardedRef","forwardRef","useMemo","useRef","useState","useRadio","useRadioGroup","useRadioGroupState","useEvent","useI18n","FieldBaseProps","mergeProps","useFocus","extractStyles","getValidationMods","useFieldProps","wrapWithField","HiddenInput","ColorFormat","formatColor","parseColor","toHex","useIsInsideColorPopover","ColorPicker","RadioGroupState","CubeColorSwatchItem","color","label","SELECTED_RING","SWATCH_PX","Record","small","medium","large","CUSTOM_TRIGGER_STYLES","width","height","padding","radius","border","position","CUSTOM_SWATCH_STYLES","inset","CUSTOM_SWATCH_SELECTED_STYLES","shadow","GroupElement","qa","styles","display","columns","flow","gap","placeItems","gridColumns","RadiosElement","SwatchElement","as","cursor","disabled","fill","opacity","selected","outline","focused","transition","CubeColorSwatchGroupProps","colors","value","defaultValue","onChange","format","allowCustom","size","swatchStyles","SwatchProps","colorKey","state","isDisabled","mods","Swatch","t0","$","_c","inputRef","t1","inputProps","isSelected","isRadioDisabled","isFocused","focusProps","t2","t3","t4","t5","button","t6","t7","ColorSwatchGroup","allProps","ref","HTMLElement","t","props","defaultValidationTrigger","valuePropsMapper","isInvalid","isValid","ariaLabel","isInsidePopover","showCustom","swatches","seen","Map","key","entry","raw","parsed","has","set","undefined","values","internalValue","setInternalValue","currentValue","selectedColor","toString","selectedKey","isCustom","some","s","publish","next","handleChange","nextKey","isReadOnly","domRef","radioGroupProps","labelProps","form","orientation","group","String","map","swatch","cubeInputType"],"sources":["../../../../src/components/fields/ColorSwatchGroup/ColorSwatchGroup.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport {\n BaseProps,\n BLOCK_STYLES,\n BlockStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, useMemo, useRef, useState } from 'react';\nimport { useRadio, useRadioGroup } from 'react-aria';\nimport { useRadioGroupState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport { getValidationMods, useFieldProps, wrapWithField } from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\nimport { ColorFormat, formatColor, parseColor, toHex } from '../color/color';\nimport { useIsInsideColorPopover } from '../color/context';\nimport { ColorPicker } from '../ColorPicker';\n\nimport type { RadioGroupState } from 'react-stately';\n\n/** A swatch: a color, and optionally a name to announce instead of the color. */\nexport type CubeColorSwatchItem = string | { color: string; label?: string };\n\n/**\n * Two rings drawn inside the swatch, as React Aria marks selection. Outer ring\n * first: earlier shadows paint over later ones, so this reads as 2bw of\n * `#surface-text` at the edge and 2bw of `#surface` within it. Two tones that\n * flip with the scheme stay visible against any color the swatch holds.\n */\nconst SELECTED_RING = 'inset 0 0 0 2bw #surface-text, inset 0 0 0 4bw #surface';\n\n/** The swatch edge in px, per size. `Item` takes an exact number. */\nconst SWATCH_PX: Record<string, number> = {\n small: 16,\n medium: 20,\n large: 24,\n};\n\n/**\n * The trailing picker is a button wrapping a swatch, which would otherwise read\n * as a box inside a box. Stripping its chrome leaves just the swatch, so it\n * sits in the row as one of them.\n */\nconst CUSTOM_TRIGGER_STYLES: Styles = {\n // `size` sets the control's height; the box is pinned here as well so a flex\n // row cannot let the button size itself to its content instead.\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n padding: 0,\n radius: '1r',\n border: 0,\n position: 'relative',\n};\n\n/**\n * The swatch is docked over the whole button rather than placed inside it.\n * `Item` lays its icon out in a grid that reserves room for a label even when\n * there is none, which left the swatch a pixel off centre.\n */\nconst CUSTOM_SWATCH_STYLES: Styles = {\n position: 'absolute',\n inset: 0,\n width: 'auto',\n height: 'auto',\n radius: '1r',\n};\n\n/**\n * The ring goes on the swatch, not on the button around it: an inset shadow\n * paints under child content, and the swatch covers the button edge to edge.\n */\nconst CUSTOM_SWATCH_SELECTED_STYLES: Styles = {\n ...CUSTOM_SWATCH_STYLES,\n shadow: SELECTED_RING,\n};\n\nconst GroupElement = tasty({\n qa: 'ColorSwatchGroup',\n styles: {\n // Wrapping is the better default: it is a single row wherever there is\n // room, and folds instead of overflowing where there is not. A fixed\n // `columns` switches to a grid, sized to the swatches rather than to the\n // container — `1fr` tracks would stretch them apart.\n display: {\n '': 'flex',\n columns: 'grid',\n },\n flow: {\n '': 'row wrap',\n columns: 'row',\n },\n gap: '.5x',\n placeItems: {\n '': 'center start',\n columns: 'stretch',\n },\n width: {\n '': 'auto',\n columns: 'max-content',\n },\n gridColumns: 'repeat($columns, max-content)',\n\n // 20px, 16px and 24px — 1x is 8px.\n '$swatch-size': {\n '': '2.5x',\n 'size=small': '2x',\n 'size=large': '3x',\n },\n },\n});\n\n/**\n * Only the swatches belong to the radiogroup. The custom picker is a button,\n * and inside `role=\"radiogroup\"` it both misreports what the palette holds and\n * hands arrow keys to React Aria's radio walker — pressing one while the picker\n * is focused jumps into a swatch and changes the color. The box is dropped so\n * the swatches remain direct children of the group's own layout.\n */\nconst RadiosElement = tasty({\n styles: { display: 'contents' },\n});\n\nconst SwatchElement = tasty({\n as: 'label',\n qa: 'ColorSwatchOption',\n styles: {\n display: 'grid',\n placeItems: 'stretch',\n position: 'relative',\n radius: '1r',\n cursor: {\n '': 'pointer',\n disabled: 'default',\n },\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n fill: '(#color-swatch, #clear)',\n opacity: {\n '': 1,\n disabled: '$disabled-opacity',\n },\n // A ring at one border-width's distance, so the color area stays whole —\n // the inner ring is the surface showing through as the gap. `outline` is\n // deliberately left to the focus ring.\n shadow: {\n '': 'inset 0 0 0 1bw #dark.15',\n selected: SELECTED_RING,\n },\n // A 1bw offset keeps the ring clear of the 4px gap to its neighbours.\n outline: {\n '': '2bw #focus.0 / 1bw',\n focused: '2bw #focus / 1bw',\n },\n transition: 'theme',\n },\n});\n\nexport interface CubeColorSwatchGroupProps\n extends BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n FieldBaseProps<string | null | undefined> {\n /** The colors to offer. Duplicates of the same color are dropped. */\n colors?: CubeColorSwatchItem[];\n /** The selected color (controlled). */\n value?: string | null;\n /** The selected color (uncontrolled). */\n defaultValue?: string | null;\n /** Called with the chosen color, written in `format`. */\n onChange?: (value: string | null) => void;\n /** Notation the value is written in. */\n format?: ColorFormat;\n /** How many swatches per row. Defaults to a single row. */\n columns?: number;\n /**\n * Append a `ColorPicker` for colors outside the set. Ignored inside a color\n * popover, which is where that picker would otherwise recurse.\n */\n allowCustom?: boolean;\n /** The size of each swatch. */\n size?: 'small' | 'medium' | 'large' | (string & {});\n styles?: Styles;\n /** Styles of an individual swatch. */\n swatchStyles?: Styles;\n 'aria-label'?: string;\n}\n\ninterface SwatchProps {\n colorKey: string;\n label: string;\n state: RadioGroupState;\n isDisabled?: boolean;\n size?: string;\n styles?: Styles;\n mods?: Record<string, boolean | undefined>;\n}\n\nfunction Swatch({\n colorKey,\n label,\n state,\n isDisabled,\n size,\n styles,\n mods,\n}: SwatchProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const {\n inputProps,\n isSelected,\n isDisabled: isRadioDisabled,\n } = useRadio(\n { value: colorKey, 'aria-label': label, isDisabled },\n state,\n inputRef,\n );\n // `useRadio` reports selection but not focus, and the swatch is the only\n // thing a keyboard user can see — without this the ring never appears.\n const { isFocused, focusProps } = useFocus(true);\n\n return (\n <SwatchElement\n data-size={size}\n mods={{\n selected: isSelected,\n disabled: isRadioDisabled,\n focused: isFocused,\n ...mods,\n }}\n styles={styles}\n style={{ '--color-swatch-color': colorKey }}\n >\n <HiddenInput\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n qa=\"ColorSwatchInput\"\n mods={{ button: true, disabled: isRadioDisabled }}\n />\n </SwatchElement>\n );\n}\n\n/**\n * A grid of color swatches, one of which can be selected — the palette half of\n * choosing a color, where `ColorPicker` is the freeform half.\n *\n * Swatches are keyed by their canonical hex, so the same color written two ways\n * collapses into one entry. Equivalent colors would otherwise make selection\n * ambiguous.\n */\nexport const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(\n allProps: CubeColorSwatchGroupProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n const props = useFieldProps(allProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value as string | null | undefined,\n onChange,\n }),\n });\n\n const {\n qa,\n colors = [],\n value,\n defaultValue,\n onChange,\n format = 'hex',\n columns,\n allowCustom,\n size = 'medium',\n isDisabled,\n isInvalid,\n isValid,\n swatchStyles,\n 'aria-label': ariaLabel,\n } = props;\n\n const styles = extractStyles(props, [...OUTER_STYLES, ...BLOCK_STYLES]);\n const isInsidePopover = useIsInsideColorPopover();\n // A custom picker inside a color popover would open a popover of its own.\n const showCustom = allowCustom && !isInsidePopover;\n\n /** Keyed by canonical hex so the same color written two ways is one swatch. */\n const swatches = useMemo(() => {\n const seen = new Map<string, { key: string; label: string }>();\n\n for (const entry of colors) {\n const raw = typeof entry === 'string' ? entry : entry.color;\n const parsed = parseColor(raw);\n\n if (!parsed) continue;\n\n const key = toHex(parsed);\n\n if (seen.has(key)) continue;\n\n seen.set(key, {\n key,\n label:\n (typeof entry === 'string' ? undefined : entry.label) ??\n formatColor(parsed, format),\n });\n }\n\n return [...seen.values()];\n }, [colors, format]);\n\n const [internalValue, setInternalValue] = useState<string | null>(\n () => defaultValue ?? null,\n );\n const currentValue = value !== undefined ? value : internalValue;\n\n const selectedColor = parseColor((currentValue ?? '').toString());\n const selectedKey = selectedColor ? toHex(selectedColor) : null;\n const isCustom =\n !!selectedKey && !swatches.some((s) => s.key === selectedKey);\n\n const publish = useEvent((next: string | null) => {\n if (value === undefined) setInternalValue(next);\n\n onChange?.(next);\n });\n\n // `null` arrives from React Aria's native form reset of a group that\n // mounted with no value.\n const handleChange = useEvent((nextKey: string | null) => {\n const parsed = nextKey == null ? null : parseColor(nextKey);\n\n publish(parsed ? formatColor(parsed, format) : null);\n });\n\n const state = useRadioGroupState({\n value: selectedKey ?? null,\n isDisabled,\n isReadOnly: props.isReadOnly,\n // Becomes the group's `aria-invalid`, which is what says the field is\n // invalid to a screen reader; the red outline says it only to the eye.\n isInvalid,\n onChange: handleChange,\n });\n\n // `useFocusableRef` wants the ref of a real focusable control to forward to,\n // and a group of radios has no single one — `RadioGroup` takes the same\n // approach for the same reason.\n const domRef = useObjectRef(ref);\n const { radioGroupProps, labelProps } = useRadioGroup(\n {\n ...props,\n // React Aria hands `form` to every swatch's input as the id of its\n // `<form>`, so the form instance would render as `form=\"[object Object]\"`.\n form: undefined,\n // Only name the group here when nothing else does: an `aria-label` set\n // unconditionally would outrank the visible label React Aria wires up.\n 'aria-label': props.label\n ? undefined\n : ariaLabel ?? t('colorSwatchGroup.colors', 'Colors'),\n orientation: 'horizontal',\n },\n state,\n );\n\n const group = (\n <GroupElement\n ref={domRef}\n qa={qa || 'ColorSwatchGroup'}\n data-size={size}\n data-input-type=\"colorswatchgroup\"\n styles={styles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n columns: !!columns,\n }}\n style={columns ? { '--columns': String(columns) } : undefined}\n >\n <RadiosElement {...radioGroupProps}>\n {swatches.map((swatch) => (\n <Swatch\n key={swatch.key}\n colorKey={swatch.key}\n label={swatch.label}\n state={state}\n isDisabled={isDisabled}\n size={size}\n styles={swatchStyles}\n />\n ))}\n </RadiosElement>\n {showCustom ? (\n <ColorPicker\n isBare\n aria-label={t('colorSwatchGroup.customColor', 'Custom color')}\n qa=\"ColorSwatchGroupCustom\"\n format={format}\n type=\"clear\"\n size={SWATCH_PX[size] ?? SWATCH_PX.medium}\n value={isCustom ? currentValue ?? null : null}\n isDisabled={isDisabled}\n isReadOnly={props.isReadOnly}\n triggerStyles={CUSTOM_TRIGGER_STYLES}\n swatchStyles={\n isCustom ? CUSTOM_SWATCH_SELECTED_STYLES : CUSTOM_SWATCH_STYLES\n }\n onChange={publish}\n >\n {null}\n </ColorPicker>\n ) : null}\n </GroupElement>\n );\n\n return wrapWithField(group, domRef, {\n ...props,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n});\n\n(ColorSwatchGroup as any).cubeInputType = 'Picker';\n"],"mappings":"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"}
@@ -36,11 +36,17 @@ interface CubeComboBoxProps<T> extends BasePropsWithoutChildren, BaseStyleProps,
36
36
  /**
37
37
  * Callback fired when a key is pressed on the input, before the built-in
38
38
  * key handling. Receives React Aria's keyboard event: `e.preventDefault()`
39
- * skips the built-in handling for the key, and propagation stops at the
39
+ * skips the built-in handling for the key. `Escape` and `Tab` go on to
40
+ * ancestors, such as a surrounding dialog, unless ComboBox acts on them
41
+ * (`Escape` closing the list or clearing the value); other keys stop at the
40
42
  * input unless the handler calls `e.continuePropagation()`.
41
43
  */
42
44
  onKeyDown?: TextFieldKeyboardProps['onKeyDown'];
43
- /** Popover trigger behavior: 'focus', 'input', or 'manual'. Defaults to 'input' */
45
+ /**
46
+ * When the list opens on its own: `'input'` on typing or a press in the
47
+ * input, `'focus'` on focus as well, `'manual'` only from the chevron and
48
+ * the arrow keys. Defaults to `'input'`.
49
+ */
44
50
  popoverTrigger?: PopoverTriggerAction;
45
51
  /** Items for the listbox (alternative to children) */
46
52
  items?: Iterable<T>;
@@ -51,11 +57,19 @@ interface CubeComboBoxProps<T> extends BasePropsWithoutChildren, BaseStyleProps,
51
57
  * Pass `false` to disable internal filtering completely.
52
58
  */
53
59
  filter?: FilterFn | false;
54
- /** Whether to allow entering custom values that are not in the predefined options */
60
+ /**
61
+ * Whether to allow entering custom values that are not in the predefined
62
+ * options. The typed text is committed trimmed; empty text commits `null`.
63
+ */
55
64
  allowsCustomValue?: boolean;
56
- /** Whether to commit custom value on blur in allowsCustomValue mode (default: true) */
65
+ /**
66
+ * Whether to commit custom value on blur in allowsCustomValue mode (default:
67
+ * true). When `false`, only Enter or a pick commits, and blur discards the
68
+ * uncommitted text: the input shows the selected option's label again, or
69
+ * nothing when no option is selected.
70
+ */
57
71
  shouldCommitOnBlur?: boolean;
58
- /** Whether to clear selection and input on blur (default: false, only applies to non-custom-value mode) */
72
+ /** Whether to clear selection and input on blur when the text names no selectable item (default: false, only applies to non-custom-value mode) */
59
73
  clearOnBlur?: boolean;
60
74
  /** Whether the combobox is clearable using ESC key or clear button */
61
75
  isClearable?: boolean;
@@ -111,7 +125,10 @@ interface CubeComboBoxProps<T> extends BasePropsWithoutChildren, BaseStyleProps,
111
125
  overlayOffset?: number;
112
126
  /** Minimum padding in pixels between the popover and viewport edges */
113
127
  containerPadding?: number;
114
- /** Whether the combobox is read-only */
128
+ /**
129
+ * Whether the combobox is read-only: the list doesn't open, and neither
130
+ * keys nor blur change the value or the text.
131
+ */
115
132
  isReadOnly?: boolean;
116
133
  /** Suffix position goes before or after the validation and loading statuses */
117
134
  suffixPosition?: 'before' | 'after';
@@ -122,7 +139,10 @@ interface CubeComboBoxProps<T> extends BasePropsWithoutChildren, BaseStyleProps,
122
139
  * @default true when items are provided, false when using JSX children
123
140
  */
124
141
  sortSelectedToTop?: boolean;
125
- /** Callback called when the popover open state changes */
142
+ /**
143
+ * Callback called when the list shows or hides. Not called on mount, nor
144
+ * while typed text that matches nothing keeps it hidden.
145
+ */
126
146
  onOpenChange?: (isOpen: boolean) => void;
127
147
  }
128
148
  declare const ComboBox: (<T>(props: CubeComboBoxProps<T> & {