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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  2. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  3. package/dist/_internal/hooks/use-event.js +1 -1
  4. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  5. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  6. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  7. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  8. package/dist/_internal/hooks/use-warn.js +1 -1
  9. package/dist/components/Block.js +1 -1
  10. package/dist/components/CollectionItem.js +1 -1
  11. package/dist/components/GlobalStyles.js +1 -1
  12. package/dist/components/GridProvider.js +1 -1
  13. package/dist/components/HiddenInput.js +1 -1
  14. package/dist/components/Root.d.ts +6 -0
  15. package/dist/components/Root.js +125 -102
  16. package/dist/components/Root.js.map +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  28. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  29. package/dist/components/actions/Link/Link.js +1 -1
  30. package/dist/components/actions/Menu/Menu.js +1 -1
  31. package/dist/components/actions/Menu/MenuCollectionItem.js +7 -4
  32. package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -1
  33. package/dist/components/actions/Menu/MenuItem.js +69 -60
  34. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +1 -1
  36. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  37. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  39. package/dist/components/actions/Menu/context.js +1 -1
  40. package/dist/components/actions/Menu/styled.js +1 -1
  41. package/dist/components/actions/actions-run.js +1 -1
  42. package/dist/components/actions/index.js +1 -1
  43. package/dist/components/actions/use-action.js +15 -14
  44. package/dist/components/actions/use-action.js.map +1 -1
  45. package/dist/components/actions/use-anchored-menu.js +1 -1
  46. package/dist/components/actions/use-context-menu.js +1 -1
  47. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  48. package/dist/components/content/Alert/Alert.js +1 -1
  49. package/dist/components/content/Alert/use-alert.js +1 -1
  50. package/dist/components/content/Avatar/Avatar.js +1 -1
  51. package/dist/components/content/Badge/Badge.js +1 -1
  52. package/dist/components/content/Card/Card.js +1 -1
  53. package/dist/components/content/Content.js +1 -1
  54. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  55. package/dist/components/content/CopySnippet/CopySnippet.d.ts +4 -4
  56. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  57. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  58. package/dist/components/content/Divider.js +1 -1
  59. package/dist/components/content/Footer.js +1 -1
  60. package/dist/components/content/Header.js +1 -1
  61. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  62. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  63. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  64. package/dist/components/content/Item/Item.js +14 -2
  65. package/dist/components/content/Item/Item.js.map +1 -1
  66. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  67. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  68. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  69. package/dist/components/content/Layout/GridLayout.js +1 -1
  70. package/dist/components/content/Layout/Layout.js +1 -1
  71. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  72. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  73. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  74. package/dist/components/content/Layout/LayoutContent.js +1 -1
  75. package/dist/components/content/Layout/LayoutContext.js +1 -1
  76. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  77. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  78. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  79. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  80. package/dist/components/content/Layout/LayoutPane.js +1 -1
  81. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  82. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  83. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  84. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  85. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  86. package/dist/components/content/Layout/index.js +1 -1
  87. package/dist/components/content/Layout/utils.js +1 -1
  88. package/dist/components/content/Paragraph.js +1 -1
  89. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  90. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  91. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  92. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  93. package/dist/components/content/Result/Result.js +1 -1
  94. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  95. package/dist/components/content/Tag/Tag.js +1 -1
  96. package/dist/components/content/Text.js +1 -1
  97. package/dist/components/content/TextItem/TextItem.js +1 -1
  98. package/dist/components/content/Title.js +1 -1
  99. package/dist/components/content/Tree/Tree.js +1 -1
  100. package/dist/components/content/Tree/TreeNode.js +1 -1
  101. package/dist/components/content/Tree/styled.js +1 -1
  102. package/dist/components/content/Tree/tree-index.js +1 -1
  103. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  104. package/dist/components/content/Tree/use-load-data.js +1 -1
  105. package/dist/components/content/highlightText.js +1 -1
  106. package/dist/components/content/use-auto-tooltip.js +1 -1
  107. package/dist/components/data/DataTable/DataTable.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  110. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  111. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  112. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  113. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  114. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  115. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  116. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  117. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  118. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  119. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  120. package/dist/components/data/TableBase/RowCollection.js +1 -1
  121. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  122. package/dist/components/data/TableBase/TableRow.js +1 -1
  123. package/dist/components/data/TableBase/TableView.js +1 -1
  124. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  125. package/dist/components/data/TableBase/column-header.js +1 -1
  126. package/dist/components/data/TableBase/column-menu.js +1 -1
  127. package/dist/components/data/TableBase/column-styles.js +1 -1
  128. package/dist/components/data/TableBase/column-tint.js +1 -1
  129. package/dist/components/data/TableBase/row-menu.js +1 -1
  130. package/dist/components/data/TableBase/styled.js +1 -1
  131. package/dist/components/data/TableBase/table-tree.js +1 -1
  132. package/dist/components/data/TableBase/types.js +1 -1
  133. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  134. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  135. package/dist/components/data/TableBase/use-column-order.js +1 -1
  136. package/dist/components/data/TableBase/use-column-window.js +1 -1
  137. package/dist/components/data/TableBase/use-container-width.js +1 -1
  138. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  139. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  140. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  141. package/dist/components/data/TableBase/use-table-search.js +1 -1
  142. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  143. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  144. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  145. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  146. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  147. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  148. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  149. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  150. package/dist/components/fields/Checkbox/context.js +1 -1
  151. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  152. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  153. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  154. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  155. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  156. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  157. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  158. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  159. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  160. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  161. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  162. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  163. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  164. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  165. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  166. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  167. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  168. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  169. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  170. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  171. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  172. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  173. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  174. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/parseDate.d.ts +7 -0
  176. package/dist/components/fields/DatePicker/parseDate.js +17 -3
  177. package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
  178. package/dist/components/fields/DatePicker/period.js +1 -1
  179. package/dist/components/fields/DatePicker/props.js +1 -1
  180. package/dist/components/fields/DatePicker/utils.js +1 -1
  181. package/dist/components/fields/FileInput/FileInput.js +1 -1
  182. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  183. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  184. package/dist/components/fields/Input/Input.js +1 -1
  185. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  186. package/dist/components/fields/ListBox/ListBox.js +1 -1
  187. package/dist/components/fields/ListBox/optionId.js +1 -1
  188. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  189. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  190. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  191. package/dist/components/fields/NumberInput/NumberInput.d.ts +6 -0
  192. package/dist/components/fields/NumberInput/NumberInput.js +2 -2
  193. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  194. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  195. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  196. package/dist/components/fields/Picker/Picker.js +1 -1
  197. package/dist/components/fields/RadioGroup/Radio.d.ts +4 -4
  198. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  199. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  200. package/dist/components/fields/RadioGroup/context.js +1 -1
  201. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  202. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  203. package/dist/components/fields/Select/Select.js +1 -1
  204. package/dist/components/fields/Slider/Gradation.js +1 -1
  205. package/dist/components/fields/Slider/HueSlider.js +1 -1
  206. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  207. package/dist/components/fields/Slider/Slider.js +1 -1
  208. package/dist/components/fields/Slider/SliderBase.js +1 -1
  209. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  210. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  211. package/dist/components/fields/Slider/elements.js +1 -1
  212. package/dist/components/fields/Slider/index.js +1 -1
  213. package/dist/components/fields/Switch/Switch.js +1 -1
  214. package/dist/components/fields/TagInput/TagInput.js +1 -1
  215. package/dist/components/fields/TagInput/TagList.js +1 -1
  216. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  217. package/dist/components/fields/TagInput/useTagError.js +1 -1
  218. package/dist/components/fields/TextArea/TextArea.js +1 -1
  219. package/dist/components/fields/TextInput/TextInput.js +1 -1
  220. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  221. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  222. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  223. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  224. package/dist/components/fields/TriggerActions.js +1 -1
  225. package/dist/components/fields/color/ColorPanel.js +1 -1
  226. package/dist/components/fields/color/channels.js +1 -1
  227. package/dist/components/fields/color/color.js +1 -1
  228. package/dist/components/fields/color/context.js +1 -1
  229. package/dist/components/fields/option-origin-press.js +1 -1
  230. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  231. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  232. package/dist/components/form/Form/Field.js +1 -1
  233. package/dist/components/form/Form/Form.js +1 -1
  234. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  235. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  236. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  237. package/dist/components/form/Form/SubmitError.js +1 -1
  238. package/dist/components/form/Form/backend.js +1 -1
  239. package/dist/components/form/Form/index.js +1 -1
  240. package/dist/components/form/Form/modern/actions.js +1 -1
  241. package/dist/components/form/Form/modern/context.js +1 -1
  242. package/dist/components/form/Form/modern/controller.js +1 -1
  243. package/dist/components/form/Form/modern/field-binding.js +1 -1
  244. package/dist/components/form/Form/modern/field.js +1 -1
  245. package/dist/components/form/Form/modern/react.js +1 -1
  246. package/dist/components/form/Form/modern/store.js +1 -1
  247. package/dist/components/form/Form/modern/validation.js +1 -1
  248. package/dist/components/form/Form/modern/values.js +1 -1
  249. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  250. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  251. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  252. package/dist/components/form/Form/use-field/use-field.js +1 -1
  253. package/dist/components/form/Form/use-form.js +1 -1
  254. package/dist/components/form/Form/validation.js +1 -1
  255. package/dist/components/form/Label.js +1 -1
  256. package/dist/components/form/field-chrome.js +1 -1
  257. package/dist/components/form/legacy-tooltip.js +1 -1
  258. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  259. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  260. package/dist/components/form/validation/use-validation-props.js +1 -1
  261. package/dist/components/form/wrapper.js +1 -1
  262. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  263. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  264. package/dist/components/layout/Flex.js +1 -1
  265. package/dist/components/layout/Flow.js +1 -1
  266. package/dist/components/layout/Grid.js +1 -1
  267. package/dist/components/layout/Panel.js +1 -1
  268. package/dist/components/layout/Prefix.js +1 -1
  269. package/dist/components/layout/ResizablePanel.js +1 -1
  270. package/dist/components/layout/Space.js +1 -1
  271. package/dist/components/layout/Suffix.js +1 -1
  272. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  273. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  274. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  275. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  276. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  277. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  278. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  279. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  280. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  281. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  282. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  283. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  284. package/dist/components/navigation/Tabs/styled.js +1 -1
  285. package/dist/components/navigation/Tabs/types.js +1 -1
  286. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  287. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  288. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  289. package/dist/components/other/Calendar/Calendar.js +1 -1
  290. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  291. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  292. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  293. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  294. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  295. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  296. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  297. package/dist/components/other/Calendar/styled.js +1 -1
  298. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  299. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  300. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  301. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  302. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  303. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  304. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  305. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  306. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  307. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  308. package/dist/components/overlays/Dialog/context.js +1 -1
  309. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  310. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  311. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  312. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  313. package/dist/components/overlays/Modal/Modal.js +1 -1
  314. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  315. package/dist/components/overlays/Modal/Overlay.js +1 -1
  316. package/dist/components/overlays/Modal/Popover.js +1 -1
  317. package/dist/components/overlays/Modal/Tray.js +1 -1
  318. package/dist/components/overlays/Modal/Underlay.js +1 -1
  319. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  320. package/dist/components/overlays/Notifications/Notification.js +1 -1
  321. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  322. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  323. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  324. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  325. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  326. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  327. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  328. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  329. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  330. package/dist/components/overlays/Notifications/index.js +1 -1
  331. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  332. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  333. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  334. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  335. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  336. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  337. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  338. package/dist/components/overlays/Toast/index.js +1 -1
  339. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  340. package/dist/components/overlays/Toast/useToast.js +1 -1
  341. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  342. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  343. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  344. package/dist/components/overlays/Tooltip/context.js +1 -1
  345. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  346. package/dist/components/portal/Portal.js +1 -1
  347. package/dist/components/portal/PortalProvider.js +1 -1
  348. package/dist/components/portal/usePortal.js +1 -1
  349. package/dist/components/shared/DraggableCollection.js +1 -1
  350. package/dist/components/shared/InvalidIcon.js +1 -1
  351. package/dist/components/shared/ValidIcon.js +1 -1
  352. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  353. package/dist/components/status/Spin/Cube.js +1 -1
  354. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  355. package/dist/components/status/Spin/Spin.js +1 -1
  356. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  357. package/dist/data/item-themes.js +1 -1
  358. package/dist/data/themes.js +1 -1
  359. package/dist/eslint-plugin/defaults.generated.js +1 -1
  360. package/dist/eslint-plugin/index.js +1 -1
  361. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  362. package/dist/i18n/I18nProvider.js +1 -1
  363. package/dist/i18n/createFormatter.js +1 -1
  364. package/dist/i18n/index.js +1 -1
  365. package/dist/i18n/instance.js +1 -1
  366. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  367. package/dist/i18n/locales/en-US/uikit.js +1 -1
  368. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  369. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  370. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  371. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  372. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  373. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  374. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  375. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  376. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  377. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  378. package/dist/i18n/locales.js +1 -1
  379. package/dist/i18n/namespace.js +1 -1
  380. package/dist/i18n/useFormatter.js +1 -1
  381. package/dist/i18n/useI18n.js +1 -1
  382. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  383. package/dist/icons/AdjustmentsIcon.js +1 -1
  384. package/dist/icons/AiIcon.js +1 -1
  385. package/dist/icons/AreaChartIcon.js +1 -1
  386. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  387. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  388. package/dist/icons/BackwardIcon.js +1 -1
  389. package/dist/icons/BarChartIcon.js +1 -1
  390. package/dist/icons/BellFilledIcon.js +1 -1
  391. package/dist/icons/BellIcon.js +1 -1
  392. package/dist/icons/BooleanIcon.js +1 -1
  393. package/dist/icons/CalendarEditIcon.js +1 -1
  394. package/dist/icons/CalendarIcon.js +1 -1
  395. package/dist/icons/CaretDownIcon.js +1 -1
  396. package/dist/icons/CaretUpIcon.js +1 -1
  397. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  398. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  399. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  400. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  401. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  402. package/dist/icons/ChartBarLineIcon.js +1 -1
  403. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  404. package/dist/icons/ChartBarStackedIcon.js +1 -1
  405. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  406. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  407. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  408. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  409. package/dist/icons/ChartBubbleIcon.js +1 -1
  410. package/dist/icons/ChartDonut2Icon.js +1 -1
  411. package/dist/icons/ChartFunnelIcon.js +1 -1
  412. package/dist/icons/ChartHeatmapIcon.js +1 -1
  413. package/dist/icons/ChartKPIIcon.js +1 -1
  414. package/dist/icons/ChartPie2Icon.js +1 -1
  415. package/dist/icons/ChartScatterIcon.js +1 -1
  416. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  417. package/dist/icons/CheckCircleIcon.js +1 -1
  418. package/dist/icons/CheckIcon.js +1 -1
  419. package/dist/icons/CircleFilledIcon.js +1 -1
  420. package/dist/icons/ClearIcon.js +1 -1
  421. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  422. package/dist/icons/CloseCircleIcon.js +1 -1
  423. package/dist/icons/CloseIcon.js +1 -1
  424. package/dist/icons/CodeIcon.js +1 -1
  425. package/dist/icons/ColumnTotalIcon.js +1 -1
  426. package/dist/icons/CopyIcon.js +1 -1
  427. package/dist/icons/CountIcon.js +1 -1
  428. package/dist/icons/CubeIcon.js +1 -1
  429. package/dist/icons/CubePauseIcon.js +1 -1
  430. package/dist/icons/CubePlayIcon.js +1 -1
  431. package/dist/icons/CurrencyDollarIcon.js +1 -1
  432. package/dist/icons/DangerIcon.js +1 -1
  433. package/dist/icons/DashboardIcon.js +1 -1
  434. package/dist/icons/DatabaseIcon.js +1 -1
  435. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  436. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  437. package/dist/icons/DirectionIcon.js +1 -1
  438. package/dist/icons/DonutIcon.js +1 -1
  439. package/dist/icons/DownIcon.js +1 -1
  440. package/dist/icons/EditIcon.js +1 -1
  441. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  442. package/dist/icons/ExclamationCircleIcon.js +1 -1
  443. package/dist/icons/ExclamationIcon.js +1 -1
  444. package/dist/icons/EyeIcon.js +1 -1
  445. package/dist/icons/EyeInvisibleIcon.js +1 -1
  446. package/dist/icons/FilterIcon.js +1 -1
  447. package/dist/icons/FolderFilledIcon.js +1 -1
  448. package/dist/icons/FolderIcon.js +1 -1
  449. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  450. package/dist/icons/FolderOpenIcon.js +1 -1
  451. package/dist/icons/ForwardIcon.js +1 -1
  452. package/dist/icons/GripVerticalIcon.js +1 -1
  453. package/dist/icons/HierarchyIcon.js +1 -1
  454. package/dist/icons/HierarchyOpenIcon.js +1 -1
  455. package/dist/icons/Icon.js +1 -1
  456. package/dist/icons/InfoCircleIcon.js +1 -1
  457. package/dist/icons/InfoIcon.js +1 -1
  458. package/dist/icons/KeyIcon.js +1 -1
  459. package/dist/icons/LeftIcon.js +1 -1
  460. package/dist/icons/LineChartIcon.js +1 -1
  461. package/dist/icons/LoadingIcon.js +1 -1
  462. package/dist/icons/LockFilledIcon.js +1 -1
  463. package/dist/icons/LockIcon.js +1 -1
  464. package/dist/icons/MoreIcon.js +1 -1
  465. package/dist/icons/NotAllowedIcon.js +1 -1
  466. package/dist/icons/Number123Icon.js +1 -1
  467. package/dist/icons/NumberIcon.js +1 -1
  468. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  469. package/dist/icons/PauseCircleIcon.js +1 -1
  470. package/dist/icons/PauseIcon.js +1 -1
  471. package/dist/icons/PercentageIcon.js +1 -1
  472. package/dist/icons/PieChartIcon.js +1 -1
  473. package/dist/icons/PipetteIcon.js +1 -1
  474. package/dist/icons/PlayCircleIcon.js +1 -1
  475. package/dist/icons/PlayIcon.js +1 -1
  476. package/dist/icons/PlusIcon.js +1 -1
  477. package/dist/icons/ProgressBarIcon.js +1 -1
  478. package/dist/icons/ReloadIcon.js +1 -1
  479. package/dist/icons/ReportIcon.js +1 -1
  480. package/dist/icons/ReturnIcon.js +1 -1
  481. package/dist/icons/RightIcon.js +1 -1
  482. package/dist/icons/RowTotalsIcon.js +1 -1
  483. package/dist/icons/SchemeIcon.js +1 -1
  484. package/dist/icons/SearchIcon.js +1 -1
  485. package/dist/icons/SemanticQueryIcon.js +1 -1
  486. package/dist/icons/SettingsIcon.js +1 -1
  487. package/dist/icons/ShieldFilledIcon.js +1 -1
  488. package/dist/icons/ShieldIcon.js +1 -1
  489. package/dist/icons/SlashIcon.js +1 -1
  490. package/dist/icons/SparklesIcon.js +1 -1
  491. package/dist/icons/SqlIcon.js +1 -1
  492. package/dist/icons/StatsIcon.js +1 -1
  493. package/dist/icons/StopIcon.js +1 -1
  494. package/dist/icons/StringIcon.js +1 -1
  495. package/dist/icons/SubtotalsIcon.js +1 -1
  496. package/dist/icons/SwitchIcon.js +1 -1
  497. package/dist/icons/TableIcon.js +1 -1
  498. package/dist/icons/ThumbsDownIcon.js +1 -1
  499. package/dist/icons/ThumbsUpIcon.js +1 -1
  500. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  501. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  502. package/dist/icons/ThunderboltIcon.js +1 -1
  503. package/dist/icons/TimeIcon.js +1 -1
  504. package/dist/icons/TrashIcon.js +1 -1
  505. package/dist/icons/UnlockIcon.js +1 -1
  506. package/dist/icons/UpIcon.js +1 -1
  507. package/dist/icons/UserGroupIcon.js +1 -1
  508. package/dist/icons/UserIcon.js +1 -1
  509. package/dist/icons/UserLockIcon.js +1 -1
  510. package/dist/icons/ViewIcon.js +1 -1
  511. package/dist/icons/WarningFilledIcon.js +1 -1
  512. package/dist/icons/WarningIcon.js +1 -1
  513. package/dist/icons/wrap-icon.js +1 -1
  514. package/dist/index.js +1 -1
  515. package/dist/probe/canonicalize.js +1 -1
  516. package/dist/probe/css.js +1 -1
  517. package/dist/probe/index.js +1 -1
  518. package/dist/provider.js +1 -1
  519. package/dist/providers/TrackingProvider.js +1 -1
  520. package/dist/providers/navigation-url.js +15 -3
  521. package/dist/providers/navigation-url.js.map +1 -1
  522. package/dist/providers/navigationAdapter.default.js +1 -1
  523. package/dist/providers/use-navigation.js +1 -1
  524. package/dist/tokens/all-tokens.js +1 -1
  525. package/dist/tokens/base.js +1 -1
  526. package/dist/tokens/color-seed.js +1 -1
  527. package/dist/tokens/color-theme.js +1 -1
  528. package/dist/tokens/colors.js +1 -1
  529. package/dist/tokens/layout.js +1 -1
  530. package/dist/tokens/lazy-styles.js +1 -1
  531. package/dist/tokens/legacy-color.js +1 -1
  532. package/dist/tokens/palette-config.js +1 -1
  533. package/dist/tokens/palette.js +1 -1
  534. package/dist/tokens/resolve.js +1 -1
  535. package/dist/tokens/shadows.js +1 -1
  536. package/dist/tokens/sizes.js +1 -1
  537. package/dist/tokens/spacing.js +1 -1
  538. package/dist/tokens/typography.js +1 -1
  539. package/dist/utils/ResizeSensor.js +1 -1
  540. package/dist/utils/colors.js +1 -1
  541. package/dist/utils/dotize.js +1 -1
  542. package/dist/utils/is-dev-env.js +1 -1
  543. package/dist/utils/modules.js +1 -1
  544. package/dist/utils/promise.js +1 -1
  545. package/dist/utils/raf.js +1 -1
  546. package/dist/utils/random.js +1 -1
  547. package/dist/utils/range.js +1 -1
  548. package/dist/utils/react/RenderCache.js +1 -1
  549. package/dist/utils/react/Slots.js +1 -1
  550. package/dist/utils/react/chain.js +1 -1
  551. package/dist/utils/react/disabledProps.js +1 -1
  552. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  553. package/dist/utils/react/index.js +1 -1
  554. package/dist/utils/react/interactions.js +1 -1
  555. package/dist/utils/react/isTextOnly.js +1 -1
  556. package/dist/utils/react/mapProps.js +1 -1
  557. package/dist/utils/react/mergeProps.js +1 -1
  558. package/dist/utils/react/nullableValue.js +1 -1
  559. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  560. package/dist/utils/react/programmaticFocus.js +1 -1
  561. package/dist/utils/react/resolveIcon.js +1 -1
  562. package/dist/utils/react/sharedStore.js +1 -1
  563. package/dist/utils/react/useBufferedValue.js +1 -1
  564. package/dist/utils/react/useCombinedRefs.js +1 -1
  565. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  566. package/dist/utils/react/useEventBus.js +1 -1
  567. package/dist/utils/react/useId.js +1 -1
  568. package/dist/utils/react/useIsDarwin.js +1 -1
  569. package/dist/utils/react/useKeySymbols.js +1 -1
  570. package/dist/utils/react/useLayoutEffect.js +1 -1
  571. package/dist/utils/react/useLocalStorage.js +1 -1
  572. package/dist/utils/react/useMergeStyles.js +1 -1
  573. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  574. package/dist/utils/react/usePopoverSync.js +1 -1
  575. package/dist/utils/react/useQaProps.js +1 -1
  576. package/dist/utils/react/useScheme.js +1 -1
  577. package/dist/utils/react/useViewportSize.js +1 -1
  578. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  579. package/dist/utils/selection.js +1 -1
  580. package/dist/utils/styles.js +1 -1
  581. package/dist/utils/tree.js +1 -1
  582. package/dist/utils/warnings.js +1 -1
  583. package/dist/version.js +2 -2
  584. package/docs/Theming.md +2 -1
  585. package/docs/components/Root.md +1 -1
  586. package/docs/components/actions/Link.md +1 -1
  587. package/docs/components/actions/Menu.md +4 -2
  588. package/docs/components/fields/NumberInput.md +10 -1
  589. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MenuCollectionItem.js","names":["ReactElement","Item","NavigateOptions","To","COLLECTION_ITEM_CLICK","CollectionItem","CubeCollectionItemBaseProps","parseTo","Key","LinkDOMProps","CubeMenuItemProps","T","to","navigationOptions","key","CURRENT_DOCUMENT_LINK","Symbol","getMenuItemReactKey","String","MenuCollectionItem","_props","_MenuCollectionItem","Pick","Object","assign","Action","Badge","getCollectionNode","props","context","newTab","isCurrentDocument","href","isLink","isDisabled","isLoading","undefined","onClick","target","rel"],"sources":["../../../../src/components/actions/Menu/MenuCollectionItem.tsx"],"sourcesContent":["import { ReactElement } from 'react';\nimport { Item } from 'react-stately';\n\nimport { NavigateOptions, To } from '../../../providers/navigation.types';\nimport {\n COLLECTION_ITEM_CLICK,\n CollectionItem,\n CubeCollectionItemBaseProps,\n} from '../../CollectionItem';\nimport { parseTo } from '../use-action';\n\nimport type { Key, LinkDOMProps } from '@react-types/shared';\n\nexport interface CubeMenuItemProps<T>\n extends CubeCollectionItemBaseProps<T>,\n LinkDOMProps {\n /** Application destination. Takes precedence over href. */\n to?: To;\n navigationOptions?: NavigateOptions;\n [key: string]: any;\n}\n\n// Aria recognizes links by a truthy collection href; preserve the native empty URL.\nexport const CURRENT_DOCUMENT_LINK = Symbol('Menu.Item current document');\n\nexport function getMenuItemReactKey(key: Key): string {\n return `${typeof key}:${String(key)}`;\n}\n\nfunction MenuCollectionItem<T>(\n _props: CubeMenuItemProps<T>,\n): ReactElement | null {\n return null;\n}\n\nconst _MenuCollectionItem: typeof MenuCollectionItem &\n Pick<typeof CollectionItem, 'Action' | 'Badge'> = Object.assign(\n MenuCollectionItem,\n {\n Action: CollectionItem.Action,\n Badge: CollectionItem.Badge,\n getCollectionNode<T>(props: CubeMenuItemProps<T>, context: unknown) {\n const { newTab } = parseTo(props.to);\n const isCurrentDocument = props.to == null && props.href === '';\n const isLink =\n props.to !== '' && (props.to != null || props.href != null);\n\n // A private href marks links for Aria; the row resolves the actual `to`.\n return (Item as any).getCollectionNode(\n {\n ...props,\n isDisabled: props.isDisabled ?? (props.isLoading ? true : undefined),\n href:\n props.to === ''\n ? undefined\n : props.to != null\n ? '.'\n : isCurrentDocument\n ? '.'\n : props.href,\n [CURRENT_DOCUMENT_LINK]: isCurrentDocument,\n // Selectable items also consume collection onClick; let Menu own it once.\n onClick: isLink ? undefined : props.onClick,\n [COLLECTION_ITEM_CLICK]: isLink ? props.onClick : undefined,\n target: newTab ? '_blank' : props.target,\n rel: newTab ? props.rel ?? 'noopener noreferrer' : props.rel,\n },\n context,\n );\n },\n },\n);\n\nexport { _MenuCollectionItem as MenuCollectionItem };\n"],"mappings":";;;;;;AAuBA,MAAae,wBAAwBC,OAAO,6BAA6B;AAEzE,SAAgBC,oBAAoBH,KAAkB;AACpD,QAAO,GAAG,OAAOA,IAAG,GAAII,OAAOJ,IAAI;;AAGrC,SAASK,mBACPC,QACqB;AACrB,QAAO;;AAGT,MAAMC,sBAC8CE,OAAOC,OACzDL,oBACA;CACEM,QAAQpB,gBAAeoB;CACvBC,OAAOrB,gBAAeqB;CACtBC,kBAAqBC,OAA6BC,SAAkB;EAClE,MAAM,EAAEC,WAAWvB,QAAQqB,MAAMhB,GAAG;EACpC,MAAMmB,oBAAoBH,MAAMhB,MAAM,QAAQgB,MAAMI,SAAS;EAC7D,MAAMC,SACJL,MAAMhB,OAAO,OAAOgB,MAAMhB,MAAM,QAAQgB,MAAMI,QAAQ;AAGxD,SAAQ/B,KAAa0B,kBACnB;GACE,GAAGC;GACHM,YAAYN,MAAMM,eAAeN,MAAMO,YAAY,OAAOC;GAC1DJ,MACEJ,MAAMhB,OAAO,KACTwB,SACAR,MAAMhB,MAAM,OACV,MACAmB,oBACE,MACAH,MAAMI;IACfjB,wBAAwBgB;GAEzBM,SAASJ,SAASG,SAAYR,MAAMS;IACnCjC,wBAAwB6B,SAASL,MAAMS,UAAUD;GAClDE,QAAQR,SAAS,WAAWF,MAAMU;GAClCC,KAAKT,SAASF,MAAMW,OAAO,wBAAwBX,MAAMW;GAC1D,EACDV,QACD;;CAGP,CAAC"}
1
+ {"version":3,"file":"MenuCollectionItem.js","names":["ReactElement","Item","normalizeNavigationUrl","NavigateOptions","To","COLLECTION_ITEM_CLICK","CollectionItem","CubeCollectionItemBaseProps","parseTo","Key","LinkDOMProps","CubeMenuItemProps","T","to","navigationOptions","key","CURRENT_DOCUMENT_LINK","Symbol","getMenuItemReactKey","String","MenuCollectionItem","_props","_MenuCollectionItem","Pick","Object","assign","Action","Badge","getCollectionNode","props","context","newTab","href","isCurrentDocument","isLink","isDisabled","isLoading","undefined","onClick","target","rel"],"sources":["../../../../src/components/actions/Menu/MenuCollectionItem.tsx"],"sourcesContent":["import { ReactElement } from 'react';\nimport { Item } from 'react-stately';\n\nimport { normalizeNavigationUrl } from '../../../providers/navigation-url';\nimport { NavigateOptions, To } from '../../../providers/navigation.types';\nimport {\n COLLECTION_ITEM_CLICK,\n CollectionItem,\n CubeCollectionItemBaseProps,\n} from '../../CollectionItem';\nimport { parseTo } from '../use-action';\n\nimport type { Key, LinkDOMProps } from '@react-types/shared';\n\nexport interface CubeMenuItemProps<T>\n extends CubeCollectionItemBaseProps<T>,\n LinkDOMProps {\n /** Application destination. Takes precedence over href. */\n to?: To;\n navigationOptions?: NavigateOptions;\n [key: string]: any;\n}\n\n// Aria recognizes links by a truthy collection href; preserve the native empty URL.\nexport const CURRENT_DOCUMENT_LINK = Symbol('Menu.Item current document');\n\nexport function getMenuItemReactKey(key: Key): string {\n return `${typeof key}:${String(key)}`;\n}\n\nfunction MenuCollectionItem<T>(\n _props: CubeMenuItemProps<T>,\n): ReactElement | null {\n return null;\n}\n\nconst _MenuCollectionItem: typeof MenuCollectionItem &\n Pick<typeof CollectionItem, 'Action' | 'Badge'> = Object.assign(\n MenuCollectionItem,\n {\n Action: CollectionItem.Action,\n Badge: CollectionItem.Badge,\n getCollectionNode<T>(props: CubeMenuItemProps<T>, context: unknown) {\n const { newTab } = parseTo(props.to);\n // A blank destination counts as an empty one, as the URL parser reads it.\n const to =\n typeof props.to === 'string'\n ? normalizeNavigationUrl(props.to)\n : props.to;\n const href =\n typeof props.href === 'string'\n ? normalizeNavigationUrl(props.href)\n : props.href;\n const isCurrentDocument = to == null && href === '';\n const isLink = to !== '' && (to != null || href != null);\n\n // A private href marks links for Aria; the row resolves the actual `to`.\n return (Item as any).getCollectionNode(\n {\n ...props,\n isDisabled: props.isDisabled ?? (props.isLoading ? true : undefined),\n href:\n to === ''\n ? undefined\n : to != null\n ? '.'\n : isCurrentDocument\n ? '.'\n : href,\n [CURRENT_DOCUMENT_LINK]: isCurrentDocument,\n // Selectable items also consume collection onClick; let Menu own it once.\n onClick: isLink ? undefined : props.onClick,\n [COLLECTION_ITEM_CLICK]: isLink ? props.onClick : undefined,\n target: newTab ? '_blank' : props.target,\n rel: newTab ? props.rel ?? 'noopener noreferrer' : props.rel,\n },\n context,\n );\n },\n },\n);\n\nexport { _MenuCollectionItem as MenuCollectionItem };\n"],"mappings":";;;;;;;AAwBA,MAAagB,wBAAwBC,OAAO,6BAA6B;AAEzE,SAAgBC,oBAAoBH,KAAkB;AACpD,QAAO,GAAG,OAAOA,IAAG,GAAII,OAAOJ,IAAI;;AAGrC,SAASK,mBACPC,QACqB;AACrB,QAAO;;AAGT,MAAMC,sBAC8CE,OAAOC,OACzDL,oBACA;CACEM,QAAQpB,gBAAeoB;CACvBC,OAAOrB,gBAAeqB;CACtBC,kBAAqBC,OAA6BC,SAAkB;EAClE,MAAM,EAAEC,WAAWvB,QAAQqB,MAAMhB,GAAG;EAEpC,MAAMA,KACJ,OAAOgB,MAAMhB,OAAO,WAChBX,uBAAuB2B,MAAMhB,GAAG,GAChCgB,MAAMhB;EACZ,MAAMmB,OACJ,OAAOH,MAAMG,SAAS,WAClB9B,uBAAuB2B,MAAMG,KAAK,GAClCH,MAAMG;EACZ,MAAMC,oBAAoBpB,MAAM,QAAQmB,SAAS;EACjD,MAAME,SAASrB,OAAO,OAAOA,MAAM,QAAQmB,QAAQ;AAGnD,SAAQ/B,KAAa2B,kBACnB;GACE,GAAGC;GACHM,YAAYN,MAAMM,eAAeN,MAAMO,YAAY,OAAOC;GAC1DL,MACEnB,OAAO,KACHwB,SACAxB,MAAM,OACJ,MACAoB,oBACE,MACAD;IACThB,wBAAwBiB;GAEzBK,SAASJ,SAASG,SAAYR,MAAMS;IACnCjC,wBAAwB6B,SAASL,MAAMS,UAAUD;GAClDE,QAAQR,SAAS,WAAWF,MAAMU;GAClCC,KAAKT,SAASF,MAAMW,OAAO,wBAAwBX,MAAMW;GAC1D,EACDV,QACD;;CAGP,CAAC"}
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
- import { isExternalUrl } from "../../../providers/navigation-url.js";
3
+ import { isExternalUrl, normalizeNavigationUrl } from "../../../providers/navigation-url.js";
4
4
  import { useNavigation } from "../../../providers/use-navigation.js";
5
5
  import { parseTo } from "../use-action.js";
6
6
  import { COLLECTION_ITEM_CLICK, filterCollectionItemProps } from "../../CollectionItem.js";
@@ -59,7 +59,7 @@ function MenuItem(props) {
59
59
  return t0;
60
60
  }
61
61
  function MenuLinkItem(props) {
62
- const $ = c(23);
62
+ const $ = c(28);
63
63
  const activatedLink = useRef(null);
64
64
  const linkRef = useRef(null);
65
65
  const { to, href, navigationOptions } = props.item.props;
@@ -71,55 +71,64 @@ function MenuLinkItem(props) {
71
71
  } else t0 = $[1];
72
72
  const { cleanTo: parsedTo, nativeRoute } = t0;
73
73
  const isCurrentDocument = props.item.props[CURRENT_DOCUMENT_LINK];
74
- const cleanTo = to != null ? parsedTo : isCurrentDocument ? "" : href;
75
74
  let t1;
76
- if ($[2] !== cleanTo) {
77
- t1 = typeof cleanTo === "string" && isExternalUrl(cleanTo);
78
- $[2] = cleanTo;
79
- $[3] = t1;
80
- } else t1 = $[3];
81
- const isExternal = t1;
82
- const t2 = navigationOptions?.relative;
83
- let t3;
84
- if ($[4] !== t2) {
85
- t3 = { relative: t2 };
86
- $[4] = t2;
87
- $[5] = t3;
88
- } else t3 = $[5];
89
- const { navigate, resolvedHref, isDefault } = useNavigation(isExternal ? "." : cleanTo || ".", t3);
75
+ if ($[2] !== href || $[3] !== isCurrentDocument || $[4] !== parsedTo || $[5] !== to) {
76
+ t1 = to != null ? parsedTo : isCurrentDocument ? "" : typeof href === "string" ? normalizeNavigationUrl(href) : href;
77
+ $[2] = href;
78
+ $[3] = isCurrentDocument;
79
+ $[4] = parsedTo;
80
+ $[5] = to;
81
+ $[6] = t1;
82
+ } else t1 = $[6];
83
+ const cleanTo = t1;
84
+ let t2;
85
+ if ($[7] !== cleanTo) {
86
+ t2 = typeof cleanTo === "string" && isExternalUrl(cleanTo);
87
+ $[7] = cleanTo;
88
+ $[8] = t2;
89
+ } else t2 = $[8];
90
+ const isExternal = t2;
91
+ const t3 = navigationOptions?.relative;
92
+ let t4;
93
+ if ($[9] !== t3) {
94
+ t4 = { relative: t3 };
95
+ $[9] = t3;
96
+ $[10] = t4;
97
+ } else t4 = $[10];
98
+ const { navigate, resolvedHref, isDefault } = useNavigation(isExternal ? "." : cleanTo || ".", t4);
90
99
  const linkHref = isCurrentDocument || nativeRoute && cleanTo === "" ? "" : isExternal ? String(cleanTo) : resolvedHref;
91
100
  const itemProps = props.item.props;
92
- let t4;
93
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
94
- t4 = (element) => {
101
+ let t5;
102
+ if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
103
+ t5 = (element) => {
95
104
  linkRef.current = element;
96
105
  };
97
- $[6] = t4;
98
- } else t4 = $[6];
99
- const onNativeLinkElement = t4;
100
- let t5;
101
- if ($[7] !== itemProps) {
102
- t5 = (event) => {
106
+ $[11] = t5;
107
+ } else t5 = $[11];
108
+ const onNativeLinkElement = t5;
109
+ let t6;
110
+ if ($[12] !== itemProps) {
111
+ t6 = (event) => {
103
112
  activatedLink.current = event.target.closest?.("a[data-menu-native-link]") ?? linkRef.current;
104
113
  itemProps[COLLECTION_ITEM_CLICK]?.(event);
105
114
  };
106
- $[7] = itemProps;
107
- $[8] = t5;
108
- } else t5 = $[8];
109
- const onClick = t5;
110
- let t6;
111
- if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
112
- t6 = (event_0) => {
115
+ $[12] = itemProps;
116
+ $[13] = t6;
117
+ } else t6 = $[13];
118
+ const onClick = t6;
119
+ let t7;
120
+ if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
121
+ t7 = (event_0) => {
113
122
  const anchor = activatedLink.current;
114
123
  if (!anchor) return;
115
124
  openLink(anchor.cloneNode(false), event_0, false);
116
125
  };
117
- $[9] = t6;
118
- } else t6 = $[9];
119
- const openNative = t6;
120
- let t7;
121
- if ($[10] !== cleanTo || $[11] !== isCurrentDocument || $[12] !== isDefault || $[13] !== isExternal || $[14] !== nativeRoute || $[15] !== navigate || $[16] !== navigationOptions) {
122
- t7 = (event_1) => {
126
+ $[14] = t7;
127
+ } else t7 = $[14];
128
+ const openNative = t7;
129
+ let t8;
130
+ if ($[15] !== cleanTo || $[16] !== isCurrentDocument || $[17] !== isDefault || $[18] !== isExternal || $[19] !== nativeRoute || $[20] !== navigate || $[21] !== navigationOptions) {
131
+ t8 = (event_1) => {
123
132
  const anchor_0 = activatedLink.current;
124
133
  if (!anchor_0?.hasAttribute("href") || event_1.defaultPrevented || event_1.button !== 0) return;
125
134
  if (shouldClientNavigate(anchor_0, event_1) && !isDefault && !isCurrentDocument && !nativeRoute && !isExternal) {
@@ -127,31 +136,31 @@ function MenuLinkItem(props) {
127
136
  if (cleanTo !== void 0) navigate(cleanTo, navigationOptions);
128
137
  } else if (!(event_1.target instanceof Element) || !anchor_0.contains(event_1.target)) openNative(event_1);
129
138
  };
130
- $[10] = cleanTo;
131
- $[11] = isCurrentDocument;
132
- $[12] = isDefault;
133
- $[13] = isExternal;
134
- $[14] = nativeRoute;
135
- $[15] = navigate;
136
- $[16] = navigationOptions;
137
- $[17] = t7;
138
- } else t7 = $[17];
139
- let t8;
140
- if ($[18] !== linkHref || $[19] !== onClick || $[20] !== props || $[21] !== t7) {
141
- t8 = /* @__PURE__ */ jsx(MenuItemContent, {
139
+ $[15] = cleanTo;
140
+ $[16] = isCurrentDocument;
141
+ $[17] = isDefault;
142
+ $[18] = isExternal;
143
+ $[19] = nativeRoute;
144
+ $[20] = navigate;
145
+ $[21] = navigationOptions;
146
+ $[22] = t8;
147
+ } else t8 = $[22];
148
+ let t9;
149
+ if ($[23] !== linkHref || $[24] !== onClick || $[25] !== props || $[26] !== t8) {
150
+ t9 = /* @__PURE__ */ jsx(MenuItemContent, {
142
151
  ...props,
143
152
  nativeLinkHref: linkHref,
144
153
  onNativeLinkElement,
145
154
  onClick,
146
- onNavigate: t7
155
+ onNavigate: t8
147
156
  });
148
- $[18] = linkHref;
149
- $[19] = onClick;
150
- $[20] = props;
151
- $[21] = t7;
152
- $[22] = t8;
153
- } else t8 = $[22];
154
- return t8;
157
+ $[23] = linkHref;
158
+ $[24] = onClick;
159
+ $[25] = props;
160
+ $[26] = t8;
161
+ $[27] = t9;
162
+ } else t9 = $[27];
163
+ return t9;
155
164
  }
156
165
  function MenuItemContent(props) {
157
166
  const $ = c(38);
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","names":["ClearPressResponder","openLink","shouldClientNavigate","useGlobalListeners","FocusableElement","Key","Node","Styles","AnchorHTMLAttributes","KeyboardEvent","MouseEvent","PointerEvent","useContext","useRef","FocusRing","useMenuItem","TreeState","RightIcon","isExternalUrl","useNavigation","mergeProps","COLLECTION_ITEM_CLICK","filterCollectionItemProps","ItemWithNativeLinks","parseTo","useMenuContext","CURRENT_DOCUMENT_LINK","SubmenuTriggerContext","MenuSelectionType","MenuItemProps","item","T","id","state","styles","isVirtualized","isDisabled","onAction","key","size","splitMenuItemProps","props","Record","semanticId","rowProps","semanticProps","value","Object","entries","startsWith","includes","primaryMenuItemProps","ariaProps","consumerProps","isLink","type","role","undefined","MenuItem","$","_c","submenuContext","t0","MenuLinkItem","activatedLink","linkRef","to","href","navigationOptions","cleanTo","parsedTo","nativeRoute","isCurrentDocument","t1","isExternal","t2","relative","t3","navigate","resolvedHref","isDefault","linkHref","String","itemProps","t4","Symbol","for","element","current","onNativeLinkElement","t5","event","target","Element","closest","onClick","t6","event_0","anchor","cloneNode","HTMLAnchorElement","openNative","t7","event_1","anchor_0","hasAttribute","defaultPrevented","button","preventDefault","contains","t8","MenuItemContent","onClose","closeOnSelect","rendered","_to","_navigationOptions","routerOptions","_routerOptions","_href","_target","rel","_rel","download","_download","ping","_ping","referrerPolicy","_referrerPolicy","hrefLang","_hrefLang","filteredItemProps","mods","itemMods","qa","itemQa","isSelectable","selectionManager","selectionMode","isDisabledKey","isLoading","ref","rowRef","restoreFocusRef","elementRef","ownerDocument","activeElement","focus","preventScroll","updateSemanticElement","menuItemProps","labelProps","descriptionProps","keyboardShortcutProps","isFocused","isSelected","isPressed","isOpen","isVirtualFocused","focusedKey","onKeyDown","itemOnKeyDown","onPointerDown","itemOnPointerDown","onPointerUp","itemOnPointerUp","_renderedHref","_renderedTarget","_renderedRel","_renderedDownload","_renderedPing","_renderedPolicy","_renderedHrefLang","itemOwnProps","primaryInCell","actions","rowItemProps","rowConsumerProps","consumerSemanticProps","skippedPointerUp","addGlobalListener","removeAllGlobalListeners","ctrlKey","metaKey","altKey","shiftKey","pointerId","currentTarget","recordSkippedUp","up","clearSkippedUp","cancel","nativeEvent","e","HTMLElement","stopPropagation","isComposing","repeat","dispatchEvent","window","bubbles","cancelable","detail","click","focused","pressed","selected","disabled","submenu","menuitem","nativeLinkHref","event_2","tabIndex","onMouseDown","nativeLinkProps","e_0","setFocused","setFocusedKey","t9","label","labelledBy","t10","element_0","t11","element_1","t12","t13","rightIcon","content","style","as","onNavigate","onMouseEnter","onMouseLeave","event_3","event_4","event_5","triggerRef"],"sources":["../../../../src/components/actions/Menu/MenuItem.tsx"],"sourcesContent":["import { ClearPressResponder } from '@react-aria/interactions';\nimport {\n openLink,\n shouldClientNavigate,\n useGlobalListeners,\n} from '@react-aria/utils';\nimport { FocusableElement, Key, Node } from '@react-types/shared';\nimport { Styles } from '@tenphi/tasty';\nimport {\n AnchorHTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n useContext,\n useRef,\n} from 'react';\nimport { FocusRing, useMenuItem } from 'react-aria';\nimport { TreeState } from 'react-stately';\n\nimport { RightIcon } from '../../../icons/RightIcon';\nimport { isExternalUrl } from '../../../providers/navigation-url';\nimport { useNavigation } from '../../../providers/use-navigation';\nimport { mergeProps } from '../../../utils/react';\nimport {\n COLLECTION_ITEM_CLICK,\n filterCollectionItemProps,\n} from '../../CollectionItem';\nimport { ItemWithNativeLinks } from '../../content/Item/ItemWithNativeLinks';\nimport { parseTo } from '../use-action';\n\nimport { useMenuContext } from './context';\nimport { CURRENT_DOCUMENT_LINK } from './MenuCollectionItem';\nimport { SubmenuTriggerContext } from './SubmenuTriggerContext';\n\nexport type MenuSelectionType = 'checkbox' | 'radio' | 'checkmark';\n\nexport interface MenuItemProps<T> {\n item: Node<T>;\n /**\n * The item element's id. A menu whose focus stays elsewhere — `CommandMenu`\n * keeps it in its search input — points `aria-activedescendant` at it.\n */\n id?: string;\n state: TreeState<T>;\n styles?: Styles;\n isVirtualized?: boolean;\n isDisabled?: boolean;\n onAction?: (key: Key) => void;\n size?: 'small' | 'medium' | (string & {});\n}\n\n// The primary control owns accessibility; the list row keeps styling and presses.\nfunction splitMenuItemProps(props: Record<string, any>, semanticId = false) {\n const rowProps: Record<string, any> = {};\n const semanticProps: Record<string, any> = {};\n for (const [key, value] of Object.entries(props)) {\n if (\n (key.startsWith('aria-') && key !== 'aria-hidden') ||\n (semanticId && key === 'id') ||\n [\n 'role',\n 'tabIndex',\n 'onFocus',\n 'onBlur',\n 'data-key',\n 'data-collection',\n ].includes(key)\n )\n semanticProps[key] = value;\n else rowProps[key] = value;\n }\n return { rowProps, semanticProps };\n}\n\nfunction primaryMenuItemProps(\n ariaProps: Record<string, any>,\n consumerProps: Record<string, any>,\n isLink: boolean,\n id: string | undefined,\n type: string | undefined,\n) {\n const props = mergeProps(ariaProps, consumerProps);\n // Destinations cannot change the menu's checked selection.\n if (isLink) {\n props.role = 'menuitem';\n props['aria-checked'] = undefined;\n }\n if (!('aria-labelledby' in consumerProps)) {\n props['aria-labelledby'] =\n consumerProps['aria-label'] != null\n ? undefined\n : id && type !== 'header' && type !== 'card'\n ? id\n : ariaProps['aria-labelledby'];\n }\n props['aria-hidden'] = undefined;\n props['data-menu-native-primary'] = '';\n return props;\n}\n\n/** @private */\nexport function MenuItem<T>(props: MenuItemProps<T>) {\n const submenuContext = useContext(SubmenuTriggerContext);\n return !submenuContext ? (\n <MenuLinkItem {...props} />\n ) : (\n <MenuItemContent {...props} />\n );\n}\n\nfunction MenuLinkItem<T>(props: MenuItemProps<T>) {\n const activatedLink = useRef<HTMLAnchorElement>(null);\n const linkRef = useRef<HTMLAnchorElement>(null);\n const { to, href, navigationOptions } = props.item.props;\n const { cleanTo: parsedTo, nativeRoute } = parseTo(to);\n const isCurrentDocument = props.item.props[CURRENT_DOCUMENT_LINK];\n const cleanTo = to != null ? parsedTo : isCurrentDocument ? '' : href;\n const isExternal = typeof cleanTo === 'string' && isExternalUrl(cleanTo);\n const { navigate, resolvedHref, isDefault } = useNavigation(\n isExternal ? '.' : cleanTo || '.',\n { relative: navigationOptions?.relative },\n );\n const linkHref =\n isCurrentDocument || (nativeRoute && cleanTo === '')\n ? ''\n : isExternal\n ? String(cleanTo)\n : resolvedHref;\n const itemProps = props.item.props;\n const onNativeLinkElement = (element: HTMLAnchorElement | null) => {\n linkRef.current = element;\n };\n const onClick = (event: MouseEvent<FocusableElement>) => {\n const target = event.target as Element;\n activatedLink.current =\n target.closest?.<HTMLAnchorElement>('a[data-menu-native-link]') ??\n linkRef.current;\n itemProps[COLLECTION_ITEM_CLICK]?.(event);\n };\n const openNative = (event: MouseEvent<FocusableElement>) => {\n const anchor = activatedLink.current;\n if (!anchor) return;\n openLink(anchor.cloneNode(false) as HTMLAnchorElement, event, false);\n };\n return (\n <MenuItemContent\n {...props}\n nativeLinkHref={linkHref}\n onNativeLinkElement={onNativeLinkElement}\n onClick={onClick}\n onNavigate={(event) => {\n const anchor = activatedLink.current;\n if (\n !anchor?.hasAttribute('href') ||\n event.defaultPrevented ||\n event.button !== 0\n )\n return;\n if (\n shouldClientNavigate(anchor, event) &&\n !isDefault &&\n !isCurrentDocument &&\n !nativeRoute &&\n !isExternal\n ) {\n event.preventDefault();\n if (cleanTo !== undefined) navigate(cleanTo, navigationOptions);\n } else if (\n !(event.target instanceof Element) ||\n !anchor.contains(event.target)\n ) {\n openNative(event);\n }\n }}\n />\n );\n}\n\nfunction MenuItemContent<T>(\n props: MenuItemProps<T> & {\n nativeLinkHref?: string;\n onNativeLinkElement?: (element: HTMLAnchorElement | null) => void;\n onNavigate?: (event: MouseEvent<FocusableElement>) => void;\n onClick?: (event: MouseEvent<FocusableElement>) => void;\n },\n) {\n const { item, state, styles, isVirtualized, onAction, size, id } = props;\n const { onClose, closeOnSelect } = useMenuContext();\n const { rendered, key, props: itemProps } = item;\n\n // Check if this item is wrapped in a SubmenuTriggerContext\n const submenuContext = useContext(SubmenuTriggerContext);\n\n // Filter out service props (react-stately and parent-handled props)\n // All remaining props are safe to pass to Item component\n const {\n to: _to,\n navigationOptions: _navigationOptions,\n routerOptions: _routerOptions,\n href: _href,\n target: _target,\n rel: _rel,\n download: _download,\n ping: _ping,\n referrerPolicy: _referrerPolicy,\n hrefLang: _hrefLang,\n ...filteredItemProps\n } = filterCollectionItemProps(itemProps);\n\n // Extract specific props that need special handling\n const { hotkeys, mods: itemMods, qa: itemQa } = filteredItemProps;\n\n const isSelectable = state.selectionManager.selectionMode !== 'none';\n const isDisabledKey =\n state.selectionManager.isDisabled(key) ||\n submenuContext?.isDisabled ||\n (filteredItemProps.isLoading && filteredItemProps.isDisabled !== false);\n\n const ref = useRef<HTMLElement>(null);\n const rowRef = useRef<HTMLElement>(null);\n const restoreFocusRef = useRef(false);\n const elementRef = ref;\n const updateSemanticElement = (element: HTMLElement | null) => {\n if (!element)\n restoreFocusRef.current =\n ref.current === ref.current?.ownerDocument.activeElement;\n ref.current = element;\n if (element && restoreFocusRef.current) {\n restoreFocusRef.current = false;\n element.focus({ preventScroll: true });\n }\n };\n\n const {\n menuItemProps,\n labelProps,\n descriptionProps,\n keyboardShortcutProps,\n isFocused,\n isSelected,\n isPressed,\n isDisabled,\n } = useMenuItem(\n {\n id: id ?? itemProps.id,\n isSelected: state.selectionManager.isSelected(key),\n isDisabled: isDisabledKey,\n 'aria-label': item['aria-label'],\n 'aria-haspopup': submenuContext ? 'menu' : undefined,\n 'aria-expanded': submenuContext\n ? submenuContext.isOpen\n ? 'true'\n : 'false'\n : undefined,\n key,\n onClose: submenuContext ? undefined : onClose, // Don't close menu for submenu triggers\n closeOnSelect: submenuContext ? false : closeOnSelect, // Don't close on submenu trigger selection\n isVirtualized,\n onAction,\n onClick: (event) => {\n (props.onClick ?? itemProps[COLLECTION_ITEM_CLICK])?.(event);\n submenuContext?.onAction?.();\n },\n },\n state,\n elementRef,\n );\n\n // Selection indicator will be handled by Item component\n const isVirtualFocused = state.selectionManager.focusedKey === key;\n\n // `mergeProps` chains handlers rather than replacing them, so a handler of\n // the item's own passed to it again runs twice. `onKeyDown` used to be: Enter\n // and Space each click the item, so every keyboard activation fired\n // `onAction` twice. It is taken out here and passed once.\n const {\n onKeyDown: itemOnKeyDown,\n onPointerDown: itemOnPointerDown,\n onPointerUp: itemOnPointerUp,\n href: _renderedHref,\n target: _renderedTarget,\n rel: _renderedRel,\n download: _renderedDownload,\n ping: _renderedPing,\n referrerPolicy: _renderedPolicy,\n hrefLang: _renderedHrefLang,\n ...itemOwnProps\n } = menuItemProps as typeof menuItemProps &\n AnchorHTMLAttributes<HTMLAnchorElement>;\n const isLink = itemProps.href != null && !submenuContext;\n const primaryInCell =\n isLink ||\n (!!filteredItemProps.actions && filteredItemProps.actions !== true);\n const { rowProps: rowItemProps, semanticProps } = splitMenuItemProps(\n itemOwnProps,\n props.id != null,\n );\n const { rowProps: rowConsumerProps, semanticProps: consumerSemanticProps } =\n splitMenuItemProps(filteredItemProps);\n const skippedPointerUp = useRef<globalThis.PointerEvent | null>(null);\n const { addGlobalListener, removeAllGlobalListeners } = useGlobalListeners();\n const onPointerDown = (event: PointerEvent<FocusableElement>) => {\n skippedPointerUp.current = null;\n removeAllGlobalListeners();\n // A modified native gesture must not start Aria's delayed-click fallback.\n if (\n isLink &&\n (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey)\n ) {\n const pointerId = event.pointerId;\n const ownerDocument = event.currentTarget.ownerDocument;\n const recordSkippedUp = (up: globalThis.PointerEvent) => {\n if (up.pointerId !== pointerId) return;\n skippedPointerUp.current = up;\n removeAllGlobalListeners();\n };\n const clearSkippedUp = (cancel: globalThis.PointerEvent) => {\n if (cancel.pointerId !== pointerId) return;\n skippedPointerUp.current = null;\n removeAllGlobalListeners();\n };\n addGlobalListener(ownerDocument, 'pointerup', recordSkippedUp, true);\n addGlobalListener(ownerDocument, 'pointercancel', clearSkippedUp, true);\n return;\n }\n itemOnPointerDown?.(event);\n };\n const onPointerUp = (event: PointerEvent<FocusableElement>) => {\n if (skippedPointerUp.current === event.nativeEvent) {\n skippedPointerUp.current = null;\n return;\n }\n if (\n isLink &&\n (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey)\n )\n return;\n itemOnPointerUp?.(event);\n };\n const onKeyDown = (e: KeyboardEvent<FocusableElement>) => {\n // Inline controls own activation; the menu handles their row navigation.\n if ((e.target as HTMLElement).closest('[data-element=\"Actions\"]')) return;\n if (primaryInCell && (e.key === ' ' || e.key === 'Enter')) {\n if (isDisabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (e.nativeEvent.isComposing || (e.key === ' ' && e.repeat)) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (isLink && (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey)) {\n itemOnKeyDown?.(e);\n e.preventDefault();\n e.stopPropagation();\n e.currentTarget.dispatchEvent(\n new window.MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n detail: 1,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n shiftKey: e.shiftKey,\n }),\n );\n return;\n }\n }\n if (submenuContext?.onKeyDown) {\n // The submenu goes first; a key it handles is not the item's too.\n submenuContext.onKeyDown?.(e);\n if (!e.defaultPrevented) itemOnKeyDown?.(e);\n } else itemOnKeyDown?.(e);\n // Aria records Enter but expects an A to have native link activation.\n if (\n primaryInCell &&\n !isLink &&\n !submenuContext &&\n e.key === 'Enter' &&\n !e.repeat &&\n !e.nativeEvent.isComposing\n ) {\n e.preventDefault();\n e.stopPropagation();\n elementRef.current?.click();\n }\n };\n\n const mods = {\n ...itemMods,\n focused: isFocused || isVirtualFocused,\n pressed: isPressed,\n selected: isSelected,\n disabled: isDisabled,\n submenu: !!submenuContext,\n menuitem: true,\n };\n\n const nativeLinkProps: AnchorHTMLAttributes<HTMLAnchorElement> = {\n href: isLink && !isDisabled ? props.nativeLinkHref : undefined,\n target: itemProps.target,\n rel: itemProps.rel,\n download: itemProps.download,\n ping: itemProps.ping,\n referrerPolicy: itemProps.referrerPolicy,\n hrefLang: itemProps.hrefLang,\n tabIndex: -1,\n 'aria-hidden': isLink || undefined,\n role: 'none',\n onMouseDown: (event) => {\n if (!isDisabled && menuItemProps.tabIndex != null)\n elementRef.current?.focus({ preventScroll: true });\n event.preventDefault();\n },\n };\n\n const content = (\n <FocusRing>\n <ItemWithNativeLinks\n {...mergeProps(\n primaryInCell ? rowItemProps : itemOwnProps,\n primaryInCell ? rowConsumerProps : filteredItemProps,\n {\n 'data-popover-trigger': true,\n qa: itemQa ? itemQa : `MenuItem-${key}`,\n mods,\n styles,\n style: filteredItemProps.style,\n 'data-size': size,\n as: 'li',\n onClick: isDisabled ? undefined : props.onNavigate,\n labelProps,\n descriptionProps,\n keyboardShortcutProps,\n 'data-has-submenu': submenuContext ? true : undefined,\n // Chained after the item's own hover handlers.\n onMouseEnter: submenuContext?.onMouseEnter,\n onMouseLeave: submenuContext?.onMouseLeave,\n },\n )}\n {...{\n onKeyDown: (event: KeyboardEvent<FocusableElement>) => {\n onKeyDown(event);\n filteredItemProps.onKeyDown?.(event);\n },\n onPointerDown: (event: PointerEvent<FocusableElement>) => {\n onPointerDown(event);\n filteredItemProps.onPointerDown?.(event);\n },\n onPointerUp: (event: PointerEvent<FocusableElement>) => {\n onPointerUp(event);\n filteredItemProps.onPointerUp?.(event);\n },\n }}\n role={primaryInCell ? 'none' : itemOwnProps.role}\n ref={submenuContext?.triggerRef ?? rowRef}\n nativeLinkProps={nativeLinkProps}\n onInlineFocus={\n primaryInCell\n ? (e) => {\n state.selectionManager.setFocused(false);\n state.selectionManager.setFocusedKey(key);\n e.stopPropagation();\n }\n : undefined\n }\n nativeMenuItemProps={\n primaryInCell\n ? primaryMenuItemProps(\n semanticProps,\n consumerSemanticProps,\n isLink,\n props.id,\n filteredItemProps.type,\n )\n : undefined\n }\n nativeMenuItemShouldFocus={isFocused && menuItemProps.tabIndex != null}\n nativeMenuItemName={{\n label: consumerSemanticProps['aria-label'],\n labelledBy: consumerSemanticProps['aria-labelledby'],\n }}\n onNativeLinkElement={(element) => {\n if (primaryInCell) updateSemanticElement(element);\n props.onNativeLinkElement?.(element);\n }}\n onNativeElement={(element) => {\n if (!primaryInCell) updateSemanticElement(element);\n }}\n actions={\n primaryInCell &&\n filteredItemProps.actions &&\n filteredItemProps.actions !== true ? (\n <ClearPressResponder>\n {filteredItemProps.actions}\n </ClearPressResponder>\n ) : (\n filteredItemProps.actions\n )\n }\n disableActionsFocus={true}\n rightIcon={submenuContext ? <RightIcon /> : filteredItemProps.rightIcon}\n defaultTooltipPlacement=\"right\"\n isSelected={isSelectable ? isSelected : undefined}\n isDisabled={isDisabled}\n size={size === 'small' ? 'small' : 'medium'}\n >\n {rendered}\n </ItemWithNativeLinks>\n </FocusRing>\n );\n\n return content;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"MenuItem.js","names":["ClearPressResponder","openLink","shouldClientNavigate","useGlobalListeners","FocusableElement","Key","Node","Styles","AnchorHTMLAttributes","KeyboardEvent","MouseEvent","PointerEvent","useContext","useRef","FocusRing","useMenuItem","TreeState","RightIcon","isExternalUrl","normalizeNavigationUrl","useNavigation","mergeProps","COLLECTION_ITEM_CLICK","filterCollectionItemProps","ItemWithNativeLinks","parseTo","useMenuContext","CURRENT_DOCUMENT_LINK","SubmenuTriggerContext","MenuSelectionType","MenuItemProps","item","T","id","state","styles","isVirtualized","isDisabled","onAction","key","size","splitMenuItemProps","props","Record","semanticId","rowProps","semanticProps","value","Object","entries","startsWith","includes","primaryMenuItemProps","ariaProps","consumerProps","isLink","type","role","undefined","MenuItem","$","_c","submenuContext","t0","MenuLinkItem","activatedLink","linkRef","to","href","navigationOptions","cleanTo","parsedTo","nativeRoute","isCurrentDocument","t1","t2","isExternal","t3","relative","t4","navigate","resolvedHref","isDefault","linkHref","String","itemProps","t5","Symbol","for","element","current","onNativeLinkElement","t6","event","target","Element","closest","onClick","t7","event_0","anchor","cloneNode","HTMLAnchorElement","openNative","t8","event_1","anchor_0","hasAttribute","defaultPrevented","button","preventDefault","contains","t9","MenuItemContent","onClose","closeOnSelect","rendered","_to","_navigationOptions","routerOptions","_routerOptions","_href","_target","rel","_rel","download","_download","ping","_ping","referrerPolicy","_referrerPolicy","hrefLang","_hrefLang","filteredItemProps","mods","itemMods","qa","itemQa","isSelectable","selectionManager","selectionMode","isDisabledKey","isLoading","ref","rowRef","restoreFocusRef","elementRef","ownerDocument","activeElement","focus","preventScroll","updateSemanticElement","menuItemProps","labelProps","descriptionProps","keyboardShortcutProps","isFocused","isSelected","isPressed","isOpen","isVirtualFocused","focusedKey","onKeyDown","itemOnKeyDown","onPointerDown","itemOnPointerDown","onPointerUp","itemOnPointerUp","_renderedHref","_renderedTarget","_renderedRel","_renderedDownload","_renderedPing","_renderedPolicy","_renderedHrefLang","itemOwnProps","primaryInCell","actions","rowItemProps","rowConsumerProps","consumerSemanticProps","skippedPointerUp","addGlobalListener","removeAllGlobalListeners","ctrlKey","metaKey","altKey","shiftKey","pointerId","currentTarget","recordSkippedUp","up","clearSkippedUp","cancel","nativeEvent","e","HTMLElement","stopPropagation","isComposing","repeat","dispatchEvent","window","bubbles","cancelable","detail","click","focused","pressed","selected","disabled","submenu","menuitem","nativeLinkHref","event_2","tabIndex","onMouseDown","nativeLinkProps","e_0","setFocused","setFocusedKey","label","labelledBy","t10","element_0","t11","element_1","t12","t13","rightIcon","content","style","as","onNavigate","onMouseEnter","onMouseLeave","event_3","event_4","event_5","triggerRef"],"sources":["../../../../src/components/actions/Menu/MenuItem.tsx"],"sourcesContent":["import { ClearPressResponder } from '@react-aria/interactions';\nimport {\n openLink,\n shouldClientNavigate,\n useGlobalListeners,\n} from '@react-aria/utils';\nimport { FocusableElement, Key, Node } from '@react-types/shared';\nimport { Styles } from '@tenphi/tasty';\nimport {\n AnchorHTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n useContext,\n useRef,\n} from 'react';\nimport { FocusRing, useMenuItem } from 'react-aria';\nimport { TreeState } from 'react-stately';\n\nimport { RightIcon } from '../../../icons/RightIcon';\nimport {\n isExternalUrl,\n normalizeNavigationUrl,\n} from '../../../providers/navigation-url';\nimport { useNavigation } from '../../../providers/use-navigation';\nimport { mergeProps } from '../../../utils/react';\nimport {\n COLLECTION_ITEM_CLICK,\n filterCollectionItemProps,\n} from '../../CollectionItem';\nimport { ItemWithNativeLinks } from '../../content/Item/ItemWithNativeLinks';\nimport { parseTo } from '../use-action';\n\nimport { useMenuContext } from './context';\nimport { CURRENT_DOCUMENT_LINK } from './MenuCollectionItem';\nimport { SubmenuTriggerContext } from './SubmenuTriggerContext';\n\nexport type MenuSelectionType = 'checkbox' | 'radio' | 'checkmark';\n\nexport interface MenuItemProps<T> {\n item: Node<T>;\n /**\n * The item element's id. A menu whose focus stays elsewhere — `CommandMenu`\n * keeps it in its search input — points `aria-activedescendant` at it.\n */\n id?: string;\n state: TreeState<T>;\n styles?: Styles;\n isVirtualized?: boolean;\n isDisabled?: boolean;\n onAction?: (key: Key) => void;\n size?: 'small' | 'medium' | (string & {});\n}\n\n// The primary control owns accessibility; the list row keeps styling and presses.\nfunction splitMenuItemProps(props: Record<string, any>, semanticId = false) {\n const rowProps: Record<string, any> = {};\n const semanticProps: Record<string, any> = {};\n for (const [key, value] of Object.entries(props)) {\n if (\n (key.startsWith('aria-') && key !== 'aria-hidden') ||\n (semanticId && key === 'id') ||\n [\n 'role',\n 'tabIndex',\n 'onFocus',\n 'onBlur',\n 'data-key',\n 'data-collection',\n ].includes(key)\n )\n semanticProps[key] = value;\n else rowProps[key] = value;\n }\n return { rowProps, semanticProps };\n}\n\nfunction primaryMenuItemProps(\n ariaProps: Record<string, any>,\n consumerProps: Record<string, any>,\n isLink: boolean,\n id: string | undefined,\n type: string | undefined,\n) {\n const props = mergeProps(ariaProps, consumerProps);\n // Destinations cannot change the menu's checked selection.\n if (isLink) {\n props.role = 'menuitem';\n props['aria-checked'] = undefined;\n }\n if (!('aria-labelledby' in consumerProps)) {\n props['aria-labelledby'] =\n consumerProps['aria-label'] != null\n ? undefined\n : id && type !== 'header' && type !== 'card'\n ? id\n : ariaProps['aria-labelledby'];\n }\n props['aria-hidden'] = undefined;\n props['data-menu-native-primary'] = '';\n return props;\n}\n\n/** @private */\nexport function MenuItem<T>(props: MenuItemProps<T>) {\n const submenuContext = useContext(SubmenuTriggerContext);\n return !submenuContext ? (\n <MenuLinkItem {...props} />\n ) : (\n <MenuItemContent {...props} />\n );\n}\n\nfunction MenuLinkItem<T>(props: MenuItemProps<T>) {\n const activatedLink = useRef<HTMLAnchorElement>(null);\n const linkRef = useRef<HTMLAnchorElement>(null);\n const { to, href, navigationOptions } = props.item.props;\n const { cleanTo: parsedTo, nativeRoute } = parseTo(to);\n const isCurrentDocument = props.item.props[CURRENT_DOCUMENT_LINK];\n const cleanTo =\n to != null\n ? parsedTo\n : isCurrentDocument\n ? ''\n : typeof href === 'string'\n ? normalizeNavigationUrl(href)\n : href;\n const isExternal = typeof cleanTo === 'string' && isExternalUrl(cleanTo);\n const { navigate, resolvedHref, isDefault } = useNavigation(\n isExternal ? '.' : cleanTo || '.',\n { relative: navigationOptions?.relative },\n );\n const linkHref =\n isCurrentDocument || (nativeRoute && cleanTo === '')\n ? ''\n : isExternal\n ? String(cleanTo)\n : resolvedHref;\n const itemProps = props.item.props;\n const onNativeLinkElement = (element: HTMLAnchorElement | null) => {\n linkRef.current = element;\n };\n const onClick = (event: MouseEvent<FocusableElement>) => {\n const target = event.target as Element;\n activatedLink.current =\n target.closest?.<HTMLAnchorElement>('a[data-menu-native-link]') ??\n linkRef.current;\n itemProps[COLLECTION_ITEM_CLICK]?.(event);\n };\n const openNative = (event: MouseEvent<FocusableElement>) => {\n const anchor = activatedLink.current;\n if (!anchor) return;\n openLink(anchor.cloneNode(false) as HTMLAnchorElement, event, false);\n };\n return (\n <MenuItemContent\n {...props}\n nativeLinkHref={linkHref}\n onNativeLinkElement={onNativeLinkElement}\n onClick={onClick}\n onNavigate={(event) => {\n const anchor = activatedLink.current;\n if (\n !anchor?.hasAttribute('href') ||\n event.defaultPrevented ||\n event.button !== 0\n )\n return;\n if (\n shouldClientNavigate(anchor, event) &&\n !isDefault &&\n !isCurrentDocument &&\n !nativeRoute &&\n !isExternal\n ) {\n event.preventDefault();\n if (cleanTo !== undefined) navigate(cleanTo, navigationOptions);\n } else if (\n !(event.target instanceof Element) ||\n !anchor.contains(event.target)\n ) {\n openNative(event);\n }\n }}\n />\n );\n}\n\nfunction MenuItemContent<T>(\n props: MenuItemProps<T> & {\n nativeLinkHref?: string;\n onNativeLinkElement?: (element: HTMLAnchorElement | null) => void;\n onNavigate?: (event: MouseEvent<FocusableElement>) => void;\n onClick?: (event: MouseEvent<FocusableElement>) => void;\n },\n) {\n const { item, state, styles, isVirtualized, onAction, size, id } = props;\n const { onClose, closeOnSelect } = useMenuContext();\n const { rendered, key, props: itemProps } = item;\n\n // Check if this item is wrapped in a SubmenuTriggerContext\n const submenuContext = useContext(SubmenuTriggerContext);\n\n // Filter out service props (react-stately and parent-handled props)\n // All remaining props are safe to pass to Item component\n const {\n to: _to,\n navigationOptions: _navigationOptions,\n routerOptions: _routerOptions,\n href: _href,\n target: _target,\n rel: _rel,\n download: _download,\n ping: _ping,\n referrerPolicy: _referrerPolicy,\n hrefLang: _hrefLang,\n ...filteredItemProps\n } = filterCollectionItemProps(itemProps);\n\n // Extract specific props that need special handling\n const { hotkeys, mods: itemMods, qa: itemQa } = filteredItemProps;\n\n const isSelectable = state.selectionManager.selectionMode !== 'none';\n const isDisabledKey =\n state.selectionManager.isDisabled(key) ||\n submenuContext?.isDisabled ||\n (filteredItemProps.isLoading && filteredItemProps.isDisabled !== false);\n\n const ref = useRef<HTMLElement>(null);\n const rowRef = useRef<HTMLElement>(null);\n const restoreFocusRef = useRef(false);\n const elementRef = ref;\n const updateSemanticElement = (element: HTMLElement | null) => {\n if (!element)\n restoreFocusRef.current =\n ref.current === ref.current?.ownerDocument.activeElement;\n ref.current = element;\n if (element && restoreFocusRef.current) {\n restoreFocusRef.current = false;\n element.focus({ preventScroll: true });\n }\n };\n\n const {\n menuItemProps,\n labelProps,\n descriptionProps,\n keyboardShortcutProps,\n isFocused,\n isSelected,\n isPressed,\n isDisabled,\n } = useMenuItem(\n {\n id: id ?? itemProps.id,\n isSelected: state.selectionManager.isSelected(key),\n isDisabled: isDisabledKey,\n 'aria-label': item['aria-label'],\n 'aria-haspopup': submenuContext ? 'menu' : undefined,\n 'aria-expanded': submenuContext\n ? submenuContext.isOpen\n ? 'true'\n : 'false'\n : undefined,\n key,\n onClose: submenuContext ? undefined : onClose, // Don't close menu for submenu triggers\n closeOnSelect: submenuContext ? false : closeOnSelect, // Don't close on submenu trigger selection\n isVirtualized,\n onAction,\n onClick: (event) => {\n (props.onClick ?? itemProps[COLLECTION_ITEM_CLICK])?.(event);\n submenuContext?.onAction?.();\n },\n },\n state,\n elementRef,\n );\n\n // Selection indicator will be handled by Item component\n const isVirtualFocused = state.selectionManager.focusedKey === key;\n\n // `mergeProps` chains handlers rather than replacing them, so a handler of\n // the item's own passed to it again runs twice. `onKeyDown` used to be: Enter\n // and Space each click the item, so every keyboard activation fired\n // `onAction` twice. It is taken out here and passed once.\n const {\n onKeyDown: itemOnKeyDown,\n onPointerDown: itemOnPointerDown,\n onPointerUp: itemOnPointerUp,\n href: _renderedHref,\n target: _renderedTarget,\n rel: _renderedRel,\n download: _renderedDownload,\n ping: _renderedPing,\n referrerPolicy: _renderedPolicy,\n hrefLang: _renderedHrefLang,\n ...itemOwnProps\n } = menuItemProps as typeof menuItemProps &\n AnchorHTMLAttributes<HTMLAnchorElement>;\n const isLink = itemProps.href != null && !submenuContext;\n const primaryInCell =\n isLink ||\n (!!filteredItemProps.actions && filteredItemProps.actions !== true);\n const { rowProps: rowItemProps, semanticProps } = splitMenuItemProps(\n itemOwnProps,\n props.id != null,\n );\n const { rowProps: rowConsumerProps, semanticProps: consumerSemanticProps } =\n splitMenuItemProps(filteredItemProps);\n const skippedPointerUp = useRef<globalThis.PointerEvent | null>(null);\n const { addGlobalListener, removeAllGlobalListeners } = useGlobalListeners();\n const onPointerDown = (event: PointerEvent<FocusableElement>) => {\n skippedPointerUp.current = null;\n removeAllGlobalListeners();\n // A modified native gesture must not start Aria's delayed-click fallback.\n if (\n isLink &&\n (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey)\n ) {\n const pointerId = event.pointerId;\n const ownerDocument = event.currentTarget.ownerDocument;\n const recordSkippedUp = (up: globalThis.PointerEvent) => {\n if (up.pointerId !== pointerId) return;\n skippedPointerUp.current = up;\n removeAllGlobalListeners();\n };\n const clearSkippedUp = (cancel: globalThis.PointerEvent) => {\n if (cancel.pointerId !== pointerId) return;\n skippedPointerUp.current = null;\n removeAllGlobalListeners();\n };\n addGlobalListener(ownerDocument, 'pointerup', recordSkippedUp, true);\n addGlobalListener(ownerDocument, 'pointercancel', clearSkippedUp, true);\n return;\n }\n itemOnPointerDown?.(event);\n };\n const onPointerUp = (event: PointerEvent<FocusableElement>) => {\n if (skippedPointerUp.current === event.nativeEvent) {\n skippedPointerUp.current = null;\n return;\n }\n if (\n isLink &&\n (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey)\n )\n return;\n itemOnPointerUp?.(event);\n };\n const onKeyDown = (e: KeyboardEvent<FocusableElement>) => {\n // Inline controls own activation; the menu handles their row navigation.\n if ((e.target as HTMLElement).closest('[data-element=\"Actions\"]')) return;\n if (primaryInCell && (e.key === ' ' || e.key === 'Enter')) {\n if (isDisabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (e.nativeEvent.isComposing || (e.key === ' ' && e.repeat)) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (isLink && (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey)) {\n itemOnKeyDown?.(e);\n e.preventDefault();\n e.stopPropagation();\n e.currentTarget.dispatchEvent(\n new window.MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n detail: 1,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n shiftKey: e.shiftKey,\n }),\n );\n return;\n }\n }\n if (submenuContext?.onKeyDown) {\n // The submenu goes first; a key it handles is not the item's too.\n submenuContext.onKeyDown?.(e);\n if (!e.defaultPrevented) itemOnKeyDown?.(e);\n } else itemOnKeyDown?.(e);\n // Aria records Enter but expects an A to have native link activation.\n if (\n primaryInCell &&\n !isLink &&\n !submenuContext &&\n e.key === 'Enter' &&\n !e.repeat &&\n !e.nativeEvent.isComposing\n ) {\n e.preventDefault();\n e.stopPropagation();\n elementRef.current?.click();\n }\n };\n\n const mods = {\n ...itemMods,\n focused: isFocused || isVirtualFocused,\n pressed: isPressed,\n selected: isSelected,\n disabled: isDisabled,\n submenu: !!submenuContext,\n menuitem: true,\n };\n\n const nativeLinkProps: AnchorHTMLAttributes<HTMLAnchorElement> = {\n href: isLink && !isDisabled ? props.nativeLinkHref : undefined,\n target: itemProps.target,\n rel: itemProps.rel,\n download: itemProps.download,\n ping: itemProps.ping,\n referrerPolicy: itemProps.referrerPolicy,\n hrefLang: itemProps.hrefLang,\n tabIndex: -1,\n 'aria-hidden': isLink || undefined,\n role: 'none',\n onMouseDown: (event) => {\n if (!isDisabled && menuItemProps.tabIndex != null)\n elementRef.current?.focus({ preventScroll: true });\n event.preventDefault();\n },\n };\n\n const content = (\n <FocusRing>\n <ItemWithNativeLinks\n {...mergeProps(\n primaryInCell ? rowItemProps : itemOwnProps,\n primaryInCell ? rowConsumerProps : filteredItemProps,\n {\n 'data-popover-trigger': true,\n qa: itemQa ? itemQa : `MenuItem-${key}`,\n mods,\n styles,\n style: filteredItemProps.style,\n 'data-size': size,\n as: 'li',\n onClick: isDisabled ? undefined : props.onNavigate,\n labelProps,\n descriptionProps,\n keyboardShortcutProps,\n 'data-has-submenu': submenuContext ? true : undefined,\n // Chained after the item's own hover handlers.\n onMouseEnter: submenuContext?.onMouseEnter,\n onMouseLeave: submenuContext?.onMouseLeave,\n },\n )}\n {...{\n onKeyDown: (event: KeyboardEvent<FocusableElement>) => {\n onKeyDown(event);\n filteredItemProps.onKeyDown?.(event);\n },\n onPointerDown: (event: PointerEvent<FocusableElement>) => {\n onPointerDown(event);\n filteredItemProps.onPointerDown?.(event);\n },\n onPointerUp: (event: PointerEvent<FocusableElement>) => {\n onPointerUp(event);\n filteredItemProps.onPointerUp?.(event);\n },\n }}\n role={primaryInCell ? 'none' : itemOwnProps.role}\n ref={submenuContext?.triggerRef ?? rowRef}\n nativeLinkProps={nativeLinkProps}\n onInlineFocus={\n primaryInCell\n ? (e) => {\n state.selectionManager.setFocused(false);\n state.selectionManager.setFocusedKey(key);\n e.stopPropagation();\n }\n : undefined\n }\n nativeMenuItemProps={\n primaryInCell\n ? primaryMenuItemProps(\n semanticProps,\n consumerSemanticProps,\n isLink,\n props.id,\n filteredItemProps.type,\n )\n : undefined\n }\n nativeMenuItemShouldFocus={isFocused && menuItemProps.tabIndex != null}\n nativeMenuItemName={{\n label: consumerSemanticProps['aria-label'],\n labelledBy: consumerSemanticProps['aria-labelledby'],\n }}\n onNativeLinkElement={(element) => {\n if (primaryInCell) updateSemanticElement(element);\n props.onNativeLinkElement?.(element);\n }}\n onNativeElement={(element) => {\n if (!primaryInCell) updateSemanticElement(element);\n }}\n actions={\n primaryInCell &&\n filteredItemProps.actions &&\n filteredItemProps.actions !== true ? (\n <ClearPressResponder>\n {filteredItemProps.actions}\n </ClearPressResponder>\n ) : (\n filteredItemProps.actions\n )\n }\n disableActionsFocus={true}\n rightIcon={submenuContext ? <RightIcon /> : filteredItemProps.rightIcon}\n defaultTooltipPlacement=\"right\"\n isSelected={isSelectable ? isSelected : undefined}\n isDisabled={isDisabled}\n size={size === 'small' ? 'small' : 'medium'}\n >\n {rendered}\n </ItemWithNativeLinks>\n </FocusRing>\n );\n\n return content;\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  import { getMenuItemReactKey } from "./MenuCollectionItem.js";
3
3
  import { MenuItem } from "./MenuItem.js";
4
4
  import { StyledMenu, StyledSection, StyledSectionHeading } from "./styled.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  import { SlotProvider } from "../../../utils/react/Slots.js";
3
3
  import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { MenuContext, useMenuContext } from "./context.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  import React from "react";
3
3
 
4
4
  //#region src/components/actions/Menu/SubmenuTriggerContext.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  import React, { useContext } from "react";
3
3
 
4
4
  //#region src/components/actions/Menu/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  import { DEFAULT_CLEAR_STYLES } from "../../../data/item-themes.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { DEFAULT_BUTTON_STYLES } from "../Button/Button.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  //#region src/components/actions/actions-run.ts
3
3
  /**
4
4
  * Whether `element` — the node react-aria hands an overlay's dismiss predicate
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  import { ItemActionProvider, useItemActionContext } from "./ItemActionContext.js";
3
3
  import { openLink, parseTo, performClickHandler, useAction } from "./use-action.js";
4
4
  import { ItemAction } from "./ItemAction/ItemAction.js";
@@ -1,9 +1,9 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../_internal/hooks/use-event.js";
4
4
  import { useWarn } from "../../_internal/hooks/use-warn.js";
5
5
  import { useFocus as useFocus$1 } from "../../utils/react/interactions.js";
6
- import { isExternalUrl } from "../../providers/navigation-url.js";
6
+ import { isExternalUrl, normalizeNavigationUrl } from "../../providers/navigation-url.js";
7
7
  import { useTracking } from "../../providers/TrackingProvider.js";
8
8
  import { useNavigation } from "../../providers/use-navigation.js";
9
9
  import { c } from "react/compiler-runtime";
@@ -49,7 +49,8 @@ function parseTo(to) {
49
49
  isHashNavigation: false,
50
50
  isExternal: false
51
51
  };
52
- if (!to || typeof to !== "string") return {
52
+ const value = typeof to === "string" ? normalizeNavigationUrl(to) : "";
53
+ if (!value) return {
53
54
  newTab: false,
54
55
  nativeRoute: false,
55
56
  cleanTo: void 0,
@@ -57,17 +58,17 @@ function parseTo(to) {
57
58
  isHashNavigation: false,
58
59
  isExternal: false
59
60
  };
60
- const newTab = to.startsWith("!");
61
- const nativeRoute = to.startsWith("@");
62
- const isHashNavigation = to.startsWith("#");
63
- const cleanTo = newTab || nativeRoute ? to.slice(1) : to;
61
+ const newTab = value.startsWith("!");
62
+ const nativeRoute = value.startsWith("@");
63
+ const isHashNavigation = value.startsWith("#");
64
+ const cleanTo = newTab || nativeRoute ? normalizeNavigationUrl(value.slice(1)) : value;
64
65
  return {
65
66
  newTab,
66
67
  nativeRoute,
67
68
  cleanTo,
68
69
  isHistoryNavigation: false,
69
70
  isHashNavigation,
70
- isExternal: typeof cleanTo === "string" && isExternalUrl(cleanTo)
71
+ isExternal: isExternalUrl(cleanTo)
71
72
  };
72
73
  }
73
74
  function sanitizePressEvent(evt) {
@@ -106,12 +107,12 @@ function performClickHandler(evt, { navigate, resolvedHref, to, onPress, trackin
106
107
  navigate(historyDelta);
107
108
  return;
108
109
  }
109
- if (isHashNavigation && typeof to === "string") {
110
- const id = to.slice(1);
110
+ if (isHashNavigation && typeof cleanTo === "string") {
111
+ const id = cleanTo.slice(1);
111
112
  const targetElement = document.getElementById(id);
112
113
  tracking.event(LINK_PRESS_EVENT, {
113
114
  qa,
114
- href: to,
115
+ href: cleanTo,
115
116
  type: "hash",
116
117
  target: id
117
118
  }, element);
@@ -186,9 +187,9 @@ const useAction = function useAction(t0, ref) {
186
187
  $[1] = to;
187
188
  $[2] = t2;
188
189
  } else t2 = $[2];
189
- const { newTab, nativeRoute, cleanTo, isHistoryNavigation, isExternal } = t2;
190
+ const { newTab, nativeRoute, cleanTo, isExternal } = t2;
190
191
  const { navigate, resolvedHref } = useNavigation(cleanTo || ".");
191
- as = to && !isHistoryNavigation ? "a" : as || "button";
192
+ as = cleanTo !== void 0 ? "a" : as || "button";
192
193
  const target = newTab ? "_blank" : props.target;
193
194
  let href;
194
195
  if ($[3] !== as || $[4] !== cleanTo || $[5] !== isExternal || $[6] !== nativeRoute || $[7] !== newTab || $[8] !== resolvedHref) {
@@ -234,7 +235,7 @@ const useAction = function useAction(t0, ref) {
234
235
  }, domRef);
235
236
  const { hoverProps, isHovered } = useHover({ isDisabled });
236
237
  const { focusProps, isFocused } = useFocus$1(true);
237
- const customProps = to && !isHistoryNavigation ? { onClick(evt_0) {
238
+ const customProps = cleanTo !== void 0 ? { onClick(evt_0) {
238
239
  evt_0.preventDefault();
239
240
  } } : {};
240
241
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"use-action.js","names":["useFocusableRef","FocusableRef","PressEvent","AllBaseProps","filterBaseProps","TagName","AriaButtonProps","useButton","useHover","useEvent","useWarn","isExternalUrl","useTracking","useNavigation","mergeProps","useFocus","NavigateArg","NavigateOptions","Path","To","LINK_PRESS_EVENT","BUTTON_PRESS_EVENT","NavigateLike","RelativeRoutingType","CubeUseActionProps","T","Omit","to","label","htmlType","navigationOptions","FILTER_OPTIONS","propNames","Set","openLink","href","target","link","document","createElement","rel","body","appendChild","click","removeChild","parseTo","newTab","nativeRoute","cleanTo","isHistoryNavigation","historyDelta","isHashNavigation","isExternal","undefined","startsWith","slice","SanitizedPressEvent","type","pointerType","shiftKey","metaKey","ctrlKey","altKey","key","sanitizePressEvent","evt","safeEvt","Object","defineProperty","value","enumerable","configurable","e","performClickHandler","navigate","resolvedHref","onPress","tracking","element","qa","getAttribute","event","delta","id","targetElement","getElementById","scrollIntoView","behavior","block","inline","window","location","reload","assign","useAction","t0","ref","$","_c","as","mods","props","t1","Symbol","for","args","isDisabled","t2","domRef","mergedNavigationOptions","t3","customOnPress","buttonProps","isPressed","hoverProps","isHovered","focusProps","isFocused","customProps","onClick","evt_0","preventDefault","actionProps","hovered","pressed","focused","disabled"],"sources":["../../../src/components/actions/use-action.ts"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport { FocusableRef, PressEvent } from '@react-types/shared';\nimport { AllBaseProps, filterBaseProps, TagName } from '@tenphi/tasty';\nimport { AriaButtonProps, useButton, useHover } from 'react-aria';\n\nimport { useEvent, useWarn } from '../../_internal';\nimport { isExternalUrl } from '../../providers/navigation-url';\nimport { useTracking } from '../../providers/TrackingProvider';\nimport { useNavigation } from '../../providers/use-navigation';\nimport { mergeProps } from '../../utils/react';\nimport { useFocus } from '../../utils/react/interactions';\n\n// Import specific types for internal usage\nimport type {\n NavigateArg,\n NavigateOptions,\n Path,\n To,\n} from '../../providers/navigation.types';\n\nconst LINK_PRESS_EVENT = 'Link Press';\nconst BUTTON_PRESS_EVENT = 'Button Press';\n\n// Re-export types for convenience\nexport type {\n NavigateLike,\n Path,\n To,\n NavigateArg,\n NavigateOptions,\n RelativeRoutingType,\n} from '../../providers/navigation.types';\n\nexport interface CubeUseActionProps<\n T extends TagName = 'a' | 'button' | 'span' | 'div',\n> extends AllBaseProps<T>,\n Omit<AriaButtonProps, keyof AllBaseProps<T> | 'type'> {\n to?: NavigateArg;\n /**\n * @deprecated Use `aria-label` for the accessible name, and `children` for\n * visible text. Not every action honours it: `ItemAction` ignores it.\n */\n label?: string;\n htmlType?: 'button' | 'submit' | 'reset' | undefined;\n navigationOptions?: NavigateOptions;\n}\n\nconst FILTER_OPTIONS = { propNames: new Set(['onMouseEnter', 'onMouseLeave']) };\n\n/**\n * Helper to open link.\n * @param {String} href\n * @param {String|Boolean} [target]\n */\nexport function openLink(href, target?) {\n const link = document.createElement('a');\n\n link.href = href;\n\n if (target) {\n link.target = target === true ? '_blank' : target;\n // Prevent reverse tabnabbing when opening in a new tab\n link.rel = 'noopener noreferrer';\n }\n\n document.body.appendChild(link);\n\n link.click();\n\n document.body.removeChild(link);\n}\n\nexport function parseTo(to: NavigateArg | undefined): {\n newTab: boolean;\n nativeRoute: boolean;\n cleanTo: To | undefined;\n isHistoryNavigation: boolean;\n historyDelta?: number;\n isHashNavigation: boolean;\n isExternal: boolean;\n} {\n // Handle number (history navigation)\n if (typeof to === 'number') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: undefined,\n isHistoryNavigation: true,\n historyDelta: to,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n // Handle object path\n if (to && typeof to === 'object') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: to,\n isHistoryNavigation: false,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n // Handle string\n if (!to || typeof to !== 'string') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: undefined,\n isHistoryNavigation: false,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n const newTab = to.startsWith('!');\n const nativeRoute = to.startsWith('@');\n const isHashNavigation = to.startsWith('#');\n const cleanTo = newTab || nativeRoute ? to.slice(1) : to;\n const isExternal = typeof cleanTo === 'string' && isExternalUrl(cleanTo);\n\n return {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation: false,\n isHashNavigation,\n isExternal,\n };\n}\n\ninterface SanitizedPressEvent {\n type?: string;\n pointerType?: string;\n shiftKey: boolean;\n metaKey: boolean;\n ctrlKey: boolean;\n altKey: boolean;\n // target is defined as a non-enumerable property below\n [key: string]: unknown; // allow non-enumerable 'target'\n}\n\nfunction sanitizePressEvent(evt: PressEvent): SanitizedPressEvent {\n const safeEvt: SanitizedPressEvent = {\n type: 'type' in evt ? evt.type : undefined,\n pointerType:\n 'pointerType' in evt\n ? (evt as { pointerType?: string }).pointerType\n : undefined,\n shiftKey:\n 'shiftKey' in evt ? !!(evt as { shiftKey?: boolean }).shiftKey : false,\n metaKey:\n 'metaKey' in evt ? !!(evt as { metaKey?: boolean }).metaKey : false,\n ctrlKey:\n 'ctrlKey' in evt ? !!(evt as { ctrlKey?: boolean }).ctrlKey : false,\n altKey: 'altKey' in evt ? !!(evt as { altKey?: boolean }).altKey : false,\n };\n try {\n Object.defineProperty(safeEvt, 'target', {\n value: 'target' in evt ? (evt as { target?: unknown }).target : undefined,\n enumerable: false,\n configurable: true,\n });\n } catch (e) {\n // Failed to define target property - continue without it\n }\n return safeEvt;\n}\n\nexport function performClickHandler(\n evt,\n { navigate, resolvedHref, to, onPress, tracking, navigationOptions },\n) {\n const {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation,\n historyDelta,\n isHashNavigation,\n isExternal,\n } = parseTo(to);\n const element = evt.target;\n const qa = element?.getAttribute('data-qa');\n\n onPress?.(sanitizePressEvent(evt));\n\n if (to == null) {\n // Allow 0 as valid navigation (go to current page)\n tracking.event(BUTTON_PRESS_EVENT, { qa }, element);\n return;\n }\n\n // Handle history navigation (back/forward)\n if (isHistoryNavigation && typeof historyDelta === 'number') {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, delta: historyDelta, type: 'router-history' },\n element,\n );\n navigate(historyDelta);\n return;\n }\n\n // Handle hash navigation (smooth scroll)\n if (isHashNavigation && typeof to === 'string') {\n const id = to.slice(1);\n const targetElement = document.getElementById(id);\n\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: to, type: 'hash', target: id },\n element,\n );\n\n if (targetElement) {\n targetElement.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'nearest',\n });\n }\n return;\n }\n\n // Handle new tab (via ! prefix or user modifiers)\n if (evt.shiftKey || evt.metaKey || (evt as any).ctrlKey || newTab) {\n openLink(resolvedHref, true);\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'tab' },\n element,\n );\n return;\n }\n\n // Handle @ prefix (native navigation)\n if (nativeRoute) {\n if (cleanTo === '' || cleanTo === undefined) {\n // @'' or @ -> reload current page\n tracking.event(LINK_PRESS_EVENT, { qa, type: 'native' }, element);\n window.location.reload();\n } else {\n // @path -> navigate to resolved path natively\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'native' },\n element,\n );\n window.location.assign(resolvedHref);\n }\n return;\n }\n\n // Handle external URLs (always native)\n if (isExternal && typeof cleanTo === 'string') {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: cleanTo, type: 'native' },\n element,\n );\n window.location.assign(cleanTo);\n return;\n }\n\n // Handle router navigation\n if (cleanTo !== undefined) {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'router' },\n element,\n );\n navigate(cleanTo, navigationOptions);\n }\n}\n\nexport const useAction = function useAction(\n {\n to,\n as,\n htmlType,\n label,\n mods,\n onPress,\n navigationOptions,\n ...props\n }: CubeUseActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n useWarn(label !== undefined, {\n key: 'action-label-deprecated',\n args: [\n 'The \"label\" property of Button, ItemButton, ItemAction and Action is deprecated. Use \"aria-label\" for the accessible name and \"children\" for visible text.',\n ],\n });\n\n const tracking = useTracking();\n const isDisabled = props.isDisabled;\n\n const {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation,\n isHashNavigation,\n isExternal,\n } = parseTo(to);\n\n // Resolve the path with its `!` / `@` prefix stripped, and only that. Also\n // resolving the raw `to` put `!https://…` through the router as a route,\n // which a HashRouter warned about on every render.\n const { navigate, resolvedHref } = useNavigation(cleanTo || '.');\n\n // Determine element type: 'a' for navigation, 'button' for actions\n as = to && !isHistoryNavigation ? 'a' : as || 'button';\n\n // Compute target (prefixes override explicit target prop per spec)\n const target = newTab ? '_blank' : props.target;\n\n // Compute href for anchor elements\n let href: string | undefined;\n if (as === 'a' && cleanTo !== undefined) {\n if (newTab || nativeRoute) {\n // For ! and @ prefixes, resolve the clean path\n href =\n typeof cleanTo === 'string' && isExternal\n ? cleanTo // External URLs as-is\n : resolvedHref;\n } else {\n // Regular navigation\n href = resolvedHref;\n }\n }\n\n const domRef = useFocusableRef(ref);\n\n // Use navigation options directly\n const mergedNavigationOptions = navigationOptions;\n\n const customOnPress = useEvent((evt: PressEvent) => {\n performClickHandler(evt, {\n navigate,\n resolvedHref: href || resolvedHref,\n to,\n onPress,\n tracking,\n navigationOptions: mergedNavigationOptions,\n });\n });\n\n // Native DOM props keep their HTML event targets and value types. Aria\n // handles the same element and forwards value without changing it.\n let { buttonProps, isPressed } = useButton(\n {\n 'aria-label': label, // deprecated, see `CubeUseActionProps.label`\n ...props,\n onPress: customOnPress,\n type: htmlType ?? 'button',\n } as AriaButtonProps,\n domRef,\n );\n let { hoverProps, isHovered } = useHover({ isDisabled });\n let { focusProps, isFocused } = useFocus(true);\n\n const customProps =\n to && !isHistoryNavigation\n ? {\n onClick(evt) {\n evt.preventDefault();\n },\n }\n : {};\n\n return {\n isPressed,\n actionProps: {\n mods: {\n hovered: isHovered && !isDisabled,\n pressed: isPressed && !isDisabled,\n // A disabled action that keeps focus (`aria-disabled`, see\n // `getDisabledElementProps`) still shows where focus is.\n focused: isFocused,\n disabled: isDisabled,\n ...mods,\n },\n ...(mergeProps(\n buttonProps,\n hoverProps,\n focusProps,\n customProps,\n filterBaseProps(props, FILTER_OPTIONS),\n ) as object),\n ref: domRef,\n type: htmlType || 'button',\n rel: as === 'a' && newTab ? 'noopener noreferrer' : undefined,\n as,\n isDisabled,\n target,\n href,\n },\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-action.js","names":["useFocusableRef","FocusableRef","PressEvent","AllBaseProps","filterBaseProps","TagName","AriaButtonProps","useButton","useHover","useEvent","useWarn","isExternalUrl","normalizeNavigationUrl","useTracking","useNavigation","mergeProps","useFocus","NavigateArg","NavigateOptions","Path","To","LINK_PRESS_EVENT","BUTTON_PRESS_EVENT","NavigateLike","RelativeRoutingType","CubeUseActionProps","T","Omit","to","label","htmlType","navigationOptions","FILTER_OPTIONS","propNames","Set","openLink","href","target","link","document","createElement","rel","body","appendChild","click","removeChild","parseTo","newTab","nativeRoute","cleanTo","isHistoryNavigation","historyDelta","isHashNavigation","isExternal","undefined","value","startsWith","slice","SanitizedPressEvent","type","pointerType","shiftKey","metaKey","ctrlKey","altKey","key","sanitizePressEvent","evt","safeEvt","Object","defineProperty","enumerable","configurable","e","performClickHandler","navigate","resolvedHref","onPress","tracking","element","qa","getAttribute","event","delta","id","targetElement","getElementById","scrollIntoView","behavior","block","inline","window","location","reload","assign","useAction","t0","ref","$","_c","as","mods","props","t1","Symbol","for","args","isDisabled","t2","domRef","mergedNavigationOptions","t3","customOnPress","buttonProps","isPressed","hoverProps","isHovered","focusProps","isFocused","customProps","onClick","evt_0","preventDefault","actionProps","hovered","pressed","focused","disabled"],"sources":["../../../src/components/actions/use-action.ts"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport { FocusableRef, PressEvent } from '@react-types/shared';\nimport { AllBaseProps, filterBaseProps, TagName } from '@tenphi/tasty';\nimport { AriaButtonProps, useButton, useHover } from 'react-aria';\n\nimport { useEvent, useWarn } from '../../_internal';\nimport {\n isExternalUrl,\n normalizeNavigationUrl,\n} from '../../providers/navigation-url';\nimport { useTracking } from '../../providers/TrackingProvider';\nimport { useNavigation } from '../../providers/use-navigation';\nimport { mergeProps } from '../../utils/react';\nimport { useFocus } from '../../utils/react/interactions';\n\n// Import specific types for internal usage\nimport type {\n NavigateArg,\n NavigateOptions,\n Path,\n To,\n} from '../../providers/navigation.types';\n\nconst LINK_PRESS_EVENT = 'Link Press';\nconst BUTTON_PRESS_EVENT = 'Button Press';\n\n// Re-export types for convenience\nexport type {\n NavigateLike,\n Path,\n To,\n NavigateArg,\n NavigateOptions,\n RelativeRoutingType,\n} from '../../providers/navigation.types';\n\nexport interface CubeUseActionProps<\n T extends TagName = 'a' | 'button' | 'span' | 'div',\n> extends AllBaseProps<T>,\n Omit<AriaButtonProps, keyof AllBaseProps<T> | 'type'> {\n to?: NavigateArg;\n /**\n * @deprecated Use `aria-label` for the accessible name, and `children` for\n * visible text. Not every action honours it: `ItemAction` ignores it.\n */\n label?: string;\n htmlType?: 'button' | 'submit' | 'reset' | undefined;\n navigationOptions?: NavigateOptions;\n}\n\nconst FILTER_OPTIONS = { propNames: new Set(['onMouseEnter', 'onMouseLeave']) };\n\n/**\n * Helper to open link.\n * @param {String} href\n * @param {String|Boolean} [target]\n */\nexport function openLink(href, target?) {\n const link = document.createElement('a');\n\n link.href = href;\n\n if (target) {\n link.target = target === true ? '_blank' : target;\n // Prevent reverse tabnabbing when opening in a new tab\n link.rel = 'noopener noreferrer';\n }\n\n document.body.appendChild(link);\n\n link.click();\n\n document.body.removeChild(link);\n}\n\nexport function parseTo(to: NavigateArg | undefined): {\n newTab: boolean;\n nativeRoute: boolean;\n cleanTo: To | undefined;\n isHistoryNavigation: boolean;\n historyDelta?: number;\n isHashNavigation: boolean;\n isExternal: boolean;\n} {\n // Handle number (history navigation)\n if (typeof to === 'number') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: undefined,\n isHistoryNavigation: true,\n historyDelta: to,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n // Handle object path\n if (to && typeof to === 'object') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: to,\n isHistoryNavigation: false,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n // Handle string. Clean it first, as the URL parser does, so ` !https://…`\n // still opens a tab and a blank value counts as no destination.\n const value = typeof to === 'string' ? normalizeNavigationUrl(to) : '';\n\n if (!value) {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: undefined,\n isHistoryNavigation: false,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n const newTab = value.startsWith('!');\n const nativeRoute = value.startsWith('@');\n const isHashNavigation = value.startsWith('#');\n const cleanTo =\n newTab || nativeRoute ? normalizeNavigationUrl(value.slice(1)) : value;\n const isExternal = isExternalUrl(cleanTo);\n\n return {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation: false,\n isHashNavigation,\n isExternal,\n };\n}\n\ninterface SanitizedPressEvent {\n type?: string;\n pointerType?: string;\n shiftKey: boolean;\n metaKey: boolean;\n ctrlKey: boolean;\n altKey: boolean;\n // target is defined as a non-enumerable property below\n [key: string]: unknown; // allow non-enumerable 'target'\n}\n\nfunction sanitizePressEvent(evt: PressEvent): SanitizedPressEvent {\n const safeEvt: SanitizedPressEvent = {\n type: 'type' in evt ? evt.type : undefined,\n pointerType:\n 'pointerType' in evt\n ? (evt as { pointerType?: string }).pointerType\n : undefined,\n shiftKey:\n 'shiftKey' in evt ? !!(evt as { shiftKey?: boolean }).shiftKey : false,\n metaKey:\n 'metaKey' in evt ? !!(evt as { metaKey?: boolean }).metaKey : false,\n ctrlKey:\n 'ctrlKey' in evt ? !!(evt as { ctrlKey?: boolean }).ctrlKey : false,\n altKey: 'altKey' in evt ? !!(evt as { altKey?: boolean }).altKey : false,\n };\n try {\n Object.defineProperty(safeEvt, 'target', {\n value: 'target' in evt ? (evt as { target?: unknown }).target : undefined,\n enumerable: false,\n configurable: true,\n });\n } catch (e) {\n // Failed to define target property - continue without it\n }\n return safeEvt;\n}\n\nexport function performClickHandler(\n evt,\n { navigate, resolvedHref, to, onPress, tracking, navigationOptions },\n) {\n const {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation,\n historyDelta,\n isHashNavigation,\n isExternal,\n } = parseTo(to);\n const element = evt.target;\n const qa = element?.getAttribute('data-qa');\n\n onPress?.(sanitizePressEvent(evt));\n\n if (to == null) {\n // Allow 0 as valid navigation (go to current page)\n tracking.event(BUTTON_PRESS_EVENT, { qa }, element);\n return;\n }\n\n // Handle history navigation (back/forward)\n if (isHistoryNavigation && typeof historyDelta === 'number') {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, delta: historyDelta, type: 'router-history' },\n element,\n );\n navigate(historyDelta);\n return;\n }\n\n // Handle hash navigation (smooth scroll)\n if (isHashNavigation && typeof cleanTo === 'string') {\n const id = cleanTo.slice(1);\n const targetElement = document.getElementById(id);\n\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: cleanTo, type: 'hash', target: id },\n element,\n );\n\n if (targetElement) {\n targetElement.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'nearest',\n });\n }\n return;\n }\n\n // Handle new tab (via ! prefix or user modifiers)\n if (evt.shiftKey || evt.metaKey || (evt as any).ctrlKey || newTab) {\n openLink(resolvedHref, true);\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'tab' },\n element,\n );\n return;\n }\n\n // Handle @ prefix (native navigation)\n if (nativeRoute) {\n if (cleanTo === '' || cleanTo === undefined) {\n // @'' or @ -> reload current page\n tracking.event(LINK_PRESS_EVENT, { qa, type: 'native' }, element);\n window.location.reload();\n } else {\n // @path -> navigate to resolved path natively\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'native' },\n element,\n );\n window.location.assign(resolvedHref);\n }\n return;\n }\n\n // Handle external URLs (always native)\n if (isExternal && typeof cleanTo === 'string') {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: cleanTo, type: 'native' },\n element,\n );\n window.location.assign(cleanTo);\n return;\n }\n\n // Handle router navigation\n if (cleanTo !== undefined) {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'router' },\n element,\n );\n navigate(cleanTo, navigationOptions);\n }\n}\n\nexport const useAction = function useAction(\n {\n to,\n as,\n htmlType,\n label,\n mods,\n onPress,\n navigationOptions,\n ...props\n }: CubeUseActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n useWarn(label !== undefined, {\n key: 'action-label-deprecated',\n args: [\n 'The \"label\" property of Button, ItemButton, ItemAction and Action is deprecated. Use \"aria-label\" for the accessible name and \"children\" for visible text.',\n ],\n });\n\n const tracking = useTracking();\n const isDisabled = props.isDisabled;\n\n const {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation,\n isHashNavigation,\n isExternal,\n } = parseTo(to);\n\n // Resolve the path with its `!` / `@` prefix stripped, and only that. Also\n // resolving the raw `to` put `!https://…` through the router as a route,\n // which a HashRouter warned about on every render.\n const { navigate, resolvedHref } = useNavigation(cleanTo || '.');\n\n // Determine element type: 'a' for navigation, 'button' for actions\n as = cleanTo !== undefined ? 'a' : as || 'button';\n\n // Compute target (prefixes override explicit target prop per spec)\n const target = newTab ? '_blank' : props.target;\n\n // Compute href for anchor elements\n let href: string | undefined;\n if (as === 'a' && cleanTo !== undefined) {\n if (newTab || nativeRoute) {\n // For ! and @ prefixes, resolve the clean path\n href =\n typeof cleanTo === 'string' && isExternal\n ? cleanTo // External URLs as-is\n : resolvedHref;\n } else {\n // Regular navigation\n href = resolvedHref;\n }\n }\n\n const domRef = useFocusableRef(ref);\n\n // Use navigation options directly\n const mergedNavigationOptions = navigationOptions;\n\n const customOnPress = useEvent((evt: PressEvent) => {\n performClickHandler(evt, {\n navigate,\n resolvedHref: href || resolvedHref,\n to,\n onPress,\n tracking,\n navigationOptions: mergedNavigationOptions,\n });\n });\n\n // Native DOM props keep their HTML event targets and value types. Aria\n // handles the same element and forwards value without changing it.\n let { buttonProps, isPressed } = useButton(\n {\n 'aria-label': label, // deprecated, see `CubeUseActionProps.label`\n ...props,\n onPress: customOnPress,\n type: htmlType ?? 'button',\n } as AriaButtonProps,\n domRef,\n );\n let { hoverProps, isHovered } = useHover({ isDisabled });\n let { focusProps, isFocused } = useFocus(true);\n\n const customProps =\n cleanTo !== undefined\n ? {\n onClick(evt) {\n evt.preventDefault();\n },\n }\n : {};\n\n return {\n isPressed,\n actionProps: {\n mods: {\n hovered: isHovered && !isDisabled,\n pressed: isPressed && !isDisabled,\n // A disabled action that keeps focus (`aria-disabled`, see\n // `getDisabledElementProps`) still shows where focus is.\n focused: isFocused,\n disabled: isDisabled,\n ...mods,\n },\n ...(mergeProps(\n buttonProps,\n hoverProps,\n focusProps,\n customProps,\n filterBaseProps(props, FILTER_OPTIONS),\n ) as object),\n ref: domRef,\n type: htmlType || 'button',\n rel: as === 'a' && newTab ? 'noopener noreferrer' : undefined,\n as,\n isDisabled,\n target,\n href,\n },\n };\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3908511 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e3f8a1a | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { usePopoverSync } from "../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";