@vector-im/compound-web 8.4.0 → 9.0.0

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 (876) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +33 -0
  2. package/dist/_virtual/_rolldown/runtime.js +13 -0
  3. package/dist/components/ActivityMarker/Pill.cjs +15 -10
  4. package/dist/components/ActivityMarker/Pill.cjs.map +1 -1
  5. package/dist/components/ActivityMarker/Pill.js +13 -10
  6. package/dist/components/ActivityMarker/Pill.js.map +1 -1
  7. package/dist/components/ActivityMarker/Pill.module.cjs +5 -0
  8. package/dist/components/ActivityMarker/Pill.module.cjs.map +1 -0
  9. package/dist/components/ActivityMarker/Pill.module.js +5 -0
  10. package/dist/components/ActivityMarker/Pill.module.js.map +1 -0
  11. package/dist/components/ActivityMarker/Unread.cjs +14 -6
  12. package/dist/components/ActivityMarker/Unread.cjs.map +1 -1
  13. package/dist/components/ActivityMarker/Unread.js +12 -6
  14. package/dist/components/ActivityMarker/Unread.js.map +1 -1
  15. package/dist/components/ActivityMarker/Unread.module.cjs +5 -0
  16. package/dist/components/ActivityMarker/Unread.module.cjs.map +1 -0
  17. package/dist/components/ActivityMarker/Unread.module.js +5 -0
  18. package/dist/components/ActivityMarker/Unread.module.js.map +1 -0
  19. package/dist/components/ActivityMarker/UnreadCounter.cjs +18 -8
  20. package/dist/components/ActivityMarker/UnreadCounter.cjs.map +1 -1
  21. package/dist/components/ActivityMarker/UnreadCounter.js +16 -8
  22. package/dist/components/ActivityMarker/UnreadCounter.js.map +1 -1
  23. package/dist/components/ActivityMarker/UnreadCounter.module.cjs +6 -0
  24. package/dist/components/ActivityMarker/UnreadCounter.module.cjs.map +1 -0
  25. package/dist/components/ActivityMarker/UnreadCounter.module.js +6 -0
  26. package/dist/components/ActivityMarker/UnreadCounter.module.js.map +1 -0
  27. package/dist/components/Alert/Alert.cjs +72 -61
  28. package/dist/components/Alert/Alert.cjs.map +1 -1
  29. package/dist/components/Alert/Alert.js +60 -56
  30. package/dist/components/Alert/Alert.js.map +1 -1
  31. package/dist/components/Alert/Alert.module.cjs +18 -0
  32. package/dist/components/Alert/Alert.module.cjs.map +1 -0
  33. package/dist/components/Alert/Alert.module.js +18 -0
  34. package/dist/components/Alert/Alert.module.js.map +1 -0
  35. package/dist/components/Avatar/Avatar.cjs +48 -55
  36. package/dist/components/Avatar/Avatar.cjs.map +1 -1
  37. package/dist/components/Avatar/Avatar.js +44 -54
  38. package/dist/components/Avatar/Avatar.js.map +1 -1
  39. package/dist/components/Avatar/Avatar.module.cjs +11 -0
  40. package/dist/components/Avatar/Avatar.module.cjs.map +1 -0
  41. package/dist/components/Avatar/Avatar.module.js +11 -0
  42. package/dist/components/Avatar/Avatar.module.js.map +1 -0
  43. package/dist/components/Avatar/AvatarStack.cjs +50 -27
  44. package/dist/components/Avatar/AvatarStack.cjs.map +1 -1
  45. package/dist/components/Avatar/AvatarStack.js +46 -26
  46. package/dist/components/Avatar/AvatarStack.js.map +1 -1
  47. package/dist/components/Avatar/avatar-clip.mask.cjs +6 -0
  48. package/dist/components/Avatar/avatar-clip.mask.cjs.map +1 -0
  49. package/dist/components/Avatar/avatar-clip.mask.js +6 -0
  50. package/dist/components/Avatar/avatar-clip.mask.js.map +1 -0
  51. package/dist/components/Avatar/useIdColorHash.cjs +13 -9
  52. package/dist/components/Avatar/useIdColorHash.cjs.map +1 -1
  53. package/dist/components/Avatar/useIdColorHash.js +14 -10
  54. package/dist/components/Avatar/useIdColorHash.js.map +1 -1
  55. package/dist/components/Badge/Badge.cjs +24 -24
  56. package/dist/components/Badge/Badge.cjs.map +1 -1
  57. package/dist/components/Badge/Badge.js +21 -24
  58. package/dist/components/Badge/Badge.js.map +1 -1
  59. package/dist/components/Badge/Badge.module.cjs +5 -0
  60. package/dist/components/Badge/Badge.module.cjs.map +1 -0
  61. package/dist/components/Badge/Badge.module.js +5 -0
  62. package/dist/components/Badge/Badge.module.js.map +1 -0
  63. package/dist/components/Breadcrumb/Breadcrumb.cjs +56 -54
  64. package/dist/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  65. package/dist/components/Breadcrumb/Breadcrumb.js +51 -53
  66. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
  67. package/dist/components/Breadcrumb/Breadcrumb.module.cjs +9 -0
  68. package/dist/components/Breadcrumb/Breadcrumb.module.cjs.map +1 -0
  69. package/dist/components/Breadcrumb/Breadcrumb.module.js +9 -0
  70. package/dist/components/Breadcrumb/Breadcrumb.module.js.map +1 -0
  71. package/dist/components/Button/Button.cjs +40 -52
  72. package/dist/components/Button/Button.cjs.map +1 -1
  73. package/dist/components/Button/Button.js +36 -51
  74. package/dist/components/Button/Button.js.map +1 -1
  75. package/dist/components/Button/Button.module.cjs +13 -0
  76. package/dist/components/Button/Button.module.cjs.map +1 -0
  77. package/dist/components/Button/Button.module.js +13 -0
  78. package/dist/components/Button/Button.module.js.map +1 -0
  79. package/dist/components/Button/IconButton/IconButton.cjs +43 -52
  80. package/dist/components/Button/IconButton/IconButton.cjs.map +1 -1
  81. package/dist/components/Button/IconButton/IconButton.js +38 -50
  82. package/dist/components/Button/IconButton/IconButton.js.map +1 -1
  83. package/dist/components/Button/IconButton/IconButton.module.cjs +11 -0
  84. package/dist/components/Button/IconButton/IconButton.module.cjs.map +1 -0
  85. package/dist/components/Button/IconButton/IconButton.module.js +11 -0
  86. package/dist/components/Button/IconButton/IconButton.module.js.map +1 -0
  87. package/dist/components/Button/UnstyledButton.cjs +36 -45
  88. package/dist/components/Button/UnstyledButton.cjs.map +1 -1
  89. package/dist/components/Button/UnstyledButton.js +34 -45
  90. package/dist/components/Button/UnstyledButton.js.map +1 -1
  91. package/dist/components/ChatFilter/ChatFilter.cjs +23 -20
  92. package/dist/components/ChatFilter/ChatFilter.cjs.map +1 -1
  93. package/dist/components/ChatFilter/ChatFilter.js +21 -20
  94. package/dist/components/ChatFilter/ChatFilter.js.map +1 -1
  95. package/dist/components/ChatFilter/ChatFilter.module.cjs +6 -0
  96. package/dist/components/ChatFilter/ChatFilter.module.cjs.map +1 -0
  97. package/dist/components/ChatFilter/ChatFilter.module.js +6 -0
  98. package/dist/components/ChatFilter/ChatFilter.module.js.map +1 -0
  99. package/dist/components/Dropdown/Dropdown.cjs +231 -249
  100. package/dist/components/Dropdown/Dropdown.cjs.map +1 -1
  101. package/dist/components/Dropdown/Dropdown.js +225 -249
  102. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  103. package/dist/components/Dropdown/Dropdown.module.cjs +13 -0
  104. package/dist/components/Dropdown/Dropdown.module.cjs.map +1 -0
  105. package/dist/components/Dropdown/Dropdown.module.js +13 -0
  106. package/dist/components/Dropdown/Dropdown.module.js.map +1 -0
  107. package/dist/components/Form/Controls/Action/Action.cjs +51 -31
  108. package/dist/components/Form/Controls/Action/Action.cjs.map +1 -1
  109. package/dist/components/Form/Controls/Action/Action.js +46 -30
  110. package/dist/components/Form/Controls/Action/Action.js.map +1 -1
  111. package/dist/components/Form/Controls/Action/Action.module.cjs +9 -0
  112. package/dist/components/Form/Controls/Action/Action.module.cjs.map +1 -0
  113. package/dist/components/Form/Controls/Action/Action.module.js +9 -0
  114. package/dist/components/Form/Controls/Action/Action.module.js.map +1 -0
  115. package/dist/components/Form/Controls/Checkbox/Checkbox.cjs +42 -20
  116. package/dist/components/Form/Controls/Checkbox/Checkbox.cjs.map +1 -1
  117. package/dist/components/Form/Controls/Checkbox/Checkbox.js +36 -19
  118. package/dist/components/Form/Controls/Checkbox/Checkbox.js.map +1 -1
  119. package/dist/components/Form/Controls/Checkbox/Checkbox.module.cjs +9 -0
  120. package/dist/components/Form/Controls/Checkbox/Checkbox.module.cjs.map +1 -0
  121. package/dist/components/Form/Controls/Checkbox/Checkbox.module.js +9 -0
  122. package/dist/components/Form/Controls/Checkbox/Checkbox.module.js.map +1 -0
  123. package/dist/components/Form/Controls/EditInPlace/EditInPlace.cjs +171 -203
  124. package/dist/components/Form/Controls/EditInPlace/EditInPlace.cjs.map +1 -1
  125. package/dist/components/Form/Controls/EditInPlace/EditInPlace.js +166 -202
  126. package/dist/components/Form/Controls/EditInPlace/EditInPlace.js.map +1 -1
  127. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.cjs +8 -0
  128. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.cjs.map +1 -0
  129. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.js +8 -0
  130. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.js.map +1 -0
  131. package/dist/components/Form/Controls/MFA/MFA.cjs +60 -65
  132. package/dist/components/Form/Controls/MFA/MFA.cjs.map +1 -1
  133. package/dist/components/Form/Controls/MFA/MFA.js +56 -65
  134. package/dist/components/Form/Controls/MFA/MFA.js.map +1 -1
  135. package/dist/components/Form/Controls/MFA/MFA.module.cjs +9 -0
  136. package/dist/components/Form/Controls/MFA/MFA.module.cjs.map +1 -0
  137. package/dist/components/Form/Controls/MFA/MFA.module.js +9 -0
  138. package/dist/components/Form/Controls/MFA/MFA.module.js.map +1 -0
  139. package/dist/components/Form/Controls/Password/Password.cjs +52 -37
  140. package/dist/components/Form/Controls/Password/Password.cjs.map +1 -1
  141. package/dist/components/Form/Controls/Password/Password.js +45 -35
  142. package/dist/components/Form/Controls/Password/Password.js.map +1 -1
  143. package/dist/components/Form/Controls/Radio/Radio.cjs +33 -16
  144. package/dist/components/Form/Controls/Radio/Radio.cjs.map +1 -1
  145. package/dist/components/Form/Controls/Radio/Radio.js +28 -15
  146. package/dist/components/Form/Controls/Radio/Radio.js.map +1 -1
  147. package/dist/components/Form/Controls/Radio/Radio.module.cjs +9 -0
  148. package/dist/components/Form/Controls/Radio/Radio.module.cjs.map +1 -0
  149. package/dist/components/Form/Controls/Radio/Radio.module.js +9 -0
  150. package/dist/components/Form/Controls/Radio/Radio.module.js.map +1 -0
  151. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.cjs +47 -29
  152. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.cjs.map +1 -1
  153. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.js +43 -28
  154. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.js.map +1 -1
  155. package/dist/components/Form/Controls/Text/Text.cjs +34 -18
  156. package/dist/components/Form/Controls/Text/Text.cjs.map +1 -1
  157. package/dist/components/Form/Controls/Text/Text.js +30 -18
  158. package/dist/components/Form/Controls/Text/Text.js.map +1 -1
  159. package/dist/components/Form/Controls/Text/Text.module.cjs +8 -0
  160. package/dist/components/Form/Controls/Text/Text.module.cjs.map +1 -0
  161. package/dist/components/Form/Controls/Text/Text.module.js +8 -0
  162. package/dist/components/Form/Controls/Text/Text.module.js.map +1 -0
  163. package/dist/components/Form/Controls/Toggle/Toggle.cjs +37 -25
  164. package/dist/components/Form/Controls/Toggle/Toggle.cjs.map +1 -1
  165. package/dist/components/Form/Controls/Toggle/Toggle.js +32 -24
  166. package/dist/components/Form/Controls/Toggle/Toggle.js.map +1 -1
  167. package/dist/components/Form/Controls/Toggle/Toggle.module.cjs +9 -0
  168. package/dist/components/Form/Controls/Toggle/Toggle.module.cjs.map +1 -0
  169. package/dist/components/Form/Controls/Toggle/Toggle.module.js +9 -0
  170. package/dist/components/Form/Controls/Toggle/Toggle.module.js.map +1 -0
  171. package/dist/components/Form/Field.cjs +25 -14
  172. package/dist/components/Form/Field.cjs.map +1 -1
  173. package/dist/components/Form/Field.js +22 -14
  174. package/dist/components/Form/Field.js.map +1 -1
  175. package/dist/components/Form/InlineField.cjs +27 -17
  176. package/dist/components/Form/InlineField.cjs.map +1 -1
  177. package/dist/components/Form/InlineField.js +23 -16
  178. package/dist/components/Form/InlineField.js.map +1 -1
  179. package/dist/components/Form/Label.cjs +24 -11
  180. package/dist/components/Form/Label.cjs.map +1 -1
  181. package/dist/components/Form/Label.js +21 -11
  182. package/dist/components/Form/Label.js.map +1 -1
  183. package/dist/components/Form/Message.cjs +61 -40
  184. package/dist/components/Form/Message.cjs.map +1 -1
  185. package/dist/components/Form/Message.js +54 -41
  186. package/dist/components/Form/Message.js.map +1 -1
  187. package/dist/components/Form/Root.cjs +25 -14
  188. package/dist/components/Form/Root.cjs.map +1 -1
  189. package/dist/components/Form/Root.js +22 -14
  190. package/dist/components/Form/Root.js.map +1 -1
  191. package/dist/components/Form/Submit.cjs +23 -12
  192. package/dist/components/Form/Submit.cjs.map +1 -1
  193. package/dist/components/Form/Submit.js +21 -12
  194. package/dist/components/Form/Submit.js.map +1 -1
  195. package/dist/components/Form/form.module.cjs +21 -0
  196. package/dist/components/Form/form.module.cjs.map +1 -0
  197. package/dist/components/Form/form.module.js +21 -0
  198. package/dist/components/Form/form.module.js.map +1 -0
  199. package/dist/components/Form/index.cjs +55 -51
  200. package/dist/components/Form/index.cjs.map +1 -1
  201. package/dist/components/Form/index.js +48 -43
  202. package/dist/components/Form/index.js.map +1 -1
  203. package/dist/components/Glass/Glass.cjs +20 -10
  204. package/dist/components/Glass/Glass.cjs.map +1 -1
  205. package/dist/components/Glass/Glass.js +17 -10
  206. package/dist/components/Glass/Glass.js.map +1 -1
  207. package/dist/components/Glass/Glass.module.cjs +5 -0
  208. package/dist/components/Glass/Glass.module.cjs.map +1 -0
  209. package/dist/components/Glass/Glass.module.js +5 -0
  210. package/dist/components/Glass/Glass.module.js.map +1 -0
  211. package/dist/components/Icon/BigIcon/BigIcon.cjs +18 -25
  212. package/dist/components/Icon/BigIcon/BigIcon.cjs.map +1 -1
  213. package/dist/components/Icon/BigIcon/BigIcon.js +15 -25
  214. package/dist/components/Icon/BigIcon/BigIcon.js.map +1 -1
  215. package/dist/components/Icon/BigIcon/BigIcon.module.cjs +6 -0
  216. package/dist/components/Icon/BigIcon/BigIcon.module.cjs.map +1 -0
  217. package/dist/components/Icon/BigIcon/BigIcon.module.js +6 -0
  218. package/dist/components/Icon/BigIcon/BigIcon.module.js.map +1 -0
  219. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.cjs +22 -22
  220. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.cjs.map +1 -1
  221. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.js +19 -22
  222. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.js.map +1 -1
  223. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.cjs +6 -0
  224. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.cjs.map +1 -0
  225. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.js +6 -0
  226. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.js.map +1 -0
  227. package/dist/components/InlineSpinner/InlineSpinner.cjs +24 -21
  228. package/dist/components/InlineSpinner/InlineSpinner.cjs.map +1 -1
  229. package/dist/components/InlineSpinner/InlineSpinner.js +19 -20
  230. package/dist/components/InlineSpinner/InlineSpinner.js.map +1 -1
  231. package/dist/components/InlineSpinner/InlineSpinner.module.cjs +8 -0
  232. package/dist/components/InlineSpinner/InlineSpinner.module.cjs.map +1 -0
  233. package/dist/components/InlineSpinner/InlineSpinner.module.js +8 -0
  234. package/dist/components/InlineSpinner/InlineSpinner.module.js.map +1 -0
  235. package/dist/components/Link/Link.cjs +25 -23
  236. package/dist/components/Link/Link.cjs.map +1 -1
  237. package/dist/components/Link/Link.js +22 -23
  238. package/dist/components/Link/Link.js.map +1 -1
  239. package/dist/components/Link/Link.module.cjs +5 -0
  240. package/dist/components/Link/Link.module.cjs.map +1 -0
  241. package/dist/components/Link/Link.module.js +5 -0
  242. package/dist/components/Link/Link.module.js.map +1 -0
  243. package/dist/components/Menu/CheckboxMenuItem.cjs +37 -39
  244. package/dist/components/Menu/CheckboxMenuItem.cjs.map +1 -1
  245. package/dist/components/Menu/CheckboxMenuItem.js +34 -38
  246. package/dist/components/Menu/CheckboxMenuItem.js.map +1 -1
  247. package/dist/components/Menu/ContextMenu.cjs +71 -62
  248. package/dist/components/Menu/ContextMenu.cjs.map +1 -1
  249. package/dist/components/Menu/ContextMenu.js +66 -60
  250. package/dist/components/Menu/ContextMenu.js.map +1 -1
  251. package/dist/components/Menu/DrawerMenu.cjs +27 -22
  252. package/dist/components/Menu/DrawerMenu.cjs.map +1 -1
  253. package/dist/components/Menu/DrawerMenu.js +23 -21
  254. package/dist/components/Menu/DrawerMenu.js.map +1 -1
  255. package/dist/components/Menu/DrawerMenu.module.cjs +9 -0
  256. package/dist/components/Menu/DrawerMenu.module.cjs.map +1 -0
  257. package/dist/components/Menu/DrawerMenu.module.js +9 -0
  258. package/dist/components/Menu/DrawerMenu.module.js.map +1 -0
  259. package/dist/components/Menu/FloatingMenu.cjs +31 -28
  260. package/dist/components/Menu/FloatingMenu.cjs.map +1 -1
  261. package/dist/components/Menu/FloatingMenu.js +27 -27
  262. package/dist/components/Menu/FloatingMenu.js.map +1 -1
  263. package/dist/components/Menu/FloatingMenu.module.cjs +14 -0
  264. package/dist/components/Menu/FloatingMenu.module.cjs.map +1 -0
  265. package/dist/components/Menu/FloatingMenu.module.js +14 -0
  266. package/dist/components/Menu/FloatingMenu.module.js.map +1 -0
  267. package/dist/components/Menu/Menu.cjs +68 -56
  268. package/dist/components/Menu/Menu.cjs.map +1 -1
  269. package/dist/components/Menu/Menu.js +63 -54
  270. package/dist/components/Menu/Menu.js.map +1 -1
  271. package/dist/components/Menu/MenuContext.cjs +10 -5
  272. package/dist/components/Menu/MenuContext.cjs.map +1 -1
  273. package/dist/components/Menu/MenuContext.js +10 -5
  274. package/dist/components/Menu/MenuContext.js.map +1 -1
  275. package/dist/components/Menu/MenuItem.cjs +83 -95
  276. package/dist/components/Menu/MenuItem.cjs.map +1 -1
  277. package/dist/components/Menu/MenuItem.js +77 -93
  278. package/dist/components/Menu/MenuItem.js.map +1 -1
  279. package/dist/components/Menu/MenuItem.module.cjs +20 -0
  280. package/dist/components/Menu/MenuItem.module.cjs.map +1 -0
  281. package/dist/components/Menu/MenuItem.module.js +20 -0
  282. package/dist/components/Menu/MenuItem.module.js.map +1 -0
  283. package/dist/components/Menu/MenuTitle.cjs +21 -14
  284. package/dist/components/Menu/MenuTitle.cjs.map +1 -1
  285. package/dist/components/Menu/MenuTitle.js +17 -13
  286. package/dist/components/Menu/MenuTitle.js.map +1 -1
  287. package/dist/components/Menu/MenuTitle.module.cjs +6 -0
  288. package/dist/components/Menu/MenuTitle.module.cjs.map +1 -0
  289. package/dist/components/Menu/MenuTitle.module.js +6 -0
  290. package/dist/components/Menu/MenuTitle.module.js.map +1 -0
  291. package/dist/components/Menu/RadioMenuItem.cjs +35 -37
  292. package/dist/components/Menu/RadioMenuItem.cjs.map +1 -1
  293. package/dist/components/Menu/RadioMenuItem.js +32 -36
  294. package/dist/components/Menu/RadioMenuItem.js.map +1 -1
  295. package/dist/components/Menu/ToggleMenuItem.cjs +39 -41
  296. package/dist/components/Menu/ToggleMenuItem.cjs.map +1 -1
  297. package/dist/components/Menu/ToggleMenuItem.js +36 -40
  298. package/dist/components/Menu/ToggleMenuItem.js.map +1 -1
  299. package/dist/components/Nav/Nav.module.cjs +11 -0
  300. package/dist/components/Nav/Nav.module.cjs.map +1 -0
  301. package/dist/components/Nav/Nav.module.js +11 -0
  302. package/dist/components/Nav/Nav.module.js.map +1 -0
  303. package/dist/components/Nav/NavBar.cjs +47 -28
  304. package/dist/components/Nav/NavBar.cjs.map +1 -1
  305. package/dist/components/Nav/NavBar.js +44 -28
  306. package/dist/components/Nav/NavBar.js.map +1 -1
  307. package/dist/components/Nav/NavItem.cjs +70 -72
  308. package/dist/components/Nav/NavItem.cjs.map +1 -1
  309. package/dist/components/Nav/NavItem.js +68 -72
  310. package/dist/components/Nav/NavItem.js.map +1 -1
  311. package/dist/components/Progress/Progress.cjs +43 -56
  312. package/dist/components/Progress/Progress.cjs.map +1 -1
  313. package/dist/components/Progress/Progress.js +40 -56
  314. package/dist/components/Progress/Progress.js.map +1 -1
  315. package/dist/components/Progress/Progress.module.cjs +11 -0
  316. package/dist/components/Progress/Progress.module.cjs.map +1 -0
  317. package/dist/components/Progress/Progress.module.js +11 -0
  318. package/dist/components/Progress/Progress.module.js.map +1 -0
  319. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.cjs +108 -115
  320. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.cjs.map +1 -1
  321. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.js +105 -114
  322. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.js.map +1 -1
  323. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.cjs +11 -0
  324. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.cjs.map +1 -0
  325. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.js +11 -0
  326. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.js.map +1 -0
  327. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.cjs +16 -12
  328. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.cjs.map +1 -1
  329. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.js +15 -13
  330. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.js.map +1 -1
  331. package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.cjs +52 -62
  332. package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.cjs.map +1 -1
  333. package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.js +52 -63
  334. package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.js.map +1 -1
  335. package/dist/components/Search/Search.cjs +43 -36
  336. package/dist/components/Search/Search.cjs.map +1 -1
  337. package/dist/components/Search/Search.js +37 -34
  338. package/dist/components/Search/Search.js.map +1 -1
  339. package/dist/components/Search/Search.module.cjs +9 -0
  340. package/dist/components/Search/Search.module.cjs.map +1 -0
  341. package/dist/components/Search/Search.module.js +9 -0
  342. package/dist/components/Search/Search.module.js.map +1 -0
  343. package/dist/components/Separator/Separator.cjs +34 -57
  344. package/dist/components/Separator/Separator.cjs.map +1 -1
  345. package/dist/components/Separator/Separator.js +29 -39
  346. package/dist/components/Separator/Separator.js.map +1 -1
  347. package/dist/components/Separator/Separator.module.cjs +5 -0
  348. package/dist/components/Separator/Separator.module.cjs.map +1 -0
  349. package/dist/components/Separator/Separator.module.js +5 -0
  350. package/dist/components/Separator/Separator.module.js.map +1 -0
  351. package/dist/components/Toast/Toast.cjs +19 -10
  352. package/dist/components/Toast/Toast.cjs.map +1 -1
  353. package/dist/components/Toast/Toast.js +15 -9
  354. package/dist/components/Toast/Toast.js.map +1 -1
  355. package/dist/components/Toast/Toast.module.cjs +6 -0
  356. package/dist/components/Toast/Toast.module.cjs.map +1 -0
  357. package/dist/components/Toast/Toast.module.js +6 -0
  358. package/dist/components/Toast/Toast.module.js.map +1 -0
  359. package/dist/components/Tooltip/Tooltip.cjs +103 -118
  360. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  361. package/dist/components/Tooltip/Tooltip.js +99 -117
  362. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  363. package/dist/components/Tooltip/Tooltip.module.cjs +10 -0
  364. package/dist/components/Tooltip/Tooltip.module.cjs.map +1 -0
  365. package/dist/components/Tooltip/Tooltip.module.js +10 -0
  366. package/dist/components/Tooltip/Tooltip.module.js.map +1 -0
  367. package/dist/components/Tooltip/TooltipContext.cjs +16 -10
  368. package/dist/components/Tooltip/TooltipContext.cjs.map +1 -1
  369. package/dist/components/Tooltip/TooltipContext.js +15 -11
  370. package/dist/components/Tooltip/TooltipContext.js.map +1 -1
  371. package/dist/components/Tooltip/TooltipProvider.cjs +22 -7
  372. package/dist/components/Tooltip/TooltipProvider.cjs.map +1 -1
  373. package/dist/components/Tooltip/TooltipProvider.js +19 -7
  374. package/dist/components/Tooltip/TooltipProvider.js.map +1 -1
  375. package/dist/components/Tooltip/useTooltip.cjs +112 -139
  376. package/dist/components/Tooltip/useTooltip.cjs.map +1 -1
  377. package/dist/components/Tooltip/useTooltip.js +111 -139
  378. package/dist/components/Tooltip/useTooltip.js.map +1 -1
  379. package/dist/components/Typography/Body.cjs +17 -10
  380. package/dist/components/Typography/Body.cjs.map +1 -1
  381. package/dist/components/Typography/Body.js +15 -10
  382. package/dist/components/Typography/Body.js.map +1 -1
  383. package/dist/components/Typography/Heading.cjs +92 -20
  384. package/dist/components/Typography/Heading.cjs.map +1 -1
  385. package/dist/components/Typography/Heading.js +89 -25
  386. package/dist/components/Typography/Heading.js.map +1 -1
  387. package/dist/components/Typography/Text.cjs +20 -7
  388. package/dist/components/Typography/Text.cjs.map +1 -1
  389. package/dist/components/Typography/Text.js +18 -7
  390. package/dist/components/Typography/Text.js.map +1 -1
  391. package/dist/components/Typography/Typography.cjs +17 -28
  392. package/dist/components/Typography/Typography.cjs.map +1 -1
  393. package/dist/components/Typography/Typography.js +14 -28
  394. package/dist/components/Typography/Typography.js.map +1 -1
  395. package/dist/components/Typography/Typography.module.cjs +30 -0
  396. package/dist/components/Typography/Typography.module.cjs.map +1 -0
  397. package/dist/components/Typography/Typography.module.js +30 -0
  398. package/dist/components/Typography/Typography.module.js.map +1 -0
  399. package/dist/components/VisualList/VisualList.cjs +20 -12
  400. package/dist/components/VisualList/VisualList.cjs.map +1 -1
  401. package/dist/components/VisualList/VisualList.js +17 -12
  402. package/dist/components/VisualList/VisualList.js.map +1 -1
  403. package/dist/components/VisualList/VisualList.module.cjs +6 -0
  404. package/dist/components/VisualList/VisualList.module.cjs.map +1 -0
  405. package/dist/components/VisualList/VisualList.module.js +6 -0
  406. package/dist/components/VisualList/VisualList.module.js.map +1 -0
  407. package/dist/components/VisualList/VisualListItem.cjs +28 -36
  408. package/dist/components/VisualList/VisualListItem.cjs.map +1 -1
  409. package/dist/components/VisualList/VisualListItem.js +25 -36
  410. package/dist/components/VisualList/VisualListItem.js.map +1 -1
  411. package/dist/components/VisualList/VisualListItem.module.cjs +11 -0
  412. package/dist/components/VisualList/VisualListItem.module.cjs.map +1 -0
  413. package/dist/components/VisualList/VisualListItem.module.js +11 -0
  414. package/dist/components/VisualList/VisualListItem.module.js.map +1 -0
  415. package/dist/index.cjs +147 -139
  416. package/dist/index.js +36 -116
  417. package/dist/src/components/ActivityMarker/Pill.d.ts.map +1 -0
  418. package/dist/src/components/ActivityMarker/Unread.d.ts.map +1 -0
  419. package/dist/src/components/ActivityMarker/UnreadCounter.d.ts.map +1 -0
  420. package/dist/src/components/ActivityMarker/index.d.ts.map +1 -0
  421. package/dist/src/components/Alert/Alert.d.ts.map +1 -0
  422. package/dist/src/components/Avatar/Avatar.d.ts.map +1 -0
  423. package/dist/src/components/Avatar/AvatarStack.d.ts.map +1 -0
  424. package/dist/src/components/Avatar/useIdColorHash.d.ts.map +1 -0
  425. package/dist/src/components/Badge/Badge.d.ts.map +1 -0
  426. package/dist/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  427. package/dist/src/components/Breadcrumb/index.d.ts.map +1 -0
  428. package/dist/{components → src/components}/Button/Button.d.ts +2 -1
  429. package/dist/src/components/Button/Button.d.ts.map +1 -0
  430. package/dist/src/components/Button/IconButton/IconButton.d.ts.map +1 -0
  431. package/dist/src/components/Button/UnstyledButton.d.ts.map +1 -0
  432. package/dist/src/components/Button/index.d.ts.map +1 -0
  433. package/dist/src/components/ChatFilter/ChatFilter.d.ts.map +1 -0
  434. package/dist/src/components/ChatFilter/index.d.ts.map +1 -0
  435. package/dist/src/components/Dropdown/Dropdown.d.ts.map +1 -0
  436. package/dist/src/components/Dropdown/index.d.ts.map +1 -0
  437. package/dist/src/components/Form/Controls/Action/Action.d.ts.map +1 -0
  438. package/dist/src/components/Form/Controls/Action/index.d.ts.map +1 -0
  439. package/dist/src/components/Form/Controls/Checkbox/Checkbox.d.ts.map +1 -0
  440. package/dist/src/components/Form/Controls/Checkbox/index.d.ts.map +1 -0
  441. package/dist/src/components/Form/Controls/EditInPlace/EditInPlace.d.ts.map +1 -0
  442. package/dist/src/components/Form/Controls/EditInPlace/index.d.ts.map +1 -0
  443. package/dist/src/components/Form/Controls/MFA/MFA.d.ts.map +1 -0
  444. package/dist/src/components/Form/Controls/MFA/index.d.ts.map +1 -0
  445. package/dist/src/components/Form/Controls/Password/Password.d.ts.map +1 -0
  446. package/dist/src/components/Form/Controls/Password/index.d.ts.map +1 -0
  447. package/dist/src/components/Form/Controls/Radio/Radio.d.ts.map +1 -0
  448. package/dist/src/components/Form/Controls/Radio/index.d.ts.map +1 -0
  449. package/dist/src/components/Form/Controls/SettingsToggle/SettingsToggle.d.ts.map +1 -0
  450. package/dist/src/components/Form/Controls/SettingsToggle/index.d.ts.map +1 -0
  451. package/dist/src/components/Form/Controls/Text/Text.d.ts.map +1 -0
  452. package/dist/src/components/Form/Controls/Text/index.d.ts.map +1 -0
  453. package/dist/src/components/Form/Controls/Toggle/Toggle.d.ts.map +1 -0
  454. package/dist/src/components/Form/Controls/Toggle/index.d.ts.map +1 -0
  455. package/dist/src/components/Form/Controls/index.d.ts.map +1 -0
  456. package/dist/src/components/Form/Field.d.ts.map +1 -0
  457. package/dist/src/components/Form/InlineField.d.ts.map +1 -0
  458. package/dist/src/components/Form/Label.d.ts.map +1 -0
  459. package/dist/src/components/Form/Message.d.ts.map +1 -0
  460. package/dist/src/components/Form/Root.d.ts.map +1 -0
  461. package/dist/src/components/Form/Submit.d.ts.map +1 -0
  462. package/dist/src/components/Form/index.d.ts.map +1 -0
  463. package/dist/src/components/Glass/Glass.d.ts.map +1 -0
  464. package/dist/src/components/Icon/BigIcon/BigIcon.d.ts +21 -0
  465. package/dist/src/components/Icon/BigIcon/BigIcon.d.ts.map +1 -0
  466. package/dist/src/components/Icon/BigIcon/index.d.ts.map +1 -0
  467. package/dist/src/components/Icon/IndicatorIcon/IndicatorIcon.d.ts.map +1 -0
  468. package/dist/src/components/InlineSpinner/InlineSpinner.d.ts.map +1 -0
  469. package/dist/src/components/InlineSpinner/index.d.ts.map +1 -0
  470. package/dist/{components → src/components}/Link/Link.d.ts +5 -4
  471. package/dist/src/components/Link/Link.d.ts.map +1 -0
  472. package/dist/src/components/Menu/CheckboxMenuItem.d.ts.map +1 -0
  473. package/dist/src/components/Menu/ContextMenu.d.ts.map +1 -0
  474. package/dist/src/components/Menu/DrawerMenu.d.ts.map +1 -0
  475. package/dist/src/components/Menu/FloatingMenu.d.ts.map +1 -0
  476. package/dist/src/components/Menu/Menu.d.ts.map +1 -0
  477. package/dist/src/components/Menu/MenuContext.d.ts.map +1 -0
  478. package/dist/src/components/Menu/MenuItem.d.ts.map +1 -0
  479. package/dist/src/components/Menu/MenuTitle.d.ts.map +1 -0
  480. package/dist/src/components/Menu/RadioMenuItem.d.ts.map +1 -0
  481. package/dist/src/components/Menu/ToggleMenuItem.d.ts.map +1 -0
  482. package/dist/src/components/Nav/NavBar.d.ts.map +1 -0
  483. package/dist/src/components/Nav/NavItem.d.ts.map +1 -0
  484. package/dist/src/components/Nav/index.d.ts.map +1 -0
  485. package/dist/src/components/PageHeader/PageHeader.d.ts +19 -0
  486. package/dist/src/components/PageHeader/PageHeader.d.ts.map +1 -0
  487. package/dist/{components → src/components}/Progress/Progress.d.ts +2 -1
  488. package/dist/src/components/Progress/Progress.d.ts.map +1 -0
  489. package/dist/src/components/ReleaseAnnouncement/ReleaseAnnouncement.d.ts.map +1 -0
  490. package/dist/src/components/ReleaseAnnouncement/ReleaseAnnouncementContext.d.ts.map +1 -0
  491. package/dist/src/components/ReleaseAnnouncement/index.d.ts.map +1 -0
  492. package/dist/src/components/ReleaseAnnouncement/useReleaseAnnouncement.d.ts.map +1 -0
  493. package/dist/src/components/Search/Search.d.ts.map +1 -0
  494. package/dist/src/components/Separator/Separator.d.ts.map +1 -0
  495. package/dist/src/components/Toast/Toast.d.ts.map +1 -0
  496. package/dist/src/components/Tooltip/Tooltip.d.ts.map +1 -0
  497. package/dist/src/components/Tooltip/TooltipContext.d.ts.map +1 -0
  498. package/dist/src/components/Tooltip/TooltipProvider.d.ts.map +1 -0
  499. package/dist/src/components/Tooltip/useTooltip.d.ts.map +1 -0
  500. package/dist/src/components/Typography/Body.d.ts.map +1 -0
  501. package/dist/{components → src/components}/Typography/Heading.d.ts +2 -1
  502. package/dist/src/components/Typography/Heading.d.ts.map +1 -0
  503. package/dist/{components → src/components}/Typography/Text.d.ts +2 -1
  504. package/dist/src/components/Typography/Text.d.ts.map +1 -0
  505. package/dist/{components → src/components}/Typography/Typography.d.ts +2 -1
  506. package/dist/src/components/Typography/Typography.d.ts.map +1 -0
  507. package/dist/src/components/VisualList/VisualList.d.ts.map +1 -0
  508. package/dist/src/components/VisualList/VisualListItem.d.ts.map +1 -0
  509. package/dist/src/components/VisualList/index.d.ts.map +1 -0
  510. package/dist/src/index.d.ts.map +1 -0
  511. package/dist/src/setupTests.d.ts.map +1 -0
  512. package/dist/src/utils/__ComponentTemplate__/__ComponentTemplate__.d.ts.map +1 -0
  513. package/dist/src/utils/platform.d.ts.map +1 -0
  514. package/dist/src/utils/size.d.ts +5 -0
  515. package/dist/src/utils/size.d.ts.map +1 -0
  516. package/dist/src/utils/string.d.ts.map +1 -0
  517. package/dist/style.css +1609 -1601
  518. package/dist/utils/platform.cjs +12 -11
  519. package/dist/utils/platform.cjs.map +1 -1
  520. package/dist/utils/platform.js +13 -12
  521. package/dist/utils/platform.js.map +1 -1
  522. package/dist/utils/string.cjs +19 -19
  523. package/dist/utils/string.cjs.map +1 -1
  524. package/dist/utils/string.js +20 -20
  525. package/dist/utils/string.js.map +1 -1
  526. package/package.json +15 -15
  527. package/src/components/Avatar/Avatar.module.css +1 -1
  528. package/src/components/Avatar/avatar-clip.mask.svg +2 -6
  529. package/src/components/Breadcrumb/Breadcrumb.module.css +1 -1
  530. package/src/components/Breadcrumb/Breadcrumb.tsx +1 -1
  531. package/src/components/Button/Button.tsx +2 -1
  532. package/src/components/Dropdown/Dropdown.module.css +1 -1
  533. package/src/components/Icon/BigIcon/BigIcon.module.css +11 -8
  534. package/src/components/Icon/BigIcon/BigIcon.tsx +11 -18
  535. package/src/components/Link/Link.module.css +5 -1
  536. package/src/components/Link/Link.tsx +6 -5
  537. package/src/components/Nav/Nav.module.css +1 -1
  538. package/src/components/PageHeader/PageHeader.module.css +41 -0
  539. package/src/components/PageHeader/PageHeader.tsx +67 -0
  540. package/src/components/Progress/Progress.tsx +2 -1
  541. package/src/components/Separator/Separator.module.css +2 -2
  542. package/src/components/Typography/Heading.tsx +2 -1
  543. package/src/components/Typography/Text.tsx +2 -1
  544. package/src/components/Typography/Typography.tsx +2 -1
  545. package/src/components/VisualList/VisualList.module.css +1 -1
  546. package/src/utils/size.ts +11 -0
  547. package/dist/components/ActivityMarker/Pill.d.ts.map +0 -1
  548. package/dist/components/ActivityMarker/Pill.module.css.cjs +0 -9
  549. package/dist/components/ActivityMarker/Pill.module.css.cjs.map +0 -1
  550. package/dist/components/ActivityMarker/Pill.module.css.js +0 -9
  551. package/dist/components/ActivityMarker/Pill.module.css.js.map +0 -1
  552. package/dist/components/ActivityMarker/Unread.d.ts.map +0 -1
  553. package/dist/components/ActivityMarker/Unread.module.css.cjs +0 -9
  554. package/dist/components/ActivityMarker/Unread.module.css.cjs.map +0 -1
  555. package/dist/components/ActivityMarker/Unread.module.css.js +0 -9
  556. package/dist/components/ActivityMarker/Unread.module.css.js.map +0 -1
  557. package/dist/components/ActivityMarker/UnreadCounter.d.ts.map +0 -1
  558. package/dist/components/ActivityMarker/UnreadCounter.module.css.cjs +0 -7
  559. package/dist/components/ActivityMarker/UnreadCounter.module.css.cjs.map +0 -1
  560. package/dist/components/ActivityMarker/UnreadCounter.module.css.js +0 -7
  561. package/dist/components/ActivityMarker/UnreadCounter.module.css.js.map +0 -1
  562. package/dist/components/ActivityMarker/index.d.ts.map +0 -1
  563. package/dist/components/Alert/Alert.d.ts.map +0 -1
  564. package/dist/components/Alert/Alert.module.css.cjs +0 -19
  565. package/dist/components/Alert/Alert.module.css.cjs.map +0 -1
  566. package/dist/components/Alert/Alert.module.css.js +0 -19
  567. package/dist/components/Alert/Alert.module.css.js.map +0 -1
  568. package/dist/components/Avatar/Avatar.d.ts.map +0 -1
  569. package/dist/components/Avatar/Avatar.module.css.cjs +0 -15
  570. package/dist/components/Avatar/Avatar.module.css.cjs.map +0 -1
  571. package/dist/components/Avatar/Avatar.module.css.js +0 -15
  572. package/dist/components/Avatar/Avatar.module.css.js.map +0 -1
  573. package/dist/components/Avatar/AvatarStack.d.ts.map +0 -1
  574. package/dist/components/Avatar/avatar-clip.mask.svg.cjs +0 -5
  575. package/dist/components/Avatar/avatar-clip.mask.svg.cjs.map +0 -1
  576. package/dist/components/Avatar/avatar-clip.mask.svg.js +0 -5
  577. package/dist/components/Avatar/avatar-clip.mask.svg.js.map +0 -1
  578. package/dist/components/Avatar/useIdColorHash.d.ts.map +0 -1
  579. package/dist/components/Badge/Badge.d.ts.map +0 -1
  580. package/dist/components/Badge/Badge.module.css.cjs +0 -9
  581. package/dist/components/Badge/Badge.module.css.cjs.map +0 -1
  582. package/dist/components/Badge/Badge.module.css.js +0 -9
  583. package/dist/components/Badge/Badge.module.css.js.map +0 -1
  584. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +0 -1
  585. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs +0 -13
  586. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs.map +0 -1
  587. package/dist/components/Breadcrumb/Breadcrumb.module.css.js +0 -13
  588. package/dist/components/Breadcrumb/Breadcrumb.module.css.js.map +0 -1
  589. package/dist/components/Breadcrumb/index.d.ts.map +0 -1
  590. package/dist/components/Button/Button.d.ts.map +0 -1
  591. package/dist/components/Button/Button.module.css.cjs +0 -14
  592. package/dist/components/Button/Button.module.css.cjs.map +0 -1
  593. package/dist/components/Button/Button.module.css.js +0 -14
  594. package/dist/components/Button/Button.module.css.js.map +0 -1
  595. package/dist/components/Button/IconButton/IconButton.d.ts.map +0 -1
  596. package/dist/components/Button/IconButton/IconButton.module.css.cjs +0 -11
  597. package/dist/components/Button/IconButton/IconButton.module.css.cjs.map +0 -1
  598. package/dist/components/Button/IconButton/IconButton.module.css.js +0 -11
  599. package/dist/components/Button/IconButton/IconButton.module.css.js.map +0 -1
  600. package/dist/components/Button/UnstyledButton.d.ts.map +0 -1
  601. package/dist/components/Button/index.d.ts.map +0 -1
  602. package/dist/components/ChatFilter/ChatFilter.d.ts.map +0 -1
  603. package/dist/components/ChatFilter/ChatFilter.module.css.cjs +0 -7
  604. package/dist/components/ChatFilter/ChatFilter.module.css.cjs.map +0 -1
  605. package/dist/components/ChatFilter/ChatFilter.module.css.js +0 -7
  606. package/dist/components/ChatFilter/ChatFilter.module.css.js.map +0 -1
  607. package/dist/components/ChatFilter/index.d.ts.map +0 -1
  608. package/dist/components/Dropdown/Dropdown.d.ts.map +0 -1
  609. package/dist/components/Dropdown/Dropdown.module.css.cjs +0 -27
  610. package/dist/components/Dropdown/Dropdown.module.css.cjs.map +0 -1
  611. package/dist/components/Dropdown/Dropdown.module.css.js +0 -27
  612. package/dist/components/Dropdown/Dropdown.module.css.js.map +0 -1
  613. package/dist/components/Dropdown/index.d.ts.map +0 -1
  614. package/dist/components/Form/Controls/Action/Action.d.ts.map +0 -1
  615. package/dist/components/Form/Controls/Action/Action.module.css.cjs +0 -15
  616. package/dist/components/Form/Controls/Action/Action.module.css.cjs.map +0 -1
  617. package/dist/components/Form/Controls/Action/Action.module.css.js +0 -15
  618. package/dist/components/Form/Controls/Action/Action.module.css.js.map +0 -1
  619. package/dist/components/Form/Controls/Action/index.d.ts.map +0 -1
  620. package/dist/components/Form/Controls/Checkbox/Checkbox.d.ts.map +0 -1
  621. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.cjs +0 -15
  622. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.cjs.map +0 -1
  623. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.js +0 -15
  624. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.js.map +0 -1
  625. package/dist/components/Form/Controls/Checkbox/index.d.ts.map +0 -1
  626. package/dist/components/Form/Controls/EditInPlace/EditInPlace.d.ts.map +0 -1
  627. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.cjs +0 -10
  628. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.cjs.map +0 -1
  629. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.js +0 -10
  630. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.js.map +0 -1
  631. package/dist/components/Form/Controls/EditInPlace/index.d.ts.map +0 -1
  632. package/dist/components/Form/Controls/MFA/MFA.d.ts.map +0 -1
  633. package/dist/components/Form/Controls/MFA/MFA.module.css.cjs +0 -15
  634. package/dist/components/Form/Controls/MFA/MFA.module.css.cjs.map +0 -1
  635. package/dist/components/Form/Controls/MFA/MFA.module.css.js +0 -15
  636. package/dist/components/Form/Controls/MFA/MFA.module.css.js.map +0 -1
  637. package/dist/components/Form/Controls/MFA/index.d.ts.map +0 -1
  638. package/dist/components/Form/Controls/Password/Password.d.ts.map +0 -1
  639. package/dist/components/Form/Controls/Password/index.d.ts.map +0 -1
  640. package/dist/components/Form/Controls/Radio/Radio.d.ts.map +0 -1
  641. package/dist/components/Form/Controls/Radio/Radio.module.css.cjs +0 -15
  642. package/dist/components/Form/Controls/Radio/Radio.module.css.cjs.map +0 -1
  643. package/dist/components/Form/Controls/Radio/Radio.module.css.js +0 -15
  644. package/dist/components/Form/Controls/Radio/Radio.module.css.js.map +0 -1
  645. package/dist/components/Form/Controls/Radio/index.d.ts.map +0 -1
  646. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.d.ts.map +0 -1
  647. package/dist/components/Form/Controls/SettingsToggle/index.d.ts.map +0 -1
  648. package/dist/components/Form/Controls/Text/Text.d.ts.map +0 -1
  649. package/dist/components/Form/Controls/Text/Text.module.css.cjs +0 -10
  650. package/dist/components/Form/Controls/Text/Text.module.css.cjs.map +0 -1
  651. package/dist/components/Form/Controls/Text/Text.module.css.js +0 -10
  652. package/dist/components/Form/Controls/Text/Text.module.css.js.map +0 -1
  653. package/dist/components/Form/Controls/Text/index.d.ts.map +0 -1
  654. package/dist/components/Form/Controls/Toggle/Toggle.d.ts.map +0 -1
  655. package/dist/components/Form/Controls/Toggle/Toggle.module.css.cjs +0 -15
  656. package/dist/components/Form/Controls/Toggle/Toggle.module.css.cjs.map +0 -1
  657. package/dist/components/Form/Controls/Toggle/Toggle.module.css.js +0 -15
  658. package/dist/components/Form/Controls/Toggle/Toggle.module.css.js.map +0 -1
  659. package/dist/components/Form/Controls/Toggle/index.d.ts.map +0 -1
  660. package/dist/components/Form/Controls/index.d.ts.map +0 -1
  661. package/dist/components/Form/Field.d.ts.map +0 -1
  662. package/dist/components/Form/InlineField.d.ts.map +0 -1
  663. package/dist/components/Form/Label.d.ts.map +0 -1
  664. package/dist/components/Form/Message.d.ts.map +0 -1
  665. package/dist/components/Form/Root.d.ts.map +0 -1
  666. package/dist/components/Form/Submit.d.ts.map +0 -1
  667. package/dist/components/Form/form.module.css.cjs +0 -24
  668. package/dist/components/Form/form.module.css.cjs.map +0 -1
  669. package/dist/components/Form/form.module.css.js +0 -24
  670. package/dist/components/Form/form.module.css.js.map +0 -1
  671. package/dist/components/Form/index.d.ts.map +0 -1
  672. package/dist/components/Glass/Glass.d.ts.map +0 -1
  673. package/dist/components/Glass/Glass.module.css.cjs +0 -9
  674. package/dist/components/Glass/Glass.module.css.cjs.map +0 -1
  675. package/dist/components/Glass/Glass.module.css.js +0 -9
  676. package/dist/components/Glass/Glass.module.css.js.map +0 -1
  677. package/dist/components/Icon/BigIcon/BigIcon.d.ts +0 -25
  678. package/dist/components/Icon/BigIcon/BigIcon.d.ts.map +0 -1
  679. package/dist/components/Icon/BigIcon/BigIcon.module.css.cjs +0 -15
  680. package/dist/components/Icon/BigIcon/BigIcon.module.css.cjs.map +0 -1
  681. package/dist/components/Icon/BigIcon/BigIcon.module.css.js +0 -15
  682. package/dist/components/Icon/BigIcon/BigIcon.module.css.js.map +0 -1
  683. package/dist/components/Icon/BigIcon/index.d.ts.map +0 -1
  684. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.d.ts.map +0 -1
  685. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.cjs +0 -7
  686. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.cjs.map +0 -1
  687. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.js +0 -7
  688. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.js.map +0 -1
  689. package/dist/components/InlineSpinner/InlineSpinner.d.ts.map +0 -1
  690. package/dist/components/InlineSpinner/InlineSpinner.module.css.cjs +0 -9
  691. package/dist/components/InlineSpinner/InlineSpinner.module.css.cjs.map +0 -1
  692. package/dist/components/InlineSpinner/InlineSpinner.module.css.js +0 -9
  693. package/dist/components/InlineSpinner/InlineSpinner.module.css.js.map +0 -1
  694. package/dist/components/InlineSpinner/index.d.ts.map +0 -1
  695. package/dist/components/Link/Link.d.ts.map +0 -1
  696. package/dist/components/Link/Link.module.css.cjs +0 -9
  697. package/dist/components/Link/Link.module.css.cjs.map +0 -1
  698. package/dist/components/Link/Link.module.css.js +0 -9
  699. package/dist/components/Link/Link.module.css.js.map +0 -1
  700. package/dist/components/Menu/CheckboxMenuItem.d.ts.map +0 -1
  701. package/dist/components/Menu/ContextMenu.d.ts.map +0 -1
  702. package/dist/components/Menu/DrawerMenu.d.ts.map +0 -1
  703. package/dist/components/Menu/DrawerMenu.module.css.cjs +0 -15
  704. package/dist/components/Menu/DrawerMenu.module.css.cjs.map +0 -1
  705. package/dist/components/Menu/DrawerMenu.module.css.js +0 -15
  706. package/dist/components/Menu/DrawerMenu.module.css.js.map +0 -1
  707. package/dist/components/Menu/FloatingMenu.d.ts.map +0 -1
  708. package/dist/components/Menu/FloatingMenu.module.css.cjs +0 -12
  709. package/dist/components/Menu/FloatingMenu.module.css.cjs.map +0 -1
  710. package/dist/components/Menu/FloatingMenu.module.css.js +0 -12
  711. package/dist/components/Menu/FloatingMenu.module.css.js.map +0 -1
  712. package/dist/components/Menu/Menu.d.ts.map +0 -1
  713. package/dist/components/Menu/MenuContext.d.ts.map +0 -1
  714. package/dist/components/Menu/MenuItem.d.ts.map +0 -1
  715. package/dist/components/Menu/MenuItem.module.css.cjs +0 -24
  716. package/dist/components/Menu/MenuItem.module.css.cjs.map +0 -1
  717. package/dist/components/Menu/MenuItem.module.css.js +0 -24
  718. package/dist/components/Menu/MenuItem.module.css.js.map +0 -1
  719. package/dist/components/Menu/MenuTitle.d.ts.map +0 -1
  720. package/dist/components/Menu/MenuTitle.module.css.cjs +0 -7
  721. package/dist/components/Menu/MenuTitle.module.css.cjs.map +0 -1
  722. package/dist/components/Menu/MenuTitle.module.css.js +0 -7
  723. package/dist/components/Menu/MenuTitle.module.css.js.map +0 -1
  724. package/dist/components/Menu/RadioMenuItem.d.ts.map +0 -1
  725. package/dist/components/Menu/ToggleMenuItem.d.ts.map +0 -1
  726. package/dist/components/Nav/Nav.module.css.cjs +0 -10
  727. package/dist/components/Nav/Nav.module.css.cjs.map +0 -1
  728. package/dist/components/Nav/Nav.module.css.js +0 -10
  729. package/dist/components/Nav/Nav.module.css.js.map +0 -1
  730. package/dist/components/Nav/NavBar.d.ts.map +0 -1
  731. package/dist/components/Nav/NavItem.d.ts.map +0 -1
  732. package/dist/components/Nav/index.d.ts.map +0 -1
  733. package/dist/components/Progress/Progress.d.ts.map +0 -1
  734. package/dist/components/Progress/Progress.module.css.cjs +0 -10
  735. package/dist/components/Progress/Progress.module.css.cjs.map +0 -1
  736. package/dist/components/Progress/Progress.module.css.js +0 -10
  737. package/dist/components/Progress/Progress.module.css.js.map +0 -1
  738. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.d.ts.map +0 -1
  739. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.cjs +0 -21
  740. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.cjs.map +0 -1
  741. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.js +0 -21
  742. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.js.map +0 -1
  743. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.d.ts.map +0 -1
  744. package/dist/components/ReleaseAnnouncement/index.d.ts.map +0 -1
  745. package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.d.ts.map +0 -1
  746. package/dist/components/Search/Search.d.ts.map +0 -1
  747. package/dist/components/Search/Search.module.css.cjs +0 -15
  748. package/dist/components/Search/Search.module.css.cjs.map +0 -1
  749. package/dist/components/Search/Search.module.css.js +0 -15
  750. package/dist/components/Search/Search.module.css.js.map +0 -1
  751. package/dist/components/Separator/Separator.d.ts.map +0 -1
  752. package/dist/components/Separator/Separator.module.css.cjs +0 -9
  753. package/dist/components/Separator/Separator.module.css.cjs.map +0 -1
  754. package/dist/components/Separator/Separator.module.css.js +0 -9
  755. package/dist/components/Separator/Separator.module.css.js.map +0 -1
  756. package/dist/components/Toast/Toast.d.ts.map +0 -1
  757. package/dist/components/Toast/Toast.module.css.cjs +0 -7
  758. package/dist/components/Toast/Toast.module.css.cjs.map +0 -1
  759. package/dist/components/Toast/Toast.module.css.js +0 -7
  760. package/dist/components/Toast/Toast.module.css.js.map +0 -1
  761. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  762. package/dist/components/Tooltip/Tooltip.module.css.cjs +0 -18
  763. package/dist/components/Tooltip/Tooltip.module.css.cjs.map +0 -1
  764. package/dist/components/Tooltip/Tooltip.module.css.js +0 -18
  765. package/dist/components/Tooltip/Tooltip.module.css.js.map +0 -1
  766. package/dist/components/Tooltip/TooltipContext.d.ts.map +0 -1
  767. package/dist/components/Tooltip/TooltipProvider.d.ts.map +0 -1
  768. package/dist/components/Tooltip/useTooltip.d.ts.map +0 -1
  769. package/dist/components/Typography/Body.d.ts.map +0 -1
  770. package/dist/components/Typography/Heading.d.ts.map +0 -1
  771. package/dist/components/Typography/Text.d.ts.map +0 -1
  772. package/dist/components/Typography/Typography.d.ts.map +0 -1
  773. package/dist/components/Typography/Typography.module.css.cjs +0 -30
  774. package/dist/components/Typography/Typography.module.css.cjs.map +0 -1
  775. package/dist/components/Typography/Typography.module.css.js +0 -30
  776. package/dist/components/Typography/Typography.module.css.js.map +0 -1
  777. package/dist/components/VisualList/VisualList.d.ts.map +0 -1
  778. package/dist/components/VisualList/VisualList.module.css.cjs +0 -7
  779. package/dist/components/VisualList/VisualList.module.css.cjs.map +0 -1
  780. package/dist/components/VisualList/VisualList.module.css.js +0 -7
  781. package/dist/components/VisualList/VisualList.module.css.js.map +0 -1
  782. package/dist/components/VisualList/VisualListItem.d.ts.map +0 -1
  783. package/dist/components/VisualList/VisualListItem.module.css.cjs +0 -10
  784. package/dist/components/VisualList/VisualListItem.module.css.cjs.map +0 -1
  785. package/dist/components/VisualList/VisualListItem.module.css.js +0 -10
  786. package/dist/components/VisualList/VisualListItem.module.css.js.map +0 -1
  787. package/dist/components/VisualList/index.d.ts.map +0 -1
  788. package/dist/index.cjs.map +0 -1
  789. package/dist/index.d.ts.map +0 -1
  790. package/dist/index.js.map +0 -1
  791. package/dist/setupTests.d.ts.map +0 -1
  792. package/dist/utils/__ComponentTemplate__/__ComponentTemplate__.d.ts.map +0 -1
  793. package/dist/utils/platform.d.ts.map +0 -1
  794. package/dist/utils/string.d.ts.map +0 -1
  795. /package/dist/{components → src/components}/ActivityMarker/Pill.d.ts +0 -0
  796. /package/dist/{components → src/components}/ActivityMarker/Unread.d.ts +0 -0
  797. /package/dist/{components → src/components}/ActivityMarker/UnreadCounter.d.ts +0 -0
  798. /package/dist/{components → src/components}/ActivityMarker/index.d.ts +0 -0
  799. /package/dist/{components → src/components}/Alert/Alert.d.ts +0 -0
  800. /package/dist/{components → src/components}/Avatar/Avatar.d.ts +0 -0
  801. /package/dist/{components → src/components}/Avatar/AvatarStack.d.ts +0 -0
  802. /package/dist/{components → src/components}/Avatar/useIdColorHash.d.ts +0 -0
  803. /package/dist/{components → src/components}/Badge/Badge.d.ts +0 -0
  804. /package/dist/{components → src/components}/Breadcrumb/Breadcrumb.d.ts +0 -0
  805. /package/dist/{components → src/components}/Breadcrumb/index.d.ts +0 -0
  806. /package/dist/{components → src/components}/Button/IconButton/IconButton.d.ts +0 -0
  807. /package/dist/{components → src/components}/Button/UnstyledButton.d.ts +0 -0
  808. /package/dist/{components → src/components}/Button/index.d.ts +0 -0
  809. /package/dist/{components → src/components}/ChatFilter/ChatFilter.d.ts +0 -0
  810. /package/dist/{components → src/components}/ChatFilter/index.d.ts +0 -0
  811. /package/dist/{components → src/components}/Dropdown/Dropdown.d.ts +0 -0
  812. /package/dist/{components → src/components}/Dropdown/index.d.ts +0 -0
  813. /package/dist/{components → src/components}/Form/Controls/Action/Action.d.ts +0 -0
  814. /package/dist/{components → src/components}/Form/Controls/Action/index.d.ts +0 -0
  815. /package/dist/{components → src/components}/Form/Controls/Checkbox/Checkbox.d.ts +0 -0
  816. /package/dist/{components → src/components}/Form/Controls/Checkbox/index.d.ts +0 -0
  817. /package/dist/{components → src/components}/Form/Controls/EditInPlace/EditInPlace.d.ts +0 -0
  818. /package/dist/{components → src/components}/Form/Controls/EditInPlace/index.d.ts +0 -0
  819. /package/dist/{components → src/components}/Form/Controls/MFA/MFA.d.ts +0 -0
  820. /package/dist/{components → src/components}/Form/Controls/MFA/index.d.ts +0 -0
  821. /package/dist/{components → src/components}/Form/Controls/Password/Password.d.ts +0 -0
  822. /package/dist/{components → src/components}/Form/Controls/Password/index.d.ts +0 -0
  823. /package/dist/{components → src/components}/Form/Controls/Radio/Radio.d.ts +0 -0
  824. /package/dist/{components → src/components}/Form/Controls/Radio/index.d.ts +0 -0
  825. /package/dist/{components → src/components}/Form/Controls/SettingsToggle/SettingsToggle.d.ts +0 -0
  826. /package/dist/{components → src/components}/Form/Controls/SettingsToggle/index.d.ts +0 -0
  827. /package/dist/{components → src/components}/Form/Controls/Text/Text.d.ts +0 -0
  828. /package/dist/{components → src/components}/Form/Controls/Text/index.d.ts +0 -0
  829. /package/dist/{components → src/components}/Form/Controls/Toggle/Toggle.d.ts +0 -0
  830. /package/dist/{components → src/components}/Form/Controls/Toggle/index.d.ts +0 -0
  831. /package/dist/{components → src/components}/Form/Controls/index.d.ts +0 -0
  832. /package/dist/{components → src/components}/Form/Field.d.ts +0 -0
  833. /package/dist/{components → src/components}/Form/InlineField.d.ts +0 -0
  834. /package/dist/{components → src/components}/Form/Label.d.ts +0 -0
  835. /package/dist/{components → src/components}/Form/Message.d.ts +0 -0
  836. /package/dist/{components → src/components}/Form/Root.d.ts +0 -0
  837. /package/dist/{components → src/components}/Form/Submit.d.ts +0 -0
  838. /package/dist/{components → src/components}/Form/index.d.ts +0 -0
  839. /package/dist/{components → src/components}/Glass/Glass.d.ts +0 -0
  840. /package/dist/{components → src/components}/Icon/BigIcon/index.d.ts +0 -0
  841. /package/dist/{components → src/components}/Icon/IndicatorIcon/IndicatorIcon.d.ts +0 -0
  842. /package/dist/{components → src/components}/InlineSpinner/InlineSpinner.d.ts +0 -0
  843. /package/dist/{components → src/components}/InlineSpinner/index.d.ts +0 -0
  844. /package/dist/{components → src/components}/Menu/CheckboxMenuItem.d.ts +0 -0
  845. /package/dist/{components → src/components}/Menu/ContextMenu.d.ts +0 -0
  846. /package/dist/{components → src/components}/Menu/DrawerMenu.d.ts +0 -0
  847. /package/dist/{components → src/components}/Menu/FloatingMenu.d.ts +0 -0
  848. /package/dist/{components → src/components}/Menu/Menu.d.ts +0 -0
  849. /package/dist/{components → src/components}/Menu/MenuContext.d.ts +0 -0
  850. /package/dist/{components → src/components}/Menu/MenuItem.d.ts +0 -0
  851. /package/dist/{components → src/components}/Menu/MenuTitle.d.ts +0 -0
  852. /package/dist/{components → src/components}/Menu/RadioMenuItem.d.ts +0 -0
  853. /package/dist/{components → src/components}/Menu/ToggleMenuItem.d.ts +0 -0
  854. /package/dist/{components → src/components}/Nav/NavBar.d.ts +0 -0
  855. /package/dist/{components → src/components}/Nav/NavItem.d.ts +0 -0
  856. /package/dist/{components → src/components}/Nav/index.d.ts +0 -0
  857. /package/dist/{components → src/components}/ReleaseAnnouncement/ReleaseAnnouncement.d.ts +0 -0
  858. /package/dist/{components → src/components}/ReleaseAnnouncement/ReleaseAnnouncementContext.d.ts +0 -0
  859. /package/dist/{components → src/components}/ReleaseAnnouncement/index.d.ts +0 -0
  860. /package/dist/{components → src/components}/ReleaseAnnouncement/useReleaseAnnouncement.d.ts +0 -0
  861. /package/dist/{components → src/components}/Search/Search.d.ts +0 -0
  862. /package/dist/{components → src/components}/Separator/Separator.d.ts +0 -0
  863. /package/dist/{components → src/components}/Toast/Toast.d.ts +0 -0
  864. /package/dist/{components → src/components}/Tooltip/Tooltip.d.ts +0 -0
  865. /package/dist/{components → src/components}/Tooltip/TooltipContext.d.ts +0 -0
  866. /package/dist/{components → src/components}/Tooltip/TooltipProvider.d.ts +0 -0
  867. /package/dist/{components → src/components}/Tooltip/useTooltip.d.ts +0 -0
  868. /package/dist/{components → src/components}/Typography/Body.d.ts +0 -0
  869. /package/dist/{components → src/components}/VisualList/VisualList.d.ts +0 -0
  870. /package/dist/{components → src/components}/VisualList/VisualListItem.d.ts +0 -0
  871. /package/dist/{components → src/components}/VisualList/index.d.ts +0 -0
  872. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  873. /package/dist/{setupTests.d.ts → src/setupTests.d.ts} +0 -0
  874. /package/dist/{utils → src/utils}/__ComponentTemplate__/__ComponentTemplate__.d.ts +0 -0
  875. /package/dist/{utils → src/utils}/platform.d.ts +0 -0
  876. /package/dist/{utils → src/utils}/string.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sources":["../../../src/components/Menu/Menu.tsx"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type FC, type ReactNode, useMemo } from \"react\";\nimport {\n Root,\n Trigger,\n Portal,\n Content,\n DropdownMenuItem,\n} from \"@radix-ui/react-dropdown-menu\";\nimport { FloatingMenu } from \"./FloatingMenu\";\nimport { Drawer } from \"vaul\";\nimport classnames from \"classnames\";\nimport drawerMenu from \"./DrawerMenu.module.css\";\nimport {\n MenuContext,\n type MenuData,\n type MenuItemWrapperProps,\n} from \"./MenuContext\";\nimport { DrawerMenu } from \"./DrawerMenu\";\nimport { getPlatform } from \"../../utils/platform\";\n\ninterface Props {\n /**\n * CSS classes for the menu.\n */\n className?: string;\n\n /**\n * The menu title. This can be hidden with `showTitle={false}` in which case it will only\n * be a label for screen readers.\n */\n title: string;\n /**\n * Controls whether the title is displayed (see `title` prop). Titles are only displayed on\n * web: on mobile, this parameter is ignored.\n */\n showTitle?: boolean;\n /**\n * Whether the menu is open.\n */\n open: boolean;\n /**\n * Event handler called when the open state of the menu changes. This includes\n * anything like clicking the trigger, selecting a menu item, or dismissing\n * the menu with the mouse or keyboard.\n */\n onOpenChange: (open: boolean) => void;\n /**\n * The button that opens the menu. This must be a component that accepts a ref\n * and spreads props.\n * https://www.radix-ui.com/primitives/docs/guides/composition\n */\n trigger: ReactNode;\n /**\n * The menu contents.\n */\n children: ReactNode;\n /**\n * The side of the trigger on which to place the menu. Note that the menu may\n * still end up on a different side than the one you request if there isn't\n * enough space.\n * @default bottom\n */\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n /**\n * The edge along which the menu and trigger will be aligned.\n * @default center\n */\n align?: \"start\" | \"center\" | \"end\";\n}\n\nconst DropdownMenuItemWrapper: FC<MenuItemWrapperProps> = ({\n onSelect,\n children,\n}) => (\n <DropdownMenuItem onSelect={onSelect ?? undefined} asChild>\n {children}\n </DropdownMenuItem>\n);\n\n/**\n * A menu opened by pressing a button.\n */\nexport const Menu: FC<Props> = ({\n className,\n title,\n showTitle = true,\n open,\n onOpenChange,\n trigger,\n children: childrenProp,\n side = \"bottom\",\n align = \"center\",\n}) => {\n // Normally, the menu takes the form of a floating box. But on Android and\n // iOS, the menu should morph into a drawer\n const platform = getPlatform();\n const drawer = platform === \"android\" || platform === \"ios\";\n const context: MenuData = useMemo(\n () => ({\n MenuItemWrapper: drawer ? null : DropdownMenuItemWrapper,\n onOpenChange,\n }),\n [onOpenChange],\n );\n const children = (\n <MenuContext.Provider value={context}>{childrenProp}</MenuContext.Provider>\n );\n\n return drawer ? (\n <Drawer.Root open={open} onOpenChange={onOpenChange}>\n <Drawer.Trigger asChild>{trigger}</Drawer.Trigger>\n <Drawer.Portal>\n <Drawer.Overlay className={classnames(drawerMenu.bg)} />\n <Drawer.Content asChild>\n <DrawerMenu title={title}>{children}</DrawerMenu>\n </Drawer.Content>\n </Drawer.Portal>\n </Drawer.Root>\n ) : (\n <Root open={open} onOpenChange={onOpenChange}>\n <Trigger asChild>{trigger}</Trigger>\n <Portal>\n <Content asChild side={side} align={align} sideOffset={8}>\n <FloatingMenu\n className={className}\n title={title}\n showTitle={showTitle}\n >\n {children}\n </FloatingMenu>\n </Content>\n </Portal>\n </Root>\n );\n};\n"],"names":["classnames"],"mappings":";;;;;;;;;;AA6EA,MAAM,0BAAoD,CAAC;AAAA,EACzD;AAAA,EACA;AACF,0BACG,kBAAA,EAAiB,UAAU,YAAY,QAAW,SAAO,MACvD,UACH;AAMK,MAAM,OAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AACV,MAAM;AAGJ,QAAM,WAAW,YAAA;AACjB,QAAM,SAAS,aAAa,aAAa,aAAa;AACtD,QAAM,UAAoB;AAAA,IACxB,OAAO;AAAA,MACL,iBAAiB,SAAS,OAAO;AAAA,MACjC;AAAA,IAAA;AAAA,IAEF,CAAC,YAAY;AAAA,EAAA;AAEf,QAAM,WACJ,oBAAC,YAAY,UAAZ,EAAqB,OAAO,SAAU,UAAA,cAAa;AAGtD,SAAO,SACL,qBAAC,OAAO,MAAP,EAAY,MAAY,cACvB,UAAA;AAAA,IAAA,oBAAC,OAAO,SAAP,EAAe,SAAO,MAAE,UAAA,SAAQ;AAAA,IACjC,qBAAC,OAAO,QAAP,EACC,UAAA;AAAA,MAAA,oBAAC,OAAO,SAAP,EAAe,WAAWA,WAAW,WAAW,EAAE,GAAG;AAAA,MACtD,oBAAC,OAAO,SAAP,EAAe,SAAO,MACrB,UAAA,oBAAC,YAAA,EAAW,OAAe,SAAA,CAAS,EAAA,CACtC;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,IAEA,qBAAC,MAAA,EAAK,MAAY,cAChB,UAAA;AAAA,IAAA,oBAAC,SAAA,EAAQ,SAAO,MAAE,UAAA,SAAQ;AAAA,IAC1B,oBAAC,UACC,UAAA,oBAAC,SAAA,EAAQ,SAAO,MAAC,MAAY,OAAc,YAAY,GACrD,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QAEC;AAAA,MAAA;AAAA,IAAA,GAEL,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"Menu.js","names":[],"sources":["../../../src/components/Menu/Menu.tsx"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type FC, type ReactNode, useMemo } from \"react\";\nimport {\n Root,\n Trigger,\n Portal,\n Content,\n DropdownMenuItem,\n} from \"@radix-ui/react-dropdown-menu\";\nimport { FloatingMenu } from \"./FloatingMenu\";\nimport { Drawer } from \"vaul\";\nimport classnames from \"classnames\";\nimport drawerMenu from \"./DrawerMenu.module.css\";\nimport {\n MenuContext,\n type MenuData,\n type MenuItemWrapperProps,\n} from \"./MenuContext\";\nimport { DrawerMenu } from \"./DrawerMenu\";\nimport { getPlatform } from \"../../utils/platform\";\n\ninterface Props {\n /**\n * CSS classes for the menu.\n */\n className?: string;\n\n /**\n * The menu title. This can be hidden with `showTitle={false}` in which case it will only\n * be a label for screen readers.\n */\n title: string;\n /**\n * Controls whether the title is displayed (see `title` prop). Titles are only displayed on\n * web: on mobile, this parameter is ignored.\n */\n showTitle?: boolean;\n /**\n * Whether the menu is open.\n */\n open: boolean;\n /**\n * Event handler called when the open state of the menu changes. This includes\n * anything like clicking the trigger, selecting a menu item, or dismissing\n * the menu with the mouse or keyboard.\n */\n onOpenChange: (open: boolean) => void;\n /**\n * The button that opens the menu. This must be a component that accepts a ref\n * and spreads props.\n * https://www.radix-ui.com/primitives/docs/guides/composition\n */\n trigger: ReactNode;\n /**\n * The menu contents.\n */\n children: ReactNode;\n /**\n * The side of the trigger on which to place the menu. Note that the menu may\n * still end up on a different side than the one you request if there isn't\n * enough space.\n * @default bottom\n */\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n /**\n * The edge along which the menu and trigger will be aligned.\n * @default center\n */\n align?: \"start\" | \"center\" | \"end\";\n}\n\nconst DropdownMenuItemWrapper: FC<MenuItemWrapperProps> = ({\n onSelect,\n children,\n}) => (\n <DropdownMenuItem onSelect={onSelect ?? undefined} asChild>\n {children}\n </DropdownMenuItem>\n);\n\n/**\n * A menu opened by pressing a button.\n */\nexport const Menu: FC<Props> = ({\n className,\n title,\n showTitle = true,\n open,\n onOpenChange,\n trigger,\n children: childrenProp,\n side = \"bottom\",\n align = \"center\",\n}) => {\n // Normally, the menu takes the form of a floating box. But on Android and\n // iOS, the menu should morph into a drawer\n const platform = getPlatform();\n const drawer = platform === \"android\" || platform === \"ios\";\n const context: MenuData = useMemo(\n () => ({\n MenuItemWrapper: drawer ? null : DropdownMenuItemWrapper,\n onOpenChange,\n }),\n [onOpenChange],\n );\n const children = (\n <MenuContext.Provider value={context}>{childrenProp}</MenuContext.Provider>\n );\n\n return drawer ? (\n <Drawer.Root open={open} onOpenChange={onOpenChange}>\n <Drawer.Trigger asChild>{trigger}</Drawer.Trigger>\n <Drawer.Portal>\n <Drawer.Overlay className={classnames(drawerMenu.bg)} />\n <Drawer.Content asChild>\n <DrawerMenu title={title}>{children}</DrawerMenu>\n </Drawer.Content>\n </Drawer.Portal>\n </Drawer.Root>\n ) : (\n <Root open={open} onOpenChange={onOpenChange}>\n <Trigger asChild>{trigger}</Trigger>\n <Portal>\n <Content asChild side={side} align={align} sideOffset={8}>\n <FloatingMenu\n className={className}\n title={title}\n showTitle={showTitle}\n >\n {children}\n </FloatingMenu>\n </Content>\n </Portal>\n </Root>\n );\n};\n"],"mappings":";;;;;;;;;;;AA6EA,IAAM,2BAAqD,EACzD,UACA,eAEA,oBAAC,kBAAD;CAAkB,UAAU,YAAY,KAAA;CAAW,SAAA;CAChD;CACgB,CAAA;;;;AAMrB,IAAa,QAAmB,EAC9B,WACA,OACA,YAAY,MACZ,MACA,cACA,SACA,UAAU,cACV,OAAO,UACP,QAAQ,eACJ;CAGJ,MAAM,WAAW,aAAa;CAC9B,MAAM,SAAS,aAAa,aAAa,aAAa;CACtD,MAAM,UAAoB,eACjB;EACL,iBAAiB,SAAS,OAAO;EACjC;EACD,GACD,CAAC,aAAa,CACf;CACD,MAAM,WACJ,oBAAC,YAAY,UAAb;EAAsB,OAAO;YAAU;EAAoC,CAAA;AAG7E,QAAO,SACL,qBAAC,OAAO,MAAR;EAAmB;EAAoB;YAAvC,CACE,oBAAC,OAAO,SAAR;GAAgB,SAAA;aAAS;GAAyB,CAAA,EAClD,qBAAC,OAAO,QAAR,EAAA,UAAA,CACE,oBAAC,OAAO,SAAR,EAAgB,WAAW,WAAW,0BAAW,GAAG,EAAI,CAAA,EACxD,oBAAC,OAAO,SAAR;GAAgB,SAAA;aACd,oBAAC,YAAD;IAAmB;IAAQ;IAAsB,CAAA;GAClC,CAAA,CACH,EAAA,CAAA,CACJ;MAEd,qBAAC,MAAD;EAAY;EAAoB;YAAhC,CACE,oBAAC,SAAD;GAAS,SAAA;aAAS;GAAkB,CAAA,EACpC,oBAAC,QAAD,EAAA,UACE,oBAAC,SAAD;GAAS,SAAA;GAAc;GAAa;GAAO,YAAY;aACrD,oBAAC,cAAD;IACa;IACJ;IACI;IAEV;IACY,CAAA;GACP,CAAA,EACH,CAAA,CACJ"}
@@ -1,6 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const MenuContext = React.createContext(null);
1
+ require("../../_virtual/_rolldown/runtime.cjs");
2
+ //#region src/components/Menu/MenuContext.tsx
3
+ /**
4
+ * A React context providing information about the menu in which a given
5
+ * component resides.
6
+ */
7
+ var MenuContext = (0, require("react").createContext)(null);
8
+ //#endregion
5
9
  exports.MenuContext = MenuContext;
6
- //# sourceMappingURL=MenuContext.cjs.map
10
+
11
+ //# sourceMappingURL=MenuContext.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuContext.cjs","sources":["../../../src/components/Menu/MenuContext.tsx"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type ComponentType, type ReactNode, createContext } from \"react\";\n\nexport interface MenuItemWrapperProps {\n /**\n * Event callback for when the item is selected via mouse, touch, or keyboard.\n * Calling event.preventDefault in this handler will prevent the menu from\n * being dismissed.\n */\n onSelect: (e: Event) => void;\n children: ReactNode;\n}\n\nexport interface MenuData {\n /**\n * A component that wraps interactive menu items.\n */\n MenuItemWrapper: ComponentType<MenuItemWrapperProps> | null;\n /**\n * Event handler called when the open state of the menu changes.\n */\n onOpenChange: (open: boolean) => void;\n}\n\n/**\n * A React context providing information about the menu in which a given\n * component resides.\n */\nexport const MenuContext = createContext<MenuData | null>(null);\n"],"names":["createContext"],"mappings":";;;AAkCO,MAAM,cAAcA,MAAAA,cAA+B,IAAI;;"}
1
+ {"version":3,"file":"MenuContext.cjs","names":[],"sources":["../../../src/components/Menu/MenuContext.tsx"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type ComponentType, type ReactNode, createContext } from \"react\";\n\nexport interface MenuItemWrapperProps {\n /**\n * Event callback for when the item is selected via mouse, touch, or keyboard.\n * Calling event.preventDefault in this handler will prevent the menu from\n * being dismissed.\n */\n onSelect: (e: Event) => void;\n children: ReactNode;\n}\n\nexport interface MenuData {\n /**\n * A component that wraps interactive menu items.\n */\n MenuItemWrapper: ComponentType<MenuItemWrapperProps> | null;\n /**\n * Event handler called when the open state of the menu changes.\n */\n onOpenChange: (open: boolean) => void;\n}\n\n/**\n * A React context providing information about the menu in which a given\n * component resides.\n */\nexport const MenuContext = createContext<MenuData | null>(null);\n"],"mappings":";;;;;;AAkCA,IAAa,eAAA,oBAAA,eAA6C,KAAK"}
@@ -1,6 +1,11 @@
1
1
  import { createContext } from "react";
2
- const MenuContext = createContext(null);
3
- export {
4
- MenuContext
5
- };
6
- //# sourceMappingURL=MenuContext.js.map
2
+ //#region src/components/Menu/MenuContext.tsx
3
+ /**
4
+ * A React context providing information about the menu in which a given
5
+ * component resides.
6
+ */
7
+ var MenuContext = createContext(null);
8
+ //#endregion
9
+ export { MenuContext };
10
+
11
+ //# sourceMappingURL=MenuContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuContext.js","sources":["../../../src/components/Menu/MenuContext.tsx"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type ComponentType, type ReactNode, createContext } from \"react\";\n\nexport interface MenuItemWrapperProps {\n /**\n * Event callback for when the item is selected via mouse, touch, or keyboard.\n * Calling event.preventDefault in this handler will prevent the menu from\n * being dismissed.\n */\n onSelect: (e: Event) => void;\n children: ReactNode;\n}\n\nexport interface MenuData {\n /**\n * A component that wraps interactive menu items.\n */\n MenuItemWrapper: ComponentType<MenuItemWrapperProps> | null;\n /**\n * Event handler called when the open state of the menu changes.\n */\n onOpenChange: (open: boolean) => void;\n}\n\n/**\n * A React context providing information about the menu in which a given\n * component resides.\n */\nexport const MenuContext = createContext<MenuData | null>(null);\n"],"names":[],"mappings":";AAkCO,MAAM,cAAc,cAA+B,IAAI;"}
1
+ {"version":3,"file":"MenuContext.js","names":[],"sources":["../../../src/components/Menu/MenuContext.tsx"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type ComponentType, type ReactNode, createContext } from \"react\";\n\nexport interface MenuItemWrapperProps {\n /**\n * Event callback for when the item is selected via mouse, touch, or keyboard.\n * Calling event.preventDefault in this handler will prevent the menu from\n * being dismissed.\n */\n onSelect: (e: Event) => void;\n children: ReactNode;\n}\n\nexport interface MenuData {\n /**\n * A component that wraps interactive menu items.\n */\n MenuItemWrapper: ComponentType<MenuItemWrapperProps> | null;\n /**\n * Event handler called when the open state of the menu changes.\n */\n onOpenChange: (open: boolean) => void;\n}\n\n/**\n * A React context providing information about the menu in which a given\n * component resides.\n */\nexport const MenuContext = createContext<MenuData | null>(null);\n"],"mappings":";;;;;;AAkCA,IAAa,cAAc,cAA+B,KAAK"}
@@ -1,97 +1,85 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const classNames = require("classnames");
5
- const React = require("react");
6
- const MenuItem_module = require("./MenuItem.module.css.cjs");
7
- const Text = require("../Typography/Text.cjs");
8
- const ChevronRightIcon = require("@vector-im/compound-design-tokens/assets/web/icons/chevron-right");
9
- const MenuContext = require("./MenuContext.cjs");
10
- const reactSlot = require("@radix-ui/react-slot");
11
- const MenuItem = ({
12
- as,
13
- className,
14
- Icon,
15
- label,
16
- labelProps,
17
- onSelect,
18
- kind = "primary",
19
- children,
20
- onClick: onClickProp,
21
- disabled,
22
- hideChevron,
23
- ...props
24
- }) => {
25
- const Component = as ?? "button";
26
- const context = React.useContext(MenuContext.MenuContext);
27
- const onClick = React.useCallback(
28
- (e) => {
29
- onClickProp?.(e);
30
- if (onSelect !== null && context?.MenuItemWrapper == null) {
31
- const selectEvent = new CustomEvent("menu.itemSelect", {
32
- bubbles: true,
33
- cancelable: true
34
- });
35
- onSelect(selectEvent);
36
- if (!selectEvent.defaultPrevented) context?.onOpenChange(false);
37
- }
38
- },
39
- [context, onSelect]
40
- );
41
- const iconIsReactElement = React.isValidElement(Icon);
42
- const componentIcon = Icon;
43
- const SvgIcon = Icon;
44
- const content = /* @__PURE__ */ jsxRuntime.jsxs(
45
- Component,
46
- {
47
- role: "menuitem",
48
- ...props,
49
- className: classNames(className, MenuItem_module.default.item, {
50
- [MenuItem_module.default.interactive]: onSelect !== null,
51
- [MenuItem_module.default["no-label"]]: label === null,
52
- [MenuItem_module.default["no-icon"]]: !Icon,
53
- [MenuItem_module.default["disabled"]]: disabled
54
- }),
55
- "data-kind": kind,
56
- onClick,
57
- disabled: Component === "button" ? disabled : void 0,
58
- "aria-disabled": Component === "button" ? void 0 : disabled,
59
- children: [
60
- Icon && (iconIsReactElement ? /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slot, { className: MenuItem_module.default.icon, children: componentIcon }) : /* @__PURE__ */ jsxRuntime.jsx(
61
- SvgIcon,
62
- {
63
- width: 24,
64
- height: 24,
65
- className: MenuItem_module.default.icon,
66
- "aria-hidden": true
67
- }
68
- )),
69
- label !== null && /* @__PURE__ */ jsxRuntime.jsx(
70
- Text.Text,
71
- {
72
- className: MenuItem_module.default.label,
73
- size: "md",
74
- weight: "medium",
75
- as: "span",
76
- ...labelProps,
77
- children: label
78
- }
79
- ),
80
- !hideChevron && (Component === "button" || Component === "a") && /* @__PURE__ */ jsxRuntime.jsx(
81
- ChevronRightIcon,
82
- {
83
- width: 8,
84
- height: 24,
85
- className: MenuItem_module.default["nav-hint"],
86
- "aria-hidden": true,
87
- viewBox: "8 0 8 24"
88
- }
89
- ),
90
- children
91
- ]
92
- }
93
- );
94
- return context?.MenuItemWrapper == null || onSelect === null ? content : /* @__PURE__ */ jsxRuntime.jsx(context.MenuItemWrapper, { onSelect, children: content });
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_Text = require("../Typography/Text.cjs");
3
+ const require_MenuContext = require("./MenuContext.cjs");
4
+ const require_MenuItem_module = require("./MenuItem.module.cjs");
5
+ let classnames = require("classnames");
6
+ classnames = require_runtime.__toESM(classnames);
7
+ let react = require("react");
8
+ react = require_runtime.__toESM(react);
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ let _vector_im_compound_design_tokens_assets_web_icons_chevron_right = require("@vector-im/compound-design-tokens/assets/web/icons/chevron-right");
11
+ _vector_im_compound_design_tokens_assets_web_icons_chevron_right = require_runtime.__toESM(_vector_im_compound_design_tokens_assets_web_icons_chevron_right);
12
+ let _radix_ui_react_slot = require("@radix-ui/react-slot");
13
+ //#region src/components/Menu/MenuItem.tsx
14
+ /**
15
+ * An item within a menu, acting either as a navigation button, or simply a
16
+ * container for other interactive elements.
17
+ * Must be used within a compound Menu or other `menu` or `menubar` aria role subtree.
18
+ */
19
+ var MenuItem = ({ as, className, Icon, label, labelProps, onSelect, kind = "primary", children, onClick: onClickProp, disabled, hideChevron, ...props }) => {
20
+ const Component = as ?? "button";
21
+ const context = (0, react.useContext)(require_MenuContext.MenuContext);
22
+ const onClick = (0, react.useCallback)((e) => {
23
+ onClickProp?.(e);
24
+ if (onSelect !== null && context?.MenuItemWrapper == null) {
25
+ const selectEvent = new CustomEvent("menu.itemSelect", {
26
+ bubbles: true,
27
+ cancelable: true
28
+ });
29
+ onSelect(selectEvent);
30
+ if (!selectEvent.defaultPrevented) context?.onOpenChange(false);
31
+ }
32
+ }, [context, onSelect]);
33
+ const iconIsReactElement = (0, react.isValidElement)(Icon);
34
+ const componentIcon = Icon;
35
+ const SvgIcon = Icon;
36
+ const content = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Component, {
37
+ role: "menuitem",
38
+ ...props,
39
+ className: (0, classnames.default)(className, require_MenuItem_module.default.item, {
40
+ [require_MenuItem_module.default.interactive]: onSelect !== null,
41
+ [require_MenuItem_module.default["no-label"]]: label === null,
42
+ [require_MenuItem_module.default["no-icon"]]: !Icon,
43
+ [require_MenuItem_module.default["disabled"]]: disabled
44
+ }),
45
+ "data-kind": kind,
46
+ onClick,
47
+ disabled: Component === "button" ? disabled : void 0,
48
+ "aria-disabled": Component === "button" ? void 0 : disabled,
49
+ children: [
50
+ Icon && (iconIsReactElement ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_slot.Slot, {
51
+ className: require_MenuItem_module.default.icon,
52
+ children: componentIcon
53
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SvgIcon, {
54
+ width: 24,
55
+ height: 24,
56
+ className: require_MenuItem_module.default.icon,
57
+ "aria-hidden": true
58
+ })),
59
+ label !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Text.Text, {
60
+ className: require_MenuItem_module.default.label,
61
+ size: "md",
62
+ weight: "medium",
63
+ as: "span",
64
+ ...labelProps,
65
+ children: label
66
+ }),
67
+ !hideChevron && (Component === "button" || Component === "a") && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_vector_im_compound_design_tokens_assets_web_icons_chevron_right.default, {
68
+ width: 8,
69
+ height: 24,
70
+ className: require_MenuItem_module.default["nav-hint"],
71
+ "aria-hidden": true,
72
+ viewBox: "8 0 8 24"
73
+ }),
74
+ children
75
+ ]
76
+ });
77
+ return context?.MenuItemWrapper == null || onSelect === null ? content : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(context.MenuItemWrapper, {
78
+ onSelect,
79
+ children: content
80
+ });
95
81
  };
82
+ //#endregion
96
83
  exports.MenuItem = MenuItem;
97
- //# sourceMappingURL=MenuItem.cjs.map
84
+
85
+ //# sourceMappingURL=MenuItem.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.cjs","sources":["../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport classnames from \"classnames\";\nimport React, {\n type ComponentPropsWithoutRef,\n type ComponentType,\n type ElementType,\n isValidElement,\n type ReactElement,\n type SVGAttributes,\n useCallback,\n useContext,\n type MouseEventHandler,\n} from \"react\";\nimport styles from \"./MenuItem.module.css\";\nimport { Text } from \"../Typography/Text\";\nimport ChevronRightIcon from \"@vector-im/compound-design-tokens/assets/web/icons/chevron-right\";\nimport { MenuContext } from \"./MenuContext\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\ntype MenuItemElement = \"button\" | \"a\" | \"div\";\n\ntype Props<C extends MenuItemElement> = {\n /**\n * The element type of this menu item.\n * @default button\n */\n as?: C;\n /**\n * The CSS class name.\n */\n className?: string;\n /**\n * The icon to show on this menu item.\n * When `Icon` is a ReactElement, it should spread the props\n */\n Icon?: ComponentType<SVGAttributes<SVGElement>> | ReactElement;\n /**\n * The label to show on this menu item.\n */\n // This prop is required because it's rare to not want a label\n label: string | null;\n /**\n * Additional properties to pass to the Text label component.\n */\n labelProps?: ComponentPropsWithoutRef<typeof Text>;\n /**\n * Event callback for when the item is selected via mouse, touch, or keyboard.\n * Calling event.preventDefault in this handler will prevent the menu from\n * being dismissed.\n */\n // This prop is required because it's rare to not want a selection handler\n onSelect: ((e: Event) => void) | null;\n /**\n * Event callback for when the item is clicked.\n * @param e\n */\n onClick?: MouseEventHandler<HTMLElementTagNameMap[C]>;\n /**\n * The color variant of the menu item.\n * @default primary\n */\n kind?: \"primary\" | \"critical\";\n disabled?: boolean;\n /**\n * Whether to hide the chevron navigation hint.\n */\n hideChevron?: boolean;\n} & Omit<ComponentPropsWithoutRef<C>, \"onSelect\" | \"onClick\">;\n\n/**\n * An item within a menu, acting either as a navigation button, or simply a\n * container for other interactive elements.\n * Must be used within a compound Menu or other `menu` or `menubar` aria role subtree.\n */\nexport const MenuItem = <C extends MenuItemElement = \"button\">({\n as,\n className,\n Icon,\n label,\n labelProps,\n onSelect,\n kind = \"primary\",\n children,\n onClick: onClickProp,\n disabled,\n hideChevron,\n ...props\n}: Props<C>): React.ReactElement => {\n const Component = as ?? (\"button\" as ElementType);\n const context = useContext(MenuContext);\n\n const onClick = useCallback(\n (e: Parameters<Exclude<typeof onClickProp, undefined>>[0]) => {\n (onClickProp as ((e_: typeof e) => void) | undefined)?.(e);\n // If there is no wrapper component to automatically handle onSelect, we\n // need to handle it manually, dismissing the menu as the default action\n if (onSelect !== null && context?.MenuItemWrapper == null) {\n const selectEvent = new CustomEvent(\"menu.itemSelect\", {\n bubbles: true,\n cancelable: true,\n });\n onSelect(selectEvent);\n if (!selectEvent.defaultPrevented) context?.onOpenChange(false);\n }\n },\n [context, onSelect],\n );\n\n const iconIsReactElement = isValidElement(Icon);\n const componentIcon = Icon as ReactElement;\n const SvgIcon = Icon as ComponentType<SVGAttributes<SVGElement>>;\n\n const content = (\n <Component\n role=\"menuitem\"\n {...props}\n className={classnames(className, styles.item, {\n [styles.interactive]: onSelect !== null,\n [styles[\"no-label\"]]: label === null,\n [styles[\"no-icon\"]]: !Icon,\n [styles[\"disabled\"]]: disabled,\n })}\n data-kind={kind}\n onClick={onClick}\n disabled={Component === \"button\" ? disabled : undefined}\n aria-disabled={Component === \"button\" ? undefined : disabled}\n >\n {Icon &&\n (iconIsReactElement ? (\n <Slot className={styles.icon}>{componentIcon}</Slot>\n ) : (\n <SvgIcon\n width={24}\n height={24}\n className={styles.icon}\n aria-hidden={true}\n />\n ))}\n\n {label !== null && (\n <Text\n className={styles.label}\n size=\"md\"\n weight=\"medium\"\n as=\"span\"\n {...labelProps}\n >\n {label}\n </Text>\n )}\n {/* We use CSS to swap between this navigation hint and the provided\n children on hover - see the styles module. */}\n {!hideChevron && (Component === \"button\" || Component === \"a\") && (\n <ChevronRightIcon\n width={8}\n height={24}\n className={styles[\"nav-hint\"]}\n aria-hidden={true}\n /* The SVG is a small icon in a large canvas. It probably ought to be\n cropped, but we can adjust the viewBox here to chop off the horizontal\n space to get it closer to the right hand edge.\n */\n viewBox=\"8 0 8 24\"\n />\n )}\n {children}\n </Component>\n );\n\n return context?.MenuItemWrapper == null || onSelect === null ? (\n content\n ) : (\n <context.MenuItemWrapper onSelect={onSelect}>\n {content}\n </context.MenuItemWrapper>\n );\n};\n"],"names":["useContext","MenuContext","useCallback","isValidElement","jsxs","classnames","styles","jsx","Slot","Text"],"mappings":";;;;;;;;;;AAgFO,MAAM,WAAW,CAAuC;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAoC;AAClC,QAAM,YAAY,MAAO;AACzB,QAAM,UAAUA,MAAAA,WAAWC,uBAAW;AAEtC,QAAM,UAAUC,MAAAA;AAAAA,IACd,CAAC,MAA6D;AAC3D,oBAAuD,CAAC;AAGzD,UAAI,aAAa,QAAQ,SAAS,mBAAmB,MAAM;AACzD,cAAM,cAAc,IAAI,YAAY,mBAAmB;AAAA,UACrD,SAAS;AAAA,UACT,YAAY;AAAA,QAAA,CACb;AACD,iBAAS,WAAW;AACpB,YAAI,CAAC,YAAY,iBAAkB,UAAS,aAAa,KAAK;AAAA,MAChE;AAAA,IACF;AAAA,IACA,CAAC,SAAS,QAAQ;AAAA,EAAA;AAGpB,QAAM,qBAAqBC,MAAAA,eAAe,IAAI;AAC9C,QAAM,gBAAgB;AACtB,QAAM,UAAU;AAEhB,QAAM,UACJC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACJ,GAAG;AAAA,MACJ,WAAWC,WAAW,WAAWC,gBAAAA,QAAO,MAAM;AAAA,QAC5C,CAACA,gBAAAA,QAAO,WAAW,GAAG,aAAa;AAAA,QACnC,CAACA,wBAAO,UAAU,CAAC,GAAG,UAAU;AAAA,QAChC,CAACA,gBAAAA,QAAO,SAAS,CAAC,GAAG,CAAC;AAAA,QACtB,CAACA,gBAAAA,QAAO,UAAU,CAAC,GAAG;AAAA,MAAA,CACvB;AAAA,MACD,aAAW;AAAA,MACX;AAAA,MACA,UAAU,cAAc,WAAW,WAAW;AAAA,MAC9C,iBAAe,cAAc,WAAW,SAAY;AAAA,MAEnD,UAAA;AAAA,QAAA,SACE,qBACCC,+BAACC,UAAAA,MAAA,EAAK,WAAWF,gBAAAA,QAAO,MAAO,yBAAc,IAE7CC,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,WAAWD,gBAAAA,QAAO;AAAA,YAClB,eAAa;AAAA,UAAA;AAAA,QAAA;AAAA,QAIlB,UAAU,QACTC,2BAAAA;AAAAA,UAACE,KAAAA;AAAAA,UAAA;AAAA,YACC,WAAWH,gBAAAA,QAAO;AAAA,YAClB,MAAK;AAAA,YACL,QAAO;AAAA,YACP,IAAG;AAAA,YACF,GAAG;AAAA,YAEH,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAKJ,CAAC,gBAAgB,cAAc,YAAY,cAAc,QACxDC,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,WAAWD,gBAAAA,QAAO,UAAU;AAAA,YAC5B,eAAa;AAAA,YAKb,SAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,QAGX;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIL,SAAO,SAAS,mBAAmB,QAAQ,aAAa,OACtD,UAEAC,+BAAC,QAAQ,iBAAR,EAAwB,UACtB,UAAA,QAAA,CACH;AAEJ;;"}
1
+ {"version":3,"file":"MenuItem.cjs","names":[],"sources":["../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport classnames from \"classnames\";\nimport React, {\n type ComponentPropsWithoutRef,\n type ComponentType,\n type ElementType,\n isValidElement,\n type ReactElement,\n type SVGAttributes,\n useCallback,\n useContext,\n type MouseEventHandler,\n} from \"react\";\nimport styles from \"./MenuItem.module.css\";\nimport { Text } from \"../Typography/Text\";\nimport ChevronRightIcon from \"@vector-im/compound-design-tokens/assets/web/icons/chevron-right\";\nimport { MenuContext } from \"./MenuContext\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\ntype MenuItemElement = \"button\" | \"a\" | \"div\";\n\ntype Props<C extends MenuItemElement> = {\n /**\n * The element type of this menu item.\n * @default button\n */\n as?: C;\n /**\n * The CSS class name.\n */\n className?: string;\n /**\n * The icon to show on this menu item.\n * When `Icon` is a ReactElement, it should spread the props\n */\n Icon?: ComponentType<SVGAttributes<SVGElement>> | ReactElement;\n /**\n * The label to show on this menu item.\n */\n // This prop is required because it's rare to not want a label\n label: string | null;\n /**\n * Additional properties to pass to the Text label component.\n */\n labelProps?: ComponentPropsWithoutRef<typeof Text>;\n /**\n * Event callback for when the item is selected via mouse, touch, or keyboard.\n * Calling event.preventDefault in this handler will prevent the menu from\n * being dismissed.\n */\n // This prop is required because it's rare to not want a selection handler\n onSelect: ((e: Event) => void) | null;\n /**\n * Event callback for when the item is clicked.\n * @param e\n */\n onClick?: MouseEventHandler<HTMLElementTagNameMap[C]>;\n /**\n * The color variant of the menu item.\n * @default primary\n */\n kind?: \"primary\" | \"critical\";\n disabled?: boolean;\n /**\n * Whether to hide the chevron navigation hint.\n */\n hideChevron?: boolean;\n} & Omit<ComponentPropsWithoutRef<C>, \"onSelect\" | \"onClick\">;\n\n/**\n * An item within a menu, acting either as a navigation button, or simply a\n * container for other interactive elements.\n * Must be used within a compound Menu or other `menu` or `menubar` aria role subtree.\n */\nexport const MenuItem = <C extends MenuItemElement = \"button\">({\n as,\n className,\n Icon,\n label,\n labelProps,\n onSelect,\n kind = \"primary\",\n children,\n onClick: onClickProp,\n disabled,\n hideChevron,\n ...props\n}: Props<C>): React.ReactElement => {\n const Component = as ?? (\"button\" as ElementType);\n const context = useContext(MenuContext);\n\n const onClick = useCallback(\n (e: Parameters<Exclude<typeof onClickProp, undefined>>[0]) => {\n (onClickProp as ((e_: typeof e) => void) | undefined)?.(e);\n // If there is no wrapper component to automatically handle onSelect, we\n // need to handle it manually, dismissing the menu as the default action\n if (onSelect !== null && context?.MenuItemWrapper == null) {\n const selectEvent = new CustomEvent(\"menu.itemSelect\", {\n bubbles: true,\n cancelable: true,\n });\n onSelect(selectEvent);\n if (!selectEvent.defaultPrevented) context?.onOpenChange(false);\n }\n },\n [context, onSelect],\n );\n\n const iconIsReactElement = isValidElement(Icon);\n const componentIcon = Icon as ReactElement;\n const SvgIcon = Icon as ComponentType<SVGAttributes<SVGElement>>;\n\n const content = (\n <Component\n role=\"menuitem\"\n {...props}\n className={classnames(className, styles.item, {\n [styles.interactive]: onSelect !== null,\n [styles[\"no-label\"]]: label === null,\n [styles[\"no-icon\"]]: !Icon,\n [styles[\"disabled\"]]: disabled,\n })}\n data-kind={kind}\n onClick={onClick}\n disabled={Component === \"button\" ? disabled : undefined}\n aria-disabled={Component === \"button\" ? undefined : disabled}\n >\n {Icon &&\n (iconIsReactElement ? (\n <Slot className={styles.icon}>{componentIcon}</Slot>\n ) : (\n <SvgIcon\n width={24}\n height={24}\n className={styles.icon}\n aria-hidden={true}\n />\n ))}\n\n {label !== null && (\n <Text\n className={styles.label}\n size=\"md\"\n weight=\"medium\"\n as=\"span\"\n {...labelProps}\n >\n {label}\n </Text>\n )}\n {/* We use CSS to swap between this navigation hint and the provided\n children on hover - see the styles module. */}\n {!hideChevron && (Component === \"button\" || Component === \"a\") && (\n <ChevronRightIcon\n width={8}\n height={24}\n className={styles[\"nav-hint\"]}\n aria-hidden={true}\n /* The SVG is a small icon in a large canvas. It probably ought to be\n cropped, but we can adjust the viewBox here to chop off the horizontal\n space to get it closer to the right hand edge.\n */\n viewBox=\"8 0 8 24\"\n />\n )}\n {children}\n </Component>\n );\n\n return context?.MenuItemWrapper == null || onSelect === null ? (\n content\n ) : (\n <context.MenuItemWrapper onSelect={onSelect}>\n {content}\n </context.MenuItemWrapper>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgFA,IAAa,YAAkD,EAC7D,IACA,WACA,MACA,OACA,YACA,UACA,OAAO,WACP,UACA,SAAS,aACT,UACA,aACA,GAAG,YAC+B;CAClC,MAAM,YAAY,MAAO;CACzB,MAAM,WAAA,GAAA,MAAA,YAAqB,oBAAA,YAAY;CAEvC,MAAM,WAAA,GAAA,MAAA,cACH,MAA6D;AAC3D,gBAAuD,EAAE;AAG1D,MAAI,aAAa,QAAQ,SAAS,mBAAmB,MAAM;GACzD,MAAM,cAAc,IAAI,YAAY,mBAAmB;IACrD,SAAS;IACT,YAAY;IACb,CAAC;AACF,YAAS,YAAY;AACrB,OAAI,CAAC,YAAY,iBAAkB,UAAS,aAAa,MAAM;;IAGnE,CAAC,SAAS,SAAS,CACpB;CAED,MAAM,sBAAA,GAAA,MAAA,gBAAoC,KAAK;CAC/C,MAAM,gBAAgB;CACtB,MAAM,UAAU;CAEhB,MAAM,UACJ,iBAAA,GAAA,kBAAA,MAAC,WAAD;EACE,MAAK;EACL,GAAI;EACJ,YAAA,GAAA,WAAA,SAAsB,WAAW,wBAAA,QAAO,MAAM;IAC3C,wBAAA,QAAO,cAAc,aAAa;IAClC,wBAAA,QAAO,cAAc,UAAU;IAC/B,wBAAA,QAAO,aAAa,CAAC;IACrB,wBAAA,QAAO,cAAc;GACvB,CAAC;EACF,aAAW;EACF;EACT,UAAU,cAAc,WAAW,WAAW,KAAA;EAC9C,iBAAe,cAAc,WAAW,KAAA,IAAY;YAZtD;GAcG,SACE,qBACC,iBAAA,GAAA,kBAAA,KAAC,qBAAA,MAAD;IAAM,WAAW,wBAAA,QAAO;cAAO;IAAqB,CAAA,GAEpD,iBAAA,GAAA,kBAAA,KAAC,SAAD;IACE,OAAO;IACP,QAAQ;IACR,WAAW,wBAAA,QAAO;IAClB,eAAa;IACb,CAAA;GAGL,UAAU,QACT,iBAAA,GAAA,kBAAA,KAAC,aAAA,MAAD;IACE,WAAW,wBAAA,QAAO;IAClB,MAAK;IACL,QAAO;IACP,IAAG;IACH,GAAI;cAEH;IACI,CAAA;GAIR,CAAC,gBAAgB,cAAc,YAAY,cAAc,QACxD,iBAAA,GAAA,kBAAA,KAAC,iEAAA,SAAD;IACE,OAAO;IACP,QAAQ;IACR,WAAW,wBAAA,QAAO;IAClB,eAAa;IAKb,SAAQ;IACR,CAAA;GAEH;GACS;;AAGd,QAAO,SAAS,mBAAmB,QAAQ,aAAa,OACtD,UAEA,iBAAA,GAAA,kBAAA,KAAC,QAAQ,iBAAT;EAAmC;YAChC;EACuB,CAAA"}
@@ -1,97 +1,81 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import classNames from "classnames";
3
- import { useContext, useCallback, isValidElement } from "react";
4
- import styles from "./MenuItem.module.css.js";
5
1
  import { Text } from "../Typography/Text.js";
6
- import ChevronRightIcon from "@vector-im/compound-design-tokens/assets/web/icons/chevron-right";
7
2
  import { MenuContext } from "./MenuContext.js";
3
+ import MenuItem_module_default from "./MenuItem.module.js";
4
+ import classNames from "classnames";
5
+ import { isValidElement, useCallback, useContext } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import ChevronRightIcon from "@vector-im/compound-design-tokens/assets/web/icons/chevron-right";
8
8
  import { Slot } from "@radix-ui/react-slot";
9
- const MenuItem = ({
10
- as,
11
- className,
12
- Icon,
13
- label,
14
- labelProps,
15
- onSelect,
16
- kind = "primary",
17
- children,
18
- onClick: onClickProp,
19
- disabled,
20
- hideChevron,
21
- ...props
22
- }) => {
23
- const Component = as ?? "button";
24
- const context = useContext(MenuContext);
25
- const onClick = useCallback(
26
- (e) => {
27
- onClickProp?.(e);
28
- if (onSelect !== null && context?.MenuItemWrapper == null) {
29
- const selectEvent = new CustomEvent("menu.itemSelect", {
30
- bubbles: true,
31
- cancelable: true
32
- });
33
- onSelect(selectEvent);
34
- if (!selectEvent.defaultPrevented) context?.onOpenChange(false);
35
- }
36
- },
37
- [context, onSelect]
38
- );
39
- const iconIsReactElement = isValidElement(Icon);
40
- const componentIcon = Icon;
41
- const SvgIcon = Icon;
42
- const content = /* @__PURE__ */ jsxs(
43
- Component,
44
- {
45
- role: "menuitem",
46
- ...props,
47
- className: classNames(className, styles.item, {
48
- [styles.interactive]: onSelect !== null,
49
- [styles["no-label"]]: label === null,
50
- [styles["no-icon"]]: !Icon,
51
- [styles["disabled"]]: disabled
52
- }),
53
- "data-kind": kind,
54
- onClick,
55
- disabled: Component === "button" ? disabled : void 0,
56
- "aria-disabled": Component === "button" ? void 0 : disabled,
57
- children: [
58
- Icon && (iconIsReactElement ? /* @__PURE__ */ jsx(Slot, { className: styles.icon, children: componentIcon }) : /* @__PURE__ */ jsx(
59
- SvgIcon,
60
- {
61
- width: 24,
62
- height: 24,
63
- className: styles.icon,
64
- "aria-hidden": true
65
- }
66
- )),
67
- label !== null && /* @__PURE__ */ jsx(
68
- Text,
69
- {
70
- className: styles.label,
71
- size: "md",
72
- weight: "medium",
73
- as: "span",
74
- ...labelProps,
75
- children: label
76
- }
77
- ),
78
- !hideChevron && (Component === "button" || Component === "a") && /* @__PURE__ */ jsx(
79
- ChevronRightIcon,
80
- {
81
- width: 8,
82
- height: 24,
83
- className: styles["nav-hint"],
84
- "aria-hidden": true,
85
- viewBox: "8 0 8 24"
86
- }
87
- ),
88
- children
89
- ]
90
- }
91
- );
92
- return context?.MenuItemWrapper == null || onSelect === null ? content : /* @__PURE__ */ jsx(context.MenuItemWrapper, { onSelect, children: content });
93
- };
94
- export {
95
- MenuItem
9
+ //#region src/components/Menu/MenuItem.tsx
10
+ /**
11
+ * An item within a menu, acting either as a navigation button, or simply a
12
+ * container for other interactive elements.
13
+ * Must be used within a compound Menu or other `menu` or `menubar` aria role subtree.
14
+ */
15
+ var MenuItem = ({ as, className, Icon, label, labelProps, onSelect, kind = "primary", children, onClick: onClickProp, disabled, hideChevron, ...props }) => {
16
+ const Component = as ?? "button";
17
+ const context = useContext(MenuContext);
18
+ const onClick = useCallback((e) => {
19
+ onClickProp?.(e);
20
+ if (onSelect !== null && context?.MenuItemWrapper == null) {
21
+ const selectEvent = new CustomEvent("menu.itemSelect", {
22
+ bubbles: true,
23
+ cancelable: true
24
+ });
25
+ onSelect(selectEvent);
26
+ if (!selectEvent.defaultPrevented) context?.onOpenChange(false);
27
+ }
28
+ }, [context, onSelect]);
29
+ const iconIsReactElement = isValidElement(Icon);
30
+ const componentIcon = Icon;
31
+ const SvgIcon = Icon;
32
+ const content = /* @__PURE__ */ jsxs(Component, {
33
+ role: "menuitem",
34
+ ...props,
35
+ className: classNames(className, MenuItem_module_default.item, {
36
+ [MenuItem_module_default.interactive]: onSelect !== null,
37
+ [MenuItem_module_default["no-label"]]: label === null,
38
+ [MenuItem_module_default["no-icon"]]: !Icon,
39
+ [MenuItem_module_default["disabled"]]: disabled
40
+ }),
41
+ "data-kind": kind,
42
+ onClick,
43
+ disabled: Component === "button" ? disabled : void 0,
44
+ "aria-disabled": Component === "button" ? void 0 : disabled,
45
+ children: [
46
+ Icon && (iconIsReactElement ? /* @__PURE__ */ jsx(Slot, {
47
+ className: MenuItem_module_default.icon,
48
+ children: componentIcon
49
+ }) : /* @__PURE__ */ jsx(SvgIcon, {
50
+ width: 24,
51
+ height: 24,
52
+ className: MenuItem_module_default.icon,
53
+ "aria-hidden": true
54
+ })),
55
+ label !== null && /* @__PURE__ */ jsx(Text, {
56
+ className: MenuItem_module_default.label,
57
+ size: "md",
58
+ weight: "medium",
59
+ as: "span",
60
+ ...labelProps,
61
+ children: label
62
+ }),
63
+ !hideChevron && (Component === "button" || Component === "a") && /* @__PURE__ */ jsx(ChevronRightIcon, {
64
+ width: 8,
65
+ height: 24,
66
+ className: MenuItem_module_default["nav-hint"],
67
+ "aria-hidden": true,
68
+ viewBox: "8 0 8 24"
69
+ }),
70
+ children
71
+ ]
72
+ });
73
+ return context?.MenuItemWrapper == null || onSelect === null ? content : /* @__PURE__ */ jsx(context.MenuItemWrapper, {
74
+ onSelect,
75
+ children: content
76
+ });
96
77
  };
97
- //# sourceMappingURL=MenuItem.js.map
78
+ //#endregion
79
+ export { MenuItem };
80
+
81
+ //# sourceMappingURL=MenuItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sources":["../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport classnames from \"classnames\";\nimport React, {\n type ComponentPropsWithoutRef,\n type ComponentType,\n type ElementType,\n isValidElement,\n type ReactElement,\n type SVGAttributes,\n useCallback,\n useContext,\n type MouseEventHandler,\n} from \"react\";\nimport styles from \"./MenuItem.module.css\";\nimport { Text } from \"../Typography/Text\";\nimport ChevronRightIcon from \"@vector-im/compound-design-tokens/assets/web/icons/chevron-right\";\nimport { MenuContext } from \"./MenuContext\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\ntype MenuItemElement = \"button\" | \"a\" | \"div\";\n\ntype Props<C extends MenuItemElement> = {\n /**\n * The element type of this menu item.\n * @default button\n */\n as?: C;\n /**\n * The CSS class name.\n */\n className?: string;\n /**\n * The icon to show on this menu item.\n * When `Icon` is a ReactElement, it should spread the props\n */\n Icon?: ComponentType<SVGAttributes<SVGElement>> | ReactElement;\n /**\n * The label to show on this menu item.\n */\n // This prop is required because it's rare to not want a label\n label: string | null;\n /**\n * Additional properties to pass to the Text label component.\n */\n labelProps?: ComponentPropsWithoutRef<typeof Text>;\n /**\n * Event callback for when the item is selected via mouse, touch, or keyboard.\n * Calling event.preventDefault in this handler will prevent the menu from\n * being dismissed.\n */\n // This prop is required because it's rare to not want a selection handler\n onSelect: ((e: Event) => void) | null;\n /**\n * Event callback for when the item is clicked.\n * @param e\n */\n onClick?: MouseEventHandler<HTMLElementTagNameMap[C]>;\n /**\n * The color variant of the menu item.\n * @default primary\n */\n kind?: \"primary\" | \"critical\";\n disabled?: boolean;\n /**\n * Whether to hide the chevron navigation hint.\n */\n hideChevron?: boolean;\n} & Omit<ComponentPropsWithoutRef<C>, \"onSelect\" | \"onClick\">;\n\n/**\n * An item within a menu, acting either as a navigation button, or simply a\n * container for other interactive elements.\n * Must be used within a compound Menu or other `menu` or `menubar` aria role subtree.\n */\nexport const MenuItem = <C extends MenuItemElement = \"button\">({\n as,\n className,\n Icon,\n label,\n labelProps,\n onSelect,\n kind = \"primary\",\n children,\n onClick: onClickProp,\n disabled,\n hideChevron,\n ...props\n}: Props<C>): React.ReactElement => {\n const Component = as ?? (\"button\" as ElementType);\n const context = useContext(MenuContext);\n\n const onClick = useCallback(\n (e: Parameters<Exclude<typeof onClickProp, undefined>>[0]) => {\n (onClickProp as ((e_: typeof e) => void) | undefined)?.(e);\n // If there is no wrapper component to automatically handle onSelect, we\n // need to handle it manually, dismissing the menu as the default action\n if (onSelect !== null && context?.MenuItemWrapper == null) {\n const selectEvent = new CustomEvent(\"menu.itemSelect\", {\n bubbles: true,\n cancelable: true,\n });\n onSelect(selectEvent);\n if (!selectEvent.defaultPrevented) context?.onOpenChange(false);\n }\n },\n [context, onSelect],\n );\n\n const iconIsReactElement = isValidElement(Icon);\n const componentIcon = Icon as ReactElement;\n const SvgIcon = Icon as ComponentType<SVGAttributes<SVGElement>>;\n\n const content = (\n <Component\n role=\"menuitem\"\n {...props}\n className={classnames(className, styles.item, {\n [styles.interactive]: onSelect !== null,\n [styles[\"no-label\"]]: label === null,\n [styles[\"no-icon\"]]: !Icon,\n [styles[\"disabled\"]]: disabled,\n })}\n data-kind={kind}\n onClick={onClick}\n disabled={Component === \"button\" ? disabled : undefined}\n aria-disabled={Component === \"button\" ? undefined : disabled}\n >\n {Icon &&\n (iconIsReactElement ? (\n <Slot className={styles.icon}>{componentIcon}</Slot>\n ) : (\n <SvgIcon\n width={24}\n height={24}\n className={styles.icon}\n aria-hidden={true}\n />\n ))}\n\n {label !== null && (\n <Text\n className={styles.label}\n size=\"md\"\n weight=\"medium\"\n as=\"span\"\n {...labelProps}\n >\n {label}\n </Text>\n )}\n {/* We use CSS to swap between this navigation hint and the provided\n children on hover - see the styles module. */}\n {!hideChevron && (Component === \"button\" || Component === \"a\") && (\n <ChevronRightIcon\n width={8}\n height={24}\n className={styles[\"nav-hint\"]}\n aria-hidden={true}\n /* The SVG is a small icon in a large canvas. It probably ought to be\n cropped, but we can adjust the viewBox here to chop off the horizontal\n space to get it closer to the right hand edge.\n */\n viewBox=\"8 0 8 24\"\n />\n )}\n {children}\n </Component>\n );\n\n return context?.MenuItemWrapper == null || onSelect === null ? (\n content\n ) : (\n <context.MenuItemWrapper onSelect={onSelect}>\n {content}\n </context.MenuItemWrapper>\n );\n};\n"],"names":["classnames"],"mappings":";;;;;;;;AAgFO,MAAM,WAAW,CAAuC;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAoC;AAClC,QAAM,YAAY,MAAO;AACzB,QAAM,UAAU,WAAW,WAAW;AAEtC,QAAM,UAAU;AAAA,IACd,CAAC,MAA6D;AAC3D,oBAAuD,CAAC;AAGzD,UAAI,aAAa,QAAQ,SAAS,mBAAmB,MAAM;AACzD,cAAM,cAAc,IAAI,YAAY,mBAAmB;AAAA,UACrD,SAAS;AAAA,UACT,YAAY;AAAA,QAAA,CACb;AACD,iBAAS,WAAW;AACpB,YAAI,CAAC,YAAY,iBAAkB,UAAS,aAAa,KAAK;AAAA,MAChE;AAAA,IACF;AAAA,IACA,CAAC,SAAS,QAAQ;AAAA,EAAA;AAGpB,QAAM,qBAAqB,eAAe,IAAI;AAC9C,QAAM,gBAAgB;AACtB,QAAM,UAAU;AAEhB,QAAM,UACJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACJ,GAAG;AAAA,MACJ,WAAWA,WAAW,WAAW,OAAO,MAAM;AAAA,QAC5C,CAAC,OAAO,WAAW,GAAG,aAAa;AAAA,QACnC,CAAC,OAAO,UAAU,CAAC,GAAG,UAAU;AAAA,QAChC,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC;AAAA,QACtB,CAAC,OAAO,UAAU,CAAC,GAAG;AAAA,MAAA,CACvB;AAAA,MACD,aAAW;AAAA,MACX;AAAA,MACA,UAAU,cAAc,WAAW,WAAW;AAAA,MAC9C,iBAAe,cAAc,WAAW,SAAY;AAAA,MAEnD,UAAA;AAAA,QAAA,SACE,qBACC,oBAAC,MAAA,EAAK,WAAW,OAAO,MAAO,yBAAc,IAE7C;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,WAAW,OAAO;AAAA,YAClB,eAAa;AAAA,UAAA;AAAA,QAAA;AAAA,QAIlB,UAAU,QACT;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,OAAO;AAAA,YAClB,MAAK;AAAA,YACL,QAAO;AAAA,YACP,IAAG;AAAA,YACF,GAAG;AAAA,YAEH,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAKJ,CAAC,gBAAgB,cAAc,YAAY,cAAc,QACxD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,WAAW,OAAO,UAAU;AAAA,YAC5B,eAAa;AAAA,YAKb,SAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,QAGX;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIL,SAAO,SAAS,mBAAmB,QAAQ,aAAa,OACtD,UAEA,oBAAC,QAAQ,iBAAR,EAAwB,UACtB,UAAA,QAAA,CACH;AAEJ;"}
1
+ {"version":3,"file":"MenuItem.js","names":[],"sources":["../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport classnames from \"classnames\";\nimport React, {\n type ComponentPropsWithoutRef,\n type ComponentType,\n type ElementType,\n isValidElement,\n type ReactElement,\n type SVGAttributes,\n useCallback,\n useContext,\n type MouseEventHandler,\n} from \"react\";\nimport styles from \"./MenuItem.module.css\";\nimport { Text } from \"../Typography/Text\";\nimport ChevronRightIcon from \"@vector-im/compound-design-tokens/assets/web/icons/chevron-right\";\nimport { MenuContext } from \"./MenuContext\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\ntype MenuItemElement = \"button\" | \"a\" | \"div\";\n\ntype Props<C extends MenuItemElement> = {\n /**\n * The element type of this menu item.\n * @default button\n */\n as?: C;\n /**\n * The CSS class name.\n */\n className?: string;\n /**\n * The icon to show on this menu item.\n * When `Icon` is a ReactElement, it should spread the props\n */\n Icon?: ComponentType<SVGAttributes<SVGElement>> | ReactElement;\n /**\n * The label to show on this menu item.\n */\n // This prop is required because it's rare to not want a label\n label: string | null;\n /**\n * Additional properties to pass to the Text label component.\n */\n labelProps?: ComponentPropsWithoutRef<typeof Text>;\n /**\n * Event callback for when the item is selected via mouse, touch, or keyboard.\n * Calling event.preventDefault in this handler will prevent the menu from\n * being dismissed.\n */\n // This prop is required because it's rare to not want a selection handler\n onSelect: ((e: Event) => void) | null;\n /**\n * Event callback for when the item is clicked.\n * @param e\n */\n onClick?: MouseEventHandler<HTMLElementTagNameMap[C]>;\n /**\n * The color variant of the menu item.\n * @default primary\n */\n kind?: \"primary\" | \"critical\";\n disabled?: boolean;\n /**\n * Whether to hide the chevron navigation hint.\n */\n hideChevron?: boolean;\n} & Omit<ComponentPropsWithoutRef<C>, \"onSelect\" | \"onClick\">;\n\n/**\n * An item within a menu, acting either as a navigation button, or simply a\n * container for other interactive elements.\n * Must be used within a compound Menu or other `menu` or `menubar` aria role subtree.\n */\nexport const MenuItem = <C extends MenuItemElement = \"button\">({\n as,\n className,\n Icon,\n label,\n labelProps,\n onSelect,\n kind = \"primary\",\n children,\n onClick: onClickProp,\n disabled,\n hideChevron,\n ...props\n}: Props<C>): React.ReactElement => {\n const Component = as ?? (\"button\" as ElementType);\n const context = useContext(MenuContext);\n\n const onClick = useCallback(\n (e: Parameters<Exclude<typeof onClickProp, undefined>>[0]) => {\n (onClickProp as ((e_: typeof e) => void) | undefined)?.(e);\n // If there is no wrapper component to automatically handle onSelect, we\n // need to handle it manually, dismissing the menu as the default action\n if (onSelect !== null && context?.MenuItemWrapper == null) {\n const selectEvent = new CustomEvent(\"menu.itemSelect\", {\n bubbles: true,\n cancelable: true,\n });\n onSelect(selectEvent);\n if (!selectEvent.defaultPrevented) context?.onOpenChange(false);\n }\n },\n [context, onSelect],\n );\n\n const iconIsReactElement = isValidElement(Icon);\n const componentIcon = Icon as ReactElement;\n const SvgIcon = Icon as ComponentType<SVGAttributes<SVGElement>>;\n\n const content = (\n <Component\n role=\"menuitem\"\n {...props}\n className={classnames(className, styles.item, {\n [styles.interactive]: onSelect !== null,\n [styles[\"no-label\"]]: label === null,\n [styles[\"no-icon\"]]: !Icon,\n [styles[\"disabled\"]]: disabled,\n })}\n data-kind={kind}\n onClick={onClick}\n disabled={Component === \"button\" ? disabled : undefined}\n aria-disabled={Component === \"button\" ? undefined : disabled}\n >\n {Icon &&\n (iconIsReactElement ? (\n <Slot className={styles.icon}>{componentIcon}</Slot>\n ) : (\n <SvgIcon\n width={24}\n height={24}\n className={styles.icon}\n aria-hidden={true}\n />\n ))}\n\n {label !== null && (\n <Text\n className={styles.label}\n size=\"md\"\n weight=\"medium\"\n as=\"span\"\n {...labelProps}\n >\n {label}\n </Text>\n )}\n {/* We use CSS to swap between this navigation hint and the provided\n children on hover - see the styles module. */}\n {!hideChevron && (Component === \"button\" || Component === \"a\") && (\n <ChevronRightIcon\n width={8}\n height={24}\n className={styles[\"nav-hint\"]}\n aria-hidden={true}\n /* The SVG is a small icon in a large canvas. It probably ought to be\n cropped, but we can adjust the viewBox here to chop off the horizontal\n space to get it closer to the right hand edge.\n */\n viewBox=\"8 0 8 24\"\n />\n )}\n {children}\n </Component>\n );\n\n return context?.MenuItemWrapper == null || onSelect === null ? (\n content\n ) : (\n <context.MenuItemWrapper onSelect={onSelect}>\n {content}\n </context.MenuItemWrapper>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAgFA,IAAa,YAAkD,EAC7D,IACA,WACA,MACA,OACA,YACA,UACA,OAAO,WACP,UACA,SAAS,aACT,UACA,aACA,GAAG,YAC+B;CAClC,MAAM,YAAY,MAAO;CACzB,MAAM,UAAU,WAAW,YAAY;CAEvC,MAAM,UAAU,aACb,MAA6D;AAC3D,gBAAuD,EAAE;AAG1D,MAAI,aAAa,QAAQ,SAAS,mBAAmB,MAAM;GACzD,MAAM,cAAc,IAAI,YAAY,mBAAmB;IACrD,SAAS;IACT,YAAY;IACb,CAAC;AACF,YAAS,YAAY;AACrB,OAAI,CAAC,YAAY,iBAAkB,UAAS,aAAa,MAAM;;IAGnE,CAAC,SAAS,SAAS,CACpB;CAED,MAAM,qBAAqB,eAAe,KAAK;CAC/C,MAAM,gBAAgB;CACtB,MAAM,UAAU;CAEhB,MAAM,UACJ,qBAAC,WAAD;EACE,MAAK;EACL,GAAI;EACJ,WAAW,WAAW,WAAW,wBAAO,MAAM;IAC3C,wBAAO,cAAc,aAAa;IAClC,wBAAO,cAAc,UAAU;IAC/B,wBAAO,aAAa,CAAC;IACrB,wBAAO,cAAc;GACvB,CAAC;EACF,aAAW;EACF;EACT,UAAU,cAAc,WAAW,WAAW,KAAA;EAC9C,iBAAe,cAAc,WAAW,KAAA,IAAY;YAZtD;GAcG,SACE,qBACC,oBAAC,MAAD;IAAM,WAAW,wBAAO;cAAO;IAAqB,CAAA,GAEpD,oBAAC,SAAD;IACE,OAAO;IACP,QAAQ;IACR,WAAW,wBAAO;IAClB,eAAa;IACb,CAAA;GAGL,UAAU,QACT,oBAAC,MAAD;IACE,WAAW,wBAAO;IAClB,MAAK;IACL,QAAO;IACP,IAAG;IACH,GAAI;cAEH;IACI,CAAA;GAIR,CAAC,gBAAgB,cAAc,YAAY,cAAc,QACxD,oBAAC,kBAAD;IACE,OAAO;IACP,QAAQ;IACR,WAAW,wBAAO;IAClB,eAAa;IAKb,SAAQ;IACR,CAAA;GAEH;GACS;;AAGd,QAAO,SAAS,mBAAmB,QAAQ,aAAa,OACtD,UAEA,oBAAC,QAAQ,iBAAT;EAAmC;YAChC;EACuB,CAAA"}
@@ -0,0 +1,20 @@
1
+ //#region src/components/Menu/MenuItem.module.css
2
+ var item = "_item_lqfwq_8";
3
+ var interactive = "_interactive_lqfwq_26";
4
+ var label = "_label_lqfwq_34";
5
+ var icon = "_icon_lqfwq_50";
6
+ var disabled = "_disabled_lqfwq_118";
7
+ var MenuItem_module_default = {
8
+ item,
9
+ interactive,
10
+ "no-label": "_no-label_lqfwq_30",
11
+ label,
12
+ "no-icon": "_no-icon_lqfwq_41",
13
+ icon,
14
+ "nav-hint": "_nav-hint_lqfwq_59",
15
+ disabled
16
+ };
17
+ //#endregion
18
+ exports.default = MenuItem_module_default;
19
+
20
+ //# sourceMappingURL=MenuItem.module.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuItem.module.cjs","names":[],"sources":["../../../src/components/Menu/MenuItem.module.css"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n.item {\n display: grid;\n grid-template: \"icon label .\" auto \"empty1 label empty2\" auto / auto auto minmax(\n /* Reserve space for the chevron so that the layout doesn't shift on\n hover */\n var(--cpd-space-2x),\n 1fr\n );\n place-items: center end;\n padding-block: var(--cpd-space-2x);\n padding-inline: var(--cpd-space-4x);\n box-sizing: border-box;\n inline-size: 100%;\n min-inline-size: 200px;\n color: var(--cpd-color-text-secondary);\n background: var(--cpd-color-bg-action-secondary-rest);\n}\n\n.item.interactive {\n cursor: pointer;\n}\n\n.item.no-label {\n grid-template: \"icon .\" auto / auto 1fr;\n}\n\n.label {\n grid-area: label;\n margin-inline-end: var(--cpd-space-4x);\n text-align: start;\n word-break: break-word; /* stylelint-disable-line declaration-property-value-keyword-no-deprecated */\n}\n\n.item.no-icon {\n grid-template: \"label .\" auto / auto 1fr;\n\n .label {\n /* Without icon, the height changes when hovered */\n min-block-size: 24px;\n }\n}\n\n.icon {\n grid-area: icon;\n margin-inline-end: var(--cpd-space-3x);\n}\n\n.item.no-label .icon {\n margin-inline-end: var(--cpd-space-4x);\n}\n\n.nav-hint {\n /* Hidden until the item is hovered over */\n display: none;\n flex-shrink: 0;\n}\n\nbutton.item {\n appearance: none;\n border: none;\n}\n\n.item[data-kind=\"primary\"] > .label {\n color: var(--cpd-color-text-primary);\n}\n\n.item[data-kind=\"primary\"] > .icon {\n color: var(--cpd-color-icon-primary);\n}\n\n.item[data-kind=\"primary\"] > .nav-hint {\n color: var(--cpd-color-icon-tertiary);\n}\n\n.item[data-kind=\"critical\"] > .label {\n color: var(--cpd-color-text-critical-primary);\n}\n\n.item[data-kind=\"critical\"] > .icon,\n.item[data-kind=\"critical\"] > .nav-hint {\n color: var(--cpd-color-icon-critical-primary);\n}\n\n@media (hover) {\n .item.interactive[data-kind=\"primary\"]:hover {\n background: var(--cpd-color-bg-action-secondary-hovered);\n }\n\n .item.interactive[data-kind=\"critical\"]:hover {\n background: var(--cpd-color-bg-critical-subtle);\n }\n\n /* Replace the children with the navigation hint on hover */\n .item.interactive:hover > .nav-hint {\n display: initial;\n }\n\n .item.interactive:hover > .nav-hint ~ * {\n display: none;\n }\n}\n\n.item.interactive[data-kind=\"primary\"]:active {\n background: var(--cpd-color-bg-action-secondary-pressed);\n}\n\n.item.interactive[data-kind=\"critical\"]:active {\n background: var(--cpd-color-bg-critical-subtle-hovered);\n}\n\n.item[data-kind].disabled {\n pointer-events: none;\n}\n\n.item[data-kind].disabled > .label,\n.item[data-kind].disabled > .icon,\n.item[data-kind].disabled > .nav-hint {\n color: var(--cpd-color-text-disabled);\n}\n"],"mappings":""}
@@ -0,0 +1,20 @@
1
+ //#region src/components/Menu/MenuItem.module.css
2
+ var item = "_item_lqfwq_8";
3
+ var interactive = "_interactive_lqfwq_26";
4
+ var label = "_label_lqfwq_34";
5
+ var icon = "_icon_lqfwq_50";
6
+ var disabled = "_disabled_lqfwq_118";
7
+ var MenuItem_module_default = {
8
+ item,
9
+ interactive,
10
+ "no-label": "_no-label_lqfwq_30",
11
+ label,
12
+ "no-icon": "_no-icon_lqfwq_41",
13
+ icon,
14
+ "nav-hint": "_nav-hint_lqfwq_59",
15
+ disabled
16
+ };
17
+ //#endregion
18
+ export { MenuItem_module_default as default };
19
+
20
+ //# sourceMappingURL=MenuItem.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuItem.module.js","names":[],"sources":["../../../src/components/Menu/MenuItem.module.css"],"sourcesContent":["/*\nCopyright 2023 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n.item {\n display: grid;\n grid-template: \"icon label .\" auto \"empty1 label empty2\" auto / auto auto minmax(\n /* Reserve space for the chevron so that the layout doesn't shift on\n hover */\n var(--cpd-space-2x),\n 1fr\n );\n place-items: center end;\n padding-block: var(--cpd-space-2x);\n padding-inline: var(--cpd-space-4x);\n box-sizing: border-box;\n inline-size: 100%;\n min-inline-size: 200px;\n color: var(--cpd-color-text-secondary);\n background: var(--cpd-color-bg-action-secondary-rest);\n}\n\n.item.interactive {\n cursor: pointer;\n}\n\n.item.no-label {\n grid-template: \"icon .\" auto / auto 1fr;\n}\n\n.label {\n grid-area: label;\n margin-inline-end: var(--cpd-space-4x);\n text-align: start;\n word-break: break-word; /* stylelint-disable-line declaration-property-value-keyword-no-deprecated */\n}\n\n.item.no-icon {\n grid-template: \"label .\" auto / auto 1fr;\n\n .label {\n /* Without icon, the height changes when hovered */\n min-block-size: 24px;\n }\n}\n\n.icon {\n grid-area: icon;\n margin-inline-end: var(--cpd-space-3x);\n}\n\n.item.no-label .icon {\n margin-inline-end: var(--cpd-space-4x);\n}\n\n.nav-hint {\n /* Hidden until the item is hovered over */\n display: none;\n flex-shrink: 0;\n}\n\nbutton.item {\n appearance: none;\n border: none;\n}\n\n.item[data-kind=\"primary\"] > .label {\n color: var(--cpd-color-text-primary);\n}\n\n.item[data-kind=\"primary\"] > .icon {\n color: var(--cpd-color-icon-primary);\n}\n\n.item[data-kind=\"primary\"] > .nav-hint {\n color: var(--cpd-color-icon-tertiary);\n}\n\n.item[data-kind=\"critical\"] > .label {\n color: var(--cpd-color-text-critical-primary);\n}\n\n.item[data-kind=\"critical\"] > .icon,\n.item[data-kind=\"critical\"] > .nav-hint {\n color: var(--cpd-color-icon-critical-primary);\n}\n\n@media (hover) {\n .item.interactive[data-kind=\"primary\"]:hover {\n background: var(--cpd-color-bg-action-secondary-hovered);\n }\n\n .item.interactive[data-kind=\"critical\"]:hover {\n background: var(--cpd-color-bg-critical-subtle);\n }\n\n /* Replace the children with the navigation hint on hover */\n .item.interactive:hover > .nav-hint {\n display: initial;\n }\n\n .item.interactive:hover > .nav-hint ~ * {\n display: none;\n }\n}\n\n.item.interactive[data-kind=\"primary\"]:active {\n background: var(--cpd-color-bg-action-secondary-pressed);\n}\n\n.item.interactive[data-kind=\"critical\"]:active {\n background: var(--cpd-color-bg-critical-subtle-hovered);\n}\n\n.item[data-kind].disabled {\n pointer-events: none;\n}\n\n.item[data-kind].disabled > .label,\n.item[data-kind].disabled > .icon,\n.item[data-kind].disabled > .nav-hint {\n color: var(--cpd-color-text-disabled);\n}\n"],"mappings":""}