@cube-dev/ui-kit 0.0.0-canary-c210a8c → 0.0.0-canary-60981ef

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 (462) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  27. package/dist/components/actions/Link/Link.js +1 -1
  28. package/dist/components/actions/Menu/Menu.js +1 -1
  29. package/dist/components/actions/Menu/MenuItem.js +1 -1
  30. package/dist/components/actions/Menu/MenuSection.js +1 -1
  31. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  32. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  34. package/dist/components/actions/Menu/context.js +1 -1
  35. package/dist/components/actions/Menu/styled.js +1 -1
  36. package/dist/components/actions/index.js +1 -1
  37. package/dist/components/actions/use-action.js +1 -1
  38. package/dist/components/actions/use-anchored-menu.js +1 -1
  39. package/dist/components/actions/use-context-menu.js +1 -1
  40. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  41. package/dist/components/content/Alert/Alert.js +1 -1
  42. package/dist/components/content/Alert/use-alert.js +1 -1
  43. package/dist/components/content/Avatar/Avatar.js +1 -1
  44. package/dist/components/content/Badge/Badge.js +1 -1
  45. package/dist/components/content/Card/Card.js +1 -1
  46. package/dist/components/content/Content.js +1 -1
  47. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  48. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  49. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  50. package/dist/components/content/Divider.js +1 -1
  51. package/dist/components/content/Footer.js +1 -1
  52. package/dist/components/content/Header.js +1 -1
  53. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  54. package/dist/components/content/Item/Item.js +1 -1
  55. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  56. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  57. package/dist/components/content/Layout/GridLayout.js +1 -1
  58. package/dist/components/content/Layout/Layout.js +1 -1
  59. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  60. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  61. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  62. package/dist/components/content/Layout/LayoutContent.js +1 -1
  63. package/dist/components/content/Layout/LayoutContext.js +1 -1
  64. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  65. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  66. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  67. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  68. package/dist/components/content/Layout/LayoutPane.js +1 -1
  69. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  70. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  72. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  73. package/dist/components/content/Layout/index.js +1 -1
  74. package/dist/components/content/Layout/utils.js +1 -1
  75. package/dist/components/content/Paragraph.js +1 -1
  76. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  77. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  78. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  79. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  80. package/dist/components/content/Result/Result.js +1 -1
  81. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  82. package/dist/components/content/Tag/Tag.js +1 -1
  83. package/dist/components/content/Text.js +1 -1
  84. package/dist/components/content/TextItem/TextItem.js +1 -1
  85. package/dist/components/content/Title.js +1 -1
  86. package/dist/components/content/highlightText.js +1 -1
  87. package/dist/components/content/use-auto-tooltip.js +1 -1
  88. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  89. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  90. package/dist/components/fields/Checkbox/context.js +1 -1
  91. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  92. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  93. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  94. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  95. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  96. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  97. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  98. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  99. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  100. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  101. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  102. package/dist/components/fields/DatePicker/intl.js +1 -1
  103. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  104. package/dist/components/fields/DatePicker/props.js +1 -1
  105. package/dist/components/fields/DatePicker/utils.js +1 -1
  106. package/dist/components/fields/FileInput/FileInput.js +1 -1
  107. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  108. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  109. package/dist/components/fields/Input/Input.js +1 -1
  110. package/dist/components/fields/ListBox/ListBox.js +1 -1
  111. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  112. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  113. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  114. package/dist/components/fields/Picker/Picker.js +1 -1
  115. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  116. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  117. package/dist/components/fields/RadioGroup/context.js +1 -1
  118. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  119. package/dist/components/fields/Select/Select.js +1 -1
  120. package/dist/components/fields/Slider/Gradation.js +1 -1
  121. package/dist/components/fields/Slider/HueSlider.js +1 -1
  122. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  123. package/dist/components/fields/Slider/Slider.js +1 -1
  124. package/dist/components/fields/Slider/SliderBase.js +1 -1
  125. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  126. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  127. package/dist/components/fields/Slider/elements.js +1 -1
  128. package/dist/components/fields/Slider/index.js +1 -1
  129. package/dist/components/fields/Switch/Switch.js +1 -1
  130. package/dist/components/fields/TextArea/TextArea.js +1 -1
  131. package/dist/components/fields/TextInput/TextInput.js +1 -1
  132. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  133. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  134. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  135. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  136. package/dist/components/form/Form/Field.js +1 -1
  137. package/dist/components/form/Form/Form.js +1 -1
  138. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  139. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  140. package/dist/components/form/Form/SubmitError.js +1 -1
  141. package/dist/components/form/Form/index.js +1 -1
  142. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  143. package/dist/components/form/Form/use-field/use-field.js +1 -1
  144. package/dist/components/form/Form/use-form.js +1 -1
  145. package/dist/components/form/Form/validation.js +1 -1
  146. package/dist/components/form/Label.js +1 -1
  147. package/dist/components/form/wrapper.js +1 -1
  148. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  149. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  150. package/dist/components/layout/Flex.js +1 -1
  151. package/dist/components/layout/Flow.js +1 -1
  152. package/dist/components/layout/Grid.js +1 -1
  153. package/dist/components/layout/Panel.js +1 -1
  154. package/dist/components/layout/Prefix.js +1 -1
  155. package/dist/components/layout/ResizablePanel.js +1 -1
  156. package/dist/components/layout/Space.js +1 -1
  157. package/dist/components/layout/Suffix.js +1 -1
  158. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  159. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  160. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  161. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  162. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  163. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  164. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  165. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  166. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  167. package/dist/components/navigation/Tabs/styled.js +1 -1
  168. package/dist/components/navigation/Tabs/types.js +1 -1
  169. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  170. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  171. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  172. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  173. package/dist/components/other/Calendar/Calendar.js +1 -1
  174. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  175. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  176. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  177. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  178. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  179. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  180. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  181. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  182. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  183. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  184. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  185. package/dist/components/overlays/Dialog/context.js +1 -1
  186. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  187. package/dist/components/overlays/Modal/Modal.js +1 -1
  188. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  189. package/dist/components/overlays/Modal/Overlay.js +1 -1
  190. package/dist/components/overlays/Modal/Popover.js +1 -1
  191. package/dist/components/overlays/Modal/Tray.js +1 -1
  192. package/dist/components/overlays/Modal/Underlay.js +1 -1
  193. package/dist/components/overlays/Notifications/Notification.js +1 -1
  194. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  195. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  196. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  197. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  198. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  199. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  200. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  201. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  202. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  203. package/dist/components/overlays/Notifications/index.js +1 -1
  204. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  205. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  206. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  207. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  208. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  209. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  210. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  211. package/dist/components/overlays/Toast/index.js +1 -1
  212. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  213. package/dist/components/overlays/Toast/useToast.js +1 -1
  214. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  215. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  216. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  217. package/dist/components/overlays/Tooltip/context.js +1 -1
  218. package/dist/components/portal/Portal.js +1 -1
  219. package/dist/components/portal/PortalProvider.js +1 -1
  220. package/dist/components/portal/usePortal.js +1 -1
  221. package/dist/components/shared/InvalidIcon.js +1 -1
  222. package/dist/components/shared/ValidIcon.js +1 -1
  223. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  224. package/dist/components/status/Spin/Cube.js +1 -1
  225. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  226. package/dist/components/status/Spin/Spin.js +1 -1
  227. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  228. package/dist/data/item-themes.js +1 -1
  229. package/dist/data/themes.js +1 -1
  230. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  231. package/dist/icons/AdjustmentsIcon.js +1 -1
  232. package/dist/icons/AiIcon.js +1 -1
  233. package/dist/icons/AreaChartIcon.js +1 -1
  234. package/dist/icons/BackwardIcon.js +1 -1
  235. package/dist/icons/BarChartIcon.js +1 -1
  236. package/dist/icons/BellFilledIcon.js +1 -1
  237. package/dist/icons/BellIcon.js +1 -1
  238. package/dist/icons/BooleanIcon.js +1 -1
  239. package/dist/icons/CalendarEditIcon.js +1 -1
  240. package/dist/icons/CalendarIcon.js +1 -1
  241. package/dist/icons/CaretDownIcon.js +1 -1
  242. package/dist/icons/CaretUpIcon.js +1 -1
  243. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  244. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  245. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  246. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  247. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  248. package/dist/icons/ChartBarLineIcon.js +1 -1
  249. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  250. package/dist/icons/ChartBarStackedIcon.js +1 -1
  251. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  252. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  253. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  254. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  255. package/dist/icons/ChartBubbleIcon.js +1 -1
  256. package/dist/icons/ChartDonut2Icon.js +1 -1
  257. package/dist/icons/ChartFunnelIcon.js +1 -1
  258. package/dist/icons/ChartHeatmapIcon.js +1 -1
  259. package/dist/icons/ChartKPIIcon.js +1 -1
  260. package/dist/icons/ChartPie2Icon.js +1 -1
  261. package/dist/icons/ChartScatterIcon.js +1 -1
  262. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  263. package/dist/icons/CheckCircleIcon.js +1 -1
  264. package/dist/icons/CheckIcon.js +1 -1
  265. package/dist/icons/CircleFilledIcon.js +1 -1
  266. package/dist/icons/ClearIcon.js +1 -1
  267. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  268. package/dist/icons/CloseCircleIcon.js +1 -1
  269. package/dist/icons/CloseIcon.js +1 -1
  270. package/dist/icons/CodeIcon.js +1 -1
  271. package/dist/icons/ColumnTotalIcon.js +1 -1
  272. package/dist/icons/CopyIcon.js +1 -1
  273. package/dist/icons/CountIcon.js +1 -1
  274. package/dist/icons/CubeIcon.js +1 -1
  275. package/dist/icons/CubePauseIcon.js +1 -1
  276. package/dist/icons/CubePlayIcon.js +1 -1
  277. package/dist/icons/CurrencyDollarIcon.js +1 -1
  278. package/dist/icons/DangerIcon.js +1 -1
  279. package/dist/icons/DashboardIcon.js +1 -1
  280. package/dist/icons/DatabaseIcon.js +1 -1
  281. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  282. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  283. package/dist/icons/DirectionIcon.js +1 -1
  284. package/dist/icons/DonutIcon.js +1 -1
  285. package/dist/icons/DownIcon.js +1 -1
  286. package/dist/icons/EditIcon.js +1 -1
  287. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  288. package/dist/icons/ExclamationCircleIcon.js +1 -1
  289. package/dist/icons/ExclamationIcon.js +1 -1
  290. package/dist/icons/EyeIcon.js +1 -1
  291. package/dist/icons/EyeInvisibleIcon.js +1 -1
  292. package/dist/icons/FilterIcon.js +1 -1
  293. package/dist/icons/FolderFilledIcon.js +1 -1
  294. package/dist/icons/FolderIcon.js +1 -1
  295. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  296. package/dist/icons/FolderOpenIcon.js +1 -1
  297. package/dist/icons/ForwardIcon.js +1 -1
  298. package/dist/icons/HierarchyIcon.js +1 -1
  299. package/dist/icons/HierarchyOpenIcon.js +1 -1
  300. package/dist/icons/Icon.js +1 -1
  301. package/dist/icons/InfoCircleIcon.js +1 -1
  302. package/dist/icons/InfoIcon.js +1 -1
  303. package/dist/icons/KeyIcon.js +1 -1
  304. package/dist/icons/LeftIcon.js +1 -1
  305. package/dist/icons/LineChartIcon.js +1 -1
  306. package/dist/icons/LoadingIcon.js +1 -1
  307. package/dist/icons/LockFilledIcon.js +1 -1
  308. package/dist/icons/LockIcon.js +1 -1
  309. package/dist/icons/MoreIcon.js +1 -1
  310. package/dist/icons/NotAllowedIcon.js +1 -1
  311. package/dist/icons/Number123Icon.js +1 -1
  312. package/dist/icons/NumberIcon.js +1 -1
  313. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  314. package/dist/icons/PauseCircleIcon.js +1 -1
  315. package/dist/icons/PauseIcon.js +1 -1
  316. package/dist/icons/PercentageIcon.js +1 -1
  317. package/dist/icons/PieChartIcon.js +1 -1
  318. package/dist/icons/PlayCircleIcon.js +1 -1
  319. package/dist/icons/PlayIcon.js +1 -1
  320. package/dist/icons/PlusIcon.js +1 -1
  321. package/dist/icons/ProgressBarIcon.js +1 -1
  322. package/dist/icons/ReloadIcon.js +1 -1
  323. package/dist/icons/ReportIcon.js +1 -1
  324. package/dist/icons/ReturnIcon.js +1 -1
  325. package/dist/icons/RightIcon.js +1 -1
  326. package/dist/icons/RowTotalsIcon.js +1 -1
  327. package/dist/icons/SchemeIcon.js +1 -1
  328. package/dist/icons/SearchIcon.js +1 -1
  329. package/dist/icons/SemanticQueryIcon.js +1 -1
  330. package/dist/icons/SettingsIcon.js +1 -1
  331. package/dist/icons/ShieldFilledIcon.js +1 -1
  332. package/dist/icons/ShieldIcon.js +1 -1
  333. package/dist/icons/SlashIcon.js +1 -1
  334. package/dist/icons/SparklesIcon.js +1 -1
  335. package/dist/icons/SqlIcon.js +1 -1
  336. package/dist/icons/StatsIcon.js +1 -1
  337. package/dist/icons/StopIcon.js +1 -1
  338. package/dist/icons/StringIcon.js +1 -1
  339. package/dist/icons/SubtotalsIcon.js +1 -1
  340. package/dist/icons/SwitchIcon.js +1 -1
  341. package/dist/icons/TableIcon.js +1 -1
  342. package/dist/icons/ThumbsDownIcon.js +1 -1
  343. package/dist/icons/ThumbsUpIcon.js +1 -1
  344. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  345. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  346. package/dist/icons/ThunderboltIcon.js +1 -1
  347. package/dist/icons/TimeIcon.js +1 -1
  348. package/dist/icons/TrashIcon.js +1 -1
  349. package/dist/icons/UnlockIcon.js +1 -1
  350. package/dist/icons/UpIcon.js +1 -1
  351. package/dist/icons/UserGroupIcon.js +1 -1
  352. package/dist/icons/UserIcon.js +1 -1
  353. package/dist/icons/UserLockIcon.js +1 -1
  354. package/dist/icons/ViewIcon.js +1 -1
  355. package/dist/icons/WarningFilledIcon.js +1 -1
  356. package/dist/icons/WarningIcon.js +1 -1
  357. package/dist/icons/wrap-icon.js +1 -1
  358. package/dist/index.js +1 -1
  359. package/dist/provider.js +1 -1
  360. package/dist/providers/TrackingProvider.js +1 -1
  361. package/dist/providers/navigationAdapter.default.js +1 -1
  362. package/dist/tokens/base.js +1 -1
  363. package/dist/tokens/colors.js +1 -1
  364. package/dist/tokens/index.js +1 -1
  365. package/dist/tokens/layout.js +1 -1
  366. package/dist/tokens/shadows.js +1 -1
  367. package/dist/tokens/sizes.js +1 -1
  368. package/dist/tokens/spacing.js +1 -1
  369. package/dist/utils/ResizeSensor.js +1 -1
  370. package/dist/utils/is-dev-env.js +1 -1
  371. package/dist/utils/modules.js +1 -1
  372. package/dist/utils/promise.js +1 -1
  373. package/dist/utils/raf.js +1 -1
  374. package/dist/utils/random.js +1 -1
  375. package/dist/utils/range.js +1 -1
  376. package/dist/utils/react/RenderCache.js +1 -1
  377. package/dist/utils/react/Slots.js +1 -1
  378. package/dist/utils/react/chain.js +1 -1
  379. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  380. package/dist/utils/react/index.js +1 -1
  381. package/dist/utils/react/interactions.js +1 -1
  382. package/dist/utils/react/isTextOnly.js +1 -1
  383. package/dist/utils/react/mapProps.js +1 -1
  384. package/dist/utils/react/mergeProps.js +1 -1
  385. package/dist/utils/react/nullableValue.js +1 -1
  386. package/dist/utils/react/resolveIcon.js +1 -1
  387. package/dist/utils/react/sharedStore.js +1 -1
  388. package/dist/utils/react/useCombinedRefs.js +1 -1
  389. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  390. package/dist/utils/react/useEventBus.js +1 -1
  391. package/dist/utils/react/useId.js +1 -1
  392. package/dist/utils/react/useIsDarwin.js +1 -1
  393. package/dist/utils/react/useKeySymbols.js +1 -1
  394. package/dist/utils/react/useLayoutEffect.js +1 -1
  395. package/dist/utils/react/useLocalStorage.js +1 -1
  396. package/dist/utils/react/useMergeStyles.js +1 -1
  397. package/dist/utils/react/useQaProps.js +1 -1
  398. package/dist/utils/react/useViewportSize.js +1 -1
  399. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  400. package/dist/utils/tree.js +1 -1
  401. package/dist/utils/warnings.js +1 -1
  402. package/dist/version.js +2 -2
  403. package/docs/ComplexLayout.md +469 -0
  404. package/docs/CreateComponent.md +410 -0
  405. package/docs/Introduction.md +122 -0
  406. package/docs/RenderCache.md +172 -0
  407. package/docs/Result.md +35 -0
  408. package/docs/SimpleLayout.md +26 -0
  409. package/docs/Typography.md +38 -0
  410. package/docs/components/CollectionItem.md +299 -0
  411. package/docs/components/actions/Banner.md +189 -0
  412. package/docs/components/actions/Button.md +183 -0
  413. package/docs/components/actions/ButtonSplit.md +189 -0
  414. package/docs/components/actions/CommandMenu.md +430 -0
  415. package/docs/components/actions/ItemButton.md +304 -0
  416. package/docs/components/actions/Link.md +325 -0
  417. package/docs/components/actions/Menu.md +509 -0
  418. package/docs/components/actions/use-anchored-menu.md +211 -0
  419. package/docs/components/actions/use-context-menu.md +220 -0
  420. package/docs/components/content/Badge.md +187 -0
  421. package/docs/components/content/Disclosure.md +177 -0
  422. package/docs/components/content/HotKeys.md +352 -0
  423. package/docs/components/content/Item.md +488 -0
  424. package/docs/components/content/ItemCard.md +125 -0
  425. package/docs/components/content/Layout.md +866 -0
  426. package/docs/components/content/Tag.md +156 -0
  427. package/docs/components/content/TextItem.md +211 -0
  428. package/docs/components/fields/Checkbox.md +180 -0
  429. package/docs/components/fields/ComboBox.md +617 -0
  430. package/docs/components/fields/DatePicker.md +231 -0
  431. package/docs/components/fields/FileInput.md +197 -0
  432. package/docs/components/fields/FilterListBox.md +703 -0
  433. package/docs/components/fields/FilterPicker.md +736 -0
  434. package/docs/components/fields/HueSlider.md +175 -0
  435. package/docs/components/fields/ListBox.md +691 -0
  436. package/docs/components/fields/NumberInput.md +184 -0
  437. package/docs/components/fields/PasswordInput.md +218 -0
  438. package/docs/components/fields/Picker.md +884 -0
  439. package/docs/components/fields/RadioGroup.md +314 -0
  440. package/docs/components/fields/SearchInput.md +227 -0
  441. package/docs/components/fields/Select.md +583 -0
  442. package/docs/components/fields/Slider.md +53 -0
  443. package/docs/components/fields/Switch.md +174 -0
  444. package/docs/components/fields/TextArea.md +61 -0
  445. package/docs/components/fields/TextInput.md +204 -0
  446. package/docs/components/fields/TextInputMapper.md +34 -0
  447. package/docs/components/form/Field.md +341 -0
  448. package/docs/components/form/Form.md +455 -0
  449. package/docs/components/form/FormInstance.md +319 -0
  450. package/docs/components/helpers/DisplayTransition.md +259 -0
  451. package/docs/components/helpers/IconSwitch.md +156 -0
  452. package/docs/components/navigation/Tabs.md +704 -0
  453. package/docs/components/overlays/Dialog.md +202 -0
  454. package/docs/components/overlays/DialogContainer.md +201 -0
  455. package/docs/components/overlays/DialogForm.md +290 -0
  456. package/docs/components/overlays/DialogTrigger.md +191 -0
  457. package/docs/components/overlays/Notifications.md +406 -0
  458. package/docs/components/overlays/Toast.md +285 -0
  459. package/docs/components/overlays/Tooltip.md +371 -0
  460. package/docs/components/overlays/UseDialogContainer.md +603 -0
  461. package/package.json +1 -1
  462. package/docs/.gitignore +0 -3
@@ -0,0 +1,509 @@
1
+ # Menu
2
+
3
+ A versatile dropdown menu component that displays a list of actions or options. Built with React Aria for accessibility and supports single/multiple selection, sections, keyboard navigation, and custom styling.
4
+
5
+ ## When to Use
6
+
7
+ - Display a list of actions that can be performed (like Cut, Copy, Paste)
8
+ - Create context menus for right-click interactions
9
+ - Build dropdown menus for navigation or settings
10
+ - Implement selection lists with single or multiple selection modes
11
+ - Group related options using sections with dividers
12
+
13
+ ## Component
14
+
15
+ ---
16
+
17
+ ### Properties
18
+
19
+ - **`children`** `ReactNode` — Menu items and sections as static children
20
+ - **`items`** `Iterable<T>` — Item objects for dynamic collections
21
+ - **`header`** `ReactNode` — Optional header content (deprecated)
22
+ - **`footer`** `ReactNode` — Optional footer content
23
+ - **`selectionMode`** `'none' | 'single' | 'multiple'` (default: `none`) — Type of selection allowed in the menu
24
+ - **`selectedKeys`** `Iterable<Key>` — Currently selected keys (controlled)
25
+ - **`defaultSelectedKeys`** `Iterable<Key>` — Initially selected keys (uncontrolled)
26
+ - **`disabledKeys`** `Iterable<Key>` — Keys of items that should appear disabled
27
+ - **`autoFocus`** `boolean | FocusStrategy` (default: `false`) — Whether to auto-focus the menu when it opens
28
+ - **`shouldFocusWrap`** `boolean` (default: `false`) — Whether keyboard navigation should wrap around
29
+ - **`size`** `'medium' | 'large'` (default: `medium`) — Size of the menu items
30
+ - **`styles`** `Styles` — Custom styles for the menu container
31
+ - **`itemStyles`** `Styles` — Custom styles for menu items
32
+ - **`sectionStyles`** `Styles` — Custom styles for section containers
33
+ - **`sectionHeadingStyles`** `Styles` — Custom styles for section headings
34
+ - **`onAction`** `(key: Key) => void` — Handler called when an item is activated
35
+ - **`onSelectionChange`** `(keys: Selection) => void` — Handler called when selection changes
36
+ - **`onClose`** `() => void` — Handler called when menu should close
37
+ - **`id`** `string` — Unique identifier for the menu
38
+ - **`aria-label`** `string` — Accessibility label for the menu
39
+ - **`aria-labelledby`** `string` — ID of element that labels the menu
40
+ - **`width`** `string | number` — Width of the menu
41
+ - **`height`** `string | number` — Height of the menu
42
+ - **`qa`** `string` — Test identifier for the menu
43
+
44
+ ### Base Properties
45
+
46
+ Supports [Base properties](/BaseProperties)
47
+
48
+ ### Styling Properties
49
+
50
+ #### styles
51
+
52
+ Customizes the root menu container element.
53
+
54
+ **Sub-elements:**
55
+ - `Header` - Optional header element at the top of the menu
56
+ - `Divider` - Separator elements between sections
57
+
58
+ #### itemStyles
59
+
60
+ Customizes individual menu items.
61
+
62
+ **Sub-elements:**
63
+ - `Icon` - Icon element within menu items
64
+ - `Text` - Main text content of menu items
65
+ - `Description` - Secondary text content for items with descriptions
66
+ - `Postfix` - Right-aligned content (shortcuts, badges, etc.)
67
+
68
+ #### sectionStyles
69
+
70
+ Customizes section container elements.
71
+
72
+ **Sub-elements:**
73
+ - `SectionHeading` - Section title/heading element
74
+
75
+ #### sectionHeadingStyles
76
+
77
+ Customizes section heading text styling.
78
+
79
+ ### Style Properties
80
+
81
+ These properties allow direct style application without using the `styles` prop: `width`, `height`, `padding`, `margin`.
82
+
83
+ ### Modifiers
84
+
85
+ The `mods` property accepts the following modifiers you can override:
86
+
87
+ | Modifier | Type | Description |
88
+ |----------|------|-------------|
89
+ | sections | `boolean` | Applied when menu contains sections |
90
+ | footer | `boolean` | Applied when footer prop is provided |
91
+ | header | `boolean` | Applied when header prop is provided |
92
+ | popover | `boolean` | Applied when menu is displayed as popover |
93
+
94
+ ## Menu Properties
95
+
96
+ ### Collection Properties
97
+
98
+ | Property | Type | Default | Description |
99
+ |----------|------|---------|-------------|
100
+ | items | `Iterable<T>` | - | Item objects for dynamic collections |
101
+ | children | `ReactNode` | - | Static menu items and sections |
102
+
103
+ ### Selection Properties
104
+
105
+ | Property | Type | Default | Description |
106
+ |----------|------|---------|-------------|
107
+ | selectionMode | `'single' \| 'multiple'` | `'none'` | Type of selection allowed |
108
+ | selectedKeys | `string[]` | - | Currently selected keys (controlled) |
109
+ | defaultSelectedKeys | `string[]` | - | Initially selected keys (uncontrolled) |
110
+ | onSelectionChange | `(keys: string[]) => void` | - | Handler for selection changes |
111
+ | selectionIcon | `'checkbox' \| 'radio'` | - | Type of selection indicator |
112
+
113
+ ### State Properties
114
+
115
+ | Property | Type | Default | Description |
116
+ |----------|------|---------|-------------|
117
+ | disabledKeys | `Iterable<Key>` | - | Keys of disabled items |
118
+ | autoFocus | `boolean \| FocusStrategy` | - | Focus behavior when menu opens |
119
+ | shouldFocusWrap | `boolean` | - | Whether keyboard navigation wraps |
120
+
121
+ ### Event Properties
122
+
123
+ | Property | Type | Default | Description |
124
+ |----------|------|---------|-------------|
125
+ | onAction | `(key: Key) => void` | - | Handler for item activation |
126
+ | onClose | `() => void` | - | Handler for menu close requests |
127
+
128
+ ### Content Properties
129
+
130
+ | Property | Type | Default | Description |
131
+ |----------|------|---------|-------------|
132
+ | header | `ReactNode` | - | Optional header content (deprecated) |
133
+ | footer | `ReactNode` | - | Optional footer content |
134
+
135
+ ## Sub-components
136
+
137
+ ### Menu.Item
138
+
139
+ Individual menu items. Each item is rendered using [Item](../content/Item.md) and supports all Item properties for layout, icons, descriptions, and interactive features.
140
+
141
+ #### Item API
142
+
143
+ For detailed information about all available item properties, see [Item documentation](../content/Item.md). Key properties include:
144
+
145
+ | Property | Type | Description |
146
+ |----------|------|-------------|
147
+ | key | `Key` | Unique identifier for the item (required) |
148
+ | children | `ReactNode` | The main content/label for the menu item |
149
+ | icon | `ReactNode` | Icon displayed before the content |
150
+ | rightIcon | `ReactNode` | Icon displayed after the content |
151
+ | description | `ReactNode` | Secondary text below the main content |
152
+ | descriptionPlacement | `'inline' \| 'block'` | How the description is positioned |
153
+ | prefix | `ReactNode` | Content before the main text |
154
+ | suffix | `ReactNode` | Content after the main text |
155
+ | hotkeys | `string` | Keyboard shortcut that triggers this item |
156
+ | tooltip | `string \| boolean \| object` | Tooltip configuration |
157
+ | isDisabled | `boolean` | Whether the item is disabled |
158
+ | styles | `Styles` | Custom styling for the item |
159
+ | qa | `string` | QA identifier for testing |
160
+
161
+ #### Menu-specific Properties
162
+
163
+ | Property | Type | Default | Description |
164
+ |----------|------|---------|-------------|
165
+ | textValue | `string` | - | Text for typeahead search |
166
+ | wrapper | `(item: ReactElement) => ReactElement` | - | Function to wrap the item |
167
+ | onAction | `() => void` | - | Callback fired when item is activated |
168
+
169
+ #### Example with Rich Items
170
+
171
+ ```jsx
172
+ <Menu>
173
+ <Menu.Item
174
+ key="save"
175
+ icon={<IconSave />}
176
+ hotkeys="cmd+s"
177
+ description="Save the current document"
178
+ >
179
+ Save
180
+ </Menu.Item>
181
+ <Menu.Item
182
+ key="export"
183
+ icon={<IconExport />}
184
+ suffix="PDF"
185
+ tooltip="Export as PDF file"
186
+ >
187
+ Export
188
+ </Menu.Item>
189
+ </Menu>
190
+ ```
191
+
192
+ ## Menu.Section Properties
193
+
194
+ | Property | Type | Default | Description |
195
+ |----------|------|---------|-------------|
196
+ | key | `Key` | - | Unique identifier for the section |
197
+ | title | `ReactNode` | - | Section heading text |
198
+ | children | `ReactNode` | - | Menu items within the section |
199
+ | items | `Iterable<T>` | - | Dynamic items for the section |
200
+
201
+ ### Menu.Section Styling Properties
202
+
203
+ | Property | Type | Default | Description |
204
+ |----------|------|---------|-------------|
205
+ | aria-label | `string` | - | Accessibility label for sections without titles |
206
+
207
+ ## Menu.SubMenuTrigger Properties
208
+
209
+ | Property | Type | Default | Description |
210
+ |----------|------|---------|-------------|
211
+ | children | `[ReactNode, ReactElement]` | - | Must be exactly two elements: trigger (Menu.Item) and submenu (Menu) |
212
+ | disabled | `boolean` | `false` | Whether the submenu trigger is disabled |
213
+ | onAction | `(key: Key) => void` | - | Callback that bubbles onAction events from the submenu |
214
+ | autoFocus | `boolean \| 'first' \| 'last'` | `'first'` | Whether and how the submenu should receive focus on open |
215
+
216
+ ### Menu.SubMenuTrigger Positioning Properties
217
+
218
+ | Property | Type | Default | Description |
219
+ |----------|------|---------|-------------|
220
+ | placement | `Placement` | `'right start'` | Placement of the submenu relative to trigger |
221
+ | offset | `number` | `0` | Distance between trigger and submenu |
222
+ | crossOffset | `number` | `0` | Cross-axis offset for submenu positioning |
223
+ | shouldFlip | `boolean` | `true` | Whether submenu should flip when it doesn't fit |
224
+ | containerPadding | `number` | `8` | Padding from viewport edges |
225
+
226
+ ## Selection Modes
227
+
228
+ ### None (Default)
229
+ Items are not selectable and only trigger `onAction` when activated.
230
+
231
+ ```jsx
232
+ <Menu onAction={(key) => console.log('Action:', key)}>
233
+ <Menu.Item key="copy">Copy</Menu.Item>
234
+ <Menu.Item key="paste">Paste</Menu.Item>
235
+ </Menu>
236
+ ```
237
+
238
+ ### Single Selection
239
+ Only one item can be selected at a time.
240
+
241
+ ```jsx
242
+ <Menu selectionMode="single" selectedKeys={['option1']}>
243
+ <Menu.Item key="option1">Option 1</Menu.Item>
244
+ <Menu.Item key="option2">Option 2</Menu.Item>
245
+ </Menu>
246
+ ```
247
+
248
+ ### Multiple Selection
249
+ Multiple items can be selected simultaneously.
250
+
251
+ ```jsx
252
+ <Menu selectionMode="multiple" selectedKeys={['option1', 'option3']}>
253
+ <Menu.Item key="option1">Option 1</Menu.Item>
254
+ <Menu.Item key="option2">Option 2</Menu.Item>
255
+ <Menu.Item key="option3">Option 3</Menu.Item>
256
+ </Menu>
257
+ ```
258
+
259
+ ## Examples
260
+
261
+ ### Basic Menu
262
+
263
+ ```jsx
264
+ <Menu onAction={(key) => console.log(key)}>
265
+ <Menu.Item key="new">New File</Menu.Item>
266
+ <Menu.Item key="open">Open File</Menu.Item>
267
+ <Menu.Item key="save">Save</Menu.Item>
268
+ </Menu>
269
+ ```
270
+
271
+ ### Menu with Sections
272
+
273
+ ```jsx
274
+ <Menu>
275
+ <Menu.Section title="File Operations">
276
+ <Menu.Item key="new">New</Menu.Item>
277
+ <Menu.Item key="open">Open</Menu.Item>
278
+ </Menu.Section>
279
+ <Menu.Section title="Edit Operations">
280
+ <Menu.Item key="copy">Copy</Menu.Item>
281
+ <Menu.Item key="paste">Paste</Menu.Item>
282
+ </Menu.Section>
283
+ </Menu>
284
+ ```
285
+
286
+ ### Menu with Icons and Shortcuts
287
+
288
+ ```jsx
289
+ <Menu>
290
+ <Menu.Item key="copy" icon={<CopyIcon />} hotkeys="Ctrl+C">
291
+ Copy
292
+ </Menu.Item>
293
+ <Menu.Item key="paste" icon={<PasteIcon />} hotkeys="Ctrl+V">
294
+ Paste
295
+ </Menu.Item>
296
+ </Menu>
297
+ ```
298
+
299
+ ### Dynamic Menu
300
+
301
+ ```jsx
302
+ const items = [
303
+ { id: 'copy', label: 'Copy', shortcut: 'Ctrl+C' },
304
+ { id: 'paste', label: 'Paste', shortcut: 'Ctrl+V' }
305
+ ];
306
+
307
+ <Menu items={items}>
308
+ {(item) => (
309
+ <Menu.Item key={item.id} hotkeys={item.shortcut}>
310
+ {item.label}
311
+ </Menu.Item>
312
+ )}
313
+ </Menu>
314
+ ```
315
+
316
+ ### Selection with Custom Icons
317
+
318
+ ```jsx
319
+ <Menu selectionMode="multiple" selectionIcon="checkbox">
320
+ <Menu.Item key="bold">Bold</Menu.Item>
321
+ <Menu.Item key="italic">Italic</Menu.Item>
322
+ <Menu.Item key="underline">Underline</Menu.Item>
323
+ </Menu>
324
+ ```
325
+
326
+ ### Menu Items with Tooltips
327
+
328
+ ```jsx
329
+ <Menu>
330
+ <Menu.Item key="copy" tooltip="Copy selected text">
331
+ Copy
332
+ </Menu.Item>
333
+ <Menu.Item
334
+ key="paste"
335
+ tooltip={{ title: "Paste from clipboard", placement: "left" }}
336
+ >
337
+ Paste
338
+ </Menu.Item>
339
+ </Menu>
340
+ ```
341
+
342
+ ### Basic Submenu
343
+
344
+ ```jsx
345
+ <Menu onAction={(key) => console.log(key)}>
346
+ <Menu.Item key="copy">Copy</Menu.Item>
347
+ <Menu.Item key="paste">Paste</Menu.Item>
348
+
349
+ <Menu.SubMenuTrigger>
350
+ <Menu.Item key="share">Share</Menu.Item>
351
+ <Menu onAction={(key) => console.log(key)}>
352
+ <Menu.Item key="share-link">Copy link</Menu.Item>
353
+ <Menu.Item key="share-email">Email</Menu.Item>
354
+ <Menu.Item key="share-sms">SMS</Menu.Item>
355
+ </Menu>
356
+ </Menu.SubMenuTrigger>
357
+
358
+ <Menu.Item key="delete">Delete</Menu.Item>
359
+ </Menu>
360
+ ```
361
+
362
+ ### Nested Submenus
363
+
364
+ ```jsx
365
+ <Menu onAction={(key) => console.log(key)}>
366
+ <Menu.Item key="new">New File</Menu.Item>
367
+
368
+ <Menu.SubMenuTrigger>
369
+ <Menu.Item key="export">Export</Menu.Item>
370
+ <Menu onAction={(key) => console.log(key)}>
371
+ <Menu.Item key="export-pdf">Export as PDF</Menu.Item>
372
+ <Menu.Item key="export-image">Export as Image</Menu.Item>
373
+
374
+ <Menu.SubMenuTrigger>
375
+ <Menu.Item key="export-formats">More formats</Menu.Item>
376
+ <Menu onAction={(key) => console.log(key)}>
377
+ <Menu.Item key="export-docx">DOCX Document</Menu.Item>
378
+ <Menu.Item key="export-xlsx">Excel Spreadsheet</Menu.Item>
379
+ <Menu.Item key="export-pptx">PowerPoint</Menu.Item>
380
+ </Menu>
381
+ </Menu.SubMenuTrigger>
382
+ </Menu>
383
+ </Menu.SubMenuTrigger>
384
+ </Menu>
385
+ ```
386
+
387
+ ### Submenu with Sections
388
+
389
+ ```jsx
390
+ <Menu onAction={(key) => console.log(key)}>
391
+ <Menu.Item key="copy">Copy</Menu.Item>
392
+
393
+ <Menu.SubMenuTrigger>
394
+ <Menu.Item key="settings">Settings</Menu.Item>
395
+ <Menu onAction={(key) => console.log(key)}>
396
+ <Menu.Section title="General">
397
+ <Menu.Item key="preferences">Preferences</Menu.Item>
398
+ <Menu.Item key="account">Account Settings</Menu.Item>
399
+ </Menu.Section>
400
+ <Menu.Section title="Display">
401
+ <Menu.Item key="theme">Theme</Menu.Item>
402
+ <Menu.Item key="layout">Layout</Menu.Item>
403
+ </Menu.Section>
404
+ </Menu>
405
+ </Menu.SubMenuTrigger>
406
+ </Menu>
407
+ ```
408
+
409
+ ## Accessibility
410
+
411
+ ### Keyboard Navigation
412
+
413
+ - `Tab` - Moves focus to the menu
414
+ - `Arrow Keys` - Navigate between items
415
+ - `Right Arrow` - Open submenu when focused on submenu trigger
416
+ - `Left Arrow` - Close submenu and return to parent
417
+ - `Home/End` - Move to first/last item
418
+ - `Enter/Space` - Activate the focused item or open submenu
419
+ - `Escape` - Close the menu or submenu
420
+ - `A-Z` - Typeahead search for items
421
+
422
+ ### Screen Reader Support
423
+
424
+ - Menu announces as "menu" with proper role
425
+ - Items announce as "menuitem", "menuitemcheckbox", or "menuitemradio"
426
+ - Submenu triggers announce with "has submenu" indication
427
+ - Selection state is announced for selectable items
428
+ - Keyboard shortcuts are announced when present
429
+ - Section headings provide context for grouped items
430
+ - Submenu opening and closing is announced to screen readers
431
+
432
+ ### ARIA Properties
433
+
434
+ - `aria-label` - Provides accessible label for the menu
435
+ - `aria-labelledby` - References element that labels the menu
436
+ - `aria-activedescendant` - Indicates the currently focused item
437
+ - `aria-orientation` - Indicates menu orientation (vertical by default)
438
+
439
+ ## Best Practices
440
+
441
+ 1. **Clear Labels**: Use descriptive, action-oriented labels
442
+ ```jsx
443
+ <Menu.Item key="save">Save Document</Menu.Item> // Good
444
+ <Menu.Item key="save">Save</Menu.Item> // Less clear
445
+ ```
446
+
447
+ 2. **Logical Grouping**: Group related actions using sections
448
+ ```jsx
449
+ <Menu.Section title="File Operations">
450
+ <Menu.Item key="new">New</Menu.Item>
451
+ <Menu.Item key="open">Open</Menu.Item>
452
+ </Menu.Section>
453
+ ```
454
+
455
+ 3. **Keyboard Shortcuts**: Include shortcuts for common actions
456
+ ```jsx
457
+ <Menu.Item key="copy" hotkeys="Ctrl+C">Copy</Menu.Item>
458
+ ```
459
+
460
+ 4. **Appropriate Selection**: Choose the right selection mode
461
+ - Use `selectionMode="none"` for action menus
462
+ - Use `selectionMode="single"` for mutually exclusive options
463
+ - Use `selectionMode="multiple"` for independent toggles
464
+
465
+ 5. **Disabled States**: Clearly indicate unavailable actions
466
+ ```jsx
467
+ <Menu disabledKeys={['paste']}>
468
+ <Menu.Item key="paste">Paste</Menu.Item>
469
+ </Menu>
470
+ ```
471
+
472
+ 6. **Submenu Structure**: Use clear hierarchy for submenus
473
+ ```jsx
474
+ <Menu.SubMenuTrigger>
475
+ <Menu.Item key="share">Share</Menu.Item>
476
+ <Menu onAction={handleAction}>
477
+ <Menu.Item key="link">Copy Link</Menu.Item>
478
+ <Menu.Item key="email">Email</Menu.Item>
479
+ </Menu>
480
+ </Menu.SubMenuTrigger>
481
+ ```
482
+
483
+ ## Integration with MenuTrigger
484
+
485
+ The Menu component is typically used with MenuTrigger for dropdown functionality:
486
+
487
+ ```jsx
488
+ <MenuTrigger>
489
+ <Button>Actions</Button>
490
+ <Menu>
491
+ <Menu.Item key="edit">Edit</Menu.Item>
492
+ <Menu.Item key="delete">Delete</Menu.Item>
493
+ </Menu>
494
+ </MenuTrigger>
495
+ ```
496
+
497
+ ## Suggested Improvements
498
+
499
+ - Enhancement 1: Implement virtual scrolling for large item lists
500
+ - Enhancement 2: Add animation presets for menu transitions
501
+ - Enhancement 3: Support for item templates and custom renderers
502
+ - Enhancement 4: Built-in search/filter functionality
503
+ - Enhancement 5: Add support for icons in section headers
504
+
505
+ ## Related Components
506
+
507
+ - [Button](./Button.md) - Common trigger element for menus
508
+ - [ListBox](../fields/ListBox.md) - Alternative for selection-focused interfaces
509
+ - [ComboBox](../fields/ComboBox.md) - Combines input with menu selection