@cube-dev/ui-kit 0.0.0-canary-bef9600 → 0.0.0-canary-e3f8a1a

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 (654) hide show
  1. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  2. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  3. package/dist/_internal/hooks/use-event.js +1 -1
  4. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  5. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  6. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  7. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  8. package/dist/_internal/hooks/use-warn.js +1 -1
  9. package/dist/components/Block.js +1 -1
  10. package/dist/components/CollectionItem.js +1 -1
  11. package/dist/components/GlobalStyles.js +1 -1
  12. package/dist/components/GridProvider.js +1 -1
  13. package/dist/components/HiddenInput.js +1 -1
  14. package/dist/components/Root.js +1 -1
  15. package/dist/components/actions/Action/Action.js +1 -1
  16. package/dist/components/actions/Banner/Banner.js +1 -1
  17. package/dist/components/actions/Button/Button.js +11 -5
  18. package/dist/components/actions/Button/Button.js.map +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +27 -25
  25. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  28. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  29. package/dist/components/actions/Link/Link.js +1 -1
  30. package/dist/components/actions/Menu/Menu.js +1 -1
  31. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  32. package/dist/components/actions/Menu/MenuItem.js +1 -1
  33. package/dist/components/actions/Menu/MenuSection.js +1 -1
  34. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/dist/components/actions/Menu/context.js +1 -1
  38. package/dist/components/actions/Menu/styled.js +1 -4
  39. package/dist/components/actions/Menu/styled.js.map +1 -1
  40. package/dist/components/actions/actions-run.js +1 -1
  41. package/dist/components/actions/index.js +1 -1
  42. package/dist/components/actions/use-action.js +1 -1
  43. package/dist/components/actions/use-anchored-menu.js +1 -1
  44. package/dist/components/actions/use-context-menu.js +1 -1
  45. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  46. package/dist/components/content/Alert/Alert.js +1 -1
  47. package/dist/components/content/Alert/use-alert.js +1 -1
  48. package/dist/components/content/Avatar/Avatar.js +1 -1
  49. package/dist/components/content/Badge/Badge.js +1 -1
  50. package/dist/components/content/Card/Card.js +1 -1
  51. package/dist/components/content/Content.js +1 -1
  52. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  53. package/dist/components/content/CopySnippet/CopySnippet.d.ts +4 -4
  54. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  55. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  56. package/dist/components/content/Divider.js +1 -1
  57. package/dist/components/content/Footer.js +1 -1
  58. package/dist/components/content/Header.js +1 -1
  59. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  60. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  61. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  62. package/dist/components/content/Item/Item.js +3 -3
  63. package/dist/components/content/Item/Item.js.map +1 -1
  64. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  65. package/dist/components/content/ItemBadge/ItemBadge.js +7 -3
  66. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  67. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  68. package/dist/components/content/Layout/GridLayout.js +1 -1
  69. package/dist/components/content/Layout/Layout.js +28 -15
  70. package/dist/components/content/Layout/Layout.js.map +1 -1
  71. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  72. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  73. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  74. package/dist/components/content/Layout/LayoutContent.js +1 -1
  75. package/dist/components/content/Layout/LayoutContext.js +20 -10
  76. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  77. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  78. package/dist/components/content/Layout/LayoutFooter.js +12 -9
  79. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  80. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  81. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  82. package/dist/components/content/Layout/LayoutPane.js +1 -1
  83. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  84. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  85. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  86. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  87. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  88. package/dist/components/content/Layout/index.js +1 -1
  89. package/dist/components/content/Layout/utils.js +1 -1
  90. package/dist/components/content/Paragraph.js +1 -1
  91. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  92. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  93. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  94. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  95. package/dist/components/content/Result/Result.js +1 -1
  96. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  97. package/dist/components/content/Tag/Tag.js +1 -1
  98. package/dist/components/content/Text.d.ts +14 -14
  99. package/dist/components/content/Text.js +1 -1
  100. package/dist/components/content/TextItem/TextItem.js +1 -1
  101. package/dist/components/content/Title.js +1 -1
  102. package/dist/components/content/Tree/Tree.js +1 -1
  103. package/dist/components/content/Tree/TreeNode.js +1 -1
  104. package/dist/components/content/Tree/styled.js +1 -1
  105. package/dist/components/content/Tree/tree-index.js +1 -1
  106. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  107. package/dist/components/content/Tree/use-load-data.js +1 -1
  108. package/dist/components/content/highlightText.js +1 -1
  109. package/dist/components/content/use-auto-tooltip.js +3 -3
  110. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  111. package/dist/components/data/DataTable/DataTable.js +1 -1
  112. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  113. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  114. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  115. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  116. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  117. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  118. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  119. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  120. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  121. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  122. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  123. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  124. package/dist/components/data/TableBase/RowCollection.js +1 -1
  125. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  126. package/dist/components/data/TableBase/TableRow.js +1 -1
  127. package/dist/components/data/TableBase/TableView.js +1 -1
  128. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  129. package/dist/components/data/TableBase/column-header.js +1 -1
  130. package/dist/components/data/TableBase/column-menu.js +1 -1
  131. package/dist/components/data/TableBase/column-styles.js +1 -1
  132. package/dist/components/data/TableBase/column-tint.js +1 -1
  133. package/dist/components/data/TableBase/row-menu.js +1 -1
  134. package/dist/components/data/TableBase/styled.js +1 -1
  135. package/dist/components/data/TableBase/table-tree.js +1 -1
  136. package/dist/components/data/TableBase/types.js +1 -1
  137. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  138. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  139. package/dist/components/data/TableBase/use-column-order.js +1 -1
  140. package/dist/components/data/TableBase/use-column-window.js +1 -1
  141. package/dist/components/data/TableBase/use-container-width.js +1 -1
  142. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  143. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  144. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  145. package/dist/components/data/TableBase/use-table-search.js +1 -1
  146. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  147. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  148. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  149. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  150. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  151. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  152. package/dist/components/fields/Checkbox/Checkbox.js +2 -2
  153. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  154. package/dist/components/fields/Checkbox/CheckboxGroup.js +5 -5
  155. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  156. package/dist/components/fields/Checkbox/context.js +1 -1
  157. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  158. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  159. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  160. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  161. package/dist/components/fields/ComboBox/ComboBox.d.ts +26 -6
  162. package/dist/components/fields/ComboBox/ComboBox.js +1095 -619
  163. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  164. package/dist/components/fields/ComboBox/comboBoxOptions.js +84 -0
  165. package/dist/components/fields/ComboBox/comboBoxOptions.js.map +1 -0
  166. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  167. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  168. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  169. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  170. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  171. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  172. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  173. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  174. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  175. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  176. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  177. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  178. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  179. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  181. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  182. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  183. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  184. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  185. package/dist/components/fields/DatePicker/period.js +1 -1
  186. package/dist/components/fields/DatePicker/props.js +1 -1
  187. package/dist/components/fields/DatePicker/utils.js +1 -1
  188. package/dist/components/fields/FileInput/FileInput.js +1 -1
  189. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  190. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  191. package/dist/components/fields/Input/Input.d.ts +2 -2
  192. package/dist/components/fields/Input/Input.js +2 -2
  193. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  194. package/dist/components/fields/ListBox/ListBox.d.ts +10 -4
  195. package/dist/components/fields/ListBox/ListBox.js +293 -143
  196. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  197. package/dist/components/fields/ListBox/optionId.js +1 -1
  198. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +15 -12
  199. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  200. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  201. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  202. package/dist/components/fields/NumberInput/NumberInput.d.ts +0 -1
  203. package/dist/components/fields/NumberInput/NumberInput.js +136 -128
  204. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  205. package/dist/components/fields/NumberInput/StepButton.js +38 -48
  206. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  207. package/dist/components/fields/PasswordInput/PasswordInput.d.ts +1 -2
  208. package/dist/components/fields/PasswordInput/PasswordInput.js +77 -111
  209. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  210. package/dist/components/fields/Picker/Picker.d.ts +1 -1
  211. package/dist/components/fields/Picker/Picker.js +8 -3
  212. package/dist/components/fields/Picker/Picker.js.map +1 -1
  213. package/dist/components/fields/RadioGroup/Radio.d.ts +8 -8
  214. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  215. package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
  216. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  217. package/dist/components/fields/RadioGroup/context.js +1 -1
  218. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  219. package/dist/components/fields/SearchInput/SearchInput.d.ts +8 -3
  220. package/dist/components/fields/SearchInput/SearchInput.js +22 -29
  221. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  222. package/dist/components/fields/Select/Select.d.ts +12 -1
  223. package/dist/components/fields/Select/Select.js +365 -207
  224. package/dist/components/fields/Select/Select.js.map +1 -1
  225. package/dist/components/fields/Slider/Gradation.js +1 -1
  226. package/dist/components/fields/Slider/HueSlider.js +1 -1
  227. package/dist/components/fields/Slider/RangeSlider.js +3 -4
  228. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  229. package/dist/components/fields/Slider/Slider.js +1 -1
  230. package/dist/components/fields/Slider/SliderBase.js +1 -1
  231. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  232. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  233. package/dist/components/fields/Slider/elements.js +1 -1
  234. package/dist/components/fields/Slider/index.js +1 -1
  235. package/dist/components/fields/Switch/Switch.js +1 -1
  236. package/dist/components/fields/TagInput/TagInput.js +1 -1
  237. package/dist/components/fields/TagInput/TagList.js +1 -1
  238. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  239. package/dist/components/fields/TagInput/useTagError.js +1 -1
  240. package/dist/components/fields/TextArea/TextArea.d.ts +0 -1
  241. package/dist/components/fields/TextArea/TextArea.js +49 -63
  242. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  243. package/dist/components/fields/TextInput/TextInput.d.ts +1 -1
  244. package/dist/components/fields/TextInput/TextInput.js +42 -46
  245. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  246. package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -2
  247. package/dist/components/fields/TextInput/TextInputBase.js +32 -10
  248. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  249. package/dist/components/fields/TextInput/displayed-validation.js +50 -0
  250. package/dist/components/fields/TextInput/displayed-validation.js.map +1 -0
  251. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  252. package/dist/components/fields/TextInputMapper/TextInputMapper.js +2 -2
  253. package/dist/components/fields/TriggerActions.js +1 -1
  254. package/dist/components/fields/color/ColorPanel.js +1 -1
  255. package/dist/components/fields/color/channels.js +1 -1
  256. package/dist/components/fields/color/color.js +1 -1
  257. package/dist/components/fields/color/context.js +1 -1
  258. package/dist/components/fields/index.d.ts +2 -2
  259. package/dist/components/fields/option-origin-press.js +78 -0
  260. package/dist/components/fields/option-origin-press.js.map +1 -0
  261. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  262. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  263. package/dist/components/form/Form/Field.js +1 -1
  264. package/dist/components/form/Form/Form.js +1 -1
  265. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  266. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  267. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  268. package/dist/components/form/Form/SubmitError.js +1 -1
  269. package/dist/components/form/Form/backend.js +1 -1
  270. package/dist/components/form/Form/index.js +1 -1
  271. package/dist/components/form/Form/modern/actions.js +1 -1
  272. package/dist/components/form/Form/modern/context.js +1 -1
  273. package/dist/components/form/Form/modern/controller.js +1 -1
  274. package/dist/components/form/Form/modern/field-binding.js +1 -1
  275. package/dist/components/form/Form/modern/field.js +1 -1
  276. package/dist/components/form/Form/modern/react.js +1 -1
  277. package/dist/components/form/Form/modern/store.js +1 -1
  278. package/dist/components/form/Form/modern/validation.js +1 -1
  279. package/dist/components/form/Form/modern/values.js +1 -1
  280. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  281. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  282. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  283. package/dist/components/form/Form/use-field/use-field.js +1 -1
  284. package/dist/components/form/Form/use-form.js +1 -1
  285. package/dist/components/form/Form/validation.js +1 -1
  286. package/dist/components/form/Label.js +1 -1
  287. package/dist/components/form/field-chrome.js +1 -1
  288. package/dist/components/form/legacy-tooltip.js +1 -1
  289. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  290. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  291. package/dist/components/form/validation/use-validation-props.js +1 -1
  292. package/dist/components/form/wrapper.js +1 -1
  293. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  294. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  295. package/dist/components/layout/Flex.js +1 -1
  296. package/dist/components/layout/Flow.js +1 -1
  297. package/dist/components/layout/Grid.js +1 -1
  298. package/dist/components/layout/Panel.js +1 -1
  299. package/dist/components/layout/Prefix.js +1 -1
  300. package/dist/components/layout/ResizablePanel.js +1 -1
  301. package/dist/components/layout/Space.js +1 -1
  302. package/dist/components/layout/Suffix.js +1 -1
  303. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  304. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  305. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  306. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  307. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  308. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  309. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  310. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  311. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  312. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  313. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  314. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  315. package/dist/components/navigation/Tabs/styled.js +1 -1
  316. package/dist/components/navigation/Tabs/types.js +1 -1
  317. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  318. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  319. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  320. package/dist/components/other/Calendar/Calendar.js +1 -1
  321. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  322. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  323. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  324. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  325. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  326. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  327. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  328. package/dist/components/other/Calendar/styled.js +1 -1
  329. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  330. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  331. package/dist/components/overlays/AlertDialog/AlertDialog.d.ts +6 -1
  332. package/dist/components/overlays/AlertDialog/AlertDialog.js +3 -2
  333. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  334. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +3 -2
  335. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  336. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  337. package/dist/components/overlays/Dialog/Dialog.js +28 -14
  338. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  339. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  340. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  341. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +7 -3
  342. package/dist/components/overlays/Dialog/DialogTrigger.js +149 -132
  343. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  344. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  345. package/dist/components/overlays/Dialog/context.js +1 -1
  346. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  347. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  348. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  349. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +83 -0
  350. package/dist/components/overlays/Dialog/use-dialog-open-sync.js.map +1 -0
  351. package/dist/components/overlays/Modal/Modal.js +1 -1
  352. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  353. package/dist/components/overlays/Modal/Overlay.js +3 -2
  354. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  355. package/dist/components/overlays/Modal/Popover.js +1 -1
  356. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  357. package/dist/components/overlays/Modal/Tray.js +1 -1
  358. package/dist/components/overlays/Modal/Underlay.js +1 -1
  359. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  360. package/dist/components/overlays/Notifications/Notification.js +1 -1
  361. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  362. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  363. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  364. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  365. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  366. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  367. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  368. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  369. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  370. package/dist/components/overlays/Notifications/index.js +1 -1
  371. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  372. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  373. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  374. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  375. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  376. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  377. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  378. package/dist/components/overlays/Toast/index.js +1 -1
  379. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  380. package/dist/components/overlays/Toast/useToast.js +1 -1
  381. package/dist/components/overlays/Tooltip/Tooltip.d.ts +8 -0
  382. package/dist/components/overlays/Tooltip/Tooltip.js +16 -22
  383. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  384. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  385. package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +1 -1
  386. package/dist/components/overlays/Tooltip/TooltipTrigger.js +163 -113
  387. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  388. package/dist/components/overlays/Tooltip/context.js +1 -1
  389. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  390. package/dist/components/overlays/Tooltip/split-trigger-props.js +6 -5
  391. package/dist/components/overlays/Tooltip/split-trigger-props.js.map +1 -1
  392. package/dist/components/portal/Portal.js +1 -1
  393. package/dist/components/portal/PortalProvider.js +1 -1
  394. package/dist/components/portal/usePortal.js +1 -1
  395. package/dist/components/shared/DraggableCollection.js +1 -1
  396. package/dist/components/shared/InvalidIcon.js +1 -1
  397. package/dist/components/shared/ValidIcon.js +1 -1
  398. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  399. package/dist/components/status/Spin/Cube.js +1 -1
  400. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  401. package/dist/components/status/Spin/Spin.js +1 -1
  402. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  403. package/dist/data/item-themes.js +1 -1
  404. package/dist/data/themes.js +1 -1
  405. package/dist/eslint-plugin/defaults.generated.js +11 -17
  406. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  407. package/dist/eslint-plugin/index.js +1 -1
  408. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  409. package/dist/i18n/I18nProvider.js +1 -1
  410. package/dist/i18n/createFormatter.js +1 -1
  411. package/dist/i18n/index.js +1 -1
  412. package/dist/i18n/instance.js +1 -1
  413. package/dist/i18n/locales/de-DE/uikit.js +6 -4
  414. package/dist/i18n/locales/en-US/uikit.js +6 -4
  415. package/dist/i18n/locales/en-US/uikit.json.d.ts +3 -1
  416. package/dist/i18n/locales/es-ES/uikit.js +6 -4
  417. package/dist/i18n/locales/es-MX/uikit.js +6 -4
  418. package/dist/i18n/locales/fr-FR/uikit.js +6 -4
  419. package/dist/i18n/locales/it-IT/uikit.js +6 -4
  420. package/dist/i18n/locales/ja-JP/uikit.js +6 -4
  421. package/dist/i18n/locales/nb-NO/uikit.js +6 -4
  422. package/dist/i18n/locales/pt-BR/uikit.js +6 -4
  423. package/dist/i18n/locales/pt-PT/uikit.js +6 -4
  424. package/dist/i18n/locales/sv-SE/uikit.js +6 -4
  425. package/dist/i18n/locales/vi-VN/uikit.js +6 -4
  426. package/dist/i18n/locales.js +1 -1
  427. package/dist/i18n/namespace.js +1 -1
  428. package/dist/i18n/useFormatter.js +1 -1
  429. package/dist/i18n/useI18n.js +1 -1
  430. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  431. package/dist/icons/AdjustmentsIcon.js +1 -1
  432. package/dist/icons/AiIcon.js +1 -1
  433. package/dist/icons/AreaChartIcon.js +1 -1
  434. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  435. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  436. package/dist/icons/BackwardIcon.js +1 -1
  437. package/dist/icons/BarChartIcon.js +1 -1
  438. package/dist/icons/BellFilledIcon.js +1 -1
  439. package/dist/icons/BellIcon.js +1 -1
  440. package/dist/icons/BooleanIcon.js +1 -1
  441. package/dist/icons/CalendarEditIcon.js +1 -1
  442. package/dist/icons/CalendarIcon.js +1 -1
  443. package/dist/icons/CaretDownIcon.js +1 -1
  444. package/dist/icons/CaretUpIcon.js +1 -1
  445. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  446. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  447. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  448. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  449. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  450. package/dist/icons/ChartBarLineIcon.js +1 -1
  451. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  452. package/dist/icons/ChartBarStackedIcon.js +1 -1
  453. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  454. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  455. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  456. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  457. package/dist/icons/ChartBubbleIcon.js +1 -1
  458. package/dist/icons/ChartDonut2Icon.js +1 -1
  459. package/dist/icons/ChartFunnelIcon.js +1 -1
  460. package/dist/icons/ChartHeatmapIcon.js +1 -1
  461. package/dist/icons/ChartKPIIcon.js +1 -1
  462. package/dist/icons/ChartPie2Icon.js +1 -1
  463. package/dist/icons/ChartScatterIcon.js +1 -1
  464. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  465. package/dist/icons/CheckCircleIcon.js +1 -1
  466. package/dist/icons/CheckIcon.js +1 -1
  467. package/dist/icons/CircleFilledIcon.js +1 -1
  468. package/dist/icons/ClearIcon.js +1 -1
  469. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  470. package/dist/icons/CloseCircleIcon.js +1 -1
  471. package/dist/icons/CloseIcon.js +1 -1
  472. package/dist/icons/CodeIcon.js +1 -1
  473. package/dist/icons/ColumnTotalIcon.js +1 -1
  474. package/dist/icons/CopyIcon.js +1 -1
  475. package/dist/icons/CountIcon.js +1 -1
  476. package/dist/icons/CubeIcon.js +1 -1
  477. package/dist/icons/CubePauseIcon.js +1 -1
  478. package/dist/icons/CubePlayIcon.js +1 -1
  479. package/dist/icons/CurrencyDollarIcon.js +1 -1
  480. package/dist/icons/DangerIcon.js +1 -1
  481. package/dist/icons/DashboardIcon.js +1 -1
  482. package/dist/icons/DatabaseIcon.js +1 -1
  483. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  484. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  485. package/dist/icons/DirectionIcon.js +1 -1
  486. package/dist/icons/DonutIcon.js +1 -1
  487. package/dist/icons/DownIcon.js +1 -1
  488. package/dist/icons/EditIcon.js +1 -1
  489. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  490. package/dist/icons/ExclamationCircleIcon.js +1 -1
  491. package/dist/icons/ExclamationIcon.js +1 -1
  492. package/dist/icons/EyeIcon.js +1 -1
  493. package/dist/icons/EyeInvisibleIcon.js +1 -1
  494. package/dist/icons/FilterIcon.js +1 -1
  495. package/dist/icons/FolderFilledIcon.js +1 -1
  496. package/dist/icons/FolderIcon.js +1 -1
  497. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  498. package/dist/icons/FolderOpenIcon.js +1 -1
  499. package/dist/icons/ForwardIcon.js +1 -1
  500. package/dist/icons/GripVerticalIcon.js +1 -1
  501. package/dist/icons/HierarchyIcon.js +1 -1
  502. package/dist/icons/HierarchyOpenIcon.js +1 -1
  503. package/dist/icons/Icon.js +1 -1
  504. package/dist/icons/InfoCircleIcon.js +1 -1
  505. package/dist/icons/InfoIcon.js +1 -1
  506. package/dist/icons/KeyIcon.js +1 -1
  507. package/dist/icons/LeftIcon.js +1 -1
  508. package/dist/icons/LineChartIcon.js +1 -1
  509. package/dist/icons/LoadingIcon.js +1 -1
  510. package/dist/icons/LockFilledIcon.js +1 -1
  511. package/dist/icons/LockIcon.js +1 -1
  512. package/dist/icons/MoreIcon.js +1 -1
  513. package/dist/icons/NotAllowedIcon.js +1 -1
  514. package/dist/icons/Number123Icon.js +1 -1
  515. package/dist/icons/NumberIcon.js +1 -1
  516. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  517. package/dist/icons/PauseCircleIcon.js +1 -1
  518. package/dist/icons/PauseIcon.js +1 -1
  519. package/dist/icons/PercentageIcon.js +1 -1
  520. package/dist/icons/PieChartIcon.js +1 -1
  521. package/dist/icons/PipetteIcon.js +1 -1
  522. package/dist/icons/PlayCircleIcon.js +1 -1
  523. package/dist/icons/PlayIcon.js +1 -1
  524. package/dist/icons/PlusIcon.js +1 -1
  525. package/dist/icons/ProgressBarIcon.js +1 -1
  526. package/dist/icons/ReloadIcon.js +1 -1
  527. package/dist/icons/ReportIcon.js +1 -1
  528. package/dist/icons/ReturnIcon.js +1 -1
  529. package/dist/icons/RightIcon.js +1 -1
  530. package/dist/icons/RowTotalsIcon.js +1 -1
  531. package/dist/icons/SchemeIcon.js +1 -1
  532. package/dist/icons/SearchIcon.js +1 -1
  533. package/dist/icons/SemanticQueryIcon.js +1 -1
  534. package/dist/icons/SettingsIcon.js +1 -1
  535. package/dist/icons/ShieldFilledIcon.js +1 -1
  536. package/dist/icons/ShieldIcon.js +1 -1
  537. package/dist/icons/SlashIcon.js +1 -1
  538. package/dist/icons/SparklesIcon.js +1 -1
  539. package/dist/icons/SqlIcon.js +1 -1
  540. package/dist/icons/StatsIcon.js +1 -1
  541. package/dist/icons/StopIcon.js +1 -1
  542. package/dist/icons/StringIcon.js +1 -1
  543. package/dist/icons/SubtotalsIcon.js +1 -1
  544. package/dist/icons/SwitchIcon.js +1 -1
  545. package/dist/icons/TableIcon.js +1 -1
  546. package/dist/icons/ThumbsDownIcon.js +1 -1
  547. package/dist/icons/ThumbsUpIcon.js +1 -1
  548. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  549. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  550. package/dist/icons/ThunderboltIcon.js +1 -1
  551. package/dist/icons/TimeIcon.js +1 -1
  552. package/dist/icons/TrashIcon.js +1 -1
  553. package/dist/icons/UnlockIcon.js +1 -1
  554. package/dist/icons/UpIcon.js +1 -1
  555. package/dist/icons/UserGroupIcon.js +1 -1
  556. package/dist/icons/UserIcon.js +1 -1
  557. package/dist/icons/UserLockIcon.js +1 -1
  558. package/dist/icons/ViewIcon.js +1 -1
  559. package/dist/icons/WarningFilledIcon.js +1 -1
  560. package/dist/icons/WarningIcon.js +1 -1
  561. package/dist/icons/wrap-icon.js +1 -1
  562. package/dist/index.d.ts +1 -1
  563. package/dist/index.js +2 -2
  564. package/dist/probe/canonicalize.js +1 -1
  565. package/dist/probe/css.js +1 -1
  566. package/dist/probe/index.js +1 -1
  567. package/dist/provider.js +1 -1
  568. package/dist/providers/TrackingProvider.js +1 -1
  569. package/dist/providers/navigation-url.js +1 -1
  570. package/dist/providers/navigationAdapter.default.js +1 -1
  571. package/dist/providers/use-navigation.js +1 -1
  572. package/dist/tokens/all-tokens.js +1 -1
  573. package/dist/tokens/base.js +1 -1
  574. package/dist/tokens/color-seed.js +1 -1
  575. package/dist/tokens/color-theme.js +1 -1
  576. package/dist/tokens/colors.js +1 -1
  577. package/dist/tokens/layout.js +1 -1
  578. package/dist/tokens/lazy-styles.js +1 -1
  579. package/dist/tokens/legacy-color.js +1 -1
  580. package/dist/tokens/palette-config.js +1 -1
  581. package/dist/tokens/palette.js +1 -1
  582. package/dist/tokens/resolve.js +1 -1
  583. package/dist/tokens/shadows.js +1 -1
  584. package/dist/tokens/sizes.js +1 -1
  585. package/dist/tokens/spacing.js +1 -1
  586. package/dist/tokens/typography.js +1 -1
  587. package/dist/utils/ResizeSensor.js +1 -1
  588. package/dist/utils/colors.js +1 -1
  589. package/dist/utils/dotize.js +1 -1
  590. package/dist/utils/is-dev-env.js +1 -1
  591. package/dist/utils/modules.js +1 -1
  592. package/dist/utils/promise.js +1 -1
  593. package/dist/utils/raf.js +1 -1
  594. package/dist/utils/random.js +1 -1
  595. package/dist/utils/range.js +1 -1
  596. package/dist/utils/react/RenderCache.js +1 -1
  597. package/dist/utils/react/Slots.js +1 -1
  598. package/dist/utils/react/chain.js +1 -1
  599. package/dist/utils/react/disabledProps.js +1 -1
  600. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  601. package/dist/utils/react/index.js +1 -1
  602. package/dist/utils/react/interactions.js +1 -1
  603. package/dist/utils/react/isTextOnly.js +1 -1
  604. package/dist/utils/react/mapProps.js +1 -1
  605. package/dist/utils/react/mergeProps.js +1 -1
  606. package/dist/utils/react/nullableValue.js +18 -9
  607. package/dist/utils/react/nullableValue.js.map +1 -1
  608. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  609. package/dist/utils/react/programmaticFocus.js +1 -1
  610. package/dist/utils/react/resolveIcon.js +1 -1
  611. package/dist/utils/react/sharedStore.js +1 -1
  612. package/dist/utils/react/useBufferedValue.js +1 -1
  613. package/dist/utils/react/useCombinedRefs.js +1 -1
  614. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  615. package/dist/utils/react/useEventBus.js +1 -1
  616. package/dist/utils/react/useId.js +1 -1
  617. package/dist/utils/react/useIsDarwin.js +1 -1
  618. package/dist/utils/react/useKeySymbols.js +1 -1
  619. package/dist/utils/react/useLayoutEffect.js +1 -1
  620. package/dist/utils/react/useLocalStorage.js +1 -1
  621. package/dist/utils/react/useMergeStyles.js +1 -1
  622. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  623. package/dist/utils/react/usePopoverSync.js +1 -1
  624. package/dist/utils/react/useQaProps.js +1 -1
  625. package/dist/utils/react/useScheme.js +1 -1
  626. package/dist/utils/react/useViewportSize.js +1 -1
  627. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  628. package/dist/utils/selection.js +1 -1
  629. package/dist/utils/styles.js +1 -1
  630. package/dist/utils/tree.js +1 -1
  631. package/dist/utils/warnings.js +1 -1
  632. package/dist/version.js +2 -2
  633. package/docs/components/actions/Button.md +8 -2
  634. package/docs/components/content/InfoBadge.md +2 -0
  635. package/docs/components/content/ItemBadge.md +4 -0
  636. package/docs/components/content/Layout.md +2 -1
  637. package/docs/components/fields/ComboBox.md +25 -18
  638. package/docs/components/fields/FilterListBox.md +2 -2
  639. package/docs/components/fields/FilterPicker.md +2 -2
  640. package/docs/components/fields/ListBox.md +14 -10
  641. package/docs/components/fields/NumberInput.md +10 -10
  642. package/docs/components/fields/PasswordInput.md +6 -7
  643. package/docs/components/fields/Picker.md +6 -5
  644. package/docs/components/fields/RadioGroup.md +1 -1
  645. package/docs/components/fields/SearchInput.md +7 -6
  646. package/docs/components/fields/Select.md +14 -8
  647. package/docs/components/fields/TextArea.md +4 -3
  648. package/docs/components/fields/TextInput.md +13 -6
  649. package/docs/components/overlays/AlertDialog.md +7 -1
  650. package/docs/components/overlays/Dialog.md +5 -5
  651. package/docs/components/overlays/DialogTrigger.md +6 -6
  652. package/docs/components/overlays/Tooltip.md +17 -6
  653. package/docs/components/overlays/TooltipTrigger.md +2 -0
  654. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-bef9600 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | 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 { mergeProps, 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 = {
@@ -436,7 +558,9 @@ const ListBox = forwardRef(function ListBox(props, ref) {
436
558
  onSelectionChange: wrappedOnSelectionChange
437
559
  }, listState, listRef);
438
560
  const { isFocused, focusProps } = useFocus$1();
439
- 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));
440
564
  const scrollRef = useRef(null);
441
565
  const rowVirtualizer = useVirtualizer({
442
566
  count: shouldVirtualize ? itemsArray.length : 0,
@@ -456,14 +580,21 @@ const ListBox = forwardRef(function ListBox(props, ref) {
456
580
  rowVirtualizer,
457
581
  listGap
458
582
  ]);
583
+ const lastFocusedKeyRef = useRef(null);
459
584
  useLayoutEffect(() => {
460
585
  const focusedKey = listState.selectionManager.focusedKey;
586
+ const hasFocusMoved = focusedKey !== lastFocusedKeyRef.current;
587
+ lastFocusedKeyRef.current = focusedKey;
461
588
  if (focusedKey == null) return;
462
- if (lastFocusSourceRef.current !== "keyboard") return;
463
589
  const scrollElement = scrollRef.current;
464
590
  if (!scrollElement) return;
465
591
  const itemElement = scrollElement.querySelector(`[data-key="${CSS.escape(String(focusedKey))}"]`);
466
- 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;
467
598
  const scrollTop = scrollElement.scrollTop;
468
599
  const viewportBottom = scrollTop + scrollElement.clientHeight;
469
600
  const itemRect = itemElement.getBoundingClientRect();
@@ -474,33 +605,41 @@ const ListBox = forwardRef(function ListBox(props, ref) {
474
605
  block: "nearest",
475
606
  behavior: "auto"
476
607
  });
477
- }, [listState.selectionManager.focusedKey, itemsArray]);
478
- 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 });
479
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(" ");
480
619
  const orderedKeys = useMemo(() => {
481
620
  if (!isReorderable) return [];
482
621
  return itemsArray.filter((i_0) => i_0.type === "item").map((i_1) => String(i_1.key));
483
622
  }, [isReorderable, itemsArray]);
623
+ const isCardFocused = isFocused || isEmpty && isListElementFocused;
484
624
  const mods = useMemo(() => ({
485
625
  ...getValidationMods({
486
626
  isInvalid,
487
627
  isValid
488
628
  }),
489
629
  disabled: isDisabled,
490
- focused: isFocused,
491
- header: !!header || showSelectAll && props.selectionMode === "multiple",
630
+ focused: isCardFocused,
631
+ header: !!header || hasSelectAll,
492
632
  footer: !!footer,
493
- selectAll: showSelectAll && props.selectionMode === "multiple",
633
+ selectAll: hasSelectAll,
494
634
  ...externalMods
495
635
  }), [
496
636
  isInvalid,
497
637
  isValid,
498
638
  isDisabled,
499
- isFocused,
639
+ isCardFocused,
500
640
  header,
501
641
  footer,
502
- showSelectAll,
503
- props.selectionMode,
642
+ hasSelectAll,
504
643
  externalMods
505
644
  ]);
506
645
  const listGapTokens = listGap == null ? void 0 : { "$list-gap": `${listGap}px` };
@@ -516,29 +655,30 @@ const ListBox = forwardRef(function ListBox(props, ref) {
516
655
  "data-size": size,
517
656
  children: header
518
657
  }) : /* @__PURE__ */ jsx("div", { role: "presentation" }),
519
- showSelectAll && props.selectionMode === "multiple" ? /* @__PURE__ */ jsx(SelectAllOption, {
658
+ hasSelectAll ? /* @__PURE__ */ jsx(SelectAllOption, {
520
659
  label: selectAllLabel,
521
- state: listState,
522
- lastFocusSourceRef,
523
- isSelected: selectAllState.isSelected,
524
- isIndeterminate: selectAllState.isIndeterminate,
660
+ isSelected: isAllSelected,
661
+ isIndeterminate: isSomeSelected,
525
662
  isDisabled,
526
663
  isCheckable,
527
664
  size,
528
665
  allValueProps,
666
+ focusProps: selectAllFocusProps,
529
667
  onClick: handleSelectAllClick
530
668
  }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", { role: "presentation" }), /* @__PURE__ */ jsx("div", { role: "presentation" })] }),
531
- /* @__PURE__ */ jsx(ListBoxScrollElement, {
669
+ /* @__PURE__ */ jsxs(ListBoxScrollElement, {
532
670
  ref: scrollRef,
533
671
  mods,
534
672
  ...focusProps,
535
- children: listState.collection.size === 0 ? /* @__PURE__ */ jsx(_Item, {
673
+ children: [isEmpty && /* @__PURE__ */ jsx(_Item, {
674
+ id: emptyLabelId,
675
+ "aria-hidden": "true",
536
676
  preset: "t4",
537
677
  color: "#dark-03",
538
678
  size,
539
679
  padding: "(.5x - 1bw)",
540
680
  children: emptyLabel
541
- }) : isReorderable ? /* @__PURE__ */ jsx(DraggableListBox, {
681
+ }), isReorderable && !isEmpty ? /* @__PURE__ */ jsx(DraggableListBox, {
542
682
  state: listState,
543
683
  listRef,
544
684
  orderedKeys,
@@ -553,9 +693,9 @@ const ListBox = forwardRef(function ListBox(props, ref) {
553
693
  mods: { sections: false },
554
694
  "data-shape": shape,
555
695
  "data-input-type": "listbox",
556
- 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, {
557
697
  size,
558
- item: item_0,
698
+ item: item_1,
559
699
  state: listState,
560
700
  styles: optionStyles,
561
701
  highlight: optionHighlight,
@@ -569,7 +709,7 @@ const ListBox = forwardRef(function ListBox(props, ref) {
569
709
  dragState,
570
710
  dropState,
571
711
  onClick: onOptionClick
572
- }, item_0.key))
712
+ }, item_1.key))
573
713
  })
574
714
  }) : /* @__PURE__ */ jsx(ListElement, {
575
715
  qa: qa || "ListBox",
@@ -578,7 +718,10 @@ const ListBox = forwardRef(function ListBox(props, ref) {
578
718
  styles: listStyles,
579
719
  tokens: listGapTokens,
580
720
  "aria-disabled": isDisabled || void 0,
581
- mods: { sections: hasSections },
721
+ mods: {
722
+ sections: hasSections,
723
+ empty: isEmpty
724
+ },
582
725
  "data-shape": shape,
583
726
  "data-input-type": "listbox",
584
727
  style: shouldVirtualize ? {
@@ -586,10 +729,10 @@ const ListBox = forwardRef(function ListBox(props, ref) {
586
729
  height: `${rowVirtualizer.getTotalSize()}px`
587
730
  } : void 0,
588
731
  children: shouldVirtualize ? rowVirtualizer.getVirtualItems().map((virtualItem) => {
589
- const item_1 = itemsArray[virtualItem.index];
732
+ const item_2 = itemsArray[virtualItem.index];
590
733
  return /* @__PURE__ */ jsx(Option, {
591
734
  size,
592
- item: item_1,
735
+ item: item_2,
593
736
  state: listState,
594
737
  styles: optionStyles,
595
738
  highlight: optionHighlight,
@@ -610,17 +753,14 @@ const ListBox = forwardRef(function ListBox(props, ref) {
610
753
  virtualIndex: virtualItem.index,
611
754
  lastFocusSourceRef,
612
755
  onClick: onOptionClick
613
- }, item_1.key);
756
+ }, item_2.key);
614
757
  }) : (() => {
615
758
  const renderedItems = [];
616
759
  let isFirstSection = true;
617
- for (const item_2 of listState.collection) if (item_2.type === "section") {
618
- if (!isFirstSection) renderedItems.push(/* @__PURE__ */ jsx(StyledDivider, {
619
- role: "separator",
620
- "aria-orientation": "horizontal"
621
- }, `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)}`));
622
762
  renderedItems.push(/* @__PURE__ */ jsx(ListBoxSection, {
623
- item: item_2,
763
+ item: item_3,
624
764
  state: listState,
625
765
  optionStyles,
626
766
  optionHighlight,
@@ -635,11 +775,11 @@ const ListBox = forwardRef(function ListBox(props, ref) {
635
775
  size,
636
776
  lastFocusSourceRef,
637
777
  onClick: onOptionClick
638
- }, item_2.key));
778
+ }, item_3.key));
639
779
  isFirstSection = false;
640
780
  } else renderedItems.push(/* @__PURE__ */ jsx(Option, {
641
781
  size,
642
- item: item_2,
782
+ item: item_3,
643
783
  state: listState,
644
784
  styles: optionStyles,
645
785
  highlight: optionHighlight,
@@ -651,10 +791,10 @@ const ListBox = forwardRef(function ListBox(props, ref) {
651
791
  isCheckable,
652
792
  lastFocusSourceRef,
653
793
  onClick: onOptionClick
654
- }, item_2.key));
794
+ }, item_3.key));
655
795
  return renderedItems;
656
796
  })()
657
- })
797
+ })]
658
798
  }),
659
799
  footer ? /* @__PURE__ */ jsx(StyledFooter, {
660
800
  styles: footerStyles,
@@ -714,18 +854,26 @@ function Option({ size = "medium", item, state, styles, highlight, isParentDisab
714
854
  isValid,
715
855
  filteredItemProps.icon
716
856
  ]);
717
- const handleOptionExtras = (e) => {
857
+ const runOptionExtras = (target) => {
718
858
  if (lastFocusSourceRef) lastFocusSourceRef.current = "mouse";
719
859
  state.selectionManager.setFocusedKey(item.key);
720
860
  if (!onOptionClick) return;
721
861
  if (isCheckable && state.selectionManager.selectionMode === "multiple") {
722
- const clickTarget = e.target;
862
+ const clickTarget = target;
723
863
  const checkboxElement = localRef.current?.querySelector("[data-element=\"CheckboxWrapper\"]");
724
864
  if (checkboxElement && (checkboxElement === clickTarget || checkboxElement.contains(clickTarget))) return;
725
865
  }
726
866
  onOptionClick(item.key);
727
867
  };
728
- 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);
729
877
  const theme = getValidationTheme("default", {
730
878
  isInvalid,
731
879
  isValid
@@ -737,6 +885,8 @@ function Option({ size = "medium", item, state, styles, highlight, isParentDisab
737
885
  onClick: handleOptionExtras,
738
886
  onKeyDown,
739
887
  onKeyUp,
888
+ onPointerDown: originPress.onPointerDown,
889
+ onPointerUp: originPress.wrapPointerUp(onPointerUp),
740
890
  tabIndex,
741
891
  "aria-selected": ariaSelected,
742
892
  "aria-disabled": ariaDisabled,