@cube-dev/ui-kit 0.0.0-canary-8531f8b → 0.0.0-canary-1b26a89

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 (611) 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.d.ts +25 -12
  11. package/dist/components/CollectionItem.js +59 -4
  12. package/dist/components/CollectionItem.js.map +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +2 -2
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.d.ts +1 -1
  19. package/dist/components/actions/Banner/Banner.js +1 -1
  20. package/dist/components/actions/Button/Button.js +1 -1
  21. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  23. package/dist/components/actions/ButtonSplit/context.js +1 -1
  24. package/dist/components/actions/CommandMenu/CommandMenu.d.ts +7 -7
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +246 -280
  26. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  27. package/dist/components/actions/CommandMenu/styled.js +1 -1
  28. package/dist/components/actions/ItemAction/ItemAction.js +26 -22
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.d.ts +3 -0
  31. package/dist/components/actions/ItemActionContext.js +15 -13
  32. package/dist/components/actions/ItemActionContext.js.map +1 -1
  33. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  34. package/dist/components/actions/ItemButton/ItemButton.d.ts +2 -2
  35. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  36. package/dist/components/actions/Link/Link.js +1 -1
  37. package/dist/components/actions/Menu/Menu.d.ts +9 -9
  38. package/dist/components/actions/Menu/Menu.js +87 -71
  39. package/dist/components/actions/Menu/Menu.js.map +1 -1
  40. package/dist/components/actions/Menu/MenuCollectionItem.d.ts +18 -0
  41. package/dist/components/actions/Menu/MenuCollectionItem.js +36 -0
  42. package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -0
  43. package/dist/components/actions/Menu/MenuItem.js +395 -78
  44. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  45. package/dist/components/actions/Menu/MenuSection.d.ts +1 -2
  46. package/dist/components/actions/Menu/MenuSection.js +12 -10
  47. package/dist/components/actions/Menu/MenuSection.js.map +1 -1
  48. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  49. package/dist/components/actions/Menu/SubMenuTrigger.d.ts +1 -1
  50. package/dist/components/actions/Menu/SubMenuTrigger.js +2 -2
  51. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  52. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  53. package/dist/components/actions/Menu/context.js +1 -1
  54. package/dist/components/actions/Menu/index.d.ts +1 -0
  55. package/dist/components/actions/Menu/styled.js +1 -1
  56. package/dist/components/actions/actions-run.js +1 -1
  57. package/dist/components/actions/index.d.ts +3 -2
  58. package/dist/components/actions/index.js +1 -1
  59. package/dist/components/actions/use-action.js +60 -36
  60. package/dist/components/actions/use-action.js.map +1 -1
  61. package/dist/components/actions/use-anchored-menu.js +1 -1
  62. package/dist/components/actions/use-context-menu.js +1 -1
  63. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  64. package/dist/components/content/Alert/Alert.js +1 -1
  65. package/dist/components/content/Alert/use-alert.js +1 -1
  66. package/dist/components/content/Avatar/Avatar.js +1 -1
  67. package/dist/components/content/Badge/Badge.js +1 -1
  68. package/dist/components/content/Card/Card.js +1 -1
  69. package/dist/components/content/Content.js +1 -1
  70. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  71. package/dist/components/content/CopySnippet/CopySnippet.d.ts +21 -21
  72. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  73. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  74. package/dist/components/content/Divider.js +1 -1
  75. package/dist/components/content/Footer.js +1 -1
  76. package/dist/components/content/Header.js +1 -1
  77. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  78. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  79. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  80. package/dist/components/content/Item/Item.d.ts +7 -7
  81. package/dist/components/content/Item/Item.js +205 -67
  82. package/dist/components/content/Item/Item.js.map +1 -1
  83. package/dist/components/content/Item/ItemWithNativeLinks.js +314 -0
  84. package/dist/components/content/Item/ItemWithNativeLinks.js.map +1 -0
  85. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  86. package/dist/components/content/ItemCard/ItemCard.d.ts +1 -1
  87. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  88. package/dist/components/content/Layout/GridLayout.js +1 -1
  89. package/dist/components/content/Layout/Layout.js +1 -1
  90. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  91. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  92. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  93. package/dist/components/content/Layout/LayoutContent.js +1 -1
  94. package/dist/components/content/Layout/LayoutContext.js +1 -1
  95. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  96. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  97. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  98. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  99. package/dist/components/content/Layout/LayoutPane.js +1 -1
  100. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  101. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  102. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  103. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  104. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  105. package/dist/components/content/Layout/index.js +1 -1
  106. package/dist/components/content/Layout/utils.js +1 -1
  107. package/dist/components/content/Paragraph.js +1 -1
  108. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  109. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  110. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  111. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  112. package/dist/components/content/Result/Result.js +1 -1
  113. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  114. package/dist/components/content/Tag/Tag.js +1 -1
  115. package/dist/components/content/Text.d.ts +14 -14
  116. package/dist/components/content/Text.js +1 -1
  117. package/dist/components/content/TextItem/TextItem.js +1 -1
  118. package/dist/components/content/Title.js +1 -1
  119. package/dist/components/content/Tree/Tree.js +1 -1
  120. package/dist/components/content/Tree/TreeNode.js +1 -1
  121. package/dist/components/content/Tree/styled.js +1 -1
  122. package/dist/components/content/Tree/tree-index.js +1 -1
  123. package/dist/components/content/Tree/types.d.ts +2 -2
  124. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  125. package/dist/components/content/Tree/use-load-data.js +1 -1
  126. package/dist/components/content/highlightText.js +1 -1
  127. package/dist/components/content/use-auto-tooltip.js +1 -1
  128. package/dist/components/data/DataTable/DataTable.js +1 -1
  129. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  130. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  131. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  132. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  133. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  134. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  135. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  136. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  137. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  138. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  139. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  140. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  141. package/dist/components/data/TableBase/RowCollection.js +1 -1
  142. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  143. package/dist/components/data/TableBase/TableRow.js +1 -1
  144. package/dist/components/data/TableBase/TableView.js +1 -1
  145. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  146. package/dist/components/data/TableBase/column-header.js +1 -1
  147. package/dist/components/data/TableBase/column-menu.js +1 -1
  148. package/dist/components/data/TableBase/column-styles.js +1 -1
  149. package/dist/components/data/TableBase/column-tint.js +1 -1
  150. package/dist/components/data/TableBase/row-menu.js +1 -1
  151. package/dist/components/data/TableBase/styled.d.ts +1 -1
  152. package/dist/components/data/TableBase/styled.js +1 -1
  153. package/dist/components/data/TableBase/table-tree.js +1 -1
  154. package/dist/components/data/TableBase/types.js +1 -1
  155. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  156. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  157. package/dist/components/data/TableBase/use-column-order.js +1 -1
  158. package/dist/components/data/TableBase/use-column-window.js +1 -1
  159. package/dist/components/data/TableBase/use-container-width.js +1 -1
  160. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  161. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  162. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  163. package/dist/components/data/TableBase/use-table-search.js +1 -1
  164. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  165. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  166. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  167. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  168. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  169. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  170. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  171. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  172. package/dist/components/fields/Checkbox/context.js +1 -1
  173. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  174. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  175. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  176. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  177. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  178. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  179. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  180. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  181. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  182. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  183. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  184. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  185. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  186. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  187. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  188. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  189. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  190. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  191. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  192. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  193. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  194. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  195. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  196. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  197. package/dist/components/fields/DatePicker/period.js +1 -1
  198. package/dist/components/fields/DatePicker/props.js +1 -1
  199. package/dist/components/fields/DatePicker/utils.js +1 -1
  200. package/dist/components/fields/FileInput/FileInput.js +1 -1
  201. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  202. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +2 -2
  203. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  204. package/dist/components/fields/Input/Input.js +1 -1
  205. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  206. package/dist/components/fields/ListBox/ListBox.js +5 -5
  207. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  208. package/dist/components/fields/ListBox/optionId.js +1 -1
  209. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  210. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  211. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  212. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  213. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  214. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  215. package/dist/components/fields/Picker/Picker.d.ts +2 -2
  216. package/dist/components/fields/Picker/Picker.js +1 -1
  217. package/dist/components/fields/RadioGroup/Radio.d.ts +20 -20
  218. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  219. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  220. package/dist/components/fields/RadioGroup/context.js +1 -1
  221. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  222. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  223. package/dist/components/fields/Select/Select.d.ts +4 -4
  224. package/dist/components/fields/Select/Select.js +6 -6
  225. package/dist/components/fields/Select/Select.js.map +1 -1
  226. package/dist/components/fields/Slider/Gradation.js +1 -1
  227. package/dist/components/fields/Slider/HueSlider.js +1 -1
  228. package/dist/components/fields/Slider/RangeSlider.js +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.js +1 -1
  241. package/dist/components/fields/TextInput/TextInput.js +1 -1
  242. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  243. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  244. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  245. package/dist/components/fields/TriggerActions.js +1 -1
  246. package/dist/components/fields/color/ColorPanel.js +1 -1
  247. package/dist/components/fields/color/channels.js +1 -1
  248. package/dist/components/fields/color/color.js +1 -1
  249. package/dist/components/fields/color/context.js +1 -1
  250. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  251. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  252. package/dist/components/form/Form/Field.js +1 -1
  253. package/dist/components/form/Form/Form.js +1 -1
  254. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  255. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  256. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  257. package/dist/components/form/Form/SubmitError.js +1 -1
  258. package/dist/components/form/Form/backend.js +1 -1
  259. package/dist/components/form/Form/index.js +1 -1
  260. package/dist/components/form/Form/modern/actions.js +1 -1
  261. package/dist/components/form/Form/modern/context.js +1 -1
  262. package/dist/components/form/Form/modern/controller.js +1 -1
  263. package/dist/components/form/Form/modern/field-binding.js +1 -1
  264. package/dist/components/form/Form/modern/field.js +1 -1
  265. package/dist/components/form/Form/modern/react.js +1 -1
  266. package/dist/components/form/Form/modern/store.js +1 -1
  267. package/dist/components/form/Form/modern/validation.js +1 -1
  268. package/dist/components/form/Form/modern/values.js +1 -1
  269. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  270. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  271. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  272. package/dist/components/form/Form/use-field/use-field.js +1 -1
  273. package/dist/components/form/Form/use-form.js +1 -1
  274. package/dist/components/form/Form/validation.js +1 -1
  275. package/dist/components/form/Label.js +1 -1
  276. package/dist/components/form/legacy-tooltip.js +1 -1
  277. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  278. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  279. package/dist/components/form/validation/use-validation-props.js +1 -1
  280. package/dist/components/form/wrapper.js +1 -1
  281. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  282. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  283. package/dist/components/layout/Flex.js +1 -1
  284. package/dist/components/layout/Flow.js +1 -1
  285. package/dist/components/layout/Grid.js +1 -1
  286. package/dist/components/layout/Panel.js +1 -1
  287. package/dist/components/layout/Prefix.js +1 -1
  288. package/dist/components/layout/ResizablePanel.js +1 -1
  289. package/dist/components/layout/Space.js +1 -1
  290. package/dist/components/layout/Suffix.js +1 -1
  291. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  292. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  293. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  294. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  295. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  296. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  297. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  298. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  299. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  300. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  301. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  302. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  303. package/dist/components/navigation/Tabs/styled.js +1 -1
  304. package/dist/components/navigation/Tabs/types.d.ts +3 -3
  305. package/dist/components/navigation/Tabs/types.js +1 -1
  306. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  307. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  308. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  309. package/dist/components/other/Calendar/Calendar.js +1 -1
  310. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  311. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  312. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  313. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  314. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  315. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  316. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  317. package/dist/components/other/Calendar/styled.js +1 -1
  318. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  319. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  320. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  321. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  322. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  323. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  324. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  325. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  326. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  327. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  328. package/dist/components/overlays/Dialog/context.js +1 -1
  329. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  330. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  331. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  332. package/dist/components/overlays/Modal/Modal.js +1 -1
  333. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  334. package/dist/components/overlays/Modal/Overlay.js +1 -1
  335. package/dist/components/overlays/Modal/Popover.js +1 -1
  336. package/dist/components/overlays/Modal/Tray.js +1 -1
  337. package/dist/components/overlays/Modal/Underlay.js +1 -1
  338. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  339. package/dist/components/overlays/Notifications/Notification.js +1 -1
  340. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  341. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  342. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  343. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  344. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  345. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  346. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  347. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  348. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  349. package/dist/components/overlays/Notifications/index.js +1 -1
  350. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  351. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  352. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  353. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  354. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  355. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  356. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  357. package/dist/components/overlays/Toast/index.js +1 -1
  358. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  359. package/dist/components/overlays/Toast/useToast.js +1 -1
  360. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  361. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  362. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  363. package/dist/components/overlays/Tooltip/context.js +1 -1
  364. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  365. package/dist/components/portal/Portal.js +1 -1
  366. package/dist/components/portal/PortalProvider.js +1 -1
  367. package/dist/components/portal/usePortal.js +1 -1
  368. package/dist/components/shared/DraggableCollection.js +1 -1
  369. package/dist/components/shared/InvalidIcon.js +1 -1
  370. package/dist/components/shared/ValidIcon.js +1 -1
  371. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  372. package/dist/components/status/Spin/Cube.js +1 -1
  373. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  374. package/dist/components/status/Spin/Spin.js +1 -1
  375. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  376. package/dist/data/item-themes.js +1 -1
  377. package/dist/data/themes.js +1 -1
  378. package/dist/eslint-plugin/defaults.generated.js +2 -2
  379. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  380. package/dist/eslint-plugin/index.js +1 -1
  381. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  382. package/dist/i18n/I18nProvider.js +1 -1
  383. package/dist/i18n/createFormatter.js +1 -1
  384. package/dist/i18n/index.js +1 -1
  385. package/dist/i18n/instance.js +1 -1
  386. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  387. package/dist/i18n/locales/en-US/uikit.js +1 -1
  388. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  389. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  390. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  391. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  392. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  393. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  394. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  395. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  396. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  397. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  398. package/dist/i18n/locales.js +1 -1
  399. package/dist/i18n/namespace.js +1 -1
  400. package/dist/i18n/useFormatter.js +1 -1
  401. package/dist/i18n/useI18n.js +1 -1
  402. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  403. package/dist/icons/AdjustmentsIcon.js +1 -1
  404. package/dist/icons/AiIcon.js +1 -1
  405. package/dist/icons/AreaChartIcon.js +1 -1
  406. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  407. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  408. package/dist/icons/BackwardIcon.js +1 -1
  409. package/dist/icons/BarChartIcon.js +1 -1
  410. package/dist/icons/BellFilledIcon.js +1 -1
  411. package/dist/icons/BellIcon.js +1 -1
  412. package/dist/icons/BooleanIcon.js +1 -1
  413. package/dist/icons/CalendarEditIcon.js +1 -1
  414. package/dist/icons/CalendarIcon.js +1 -1
  415. package/dist/icons/CaretDownIcon.js +1 -1
  416. package/dist/icons/CaretUpIcon.js +1 -1
  417. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  418. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  419. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  420. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  421. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  422. package/dist/icons/ChartBarLineIcon.js +1 -1
  423. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  424. package/dist/icons/ChartBarStackedIcon.js +1 -1
  425. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  426. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  427. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  428. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  429. package/dist/icons/ChartBubbleIcon.js +1 -1
  430. package/dist/icons/ChartDonut2Icon.js +1 -1
  431. package/dist/icons/ChartFunnelIcon.js +1 -1
  432. package/dist/icons/ChartHeatmapIcon.js +1 -1
  433. package/dist/icons/ChartKPIIcon.js +1 -1
  434. package/dist/icons/ChartPie2Icon.js +1 -1
  435. package/dist/icons/ChartScatterIcon.js +1 -1
  436. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  437. package/dist/icons/CheckCircleIcon.js +1 -1
  438. package/dist/icons/CheckIcon.js +1 -1
  439. package/dist/icons/CircleFilledIcon.js +1 -1
  440. package/dist/icons/ClearIcon.js +1 -1
  441. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  442. package/dist/icons/CloseCircleIcon.js +1 -1
  443. package/dist/icons/CloseIcon.js +1 -1
  444. package/dist/icons/CodeIcon.js +1 -1
  445. package/dist/icons/ColumnTotalIcon.js +1 -1
  446. package/dist/icons/CopyIcon.js +1 -1
  447. package/dist/icons/CountIcon.js +1 -1
  448. package/dist/icons/CubeIcon.js +1 -1
  449. package/dist/icons/CubePauseIcon.js +1 -1
  450. package/dist/icons/CubePlayIcon.js +1 -1
  451. package/dist/icons/CurrencyDollarIcon.js +1 -1
  452. package/dist/icons/DangerIcon.js +1 -1
  453. package/dist/icons/DashboardIcon.js +1 -1
  454. package/dist/icons/DatabaseIcon.js +1 -1
  455. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  456. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  457. package/dist/icons/DirectionIcon.js +1 -1
  458. package/dist/icons/DonutIcon.js +1 -1
  459. package/dist/icons/DownIcon.js +1 -1
  460. package/dist/icons/EditIcon.js +1 -1
  461. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  462. package/dist/icons/ExclamationCircleIcon.js +1 -1
  463. package/dist/icons/ExclamationIcon.js +1 -1
  464. package/dist/icons/EyeIcon.js +1 -1
  465. package/dist/icons/EyeInvisibleIcon.js +1 -1
  466. package/dist/icons/FilterIcon.js +1 -1
  467. package/dist/icons/FolderFilledIcon.js +1 -1
  468. package/dist/icons/FolderIcon.js +1 -1
  469. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  470. package/dist/icons/FolderOpenIcon.js +1 -1
  471. package/dist/icons/ForwardIcon.js +1 -1
  472. package/dist/icons/GripVerticalIcon.js +1 -1
  473. package/dist/icons/HierarchyIcon.js +1 -1
  474. package/dist/icons/HierarchyOpenIcon.js +1 -1
  475. package/dist/icons/Icon.js +1 -1
  476. package/dist/icons/InfoCircleIcon.js +1 -1
  477. package/dist/icons/InfoIcon.js +1 -1
  478. package/dist/icons/KeyIcon.js +1 -1
  479. package/dist/icons/LeftIcon.js +1 -1
  480. package/dist/icons/LineChartIcon.js +1 -1
  481. package/dist/icons/LoadingIcon.js +1 -1
  482. package/dist/icons/LockFilledIcon.js +1 -1
  483. package/dist/icons/LockIcon.js +1 -1
  484. package/dist/icons/MoreIcon.js +1 -1
  485. package/dist/icons/NotAllowedIcon.js +1 -1
  486. package/dist/icons/Number123Icon.js +1 -1
  487. package/dist/icons/NumberIcon.js +1 -1
  488. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  489. package/dist/icons/PauseCircleIcon.js +1 -1
  490. package/dist/icons/PauseIcon.js +1 -1
  491. package/dist/icons/PercentageIcon.js +1 -1
  492. package/dist/icons/PieChartIcon.js +1 -1
  493. package/dist/icons/PipetteIcon.js +1 -1
  494. package/dist/icons/PlayCircleIcon.js +1 -1
  495. package/dist/icons/PlayIcon.js +1 -1
  496. package/dist/icons/PlusIcon.js +1 -1
  497. package/dist/icons/ProgressBarIcon.js +1 -1
  498. package/dist/icons/ReloadIcon.js +1 -1
  499. package/dist/icons/ReportIcon.js +1 -1
  500. package/dist/icons/ReturnIcon.js +1 -1
  501. package/dist/icons/RightIcon.js +1 -1
  502. package/dist/icons/RowTotalsIcon.js +1 -1
  503. package/dist/icons/SchemeIcon.js +1 -1
  504. package/dist/icons/SearchIcon.js +1 -1
  505. package/dist/icons/SemanticQueryIcon.js +1 -1
  506. package/dist/icons/SettingsIcon.js +1 -1
  507. package/dist/icons/ShieldFilledIcon.js +1 -1
  508. package/dist/icons/ShieldIcon.js +1 -1
  509. package/dist/icons/SlashIcon.js +1 -1
  510. package/dist/icons/SparklesIcon.js +1 -1
  511. package/dist/icons/SqlIcon.js +1 -1
  512. package/dist/icons/StatsIcon.js +1 -1
  513. package/dist/icons/StopIcon.js +1 -1
  514. package/dist/icons/StringIcon.js +1 -1
  515. package/dist/icons/SubtotalsIcon.js +1 -1
  516. package/dist/icons/SwitchIcon.js +1 -1
  517. package/dist/icons/TableIcon.js +1 -1
  518. package/dist/icons/ThumbsDownIcon.js +1 -1
  519. package/dist/icons/ThumbsUpIcon.js +1 -1
  520. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  521. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  522. package/dist/icons/ThunderboltIcon.js +1 -1
  523. package/dist/icons/TimeIcon.js +1 -1
  524. package/dist/icons/TrashIcon.js +1 -1
  525. package/dist/icons/UnlockIcon.js +1 -1
  526. package/dist/icons/UpIcon.js +1 -1
  527. package/dist/icons/UserGroupIcon.js +1 -1
  528. package/dist/icons/UserIcon.js +1 -1
  529. package/dist/icons/UserLockIcon.js +1 -1
  530. package/dist/icons/ViewIcon.js +1 -1
  531. package/dist/icons/WarningFilledIcon.js +1 -1
  532. package/dist/icons/WarningIcon.js +1 -1
  533. package/dist/icons/wrap-icon.js +1 -1
  534. package/dist/index.d.ts +7 -6
  535. package/dist/index.js +1 -1
  536. package/dist/probe/canonicalize.js +1 -1
  537. package/dist/probe/css.js +1 -1
  538. package/dist/probe/index.js +1 -1
  539. package/dist/provider.js +2 -2
  540. package/dist/provider.js.map +1 -1
  541. package/dist/providers/TrackingProvider.js +1 -1
  542. package/dist/providers/navigation-url.js +11 -0
  543. package/dist/providers/navigation-url.js.map +1 -0
  544. package/dist/providers/navigationAdapter.default.js +1 -1
  545. package/dist/providers/use-navigation.js +19 -0
  546. package/dist/providers/use-navigation.js.map +1 -0
  547. package/dist/tokens/all-tokens.js +1 -1
  548. package/dist/tokens/base.js +1 -1
  549. package/dist/tokens/color-seed.js +1 -1
  550. package/dist/tokens/color-theme.js +1 -1
  551. package/dist/tokens/colors.js +1 -1
  552. package/dist/tokens/layout.js +1 -1
  553. package/dist/tokens/lazy-styles.js +1 -1
  554. package/dist/tokens/legacy-color.js +1 -1
  555. package/dist/tokens/palette-config.js +1 -1
  556. package/dist/tokens/palette.js +1 -1
  557. package/dist/tokens/resolve.js +1 -1
  558. package/dist/tokens/shadows.js +1 -1
  559. package/dist/tokens/sizes.js +1 -1
  560. package/dist/tokens/spacing.js +1 -1
  561. package/dist/tokens/typography.js +1 -1
  562. package/dist/utils/ResizeSensor.js +1 -1
  563. package/dist/utils/colors.js +1 -1
  564. package/dist/utils/dotize.js +1 -1
  565. package/dist/utils/is-dev-env.js +1 -1
  566. package/dist/utils/modules.js +1 -1
  567. package/dist/utils/promise.js +1 -1
  568. package/dist/utils/raf.js +1 -1
  569. package/dist/utils/random.js +1 -1
  570. package/dist/utils/range.js +1 -1
  571. package/dist/utils/react/RenderCache.js +1 -1
  572. package/dist/utils/react/Slots.js +1 -1
  573. package/dist/utils/react/chain.js +1 -1
  574. package/dist/utils/react/disabledProps.js +1 -1
  575. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  576. package/dist/utils/react/index.js +1 -1
  577. package/dist/utils/react/interactions.js +1 -1
  578. package/dist/utils/react/isTextOnly.js +1 -1
  579. package/dist/utils/react/mapProps.js +1 -1
  580. package/dist/utils/react/mergeProps.js +1 -1
  581. package/dist/utils/react/nullableValue.js +1 -1
  582. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  583. package/dist/utils/react/programmaticFocus.js +1 -1
  584. package/dist/utils/react/resolveIcon.js +1 -1
  585. package/dist/utils/react/sharedStore.js +1 -1
  586. package/dist/utils/react/useBufferedValue.js +1 -1
  587. package/dist/utils/react/useCombinedRefs.js +1 -1
  588. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  589. package/dist/utils/react/useEventBus.js +1 -1
  590. package/dist/utils/react/useId.js +1 -1
  591. package/dist/utils/react/useIsDarwin.js +1 -1
  592. package/dist/utils/react/useKeySymbols.js +1 -1
  593. package/dist/utils/react/useLayoutEffect.js +1 -1
  594. package/dist/utils/react/useLocalStorage.js +1 -1
  595. package/dist/utils/react/useMergeStyles.js +1 -1
  596. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  597. package/dist/utils/react/usePopoverSync.js +1 -1
  598. package/dist/utils/react/useQaProps.js +1 -1
  599. package/dist/utils/react/useScheme.js +1 -1
  600. package/dist/utils/react/useViewportSize.js +1 -1
  601. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  602. package/dist/utils/selection.js +1 -1
  603. package/dist/utils/styles.js +1 -1
  604. package/dist/utils/tree.js +1 -1
  605. package/dist/utils/warnings.js +1 -1
  606. package/dist/version.js +2 -2
  607. package/docs/Usage.md +4 -0
  608. package/docs/components/CollectionItem.md +5 -1
  609. package/docs/components/actions/CommandMenu.md +46 -18
  610. package/docs/components/actions/Menu.md +124 -19
  611. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CommandMenu.js","names":["useObjectRef","useSyncRef","CollectionChildren","FocusStrategy","Key","BasePropsWithoutChildren","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","Styles","React","KeyboardEvent","ReactElement","ReactNode","Ref","useId","useRef","useState","useFilter","useMenu","Section","useTreeState","useI18n","LoadingIcon","mergeProps","extractStyles","mergeStyleLayers","CollectionItem","Item","useMenuContext","CubeMenuProps","MenuItem","MenuSection","MenuTrigger","StyledDivider","StyledFooter","StyledHeader","StyledMenu","StyledCommandMenu","StyledEmptyState","StyledLoadingWrapper","StyledSearchInput","collectItemKeys","nodes","Iterable","keys","node","type","childNodes","push","key","getNextEnabledKey","currentKey","direction","isDisabled","isEnabled","index","indexOf","ahead","slice","Math","max","reverse","ordered","find","CommandMenuItem","id","textValue","keywords","forceMount","CubeCommandMenuProps","Omit","T","searchPlaceholder","searchValue","onSearchChange","value","filter","inputValue","emptyLabel","searchInputStyles","headerStyles","footerStyles","isLoading","shouldFilter","autoFocus","size","selectedKeys","defaultSelectedKeys","onSelectionChange","CommandMenu","props","ref","$","_c","t","t0","controlledSearchValue","customFilter","t1","t2","t3","t4","t5","qa","styles","onAction","header","footer","restMenuProps","t6","undefined","t7","domRef","searchInputRef","contextProps","ariaSelectedKeys","Set","ariaDefaultSelectedKeys","handleSelectionChange","allKeys","Array","from","treeState","collection","getKeys","map","_temp","_temp2","t8","key_1","completeProps","internalSearchValue","setInternalSearchValue","t9","handleSearchChange","t10","Symbol","for","sensitivity","contains","t11","item","searchWords","trim","toLowerCase","split","_temp3","length","searchableTexts","isArray","_temp4","every","searchWord","some","text","includes","enhancedFilter","t12","term","searchWords_0","_temp5","filterNodes","iter","result","filteredChildren","text_0","String","rendered","collectionFilter","treeStateProps","children","shouldUseVirtualFocus","collectionItems","_temp6","autoId","menuId","t13","key_2","encodeURIComponent","getItemId","focusedKey","setFocusedKey","focusedKeyRef","filteredCollectionItems","hasFilteredItems","viewHasSections","_temp7","findFirstSelectableItem","key_3","selectionManager","menuRef","menuProps","renderedItems","isFirstSection","forEach","item_2","sectionStyles","itemStyles","sectionHeadingStyles","menuItem","wrapper","cloneElement","t14","t15","current","timeoutId","setTimeout","focus","clearTimeout","useEffect","t16","t17","timeoutId_0","prevSearchValueRef","t18","currentSearchValue","prevSearchValue","firstSelectableKey","t19","handleArrowKey","e","preventDefault","nextKey","key_4","t20","key_5","node_0","getItem","onAction_0","triggerAction","t21","e_0","currentFocusedKey","selectionMode","select","onClose","closeOnSelect","handleActionKey","t22","e_1","handleSearchKeyDown","extractedStyles","t23","hasSearchTerm","showEmptyState","t24","t25","t26","mods","popover","t27","tray","t28","sections","t29","t30","Record","wrapperProps","_ariaLabel","_ariaLabelledBy","_ariaDescribedBy","_ariaDetails","t31","T0","t32","t33","border","t34","t35","t36","t37","t38","e_2","target","t39","t40","t41","boxShadow","radius","padding","t42","t43","t44","item_1","item_0","word_0","word","keyword","key_0","_CommandMenu","forwardRef","RefAttributes","HTMLDivElement","__CommandMenu","Object","assign","Trigger","displayName"],"sources":["../../../../src/components/actions/CommandMenu/CommandMenu.tsx"],"sourcesContent":["import { useObjectRef, useSyncRef } from '@react-aria/utils';\nimport { CollectionChildren, FocusStrategy, Key } from '@react-types/shared';\nimport {\n BasePropsWithoutChildren,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n Styles,\n} from '@tenphi/tasty';\nimport React, {\n KeyboardEvent,\n ReactElement,\n ReactNode,\n Ref,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { useFilter, useMenu } from 'react-aria';\nimport { Section, useTreeState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\n// `CollectionItem` (not react-stately's bare `Item`) is what CommandMenu\n// actually renders through `MenuItem`, so it carries the `Item` props.\nimport { CollectionItem as Item } from '../../CollectionItem';\nimport { useMenuContext } from '../Menu';\nimport { CubeMenuProps } from '../Menu/Menu';\nimport { MenuItem } from '../Menu/MenuItem';\nimport { MenuSection } from '../Menu/MenuSection';\nimport { MenuTrigger } from '../Menu/MenuTrigger';\nimport {\n StyledDivider,\n StyledFooter,\n StyledHeader,\n StyledMenu,\n} from '../Menu/styled';\n\nimport {\n StyledCommandMenu,\n StyledEmptyState,\n StyledLoadingWrapper,\n StyledSearchInput,\n} from './styled';\n\n/** The keys of the items in `nodes`, in order, including those in sections. */\nfunction collectItemKeys(nodes: Iterable<any>, keys: Key[] = []): Key[] {\n for (const node of nodes) {\n if (node?.type === 'section') {\n collectItemKeys(node.childNodes ?? [], keys);\n } else if (node?.type === 'item') {\n keys.push(node.key);\n }\n }\n\n return keys;\n}\n\n/**\n * The key an arrow press moves to: the next enabled key after `currentKey` in\n * `direction`, wrapping round to the first enabled key in that direction (the\n * last one going up). With nothing focused, or the focused key filtered out,\n * it returns that key.\n */\nfunction getNextEnabledKey(\n keys: Key[],\n currentKey: Key | null,\n direction: 1 | -1,\n isDisabled: (key: Key) => boolean,\n): Key | null {\n const isEnabled = (key: Key) => !isDisabled(key);\n const index = currentKey == null ? -1 : keys.indexOf(currentKey);\n const ahead =\n direction === 1\n ? keys.slice(index + 1)\n : keys.slice(0, Math.max(index, 0)).reverse();\n const ordered = direction === 1 ? keys : [...keys].reverse();\n\n return ahead.find(isEnabled) ?? ordered.find(isEnabled) ?? null;\n}\n\nexport interface CommandMenuItem {\n // Standard item props\n id: string;\n textValue: string;\n\n // Enhanced search features\n keywords?: string[];\n forceMount?: boolean;\n\n // Standard Menu item props inherited\n [key: string]: any;\n}\n\nexport interface CubeCommandMenuProps<T>\n extends BasePropsWithoutChildren,\n ContainerStyleProps,\n Omit<\n CubeMenuProps<T>,\n 'selectedKeys' | 'defaultSelectedKeys' | 'onSelectionChange'\n > {\n // Search-specific props\n searchPlaceholder?: string;\n searchValue?: string;\n onSearchChange?: (value: string) => void;\n filter?: (textValue: string, inputValue: string) => boolean;\n emptyLabel?: ReactNode;\n searchInputStyles?: Styles;\n headerStyles?: Styles;\n footerStyles?: Styles;\n\n // Advanced search features\n isLoading?: boolean;\n shouldFilter?: boolean;\n\n // Focus management - override the autoFocus from CubeMenuProps to allow boolean | FocusStrategy\n autoFocus?: boolean | FocusStrategy;\n\n // Size prop\n size?: 'medium' | 'large' | (string & {});\n\n /** Currently selected keys (controlled) */\n selectedKeys?: string[];\n /** Initially selected keys (uncontrolled) */\n defaultSelectedKeys?: string[];\n /** Handler for selection changes */\n onSelectionChange?: (keys: string[]) => void;\n}\n\nfunction CommandMenu<T extends object>(\n props: CubeCommandMenuProps<T>,\n ref: Ref<HTMLDivElement>,\n) {\n const { t } = useI18n();\n\n const {\n searchPlaceholder = t(\n 'commandMenu.searchPlaceholder',\n 'Search commands...',\n ),\n searchValue: controlledSearchValue,\n onSearchChange,\n filter: customFilter,\n emptyLabel = t('commandMenu.empty', 'No commands found'),\n searchInputStyles,\n headerStyles,\n footerStyles,\n isLoading = false,\n shouldFilter = true,\n autoFocus = true,\n size = 'medium',\n qa,\n styles,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n onAction,\n header,\n footer,\n ...restMenuProps\n } = props;\n\n const domRef = useObjectRef(ref);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const contextProps = useMenuContext();\n\n // Convert string[] to Set<Key> for React Aria compatibility\n const ariaSelectedKeys = selectedKeys ? new Set(selectedKeys) : undefined;\n const ariaDefaultSelectedKeys = defaultSelectedKeys\n ? new Set(defaultSelectedKeys)\n : undefined;\n\n const handleSelectionChange = onSelectionChange\n ? (keys: 'all' | Set<Key>) => {\n if (keys === 'all') {\n // Handle 'all' selection case - collect all available keys\n const allKeys = Array.from(treeState.collection.getKeys()).map(\n (key: any) => String(key),\n );\n onSelectionChange(allKeys);\n } else if (keys instanceof Set) {\n onSelectionChange(Array.from(keys).map((key) => String(key)));\n } else {\n onSelectionChange([]);\n }\n }\n : undefined;\n\n const completeProps = mergeProps(contextProps, restMenuProps, {\n onAction: onAction ? (key: Key) => onAction(key) : undefined,\n selectedKeys: ariaSelectedKeys,\n defaultSelectedKeys: ariaDefaultSelectedKeys,\n onSelectionChange: handleSelectionChange,\n });\n\n // Search state management\n const [internalSearchValue, setInternalSearchValue] = useState('');\n const searchValue = controlledSearchValue ?? internalSearchValue;\n\n const handleSearchChange = (value: string) => {\n if (controlledSearchValue === undefined) {\n setInternalSearchValue(value);\n }\n onSearchChange?.(value);\n };\n\n // Filter setup\n const { contains } = useFilter({ sensitivity: 'base' });\n const textFilterFn = customFilter || contains;\n\n // Enhanced filter function that supports keywords and forceMount\n const enhancedFilter = (\n textValue: string,\n inputValue: string,\n item?: any,\n ) => {\n // Always show force-mounted items\n if (item?.forceMount) {\n return true;\n }\n\n // If shouldFilter is false, show all items\n if (!shouldFilter) {\n return true;\n }\n\n // Split input value into individual words and filter out empty strings\n const searchWords = inputValue\n .trim()\n .toLowerCase()\n .split(/\\s+/)\n .filter((word) => word.length > 0);\n\n // If no search words, show all items\n if (searchWords.length === 0) {\n return true;\n }\n\n // Collect all searchable text for this item\n const searchableTexts: string[] = [];\n\n // Add main text value\n searchableTexts.push(textValue.toLowerCase());\n\n // Add keywords if available\n if (item?.keywords && Array.isArray(item.keywords)) {\n searchableTexts.push(\n ...item.keywords.map((keyword: string) => keyword.toLowerCase()),\n );\n }\n\n // Check if ALL search words match at least one of the searchable texts\n return searchWords.every((searchWord) =>\n searchableTexts.some((text) => text.includes(searchWord)),\n );\n };\n\n // Collection filter for React Stately\n const collectionFilter = (nodes: Iterable<any>): Iterable<any> => {\n const term = searchValue.trim();\n\n // If no search term, return all nodes\n if (!term) {\n return nodes;\n }\n\n // Split search term into words for multi-word filtering\n const searchWords = term\n .toLowerCase()\n .split(/\\s+/)\n .filter((word) => word.length > 0);\n\n // If no valid search words, return all nodes\n if (searchWords.length === 0) {\n return nodes;\n }\n\n // Recursive helper to filter sections and items\n const filterNodes = (iter: Iterable<any>): any[] => {\n const result: any[] = [];\n\n for (const node of iter) {\n if (node.type === 'section') {\n const filteredChildren = filterNodes(node.childNodes);\n\n if (filteredChildren.length) {\n result.push({\n ...node,\n childNodes: filteredChildren,\n });\n }\n } else {\n const text = node.textValue ?? String(node.rendered ?? '');\n\n if (enhancedFilter(text, term, node.props)) {\n result.push(node);\n }\n }\n }\n\n return result;\n };\n\n return filterNodes(nodes);\n };\n\n // Create tree state with filter for both keyboard navigation and rendering\n const treeStateProps = {\n ...completeProps,\n children: completeProps.children as CollectionChildren<T>,\n filter: collectionFilter,\n shouldUseVirtualFocus: true, // Always use virtual focus for CommandMenu\n };\n\n const treeState = useTreeState(treeStateProps);\n\n const collectionItems = [...treeState.collection];\n const hasSections = collectionItems.some((item) => item.type === 'section');\n\n // The search input keeps focus and points `aria-activedescendant` at the\n // item the arrow keys moved to, so each item needs an id it can name.\n // Unique without a `qa`, so a second menu's items never share these ids;\n // the key is encoded because an id reference can't hold a space.\n const autoId = useId();\n const menuId = `${qa || `CommandMenu${autoId}`}-menu`;\n const getItemId = (key: Key) =>\n `${menuId}-option-${encodeURIComponent(String(key))}`;\n\n // Track focused key for aria-activedescendant\n const [focusedKey, setFocusedKey] = React.useState<Key | null>(null);\n const focusedKeyRef = useRef<Key | null>(null);\n\n // Apply filtering to collection items for rendering and empty state checks\n const filteredCollectionItems = [...collectionFilter(collectionItems)];\n\n const hasFilteredItems = filteredCollectionItems.length > 0;\n const viewHasSections = filteredCollectionItems.some(\n (item) => item.type === 'section',\n );\n\n // Helper function to find the first selectable item from filtered results\n const findFirstSelectableItem = () =>\n collectItemKeys(filteredCollectionItems).find(\n (key) => !treeState.selectionManager.isDisabled(key),\n ) ?? null;\n\n // Create a ref for the menu container\n const menuRef = useRef<HTMLUListElement>(null);\n\n // Use menu hook for accessibility\n const { menuProps } = useMenu(\n {\n ...completeProps,\n 'aria-label': t('commandMenu.menu', 'Command menu'),\n shouldUseVirtualFocus: true,\n },\n treeState,\n menuRef,\n );\n\n // Manual rendering of menu items (similar to Menu component)\n const renderedItems: React.ReactNode[] = [];\n let isFirstSection = true;\n\n filteredCollectionItems.forEach((item) => {\n if (item.type === 'section') {\n if (!isFirstSection) {\n renderedItems.push(\n <StyledDivider\n key={`divider-${String(item.key)}`}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n />,\n );\n }\n\n renderedItems.push(\n <MenuSection\n key={item.key}\n item={item}\n getItemId={getItemId}\n state={treeState}\n styles={completeProps.sectionStyles}\n itemStyles={completeProps.itemStyles}\n headingStyles={completeProps.sectionHeadingStyles}\n size={size}\n />,\n );\n\n isFirstSection = false;\n return;\n }\n\n let menuItem = (\n <MenuItem\n key={item.key}\n id={getItemId(item.key)}\n item={item}\n state={treeState}\n styles={completeProps.itemStyles}\n size={size}\n onAction={item.onAction}\n />\n );\n\n // Apply custom wrapper if provided\n if (item.props.wrapper) {\n menuItem = item.props.wrapper(menuItem);\n }\n\n // Ensure every child has a stable key, even if the wrapper component didn't set one.\n renderedItems.push(React.cloneElement(menuItem, { key: item.key }));\n });\n\n // Auto-focus search input\n React.useEffect(() => {\n if (autoFocus && searchInputRef.current) {\n // Use a small timeout to ensure the element is visible and focusable\n // This is especially important when the CommandMenu is opened in a popover\n const timeoutId = setTimeout(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }, 0);\n\n return () => clearTimeout(timeoutId);\n }\n }, [autoFocus]);\n\n // Also focus when the component becomes visible (for trigger/popover usage)\n React.useEffect(() => {\n // Check if autoFocus is enabled and we're in a trigger context\n if (autoFocus && contextProps.autoFocus && searchInputRef.current) {\n // Use a small timeout to ensure the popover is fully rendered\n const timeoutId = setTimeout(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }, 50); // Slightly longer timeout for popover context\n\n return () => clearTimeout(timeoutId);\n }\n }, [autoFocus, contextProps.autoFocus]);\n\n // Track the previous search value to only run auto-focus when search actually changes\n const prevSearchValueRef = useRef<string>('');\n\n // Auto-focus first item when search value changes (but not on initial render)\n React.useEffect(() => {\n const currentSearchValue = searchValue.trim();\n const prevSearchValue = prevSearchValueRef.current;\n\n // Only auto-focus when search value actually changes\n if (currentSearchValue !== prevSearchValue && currentSearchValue !== '') {\n const firstSelectableKey = findFirstSelectableItem();\n\n if (firstSelectableKey && hasFilteredItems) {\n // Focus the first item in the selection manager\n treeState.selectionManager.setFocusedKey(firstSelectableKey);\n setFocusedKey(firstSelectableKey);\n focusedKeyRef.current = firstSelectableKey;\n } else {\n // Clear focus if no items are available\n treeState.selectionManager.setFocusedKey(null);\n setFocusedKey(null);\n focusedKeyRef.current = null;\n }\n }\n\n // Update the previous search value\n prevSearchValueRef.current = currentSearchValue;\n }, [searchValue, findFirstSelectableItem, hasFilteredItems]);\n\n // ---- search input keyboard ----------------------------------------------\n const handleArrowKey = (e: KeyboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n\n const { selectionManager } = treeState;\n // Use the ref to get the current focused key synchronously\n const currentKey = focusedKeyRef.current || selectionManager.focusedKey;\n const nextKey = getNextEnabledKey(\n collectItemKeys(filteredCollectionItems),\n currentKey,\n e.key === 'ArrowDown' ? 1 : -1,\n (key) => selectionManager.isDisabled(key),\n );\n\n if (nextKey != null) {\n selectionManager.setFocusedKey(nextKey);\n setFocusedKey(nextKey);\n focusedKeyRef.current = nextKey; // Update ref immediately\n }\n };\n\n // Default behavior: trigger the menu's action and the item's own.\n const triggerAction = (key: Key) => {\n const node = treeState.collection.getItem(key);\n\n if (!node) return;\n\n // Call the tree state's action handler\n const onAction = (completeProps as any).onAction;\n if (onAction) {\n onAction(key);\n }\n // Also call the item's individual onAction if it exists\n if (node.props?.onAction) {\n node.props.onAction(key);\n }\n };\n\n // Runs the focused item, like Menu does: selects it when the menu has a\n // selection mode, otherwise triggers its action.\n const handleActionKey = (e: KeyboardEvent<HTMLInputElement>) => {\n const currentFocusedKey =\n focusedKey || treeState.selectionManager.focusedKey;\n\n if (currentFocusedKey == null) return;\n\n e.preventDefault();\n\n if (treeState.selectionManager.selectionMode !== 'none') {\n treeState.selectionManager.select(currentFocusedKey);\n } else {\n triggerAction(currentFocusedKey);\n }\n\n // Close the menu if we're in a trigger context and closeOnSelect is enabled (default behavior)\n const { onClose, closeOnSelect } = contextProps;\n if (onClose && closeOnSelect !== false) {\n onClose();\n }\n };\n\n const handleSearchKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n handleArrowKey(e);\n } else if (e.key === 'Enter' || (e.key === ' ' && !searchValue.trim())) {\n handleActionKey(e);\n } else if (e.key === 'Escape' && searchValue) {\n e.preventDefault();\n handleSearchChange('');\n }\n };\n\n // Extract styles\n const extractedStyles = extractStyles(props, CONTAINER_STYLES);\n\n // Determine if we should show empty state based on actual filtered collection\n const hasSearchTerm = searchValue.trim().length > 0;\n const showEmptyState = hasSearchTerm && !hasFilteredItems && !isLoading;\n\n // Sync refs\n useSyncRef(contextProps, menuRef);\n\n // Determine mods based on menu context\n const mods = {\n sections: viewHasSections,\n footer: !!footer,\n header: !!header,\n popover: completeProps.mods?.popover,\n tray: completeProps.mods?.tray,\n };\n\n const {\n 'aria-label': _ariaLabel,\n 'aria-labelledby': _ariaLabelledBy,\n 'aria-describedby': _ariaDescribedBy,\n 'aria-details': _ariaDetails,\n ...wrapperProps\n } = filterBaseProps(props) as Record<string, unknown>;\n\n return (\n <StyledCommandMenu\n {...wrapperProps}\n ref={domRef}\n qa={qa || 'CommandMenu'}\n data-size={size}\n mods={mods}\n styles={mergeStyleLayers(extractedStyles, styles)}\n >\n {/* Header */}\n {header && (\n <StyledHeader\n role=\"presentation\"\n data-size={size}\n styles={mergeStyleLayers({ border: 'none' }, headerStyles)}\n >\n {header}\n </StyledHeader>\n )}\n\n {/* Search Input */}\n <StyledSearchInput\n ref={searchInputRef}\n type=\"search\"\n placeholder={searchPlaceholder}\n value={searchValue}\n styles={searchInputStyles}\n data-size={size}\n aria-controls={menuId}\n role=\"combobox\"\n aria-expanded=\"true\"\n aria-haspopup=\"listbox\"\n aria-activedescendant={\n focusedKey != null ? getItemId(focusedKey) : undefined\n }\n // The input is the control a screen reader lands on, so the menu's\n // name is its name. Kept off the wrapper, a plain `div`.\n aria-label={completeProps['aria-label']}\n aria-labelledby={completeProps['aria-labelledby']}\n aria-describedby={completeProps['aria-describedby']}\n onChange={(e) => handleSearchChange(e.target.value)}\n onKeyDown={handleSearchKeyDown}\n />\n\n {/* Loading State */}\n {isLoading && (\n <StyledLoadingWrapper>\n <LoadingIcon\n role=\"progressbar\"\n aria-label={t('commandMenu.loading', 'Loading commands')}\n aria-hidden={false}\n />\n </StyledLoadingWrapper>\n )}\n\n {/* Menu Content - always render unless loading */}\n {!isLoading && !showEmptyState && (\n <StyledMenu\n {...menuProps}\n ref={menuRef}\n id={menuId}\n aria-label={t('commandMenu.menu', 'Command menu')}\n qa=\"Menu\"\n data-size={size}\n mods={mods}\n styles={{\n border: 'none',\n boxShadow: 'none',\n radius: 0,\n padding: '0.5x',\n }}\n >\n {renderedItems}\n </StyledMenu>\n )}\n\n {/* Empty State - show when search term exists but no results */}\n {!isLoading && showEmptyState && (\n <StyledEmptyState>{emptyLabel}</StyledEmptyState>\n )}\n\n {/* Footer */}\n {footer && (\n <StyledFooter\n role=\"presentation\"\n data-size={size}\n styles={footerStyles}\n >\n {footer}\n </StyledFooter>\n )}\n </StyledCommandMenu>\n );\n}\n\n// forwardRef doesn't support generic parameters, so cast the result to the correct type\nconst _CommandMenu = React.forwardRef(CommandMenu) as <T>(\n props: CubeCommandMenuProps<T> & React.RefAttributes<HTMLDivElement>,\n) => ReactElement;\n\n// Attach Trigger alias from MenuTrigger for consistent API\n// Also attach Item and Section for compound component pattern\nconst __CommandMenu = Object.assign(_CommandMenu, {\n Trigger: MenuTrigger,\n Item,\n Section,\n displayName: 'CommandMenu',\n});\n\nexport { __CommandMenu as CommandMenu };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAS0C,gBAAgBC,OAAsBE,OAAc,EAAE,EAAS;AACtE,MAAK,MAAMC,QAAQH,MACjB,KAAIG,MAAMC,SAAS,UACjBL,iBAAgBI,KAAKE,cAAc,EAAE,EAAEH,KAAK;UACnCC,MAAMC,SAAS,OACxBF,MAAKI,KAAKH,KAAKI,IAAI;AAIvB,QAAOL;;;;;;;;AAST,SAASM,kBACPN,MACAO,YACAC,WACAC,YACY;CACZ,MAAMC,aAAaL,QAAa,CAACI,WAAWJ,IAAI;CAChD,MAAMM,QAAQJ,cAAc,OAAO,KAAKP,KAAKY,QAAQL,WAAW;CAChE,MAAMM,QACJL,cAAc,IACVR,KAAKc,MAAMH,QAAQ,EAAE,GACrBX,KAAKc,MAAM,GAAGC,KAAKC,IAAIL,OAAO,EAAE,CAAC,CAACM,SAAS;CACjD,MAAMC,UAAUV,cAAc,IAAIR,OAAO,CAAC,GAAGA,KAAK,CAACiB,SAAS;AAE5D,QAAOJ,MAAMM,KAAKT,UAAU,IAAIQ,QAAQC,KAAKT,UAAU,IAAI;;AAmD7D,SAAAmC,YAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,IAAA;CAIE,MAAA,EAAAC,MAAczE,SAAS;CAEvB,MAAA,EAAAmD,mBAAAuB,IAAAtB,aAAAuB,uBAAAtB,gBAAAE,QAAAqB,cAAAnB,YAAAoB,IAAAnB,mBAAAC,cAAAC,cAAAC,WAAAiB,IAAAhB,cAAAiB,IAAAhB,WAAAiB,IAAAhB,MAAAiB,IAAAC,IAAAC,QAAAlB,cAAAC,qBAAAC,mBAAAiB,UAAAC,QAAAC,QAAA,GAAAC,kBAyBIlB;CAAM,IAAAmB;AAAA,KAAAjB,EAAA,OAAAE,KAAAF,EAAA,OAAAG,IAAA;AAxBRc,OAAAd,OAAAe,SAAoBhB,EAClB,iCACA,qBACD,GAHDC;AAGCH,IAAA,KAAAE;AAAAF,IAAA,KAAAG;AAAAH,IAAA,KAAAiB;OAAAA,MAAAjB,EAAA;CAHD,MAAApB,oBAAAqC;CAGC,IAAAE;AAAA,KAAAnB,EAAA,OAAAE,KAAAF,EAAA,OAAAM,IAAA;AAIDa,OAAAb,OAAAY,SAAahB,EAAE,qBAAqB,oBAAoB,GAAxDI;AAAwDN,IAAA,KAAAE;AAAAF,IAAA,KAAAM;AAAAN,IAAA,KAAAmB;OAAAA,MAAAnB,EAAA;CAAxD,MAAAd,aAAAiC;CAIA,MAAA7B,YAAAiB,OAAAW,SAAA,QAAAX;CACA,MAAAhB,eAAAiB,OAAAU,SAAA,OAAAV;CACA,MAAAhB,YAAAiB,OAAAS,SAAA,OAAAT;CACA,MAAAhB,OAAAiB,OAAAQ,SAAA,WAAAR;CAYF,MAAAU,SAAejH,aAAa4F,IAAI;CAChC,MAAAsB,iBAAuBlG,OAAyB,KAAK;CACrD,MAAAmG,eAAqBtF,gBAAgB;CAGrC,MAAAuF,mBAAyB7B,eAAA,IAAmB8B,IAAI9B,aAAyB,GAAhDwB;CACzB,MAAAO,0BAAgC9B,sBAAA,IACxB6B,IAAI7B,oBACC,GAFmBuB;CAIhC,MAAAQ,wBAA8B9B,qBAAA5C,SAAA;AAExB,MAAIA,SAAS,MAKX4C,mBAHgBgC,MAAKC,KAAMC,UAASC,WAAWC,SAAU,CAAC,CAAAC,IACxDC,MACD,CACyB;WACjBlF,gBAAgBwE,IACzB5B,mBAAkBgC,MAAKC,KAAM7E,KAAK,CAAAiF,IAAKE,OAAqB,CAAC;MAE7DvC,mBAAkB,EAAE,CAAC;KAXCsB;CAchB,IAAAkB;AAAA,KAAApC,EAAA,OAAAa,UAAA;AAGFuB,OAAAvB,YAAAwB,UAAyBxB,SAASxD,MAAgB,GAAlD6D;AAAkDlB,IAAA,KAAAa;AAAAb,IAAA,KAAAoC;OAAAA,MAAApC,EAAA;CAD9D,MAAAsC,gBAAsB3G,aAAW2F,cAAcN,eAAe;EAAAH,UAClDuB;EAAkD1C,cAC9C6B;EAAgB5B,qBACT8B;EAAuB7B,mBACzB8B;EACpB,CAAC;CAGF,MAAA,CAAAa,qBAAAC,0BAAsDpH,SAAS,GAAG;CAClE,MAAAyD,cAAoBuB,yBAAAmC;CAA6C,IAAAE;AAAA,KAAAzC,EAAA,OAAAI,yBAAAJ,EAAA,OAAAlB,gBAAA;AAEtC2D,QAAA1D,UAAA;AACzB,OAAIqB,0BAA0Bc,OAC5BsB,wBAAuBzD,MAAM;AAE/BD,oBAAiBC,MAAM;;AACxBiB,IAAA,KAAAI;AAAAJ,IAAA,KAAAlB;AAAAkB,IAAA,MAAAyC;OAAAA,MAAAzC,EAAA;CALD,MAAA0C,qBAA2BD;CAKzB,IAAAE;AAAA,KAAA3C,EAAA,QAAA4C,OAAAC,IAAA,4BAAA,EAAA;AAG6BF,QAAA,EAAAG,aAAe,QAAQ;AAAA9C,IAAA,MAAA2C;OAAAA,OAAA3C,EAAA;CAAtD,MAAA,EAAA+C,aAAqB1H,UAAUsH,IAAwB;CACV,IAAAK;AAAA,KAAAhD,EAAA,QAAAT,cAAA;AAGtByD,SAAA1E,WAAAW,YAAAgE,SAAA;AAMrB,OAAIA,MAAIzE,WAAY,QACX;AAIT,OAAI,CAACe,aAAY,QACR;GAIT,MAAA2D,cAAoBjE,WAAUkE,MACrB,CAAAC,aACO,CAAAC,MACP,MAAM,CAAArE,OACLsE,OAA0B;AAGpC,OAAIJ,YAAWK,WAAY,EAAC,QACnB;GAIT,MAAAC,kBAAkC,EAAE;AAGpCA,mBAAepG,KAAMkB,UAAS8E,aAAc,CAAC;AAG7C,OAAIH,MAAI1E,YAAcqD,MAAK6B,QAASR,KAAI1E,SAAU,CAChDiF,iBAAepG,KAAK,GACf6F,KAAI1E,SAAS0D,IAAKyB,OACvB,CAAC;AACF,UAGMR,YAAWS,OAAOC,eACvBJ,gBAAeK,MAAMC,SAAUA,KAAIC,SAAUH,WAAW,CAC1D,CAAC;;AACF5D,IAAA,MAAAT;AAAAS,IAAA,MAAAgD;OAAAA,OAAAhD,EAAA;CA5CD,MAAAgE,iBAAuBhB;CA4CrB,IAAAiB;AAAA,KAAAjE,EAAA,QAAAgE,kBAAAhE,EAAA,QAAAnB,aAAA;AAGuBoF,SAAAnH,UAAA;GACvB,MAAAoH,OAAarF,YAAWsE,MAAO;AAG/B,OAAI,CAACe,KAAI,QACApH;AAUT,OANoBoH,KAAId,aACR,CAAAC,MACP,MAAM,CAAArE,OACLoF,OAA0B,CAGrBb,WAAY,EAAC,QACnBzG;GAIT,MAAAuH,eAAoBC,SAAA;IAClB,MAAAC,SAAsB,EAAE;AAExB,SAAK,MAAAtH,QAAcqH,KACjB,KAAIrH,KAAIC,SAAU,WAAS;KACzB,MAAAsH,mBAAyBH,YAAYpH,KAAIE,WAAY;AAErD,SAAIqH,iBAAgBjB,OAClBgB,QAAMnH,KAAM;MAAA,GACPH;MAAIE,YACKqH;MACb,CAAC;eAKAR,eAFS/G,KAAIqB,aAAcoG,OAAOzH,KAAI0H,YAAJ,GAAoB,EAEjCT,MAAMjH,KAAI6C,MAAO,CACxCyE,QAAMnH,KAAMH,KAAK;AAGtB,WAEMsH;;AACP,UAEKF,YAAYvH,MAAM;;AAC1BkD,IAAA,MAAAgE;AAAAhE,IAAA,MAAAnB;AAAAmB,IAAA,MAAAiE;OAAAA,OAAAjE,EAAA;CA9CD,MAAA4E,mBAAyBX;CAwDzB,MAAAnC,YAAkBtG,aAPK;EAAA,GAClB8G;EAAawC,UACNxC,cAAawC;EAAkC9F,QACjD4F;EAAgBG,uBACD;EACxB,CAE6C;CAE9C,MAAAC,kBAAwB,CAAA,GAAIlD,UAASC,WAAY;AAC7BiD,iBAAenB,KAAMoB,OAAkC;CAM3E,MAAAC,SAAehK,OAAO;CACtB,MAAAiK,SAAe,GAAGxE,MAAA,cAAoBuE,SAAQ;CAAQ,IAAAE;AAAA,KAAApF,EAAA,QAAAmF,QAAA;AACpCC,SAAAC,UAChB,GAAGF,OAAM,UAAWG,mBAAmBZ,OAAOrH,MAAI,CAAC;AAAE2C,IAAA,MAAAmF;AAAAnF,IAAA,MAAAoF;OAAAA,OAAApF,EAAA;CADvD,MAAAuF,YAAkBH;CAIlB,MAAA,CAAAI,YAAAC,iBAAoC5K,MAAKO,SAAsB,KAAK;CACpE,MAAAsK,gBAAsBvK,OAAmB,KAAK;CAG9C,MAAAwK,0BAAgC,CAAA,GAAIf,iBAAiBI,gBAAgB,CAAC;CAEtE,MAAAY,mBAAyBD,wBAAuBpC,SAAU;CAC1D,MAAAsC,kBAAwBF,wBAAuB9B,KAC7CiC,OACD;CAGD,MAAAC,gCACElJ,gBAAgB8I,wBAAwB,CAAAxH,MACtC6H,UAAS,CAAClE,UAASmE,iBAAiBxI,WAAYJ,MAC1C,CAAC,IAFT;CAKF,MAAA6I,UAAgB/K,OAAyB,KAAK;CAG9C,MAAA,EAAAgL,cAAsB7K,QACpB;EAAA,GACKgH;EAAa,cACFpC,EAAE,oBAAoB,eAAe;EAAA6E,uBAC5B;EACxB,EACDjD,WACAoE,QACD;CAGD,MAAAE,gBAAyC,EAAE;CAC3C,IAAAC,iBAAqB;AAErBV,yBAAuBW,SAASC,WAAA;AAC9B,MAAItD,OAAI/F,SAAU,WAAS;AACzB,OAAI,CAACmJ,eACHD,eAAahJ,KACX,oBAAC;IAEM,MAAA;IACY,oBAAA;MAFZ,WAAWsH,OAAOzB,OAAI5F,IAAK,GAIpC,CAAC;AAGH+I,iBAAahJ,KACX,oBAAC;IAEO6F,MAAAA;IACKsC;IACJzD,OAAAA;IACC,QAAAQ,cAAakE;IACT,YAAAlE,cAAamE;IACV,eAAAnE,cAAaoE;IACtBjH;MAPDwD,OAAI5F,IASb,CAAC;AAEDgJ,oBAAiBA;AAAH;;EAIhB,IAAAM,WACE,oBAAC;GAEK,IAAApB,UAAUtC,OAAI5F,IAAI;GAChB4F,MAAAA;GACCnB,OAAAA;GACC,QAAAQ,cAAamE;GACfhH;GACI,UAAAwD,OAAIpC;KANToC,OAAI5F,IAOT;AAIJ,MAAI4F,OAAInD,MAAM8G,QACZD,YAAW1D,OAAInD,MAAM8G,QAASD,SAAS;AAIzCP,gBAAahJ,KAAMvC,MAAKgM,aAAcF,UAAU,EAAAtJ,KAAO4F,OAAI5F,KAAM,CAAC,CAAC;GACnE;CAAA,IAAAyJ;CAAA,IAAAC;AAAA,KAAA/G,EAAA,QAAAR,WAAA;AAGcsH,cAAA;AACd,OAAItH,aAAa6B,eAAc2F,SAAQ;IAGrC,MAAAC,YAAkBC,iBAAW;AAC3B,SAAI7F,eAAc2F,QAChB3F,gBAAc2F,QAAQG,OAAQ;OAE/B,EAAE;AAAC,iBAEOC,aAAaH,UAAU;;;AAErCF,QAAA,CAACvH,UAAU;AAAAQ,IAAA,MAAAR;AAAAQ,IAAA,MAAA8G;AAAA9G,IAAA,MAAA+G;QAAA;AAAAD,QAAA9G,EAAA;AAAA+G,QAAA/G,EAAA;;AAZdnF,OAAKwM,UAAWP,KAYbC,IAAY;CAAA,IAAAO;CAAA,IAAAC;AAAA,KAAAvH,EAAA,QAAAR,aAAAQ,EAAA,QAAAsB,aAAA9B,WAAA;AAGC8H,cAAA;AAEd,OAAI9H,aAAa8B,aAAY9B,aAAc6B,eAAc2F,SAAQ;IAE/D,MAAAQ,cAAkBN,iBAAW;AAC3B,SAAI7F,eAAc2F,QAChB3F,gBAAc2F,QAAQG,OAAQ;OAE/B,GAAG;AAAC,iBAEMC,aAAaH,YAAU;;;AAErCM,QAAA,CAAC/H,WAAW8B,aAAY9B,UAAW;AAAAQ,IAAA,MAAAR;AAAAQ,IAAA,MAAAsB,aAAA9B;AAAAQ,IAAA,MAAAsH;AAAAtH,IAAA,MAAAuH;QAAA;AAAAD,QAAAtH,EAAA;AAAAuH,QAAAvH,EAAA;;AAZtCnF,OAAKwM,UAAWC,KAYbC,IAAoC;CAGvC,MAAAE,qBAA2BtM,OAAe,GAAG;CAAC,IAAAuM;AAAA,KAAA1H,EAAA,QAAA+F,2BAAA/F,EAAA,QAAA4F,oBAAA5F,EAAA,QAAAnB,eAAAmB,EAAA,QAAAyF,iBAAAzF,EAAA,QAAA8B,UAAAmE,kBAAA;AAG9ByB,cAAA;GACd,MAAAC,qBAA2B9I,YAAWsE,MAAO;AAI7C,OAAIwE,uBAHoBF,mBAAkBT,WAGIW,uBAAuB,IAAE;IACrE,MAAAE,qBAA2B9B,yBAAyB;AAEpD,QAAI8B,sBAAAjC,kBAAsC;AAExC9D,eAASmE,iBAAiBR,cAAeoC,mBAAmB;AAC5DpC,mBAAcoC,mBAAmB;AACjCnC,mBAAasB,UAAWa;WAAH;AAGrB/F,eAASmE,iBAAiBR,cAAe,KAAK;AAC9CA,mBAAc,KAAK;AACnBC,mBAAasB,UAAW;;;AAK5BS,sBAAkBT,UAAWW;;AAC9B3H,IAAA,MAAA+F;AAAA/F,IAAA,MAAA4F;AAAA5F,IAAA,MAAAnB;AAAAmB,IAAA,MAAAyF;AAAAzF,IAAA,MAAA8B,UAAAmE;AAAAjG,IAAA,MAAA0H;OAAAA,OAAA1H,EAAA;CAAA,IAAA8H;AAAA,KAAA9H,EAAA,QAAA+F,2BAAA/F,EAAA,QAAA4F,oBAAA5F,EAAA,QAAAnB,aAAA;AAAEiJ,QAAA;GAACjJ;GAAakH;GAAyBH;GAAiB;AAAA5F,IAAA,MAAA+F;AAAA/F,IAAA,MAAA4F;AAAA5F,IAAA,MAAAnB;AAAAmB,IAAA,MAAA8H;OAAAA,OAAA9H,EAAA;AAvB3DnF,OAAKwM,UAAWK,KAuBbI,IAAyD;CAG5D,MAAAC,kBAAuBC,MAAA;AACrBA,IAACC,gBAAiB;EAElB,MAAA,EAAAhC,qBAA6BnE;EAE7B,MAAAvE,aAAmBmI,cAAasB,WAAYf,iBAAgBT;EAC5D,MAAA0C,UAAgB5K,kBACdT,gBAAgB8I,wBAAwB,EACxCpI,YACAyK,EAAC3K,QAAS,cAAV,IAAA,KACA8K,UAASlC,iBAAgBxI,WAAYJ,MACvC,CAAC;AAED,MAAI6K,WAAW,MAAI;AACjBjC,oBAAgBR,cAAeyC,QAAQ;AACvCzC,iBAAcyC,QAAQ;AACtBxC,iBAAasB,UAAWkB;;;CAE1B,IAAAE;AAAA,KAAApI,EAAA,QAAAsC,iBAAAtC,EAAA,QAAA8B,UAAAC,YAAA;AAGoBqG,SAAAC,UAAA;GACpB,MAAAC,SAAaxG,UAASC,WAAWwG,QAASlL,MAAI;AAE9C,OAAI,CAACJ,OAAI;GAGT,MAAAuL,aAAkBlG,cAAoBzB;AACtC,OAAIA,WACFA,YAASxD,MAAI;AAGf,OAAIJ,OAAI6C,OAAgBe,SACtB5D,QAAI6C,MAAMe,SAAUxD,MAAI;;AAE3B2C,IAAA,MAAAsC;AAAAtC,IAAA,MAAA8B,UAAAC;AAAA/B,IAAA,MAAAoI;OAAAA,OAAApI,EAAA;CAdD,MAAAyI,gBAAsBL;CAcpB,IAAAM;AAAA,KAAA1I,EAAA,QAAAsB,gBAAAtB,EAAA,QAAAwF,cAAAxF,EAAA,QAAA8B,UAAAmE,oBAAAjG,EAAA,QAAAyI,eAAA;AAIsBC,SAAAC,QAAA;GACtB,MAAAC,oBACEpD,cAAc1D,UAASmE,iBAAiBT;AAE1C,OAAIoD,qBAAqB,KAAI;AAE7BZ,OAACC,gBAAiB;AAElB,OAAInG,UAASmE,iBAAiB4C,kBAAmB,OAC/C/G,WAASmE,iBAAiB6C,OAAQF,kBAAkB;OAEpDH,eAAcG,kBAAkB;GAIlC,MAAA,EAAAG,SAAAC,kBAAmC1H;AACnC,OAAIyH,WAAWC,kBAAkB,MAC/BD,UAAS;;AAEZ/I,IAAA,MAAAsB;AAAAtB,IAAA,MAAAwF;AAAAxF,IAAA,MAAA8B,UAAAmE;AAAAjG,IAAA,MAAAyI;AAAAzI,IAAA,MAAA0I;OAAAA,OAAA1I,EAAA;CAnBD,MAAAiJ,kBAAwBP;CAmBtB,IAAAQ;AAAA,KAAAlJ,EAAA,QAAAiJ,mBAAAjJ,EAAA,QAAA+H,kBAAA/H,EAAA,QAAA0C,sBAAA1C,EAAA,QAAAnB,aAAA;AAE0BqK,SAAAC,QAAA;AAC1B,OAAInB,IAAC3K,QAAS,eAAe2K,IAAC3K,QAAS,UACrC0K,gBAAeC,IAAE;YACRA,IAAC3K,QAAS,WAAY2K,IAAC3K,QAAS,OAAV,CAAkBwB,YAAWsE,MAAQ,CACpE8F,iBAAgBjB,IAAE;YACTA,IAAC3K,QAAS,YAAVwB,aAAiC;AAC1CmJ,QAACC,gBAAiB;AAClBvF,uBAAmB,GAAG;;;AAEzB1C,IAAA,MAAAiJ;AAAAjJ,IAAA,MAAA+H;AAAA/H,IAAA,MAAA0C;AAAA1C,IAAA,MAAAnB;AAAAmB,IAAA,MAAAkJ;OAAAA,OAAAlJ,EAAA;CATD,MAAAoJ,sBAA4BF;CAY5B,MAAAG,kBAAwBzN,cAAckE,OAAOrF,iBAAiB;CAAC,IAAA6O;AAAA,KAAAtJ,EAAA,QAAAnB,aAAA;AAGzCyK,QAAAzK,YAAWsE,MAAO;AAAAnD,IAAA,MAAAnB;AAAAmB,IAAA,MAAAsJ;OAAAA,OAAAtJ,EAAA;CACxC,MAAAwJ,iBADsBF,IAAkB/F,SAAU,KAC3B,CAAkBqC,oBAAlB,CAAuCtG;AAG9DlF,YAAWkH,cAAc4E,QAAQ;CAKvB,MAAAuD,MAAA,CAAC,CAAC1I;CACF,MAAA2I,MAAA,CAAC,CAAC5I;CACD,MAAA6I,MAAArH,cAAasH,MAAcC;CAC9B,MAAAC,MAAAxH,cAAasH,MAAWG;CAAA,IAAAC;AAAA,KAAAhK,EAAA,QAAAyJ,OAAAzJ,EAAA,QAAA0J,OAAA1J,EAAA,QAAA2J,OAAA3J,EAAA,QAAA8J,OAAA9J,EAAA,QAAA6F,iBAAA;AALnBmE,QAAA;GAAAC,UACDpE;GAAe9E,QACjB0I;GAAQ3I,QACR4I;GAAQG,SACPF;GAA2BI,MAC9BD;GACP;AAAA9J,IAAA,MAAAyJ;AAAAzJ,IAAA,MAAA0J;AAAA1J,IAAA,MAAA2J;AAAA3J,IAAA,MAAA8J;AAAA9J,IAAA,MAAA6F;AAAA7F,IAAA,MAAAgK;OAAAA,OAAAhK,EAAA;CAND,MAAA4J,OAAaI;CAMX,IAAAE;AAAA,KAAAlK,EAAA,QAAAF,OAAA;AAQEoK,QAAAvP,gBAAgBmF,MAAM;AAAAE,IAAA,MAAAF;AAAAE,IAAA,MAAAkK;OAAAA,OAAAlK,EAAA;CAAtB,MAAAmK,MAAAD;CAAiD,IAAAG;AAAA,KAAArK,EAAA,QAAAmK,KAAA;EANrD,MAAA,EAAA,cAAAG,YAAA,mBAAAC,iBAAA,oBAAAC,kBAAA,gBAAAC,cAAA,GAAAC,QAMIP;AANJE,iBAAAK;AAMsD1K,IAAA,MAAAmK;AAAAnK,IAAA,MAAAqK;OAAAA,gBAAArK,EAAA;CAGnD,MAAA2K,KAAAlO;CAGK,MAAAiO,MAAA/J,MAAA;CAGI,MAAAiK,MAAA/O,iBAAiBwN,iBAAiBzI,OAAO;CAAA,IAAAiK;AAAA,KAAA7K,EAAA,QAAAc,UAAAd,EAAA,QAAAZ,gBAAAY,EAAA,QAAAP,MAAA;AAGhDoL,QAAA/J,UACC,oBAAC;GACM,MAAA;GACMrB,aAAAA;GACH,QAAA5D,iBAAiB,EAAAiP,QAAU,QAAQ,EAAE1L,aAAY;aAExD0B;IAEJ;AAAAd,IAAA,MAAAc;AAAAd,IAAA,MAAAZ;AAAAY,IAAA,MAAAP;AAAAO,IAAA,MAAA6K;OAAAA,OAAA7K,EAAA;CAeG,MAAA+K,MAAAvF,cAAc,OAAOD,UAAUC,WAAuB,GAAtDtE;CAIU,MAAA8J,MAAA1I,cAAc;CACT,MAAA2I,MAAA3I,cAAc;CACb,MAAA4I,MAAA5I,cAAc;CAAmB,IAAA6I;AAAA,KAAAnL,EAAA,QAAA0C,oBAAA;AACzCyI,SAAAC,QAAO1I,mBAAmBsF,IAACqD,OAAOtM,MAAO;AAAAiB,IAAA,MAAA0C;AAAA1C,IAAA,MAAAmL;OAAAA,OAAAnL,EAAA;CAAA,IAAAsL;AAAA,KAAAtL,EAAA,QAAAoJ,uBAAApJ,EAAA,QAAAmF,UAAAnF,EAAA,QAAAb,qBAAAa,EAAA,QAAApB,qBAAAoB,EAAA,QAAAnB,eAAAmB,EAAA,QAAAP,QAAAO,EAAA,QAAA+K,OAAA/K,EAAA,QAAAgL,OAAAhL,EAAA,QAAAiL,OAAAjL,EAAA,QAAAkL,OAAAlL,EAAA,QAAAmL,KAAA;AAnBrDG,QAAA,oBAAC;GACMjK,KAAAA;GACA,MAAA;GACQzC,aAAAA;GACNC,OAAAA;GACCM,QAAAA;GACGM,aAAAA;GACI0F,iBAAAA;GACV,MAAA;GACS,iBAAA;GACA,iBAAA;GAEZ,yBAAA4F;GAIU,cAAAC;GACK,mBAAAC;GACC,oBAAAC;GACR,UAAAC;GACC/B,WAAAA;IACX;AAAApJ,IAAA,MAAAoJ;AAAApJ,IAAA,MAAAmF;AAAAnF,IAAA,MAAAb;AAAAa,IAAA,MAAApB;AAAAoB,IAAA,MAAAnB;AAAAmB,IAAA,MAAAP;AAAAO,IAAA,MAAA+K;AAAA/K,IAAA,MAAAgL;AAAAhL,IAAA,MAAAiL;AAAAjL,IAAA,MAAAkL;AAAAlL,IAAA,MAAAmL;AAAAnL,IAAA,MAAAsL;OAAAA,OAAAtL,EAAA;CAAA,IAAAuL;AAAA,KAAAvL,EAAA,QAAAV,aAAAU,EAAA,QAAAE,GAAA;AAGDqL,QAAAjM,aACC,oBAAC,kCACC,oBAAC;GACM,MAAA;GACO,cAAAY,EAAE,uBAAuB,mBAAkB;GAC1C,eAAA;IAEjB,GACD;AAAAF,IAAA,MAAAV;AAAAU,IAAA,MAAAE;AAAAF,IAAA,MAAAuL;OAAAA,OAAAvL,EAAA;CAGA,MAAAwL,MAAA,CAAClM,aAAD,CAAekK,kBACd,oBAAC;EAAU,GACLrD;EACCD,KAAAA;EACDf,IAAAA;EACQ,cAAAjF,EAAE,oBAAoB,eAAc;EAC7C,IAAA;EACQT,aAAAA;EACLmK;EACE,QAAA;GAAAkB,QACE;GAAMW,WACH;GAAMC,QACT;GAACC,SACA;GACX;YAECvF;GAEJ;CAAA,IAAAwF;AAAA,KAAA5L,EAAA,QAAAd,cAAAc,EAAA,QAAAV,aAAAU,EAAA,QAAAwJ,gBAAA;AAGAoC,QAAA,CAACtM,aAADkK,kBACC,oBAAC,8BAAkBtK,aACpB;AAAAc,IAAA,MAAAd;AAAAc,IAAA,MAAAV;AAAAU,IAAA,MAAAwJ;AAAAxJ,IAAA,MAAA4L;OAAAA,OAAA5L,EAAA;CAAA,IAAA6L;AAAA,KAAA7L,EAAA,QAAAe,UAAAf,EAAA,QAAAX,gBAAAW,EAAA,QAAAP,MAAA;AAGAoM,QAAA9K,UACC,oBAAC;GACM,MAAA;GACMtB,aAAAA;GACHJ,QAAAA;aAEP0B;IAEJ;AAAAf,IAAA,MAAAe;AAAAf,IAAA,MAAAX;AAAAW,IAAA,MAAAP;AAAAO,IAAA,MAAA6L;OAAAA,OAAA7L,EAAA;CAAA,IAAA8L;AAAA,KAAA9L,EAAA,QAAA2K,MAAA3K,EAAA,QAAAoB,UAAApB,EAAA,QAAA4J,QAAA5J,EAAA,QAAAP,QAAAO,EAAA,QAAA0K,OAAA1K,EAAA,QAAA4K,OAAA5K,EAAA,QAAA6K,OAAA7K,EAAA,QAAAsL,OAAAtL,EAAA,QAAAuL,OAAAvL,EAAA,QAAAwL,OAAAxL,EAAA,SAAA4L,OAAA5L,EAAA,SAAA6L,OAAA7L,EAAA,SAAAqK,cAAA;AAzFHyB,QAAA,qBAAC;GAAiB,GACZzB;GACCjJ,KAAAA;GACD,IAAAsJ;GACOjL,aAAAA;GACLmK;GACE,QAAAgB;;IAGPC;IAWDS;IAwBCC;IAWAC;IAqBAI;IAKAC;;IASiB;AAAA7L,IAAA,MAAA2K;AAAA3K,IAAA,MAAAoB;AAAApB,IAAA,MAAA4J;AAAA5J,IAAA,MAAAP;AAAAO,IAAA,MAAA0K;AAAA1K,IAAA,MAAA4K;AAAA5K,IAAA,MAAA6K;AAAA7K,IAAA,MAAAsL;AAAAtL,IAAA,MAAAuL;AAAAvL,IAAA,MAAAwL;AAAAxL,IAAA,OAAA4L;AAAA5L,IAAA,OAAA6L;AAAA7L,IAAA,OAAAqK;AAAArK,IAAA,OAAA8L;OAAAA,OAAA9L,EAAA;AAAA,QA1FpB8L;;AA5bJ,SAAAhG,OAAAiG,QAAA;AAAA,QAgNc9I,OAAI/F,SAAU;;AAhN5B,SAAA+H,OAAA+G,QAAA;AAAA,QA4LqD/I,OAAI/F,SAAU;;AA5LnE,SAAAkH,OAAA6H,QAAA;AAAA,QA6IwBC,OAAI3I,SAAU;;AA7ItC,SAAAG,OAAAyI,SAAA;AAAA,QAsHkDA,QAAO/I,aAAc;;AAtHvE,SAAAE,OAAA4I,MAAA;AAAA,QAsGwBA,KAAI3I,SAAU;;AAtGtC,SAAApB,OAAAiK,OAAA;AAAA,QAoD0D1H,OAAOrH,MAAI;;AApDrE,SAAA6E,MAAA7E,KAAA;AAAA,QAgD0BqH,OAAOrH,IAAI;;AA2erC,MAAMgP,eAAexR,MAAMyR,WAAWzM,YAAY;AAMlD,MAAM4M,gBAAgBC,OAAOC,OAAON,cAAc;CAChDO,SAASxQ;CACTL;CACAR;CACAsR,aAAa;CACd,CAAC"}
1
+ {"version":3,"file":"CommandMenu.js","names":["useObjectRef","useSyncRef","CollectionChildren","FocusStrategy","Key","BasePropsWithoutChildren","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","Styles","React","KeyboardEvent","ReactElement","ReactNode","Ref","useId","useRef","useState","useFilter","useMenu","Section","useTreeState","useI18n","LoadingIcon","mergeProps","extractStyles","mergeStyleLayers","useMenuContext","CubeMenuProps","getMenuItemReactKey","MenuCollectionItem","Item","MenuItem","MenuSection","MenuTrigger","StyledDivider","StyledFooter","StyledHeader","StyledMenu","StyledCommandMenu","StyledEmptyState","StyledLoadingWrapper","StyledSearchInput","collectItemKeys","nodes","Iterable","keys","node","type","childNodes","push","key","getNextEnabledKey","currentKey","direction","isDisabled","isEnabled","index","indexOf","ahead","slice","Math","max","reverse","ordered","find","CommandMenuItem","id","textValue","keywords","forceMount","CubeCommandMenuProps","Omit","T","searchPlaceholder","searchValue","onSearchChange","value","filter","inputValue","emptyLabel","searchInputStyles","headerStyles","footerStyles","isLoading","shouldFilter","autoFocus","size","selectedKeys","defaultSelectedKeys","onSelectionChange","CommandMenu","props","ref","$","_c","t","t0","controlledSearchValue","customFilter","t1","t2","t3","t4","t5","qa","styles","onAction","header","footer","restMenuProps","t6","undefined","t7","domRef","searchInputRef","instanceId","menuId","contextProps","ariaSelectedKeys","Set","ariaDefaultSelectedKeys","handleSelectionChange","allKeys","Array","from","treeState","collection","getKeys","map","_temp","_temp2","t8","key_1","completeProps","internalSearchValue","setInternalSearchValue","t9","handleSearchChange","t10","Symbol","for","sensitivity","contains","t11","item","searchWords","trim","toLowerCase","split","_temp3","length","searchableTexts","isArray","_temp4","every","searchWord","some","text","includes","enhancedFilter","t12","term","searchWords_0","_temp5","filterNodes","iter","result","filteredChildren","text_0","String","rendered","collectionFilter","treeStateProps","children","shouldUseVirtualFocus","itemId","key_2","item_0","getItem","actions","href","encodeURIComponent","collectionItems","_temp6","focusedKey","selectionManager","filteredCollectionItems","hasFilteredItems","viewHasSections","_temp7","findFirstSelectableItem","key_3","menuRef","menuProps","renderedItems","isFirstSection","forEach","item_3","reactKey","sectionStyles","itemStyles","sectionHeadingStyles","menuItem","wrapper","cloneElement","t13","t14","current","timeoutId","setTimeout","focus","clearTimeout","useEffect","t15","t16","timeoutId_0","prevSearchValueRef","currentSearchValue","prevSearchValue","firstSelectableKey","setFocusedKey","handleArrowKey","e","preventDefault","nextKey","key_4","handleActionKey","e_0","stopPropagation","repeat","item_4","ownerDocument","getElementById","shouldActivate","dispatchEvent","window","code","ctrlKey","metaKey","altKey","shiftKey","bubbles","cancelable","MouseEvent","detail","handleSearchKeyDown","e_1","nativeEvent","isComposing","extractedStyles","t17","hasSearchTerm","showEmptyState","activeDescendant","t18","t19","t20","mods","popover","t21","tray","t22","sections","t23","t24","Record","wrapperProps","_ariaLabel","_ariaLabelledBy","_ariaDescribedBy","_ariaDetails","t25","T0","t26","t27","border","t28","t29","t30","t31","t32","t33","e_2","target","t34","t35","t36","boxShadow","radius","padding","t37","t38","t39","item_2","item_1","word_0","word","keyword","key_0","_CommandMenu","forwardRef","RefAttributes","HTMLDivElement","__CommandMenu","Object","assign","Trigger","displayName"],"sources":["../../../../src/components/actions/CommandMenu/CommandMenu.tsx"],"sourcesContent":["import { useObjectRef, useSyncRef } from '@react-aria/utils';\nimport { CollectionChildren, FocusStrategy, Key } from '@react-types/shared';\nimport {\n BasePropsWithoutChildren,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n Styles,\n} from '@tenphi/tasty';\nimport React, {\n KeyboardEvent,\n ReactElement,\n ReactNode,\n Ref,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { useFilter, useMenu } from 'react-aria';\nimport { Section, useTreeState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { useMenuContext } from '../Menu/context';\nimport { CubeMenuProps } from '../Menu/Menu';\nimport {\n getMenuItemReactKey,\n MenuCollectionItem as Item,\n} from '../Menu/MenuCollectionItem';\nimport { MenuItem } from '../Menu/MenuItem';\nimport { MenuSection } from '../Menu/MenuSection';\nimport { MenuTrigger } from '../Menu/MenuTrigger';\nimport {\n StyledDivider,\n StyledFooter,\n StyledHeader,\n StyledMenu,\n} from '../Menu/styled';\n\nimport {\n StyledCommandMenu,\n StyledEmptyState,\n StyledLoadingWrapper,\n StyledSearchInput,\n} from './styled';\n\n/** The keys of the items in `nodes`, in order, including those in sections. */\nfunction collectItemKeys(nodes: Iterable<any>, keys: Key[] = []): Key[] {\n for (const node of nodes) {\n if (node?.type === 'section') {\n collectItemKeys(node.childNodes ?? [], keys);\n } else if (node?.type === 'item') {\n keys.push(node.key);\n }\n }\n\n return keys;\n}\n\n/**\n * The key an arrow press moves to: the next enabled key after `currentKey` in\n * `direction`, wrapping round to the first enabled key in that direction (the\n * last one going up). With nothing focused, or the focused key filtered out,\n * it returns that key.\n */\nfunction getNextEnabledKey(\n keys: Key[],\n currentKey: Key | null,\n direction: 1 | -1,\n isDisabled: (key: Key) => boolean,\n): Key | null {\n const isEnabled = (key: Key) => !isDisabled(key);\n const index = currentKey == null ? -1 : keys.indexOf(currentKey);\n const ahead =\n direction === 1\n ? keys.slice(index + 1)\n : keys.slice(0, Math.max(index, 0)).reverse();\n const ordered = direction === 1 ? keys : [...keys].reverse();\n\n return ahead.find(isEnabled) ?? ordered.find(isEnabled) ?? null;\n}\n\nexport interface CommandMenuItem {\n // Standard item props\n id: string;\n textValue: string;\n\n // Enhanced search features\n keywords?: string[];\n forceMount?: boolean;\n\n // Standard Menu item props inherited\n [key: string]: any;\n}\n\nexport interface CubeCommandMenuProps<T>\n extends BasePropsWithoutChildren,\n ContainerStyleProps,\n Omit<\n CubeMenuProps<T>,\n 'selectedKeys' | 'defaultSelectedKeys' | 'onSelectionChange'\n > {\n // Search-specific props\n searchPlaceholder?: string;\n searchValue?: string;\n onSearchChange?: (value: string) => void;\n filter?: (textValue: string, inputValue: string) => boolean;\n emptyLabel?: ReactNode;\n searchInputStyles?: Styles;\n headerStyles?: Styles;\n footerStyles?: Styles;\n\n // Advanced search features\n isLoading?: boolean;\n shouldFilter?: boolean;\n\n // Focus management - override the autoFocus from CubeMenuProps to allow boolean | FocusStrategy\n autoFocus?: boolean | FocusStrategy;\n\n // Size prop\n size?: 'medium' | 'large' | (string & {});\n\n /** Currently selected keys (controlled) */\n selectedKeys?: string[];\n /** Initially selected keys (uncontrolled) */\n defaultSelectedKeys?: string[];\n /** Handler for selection changes */\n onSelectionChange?: (keys: string[]) => void;\n}\n\nfunction CommandMenu<T extends object>(\n props: CubeCommandMenuProps<T>,\n ref: Ref<HTMLDivElement>,\n) {\n const { t } = useI18n();\n\n const {\n searchPlaceholder = t(\n 'commandMenu.searchPlaceholder',\n 'Search commands...',\n ),\n searchValue: controlledSearchValue,\n onSearchChange,\n filter: customFilter,\n emptyLabel = t('commandMenu.empty', 'No commands found'),\n searchInputStyles,\n headerStyles,\n footerStyles,\n isLoading = false,\n shouldFilter = true,\n autoFocus = true,\n size = 'medium',\n qa,\n styles,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n onAction,\n header,\n footer,\n ...restMenuProps\n } = props;\n\n const domRef = useObjectRef(ref);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const instanceId = useId();\n const menuId = `${qa || 'CommandMenu'}-${instanceId}-menu`;\n const contextProps = useMenuContext();\n\n // Convert string[] to Set<Key> for React Aria compatibility\n const ariaSelectedKeys = selectedKeys ? new Set(selectedKeys) : undefined;\n const ariaDefaultSelectedKeys = defaultSelectedKeys\n ? new Set(defaultSelectedKeys)\n : undefined;\n\n const handleSelectionChange = onSelectionChange\n ? (keys: 'all' | Set<Key>) => {\n if (keys === 'all') {\n // Handle 'all' selection case - collect all available keys\n const allKeys = Array.from(treeState.collection.getKeys()).map(\n (key: any) => String(key),\n );\n onSelectionChange(allKeys);\n } else if (keys instanceof Set) {\n onSelectionChange(Array.from(keys).map((key) => String(key)));\n } else {\n onSelectionChange([]);\n }\n }\n : undefined;\n\n const completeProps = mergeProps(contextProps, restMenuProps, {\n onAction: onAction ? (key: Key) => onAction(key) : undefined,\n selectedKeys: ariaSelectedKeys,\n defaultSelectedKeys: ariaDefaultSelectedKeys,\n onSelectionChange: handleSelectionChange,\n });\n\n // Search state management\n const [internalSearchValue, setInternalSearchValue] = useState('');\n const searchValue = controlledSearchValue ?? internalSearchValue;\n\n const handleSearchChange = (value: string) => {\n if (controlledSearchValue === undefined) {\n setInternalSearchValue(value);\n }\n onSearchChange?.(value);\n };\n\n // Filter setup\n const { contains } = useFilter({ sensitivity: 'base' });\n const textFilterFn = customFilter || contains;\n\n // Enhanced filter function that supports keywords and forceMount\n const enhancedFilter = (\n textValue: string,\n inputValue: string,\n item?: any,\n ) => {\n // Always show force-mounted items\n if (item?.forceMount) {\n return true;\n }\n\n // If shouldFilter is false, show all items\n if (!shouldFilter) {\n return true;\n }\n\n // Split input value into individual words and filter out empty strings\n const searchWords = inputValue\n .trim()\n .toLowerCase()\n .split(/\\s+/)\n .filter((word) => word.length > 0);\n\n // If no search words, show all items\n if (searchWords.length === 0) {\n return true;\n }\n\n // Collect all searchable text for this item\n const searchableTexts: string[] = [];\n\n // Add main text value\n searchableTexts.push(textValue.toLowerCase());\n\n // Add keywords if available\n if (item?.keywords && Array.isArray(item.keywords)) {\n searchableTexts.push(\n ...item.keywords.map((keyword: string) => keyword.toLowerCase()),\n );\n }\n\n // Check if ALL search words match at least one of the searchable texts\n return searchWords.every((searchWord) =>\n searchableTexts.some((text) => text.includes(searchWord)),\n );\n };\n\n // Collection filter for React Stately\n const collectionFilter = (nodes: Iterable<any>): Iterable<any> => {\n const term = searchValue.trim();\n\n // If no search term, return all nodes\n if (!term) {\n return nodes;\n }\n\n // Split search term into words for multi-word filtering\n const searchWords = term\n .toLowerCase()\n .split(/\\s+/)\n .filter((word) => word.length > 0);\n\n // If no valid search words, return all nodes\n if (searchWords.length === 0) {\n return nodes;\n }\n\n // Recursive helper to filter sections and items\n const filterNodes = (iter: Iterable<any>): any[] => {\n const result: any[] = [];\n\n for (const node of iter) {\n if (node.type === 'section') {\n const filteredChildren = filterNodes(node.childNodes);\n\n if (filteredChildren.length) {\n result.push({\n ...node,\n childNodes: filteredChildren,\n });\n }\n } else {\n const text = node.textValue ?? String(node.rendered ?? '');\n\n if (enhancedFilter(text, term, node.props)) {\n result.push(node);\n }\n }\n }\n\n return result;\n };\n\n return filterNodes(nodes);\n };\n\n // Create tree state with filter for both keyboard navigation and rendering\n const treeStateProps = {\n ...completeProps,\n children: completeProps.children as CollectionChildren<T>,\n filter: collectionFilter,\n shouldUseVirtualFocus: true, // Always use virtual focus for CommandMenu\n };\n\n const treeState = useTreeState(treeStateProps);\n const itemId = (key: Key) => {\n const item = treeState.collection.getItem(key);\n const actions = item?.props.actions;\n // A plain command's layout and semantic target share the consumer's DOM id.\n if (\n item?.props.id != null &&\n item.props.href == null &&\n (!actions || actions === true)\n )\n return String(item.props.id);\n return `${menuId}-option-${typeof key}-${encodeURIComponent(String(key))}`;\n };\n\n const collectionItems = [...treeState.collection];\n const hasSections = collectionItems.some((item) => item.type === 'section');\n\n const focusedKey = treeState.selectionManager.focusedKey;\n\n // Apply filtering to collection items for rendering and empty state checks\n const filteredCollectionItems = [...collectionFilter(collectionItems)];\n\n const hasFilteredItems = filteredCollectionItems.length > 0;\n const viewHasSections = filteredCollectionItems.some(\n (item) => item.type === 'section',\n );\n\n // Helper function to find the first selectable item from filtered results\n const findFirstSelectableItem = () =>\n collectItemKeys(filteredCollectionItems).find(\n (key) => !treeState.selectionManager.isDisabled(key),\n ) ?? null;\n\n // Create a ref for the menu container\n const menuRef = useRef<HTMLUListElement>(null);\n\n // Use menu hook for accessibility\n const { menuProps } = useMenu(\n {\n ...completeProps,\n 'aria-label': t('commandMenu.menu', 'Command menu'),\n shouldUseVirtualFocus: true,\n },\n treeState,\n menuRef,\n );\n\n // Manual rendering of menu items (similar to Menu component)\n const renderedItems: React.ReactNode[] = [];\n let isFirstSection = true;\n\n filteredCollectionItems.forEach((item) => {\n const reactKey = getMenuItemReactKey(item.key);\n if (item.type === 'section') {\n if (!isFirstSection) {\n renderedItems.push(\n <StyledDivider\n key={`divider-${reactKey}`}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n />,\n );\n }\n\n renderedItems.push(\n <MenuSection\n key={reactKey}\n item={item}\n state={treeState}\n styles={completeProps.sectionStyles}\n itemStyles={completeProps.itemStyles}\n headingStyles={completeProps.sectionHeadingStyles}\n size={size}\n itemId={itemId}\n />,\n );\n\n isFirstSection = false;\n return;\n }\n\n let menuItem = (\n <MenuItem\n key={reactKey}\n item={item}\n state={treeState}\n styles={completeProps.itemStyles}\n size={size}\n id={itemId(item.key)}\n />\n );\n\n // Apply custom wrapper if provided\n if (item.props.wrapper) {\n menuItem = item.props.wrapper(menuItem);\n }\n\n // Ensure every child has a stable key, even if the wrapper component didn't set one.\n renderedItems.push(React.cloneElement(menuItem, { key: reactKey }));\n });\n\n // Auto-focus search input\n React.useEffect(() => {\n if (autoFocus && searchInputRef.current) {\n // Use a small timeout to ensure the element is visible and focusable\n // This is especially important when the CommandMenu is opened in a popover\n const timeoutId = setTimeout(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }, 0);\n\n return () => clearTimeout(timeoutId);\n }\n }, [autoFocus]);\n\n // Also focus when the component becomes visible (for trigger/popover usage)\n React.useEffect(() => {\n // Check if autoFocus is enabled and we're in a trigger context\n if (autoFocus && contextProps.autoFocus && searchInputRef.current) {\n // Use a small timeout to ensure the popover is fully rendered\n const timeoutId = setTimeout(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }, 50); // Slightly longer timeout for popover context\n\n return () => clearTimeout(timeoutId);\n }\n }, [autoFocus, contextProps.autoFocus]);\n\n // Track the previous search value to only run auto-focus when search actually changes\n const prevSearchValueRef = useRef<string>('');\n\n // Auto-focus first item when search value changes (but not on initial render)\n React.useEffect(() => {\n const currentSearchValue = searchValue.trim();\n const prevSearchValue = prevSearchValueRef.current;\n\n // Only auto-focus when search value actually changes\n if (currentSearchValue !== prevSearchValue && currentSearchValue !== '') {\n const firstSelectableKey = findFirstSelectableItem();\n\n if (firstSelectableKey != null && hasFilteredItems) {\n // Focus the first item in the selection manager\n treeState.selectionManager.setFocusedKey(firstSelectableKey);\n } else {\n // Clear focus if no items are available\n treeState.selectionManager.setFocusedKey(null);\n }\n }\n\n // Update the previous search value\n prevSearchValueRef.current = currentSearchValue;\n }, [searchValue, findFirstSelectableItem, hasFilteredItems]);\n\n // ---- search input keyboard ----------------------------------------------\n const handleArrowKey = (e: KeyboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n\n const { selectionManager } = treeState;\n const currentKey = selectionManager.focusedKey;\n const nextKey = getNextEnabledKey(\n collectItemKeys(filteredCollectionItems),\n currentKey,\n e.key === 'ArrowDown' ? 1 : -1,\n (key) => selectionManager.isDisabled(key),\n );\n\n if (nextKey != null) {\n selectionManager.setFocusedKey(nextKey);\n }\n };\n\n // Use the rendered item's Aria handlers for commands, selection and navigation.\n const handleActionKey = (e: KeyboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n e.stopPropagation();\n if (\n e.repeat ||\n focusedKey == null ||\n treeState.selectionManager.isDisabled(focusedKey)\n )\n return;\n const item = menuRef.current?.ownerDocument.getElementById(\n itemId(focusedKey),\n );\n if (!item || !menuRef.current?.contains(item)) return;\n const shouldActivate = item.dispatchEvent(\n new window.KeyboardEvent('keydown', {\n key: e.key,\n code: e.code,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n shiftKey: e.shiftKey,\n bubbles: true,\n cancelable: true,\n }),\n );\n // An anchor's Enter handler leaves its native default action to the browser.\n if (shouldActivate && e.key === 'Enter') {\n item.dispatchEvent(\n new window.MouseEvent('click', {\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n shiftKey: e.shiftKey,\n bubbles: true,\n cancelable: true,\n detail: 1,\n }),\n );\n }\n // The real keyup belongs to the search input, so balance the item's press here.\n item.dispatchEvent(\n new window.KeyboardEvent('keyup', {\n key: e.key,\n code: e.code,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n shiftKey: e.shiftKey,\n bubbles: true,\n cancelable: true,\n }),\n );\n };\n\n const handleSearchKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.nativeEvent.isComposing) return;\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n handleArrowKey(e);\n } else if (e.key === 'Enter' || (e.key === ' ' && !searchValue.trim())) {\n handleActionKey(e);\n } else if (e.key === 'Escape' && searchValue) {\n e.preventDefault();\n handleSearchChange('');\n }\n };\n\n // Extract styles\n const extractedStyles = extractStyles(props, CONTAINER_STYLES);\n\n // Determine if we should show empty state based on actual filtered collection\n const hasSearchTerm = searchValue.trim().length > 0;\n const showEmptyState = hasSearchTerm && !hasFilteredItems && !isLoading;\n const activeDescendant =\n !isLoading &&\n !showEmptyState &&\n focusedKey != null &&\n collectItemKeys(filteredCollectionItems).includes(focusedKey)\n ? itemId(focusedKey)\n : undefined;\n\n // Sync refs\n useSyncRef(contextProps, menuRef);\n\n // Determine mods based on menu context\n const mods = {\n sections: viewHasSections,\n footer: !!footer,\n header: !!header,\n popover: completeProps.mods?.popover,\n tray: completeProps.mods?.tray,\n };\n\n const {\n 'aria-label': _ariaLabel,\n 'aria-labelledby': _ariaLabelledBy,\n 'aria-describedby': _ariaDescribedBy,\n 'aria-details': _ariaDetails,\n ...wrapperProps\n } = filterBaseProps(props) as Record<string, unknown>;\n\n return (\n <StyledCommandMenu\n {...wrapperProps}\n ref={domRef}\n qa={qa || 'CommandMenu'}\n data-size={size}\n mods={mods}\n styles={mergeStyleLayers(extractedStyles, styles)}\n >\n {/* Header */}\n {header && (\n <StyledHeader\n role=\"presentation\"\n data-size={size}\n styles={mergeStyleLayers({ border: 'none' }, headerStyles)}\n >\n {header}\n </StyledHeader>\n )}\n\n {/* Search Input */}\n <StyledSearchInput\n ref={searchInputRef}\n type=\"search\"\n placeholder={searchPlaceholder}\n value={searchValue}\n styles={searchInputStyles}\n data-size={size}\n aria-label={completeProps['aria-label'] ?? searchPlaceholder}\n aria-labelledby={completeProps['aria-labelledby']}\n aria-describedby={completeProps['aria-describedby']}\n aria-details={completeProps['aria-details']}\n aria-controls={!isLoading && !showEmptyState ? menuId : undefined}\n role=\"searchbox\"\n aria-activedescendant={activeDescendant}\n onChange={(e) => handleSearchChange(e.target.value)}\n onKeyDown={handleSearchKeyDown}\n />\n\n {/* Loading State */}\n {isLoading && (\n <StyledLoadingWrapper>\n <LoadingIcon\n role=\"progressbar\"\n aria-label={t('commandMenu.loading', 'Loading commands')}\n aria-hidden={false}\n />\n </StyledLoadingWrapper>\n )}\n\n {/* Menu Content - always render unless loading */}\n {!isLoading && !showEmptyState && (\n <StyledMenu\n {...menuProps}\n ref={menuRef}\n id={menuId}\n aria-label={t('commandMenu.menu', 'Command menu')}\n qa=\"Menu\"\n data-size={size}\n mods={mods}\n styles={{\n border: 'none',\n boxShadow: 'none',\n radius: 0,\n padding: '0.5x',\n }}\n >\n {renderedItems}\n </StyledMenu>\n )}\n\n {/* Empty State - show when search term exists but no results */}\n {!isLoading && showEmptyState && (\n <StyledEmptyState>{emptyLabel}</StyledEmptyState>\n )}\n\n {/* Footer */}\n {footer && (\n <StyledFooter\n role=\"presentation\"\n data-size={size}\n styles={footerStyles}\n >\n {footer}\n </StyledFooter>\n )}\n </StyledCommandMenu>\n );\n}\n\n// forwardRef doesn't support generic parameters, so cast the result to the correct type\nconst _CommandMenu = React.forwardRef(CommandMenu) as <T>(\n props: CubeCommandMenuProps<T> & React.RefAttributes<HTMLDivElement>,\n) => ReactElement;\n\n// Attach Trigger alias from MenuTrigger for consistent API\n// Also attach Item and Section for compound component pattern\nconst __CommandMenu = Object.assign(_CommandMenu, {\n Trigger: MenuTrigger,\n Item,\n Section,\n displayName: 'CommandMenu',\n});\n\nexport { __CommandMenu as CommandMenu };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-8531f8b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-1b26a89 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/components/actions/CommandMenu/styled.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-8531f8b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-1b26a89 | Cube Dev Team */
2
2
  import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
@@ -74,8 +74,8 @@ const ItemActionElement = tasty({
74
74
  }
75
75
  });
76
76
  const ItemAction = forwardRef(function ItemAction(allProps, ref) {
77
- const $ = c(48);
78
- const { type: contextType, disableActionsFocus, isDisabled: contextIsDisabled } = useItemActionContext();
77
+ const $ = c(50);
78
+ const { type: contextType, disableActionsFocus, menuItemAction, isDisabled: contextIsDisabled } = useItemActionContext();
79
79
  let children;
80
80
  let icon;
81
81
  let isDisabledProp;
@@ -175,25 +175,25 @@ const ItemAction = forwardRef(function ItemAction(allProps, ref) {
175
175
  const { actionProps: t10 } = useAction(t9, ref);
176
176
  let t11;
177
177
  let t12;
178
- if ($[30] !== children || $[31] !== disableActionsFocus || $[32] !== finalIcon || $[33] !== isDisabled || $[34] !== isDisabledInherited || $[35] !== isLoading || $[36] !== rest.tabIndex || $[37] !== styles || $[38] !== t10 || $[39] !== theme || $[40] !== tooltip || $[41] !== type) {
178
+ if ($[30] !== children || $[31] !== disableActionsFocus || $[32] !== finalIcon || $[33] !== isDisabled || $[34] !== isDisabledInherited || $[35] !== isLoading || $[36] !== menuItemAction || $[37] !== rest.role || $[38] !== rest.tabIndex || $[39] !== styles || $[40] !== t10 || $[41] !== theme || $[42] !== tooltip || $[43] !== type) {
179
179
  t12 = Symbol.for("react.early_return_sentinel");
180
180
  bb0: {
181
181
  const { isDisabled: _isDisabled, ...actionProps } = t10;
182
182
  const finalTabIndex = disableActionsFocus || isLoading ? -1 : rest.tabIndex;
183
183
  const tooltipContent = typeof tooltip === "string" ? tooltip : typeof tooltip === "object" && tooltip.title ? tooltip.title : void 0;
184
184
  let t13;
185
- if ($[44] !== tooltip) {
185
+ if ($[46] !== tooltip) {
186
186
  t13 = typeof tooltip === "object" ? tooltip : {};
187
- $[44] = tooltip;
188
- $[45] = t13;
189
- } else t13 = $[45];
187
+ $[46] = tooltip;
188
+ $[47] = t13;
189
+ } else t13 = $[47];
190
190
  let tooltipProps;
191
- if ($[46] !== t13) {
191
+ if ($[48] !== t13) {
192
192
  const { title: _title, ...t14 } = t13;
193
193
  tooltipProps = t14;
194
- $[46] = t13;
195
- $[47] = tooltipProps;
196
- } else tooltipProps = $[47];
194
+ $[48] = t13;
195
+ $[49] = tooltipProps;
196
+ } else tooltipProps = $[49];
197
197
  const hasTooltip = !children && !!tooltipContent;
198
198
  const { isNativelyDisabled, isInert, inertProps } = getDisabledElementProps({
199
199
  isDisabled,
@@ -214,6 +214,8 @@ const ItemAction = forwardRef(function ItemAction(allProps, ref) {
214
214
  variant: `${theme}.${finalType}`,
215
215
  "data-theme": theme,
216
216
  "data-type": finalType,
217
+ role: menuItemAction ? "menuitem" : rest.role,
218
+ "data-menu-inline-action": menuItemAction || void 0,
217
219
  tabIndex: finalTabIndex,
218
220
  styles,
219
221
  children: [finalIcon && /* @__PURE__ */ jsx("div", {
@@ -238,17 +240,19 @@ const ItemAction = forwardRef(function ItemAction(allProps, ref) {
238
240
  $[33] = isDisabled;
239
241
  $[34] = isDisabledInherited;
240
242
  $[35] = isLoading;
241
- $[36] = rest.tabIndex;
242
- $[37] = styles;
243
- $[38] = t10;
244
- $[39] = theme;
245
- $[40] = tooltip;
246
- $[41] = type;
247
- $[42] = t11;
248
- $[43] = t12;
243
+ $[36] = menuItemAction;
244
+ $[37] = rest.role;
245
+ $[38] = rest.tabIndex;
246
+ $[39] = styles;
247
+ $[40] = t10;
248
+ $[41] = theme;
249
+ $[42] = tooltip;
250
+ $[43] = type;
251
+ $[44] = t11;
252
+ $[45] = t12;
249
253
  } else {
250
- t11 = $[42];
251
- t12 = $[43];
254
+ t11 = $[44];
255
+ t12 = $[45];
252
256
  }
253
257
  if (t12 !== Symbol.for("react.early_return_sentinel")) return t12;
254
258
  return t11;
@@ -1 +1 @@
1
- {"version":3,"file":"ItemAction.js","names":["FocusableRef","BaseProps","Styles","tasty","ComponentProps","forwardRef","HTMLAttributes","ReactNode","RefObject","CURRENT_CLEAR_STYLES","CURRENT_OUTLINE_STYLES","CURRENT_PRIMARY_STYLES","DANGER_CLEAR_STYLES","DANGER_OUTLINE_STYLES","DANGER_PRIMARY_STYLES","DEFAULT_CLEAR_STYLES","DEFAULT_OUTLINE_STYLES","DEFAULT_PRIMARY_STYLES","ITEM_ACTION_BASE_STYLES","NOTE_CLEAR_STYLES","NOTE_OUTLINE_STYLES","NOTE_PRIMARY_STYLES","SPECIAL_CLEAR_STYLES","SPECIAL_OUTLINE_STYLES","SPECIAL_PRIMARY_STYLES","SUCCESS_CLEAR_STYLES","SUCCESS_OUTLINE_STYLES","SUCCESS_PRIMARY_STYLES","WARNING_CLEAR_STYLES","WARNING_OUTLINE_STYLES","WARNING_PRIMARY_STYLES","CheckIcon","LoadingIcon","getDisabledElementProps","mergeProps","omitActivationEventProps","TooltipProvider","useItemActionContext","CubeUseActionProps","useAction","CubeItemActionProps","Omit","size","icon","children","isLoading","isSelected","type","theme","tooltip","title","styles","tabIndex","ItemActionVariant","ItemActionElement","qa","recipe","outline","focused","outlineOffset","cursor","disabled","preset","padding","Icon","$","variants","ItemAction","allProps","ref","_c","contextType","disableActionsFocus","isDisabled","contextIsDisabled","isDisabledProp","mods","rest","t0","t1","t2","t3","undefined","isDisabledInherited","hasCheckmark","t4","finalIcon","t5","t6","t7","t8","checkmark","selected","loading","context","finalMods","ariaLabel","t9","htmlType","actionProps","t10","t11","t12","Symbol","for","bb0","_isDisabled","finalTabIndex","tooltipContent","t13","tooltipProps","_title","t14","hasTooltip","isNativelyDisabled","isInert","inertProps","keepEvents","as","elementProps","finalType","renderButton","tooltipTriggerProps","tooltipRef","mergedProps","element","current","actionRef","triggerProps","tooltipRef_0","ItemActionProps"],"sources":["../../../../src/components/actions/ItemAction/ItemAction.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport {\n ComponentProps,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n RefObject,\n} from 'react';\n\nimport {\n CURRENT_CLEAR_STYLES,\n CURRENT_OUTLINE_STYLES,\n CURRENT_PRIMARY_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n ITEM_ACTION_BASE_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { CheckIcon } from '../../../icons/CheckIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport {\n getDisabledElementProps,\n mergeProps,\n omitActivationEventProps,\n} from '../../../utils/react';\nimport { TooltipProvider } from '../../overlays/Tooltip/TooltipProvider';\nimport { useItemActionContext } from '../ItemActionContext';\nimport { CubeUseActionProps, useAction } from '../use-action';\n\nexport interface CubeItemActionProps\n extends Omit<CubeUseActionProps, 'as' | 'htmlType'>,\n Omit<BaseProps, 'as'> {\n size?:\n | 'xsmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xlarge'\n | 'inline'\n | (string & {});\n icon?: ReactNode | 'checkmark';\n children?: ReactNode;\n isLoading?: boolean;\n isSelected?: boolean;\n type?: 'primary' | 'outline' | 'clear' | (string & {});\n theme?:\n | 'current'\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | (string & {});\n tooltip?:\n | string\n | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {\n title?: ReactNode;\n });\n styles?: Styles;\n tabIndex?: number;\n}\n\ntype ItemActionVariant =\n // Inherited-color theme — see the CURRENT THEME section of `item-themes`.\n | 'current.primary'\n | 'current.outline'\n | 'current.clear'\n | 'default.primary'\n | 'default.outline'\n | 'default.clear'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.clear'\n | 'success.primary'\n | 'success.outline'\n | 'success.clear'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.clear'\n | 'note.primary'\n | 'note.outline'\n | 'note.clear'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear';\n\nconst ItemActionElement = tasty({\n qa: 'ItemAction',\n styles: {\n // eslint-disable-next-line tasty/no-style-spread -- action base shared with ItemBadge\n ...ITEM_ACTION_BASE_STYLES,\n recipe: 'reset button',\n // Every variant below defines its own ring and overrides this one, which is\n // kept as the floor for a custom `type` that resolves to no variant at all.\n // It uses the same `#primary-accent-text` as every variant in\n // `item-themes.ts`.\n outline: {\n '': '0 #primary-accent-text.0',\n focused: '1bw #primary-accent-text',\n },\n outlineOffset: 1,\n cursor: { '': '$pointer', disabled: 'default' },\n preset: {\n '': 't4',\n 'size=xlarge': 't3m',\n },\n padding: {\n '': '0 $inline-padding',\n 'has-icon': 0,\n 'has-icon & has-label': '$inline-padding right',\n },\n\n '$inline-padding': {\n '': 'max($min-inline-padding, (($action-size - 1lh - 2bw) / 2 + $inline-compensation))',\n 'size=inline': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(.5x - 1bw)',\n '$local-icon-size': '$icon-size',\n\n Icon: {\n $: '>',\n // eslint-disable-next-line tasty/no-style-spread -- Icon base shared with ItemBadge\n ...(ITEM_ACTION_BASE_STYLES.Icon as Styles),\n '$icon-size': 'min($local-icon-size, ($action-size - .25x))',\n },\n },\n variants: {\n // Current theme — colors mixed from the inherited `currentcolor`. The\n // default `clear` flavour is borderless, so an action does not put a resting\n // chip on every row.\n 'current.primary': CURRENT_PRIMARY_STYLES,\n 'current.outline': CURRENT_OUTLINE_STYLES,\n 'current.clear': CURRENT_CLEAR_STYLES,\n\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n },\n});\n\nexport const ItemAction = forwardRef(function ItemAction(\n allProps: CubeItemActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const {\n type: contextType,\n disableActionsFocus,\n isDisabled: contextIsDisabled,\n } = useItemActionContext();\n\n const {\n // Borderless by default: an action sits inside a row, where a resting chip\n // on every one of them would read as noise.\n type = 'clear',\n // The `current` theme derives every color from the row's inherited\n // `currentcolor`, so one default covers every host type and theme — no need\n // to mirror the row's own `theme` from context. An action that names a theme\n // is asking to paint itself rather than match its host, and gets it.\n theme = 'current',\n icon,\n children,\n isLoading = false,\n isSelected = false,\n tooltip,\n mods,\n styles,\n isDisabled: isDisabledProp,\n ...rest\n } = allProps;\n\n // Inherit disabled state from context, but allow local override. Loading\n // always disables, as on `Button`: a second press while the first is still\n // running would run the action again, so not even `isDisabled={false}`\n // re-enables a loading action.\n const isDisabled = isLoading || (isDisabledProp ?? contextIsDisabled);\n\n // The host row is disabled too. The `current` theme paints from the inherited\n // color, which a disabled host has already faded, so fading a second time\n // washes the label out (see `CURRENT_ITEM_STYLES.color`). And like a disabled\n // fieldset, a disabled host leaves its button actions out of the tab order.\n const isDisabledInherited = !!contextIsDisabled && isDisabled;\n\n // Determine if we should show a checkmark\n const hasCheckmark = icon === 'checkmark';\n\n // Determine final icon (loading takes precedence)\n const finalIcon = isLoading ? (\n <LoadingIcon />\n ) : hasCheckmark ? (\n <CheckIcon />\n ) : (\n icon\n );\n\n // Build modifiers\n const finalMods = {\n checkmark: hasCheckmark,\n selected: isSelected,\n loading: isLoading,\n 'has-label': !!children,\n context: !!contextType,\n // The spinner takes the icon slot, so it needs the icon's padding.\n 'has-icon': !!finalIcon,\n 'inherit-disabled': isDisabledInherited,\n ...mods,\n };\n\n // An explicit label always wins; a tooltip only fills in the accessible name\n // when there isn't one. Rich tooltip content can't serve as a name, so only\n // plain strings are used here.\n const ariaLabel =\n rest['aria-label'] ||\n (typeof tooltip === 'string'\n ? tooltip\n : typeof tooltip === 'object' && typeof tooltip.title === 'string'\n ? tooltip.title\n : undefined);\n\n // `isDisabled` is dropped from the element: tasty would turn it into the\n // native `disabled` attribute, which `getDisabledElementProps` decides below.\n const {\n actionProps: { isDisabled: _isDisabled, ...actionProps },\n } = useAction(\n {\n ...rest,\n isDisabled,\n 'aria-label': ariaLabel,\n mods: finalMods,\n htmlType: 'button',\n },\n ref,\n );\n\n // Set tabIndex when in context. A loading action keeps focus it already has,\n // but Tab skips it until loading ends, tooltip or not.\n const finalTabIndex = disableActionsFocus || isLoading ? -1 : rest.tabIndex;\n\n // Extract tooltip content and props\n const tooltipContent =\n typeof tooltip === 'string'\n ? tooltip\n : typeof tooltip === 'object' && tooltip.title\n ? tooltip.title\n : undefined;\n\n const { title: _title, ...tooltipProps } =\n typeof tooltip === 'object' ? tooltip : {};\n\n // Only icon-only actions show their tooltip.\n const hasTooltip = !children && !!tooltipContent;\n\n // Native `disabled` drops focus. A loading action keeps it, so a keyboard\n // press doesn't lose its place. So does an action that disables itself while\n // showing a tooltip, often its only label, which keyboard users reach and read\n // as on `Button`. One whose host is disabled too stays native.\n const { isNativelyDisabled, isInert, inertProps } = getDisabledElementProps({\n isDisabled,\n keepEvents: isLoading || (hasTooltip && !isDisabledInherited),\n as: typeof actionProps.as === 'string' ? actionProps.as : undefined,\n });\n\n // Without the native attribute, handlers a parent passed in (a `MenuTrigger`'s\n // `onKeyDown`) would still activate the action.\n const elementProps = isInert\n ? omitActivationEventProps(actionProps)\n : actionProps;\n\n const finalType = type;\n\n // Render function that accepts tooltip trigger props and ref\n const renderButton = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n // Merge tooltip ref with actionProps if provided\n const mergedProps = tooltipRef\n ? mergeProps(elementProps, tooltipTriggerProps || {}, inertProps, {\n ref: (element: HTMLElement | null) => {\n // Set the tooltip ref\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n // Set the action ref if it exists in actionProps\n const actionRef = (actionProps as any).ref;\n if (actionRef) {\n if (typeof actionRef === 'function') {\n actionRef(element);\n } else {\n actionRef.current = element;\n }\n }\n },\n })\n : mergeProps(elementProps, tooltipTriggerProps || {}, inertProps);\n\n return (\n <ItemActionElement\n {...mergedProps}\n disabled={isNativelyDisabled}\n variant={`${theme}.${finalType}` as ItemActionVariant}\n data-theme={theme}\n data-type={finalType}\n tabIndex={finalTabIndex}\n styles={styles}\n >\n {finalIcon && <div data-element=\"Icon\">{finalIcon}</div>}\n {children}\n </ItemActionElement>\n );\n };\n\n // Wrap with tooltip if needed\n if (hasTooltip) {\n return (\n <TooltipProvider title={tooltipContent} {...tooltipProps}>\n {(triggerProps, tooltipRef) => renderButton(triggerProps, tooltipRef)}\n </TooltipProvider>\n );\n }\n\n return renderButton();\n});\n\nexport type { CubeItemActionProps as ItemActionProps };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ItemAction.js","names":["FocusableRef","BaseProps","Styles","tasty","ComponentProps","forwardRef","HTMLAttributes","ReactNode","RefObject","CURRENT_CLEAR_STYLES","CURRENT_OUTLINE_STYLES","CURRENT_PRIMARY_STYLES","DANGER_CLEAR_STYLES","DANGER_OUTLINE_STYLES","DANGER_PRIMARY_STYLES","DEFAULT_CLEAR_STYLES","DEFAULT_OUTLINE_STYLES","DEFAULT_PRIMARY_STYLES","ITEM_ACTION_BASE_STYLES","NOTE_CLEAR_STYLES","NOTE_OUTLINE_STYLES","NOTE_PRIMARY_STYLES","SPECIAL_CLEAR_STYLES","SPECIAL_OUTLINE_STYLES","SPECIAL_PRIMARY_STYLES","SUCCESS_CLEAR_STYLES","SUCCESS_OUTLINE_STYLES","SUCCESS_PRIMARY_STYLES","WARNING_CLEAR_STYLES","WARNING_OUTLINE_STYLES","WARNING_PRIMARY_STYLES","CheckIcon","LoadingIcon","getDisabledElementProps","mergeProps","omitActivationEventProps","TooltipProvider","useItemActionContext","CubeUseActionProps","useAction","CubeItemActionProps","Omit","size","icon","children","isLoading","isSelected","type","theme","tooltip","title","styles","tabIndex","ItemActionVariant","ItemActionElement","qa","recipe","outline","focused","outlineOffset","cursor","disabled","preset","padding","Icon","$","variants","ItemAction","allProps","ref","_c","contextType","disableActionsFocus","menuItemAction","isDisabled","contextIsDisabled","isDisabledProp","mods","rest","t0","t1","t2","t3","undefined","isDisabledInherited","hasCheckmark","t4","finalIcon","t5","t6","t7","t8","checkmark","selected","loading","context","finalMods","ariaLabel","t9","htmlType","actionProps","t10","t11","t12","role","Symbol","for","bb0","_isDisabled","finalTabIndex","tooltipContent","t13","tooltipProps","_title","t14","hasTooltip","isNativelyDisabled","isInert","inertProps","keepEvents","as","elementProps","finalType","renderButton","tooltipTriggerProps","tooltipRef","mergedProps","element","current","actionRef","triggerProps","tooltipRef_0","ItemActionProps"],"sources":["../../../../src/components/actions/ItemAction/ItemAction.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport {\n ComponentProps,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n RefObject,\n} from 'react';\n\nimport {\n CURRENT_CLEAR_STYLES,\n CURRENT_OUTLINE_STYLES,\n CURRENT_PRIMARY_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n ITEM_ACTION_BASE_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { CheckIcon } from '../../../icons/CheckIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport {\n getDisabledElementProps,\n mergeProps,\n omitActivationEventProps,\n} from '../../../utils/react';\nimport { TooltipProvider } from '../../overlays/Tooltip/TooltipProvider';\nimport { useItemActionContext } from '../ItemActionContext';\nimport { CubeUseActionProps, useAction } from '../use-action';\n\nexport interface CubeItemActionProps\n extends Omit<CubeUseActionProps, 'as' | 'htmlType'>,\n Omit<BaseProps, 'as'> {\n size?:\n | 'xsmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xlarge'\n | 'inline'\n | (string & {});\n icon?: ReactNode | 'checkmark';\n children?: ReactNode;\n isLoading?: boolean;\n isSelected?: boolean;\n type?: 'primary' | 'outline' | 'clear' | (string & {});\n theme?:\n | 'current'\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | (string & {});\n tooltip?:\n | string\n | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {\n title?: ReactNode;\n });\n styles?: Styles;\n tabIndex?: number;\n}\n\ntype ItemActionVariant =\n // Inherited-color theme — see the CURRENT THEME section of `item-themes`.\n | 'current.primary'\n | 'current.outline'\n | 'current.clear'\n | 'default.primary'\n | 'default.outline'\n | 'default.clear'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.clear'\n | 'success.primary'\n | 'success.outline'\n | 'success.clear'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.clear'\n | 'note.primary'\n | 'note.outline'\n | 'note.clear'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear';\n\nconst ItemActionElement = tasty({\n qa: 'ItemAction',\n styles: {\n // eslint-disable-next-line tasty/no-style-spread -- action base shared with ItemBadge\n ...ITEM_ACTION_BASE_STYLES,\n recipe: 'reset button',\n // Every variant below defines its own ring and overrides this one, which is\n // kept as the floor for a custom `type` that resolves to no variant at all.\n // It uses the same `#primary-accent-text` as every variant in\n // `item-themes.ts`.\n outline: {\n '': '0 #primary-accent-text.0',\n focused: '1bw #primary-accent-text',\n },\n outlineOffset: 1,\n cursor: { '': '$pointer', disabled: 'default' },\n preset: {\n '': 't4',\n 'size=xlarge': 't3m',\n },\n padding: {\n '': '0 $inline-padding',\n 'has-icon': 0,\n 'has-icon & has-label': '$inline-padding right',\n },\n\n '$inline-padding': {\n '': 'max($min-inline-padding, (($action-size - 1lh - 2bw) / 2 + $inline-compensation))',\n 'size=inline': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(.5x - 1bw)',\n '$local-icon-size': '$icon-size',\n\n Icon: {\n $: '>',\n // eslint-disable-next-line tasty/no-style-spread -- Icon base shared with ItemBadge\n ...(ITEM_ACTION_BASE_STYLES.Icon as Styles),\n '$icon-size': 'min($local-icon-size, ($action-size - .25x))',\n },\n },\n variants: {\n // Current theme — colors mixed from the inherited `currentcolor`. The\n // default `clear` flavour is borderless, so an action does not put a resting\n // chip on every row.\n 'current.primary': CURRENT_PRIMARY_STYLES,\n 'current.outline': CURRENT_OUTLINE_STYLES,\n 'current.clear': CURRENT_CLEAR_STYLES,\n\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n },\n});\n\nexport const ItemAction = forwardRef(function ItemAction(\n allProps: CubeItemActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const {\n type: contextType,\n disableActionsFocus,\n menuItemAction,\n isDisabled: contextIsDisabled,\n } = useItemActionContext();\n\n const {\n // Borderless by default: an action sits inside a row, where a resting chip\n // on every one of them would read as noise.\n type = 'clear',\n // The `current` theme derives every color from the row's inherited\n // `currentcolor`, so one default covers every host type and theme — no need\n // to mirror the row's own `theme` from context. An action that names a theme\n // is asking to paint itself rather than match its host, and gets it.\n theme = 'current',\n icon,\n children,\n isLoading = false,\n isSelected = false,\n tooltip,\n mods,\n styles,\n isDisabled: isDisabledProp,\n ...rest\n } = allProps;\n\n // Inherit disabled state from context, but allow local override. Loading\n // always disables, as on `Button`: a second press while the first is still\n // running would run the action again, so not even `isDisabled={false}`\n // re-enables a loading action.\n const isDisabled = isLoading || (isDisabledProp ?? contextIsDisabled);\n\n // The host row is disabled too. The `current` theme paints from the inherited\n // color, which a disabled host has already faded, so fading a second time\n // washes the label out (see `CURRENT_ITEM_STYLES.color`). And like a disabled\n // fieldset, a disabled host leaves its button actions out of the tab order.\n const isDisabledInherited = !!contextIsDisabled && isDisabled;\n\n // Determine if we should show a checkmark\n const hasCheckmark = icon === 'checkmark';\n\n // Determine final icon (loading takes precedence)\n const finalIcon = isLoading ? (\n <LoadingIcon />\n ) : hasCheckmark ? (\n <CheckIcon />\n ) : (\n icon\n );\n\n // Build modifiers\n const finalMods = {\n checkmark: hasCheckmark,\n selected: isSelected,\n loading: isLoading,\n 'has-label': !!children,\n context: !!contextType,\n // The spinner takes the icon slot, so it needs the icon's padding.\n 'has-icon': !!finalIcon,\n 'inherit-disabled': isDisabledInherited,\n ...mods,\n };\n\n // An explicit label always wins; a tooltip only fills in the accessible name\n // when there isn't one. Rich tooltip content can't serve as a name, so only\n // plain strings are used here.\n const ariaLabel =\n rest['aria-label'] ||\n (typeof tooltip === 'string'\n ? tooltip\n : typeof tooltip === 'object' && typeof tooltip.title === 'string'\n ? tooltip.title\n : undefined);\n\n // `isDisabled` is dropped from the element: tasty would turn it into the\n // native `disabled` attribute, which `getDisabledElementProps` decides below.\n const {\n actionProps: { isDisabled: _isDisabled, ...actionProps },\n } = useAction(\n {\n ...rest,\n isDisabled,\n 'aria-label': ariaLabel,\n mods: finalMods,\n htmlType: 'button',\n },\n ref,\n );\n\n // Set tabIndex when in context. A loading action keeps focus it already has,\n // but Tab skips it until loading ends, tooltip or not.\n const finalTabIndex = disableActionsFocus || isLoading ? -1 : rest.tabIndex;\n\n // Extract tooltip content and props\n const tooltipContent =\n typeof tooltip === 'string'\n ? tooltip\n : typeof tooltip === 'object' && tooltip.title\n ? tooltip.title\n : undefined;\n\n const { title: _title, ...tooltipProps } =\n typeof tooltip === 'object' ? tooltip : {};\n\n // Only icon-only actions show their tooltip.\n const hasTooltip = !children && !!tooltipContent;\n\n // Native `disabled` drops focus. A loading action keeps it, so a keyboard\n // press doesn't lose its place. So does an action that disables itself while\n // showing a tooltip, often its only label, which keyboard users reach and read\n // as on `Button`. One whose host is disabled too stays native.\n const { isNativelyDisabled, isInert, inertProps } = getDisabledElementProps({\n isDisabled,\n keepEvents: isLoading || (hasTooltip && !isDisabledInherited),\n as: typeof actionProps.as === 'string' ? actionProps.as : undefined,\n });\n\n // Without the native attribute, handlers a parent passed in (a `MenuTrigger`'s\n // `onKeyDown`) would still activate the action.\n const elementProps = isInert\n ? omitActivationEventProps(actionProps)\n : actionProps;\n\n const finalType = type;\n\n // Render function that accepts tooltip trigger props and ref\n const renderButton = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n // Merge tooltip ref with actionProps if provided\n const mergedProps = tooltipRef\n ? mergeProps(elementProps, tooltipTriggerProps || {}, inertProps, {\n ref: (element: HTMLElement | null) => {\n // Set the tooltip ref\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n // Set the action ref if it exists in actionProps\n const actionRef = (actionProps as any).ref;\n if (actionRef) {\n if (typeof actionRef === 'function') {\n actionRef(element);\n } else {\n actionRef.current = element;\n }\n }\n },\n })\n : mergeProps(elementProps, tooltipTriggerProps || {}, inertProps);\n\n return (\n <ItemActionElement\n {...mergedProps}\n disabled={isNativelyDisabled}\n variant={`${theme}.${finalType}` as ItemActionVariant}\n data-theme={theme}\n data-type={finalType}\n role={menuItemAction ? 'menuitem' : rest.role}\n data-menu-inline-action={menuItemAction || undefined}\n tabIndex={finalTabIndex}\n styles={styles}\n >\n {finalIcon && <div data-element=\"Icon\">{finalIcon}</div>}\n {children}\n </ItemActionElement>\n );\n };\n\n // Wrap with tooltip if needed\n if (hasTooltip) {\n return (\n <TooltipProvider title={tooltipContent} {...tooltipProps}>\n {(triggerProps, tooltipRef) => renderButton(triggerProps, tooltipRef)}\n </TooltipProvider>\n );\n }\n\n return renderButton();\n});\n\nexport type { CubeItemActionProps as ItemActionProps };\n"],"mappings":"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"}
@@ -22,12 +22,14 @@ interface ItemActionContextValue {
22
22
  type?: CubeItemProps['type'];
23
23
  theme?: 'default' | 'danger' | 'success' | 'special' | (string & {});
24
24
  disableActionsFocus?: boolean;
25
+ menuItemAction?: boolean;
25
26
  isDisabled?: boolean;
26
27
  }
27
28
  interface ItemActionProviderProps {
28
29
  type?: CubeItemProps['type'];
29
30
  theme?: 'default' | 'danger' | 'success' | 'special' | (string & {});
30
31
  disableActionsFocus?: boolean;
32
+ menuItemAction?: boolean;
31
33
  isDisabled?: boolean;
32
34
  children: ReactNode;
33
35
  }
@@ -35,6 +37,7 @@ declare function ItemActionProvider({
35
37
  type,
36
38
  theme,
37
39
  disableActionsFocus,
40
+ menuItemAction,
38
41
  isDisabled,
39
42
  children
40
43
  }: ItemActionProviderProps): react.JSX.Element;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-8531f8b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-1b26a89 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { createContext, useContext } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -6,32 +6,34 @@ import { jsx } from "react/jsx-runtime";
6
6
  //#region src/components/actions/ItemActionContext.tsx
7
7
  const ItemActionContext = createContext(void 0);
8
8
  function ItemActionProvider(t0) {
9
- const $ = c(8);
10
- const { type, theme, disableActionsFocus, isDisabled, children } = t0;
9
+ const $ = c(9);
10
+ const { type, theme, disableActionsFocus, menuItemAction, isDisabled, children } = t0;
11
11
  let t1;
12
- if ($[0] !== disableActionsFocus || $[1] !== isDisabled || $[2] !== theme || $[3] !== type) {
12
+ if ($[0] !== disableActionsFocus || $[1] !== isDisabled || $[2] !== menuItemAction || $[3] !== theme || $[4] !== type) {
13
13
  t1 = {
14
14
  type,
15
15
  theme,
16
16
  disableActionsFocus,
17
+ menuItemAction,
17
18
  isDisabled
18
19
  };
19
20
  $[0] = disableActionsFocus;
20
21
  $[1] = isDisabled;
21
- $[2] = theme;
22
- $[3] = type;
23
- $[4] = t1;
24
- } else t1 = $[4];
22
+ $[2] = menuItemAction;
23
+ $[3] = theme;
24
+ $[4] = type;
25
+ $[5] = t1;
26
+ } else t1 = $[5];
25
27
  let t2;
26
- if ($[5] !== children || $[6] !== t1) {
28
+ if ($[6] !== children || $[7] !== t1) {
27
29
  t2 = /* @__PURE__ */ jsx(ItemActionContext.Provider, {
28
30
  value: t1,
29
31
  children
30
32
  });
31
- $[5] = children;
32
- $[6] = t1;
33
- $[7] = t2;
34
- } else t2 = $[7];
33
+ $[6] = children;
34
+ $[7] = t1;
35
+ $[8] = t2;
36
+ } else t2 = $[8];
35
37
  return t2;
36
38
  }
37
39
  function useItemActionContext() {
@@ -1 +1 @@
1
- {"version":3,"file":"ItemActionContext.js","names":["createContext","ReactNode","useContext","CubeItemProps","ItemActionContextValue","type","theme","disableActionsFocus","isDisabled","ItemActionContext","undefined","ItemActionProviderProps","children","ItemActionProvider","t0","$","_c","t1","t2","useItemActionContext"],"sources":["../../../src/components/actions/ItemActionContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext } from 'react';\n\nimport type { CubeItemProps } from '../content/Item/Item';\n\n/**\n * What an `ItemAction` / `ItemBadge` picks up from the row that hosts it.\n *\n * `type` is deliberately NOT a styling input. Actions default to the `current`\n * type, which derives every color from the row's own `currentcolor`, so they\n * track the host's type without being told what it is — see\n * `CURRENT_ITEM_STYLES`. It is still carried here because its *presence* marks\n * \"inside a host\", which drives the `context` mod that collapses the action's\n * side margins.\n *\n * `theme` is still consumed: `current` needs to know when it sits on the\n * special theme's dark surface, where the alpha ramp has to step harder to stay\n * visible. `ItemAction` forwards it to `data-theme` for that one purpose.\n */\ninterface ItemActionContextValue {\n type?: CubeItemProps['type'];\n theme?: 'default' | 'danger' | 'success' | 'special' | (string & {});\n disableActionsFocus?: boolean;\n isDisabled?: boolean;\n}\n\nconst ItemActionContext = createContext<ItemActionContextValue | undefined>(\n undefined,\n);\n\nexport interface ItemActionProviderProps {\n type?: CubeItemProps['type'];\n theme?: 'default' | 'danger' | 'success' | 'special' | (string & {});\n disableActionsFocus?: boolean;\n isDisabled?: boolean;\n children: ReactNode;\n}\n\nexport function ItemActionProvider({\n type,\n theme,\n disableActionsFocus,\n isDisabled,\n children,\n}: ItemActionProviderProps) {\n return (\n <ItemActionContext.Provider\n value={{\n // Passed through as-is. The mapping that used to fold the row types onto\n // `clear` here existed only to pick an action variant, which `current`\n // now does on its own.\n type,\n theme,\n disableActionsFocus,\n isDisabled,\n }}\n >\n {children}\n </ItemActionContext.Provider>\n );\n}\n\nexport function useItemActionContext(): ItemActionContextValue {\n return useContext(ItemActionContext) ?? {};\n}\n"],"mappings":";;;;;;AAyBA,MAAMS,oBAAoBT,cACxBU,OACD;AAUD,SAAOG,mBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAA4B,MAAA,EAAAX,MAAAC,OAAAC,qBAAAC,YAAAI,aAAAE;CAMT,IAAAG;AAAA,KAAAF,EAAA,OAAAR,uBAAAQ,EAAA,OAAAP,cAAAO,EAAA,OAAAT,SAAAS,EAAA,OAAAV,MAAA;AAGbY,OAAA;GAAAZ;GAAAC;GAAAC;GAAAC;GAQN;AAAAO,IAAA,KAAAR;AAAAQ,IAAA,KAAAP;AAAAO,IAAA,KAAAT;AAAAS,IAAA,KAAAV;AAAAU,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAAA,IAAAG;AAAA,KAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,IAAA;AATHC,OAAA,oBAAA,kBAAA;GACS,OAAAD;GAUNL;IAC0B;AAAAG,IAAA,KAAAH;AAAAG,IAAA,KAAAE;AAAAF,IAAA,KAAAG;OAAAA,MAAAH,EAAA;AAAA,QAZ7BG;;AAgBJ,SAAOC,uBAAA;AAAA,QACEjB,WAAWO,kBAAwB,IAAnC,EAAmC"}
1
+ {"version":3,"file":"ItemActionContext.js","names":["createContext","ReactNode","useContext","CubeItemProps","ItemActionContextValue","type","theme","disableActionsFocus","menuItemAction","isDisabled","ItemActionContext","undefined","ItemActionProviderProps","children","ItemActionProvider","t0","$","_c","t1","t2","useItemActionContext"],"sources":["../../../src/components/actions/ItemActionContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext } from 'react';\n\nimport type { CubeItemProps } from '../content/Item/Item';\n\n/**\n * What an `ItemAction` / `ItemBadge` picks up from the row that hosts it.\n *\n * `type` is deliberately NOT a styling input. Actions default to the `current`\n * type, which derives every color from the row's own `currentcolor`, so they\n * track the host's type without being told what it is — see\n * `CURRENT_ITEM_STYLES`. It is still carried here because its *presence* marks\n * \"inside a host\", which drives the `context` mod that collapses the action's\n * side margins.\n *\n * `theme` is still consumed: `current` needs to know when it sits on the\n * special theme's dark surface, where the alpha ramp has to step harder to stay\n * visible. `ItemAction` forwards it to `data-theme` for that one purpose.\n */\ninterface ItemActionContextValue {\n type?: CubeItemProps['type'];\n theme?: 'default' | 'danger' | 'success' | 'special' | (string & {});\n disableActionsFocus?: boolean;\n menuItemAction?: boolean;\n isDisabled?: boolean;\n}\n\nconst ItemActionContext = createContext<ItemActionContextValue | undefined>(\n undefined,\n);\n\nexport interface ItemActionProviderProps {\n type?: CubeItemProps['type'];\n theme?: 'default' | 'danger' | 'success' | 'special' | (string & {});\n disableActionsFocus?: boolean;\n menuItemAction?: boolean;\n isDisabled?: boolean;\n children: ReactNode;\n}\n\nexport function ItemActionProvider({\n type,\n theme,\n disableActionsFocus,\n menuItemAction,\n isDisabled,\n children,\n}: ItemActionProviderProps) {\n return (\n <ItemActionContext.Provider\n value={{\n // Passed through as-is. The mapping that used to fold the row types onto\n // `clear` here existed only to pick an action variant, which `current`\n // now does on its own.\n type,\n theme,\n disableActionsFocus,\n menuItemAction,\n isDisabled,\n }}\n >\n {children}\n </ItemActionContext.Provider>\n );\n}\n\nexport function useItemActionContext(): ItemActionContextValue {\n return useContext(ItemActionContext) ?? {};\n}\n"],"mappings":";;;;;;AA0BA,MAAMU,oBAAoBV,cACxBW,OACD;AAWD,SAAOG,mBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAA4B,MAAA,EAAAZ,MAAAC,OAAAC,qBAAAC,gBAAAC,YAAAI,aAAAE;CAOT,IAAAG;AAAA,KAAAF,EAAA,OAAAT,uBAAAS,EAAA,OAAAP,cAAAO,EAAA,OAAAR,kBAAAQ,EAAA,OAAAV,SAAAU,EAAA,OAAAX,MAAA;AAGba,OAAA;GAAAb;GAAAC;GAAAC;GAAAC;GAAAC;GASN;AAAAO,IAAA,KAAAT;AAAAS,IAAA,KAAAP;AAAAO,IAAA,KAAAR;AAAAQ,IAAA,KAAAV;AAAAU,IAAA,KAAAX;AAAAW,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAAA,IAAAG;AAAA,KAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,IAAA;AAVHC,OAAA,oBAAA,kBAAA;GACS,OAAAD;GAWNL;IAC0B;AAAAG,IAAA,KAAAH;AAAAG,IAAA,KAAAE;AAAAF,IAAA,KAAAG;OAAAA,MAAAH,EAAA;AAAA,QAb7BG;;AAiBJ,SAAOC,uBAAA;AAAA,QACElB,WAAWQ,kBAAwB,IAAnC,EAAmC"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-8531f8b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-1b26a89 | Cube Dev Team */
2
2
  import { DisplayTransition } from "../helpers/DisplayTransition/DisplayTransition.js";
3
3
  import { ITEM_RESTING_COLOR_VARIANTS, ROW_STATE_ALIASES, resolveItemVariant } from "../../data/item-themes.js";
4
4
  import { ItemActionProvider } from "./ItemActionContext.js";
@@ -1,10 +1,10 @@
1
1
 
2
2
  import { CubeUseActionProps } from "../use-action.js";
3
+ import { CubeItemActionProps } from "../ItemAction/ItemAction.js";
4
+ import "../ItemAction/index.js";
3
5
  import { CubeItemBadgeProps } from "../../content/ItemBadge/ItemBadge.js";
4
6
  import "../../content/Item/index.js";
5
7
  import { CubeItemProps } from "../../content/Item/Item.js";
6
- import { CubeItemActionProps } from "../ItemAction/ItemAction.js";
7
- import "../ItemAction/index.js";
8
8
  import "../../../index.js";
9
9
  import { Styles } from "@tenphi/tasty";
10
10
  import * as react from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-8531f8b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-1b26a89 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useDismissParentPopover } from "../../../utils/react/usePopoverSync.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-8531f8b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-1b26a89 | Cube Dev Team */
2
2
  import { Button } from "../Button/Button.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { forwardRef } from "react";
@@ -1,10 +1,11 @@
1
1
 
2
+ import { ItemAction } from "../ItemAction/ItemAction.js";
3
+ import { CubeMenuItemProps, _MenuCollectionItem } from "./MenuCollectionItem.js";
2
4
  import { _MenuTrigger } from "./MenuTrigger.js";
3
5
  import { SubMenuTrigger } from "./SubMenuTrigger.js";
4
- import { CubeItemBadgeProps } from "../../content/ItemBadge/ItemBadge.js";
5
- import { CubeItemActionProps } from "../ItemAction/ItemAction.js";
6
+ import { ItemBadge } from "../../content/ItemBadge/ItemBadge.js";
6
7
  import "../index.js";
7
- import { CubeCollectionItemProps, _CollectionItem } from "../../CollectionItem.js";
8
+ import { CubeCollectionItemProps } from "../../CollectionItem.js";
8
9
  import "../../../index.js";
9
10
  import { BasePropsWithoutChildren, ContainerStyleProps, Styles } from "@tenphi/tasty";
10
11
  import React, { ReactElement, ReactNode } from "react";
@@ -12,7 +13,6 @@ import * as react_aria0 from "react-aria";
12
13
  import { AriaMenuProps } from "react-aria";
13
14
  import * as react_stately0 from "react-stately";
14
15
  import { Section } from "react-stately";
15
- import * as _react_types_shared0 from "@react-types/shared";
16
16
  import { CollectionChildren, FocusStrategy, Key as Key$2 } from "@react-types/shared";
17
17
 
18
18
  //#region src/components/actions/Menu/Menu.d.ts
@@ -51,15 +51,15 @@ interface CubeMenuProps<T> extends BasePropsWithoutChildren, ContainerStyleProps
51
51
  type SectionComponent = typeof Section;
52
52
  declare const Section$1: SectionComponent;
53
53
  declare const __Menu: (<T>(props: CubeMenuProps<T> & React.RefAttributes<HTMLUListElement>) => ReactElement) & {
54
- Item: typeof _CollectionItem;
54
+ Item: typeof _MenuCollectionItem;
55
55
  Section: typeof Section$1;
56
56
  SubMenuTrigger: typeof SubMenuTrigger;
57
57
  Trigger: typeof _MenuTrigger;
58
58
  } & {
59
- Item: (<T>(props: CubeCollectionItemProps<T>) => ReactElement) & {
60
- Action: React.ForwardRefExoticComponent<CubeItemActionProps & React.RefAttributes<_react_types_shared0.FocusableRefValue<HTMLElement, HTMLElement>>>;
61
- Badge: React.ForwardRefExoticComponent<CubeItemBadgeProps & React.RefAttributes<HTMLDivElement>>;
62
- };
59
+ Item: (<T>(_props: CubeMenuItemProps<T>) => ReactElement | null) & Pick<(<T>(_props: CubeCollectionItemProps<T>) => ReactElement | null) & {
60
+ Action: typeof ItemAction;
61
+ Badge: typeof ItemBadge;
62
+ }, "Action" | "Badge">;
63
63
  Section: <T>(props: react_stately0.SectionProps<T>) => React.JSX.Element;
64
64
  SubMenuTrigger: typeof SubMenuTrigger;
65
65
  Trigger: React.ForwardRefExoticComponent<Omit<react_aria0.AriaMenuTriggerProps, "children"> & react_aria0.PositionProps & {