@fluentui/react-menu 0.0.0-nightly-20220302-0405.1

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 (554) hide show
  1. package/CHANGELOG.json +5046 -0
  2. package/CHANGELOG.md +1569 -0
  3. package/LICENSE +15 -0
  4. package/README.md +5 -0
  5. package/Spec.md +1039 -0
  6. package/dist/react-menu.d.ts +662 -0
  7. package/lib/Menu.d.ts +1 -0
  8. package/lib/Menu.js +2 -0
  9. package/lib/Menu.js.map +1 -0
  10. package/lib/MenuDivider.d.ts +1 -0
  11. package/lib/MenuDivider.js +2 -0
  12. package/lib/MenuDivider.js.map +1 -0
  13. package/lib/MenuGroup.d.ts +1 -0
  14. package/lib/MenuGroup.js +2 -0
  15. package/lib/MenuGroup.js.map +1 -0
  16. package/lib/MenuGroupHeader.d.ts +1 -0
  17. package/lib/MenuGroupHeader.js +2 -0
  18. package/lib/MenuGroupHeader.js.map +1 -0
  19. package/lib/MenuItem.d.ts +1 -0
  20. package/lib/MenuItem.js +2 -0
  21. package/lib/MenuItem.js.map +1 -0
  22. package/lib/MenuItemCheckbox.d.ts +1 -0
  23. package/lib/MenuItemCheckbox.js +2 -0
  24. package/lib/MenuItemCheckbox.js.map +1 -0
  25. package/lib/MenuItemRadio.d.ts +1 -0
  26. package/lib/MenuItemRadio.js +2 -0
  27. package/lib/MenuItemRadio.js.map +1 -0
  28. package/lib/MenuList.d.ts +1 -0
  29. package/lib/MenuList.js +2 -0
  30. package/lib/MenuList.js.map +1 -0
  31. package/lib/MenuPopover.d.ts +1 -0
  32. package/lib/MenuPopover.js +2 -0
  33. package/lib/MenuPopover.js.map +1 -0
  34. package/lib/MenuSplitGroup.d.ts +1 -0
  35. package/lib/MenuSplitGroup.js +2 -0
  36. package/lib/MenuSplitGroup.js.map +1 -0
  37. package/lib/MenuTrigger.d.ts +1 -0
  38. package/lib/MenuTrigger.js +2 -0
  39. package/lib/MenuTrigger.js.map +1 -0
  40. package/lib/components/Menu/Menu.d.ts +6 -0
  41. package/lib/components/Menu/Menu.js +14 -0
  42. package/lib/components/Menu/Menu.js.map +1 -0
  43. package/lib/components/Menu/Menu.types.d.ts +113 -0
  44. package/lib/components/Menu/Menu.types.js +2 -0
  45. package/lib/components/Menu/Menu.types.js.map +1 -0
  46. package/lib/components/Menu/index.d.ts +5 -0
  47. package/lib/components/Menu/index.js +6 -0
  48. package/lib/components/Menu/index.js.map +1 -0
  49. package/lib/components/Menu/renderMenu.d.ts +5 -0
  50. package/lib/components/Menu/renderMenu.js +12 -0
  51. package/lib/components/Menu/renderMenu.js.map +1 -0
  52. package/lib/components/Menu/useMenu.d.ts +10 -0
  53. package/lib/components/Menu/useMenu.js +260 -0
  54. package/lib/components/Menu/useMenu.js.map +1 -0
  55. package/lib/components/Menu/useMenuContextValues.d.ts +2 -0
  56. package/lib/components/Menu/useMenuContextValues.js +41 -0
  57. package/lib/components/Menu/useMenuContextValues.js.map +1 -0
  58. package/lib/components/MenuDivider/MenuDivider.d.ts +6 -0
  59. package/lib/components/MenuDivider/MenuDivider.js +15 -0
  60. package/lib/components/MenuDivider/MenuDivider.js.map +1 -0
  61. package/lib/components/MenuDivider/MenuDivider.types.d.ts +6 -0
  62. package/lib/components/MenuDivider/MenuDivider.types.js +2 -0
  63. package/lib/components/MenuDivider/MenuDivider.types.js.map +1 -0
  64. package/lib/components/MenuDivider/index.d.ts +5 -0
  65. package/lib/components/MenuDivider/index.js +6 -0
  66. package/lib/components/MenuDivider/index.js.map +1 -0
  67. package/lib/components/MenuDivider/renderMenuDivider.d.ts +6 -0
  68. package/lib/components/MenuDivider/renderMenuDivider.js +16 -0
  69. package/lib/components/MenuDivider/renderMenuDivider.js.map +1 -0
  70. package/lib/components/MenuDivider/useMenuDivider.d.ts +6 -0
  71. package/lib/components/MenuDivider/useMenuDivider.js +19 -0
  72. package/lib/components/MenuDivider/useMenuDivider.js.map +1 -0
  73. package/lib/components/MenuDivider/useMenuDividerStyles.d.ts +3 -0
  74. package/lib/components/MenuDivider/useMenuDividerStyles.js +24 -0
  75. package/lib/components/MenuDivider/useMenuDividerStyles.js.map +1 -0
  76. package/lib/components/MenuGroup/MenuGroup.d.ts +6 -0
  77. package/lib/components/MenuGroup/MenuGroup.js +17 -0
  78. package/lib/components/MenuGroup/MenuGroup.js.map +1 -0
  79. package/lib/components/MenuGroup/MenuGroup.types.d.ts +15 -0
  80. package/lib/components/MenuGroup/MenuGroup.types.js +2 -0
  81. package/lib/components/MenuGroup/MenuGroup.types.js.map +1 -0
  82. package/lib/components/MenuGroup/index.d.ts +6 -0
  83. package/lib/components/MenuGroup/index.js +7 -0
  84. package/lib/components/MenuGroup/index.js.map +1 -0
  85. package/lib/components/MenuGroup/renderMenuGroup.d.ts +6 -0
  86. package/lib/components/MenuGroup/renderMenuGroup.js +19 -0
  87. package/lib/components/MenuGroup/renderMenuGroup.js.map +1 -0
  88. package/lib/components/MenuGroup/useMenuGroup.d.ts +6 -0
  89. package/lib/components/MenuGroup/useMenuGroup.js +21 -0
  90. package/lib/components/MenuGroup/useMenuGroup.js.map +1 -0
  91. package/lib/components/MenuGroup/useMenuGroupContextValues.d.ts +2 -0
  92. package/lib/components/MenuGroup/useMenuGroupContextValues.js +13 -0
  93. package/lib/components/MenuGroup/useMenuGroupContextValues.js.map +1 -0
  94. package/lib/components/MenuGroup/useMenuGroupStyles.d.ts +3 -0
  95. package/lib/components/MenuGroup/useMenuGroupStyles.js +7 -0
  96. package/lib/components/MenuGroup/useMenuGroupStyles.js.map +1 -0
  97. package/lib/components/MenuGroupHeader/MenuGroupHeader.d.ts +6 -0
  98. package/lib/components/MenuGroupHeader/MenuGroupHeader.js +15 -0
  99. package/lib/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -0
  100. package/lib/components/MenuGroupHeader/MenuGroupHeader.types.d.ts +6 -0
  101. package/lib/components/MenuGroupHeader/MenuGroupHeader.types.js +2 -0
  102. package/lib/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -0
  103. package/lib/components/MenuGroupHeader/index.d.ts +5 -0
  104. package/lib/components/MenuGroupHeader/index.js +6 -0
  105. package/lib/components/MenuGroupHeader/index.js.map +1 -0
  106. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.d.ts +6 -0
  107. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js +16 -0
  108. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -0
  109. package/lib/components/MenuGroupHeader/useMenuGroupHeader.d.ts +6 -0
  110. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js +22 -0
  111. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -0
  112. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.d.ts +3 -0
  113. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +25 -0
  114. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -0
  115. package/lib/components/MenuItem/MenuItem.d.ts +6 -0
  116. package/lib/components/MenuItem/MenuItem.js +15 -0
  117. package/lib/components/MenuItem/MenuItem.js.map +1 -0
  118. package/lib/components/MenuItem/MenuItem.types.d.ts +43 -0
  119. package/lib/components/MenuItem/MenuItem.types.js +2 -0
  120. package/lib/components/MenuItem/MenuItem.types.js.map +1 -0
  121. package/lib/components/MenuItem/index.d.ts +5 -0
  122. package/lib/components/MenuItem/index.js +6 -0
  123. package/lib/components/MenuItem/index.js.map +1 -0
  124. package/lib/components/MenuItem/renderMenuItem.d.ts +5 -0
  125. package/lib/components/MenuItem/renderMenuItem.js +20 -0
  126. package/lib/components/MenuItem/renderMenuItem.js.map +1 -0
  127. package/lib/components/MenuItem/useCharacterSearch.d.ts +3 -0
  128. package/lib/components/MenuItem/useCharacterSearch.js +26 -0
  129. package/lib/components/MenuItem/useCharacterSearch.js.map +1 -0
  130. package/lib/components/MenuItem/useMenuItem.d.ts +6 -0
  131. package/lib/components/MenuItem/useMenuItem.js +125 -0
  132. package/lib/components/MenuItem/useMenuItem.js.map +1 -0
  133. package/lib/components/MenuItem/useMenuItemStyles.d.ts +4 -0
  134. package/lib/components/MenuItem/useMenuItemStyles.js +107 -0
  135. package/lib/components/MenuItem/useMenuItemStyles.js.map +1 -0
  136. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.d.ts +6 -0
  137. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js +15 -0
  138. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -0
  139. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +4 -0
  140. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.js +2 -0
  141. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -0
  142. package/lib/components/MenuItemCheckbox/index.d.ts +5 -0
  143. package/lib/components/MenuItemCheckbox/index.js +6 -0
  144. package/lib/components/MenuItemCheckbox/index.js.map +1 -0
  145. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.d.ts +3 -0
  146. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js +17 -0
  147. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -0
  148. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.d.ts +4 -0
  149. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js +46 -0
  150. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -0
  151. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.d.ts +3 -0
  152. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +10 -0
  153. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -0
  154. package/lib/components/MenuItemRadio/MenuItemRadio.d.ts +6 -0
  155. package/lib/components/MenuItemRadio/MenuItemRadio.js +15 -0
  156. package/lib/components/MenuItemRadio/MenuItemRadio.js.map +1 -0
  157. package/lib/components/MenuItemRadio/MenuItemRadio.types.d.ts +4 -0
  158. package/lib/components/MenuItemRadio/MenuItemRadio.types.js +2 -0
  159. package/lib/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -0
  160. package/lib/components/MenuItemRadio/index.d.ts +5 -0
  161. package/lib/components/MenuItemRadio/index.js +6 -0
  162. package/lib/components/MenuItemRadio/index.js.map +1 -0
  163. package/lib/components/MenuItemRadio/renderMenuItemRadio.d.ts +6 -0
  164. package/lib/components/MenuItemRadio/renderMenuItemRadio.js +20 -0
  165. package/lib/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -0
  166. package/lib/components/MenuItemRadio/useMenuItemRadio.d.ts +6 -0
  167. package/lib/components/MenuItemRadio/useMenuItemRadio.js +49 -0
  168. package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -0
  169. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.d.ts +3 -0
  170. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js +10 -0
  171. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -0
  172. package/lib/components/MenuList/MenuList.d.ts +6 -0
  173. package/lib/components/MenuList/MenuList.js +17 -0
  174. package/lib/components/MenuList/MenuList.js.map +1 -0
  175. package/lib/components/MenuList/MenuList.types.d.ts +55 -0
  176. package/lib/components/MenuList/MenuList.types.js +2 -0
  177. package/lib/components/MenuList/MenuList.types.js.map +1 -0
  178. package/lib/components/MenuList/index.d.ts +6 -0
  179. package/lib/components/MenuList/index.js +6 -0
  180. package/lib/components/MenuList/index.js.map +1 -0
  181. package/lib/components/MenuList/renderMenuList.d.ts +5 -0
  182. package/lib/components/MenuList/renderMenuList.js +18 -0
  183. package/lib/components/MenuList/renderMenuList.js.map +1 -0
  184. package/lib/components/MenuList/useMenuList.d.ts +6 -0
  185. package/lib/components/MenuList/useMenuList.js +168 -0
  186. package/lib/components/MenuList/useMenuList.js.map +1 -0
  187. package/lib/components/MenuList/useMenuListContextValues.d.ts +2 -0
  188. package/lib/components/MenuList/useMenuListContextValues.js +25 -0
  189. package/lib/components/MenuList/useMenuListContextValues.js.map +1 -0
  190. package/lib/components/MenuList/useMenuListStyles.d.ts +6 -0
  191. package/lib/components/MenuList/useMenuListStyles.js +24 -0
  192. package/lib/components/MenuList/useMenuListStyles.js.map +1 -0
  193. package/lib/components/MenuPopover/MenuPopover.d.ts +6 -0
  194. package/lib/components/MenuPopover/MenuPopover.js +15 -0
  195. package/lib/components/MenuPopover/MenuPopover.js.map +1 -0
  196. package/lib/components/MenuPopover/MenuPopover.types.d.ts +18 -0
  197. package/lib/components/MenuPopover/MenuPopover.types.js +2 -0
  198. package/lib/components/MenuPopover/MenuPopover.types.js.map +1 -0
  199. package/lib/components/MenuPopover/index.d.ts +5 -0
  200. package/lib/components/MenuPopover/index.js +6 -0
  201. package/lib/components/MenuPopover/index.js.map +1 -0
  202. package/lib/components/MenuPopover/renderMenuPopover.d.ts +5 -0
  203. package/lib/components/MenuPopover/renderMenuPopover.js +22 -0
  204. package/lib/components/MenuPopover/renderMenuPopover.js.map +1 -0
  205. package/lib/components/MenuPopover/useMenuPopover.d.ts +12 -0
  206. package/lib/components/MenuPopover/useMenuPopover.js +104 -0
  207. package/lib/components/MenuPopover/useMenuPopover.js.map +1 -0
  208. package/lib/components/MenuPopover/useMenuPopoverStyles.d.ts +6 -0
  209. package/lib/components/MenuPopover/useMenuPopoverStyles.js +46 -0
  210. package/lib/components/MenuPopover/useMenuPopoverStyles.js.map +1 -0
  211. package/lib/components/MenuSplitGroup/MenuSplitGroup.d.ts +6 -0
  212. package/lib/components/MenuSplitGroup/MenuSplitGroup.js +15 -0
  213. package/lib/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -0
  214. package/lib/components/MenuSplitGroup/MenuSplitGroup.types.d.ts +14 -0
  215. package/lib/components/MenuSplitGroup/MenuSplitGroup.types.js +2 -0
  216. package/lib/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -0
  217. package/lib/components/MenuSplitGroup/index.d.ts +5 -0
  218. package/lib/components/MenuSplitGroup/index.js +6 -0
  219. package/lib/components/MenuSplitGroup/index.js.map +1 -0
  220. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.d.ts +5 -0
  221. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js +15 -0
  222. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -0
  223. package/lib/components/MenuSplitGroup/useMenuSplitGroup.d.ts +12 -0
  224. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +67 -0
  225. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -0
  226. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.d.ts +6 -0
  227. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js +35 -0
  228. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -0
  229. package/lib/components/MenuTrigger/MenuTrigger.d.ts +8 -0
  230. package/lib/components/MenuTrigger/MenuTrigger.js +14 -0
  231. package/lib/components/MenuTrigger/MenuTrigger.js.map +1 -0
  232. package/lib/components/MenuTrigger/MenuTrigger.types.d.ts +20 -0
  233. package/lib/components/MenuTrigger/MenuTrigger.types.js +2 -0
  234. package/lib/components/MenuTrigger/MenuTrigger.types.js.map +1 -0
  235. package/lib/components/MenuTrigger/index.d.ts +4 -0
  236. package/lib/components/MenuTrigger/index.js +5 -0
  237. package/lib/components/MenuTrigger/index.js.map +1 -0
  238. package/lib/components/MenuTrigger/renderMenuTrigger.d.ts +7 -0
  239. package/lib/components/MenuTrigger/renderMenuTrigger.js +14 -0
  240. package/lib/components/MenuTrigger/renderMenuTrigger.js.map +1 -0
  241. package/lib/components/MenuTrigger/useMenuTrigger.d.ts +8 -0
  242. package/lib/components/MenuTrigger/useMenuTrigger.js +178 -0
  243. package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -0
  244. package/lib/components/index.d.ts +2 -0
  245. package/lib/components/index.js +3 -0
  246. package/lib/components/index.js.map +1 -0
  247. package/lib/contexts/menuContext.d.ts +16 -0
  248. package/lib/contexts/menuContext.js +23 -0
  249. package/lib/contexts/menuContext.js.map +1 -0
  250. package/lib/contexts/menuGroupContext.d.ts +13 -0
  251. package/lib/contexts/menuGroupContext.js +7 -0
  252. package/lib/contexts/menuGroupContext.js.map +1 -0
  253. package/lib/contexts/menuListContext.d.ts +15 -0
  254. package/lib/contexts/menuListContext.js +13 -0
  255. package/lib/contexts/menuListContext.js.map +1 -0
  256. package/lib/contexts/menuTriggerContext.d.ts +3 -0
  257. package/lib/contexts/menuTriggerContext.js +9 -0
  258. package/lib/contexts/menuTriggerContext.js.map +1 -0
  259. package/lib/index.d.ts +16 -0
  260. package/lib/index.js +17 -0
  261. package/lib/index.js.map +1 -0
  262. package/lib/selectable/index.d.ts +2 -0
  263. package/lib/selectable/index.js +3 -0
  264. package/lib/selectable/index.js.map +1 -0
  265. package/lib/selectable/types.d.ts +34 -0
  266. package/lib/selectable/types.js +2 -0
  267. package/lib/selectable/types.js.map +1 -0
  268. package/lib/selectable/useCheckmarkStyles.d.ts +8 -0
  269. package/lib/selectable/useCheckmarkStyles.js +29 -0
  270. package/lib/selectable/useCheckmarkStyles.js.map +1 -0
  271. package/lib/tsdoc-metadata.json +11 -0
  272. package/lib/utils/index.d.ts +1 -0
  273. package/lib/utils/index.js +2 -0
  274. package/lib/utils/index.js.map +1 -0
  275. package/lib/utils/useIsSubmenu.d.ts +9 -0
  276. package/lib/utils/useIsSubmenu.js +18 -0
  277. package/lib/utils/useIsSubmenu.js.map +1 -0
  278. package/lib/utils/useOnMenuEnter.d.ts +23 -0
  279. package/lib/utils/useOnMenuEnter.js +72 -0
  280. package/lib/utils/useOnMenuEnter.js.map +1 -0
  281. package/lib-commonjs/Menu.d.ts +1 -0
  282. package/lib-commonjs/Menu.js +10 -0
  283. package/lib-commonjs/Menu.js.map +1 -0
  284. package/lib-commonjs/MenuDivider.d.ts +1 -0
  285. package/lib-commonjs/MenuDivider.js +10 -0
  286. package/lib-commonjs/MenuDivider.js.map +1 -0
  287. package/lib-commonjs/MenuGroup.d.ts +1 -0
  288. package/lib-commonjs/MenuGroup.js +10 -0
  289. package/lib-commonjs/MenuGroup.js.map +1 -0
  290. package/lib-commonjs/MenuGroupHeader.d.ts +1 -0
  291. package/lib-commonjs/MenuGroupHeader.js +10 -0
  292. package/lib-commonjs/MenuGroupHeader.js.map +1 -0
  293. package/lib-commonjs/MenuItem.d.ts +1 -0
  294. package/lib-commonjs/MenuItem.js +10 -0
  295. package/lib-commonjs/MenuItem.js.map +1 -0
  296. package/lib-commonjs/MenuItemCheckbox.d.ts +1 -0
  297. package/lib-commonjs/MenuItemCheckbox.js +10 -0
  298. package/lib-commonjs/MenuItemCheckbox.js.map +1 -0
  299. package/lib-commonjs/MenuItemRadio.d.ts +1 -0
  300. package/lib-commonjs/MenuItemRadio.js +10 -0
  301. package/lib-commonjs/MenuItemRadio.js.map +1 -0
  302. package/lib-commonjs/MenuList.d.ts +1 -0
  303. package/lib-commonjs/MenuList.js +10 -0
  304. package/lib-commonjs/MenuList.js.map +1 -0
  305. package/lib-commonjs/MenuPopover.d.ts +1 -0
  306. package/lib-commonjs/MenuPopover.js +10 -0
  307. package/lib-commonjs/MenuPopover.js.map +1 -0
  308. package/lib-commonjs/MenuSplitGroup.d.ts +1 -0
  309. package/lib-commonjs/MenuSplitGroup.js +10 -0
  310. package/lib-commonjs/MenuSplitGroup.js.map +1 -0
  311. package/lib-commonjs/MenuTrigger.d.ts +1 -0
  312. package/lib-commonjs/MenuTrigger.js +10 -0
  313. package/lib-commonjs/MenuTrigger.js.map +1 -0
  314. package/lib-commonjs/components/Menu/Menu.d.ts +6 -0
  315. package/lib-commonjs/components/Menu/Menu.js +26 -0
  316. package/lib-commonjs/components/Menu/Menu.js.map +1 -0
  317. package/lib-commonjs/components/Menu/Menu.types.d.ts +113 -0
  318. package/lib-commonjs/components/Menu/Menu.types.js +6 -0
  319. package/lib-commonjs/components/Menu/Menu.types.js.map +1 -0
  320. package/lib-commonjs/components/Menu/index.d.ts +5 -0
  321. package/lib-commonjs/components/Menu/index.js +18 -0
  322. package/lib-commonjs/components/Menu/index.js.map +1 -0
  323. package/lib-commonjs/components/Menu/renderMenu.d.ts +5 -0
  324. package/lib-commonjs/components/Menu/renderMenu.js +23 -0
  325. package/lib-commonjs/components/Menu/renderMenu.js.map +1 -0
  326. package/lib-commonjs/components/Menu/useMenu.d.ts +10 -0
  327. package/lib-commonjs/components/Menu/useMenu.js +278 -0
  328. package/lib-commonjs/components/Menu/useMenu.js.map +1 -0
  329. package/lib-commonjs/components/Menu/useMenuContextValues.d.ts +2 -0
  330. package/lib-commonjs/components/Menu/useMenuContextValues.js +50 -0
  331. package/lib-commonjs/components/Menu/useMenuContextValues.js.map +1 -0
  332. package/lib-commonjs/components/MenuDivider/MenuDivider.d.ts +6 -0
  333. package/lib-commonjs/components/MenuDivider/MenuDivider.js +26 -0
  334. package/lib-commonjs/components/MenuDivider/MenuDivider.js.map +1 -0
  335. package/lib-commonjs/components/MenuDivider/MenuDivider.types.d.ts +6 -0
  336. package/lib-commonjs/components/MenuDivider/MenuDivider.types.js +6 -0
  337. package/lib-commonjs/components/MenuDivider/MenuDivider.types.js.map +1 -0
  338. package/lib-commonjs/components/MenuDivider/index.d.ts +5 -0
  339. package/lib-commonjs/components/MenuDivider/index.js +18 -0
  340. package/lib-commonjs/components/MenuDivider/index.js.map +1 -0
  341. package/lib-commonjs/components/MenuDivider/renderMenuDivider.d.ts +6 -0
  342. package/lib-commonjs/components/MenuDivider/renderMenuDivider.js +27 -0
  343. package/lib-commonjs/components/MenuDivider/renderMenuDivider.js.map +1 -0
  344. package/lib-commonjs/components/MenuDivider/useMenuDivider.d.ts +6 -0
  345. package/lib-commonjs/components/MenuDivider/useMenuDivider.js +29 -0
  346. package/lib-commonjs/components/MenuDivider/useMenuDivider.js.map +1 -0
  347. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.d.ts +3 -0
  348. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js +35 -0
  349. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js.map +1 -0
  350. package/lib-commonjs/components/MenuGroup/MenuGroup.d.ts +6 -0
  351. package/lib-commonjs/components/MenuGroup/MenuGroup.js +29 -0
  352. package/lib-commonjs/components/MenuGroup/MenuGroup.js.map +1 -0
  353. package/lib-commonjs/components/MenuGroup/MenuGroup.types.d.ts +15 -0
  354. package/lib-commonjs/components/MenuGroup/MenuGroup.types.js +6 -0
  355. package/lib-commonjs/components/MenuGroup/MenuGroup.types.js.map +1 -0
  356. package/lib-commonjs/components/MenuGroup/index.d.ts +6 -0
  357. package/lib-commonjs/components/MenuGroup/index.js +20 -0
  358. package/lib-commonjs/components/MenuGroup/index.js.map +1 -0
  359. package/lib-commonjs/components/MenuGroup/renderMenuGroup.d.ts +6 -0
  360. package/lib-commonjs/components/MenuGroup/renderMenuGroup.js +31 -0
  361. package/lib-commonjs/components/MenuGroup/renderMenuGroup.js.map +1 -0
  362. package/lib-commonjs/components/MenuGroup/useMenuGroup.d.ts +6 -0
  363. package/lib-commonjs/components/MenuGroup/useMenuGroup.js +31 -0
  364. package/lib-commonjs/components/MenuGroup/useMenuGroup.js.map +1 -0
  365. package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.d.ts +2 -0
  366. package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js +23 -0
  367. package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js.map +1 -0
  368. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.d.ts +3 -0
  369. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js +18 -0
  370. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js.map +1 -0
  371. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.d.ts +6 -0
  372. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js +26 -0
  373. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -0
  374. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.d.ts +6 -0
  375. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js +6 -0
  376. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -0
  377. package/lib-commonjs/components/MenuGroupHeader/index.d.ts +5 -0
  378. package/lib-commonjs/components/MenuGroupHeader/index.js +18 -0
  379. package/lib-commonjs/components/MenuGroupHeader/index.js.map +1 -0
  380. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.d.ts +6 -0
  381. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js +27 -0
  382. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -0
  383. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.d.ts +6 -0
  384. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js +33 -0
  385. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -0
  386. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.d.ts +3 -0
  387. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +36 -0
  388. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -0
  389. package/lib-commonjs/components/MenuItem/MenuItem.d.ts +6 -0
  390. package/lib-commonjs/components/MenuItem/MenuItem.js +26 -0
  391. package/lib-commonjs/components/MenuItem/MenuItem.js.map +1 -0
  392. package/lib-commonjs/components/MenuItem/MenuItem.types.d.ts +43 -0
  393. package/lib-commonjs/components/MenuItem/MenuItem.types.js +6 -0
  394. package/lib-commonjs/components/MenuItem/MenuItem.types.js.map +1 -0
  395. package/lib-commonjs/components/MenuItem/index.d.ts +5 -0
  396. package/lib-commonjs/components/MenuItem/index.js +18 -0
  397. package/lib-commonjs/components/MenuItem/index.js.map +1 -0
  398. package/lib-commonjs/components/MenuItem/renderMenuItem.d.ts +5 -0
  399. package/lib-commonjs/components/MenuItem/renderMenuItem.js +31 -0
  400. package/lib-commonjs/components/MenuItem/renderMenuItem.js.map +1 -0
  401. package/lib-commonjs/components/MenuItem/useCharacterSearch.d.ts +3 -0
  402. package/lib-commonjs/components/MenuItem/useCharacterSearch.js +36 -0
  403. package/lib-commonjs/components/MenuItem/useCharacterSearch.js.map +1 -0
  404. package/lib-commonjs/components/MenuItem/useMenuItem.d.ts +6 -0
  405. package/lib-commonjs/components/MenuItem/useMenuItem.js +142 -0
  406. package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -0
  407. package/lib-commonjs/components/MenuItem/useMenuItemStyles.d.ts +4 -0
  408. package/lib-commonjs/components/MenuItem/useMenuItemStyles.js +120 -0
  409. package/lib-commonjs/components/MenuItem/useMenuItemStyles.js.map +1 -0
  410. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.d.ts +6 -0
  411. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js +26 -0
  412. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -0
  413. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +4 -0
  414. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js +6 -0
  415. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -0
  416. package/lib-commonjs/components/MenuItemCheckbox/index.d.ts +5 -0
  417. package/lib-commonjs/components/MenuItemCheckbox/index.js +18 -0
  418. package/lib-commonjs/components/MenuItemCheckbox/index.js.map +1 -0
  419. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.d.ts +3 -0
  420. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js +28 -0
  421. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -0
  422. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.d.ts +4 -0
  423. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js +60 -0
  424. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -0
  425. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.d.ts +3 -0
  426. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +23 -0
  427. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -0
  428. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.d.ts +6 -0
  429. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js +26 -0
  430. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js.map +1 -0
  431. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.d.ts +4 -0
  432. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js +6 -0
  433. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -0
  434. package/lib-commonjs/components/MenuItemRadio/index.d.ts +5 -0
  435. package/lib-commonjs/components/MenuItemRadio/index.js +18 -0
  436. package/lib-commonjs/components/MenuItemRadio/index.js.map +1 -0
  437. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.d.ts +6 -0
  438. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js +31 -0
  439. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -0
  440. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.d.ts +6 -0
  441. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js +63 -0
  442. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js.map +1 -0
  443. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.d.ts +3 -0
  444. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js +23 -0
  445. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -0
  446. package/lib-commonjs/components/MenuList/MenuList.d.ts +6 -0
  447. package/lib-commonjs/components/MenuList/MenuList.js +29 -0
  448. package/lib-commonjs/components/MenuList/MenuList.js.map +1 -0
  449. package/lib-commonjs/components/MenuList/MenuList.types.d.ts +55 -0
  450. package/lib-commonjs/components/MenuList/MenuList.types.js +6 -0
  451. package/lib-commonjs/components/MenuList/MenuList.types.js.map +1 -0
  452. package/lib-commonjs/components/MenuList/index.d.ts +6 -0
  453. package/lib-commonjs/components/MenuList/index.js +18 -0
  454. package/lib-commonjs/components/MenuList/index.js.map +1 -0
  455. package/lib-commonjs/components/MenuList/renderMenuList.d.ts +5 -0
  456. package/lib-commonjs/components/MenuList/renderMenuList.js +30 -0
  457. package/lib-commonjs/components/MenuList/renderMenuList.js.map +1 -0
  458. package/lib-commonjs/components/MenuList/useMenuList.d.ts +6 -0
  459. package/lib-commonjs/components/MenuList/useMenuList.js +183 -0
  460. package/lib-commonjs/components/MenuList/useMenuList.js.map +1 -0
  461. package/lib-commonjs/components/MenuList/useMenuListContextValues.d.ts +2 -0
  462. package/lib-commonjs/components/MenuList/useMenuListContextValues.js +34 -0
  463. package/lib-commonjs/components/MenuList/useMenuListContextValues.js.map +1 -0
  464. package/lib-commonjs/components/MenuList/useMenuListStyles.d.ts +6 -0
  465. package/lib-commonjs/components/MenuList/useMenuListStyles.js +34 -0
  466. package/lib-commonjs/components/MenuList/useMenuListStyles.js.map +1 -0
  467. package/lib-commonjs/components/MenuPopover/MenuPopover.d.ts +6 -0
  468. package/lib-commonjs/components/MenuPopover/MenuPopover.js +26 -0
  469. package/lib-commonjs/components/MenuPopover/MenuPopover.js.map +1 -0
  470. package/lib-commonjs/components/MenuPopover/MenuPopover.types.d.ts +18 -0
  471. package/lib-commonjs/components/MenuPopover/MenuPopover.types.js +6 -0
  472. package/lib-commonjs/components/MenuPopover/MenuPopover.types.js.map +1 -0
  473. package/lib-commonjs/components/MenuPopover/index.d.ts +5 -0
  474. package/lib-commonjs/components/MenuPopover/index.js +18 -0
  475. package/lib-commonjs/components/MenuPopover/index.js.map +1 -0
  476. package/lib-commonjs/components/MenuPopover/renderMenuPopover.d.ts +5 -0
  477. package/lib-commonjs/components/MenuPopover/renderMenuPopover.js +34 -0
  478. package/lib-commonjs/components/MenuPopover/renderMenuPopover.js.map +1 -0
  479. package/lib-commonjs/components/MenuPopover/useMenuPopover.d.ts +12 -0
  480. package/lib-commonjs/components/MenuPopover/useMenuPopover.js +120 -0
  481. package/lib-commonjs/components/MenuPopover/useMenuPopover.js.map +1 -0
  482. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.d.ts +6 -0
  483. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js +57 -0
  484. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js.map +1 -0
  485. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.d.ts +6 -0
  486. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js +26 -0
  487. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -0
  488. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.d.ts +14 -0
  489. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js +6 -0
  490. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -0
  491. package/lib-commonjs/components/MenuSplitGroup/index.d.ts +5 -0
  492. package/lib-commonjs/components/MenuSplitGroup/index.js +18 -0
  493. package/lib-commonjs/components/MenuSplitGroup/index.js.map +1 -0
  494. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.d.ts +5 -0
  495. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js +26 -0
  496. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -0
  497. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.d.ts +12 -0
  498. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js +81 -0
  499. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -0
  500. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.d.ts +6 -0
  501. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js +47 -0
  502. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -0
  503. package/lib-commonjs/components/MenuTrigger/MenuTrigger.d.ts +8 -0
  504. package/lib-commonjs/components/MenuTrigger/MenuTrigger.js +25 -0
  505. package/lib-commonjs/components/MenuTrigger/MenuTrigger.js.map +1 -0
  506. package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.d.ts +20 -0
  507. package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js +6 -0
  508. package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js.map +1 -0
  509. package/lib-commonjs/components/MenuTrigger/index.d.ts +4 -0
  510. package/lib-commonjs/components/MenuTrigger/index.js +16 -0
  511. package/lib-commonjs/components/MenuTrigger/index.js.map +1 -0
  512. package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.d.ts +7 -0
  513. package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js +25 -0
  514. package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js.map +1 -0
  515. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.d.ts +8 -0
  516. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js +195 -0
  517. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js.map +1 -0
  518. package/lib-commonjs/components/index.d.ts +2 -0
  519. package/lib-commonjs/components/index.js +12 -0
  520. package/lib-commonjs/components/index.js.map +1 -0
  521. package/lib-commonjs/contexts/menuContext.d.ts +16 -0
  522. package/lib-commonjs/contexts/menuContext.js +34 -0
  523. package/lib-commonjs/contexts/menuContext.js.map +1 -0
  524. package/lib-commonjs/contexts/menuGroupContext.d.ts +13 -0
  525. package/lib-commonjs/contexts/menuGroupContext.js +18 -0
  526. package/lib-commonjs/contexts/menuGroupContext.js.map +1 -0
  527. package/lib-commonjs/contexts/menuListContext.d.ts +15 -0
  528. package/lib-commonjs/contexts/menuListContext.js +24 -0
  529. package/lib-commonjs/contexts/menuListContext.js.map +1 -0
  530. package/lib-commonjs/contexts/menuTriggerContext.d.ts +3 -0
  531. package/lib-commonjs/contexts/menuTriggerContext.js +20 -0
  532. package/lib-commonjs/contexts/menuTriggerContext.js.map +1 -0
  533. package/lib-commonjs/index.d.ts +16 -0
  534. package/lib-commonjs/index.js +40 -0
  535. package/lib-commonjs/index.js.map +1 -0
  536. package/lib-commonjs/selectable/index.d.ts +2 -0
  537. package/lib-commonjs/selectable/index.js +12 -0
  538. package/lib-commonjs/selectable/index.js.map +1 -0
  539. package/lib-commonjs/selectable/types.d.ts +34 -0
  540. package/lib-commonjs/selectable/types.js +6 -0
  541. package/lib-commonjs/selectable/types.js.map +1 -0
  542. package/lib-commonjs/selectable/useCheckmarkStyles.d.ts +8 -0
  543. package/lib-commonjs/selectable/useCheckmarkStyles.js +38 -0
  544. package/lib-commonjs/selectable/useCheckmarkStyles.js.map +1 -0
  545. package/lib-commonjs/utils/index.d.ts +1 -0
  546. package/lib-commonjs/utils/index.js +10 -0
  547. package/lib-commonjs/utils/index.js.map +1 -0
  548. package/lib-commonjs/utils/useIsSubmenu.d.ts +9 -0
  549. package/lib-commonjs/utils/useIsSubmenu.js +30 -0
  550. package/lib-commonjs/utils/useIsSubmenu.js.map +1 -0
  551. package/lib-commonjs/utils/useOnMenuEnter.d.ts +23 -0
  552. package/lib-commonjs/utils/useOnMenuEnter.js +86 -0
  553. package/lib-commonjs/utils/useOnMenuEnter.js.map +1 -0
  554. package/package.json +71 -0
@@ -0,0 +1,4 @@
1
+ import type { MenuItemSelectableProps, MenuItemSelectableState } from '../../selectable/index';
2
+ import type { MenuItemProps, MenuItemState } from '../MenuItem/MenuItem.types';
3
+ export declare type MenuItemRadioProps = MenuItemProps & MenuItemSelectableProps;
4
+ export declare type MenuItemRadioState = MenuItemState & MenuItemSelectableState;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=MenuItemRadio.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"../src/"}
@@ -0,0 +1,5 @@
1
+ export * from './MenuItemRadio.types';
2
+ export * from './MenuItemRadio';
3
+ export * from './renderMenuItemRadio';
4
+ export * from './useMenuItemRadio';
5
+ export * from './useMenuItemRadioStyles';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ const tslib_1 = /*#__PURE__*/require("tslib");
8
+
9
+ tslib_1.__exportStar(require("./MenuItemRadio.types"), exports);
10
+
11
+ tslib_1.__exportStar(require("./MenuItemRadio"), exports);
12
+
13
+ tslib_1.__exportStar(require("./renderMenuItemRadio"), exports);
14
+
15
+ tslib_1.__exportStar(require("./useMenuItemRadio"), exports);
16
+
17
+ tslib_1.__exportStar(require("./useMenuItemRadioStyles"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/MenuItemRadio/index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,uBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,uBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,oBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,0BAAA,CAAA,EAAA,OAAA","sourcesContent":["export * from './MenuItemRadio.types';\nexport * from './MenuItemRadio';\nexport * from './renderMenuItemRadio';\nexport * from './useMenuItemRadio';\nexport * from './useMenuItemRadioStyles';\n"],"sourceRoot":"../src/"}
@@ -0,0 +1,6 @@
1
+ import type { MenuItemRadioState } from './MenuItemRadio.types';
2
+ /**
3
+ * Redefine the render function to add slots. Reuse the menuitemradio structure but add
4
+ * slots to children.
5
+ */
6
+ export declare const renderMenuItemRadio_unstable: (state: MenuItemRadioState) => JSX.Element;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.renderMenuItemRadio_unstable = void 0;
7
+
8
+ const React = /*#__PURE__*/require("react");
9
+
10
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
11
+ /**
12
+ * Redefine the render function to add slots. Reuse the menuitemradio structure but add
13
+ * slots to children.
14
+ */
15
+
16
+
17
+ const renderMenuItemRadio_unstable = state => {
18
+ const {
19
+ slots,
20
+ slotProps
21
+ } = react_utilities_1.getSlots(state);
22
+ return React.createElement(slots.root, { ...slotProps.root
23
+ }, slots.checkmark && React.createElement(slots.checkmark, { ...slotProps.checkmark
24
+ }), slots.icon && React.createElement(slots.icon, { ...slotProps.icon
25
+ }), slots.content && React.createElement(slots.content, { ...slotProps.content
26
+ }), slots.secondaryContent && React.createElement(slots.secondaryContent, { ...slotProps.secondaryContent
27
+ }));
28
+ };
29
+
30
+ exports.renderMenuItemRadio_unstable = renderMenuItemRadio_unstable;
31
+ //# sourceMappingURL=renderMenuItemRadio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/MenuItemRadio/renderMenuItemRadio.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;AAIA;;;AAGG;;;AACI,MAAM,4BAA4B,GAAI,KAAD,IAA8B;AACxE,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,iBAAA,CAAA,QAAA,CAAwB,KAAxB,CAA7B;AAEA,SACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,EACG,KAAK,CAAC,SAAN,IAAmB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,SAAP,EAAgB,EAAA,GAAK,SAAS,CAAC;AAAf,GAAhB,CADtB,EAEG,KAAK,CAAC,IAAN,IAAc,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,CAFjB,EAGG,KAAK,CAAC,OAAN,IAAiB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,OAAP,EAAc,EAAA,GAAK,SAAS,CAAC;AAAf,GAAd,CAHpB,EAIG,KAAK,CAAC,gBAAN,IAA0B,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,gBAAP,EAAuB,EAAA,GAAK,SAAS,CAAC;AAAf,GAAvB,CAJ7B,CADF;AAQD,CAXM;;AAAM,OAAA,CAAA,4BAAA,GAA4B,4BAA5B","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { MenuItemRadioState } from './MenuItemRadio.types';\nimport type { MenuItemSlots } from '../MenuItem/MenuItem.types';\n\n/**\n * Redefine the render function to add slots. Reuse the menuitemradio structure but add\n * slots to children.\n */\nexport const renderMenuItemRadio_unstable = (state: MenuItemRadioState) => {\n const { slots, slotProps } = getSlots<MenuItemSlots>(state);\n\n return (\n <slots.root {...slotProps.root}>\n {slots.checkmark && <slots.checkmark {...slotProps.checkmark} />}\n {slots.icon && <slots.icon {...slotProps.icon} />}\n {slots.content && <slots.content {...slotProps.content} />}\n {slots.secondaryContent && <slots.secondaryContent {...slotProps.secondaryContent} />}\n </slots.root>\n );\n};\n"],"sourceRoot":"../src/"}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import type { MenuItemRadioProps, MenuItemRadioState } from './MenuItemRadio.types';
3
+ /**
4
+ * Given user props, returns state and render function for a MenuItemRadio.
5
+ */
6
+ export declare const useMenuItemRadio_unstable: (props: MenuItemRadioProps, ref: React.Ref<HTMLElement>) => MenuItemRadioState;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useMenuItemRadio_unstable = void 0;
7
+
8
+ const React = /*#__PURE__*/require("react");
9
+
10
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
11
+
12
+ const react_icons_1 = /*#__PURE__*/require("@fluentui/react-icons");
13
+
14
+ const menuListContext_1 = /*#__PURE__*/require("../../contexts/menuListContext");
15
+
16
+ const useMenuItem_1 = /*#__PURE__*/require("../MenuItem/useMenuItem");
17
+ /**
18
+ * Given user props, returns state and render function for a MenuItemRadio.
19
+ */
20
+
21
+
22
+ const useMenuItemRadio_unstable = (props, ref) => {
23
+ const radioProps = {
24
+ role: 'menuitemradio'
25
+ };
26
+ const state = useMenuItem_1.useMenuItem_unstable({ ...radioProps,
27
+ ...props,
28
+ checkmark: react_utilities_1.resolveShorthand(props.checkmark, {
29
+ defaultProps: {
30
+ children: React.createElement(react_icons_1.Checkmark16Filled, null)
31
+ },
32
+ required: true
33
+ })
34
+ }, ref);
35
+ const selectRadio = menuListContext_1.useMenuListContext_unstable(context => context.selectRadio);
36
+ const {
37
+ onClick: onClickOriginal
38
+ } = state.root;
39
+ const checked = menuListContext_1.useMenuListContext_unstable(context => {
40
+ var _a;
41
+
42
+ const checkedItems = ((_a = context.checkedValues) === null || _a === void 0 ? void 0 : _a[state.name]) || [];
43
+ return checkedItems.indexOf(state.value) !== -1;
44
+ });
45
+ state.checked = checked;
46
+ state.root['aria-checked'] = state.checked; // MenuItem state already transforms keyDown to click events
47
+
48
+ state.root.onClick = e => {
49
+ if (state.disabled) {
50
+ e.preventDefault();
51
+ e.stopPropagation();
52
+ return;
53
+ }
54
+
55
+ selectRadio === null || selectRadio === void 0 ? void 0 : selectRadio(e, state.name, state.value, state.checked);
56
+ onClickOriginal === null || onClickOriginal === void 0 ? void 0 : onClickOriginal(e);
57
+ };
58
+
59
+ return state;
60
+ };
61
+
62
+ exports.useMenuItemRadio_unstable = useMenuItemRadio_unstable;
63
+ //# sourceMappingURL=useMenuItemRadio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/MenuItemRadio/useMenuItemRadio.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AACA,MAAA,aAAA,gBAAA,OAAA,CAAA,uBAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,gCAAA,CAAA;;AACA,MAAA,aAAA,gBAAA,OAAA,CAAA,yBAAA,CAAA;AAGA;;AAEG;;;AACI,MAAM,yBAAyB,GAAG,CACvC,KADuC,EAEvC,GAFuC,KAGjB;AACtB,QAAM,UAAU,GAAG;AACjB,IAAA,IAAI,EAAE;AADW,GAAnB;AAIA,QAAM,KAAK,GAAG,aAAA,CAAA,oBAAA,CACZ,EACE,GAAG,UADL;AAEE,OAAG,KAFL;AAGE,IAAA,SAAS,EAAE,iBAAA,CAAA,gBAAA,CAAiB,KAAK,CAAC,SAAvB,EAAkC;AAC3C,MAAA,YAAY,EAAE;AAAE,QAAA,QAAQ,EAAE,KAAA,CAAA,aAAA,CAAC,aAAA,CAAA,iBAAD,EAAkB,IAAlB;AAAZ,OAD6B;AAE3C,MAAA,QAAQ,EAAE;AAFiC,KAAlC;AAHb,GADY,EASZ,GATY,CAAd;AAYA,QAAM,WAAW,GAAG,iBAAA,CAAA,2BAAA,CAA4B,OAAO,IAAI,OAAO,CAAC,WAA/C,CAApB;AACA,QAAM;AAAE,IAAA,OAAO,EAAE;AAAX,MAA+B,KAAK,CAAC,IAA3C;AACA,QAAM,OAAO,GAAG,iBAAA,CAAA,2BAAA,CAA4B,OAAO,IAAG;;;AACpD,UAAM,YAAY,GAAG,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,aAAR,MAAqB,IAArB,IAAqB,EAAA,KAAA,KAAA,CAArB,GAAqB,KAAA,CAArB,GAAqB,EAAA,CAAG,KAAK,CAAC,IAAT,CAArB,KAAuC,EAA5D;AACA,WAAO,YAAY,CAAC,OAAb,CAAqB,KAAK,CAAC,KAA3B,MAAsC,CAAC,CAA9C;AACD,GAHe,CAAhB;AAKA,EAAA,KAAK,CAAC,OAAN,GAAgB,OAAhB;AACA,EAAA,KAAK,CAAC,IAAN,CAAW,cAAX,IAA6B,KAAK,CAAC,OAAnC,CAzBsB,CA2BtB;;AACA,EAAA,KAAK,CAAC,IAAN,CAAW,OAAX,GAAqB,CAAC,IAAG;AACvB,QAAI,KAAK,CAAC,QAAV,EAAoB;AAClB,MAAA,CAAC,CAAC,cAAF;AACA,MAAA,CAAC,CAAC,eAAF;AACA;AACD;;AAED,IAAA,WAAW,KAAA,IAAX,IAAA,WAAW,KAAA,KAAA,CAAX,GAAW,KAAA,CAAX,GAAA,WAAW,CAAG,CAAH,EAAM,KAAK,CAAC,IAAZ,EAAkB,KAAK,CAAC,KAAxB,EAA+B,KAAK,CAAC,OAArC,CAAX;AACA,IAAA,eAAe,KAAA,IAAf,IAAA,eAAe,KAAA,KAAA,CAAf,GAAe,KAAA,CAAf,GAAA,eAAe,CAAG,CAAH,CAAf;AACD,GATD;;AAWA,SAAO,KAAP;AACD,CA3CM;;AAAM,OAAA,CAAA,yBAAA,GAAyB,yBAAzB","sourcesContent":["import * as React from 'react';\nimport { resolveShorthand } from '@fluentui/react-utilities';\nimport { Checkmark16Filled } from '@fluentui/react-icons';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useMenuItem_unstable } from '../MenuItem/useMenuItem';\nimport type { MenuItemRadioProps, MenuItemRadioState } from './MenuItemRadio.types';\n\n/**\n * Given user props, returns state and render function for a MenuItemRadio.\n */\nexport const useMenuItemRadio_unstable = (\n props: MenuItemRadioProps,\n ref: React.Ref<HTMLElement>,\n): MenuItemRadioState => {\n const radioProps = {\n role: 'menuitemradio',\n };\n\n const state = useMenuItem_unstable(\n {\n ...radioProps,\n ...props,\n checkmark: resolveShorthand(props.checkmark, {\n defaultProps: { children: <Checkmark16Filled /> },\n required: true,\n }),\n },\n ref,\n ) as MenuItemRadioState;\n\n const selectRadio = useMenuListContext_unstable(context => context.selectRadio);\n const { onClick: onClickOriginal } = state.root;\n const checked = useMenuListContext_unstable(context => {\n const checkedItems = context.checkedValues?.[state.name] || [];\n return checkedItems.indexOf(state.value) !== -1;\n });\n\n state.checked = checked;\n state.root['aria-checked'] = state.checked;\n\n // MenuItem state already transforms keyDown to click events\n state.root.onClick = e => {\n if (state.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n selectRadio?.(e, state.name, state.value, state.checked);\n onClickOriginal?.(e);\n };\n\n return state;\n};\n"],"sourceRoot":"../src/"}
@@ -0,0 +1,3 @@
1
+ import type { MenuItemRadioState } from './MenuItemRadio.types';
2
+ export declare const menuItemRadioClassName = "fui-MenuItemRadio";
3
+ export declare const useMenuItemRadioStyles_unstable: (state: MenuItemRadioState) => void;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useMenuItemRadioStyles_unstable = exports.menuItemRadioClassName = void 0;
7
+
8
+ const react_1 = /*#__PURE__*/require("@griffel/react");
9
+
10
+ const index_1 = /*#__PURE__*/require("../../selectable/index");
11
+
12
+ const useMenuItemStyles_1 = /*#__PURE__*/require("../MenuItem/useMenuItemStyles");
13
+
14
+ exports.menuItemRadioClassName = 'fui-MenuItemRadio';
15
+
16
+ const useMenuItemRadioStyles_unstable = state => {
17
+ state.root.className = react_1.mergeClasses(exports.menuItemRadioClassName, state.root.className);
18
+ useMenuItemStyles_1.useMenuItemStyles_unstable(state);
19
+ index_1.useCheckmarkStyles_unstable(state);
20
+ };
21
+
22
+ exports.useMenuItemRadioStyles_unstable = useMenuItemRadioStyles_unstable;
23
+ //# sourceMappingURL=useMenuItemRadioStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/MenuItemRadio/useMenuItemRadioStyles.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,OAAA,gBAAA,OAAA,CAAA,gBAAA,CAAA;;AACA,MAAA,OAAA,gBAAA,OAAA,CAAA,wBAAA,CAAA;;AACA,MAAA,mBAAA,gBAAA,OAAA,CAAA,+BAAA,CAAA;;AAGa,OAAA,CAAA,sBAAA,GAAyB,mBAAzB;;AAEN,MAAM,+BAA+B,GAAI,KAAD,IAA8B;AAC3E,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,OAAA,CAAA,YAAA,CAAa,OAAA,CAAA,sBAAb,EAAqC,KAAK,CAAC,IAAN,CAAW,SAAhD,CAAvB;AAEA,EAAA,mBAAA,CAAA,0BAAA,CAA2B,KAA3B;AACA,EAAA,OAAA,CAAA,2BAAA,CAA4B,KAA5B;AACD,CALM;;AAAM,OAAA,CAAA,+BAAA,GAA+B,+BAA/B","sourcesContent":["import { mergeClasses } from '@griffel/react';\nimport { useCheckmarkStyles_unstable } from '../../selectable/index';\nimport { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles';\nimport type { MenuItemRadioState } from './MenuItemRadio.types';\n\nexport const menuItemRadioClassName = 'fui-MenuItemRadio';\n\nexport const useMenuItemRadioStyles_unstable = (state: MenuItemRadioState) => {\n state.root.className = mergeClasses(menuItemRadioClassName, state.root.className);\n\n useMenuItemStyles_unstable(state);\n useCheckmarkStyles_unstable(state);\n};\n"],"sourceRoot":"../src/"}
@@ -0,0 +1,6 @@
1
+ import type { MenuListProps } from './MenuList.types';
2
+ import type { ForwardRefComponent } from '@fluentui/react-utilities';
3
+ /**
4
+ * Define a styled MenuList, using the `useMenuList_unstable` hook.
5
+ */
6
+ export declare const MenuList: ForwardRefComponent<MenuListProps>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MenuList = void 0;
7
+
8
+ const React = /*#__PURE__*/require("react");
9
+
10
+ const useMenuList_1 = /*#__PURE__*/require("./useMenuList");
11
+
12
+ const renderMenuList_1 = /*#__PURE__*/require("./renderMenuList");
13
+
14
+ const useMenuListContextValues_1 = /*#__PURE__*/require("./useMenuListContextValues");
15
+
16
+ const useMenuListStyles_1 = /*#__PURE__*/require("./useMenuListStyles");
17
+ /**
18
+ * Define a styled MenuList, using the `useMenuList_unstable` hook.
19
+ */
20
+
21
+
22
+ exports.MenuList = /*#__PURE__*/React.forwardRef((props, ref) => {
23
+ const state = useMenuList_1.useMenuList_unstable(props, ref);
24
+ const contextValues = useMenuListContextValues_1.useMenuListContextValues_unstable(state);
25
+ useMenuListStyles_1.useMenuListStyles_unstable(state);
26
+ return renderMenuList_1.renderMenuList_unstable(state, contextValues);
27
+ });
28
+ exports.MenuList.displayName = 'MenuList';
29
+ //# sourceMappingURL=MenuList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/MenuList/MenuList.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,aAAA,gBAAA,OAAA,CAAA,eAAA,CAAA;;AACA,MAAA,gBAAA,gBAAA,OAAA,CAAA,kBAAA,CAAA;;AACA,MAAA,0BAAA,gBAAA,OAAA,CAAA,4BAAA,CAAA;;AACA,MAAA,mBAAA,gBAAA,OAAA,CAAA,qBAAA,CAAA;AAIA;;AAEG;;;AACU,OAAA,CAAA,QAAA,gBAA+C,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;AAC1F,QAAM,KAAK,GAAG,aAAA,CAAA,oBAAA,CAAqB,KAArB,EAA4B,GAA5B,CAAd;AACA,QAAM,aAAa,GAAG,0BAAA,CAAA,iCAAA,CAAkC,KAAlC,CAAtB;AACA,EAAA,mBAAA,CAAA,0BAAA,CAA2B,KAA3B;AAEA,SAAO,gBAAA,CAAA,uBAAA,CAAwB,KAAxB,EAA+B,aAA/B,CAAP;AACD,CAN2D,CAA/C;AAQb,OAAA,CAAA,QAAA,CAAS,WAAT,GAAuB,UAAvB","sourcesContent":["import * as React from 'react';\nimport { useMenuList_unstable } from './useMenuList';\nimport { renderMenuList_unstable } from './renderMenuList';\nimport { useMenuListContextValues_unstable } from './useMenuListContextValues';\nimport { useMenuListStyles_unstable } from './useMenuListStyles';\nimport type { MenuListProps } from './MenuList.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n\n/**\n * Define a styled MenuList, using the `useMenuList_unstable` hook.\n */\nexport const MenuList: ForwardRefComponent<MenuListProps> = React.forwardRef((props, ref) => {\n const state = useMenuList_unstable(props, ref);\n const contextValues = useMenuListContextValues_unstable(state);\n useMenuListStyles_unstable(state);\n\n return renderMenuList_unstable(state, contextValues);\n});\n\nMenuList.displayName = 'MenuList';\n"],"sourceRoot":"../src/"}
@@ -0,0 +1,55 @@
1
+ import * as React from 'react';
2
+ import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';
3
+ import type { MenuListContextValue } from '../../contexts/menuListContext';
4
+ import type { SelectableHandler } from '../../selectable/index';
5
+ export declare type MenuCheckedValueChangeEvent = React.MouseEvent | React.KeyboardEvent;
6
+ export declare type MenuCheckedValueChangeData = {
7
+ /** The name of the value */
8
+ name: string;
9
+ /** The items for this value that are checked */
10
+ checkedItems: string[];
11
+ };
12
+ export declare type MenuListCommons = {
13
+ /**
14
+ * Callback when checked items change for value with a name
15
+ *
16
+ * @param event - React's original SyntheticEvent
17
+ * @param data - A data object with relevant information
18
+ */
19
+ onCheckedValueChange?: (e: MenuCheckedValueChangeEvent, data: MenuCheckedValueChangeData) => void;
20
+ /**
21
+ * Map of all checked values
22
+ */
23
+ checkedValues: Record<string, string[]>;
24
+ /**
25
+ * Default values to be checked on mount
26
+ */
27
+ defaultCheckedValues?: Record<string, string[]>;
28
+ /**
29
+ * States that menu items can contain icons and reserve slots for item alignment
30
+ */
31
+ hasIcons?: boolean;
32
+ /**
33
+ * States that menu items can contain selectable items and reserve slots for item alignment
34
+ */
35
+ hasCheckmarks?: boolean;
36
+ };
37
+ export declare type MenuListSlots = {
38
+ root: Slot<'div'>;
39
+ };
40
+ export declare type MenuListProps = ComponentProps<MenuListSlots> & Partial<MenuListCommons>;
41
+ export declare type MenuListState = ComponentState<MenuListSlots> & MenuListCommons & {
42
+ /**
43
+ * Callback to set focus on the next menu item by first character
44
+ */
45
+ setFocusByFirstCharacter: NonNullable<MenuListContextValue['setFocusByFirstCharacter']>;
46
+ toggleCheckbox: SelectableHandler;
47
+ /**
48
+ * Selects a radio item, will de-select the currently selected ratio item
49
+ */
50
+ selectRadio: SelectableHandler;
51
+ };
52
+ export declare type MenuListContextValues = {
53
+ menuList: MenuListContextValue;
54
+ };
55
+ export declare type UninitializedMenuListState = Omit<MenuListState, 'setFocusByFirstCharacter' | 'toggleCheckbox' | 'selectRadio' | 'checkedValues'> & Partial<Pick<MenuListState, 'checkedValues'>>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=MenuList.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"../src/"}
@@ -0,0 +1,6 @@
1
+ export * from './MenuList';
2
+ export type { MenuCheckedValueChangeData, MenuCheckedValueChangeEvent, MenuListContextValues, MenuListProps, MenuListSlots, MenuListState, UninitializedMenuListState, } from './MenuList.types';
3
+ export * from './renderMenuList';
4
+ export * from './useMenuList';
5
+ export * from './useMenuListStyles';
6
+ export * from './useMenuListContextValues';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ const tslib_1 = /*#__PURE__*/require("tslib");
8
+
9
+ tslib_1.__exportStar(require("./MenuList"), exports);
10
+
11
+ tslib_1.__exportStar(require("./renderMenuList"), exports);
12
+
13
+ tslib_1.__exportStar(require("./useMenuList"), exports);
14
+
15
+ tslib_1.__exportStar(require("./useMenuListStyles"), exports);
16
+
17
+ tslib_1.__exportStar(require("./useMenuListContextValues"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/MenuList/index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,YAAA,CAAA,EAAA,OAAA;;AAWA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,kBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,eAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,qBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,4BAAA,CAAA,EAAA,OAAA","sourcesContent":["export * from './MenuList';\n// Explicit exports to omit MenuListCommons\nexport type {\n MenuCheckedValueChangeData,\n MenuCheckedValueChangeEvent,\n MenuListContextValues,\n MenuListProps,\n MenuListSlots,\n MenuListState,\n UninitializedMenuListState,\n} from './MenuList.types';\nexport * from './renderMenuList';\nexport * from './useMenuList';\nexport * from './useMenuListStyles';\nexport * from './useMenuListContextValues';\n"],"sourceRoot":"../src/"}
@@ -0,0 +1,5 @@
1
+ import { MenuListContextValues, MenuListState } from './MenuList.types';
2
+ /**
3
+ * Function that renders the final JSX of the component
4
+ */
5
+ export declare const renderMenuList_unstable: (state: MenuListState, contextValues: MenuListContextValues) => JSX.Element;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.renderMenuList_unstable = void 0;
7
+
8
+ const React = /*#__PURE__*/require("react");
9
+
10
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
11
+
12
+ const menuListContext_1 = /*#__PURE__*/require("../../contexts/menuListContext");
13
+ /**
14
+ * Function that renders the final JSX of the component
15
+ */
16
+
17
+
18
+ const renderMenuList_unstable = (state, contextValues) => {
19
+ const {
20
+ slots,
21
+ slotProps
22
+ } = react_utilities_1.getSlots(state);
23
+ return React.createElement(menuListContext_1.MenuListProvider, {
24
+ value: contextValues.menuList
25
+ }, React.createElement(slots.root, { ...slotProps.root
26
+ }));
27
+ };
28
+
29
+ exports.renderMenuList_unstable = renderMenuList_unstable;
30
+ //# sourceMappingURL=renderMenuList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/MenuList/renderMenuList.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AAEA,MAAA,iBAAA,gBAAA,OAAA,CAAA,gCAAA,CAAA;AAEA;;AAEG;;;AACI,MAAM,uBAAuB,GAAG,CAAC,KAAD,EAAuB,aAAvB,KAA+D;AACpG,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,iBAAA,CAAA,QAAA,CAAwB,KAAxB,CAA7B;AAEA,SACE,KAAA,CAAA,aAAA,CAAC,iBAAA,CAAA,gBAAD,EAAiB;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAjB,EACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,CADF,CADF;AAKD,CARM;;AAAM,OAAA,CAAA,uBAAA,GAAuB,uBAAvB","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { MenuListContextValues, MenuListSlots, MenuListState } from './MenuList.types';\nimport { MenuListProvider } from '../../contexts/menuListContext';\n\n/**\n * Function that renders the final JSX of the component\n */\nexport const renderMenuList_unstable = (state: MenuListState, contextValues: MenuListContextValues) => {\n const { slots, slotProps } = getSlots<MenuListSlots>(state);\n\n return (\n <MenuListProvider value={contextValues.menuList}>\n <slots.root {...slotProps.root} />\n </MenuListProvider>\n );\n};\n"],"sourceRoot":"../src/"}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import type { MenuListProps, MenuListState } from './MenuList.types';
3
+ /**
4
+ * Returns the props and state required to render the component
5
+ */
6
+ export declare const useMenuList_unstable: (props: MenuListProps, ref: React.Ref<HTMLElement>) => MenuListState;
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useMenuList_unstable = void 0;
7
+
8
+ const React = /*#__PURE__*/require("react");
9
+
10
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
11
+
12
+ const react_tabster_1 = /*#__PURE__*/require("@fluentui/react-tabster");
13
+
14
+ const react_context_selector_1 = /*#__PURE__*/require("@fluentui/react-context-selector");
15
+
16
+ const menuContext_1 = /*#__PURE__*/require("../../contexts/menuContext");
17
+
18
+ const menuContext_2 = /*#__PURE__*/require("../../contexts/menuContext");
19
+ /**
20
+ * Returns the props and state required to render the component
21
+ */
22
+
23
+
24
+ const useMenuList_unstable = (props, ref) => {
25
+ const focusAttributes = react_tabster_1.useArrowNavigationGroup({
26
+ circular: true
27
+ });
28
+ const {
29
+ findAllFocusable
30
+ } = react_tabster_1.useFocusFinders();
31
+ const menuContext = useMenuContextSelectors();
32
+ const hasMenuContext = react_context_selector_1.useHasParentContext(menuContext_2.MenuContext);
33
+
34
+ if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {
35
+ // TODO throw warnings in development safely
36
+ // eslint-disable-next-line no-console
37
+ console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');
38
+ }
39
+
40
+ const innerRef = React.useRef(null);
41
+ const initialState = {
42
+ components: {
43
+ root: 'div'
44
+ },
45
+ root: react_utilities_1.getNativeElementProps('div', {
46
+ ref: react_utilities_1.useMergedRefs(ref, innerRef),
47
+ role: 'menu',
48
+ 'aria-labelledby': menuContext.triggerId,
49
+ ...focusAttributes,
50
+ ...props
51
+ }),
52
+ hasIcons: menuContext.hasIcons,
53
+ hasCheckmarks: menuContext.hasCheckmarks,
54
+ ...(hasMenuContext && menuContext),
55
+ ...props
56
+ };
57
+ const setFocusByFirstCharacter = React.useCallback((e, itemEl) => {
58
+ // TODO use some kind of children registration to reduce dependency on DOM roles
59
+ const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];
60
+
61
+ if (!innerRef.current) {
62
+ return;
63
+ }
64
+
65
+ const menuItems = findAllFocusable(innerRef.current, el => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);
66
+ let startIndex = menuItems.indexOf(itemEl) + 1;
67
+
68
+ if (startIndex === menuItems.length) {
69
+ startIndex = 0;
70
+ }
71
+
72
+ const firstChars = menuItems.map(menuItem => {
73
+ var _a;
74
+
75
+ return (_a = menuItem.textContent) === null || _a === void 0 ? void 0 : _a.charAt(0).toLowerCase();
76
+ });
77
+ const char = e.key.toLowerCase();
78
+
79
+ const getIndexFirstChars = (start, firstChar) => {
80
+ for (let i = start; i < firstChars.length; i++) {
81
+ if (char === firstChars[i]) {
82
+ return i;
83
+ }
84
+ }
85
+
86
+ return -1;
87
+ }; // Check remaining slots in the menu
88
+
89
+
90
+ let index = getIndexFirstChars(startIndex, char); // If not found in remaining slots, check from beginning
91
+
92
+ if (index === -1) {
93
+ index = getIndexFirstChars(0, char);
94
+ } // If match was found...
95
+
96
+
97
+ if (index > -1) {
98
+ menuItems[index].focus();
99
+ }
100
+ }, [findAllFocusable]);
101
+ const [checkedValues, setCheckedValues] = react_utilities_1.useControllableState({
102
+ state: initialState.checkedValues,
103
+ defaultState: initialState.defaultCheckedValues,
104
+ initialState: {}
105
+ });
106
+ const {
107
+ onCheckedValueChange
108
+ } = initialState;
109
+ const toggleCheckbox = react_utilities_1.useEventCallback((e, name, value, checked) => {
110
+ const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];
111
+ const newCheckedItems = [...checkedItems];
112
+
113
+ if (checked) {
114
+ newCheckedItems.splice(newCheckedItems.indexOf(value), 1);
115
+ } else {
116
+ newCheckedItems.push(value);
117
+ }
118
+
119
+ onCheckedValueChange === null || onCheckedValueChange === void 0 ? void 0 : onCheckedValueChange(e, {
120
+ name,
121
+ checkedItems: newCheckedItems
122
+ });
123
+ setCheckedValues(s => ({ ...s,
124
+ [name]: newCheckedItems
125
+ }));
126
+ });
127
+ const selectRadio = react_utilities_1.useEventCallback((e, name, value) => {
128
+ const newCheckedItems = [value];
129
+ setCheckedValues(s => ({ ...s,
130
+ [name]: newCheckedItems
131
+ }));
132
+ onCheckedValueChange === null || onCheckedValueChange === void 0 ? void 0 : onCheckedValueChange(e, {
133
+ name,
134
+ checkedItems: newCheckedItems
135
+ });
136
+ });
137
+ const state = { ...initialState,
138
+ setFocusByFirstCharacter,
139
+ selectRadio,
140
+ toggleCheckbox,
141
+ checkedValues: checkedValues !== null && checkedValues !== void 0 ? checkedValues : {}
142
+ };
143
+ return state;
144
+ };
145
+
146
+ exports.useMenuList_unstable = useMenuList_unstable;
147
+ /**
148
+ * Adds some sugar to fetching multiple context selector values
149
+ */
150
+
151
+ const useMenuContextSelectors = () => {
152
+ const checkedValues = menuContext_1.useMenuContext_unstable(context => context.checkedValues);
153
+ const onCheckedValueChange = menuContext_1.useMenuContext_unstable(context => context.onCheckedValueChange);
154
+ const defaultCheckedValues = menuContext_1.useMenuContext_unstable(context => context.defaultCheckedValues);
155
+ const triggerId = menuContext_1.useMenuContext_unstable(context => context.triggerId);
156
+ const hasIcons = menuContext_1.useMenuContext_unstable(context => context.hasIcons);
157
+ const hasCheckmarks = menuContext_1.useMenuContext_unstable(context => context.hasCheckmarks);
158
+ return {
159
+ checkedValues,
160
+ onCheckedValueChange,
161
+ defaultCheckedValues,
162
+ triggerId,
163
+ hasIcons,
164
+ hasCheckmarks
165
+ };
166
+ };
167
+ /**
168
+ * Helper function to detect if props and MenuContext values are both used
169
+ */
170
+
171
+
172
+ const usingPropsAndMenuContext = (props, contextValue, hasMenuContext) => {
173
+ let isUsingPropsAndContext = false;
174
+
175
+ for (const val in contextValue) {
176
+ if (props[val]) {
177
+ isUsingPropsAndContext = true;
178
+ }
179
+ }
180
+
181
+ return hasMenuContext && isUsingPropsAndContext;
182
+ };
183
+ //# sourceMappingURL=useMenuList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/MenuList/useMenuList.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {\n useMergedRefs,\n useEventCallback,\n useControllableState,\n getNativeElementProps,\n} from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\nimport type { MenuListProps, MenuListState, UninitializedMenuListState } from './MenuList.types';\n\n/**\n * Returns the props and state required to render the component\n */\nexport const useMenuList_unstable = (props: MenuListProps, ref: React.Ref<HTMLElement>): MenuListState => {\n const focusAttributes = useArrowNavigationGroup({ circular: true });\n const { findAllFocusable } = useFocusFinders();\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n\n const innerRef = React.useRef<HTMLElement>(null);\n const initialState: UninitializedMenuListState = {\n components: {\n root: 'div',\n },\n root: getNativeElementProps('div', {\n ref: useMergedRefs(ref, innerRef),\n role: 'menu',\n 'aria-labelledby': menuContext.triggerId,\n ...focusAttributes,\n ...props,\n }),\n hasIcons: menuContext.hasIcons,\n hasCheckmarks: menuContext.hasCheckmarks,\n ...(hasMenuContext && menuContext),\n ...props,\n };\n\n const setFocusByFirstCharacter = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => {\n // TODO use some kind of children registration to reduce dependency on DOM roles\n const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];\n if (!innerRef.current) {\n return;\n }\n\n const menuItems = findAllFocusable(\n innerRef.current,\n (el: HTMLElement) => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')!) !== -1,\n );\n\n let startIndex = menuItems.indexOf(itemEl) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n\n const firstChars = menuItems.map(menuItem => menuItem.textContent?.charAt(0).toLowerCase());\n const char = e.key.toLowerCase();\n\n const getIndexFirstChars = (start: number, firstChar: string) => {\n for (let i = start; i < firstChars.length; i++) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n\n // Check remaining slots in the menu\n let index = getIndexFirstChars(startIndex, char);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = getIndexFirstChars(0, char);\n }\n\n // If match was found...\n if (index > -1) {\n menuItems[index].focus();\n }\n },\n [findAllFocusable],\n );\n\n const [checkedValues, setCheckedValues] = useControllableState({\n state: initialState.checkedValues,\n defaultState: initialState.defaultCheckedValues,\n initialState: {},\n });\n\n const { onCheckedValueChange } = initialState;\n const toggleCheckbox = useEventCallback(\n (e: React.MouseEvent | React.KeyboardEvent, name: string, value: string, checked: boolean) => {\n const checkedItems = checkedValues?.[name] || [];\n const newCheckedItems = [...checkedItems];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n\n onCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n },\n );\n\n const selectRadio = useEventCallback((e: React.MouseEvent | React.KeyboardEvent, name: string, value: string) => {\n const newCheckedItems = [value];\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n onCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n });\n\n const state = {\n ...initialState,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox,\n checkedValues: checkedValues ?? {},\n };\n\n return state;\n};\n\n/**\n * Adds some sugar to fetching multiple context selector values\n */\nconst useMenuContextSelectors = () => {\n const checkedValues = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);\n const defaultCheckedValues = useMenuContext_unstable(context => context.defaultCheckedValues);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const hasIcons = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);\n\n return {\n checkedValues,\n onCheckedValueChange,\n defaultCheckedValues,\n triggerId,\n hasIcons,\n hasCheckmarks,\n };\n};\n\n/**\n * Helper function to detect if props and MenuContext values are both used\n */\nconst usingPropsAndMenuContext = (\n props: MenuListProps,\n contextValue: ReturnType<typeof useMenuContextSelectors>,\n hasMenuContext: boolean,\n) => {\n let isUsingPropsAndContext = false;\n for (const val in contextValue) {\n if (props[val as keyof Omit<typeof contextValue, 'hasMenuContext' | 'onCheckedValueChange' | 'triggerId'>]) {\n isUsingPropsAndContext = true;\n }\n }\n\n return hasMenuContext && isUsingPropsAndContext;\n};\n"],"sourceRoot":"../src/"}
@@ -0,0 +1,2 @@
1
+ import type { MenuListContextValues, MenuListState } from './MenuList.types';
2
+ export declare function useMenuListContextValues_unstable(state: MenuListState): MenuListContextValues;