@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,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.197.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -17,12 +17,13 @@ import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
17
17
  import { wrapWithField } from "../../form/wrapper.js";
18
18
  import { GripVerticalIcon } from "../../../icons/GripVerticalIcon.js";
19
19
  import { createMockDragState } from "../../shared/DraggableCollection.js";
20
+ import { useOptionOriginPress } from "../option-origin-press.js";
20
21
  import { DraggableListBox } from "./DraggableListBox.js";
21
22
  import { c } from "react/compiler-runtime";
22
23
  import { BASE_STYLES, COLOR_STYLES, OUTER_STYLES, mergeStyles, tasty } from "@tenphi/tasty";
23
- import { forwardRef, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
24
+ import { forwardRef, useEffect, useLayoutEffect, useMemo, useRef } from "react";
24
25
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
25
- import { useDraggableItem, useDropIndicator, useKeyboard, useListBox, useListBoxSection, useOption } from "react-aria";
26
+ import { mergeProps, useDraggableItem, useDropIndicator, useFocusRing, useKeyboard, useListBox, useListBoxSection, useOption } from "react-aria";
26
27
  import { Section, useListState } from "react-stately";
27
28
  import { useHover as useHover$1 } from "@react-aria/interactions";
28
29
  import { IconMinus } from "@tabler/icons-react";
@@ -65,12 +66,15 @@ const ListElement = tasty({
65
66
  styles: {
66
67
  "$list-gap": "1bw",
67
68
  display: "block",
68
- padding: ".5x bottom",
69
+ padding: {
70
+ "": ".5x bottom",
71
+ empty: 0
72
+ },
69
73
  listStyle: "none",
70
74
  boxSizing: "content-box",
71
75
  margin: {
72
76
  "": ".5x .5x 0 .5x",
73
- "[data-shape=\"plain\"]": "0"
77
+ "[data-shape=\"plain\"] | empty": "0"
74
78
  },
75
79
  height: "max-content"
76
80
  }
@@ -223,79 +227,217 @@ const PROP_STYLES = [
223
227
  ...OUTER_STYLES,
224
228
  ...COLOR_STYLES
225
229
  ];
226
- const SelectAllOption = ({ label, isSelected, isIndeterminate, isDisabled, isCheckable, size = "medium", state, lastFocusSourceRef, onClick, allValueProps = {} }) => {
230
+ /** A collection with no options, for a list state that isn't needed. */
231
+ const NO_OPTIONS = {
232
+ children: [],
233
+ selectionMode: "none"
234
+ };
235
+ /**
236
+ * The "Select All" row: a tri-state checkbox above the list rather than an
237
+ * option in it, since it acts on the options instead of being one. Being
238
+ * outside the listbox keeps the listbox's children to options and groups, and
239
+ * makes it a Tab stop of its own, which a list in virtual focus (searchable
240
+ * lists) could not offer as an option.
241
+ */
242
+ const SelectAllOption = (t0) => {
243
+ const $ = c(41);
244
+ const { label, isSelected, isIndeterminate, isDisabled, isCheckable, size: t1, onClick, focusProps, allValueProps: t2 } = t0;
245
+ const size = t1 === void 0 ? "medium" : t1;
246
+ const allValueProps = t2 === void 0 ? {} : t2;
227
247
  const { t } = useI18n();
228
- const { hoverProps, isHovered } = useHover$1({ isDisabled });
229
- const resolvedLabel = label === "" || label === void 0 || label === null ? t("listBox.selectAll", "Select All") : label;
230
- const markIcon = isIndeterminate ? /* @__PURE__ */ jsx(Icon, {
231
- size: 12,
232
- stroke: 3,
233
- "aria-hidden": "true",
234
- children: /* @__PURE__ */ jsx(IconMinus, {})
235
- }) : /* @__PURE__ */ jsx(CheckIcon, {
236
- size: 12,
237
- stroke: 3
238
- });
239
- const localRef = useRef(null);
240
- const checkboxIcon = useMemo(() => {
241
- if (!isCheckable) return null;
242
- return /* @__PURE__ */ jsx(ListBoxCheckboxWrapper, {
248
+ let t3;
249
+ if ($[0] !== isDisabled) {
250
+ t3 = { isDisabled };
251
+ $[0] = isDisabled;
252
+ $[1] = t3;
253
+ } else t3 = $[1];
254
+ const { hoverProps, isHovered } = useHover$1(t3);
255
+ const { focusProps: focusRingProps, isFocusVisible } = useFocusRing();
256
+ let t4;
257
+ if ($[2] !== label || $[3] !== t) {
258
+ t4 = label === "" || label === void 0 || label === null ? t("listBox.selectAll", "Select All") : label;
259
+ $[2] = label;
260
+ $[3] = t;
261
+ $[4] = t4;
262
+ } else t4 = $[4];
263
+ const resolvedLabel = t4;
264
+ let t5;
265
+ if ($[5] !== isIndeterminate) {
266
+ t5 = isIndeterminate ? /* @__PURE__ */ jsx(Icon, {
267
+ size: 12,
268
+ stroke: 3,
269
+ "aria-hidden": "true",
270
+ children: /* @__PURE__ */ jsx(IconMinus, {})
271
+ }) : /* @__PURE__ */ jsx(CheckIcon, {
272
+ size: 12,
273
+ stroke: 3
274
+ });
275
+ $[5] = isIndeterminate;
276
+ $[6] = t5;
277
+ } else t5 = $[6];
278
+ const markIcon = t5;
279
+ let t6;
280
+ if ($[7] !== isDisabled || $[8] !== isHovered || $[9] !== isIndeterminate || $[10] !== isSelected) {
281
+ t6 = {
282
+ selected: isSelected,
283
+ disabled: isDisabled,
284
+ hovered: isHovered,
285
+ indeterminate: isIndeterminate
286
+ };
287
+ $[7] = isDisabled;
288
+ $[8] = isHovered;
289
+ $[9] = isIndeterminate;
290
+ $[10] = isSelected;
291
+ $[11] = t6;
292
+ } else t6 = $[11];
293
+ const checkboxMods = t6;
294
+ let t7;
295
+ if ($[12] !== checkboxMods || $[13] !== isCheckable || $[14] !== isIndeterminate || $[15] !== isSelected || $[16] !== markIcon) {
296
+ t7 = isCheckable ? /* @__PURE__ */ jsx(ListBoxCheckboxWrapper, {
243
297
  "data-element": "CheckboxWrapper",
244
- mods: {
245
- selected: isSelected,
246
- disabled: isDisabled,
247
- hovered: isHovered,
248
- indeterminate: isIndeterminate
249
- },
298
+ mods: checkboxMods,
250
299
  children: /* @__PURE__ */ jsx(ListBoxCheckbox, {
251
300
  "data-element": "Checkbox",
252
- mods: {
253
- selected: isSelected,
254
- disabled: isDisabled,
255
- hovered: isHovered,
256
- indeterminate: isIndeterminate
257
- },
301
+ mods: checkboxMods,
258
302
  children: (isIndeterminate || isSelected) && markIcon
259
303
  })
260
- });
261
- }, [
262
- isCheckable,
263
- isSelected,
264
- isDisabled,
265
- isHovered,
266
- isIndeterminate,
267
- markIcon
268
- ]);
269
- const handleOptionClick = (e) => {
270
- if (lastFocusSourceRef) lastFocusSourceRef.current = "mouse";
271
- if (state.selectionManager.selectionMode === "multiple") {
272
- const clickTarget = e.target;
273
- const checkboxElement = localRef.current?.querySelector("[data-element=\"CheckboxWrapper\"]");
274
- if (checkboxElement && (checkboxElement === clickTarget || checkboxElement.contains(clickTarget))) onClick?.(false);
275
- else onClick?.(true);
276
- } else onClick?.(true);
277
- };
278
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ListBoxItem, {
279
- ref: localRef,
280
- "data-size": size,
281
- size,
282
- role: "option",
283
- "aria-selected": isSelected,
284
- isSelected,
285
- isDisabled,
286
- icon: checkboxIcon,
287
- mods: {
304
+ }) : null;
305
+ $[12] = checkboxMods;
306
+ $[13] = isCheckable;
307
+ $[14] = isIndeterminate;
308
+ $[15] = isSelected;
309
+ $[16] = markIcon;
310
+ $[17] = t7;
311
+ } else t7 = $[17];
312
+ const checkboxIcon = t7;
313
+ let t8;
314
+ if ($[18] !== onClick) {
315
+ t8 = (e) => {
316
+ onClick(!e.currentTarget.querySelector("[data-element=\"CheckboxWrapper\"]")?.contains(e.target));
317
+ };
318
+ $[18] = onClick;
319
+ $[19] = t8;
320
+ } else t8 = $[19];
321
+ const handleClick = t8;
322
+ let t9;
323
+ if ($[20] !== onClick) {
324
+ t9 = (e_0) => {
325
+ if (e_0.key !== " ") return;
326
+ e_0.preventDefault();
327
+ e_0.stopPropagation();
328
+ onClick(false);
329
+ };
330
+ $[20] = onClick;
331
+ $[21] = t9;
332
+ } else t9 = $[21];
333
+ const handleKeyDown = t9;
334
+ const T0 = ListBoxItem;
335
+ const t10 = "div";
336
+ const t11 = "checkbox";
337
+ const t12 = isIndeterminate ? "mixed" : isSelected;
338
+ let t13;
339
+ if ($[22] !== isCheckable || $[23] !== isDisabled || $[24] !== isFocusVisible || $[25] !== isHovered || $[26] !== isIndeterminate || $[27] !== isSelected) {
340
+ t13 = {
288
341
  listboxitem: true,
342
+ selected: isSelected,
289
343
  disabled: isDisabled,
290
344
  checkable: isCheckable,
291
345
  hovered: isHovered,
346
+ focused: isFocusVisible,
292
347
  indeterminate: isIndeterminate,
293
348
  all: true
294
- },
295
- ...mergeProps$1(hoverProps, allValueProps, { onClick: handleOptionClick }),
296
- children: resolvedLabel
297
- }), /* @__PURE__ */ jsx(StyledDivider, {})] });
349
+ };
350
+ $[22] = isCheckable;
351
+ $[23] = isDisabled;
352
+ $[24] = isFocusVisible;
353
+ $[25] = isHovered;
354
+ $[26] = isIndeterminate;
355
+ $[27] = isSelected;
356
+ $[28] = t13;
357
+ } else t13 = $[28];
358
+ const t14 = mergeProps$1(hoverProps, focusRingProps, focusProps, allValueProps, {
359
+ tabIndex: isDisabled ? void 0 : 0,
360
+ onClick: handleClick,
361
+ onKeyDown: handleKeyDown
362
+ });
363
+ let t15;
364
+ if ($[29] !== T0 || $[30] !== checkboxIcon || $[31] !== isDisabled || $[32] !== resolvedLabel || $[33] !== size || $[34] !== t12 || $[35] !== t13 || $[36] !== t14) {
365
+ t15 = /* @__PURE__ */ jsx(T0, {
366
+ as: t10,
367
+ role: t11,
368
+ "aria-checked": t12,
369
+ "data-size": size,
370
+ size,
371
+ isDisabled,
372
+ icon: checkboxIcon,
373
+ mods: t13,
374
+ ...t14,
375
+ children: resolvedLabel
376
+ });
377
+ $[29] = T0;
378
+ $[30] = checkboxIcon;
379
+ $[31] = isDisabled;
380
+ $[32] = resolvedLabel;
381
+ $[33] = size;
382
+ $[34] = t12;
383
+ $[35] = t13;
384
+ $[36] = t14;
385
+ $[37] = t15;
386
+ } else t15 = $[37];
387
+ let t16;
388
+ if ($[38] === Symbol.for("react.memo_cache_sentinel")) {
389
+ t16 = /* @__PURE__ */ jsx(StyledDivider, {
390
+ as: "div",
391
+ role: "presentation"
392
+ });
393
+ $[38] = t16;
394
+ } else t16 = $[38];
395
+ let t17;
396
+ if ($[39] !== t15) {
397
+ t17 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t15, t16] });
398
+ $[39] = t15;
399
+ $[40] = t17;
400
+ } else t17 = $[40];
401
+ return t17;
298
402
  };
403
+ /** The keys of the options a user can select in a collection: not disabled. */
404
+ function getSelectableKeys(collection, disabledKeys) {
405
+ const keys = [];
406
+ for (const key of collection.getKeys()) {
407
+ const node = collection.getItem(key);
408
+ if (node?.type === "item" && !disabledKeys.has(key) && !node.props?.isDisabled) keys.push(key);
409
+ }
410
+ return keys;
411
+ }
412
+ /**
413
+ * The selection a "Select All" press leaves. While it isn't checked, the press
414
+ * selects all (`'all'`), or under a filter adds the options shown. Once it is,
415
+ * the press takes the options shown out of the selection: selected options
416
+ * the list doesn't show, hidden by a filter or not among its options, stay.
417
+ * `hiddenKeys` are the selectable options a filter hides.
418
+ */
419
+ function getSelectAllSelection(isAllSelected, selection, shownKeys, hiddenKeys) {
420
+ if (!isAllSelected) return selection === "all" || hiddenKeys.length === 0 ? "all" : new Set([...selection, ...shownKeys]);
421
+ if (selection === "all") return new Set(hiddenKeys);
422
+ const next = new Set(selection);
423
+ for (const key of shownKeys) next.delete(key);
424
+ return next;
425
+ }
426
+ /**
427
+ * Whether every option a user can select is selected, which checks "Select
428
+ * All". Disabled options don't count, and a list with nothing to select is
429
+ * never all selected.
430
+ */
431
+ function isEverySelectableSelected(collection, selectionManager) {
432
+ if (selectionManager.rawSelection === "all") return true;
433
+ let hasSelectable = false;
434
+ for (const key of collection.getKeys()) {
435
+ if (collection.getItem(key)?.type !== "item" || !selectionManager.canSelectItem(key)) continue;
436
+ if (!selectionManager.isSelected(key)) return false;
437
+ hasSelectable = true;
438
+ }
439
+ return hasSelectable;
440
+ }
299
441
  /**
300
442
  * A public selection prop as the Set-based value React Stately expects: a key
301
443
  * array (or `'all'`, passed through) in multiple mode, a single key (or
@@ -318,7 +460,6 @@ const ListBox = forwardRef(function ListBox(props, ref) {
318
460
  } });
319
461
  const { t } = useI18n();
320
462
  let { qa, label, extra, id, labelStyles, isRequired, necessityIndicator, isInvalid, isValid, isDisabled, listStyles, optionStyles, optionHighlight, sectionStyles, headingStyles, listGap, listRef, message, description, styles, mods: externalMods, size = "medium", labelSuffix, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, shouldUseVirtualFocus, isFocusWithin, onSelectionChange, disableSelectionToggle = false, allowDuplicateSelectionEvents, stateRef, focusOnHover, header, footer, headerStyles, footerStyles, onEscape, isCheckable, onOptionClick, showSelectAll, selectAllLabel, allValueProps, filter, emptyLabel = t("listBox.noItems", "No items"), shape = "card", isReorderable = false, onReorder, form, ...otherProps } = props;
321
- const [, forceUpdate] = useState({});
322
463
  const lastSelectedKeyRef = useRef(null);
323
464
  const externalSelectionHandler = onSelectionChange || props.onChange;
324
465
  const wrappedOnSelectionChange = useMemo(() => {
@@ -327,8 +468,8 @@ const ListBox = forwardRef(function ListBox(props, ref) {
327
468
  if (isDisabled) return;
328
469
  if (keys === "all") externalSelectionHandler("all");
329
470
  else if (keys instanceof Set) if (keys.size === 0) {
330
- if (disableSelectionToggle && props.selectionMode === "single") {
331
- const prevKey = lastSelectedKeyRef.current;
471
+ if (disableSelectionToggle && props.selectionMode !== "multiple") {
472
+ const prevKey = selectedKey ?? lastSelectedKeyRef.current;
332
473
  if (prevKey != null) {
333
474
  externalSelectionHandler(prevKey);
334
475
  return;
@@ -350,7 +491,8 @@ const ListBox = forwardRef(function ListBox(props, ref) {
350
491
  externalSelectionHandler,
351
492
  isDisabled,
352
493
  props.selectionMode,
353
- disableSelectionToggle
494
+ disableSelectionToggle,
495
+ selectedKey
354
496
  ]);
355
497
  const listStateProps = {
356
498
  ...props,
@@ -366,46 +508,26 @@ const ListBox = forwardRef(function ListBox(props, ref) {
366
508
  if (selection !== void 0) listStateProps.selectedKeys = toStatelySelection(selection, isMultiple);
367
509
  if (defaultSelection !== void 0) listStateProps.defaultSelectedKeys = toStatelySelection(defaultSelection, isMultiple);
368
510
  const listState = getValueSelectionState(useListState(listStateProps));
511
+ const hasSelectAll = !!showSelectAll && props.selectionMode === "multiple";
512
+ const { collection: fullCollection } = useListState(hasSelectAll && filter ? {
513
+ children: props.children,
514
+ items: props.items,
515
+ selectionMode: "none"
516
+ } : NO_OPTIONS);
369
517
  useLayoutEffect(() => {
370
518
  const selected = listState.selectionManager.selectedKeys;
371
519
  if (selected && selected.size > 0) lastSelectedKeyRef.current = Array.from(selected)[0] ?? null;
372
520
  }, [listState.selectionManager.selectedKeys]);
373
- const selectAllState = useMemo(() => {
374
- if (props.selectionMode !== "multiple" || !showSelectAll) return {
375
- isSelected: false,
376
- isIndeterminate: false
377
- };
378
- if (listState.selectionManager.rawSelection === "all") return {
379
- isSelected: true,
380
- isIndeterminate: false
381
- };
382
- if (listState.selectionManager.selectedKeys.size === 0) return {
383
- isSelected: false,
384
- isIndeterminate: false
385
- };
386
- return {
387
- isSelected: false,
388
- isIndeterminate: true
389
- };
390
- }, [
391
- props.selectionMode,
392
- showSelectAll,
393
- listState.collection,
394
- listState.disabledKeys,
395
- listState.selectionManager.selectedKeys,
396
- listState.selectionManager.rawSelection
397
- ]);
521
+ const isAllSelected = hasSelectAll && isEverySelectableSelected(listState.collection, listState.selectionManager);
522
+ const isSomeSelected = hasSelectAll && !isAllSelected && !listState.selectionManager.isEmpty;
398
523
  const handleSelectAllClick = (propagate) => {
399
- if (isDisabled || props.selectionMode !== "multiple") return;
400
- if (selectAllState.isSelected) {
401
- listState.selectionManager.clearSelection();
402
- wrappedOnSelectionChange?.(/* @__PURE__ */ new Set());
403
- } else {
404
- listState.selectionManager.selectAll();
405
- wrappedOnSelectionChange?.("all");
406
- forceUpdate({});
407
- }
408
- if (propagate && !selectAllState.isSelected) onOptionClick?.("__ALL__");
524
+ if (isDisabled || !hasSelectAll) return;
525
+ const { collection, disabledKeys, selectionManager } = listState;
526
+ const next = getSelectAllSelection(isAllSelected, selectionManager.rawSelection, getSelectableKeys(collection, disabledKeys), getSelectableKeys(fullCollection, disabledKeys).filter((key_1) => !collection.getItem(key_1)));
527
+ if (next === "all") selectionManager.selectAll();
528
+ else if (next.size === 0) selectionManager.clearSelection();
529
+ else selectionManager.setSelectedKeys(next);
530
+ if (propagate && !isAllSelected) onOptionClick?.("__ALL__");
409
531
  };
410
532
  const lastFocusSourceRef = useRef("other");
411
533
  if (stateRef) stateRef.current = {
@@ -427,17 +549,18 @@ const ListBox = forwardRef(function ListBox(props, ref) {
427
549
  const itemsArray = useMemo(() => [...listState.collection], [listState.collection]);
428
550
  const hasSections = useMemo(() => itemsArray.some((i) => i.type === "section"), [itemsArray]);
429
551
  const shouldVirtualize = !hasSections && !isReorderable;
430
- const { listBoxProps } = useListBox({
552
+ const { listBoxProps, labelProps } = useListBox({
431
553
  ...props,
432
554
  id,
433
- "aria-label": props["aria-label"] || label?.toString(),
434
555
  isVirtualized: !isReorderable,
435
556
  shouldUseVirtualFocus: shouldUseVirtualFocus ?? false,
436
557
  escapeKeyBehavior: onEscape ? "none" : "clearSelection",
437
558
  onSelectionChange: wrappedOnSelectionChange
438
559
  }, listState, listRef);
439
560
  const { isFocused, focusProps } = useFocus$1();
440
- const isListFocused = isFocusWithin ?? (shouldUseVirtualFocus || listState.selectionManager.isFocused);
561
+ const { isFocused: isListElementFocused, focusProps: listElementFocusProps } = useFocus$1();
562
+ const { isFocused: isSelectAllFocused, focusProps: selectAllFocusProps } = useFocus$1();
563
+ const isListFocused = !isSelectAllFocused && (isFocusWithin ?? (shouldUseVirtualFocus || listState.selectionManager.isFocused));
441
564
  const scrollRef = useRef(null);
442
565
  const rowVirtualizer = useVirtualizer({
443
566
  count: shouldVirtualize ? itemsArray.length : 0,
@@ -457,14 +580,21 @@ const ListBox = forwardRef(function ListBox(props, ref) {
457
580
  rowVirtualizer,
458
581
  listGap
459
582
  ]);
583
+ const lastFocusedKeyRef = useRef(null);
460
584
  useLayoutEffect(() => {
461
585
  const focusedKey = listState.selectionManager.focusedKey;
586
+ const hasFocusMoved = focusedKey !== lastFocusedKeyRef.current;
587
+ lastFocusedKeyRef.current = focusedKey;
462
588
  if (focusedKey == null) return;
463
- if (lastFocusSourceRef.current !== "keyboard") return;
464
589
  const scrollElement = scrollRef.current;
465
590
  if (!scrollElement) return;
466
591
  const itemElement = scrollElement.querySelector(`[data-key="${CSS.escape(String(focusedKey))}"]`);
467
- if (!itemElement) return;
592
+ if (!itemElement) {
593
+ const index_1 = shouldVirtualize ? itemsArray.findIndex((item) => item.key === focusedKey) : -1;
594
+ if (index_1 !== -1 && hasFocusMoved) rowVirtualizer.scrollToIndex(index_1, { align: "auto" });
595
+ return;
596
+ }
597
+ if (lastFocusSourceRef.current !== "keyboard") return;
468
598
  const scrollTop = scrollElement.scrollTop;
469
599
  const viewportBottom = scrollTop + scrollElement.clientHeight;
470
600
  const itemRect = itemElement.getBoundingClientRect();
@@ -475,33 +605,41 @@ const ListBox = forwardRef(function ListBox(props, ref) {
475
605
  block: "nearest",
476
606
  behavior: "auto"
477
607
  });
478
- }, [listState.selectionManager.focusedKey, itemsArray]);
479
- const mergedListBoxProps = mergeProps$1(listBoxProps, keyboardProps, { "aria-invalid": isInvalid || void 0 });
608
+ }, [
609
+ listState.selectionManager.focusedKey,
610
+ itemsArray,
611
+ shouldVirtualize,
612
+ rowVirtualizer
613
+ ]);
614
+ const mergedListBoxProps = mergeProps$1(listBoxProps, keyboardProps, listElementFocusProps, { "aria-invalid": isInvalid || void 0 });
480
615
  if (isDisabled) delete mergedListBoxProps.tabIndex;
616
+ const isEmpty = listState.collection.size === 0;
617
+ const emptyLabelId = `${listBoxProps.id}-empty`;
618
+ if (isEmpty) mergedListBoxProps["aria-describedby"] = [mergedListBoxProps["aria-describedby"], emptyLabelId].filter(Boolean).join(" ");
481
619
  const orderedKeys = useMemo(() => {
482
620
  if (!isReorderable) return [];
483
621
  return itemsArray.filter((i_0) => i_0.type === "item").map((i_1) => String(i_1.key));
484
622
  }, [isReorderable, itemsArray]);
623
+ const isCardFocused = isFocused || isEmpty && isListElementFocused;
485
624
  const mods = useMemo(() => ({
486
625
  ...getValidationMods({
487
626
  isInvalid,
488
627
  isValid
489
628
  }),
490
629
  disabled: isDisabled,
491
- focused: isFocused,
492
- header: !!header || showSelectAll && props.selectionMode === "multiple",
630
+ focused: isCardFocused,
631
+ header: !!header || hasSelectAll,
493
632
  footer: !!footer,
494
- selectAll: showSelectAll && props.selectionMode === "multiple",
633
+ selectAll: hasSelectAll,
495
634
  ...externalMods
496
635
  }), [
497
636
  isInvalid,
498
637
  isValid,
499
638
  isDisabled,
500
- isFocused,
639
+ isCardFocused,
501
640
  header,
502
641
  footer,
503
- showSelectAll,
504
- props.selectionMode,
642
+ hasSelectAll,
505
643
  externalMods
506
644
  ]);
507
645
  const listGapTokens = listGap == null ? void 0 : { "$list-gap": `${listGap}px` };
@@ -517,29 +655,30 @@ const ListBox = forwardRef(function ListBox(props, ref) {
517
655
  "data-size": size,
518
656
  children: header
519
657
  }) : /* @__PURE__ */ jsx("div", { role: "presentation" }),
520
- showSelectAll && props.selectionMode === "multiple" ? /* @__PURE__ */ jsx(SelectAllOption, {
658
+ hasSelectAll ? /* @__PURE__ */ jsx(SelectAllOption, {
521
659
  label: selectAllLabel,
522
- state: listState,
523
- lastFocusSourceRef,
524
- isSelected: selectAllState.isSelected,
525
- isIndeterminate: selectAllState.isIndeterminate,
660
+ isSelected: isAllSelected,
661
+ isIndeterminate: isSomeSelected,
526
662
  isDisabled,
527
663
  isCheckable,
528
664
  size,
529
665
  allValueProps,
666
+ focusProps: selectAllFocusProps,
530
667
  onClick: handleSelectAllClick
531
668
  }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", { role: "presentation" }), /* @__PURE__ */ jsx("div", { role: "presentation" })] }),
532
- /* @__PURE__ */ jsx(ListBoxScrollElement, {
669
+ /* @__PURE__ */ jsxs(ListBoxScrollElement, {
533
670
  ref: scrollRef,
534
671
  mods,
535
672
  ...focusProps,
536
- children: listState.collection.size === 0 ? /* @__PURE__ */ jsx(_Item, {
673
+ children: [isEmpty && /* @__PURE__ */ jsx(_Item, {
674
+ id: emptyLabelId,
675
+ "aria-hidden": "true",
537
676
  preset: "t4",
538
677
  color: "#dark-03",
539
678
  size,
540
679
  padding: "(.5x - 1bw)",
541
680
  children: emptyLabel
542
- }) : isReorderable ? /* @__PURE__ */ jsx(DraggableListBox, {
681
+ }), isReorderable && !isEmpty ? /* @__PURE__ */ jsx(DraggableListBox, {
543
682
  state: listState,
544
683
  listRef,
545
684
  orderedKeys,
@@ -554,9 +693,9 @@ const ListBox = forwardRef(function ListBox(props, ref) {
554
693
  mods: { sections: false },
555
694
  "data-shape": shape,
556
695
  "data-input-type": "listbox",
557
- children: itemsArray.filter((item) => item.type === "item").map((item_0) => /* @__PURE__ */ jsx(Option, {
696
+ children: itemsArray.filter((item_0) => item_0.type === "item").map((item_1) => /* @__PURE__ */ jsx(Option, {
558
697
  size,
559
- item: item_0,
698
+ item: item_1,
560
699
  state: listState,
561
700
  styles: optionStyles,
562
701
  highlight: optionHighlight,
@@ -570,7 +709,7 @@ const ListBox = forwardRef(function ListBox(props, ref) {
570
709
  dragState,
571
710
  dropState,
572
711
  onClick: onOptionClick
573
- }, item_0.key))
712
+ }, item_1.key))
574
713
  })
575
714
  }) : /* @__PURE__ */ jsx(ListElement, {
576
715
  qa: qa || "ListBox",
@@ -579,7 +718,10 @@ const ListBox = forwardRef(function ListBox(props, ref) {
579
718
  styles: listStyles,
580
719
  tokens: listGapTokens,
581
720
  "aria-disabled": isDisabled || void 0,
582
- mods: { sections: hasSections },
721
+ mods: {
722
+ sections: hasSections,
723
+ empty: isEmpty
724
+ },
583
725
  "data-shape": shape,
584
726
  "data-input-type": "listbox",
585
727
  style: shouldVirtualize ? {
@@ -587,10 +729,10 @@ const ListBox = forwardRef(function ListBox(props, ref) {
587
729
  height: `${rowVirtualizer.getTotalSize()}px`
588
730
  } : void 0,
589
731
  children: shouldVirtualize ? rowVirtualizer.getVirtualItems().map((virtualItem) => {
590
- const item_1 = itemsArray[virtualItem.index];
732
+ const item_2 = itemsArray[virtualItem.index];
591
733
  return /* @__PURE__ */ jsx(Option, {
592
734
  size,
593
- item: item_1,
735
+ item: item_2,
594
736
  state: listState,
595
737
  styles: optionStyles,
596
738
  highlight: optionHighlight,
@@ -611,17 +753,14 @@ const ListBox = forwardRef(function ListBox(props, ref) {
611
753
  virtualIndex: virtualItem.index,
612
754
  lastFocusSourceRef,
613
755
  onClick: onOptionClick
614
- }, item_1.key);
756
+ }, item_2.key);
615
757
  }) : (() => {
616
758
  const renderedItems = [];
617
759
  let isFirstSection = true;
618
- for (const item_2 of listState.collection) if (item_2.type === "section") {
619
- if (!isFirstSection) renderedItems.push(/* @__PURE__ */ jsx(StyledDivider, {
620
- role: "separator",
621
- "aria-orientation": "horizontal"
622
- }, `divider-${String(item_2.key)}`));
760
+ for (const item_3 of listState.collection) if (item_3.type === "section") {
761
+ if (!isFirstSection) renderedItems.push(/* @__PURE__ */ jsx(StyledDivider, { role: "presentation" }, `divider-${String(item_3.key)}`));
623
762
  renderedItems.push(/* @__PURE__ */ jsx(ListBoxSection, {
624
- item: item_2,
763
+ item: item_3,
625
764
  state: listState,
626
765
  optionStyles,
627
766
  optionHighlight,
@@ -636,11 +775,11 @@ const ListBox = forwardRef(function ListBox(props, ref) {
636
775
  size,
637
776
  lastFocusSourceRef,
638
777
  onClick: onOptionClick
639
- }, item_2.key));
778
+ }, item_3.key));
640
779
  isFirstSection = false;
641
780
  } else renderedItems.push(/* @__PURE__ */ jsx(Option, {
642
781
  size,
643
- item: item_2,
782
+ item: item_3,
644
783
  state: listState,
645
784
  styles: optionStyles,
646
785
  highlight: optionHighlight,
@@ -652,10 +791,10 @@ const ListBox = forwardRef(function ListBox(props, ref) {
652
791
  isCheckable,
653
792
  lastFocusSourceRef,
654
793
  onClick: onOptionClick
655
- }, item_2.key));
794
+ }, item_3.key));
656
795
  return renderedItems;
657
796
  })()
658
- })
797
+ })]
659
798
  }),
660
799
  footer ? /* @__PURE__ */ jsx(StyledFooter, {
661
800
  styles: footerStyles,
@@ -663,7 +802,10 @@ const ListBox = forwardRef(function ListBox(props, ref) {
663
802
  children: footer
664
803
  }) : /* @__PURE__ */ jsx("div", { role: "presentation" })
665
804
  ]
666
- }), ref, props);
805
+ }), ref, {
806
+ ...props,
807
+ labelProps: mergeProps(labelProps, props.labelProps)
808
+ });
667
809
  });
668
810
  function Option({ size = "medium", item, state, styles, highlight, isParentDisabled, isInvalid, isValid, focusOnHover = false, isListFocused = false, isCheckable, onClick: onOptionClick, virtualStyle, virtualRef, virtualIndex, lastFocusSourceRef, dragState, dropState }) {
669
811
  const localRef = useRef(null);
@@ -712,18 +854,26 @@ function Option({ size = "medium", item, state, styles, highlight, isParentDisab
712
854
  isValid,
713
855
  filteredItemProps.icon
714
856
  ]);
715
- const handleOptionExtras = (e) => {
857
+ const runOptionExtras = (target) => {
716
858
  if (lastFocusSourceRef) lastFocusSourceRef.current = "mouse";
717
859
  state.selectionManager.setFocusedKey(item.key);
718
860
  if (!onOptionClick) return;
719
861
  if (isCheckable && state.selectionManager.selectionMode === "multiple") {
720
- const clickTarget = e.target;
862
+ const clickTarget = target;
721
863
  const checkboxElement = localRef.current?.querySelector("[data-element=\"CheckboxWrapper\"]");
722
864
  if (checkboxElement && (checkboxElement === clickTarget || checkboxElement.contains(clickTarget))) return;
723
865
  }
724
866
  onOptionClick(item.key);
725
867
  };
726
- const { onKeyDown, onKeyUp, tabIndex, "aria-selected": ariaSelected, "aria-disabled": ariaDisabled, role, ...filteredOptionProps } = filterSelectionItemProps(optionProps);
868
+ const handleOptionExtras = (e) => runOptionExtras(e.target);
869
+ const originPress = useOptionOriginPress({
870
+ key: item.key,
871
+ ref: localRef,
872
+ manager: state.selectionManager,
873
+ isDisabled,
874
+ onSettle: runOptionExtras
875
+ });
876
+ const { onKeyDown, onKeyUp, onPointerUp, tabIndex, "aria-selected": ariaSelected, "aria-disabled": ariaDisabled, role, ...filteredOptionProps } = filterSelectionItemProps(optionProps);
727
877
  const theme = getValidationTheme("default", {
728
878
  isInvalid,
729
879
  isValid
@@ -735,6 +885,8 @@ function Option({ size = "medium", item, state, styles, highlight, isParentDisab
735
885
  onClick: handleOptionExtras,
736
886
  onKeyDown,
737
887
  onKeyUp,
888
+ onPointerDown: originPress.onPointerDown,
889
+ onPointerUp: originPress.wrapPointerUp(onPointerUp),
738
890
  tabIndex,
739
891
  "aria-selected": ariaSelected,
740
892
  "aria-disabled": ariaDisabled,