@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,255 +1,237 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const ChevronDown = require("@vector-im/compound-design-tokens/assets/web/icons/chevron-down");
5
- const CheckIcon = require("@vector-im/compound-design-tokens/assets/web/icons/check");
6
- const ErrorIcon = require("@vector-im/compound-design-tokens/assets/web/icons/error-solid");
7
- const React = require("react");
8
- const classNames = require("classnames");
9
- const Dropdown_module = require("./Dropdown.module.css.cjs");
10
- const react = require("@floating-ui/react");
11
- const Dropdown = React.forwardRef(
12
- function Dropdown2({
13
- className,
14
- label,
15
- placeholder,
16
- helpLabel,
17
- onValueChange,
18
- error,
19
- value: controlledValue,
20
- defaultValue,
21
- values,
22
- ...props
23
- }, ref) {
24
- const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);
25
- const value = controlledValue ?? uncontrolledValue;
26
- const text = React.useMemo(
27
- () => value === void 0 ? placeholder : values.find(([v]) => v === value)?.[1] ?? placeholder,
28
- [value, values, placeholder]
29
- );
30
- const setValue = React.useCallback(
31
- (value2) => {
32
- setUncontrolledValue(value2);
33
- onValueChange?.(value2);
34
- },
35
- [setUncontrolledValue, onValueChange]
36
- );
37
- const [open, setOpen, dropdownRef] = useOpen();
38
- const { listRef, onComboboxKeyDown, onOptionKeyDown } = useKeyboardShortcut(
39
- open,
40
- setOpen,
41
- setValue
42
- );
43
- const buttonRef = React.useRef(null);
44
- React.useEffect(() => {
45
- if (value !== void 0) buttonRef.current?.focus();
46
- }, [value]);
47
- const hasPlaceholder = text === placeholder;
48
- const buttonClasses = classNames({
49
- [Dropdown_module.default.placeholder]: hasPlaceholder
50
- });
51
- const borderClasses = classNames(Dropdown_module.default.border, {
52
- [Dropdown_module.default.open]: open
53
- });
54
- const contentClasses = classNames(Dropdown_module.default.content, {
55
- [Dropdown_module.default.open]: open
56
- });
57
- const labelId = react.useId();
58
- const contentId = react.useId();
59
- return /* @__PURE__ */ jsxRuntime.jsxs(
60
- "div",
61
- {
62
- ref: dropdownRef,
63
- className: classNames(className, Dropdown_module.default.container),
64
- "aria-invalid": Boolean(error),
65
- children: [
66
- /* @__PURE__ */ jsxRuntime.jsx("label", { id: labelId, children: label }),
67
- /* @__PURE__ */ jsxRuntime.jsxs(
68
- "button",
69
- {
70
- className: buttonClasses,
71
- role: "combobox",
72
- "aria-haspopup": "listbox",
73
- "aria-labelledby": labelId,
74
- "aria-controls": contentId,
75
- "aria-expanded": open,
76
- ref: (element) => {
77
- buttonRef.current = element;
78
- if (typeof ref === "function") {
79
- ref(element);
80
- } else if (ref) {
81
- ref.current = element;
82
- }
83
- },
84
- onClick: () => setOpen((_open) => !_open),
85
- onKeyDown: onComboboxKeyDown,
86
- ...props,
87
- children: [
88
- text,
89
- /* @__PURE__ */ jsxRuntime.jsx(ChevronDown, { width: "24", height: "24" })
90
- ]
91
- }
92
- ),
93
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: borderClasses }),
94
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: contentClasses, children: /* @__PURE__ */ jsxRuntime.jsx(
95
- "ul",
96
- {
97
- ref: listRef,
98
- id: contentId,
99
- role: "listbox",
100
- className: Dropdown_module.default.content,
101
- children: values.map(([v, text2]) => /* @__PURE__ */ jsxRuntime.jsx(
102
- DropdownItem,
103
- {
104
- isDisplayed: open,
105
- isSelected: value === v,
106
- onClick: () => {
107
- setOpen(false);
108
- setValue(v);
109
- },
110
- onKeyDown: (e) => onOptionKeyDown(e, v),
111
- children: text2
112
- },
113
- v
114
- ))
115
- }
116
- ) }),
117
- !error && helpLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: Dropdown_module.default.help, children: helpLabel }),
118
- error && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: Dropdown_module.default.error, children: [
119
- /* @__PURE__ */ jsxRuntime.jsx(ErrorIcon, { width: "20", height: "20" }),
120
- error
121
- ] })
122
- ]
123
- }
124
- );
125
- }
126
- );
127
- const DropdownItem = React.memo(function DropdownItem2({
128
- children,
129
- isSelected,
130
- isDisplayed,
131
- ...props
132
- }) {
133
- const ref = React.useRef(null);
134
- React.useEffect(() => {
135
- if (isSelected && isDisplayed) {
136
- ref.current?.focus();
137
- }
138
- }, [isSelected, isDisplayed]);
139
- return /* @__PURE__ */ jsxRuntime.jsxs(
140
- "li",
141
- {
142
- tabIndex: 0,
143
- role: "option",
144
- ref,
145
- "aria-selected": isSelected,
146
- ...props,
147
- children: [
148
- children,
149
- " ",
150
- isSelected && /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { width: "20", height: "20" })
151
- ]
152
- }
153
- );
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_Dropdown_module = require("./Dropdown.module.cjs");
3
+ let classnames = require("classnames");
4
+ classnames = require_runtime.__toESM(classnames);
5
+ let react = require("react");
6
+ react = require_runtime.__toESM(react);
7
+ let _vector_im_compound_design_tokens_assets_web_icons_error_solid = require("@vector-im/compound-design-tokens/assets/web/icons/error-solid");
8
+ _vector_im_compound_design_tokens_assets_web_icons_error_solid = require_runtime.__toESM(_vector_im_compound_design_tokens_assets_web_icons_error_solid);
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ let _floating_ui_react = require("@floating-ui/react");
11
+ let _vector_im_compound_design_tokens_assets_web_icons_check = require("@vector-im/compound-design-tokens/assets/web/icons/check");
12
+ _vector_im_compound_design_tokens_assets_web_icons_check = require_runtime.__toESM(_vector_im_compound_design_tokens_assets_web_icons_check);
13
+ let _vector_im_compound_design_tokens_assets_web_icons_chevron_down = require("@vector-im/compound-design-tokens/assets/web/icons/chevron-down");
14
+ _vector_im_compound_design_tokens_assets_web_icons_chevron_down = require_runtime.__toESM(_vector_im_compound_design_tokens_assets_web_icons_chevron_down);
15
+ //#region src/components/Dropdown/Dropdown.tsx
16
+ /**
17
+ * The dropdown content.
18
+ */
19
+ var Dropdown = (0, react.forwardRef)(function Dropdown({ className, label, placeholder, helpLabel, onValueChange, error, value: controlledValue, defaultValue, values, ...props }, ref) {
20
+ const [uncontrolledValue, setUncontrolledValue] = (0, react.useState)(defaultValue);
21
+ const value = controlledValue ?? uncontrolledValue;
22
+ const text = (0, react.useMemo)(() => value === void 0 ? placeholder : values.find(([v]) => v === value)?.[1] ?? placeholder, [
23
+ value,
24
+ values,
25
+ placeholder
26
+ ]);
27
+ const setValue = (0, react.useCallback)((value) => {
28
+ setUncontrolledValue(value);
29
+ onValueChange?.(value);
30
+ }, [setUncontrolledValue, onValueChange]);
31
+ const [open, setOpen, dropdownRef] = useOpen();
32
+ const { listRef, onComboboxKeyDown, onOptionKeyDown } = useKeyboardShortcut(open, setOpen, setValue);
33
+ const buttonRef = (0, react.useRef)(null);
34
+ (0, react.useEffect)(() => {
35
+ if (value !== void 0) buttonRef.current?.focus();
36
+ }, [value]);
37
+ const hasPlaceholder = text === placeholder;
38
+ const buttonClasses = (0, classnames.default)({ [require_Dropdown_module.default.placeholder]: hasPlaceholder });
39
+ const borderClasses = (0, classnames.default)(require_Dropdown_module.default.border, { [require_Dropdown_module.default.open]: open });
40
+ const contentClasses = (0, classnames.default)(require_Dropdown_module.default.content, { [require_Dropdown_module.default.open]: open });
41
+ /**
42
+ * Ids for accessibility.
43
+ */
44
+ const labelId = (0, _floating_ui_react.useId)();
45
+ const contentId = (0, _floating_ui_react.useId)();
46
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
47
+ ref: dropdownRef,
48
+ className: (0, classnames.default)(className, require_Dropdown_module.default.container),
49
+ "aria-invalid": Boolean(error),
50
+ children: [
51
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
52
+ id: labelId,
53
+ children: label
54
+ }),
55
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
56
+ className: buttonClasses,
57
+ role: "combobox",
58
+ "aria-haspopup": "listbox",
59
+ "aria-labelledby": labelId,
60
+ "aria-controls": contentId,
61
+ "aria-expanded": open,
62
+ ref: (element) => {
63
+ buttonRef.current = element;
64
+ if (typeof ref === "function") ref(element);
65
+ else if (ref) ref.current = element;
66
+ },
67
+ onClick: () => setOpen((_open) => !_open),
68
+ onKeyDown: onComboboxKeyDown,
69
+ ...props,
70
+ children: [text, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_vector_im_compound_design_tokens_assets_web_icons_chevron_down.default, {
71
+ width: "24",
72
+ height: "24"
73
+ })]
74
+ }),
75
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: borderClasses }),
76
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
77
+ className: contentClasses,
78
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
79
+ ref: listRef,
80
+ id: contentId,
81
+ role: "listbox",
82
+ className: require_Dropdown_module.default.content,
83
+ children: values.map(([v, text]) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DropdownItem, {
84
+ isDisplayed: open,
85
+ isSelected: value === v,
86
+ onClick: () => {
87
+ setOpen(false);
88
+ setValue(v);
89
+ },
90
+ onKeyDown: (e) => onOptionKeyDown(e, v),
91
+ children: text
92
+ }, v))
93
+ })
94
+ }),
95
+ !error && helpLabel && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
96
+ className: require_Dropdown_module.default.help,
97
+ children: helpLabel
98
+ }),
99
+ error && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
100
+ className: require_Dropdown_module.default.error,
101
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_vector_im_compound_design_tokens_assets_web_icons_error_solid.default, {
102
+ width: "20",
103
+ height: "20"
104
+ }), error]
105
+ })
106
+ ]
107
+ });
154
108
  });
109
+ /**
110
+ * A dropdown item component.
111
+ */
112
+ var DropdownItem = (0, react.memo)(function DropdownItem({ children, isSelected, isDisplayed, ...props }) {
113
+ const ref = (0, react.useRef)(null);
114
+ (0, react.useEffect)(() => {
115
+ if (isSelected && isDisplayed) ref.current?.focus();
116
+ }, [isSelected, isDisplayed]);
117
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
118
+ tabIndex: 0,
119
+ role: "option",
120
+ ref,
121
+ "aria-selected": isSelected,
122
+ ...props,
123
+ children: [
124
+ children,
125
+ " ",
126
+ isSelected && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_vector_im_compound_design_tokens_assets_web_icons_check.default, {
127
+ width: "20",
128
+ height: "20"
129
+ })
130
+ ]
131
+ });
132
+ });
133
+ /**
134
+ * A hook to manage the open state of the dropdown.
135
+ */
155
136
  function useOpen() {
156
- const [open, setOpen] = React.useState(false);
157
- const ref = React.useRef(null);
158
- React.useEffect(() => {
159
- const closeIfOutside = (e) => {
160
- if (ref.current && !ref.current.contains(e.target)) {
161
- setOpen(false);
162
- }
163
- };
164
- document.addEventListener("click", closeIfOutside);
165
- return () => document.removeEventListener("click", closeIfOutside);
166
- }, [setOpen]);
167
- return [open, setOpen, ref];
137
+ const [open, setOpen] = (0, react.useState)(false);
138
+ const ref = (0, react.useRef)(null);
139
+ (0, react.useEffect)(() => {
140
+ const closeIfOutside = (e) => {
141
+ if (ref.current && !ref.current.contains(e.target)) setOpen(false);
142
+ };
143
+ document.addEventListener("click", closeIfOutside);
144
+ return () => document.removeEventListener("click", closeIfOutside);
145
+ }, [setOpen]);
146
+ return [
147
+ open,
148
+ setOpen,
149
+ ref
150
+ ];
168
151
  }
152
+ /**
153
+ * A hook to manage the keyboard shortcuts of the dropdown.
154
+ * @param open - the dropdown open state.
155
+ * @param setOpen - the dropdown open state setter.
156
+ * @param setValue - set the selected value and text
157
+ */
169
158
  function useKeyboardShortcut(open, setOpen, setValue) {
170
- const listRef = React.useRef(null);
171
- const onComboboxKeyDown = React.useCallback(
172
- ({ key }) => {
173
- switch (key) {
174
- // Enter and Space already managed because it's a button
175
- case "Escape":
176
- setOpen(false);
177
- break;
178
- case "ArrowDown":
179
- setOpen(true);
180
- if (open) {
181
- listRef.current?.firstElementChild?.focus();
182
- }
183
- break;
184
- case "ArrowUp":
185
- setOpen(true);
186
- break;
187
- case "Home": {
188
- setOpen(true);
189
- Promise.resolve().then(() => {
190
- listRef.current?.firstElementChild?.focus();
191
- });
192
- break;
193
- }
194
- case "End": {
195
- setOpen(true);
196
- Promise.resolve().then(() => {
197
- listRef.current?.lastElementChild?.focus();
198
- });
199
- break;
200
- }
201
- }
202
- },
203
- [listRef, open, setOpen]
204
- );
205
- const onOptionKeyDown = React.useCallback(
206
- (evt, value) => {
207
- const { key, altKey } = evt;
208
- evt.stopPropagation();
209
- evt.preventDefault();
210
- switch (key) {
211
- case "Enter":
212
- case " ": {
213
- setValue(value);
214
- setOpen(false);
215
- break;
216
- }
217
- case "Tab":
218
- case "Escape":
219
- setOpen(false);
220
- break;
221
- case "ArrowDown": {
222
- const currentFocus = document.activeElement;
223
- if (listRef.current?.contains(currentFocus) && currentFocus) {
224
- currentFocus.nextElementSibling?.focus();
225
- }
226
- break;
227
- }
228
- case "ArrowUp": {
229
- if (altKey) {
230
- setValue(value);
231
- setOpen(false);
232
- } else {
233
- const currentFocus = document.activeElement;
234
- if (listRef.current?.contains(currentFocus) && currentFocus) {
235
- currentFocus.previousElementSibling?.focus();
236
- }
237
- }
238
- break;
239
- }
240
- case "Home": {
241
- listRef.current?.firstElementChild?.focus();
242
- break;
243
- }
244
- case "End": {
245
- listRef.current?.lastElementChild?.focus();
246
- break;
247
- }
248
- }
249
- },
250
- [listRef, setValue, setOpen]
251
- );
252
- return { listRef, onComboboxKeyDown, onOptionKeyDown };
159
+ const listRef = (0, react.useRef)(null);
160
+ return {
161
+ listRef,
162
+ onComboboxKeyDown: (0, react.useCallback)(({ key }) => {
163
+ switch (key) {
164
+ case "Escape":
165
+ setOpen(false);
166
+ break;
167
+ case "ArrowDown":
168
+ setOpen(true);
169
+ if (open) (listRef.current?.firstElementChild)?.focus();
170
+ break;
171
+ case "ArrowUp":
172
+ setOpen(true);
173
+ break;
174
+ case "Home":
175
+ setOpen(true);
176
+ Promise.resolve().then(() => {
177
+ (listRef.current?.firstElementChild)?.focus();
178
+ });
179
+ break;
180
+ case "End":
181
+ setOpen(true);
182
+ Promise.resolve().then(() => {
183
+ (listRef.current?.lastElementChild)?.focus();
184
+ });
185
+ break;
186
+ }
187
+ }, [
188
+ listRef,
189
+ open,
190
+ setOpen
191
+ ]),
192
+ onOptionKeyDown: (0, react.useCallback)((evt, value) => {
193
+ const { key, altKey } = evt;
194
+ evt.stopPropagation();
195
+ evt.preventDefault();
196
+ switch (key) {
197
+ case "Enter":
198
+ case " ":
199
+ setValue(value);
200
+ setOpen(false);
201
+ break;
202
+ case "Tab":
203
+ case "Escape":
204
+ setOpen(false);
205
+ break;
206
+ case "ArrowDown": {
207
+ const currentFocus = document.activeElement;
208
+ if (listRef.current?.contains(currentFocus) && currentFocus) currentFocus.nextElementSibling?.focus();
209
+ break;
210
+ }
211
+ case "ArrowUp":
212
+ if (altKey) {
213
+ setValue(value);
214
+ setOpen(false);
215
+ } else {
216
+ const currentFocus = document.activeElement;
217
+ if (listRef.current?.contains(currentFocus) && currentFocus) currentFocus.previousElementSibling?.focus();
218
+ }
219
+ break;
220
+ case "Home":
221
+ (listRef.current?.firstElementChild)?.focus();
222
+ break;
223
+ case "End":
224
+ (listRef.current?.lastElementChild)?.focus();
225
+ break;
226
+ }
227
+ }, [
228
+ listRef,
229
+ setValue,
230
+ setOpen
231
+ ])
232
+ };
253
233
  }
234
+ //#endregion
254
235
  exports.Dropdown = Dropdown;
255
- //# sourceMappingURL=Dropdown.cjs.map
236
+
237
+ //# sourceMappingURL=Dropdown.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.cjs","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["/*\nCopyright 2024 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 ChevronDown from \"@vector-im/compound-design-tokens/assets/web/icons/chevron-down\";\nimport Check from \"@vector-im/compound-design-tokens/assets/web/icons/check\";\nimport Error from \"@vector-im/compound-design-tokens/assets/web/icons/error-solid\";\n\nimport React, {\n type Dispatch,\n forwardRef,\n type HTMLProps,\n memo,\n type RefObject,\n type SetStateAction,\n useCallback,\n useEffect,\n useRef,\n useState,\n type KeyboardEvent,\n useMemo,\n} from \"react\";\n\nimport classNames from \"classnames\";\n\nimport styles from \"./Dropdown.module.css\";\nimport { useId } from \"@floating-ui/react\";\n\ntype DropdownProps = {\n /**\n * The CSS class name.\n */\n className?: string;\n /**\n * The controlled value of the dropdown.\n */\n value?: string;\n /**\n * The default value of the dropdown, used when uncontrolled.\n */\n defaultValue?: string;\n /**\n * The values of the dropdown.\n * [value, text]\n */\n values: [string, string][];\n /**\n * The placeholder text.\n */\n placeholder: string;\n /**\n * The label to display at the top of the dropdown\n */\n label: string;\n /**\n * The help label to display at the bottom of the dropdown\n */\n helpLabel?: string;\n /**\n * Callback for when the value changes.\n * @param value\n */\n onValueChange?: (value: string) => void;\n /**\n * The error message to display.\n */\n error?: string;\n};\n\n/**\n * The dropdown content.\n */\nexport const Dropdown = forwardRef<HTMLButtonElement, DropdownProps>(\n function Dropdown(\n {\n className,\n label,\n placeholder,\n helpLabel,\n onValueChange,\n error,\n value: controlledValue,\n defaultValue,\n values,\n ...props\n },\n ref,\n ) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = controlledValue ?? uncontrolledValue;\n const text = useMemo(\n () =>\n value === undefined\n ? placeholder\n : (values.find(([v]) => v === value)?.[1] ?? placeholder),\n [value, values, placeholder],\n );\n\n const setValue = useCallback(\n (value: string) => {\n setUncontrolledValue(value);\n onValueChange?.(value);\n },\n [setUncontrolledValue, onValueChange],\n );\n\n const [open, setOpen, dropdownRef] = useOpen();\n const { listRef, onComboboxKeyDown, onOptionKeyDown } = useKeyboardShortcut(\n open,\n setOpen,\n setValue,\n );\n\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n useEffect(() => {\n // Focus the button when the value is set\n // Test if the value is undefined to avoid focusing on the first render\n if (value !== undefined) buttonRef.current?.focus();\n }, [value]);\n\n const hasPlaceholder = text === placeholder;\n const buttonClasses = classNames({\n [styles.placeholder]: hasPlaceholder,\n });\n const borderClasses = classNames(styles.border, {\n [styles.open]: open,\n });\n const contentClasses = classNames(styles.content, {\n [styles.open]: open,\n });\n\n /**\n * Ids for accessibility.\n */\n const labelId = useId();\n const contentId = useId();\n\n return (\n <div\n ref={dropdownRef}\n className={classNames(className, styles.container)}\n aria-invalid={Boolean(error)}\n >\n <label id={labelId}>{label}</label>\n <button\n className={buttonClasses}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-labelledby={labelId}\n aria-controls={contentId}\n aria-expanded={open}\n ref={(element) => {\n // Private ref to focus the button\n buttonRef.current = element;\n // Handle forwarded ref\n if (typeof ref === \"function\") {\n ref(element);\n } else if (ref) {\n ref.current = element;\n }\n }}\n onClick={() => setOpen((_open) => !_open)}\n onKeyDown={onComboboxKeyDown}\n {...props}\n >\n {text}\n <ChevronDown width=\"24\" height=\"24\" />\n </button>\n <div className={borderClasses} />\n <div className={contentClasses}>\n <ul\n ref={listRef}\n id={contentId}\n role=\"listbox\"\n className={styles.content}\n >\n {values.map(([v, text]) => (\n <DropdownItem\n key={v}\n isDisplayed={open}\n isSelected={value === v}\n onClick={() => {\n setOpen(false);\n setValue(v);\n }}\n onKeyDown={(e) => onOptionKeyDown(e, v)}\n >\n {text}\n </DropdownItem>\n ))}\n </ul>\n </div>\n {!error && helpLabel && (\n <span className={styles.help}>{helpLabel}</span>\n )}\n {error && (\n <span className={styles.error}>\n <Error width=\"20\" height=\"20\" />\n {error}\n </span>\n )}\n </div>\n );\n },\n);\n\ntype DropdownItemProps = HTMLProps<HTMLLIElement> & {\n /**\n * Whether the dropdown item is selected.\n */\n isSelected: boolean;\n /**\n * Whether the dropdown item is displayed.\n */\n isDisplayed: boolean;\n /**\n * The text to display in the dropdown item.\n */\n children: string;\n};\n\n/**\n * A dropdown item component.\n */\nconst DropdownItem = memo(function DropdownItem({\n children,\n isSelected,\n isDisplayed,\n ...props\n}: DropdownItemProps) {\n const ref = useRef<HTMLLIElement>(null);\n\n // Focus the item if the dropdown is open and the item is already selected\n useEffect(() => {\n if (isSelected && isDisplayed) {\n ref.current?.focus();\n }\n }, [isSelected, isDisplayed]);\n\n return (\n <li\n tabIndex={0}\n role=\"option\"\n ref={ref}\n aria-selected={isSelected}\n {...props}\n >\n {children} {isSelected && <Check width=\"20\" height=\"20\" />}\n </li>\n );\n});\n\n/**\n * A hook to manage the open state of the dropdown.\n */\nfunction useOpen(): [\n boolean,\n Dispatch<SetStateAction<boolean>>,\n RefObject<HTMLDivElement | null>,\n] {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement | null>(null);\n\n // If the user clicks outside the dropdown, close it\n useEffect(() => {\n const closeIfOutside = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"click\", closeIfOutside);\n return () => document.removeEventListener(\"click\", closeIfOutside);\n }, [setOpen]);\n\n return [open, setOpen, ref];\n}\n\n/**\n * A hook to manage the keyboard shortcuts of the dropdown.\n * @param open - the dropdown open state.\n * @param setOpen - the dropdown open state setter.\n * @param setValue - set the selected value and text\n */\nfunction useKeyboardShortcut(\n open: boolean,\n setOpen: Dispatch<SetStateAction<boolean>>,\n setValue: (value: string) => void,\n) {\n const listRef = useRef<HTMLUListElement>(null);\n const onComboboxKeyDown = useCallback(\n ({ key }: KeyboardEvent) => {\n switch (key) {\n // Enter and Space already managed because it's a button\n case \"Escape\":\n setOpen(false);\n break;\n case \"ArrowDown\":\n setOpen(true);\n // If open, focus the first element\n if (open) {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n }\n break;\n case \"ArrowUp\":\n setOpen(true);\n break;\n case \"Home\": {\n setOpen(true);\n // Wait for the dropdown to be opened\n Promise.resolve().then(() => {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n });\n break;\n }\n case \"End\": {\n setOpen(true);\n // Wait for the dropdown to be opened\n Promise.resolve().then(() => {\n (listRef.current?.lastElementChild as HTMLElement)?.focus();\n });\n break;\n }\n }\n },\n [listRef, open, setOpen],\n );\n\n const onOptionKeyDown = useCallback(\n (evt: KeyboardEvent, value: string) => {\n const { key, altKey } = evt;\n evt.stopPropagation();\n evt.preventDefault();\n\n switch (key) {\n case \"Enter\":\n case \" \": {\n setValue(value);\n setOpen(false);\n break;\n }\n case \"Tab\":\n case \"Escape\":\n setOpen(false);\n break;\n case \"ArrowDown\": {\n const currentFocus = document.activeElement;\n if (listRef.current?.contains(currentFocus) && currentFocus) {\n (currentFocus.nextElementSibling as HTMLElement)?.focus();\n }\n break;\n }\n case \"ArrowUp\": {\n if (altKey) {\n setValue(value);\n setOpen(false);\n } else {\n const currentFocus = document.activeElement;\n if (listRef.current?.contains(currentFocus) && currentFocus) {\n (currentFocus.previousElementSibling as HTMLElement)?.focus();\n }\n }\n break;\n }\n case \"Home\": {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n break;\n }\n case \"End\": {\n (listRef.current?.lastElementChild as HTMLElement)?.focus();\n break;\n }\n }\n },\n [listRef, setValue, setOpen],\n );\n\n return { listRef, onComboboxKeyDown, onOptionKeyDown };\n}\n"],"names":["forwardRef","Dropdown","useState","useMemo","useCallback","value","useRef","useEffect","styles","useId","jsxs","jsx","text","Error","memo","DropdownItem","Check"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.cjs","names":[],"sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["/*\nCopyright 2024 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 ChevronDown from \"@vector-im/compound-design-tokens/assets/web/icons/chevron-down\";\nimport Check from \"@vector-im/compound-design-tokens/assets/web/icons/check\";\nimport Error from \"@vector-im/compound-design-tokens/assets/web/icons/error-solid\";\n\nimport React, {\n type Dispatch,\n forwardRef,\n type HTMLProps,\n memo,\n type RefObject,\n type SetStateAction,\n useCallback,\n useEffect,\n useRef,\n useState,\n type KeyboardEvent,\n useMemo,\n} from \"react\";\n\nimport classNames from \"classnames\";\n\nimport styles from \"./Dropdown.module.css\";\nimport { useId } from \"@floating-ui/react\";\n\ntype DropdownProps = {\n /**\n * The CSS class name.\n */\n className?: string;\n /**\n * The controlled value of the dropdown.\n */\n value?: string;\n /**\n * The default value of the dropdown, used when uncontrolled.\n */\n defaultValue?: string;\n /**\n * The values of the dropdown.\n * [value, text]\n */\n values: [string, string][];\n /**\n * The placeholder text.\n */\n placeholder: string;\n /**\n * The label to display at the top of the dropdown\n */\n label: string;\n /**\n * The help label to display at the bottom of the dropdown\n */\n helpLabel?: string;\n /**\n * Callback for when the value changes.\n * @param value\n */\n onValueChange?: (value: string) => void;\n /**\n * The error message to display.\n */\n error?: string;\n};\n\n/**\n * The dropdown content.\n */\nexport const Dropdown = forwardRef<HTMLButtonElement, DropdownProps>(\n function Dropdown(\n {\n className,\n label,\n placeholder,\n helpLabel,\n onValueChange,\n error,\n value: controlledValue,\n defaultValue,\n values,\n ...props\n },\n ref,\n ) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = controlledValue ?? uncontrolledValue;\n const text = useMemo(\n () =>\n value === undefined\n ? placeholder\n : (values.find(([v]) => v === value)?.[1] ?? placeholder),\n [value, values, placeholder],\n );\n\n const setValue = useCallback(\n (value: string) => {\n setUncontrolledValue(value);\n onValueChange?.(value);\n },\n [setUncontrolledValue, onValueChange],\n );\n\n const [open, setOpen, dropdownRef] = useOpen();\n const { listRef, onComboboxKeyDown, onOptionKeyDown } = useKeyboardShortcut(\n open,\n setOpen,\n setValue,\n );\n\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n useEffect(() => {\n // Focus the button when the value is set\n // Test if the value is undefined to avoid focusing on the first render\n if (value !== undefined) buttonRef.current?.focus();\n }, [value]);\n\n const hasPlaceholder = text === placeholder;\n const buttonClasses = classNames({\n [styles.placeholder]: hasPlaceholder,\n });\n const borderClasses = classNames(styles.border, {\n [styles.open]: open,\n });\n const contentClasses = classNames(styles.content, {\n [styles.open]: open,\n });\n\n /**\n * Ids for accessibility.\n */\n const labelId = useId();\n const contentId = useId();\n\n return (\n <div\n ref={dropdownRef}\n className={classNames(className, styles.container)}\n aria-invalid={Boolean(error)}\n >\n <label id={labelId}>{label}</label>\n <button\n className={buttonClasses}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-labelledby={labelId}\n aria-controls={contentId}\n aria-expanded={open}\n ref={(element) => {\n // Private ref to focus the button\n buttonRef.current = element;\n // Handle forwarded ref\n if (typeof ref === \"function\") {\n ref(element);\n } else if (ref) {\n ref.current = element;\n }\n }}\n onClick={() => setOpen((_open) => !_open)}\n onKeyDown={onComboboxKeyDown}\n {...props}\n >\n {text}\n <ChevronDown width=\"24\" height=\"24\" />\n </button>\n <div className={borderClasses} />\n <div className={contentClasses}>\n <ul\n ref={listRef}\n id={contentId}\n role=\"listbox\"\n className={styles.content}\n >\n {values.map(([v, text]) => (\n <DropdownItem\n key={v}\n isDisplayed={open}\n isSelected={value === v}\n onClick={() => {\n setOpen(false);\n setValue(v);\n }}\n onKeyDown={(e) => onOptionKeyDown(e, v)}\n >\n {text}\n </DropdownItem>\n ))}\n </ul>\n </div>\n {!error && helpLabel && (\n <span className={styles.help}>{helpLabel}</span>\n )}\n {error && (\n <span className={styles.error}>\n <Error width=\"20\" height=\"20\" />\n {error}\n </span>\n )}\n </div>\n );\n },\n);\n\ntype DropdownItemProps = HTMLProps<HTMLLIElement> & {\n /**\n * Whether the dropdown item is selected.\n */\n isSelected: boolean;\n /**\n * Whether the dropdown item is displayed.\n */\n isDisplayed: boolean;\n /**\n * The text to display in the dropdown item.\n */\n children: string;\n};\n\n/**\n * A dropdown item component.\n */\nconst DropdownItem = memo(function DropdownItem({\n children,\n isSelected,\n isDisplayed,\n ...props\n}: DropdownItemProps) {\n const ref = useRef<HTMLLIElement>(null);\n\n // Focus the item if the dropdown is open and the item is already selected\n useEffect(() => {\n if (isSelected && isDisplayed) {\n ref.current?.focus();\n }\n }, [isSelected, isDisplayed]);\n\n return (\n <li\n tabIndex={0}\n role=\"option\"\n ref={ref}\n aria-selected={isSelected}\n {...props}\n >\n {children} {isSelected && <Check width=\"20\" height=\"20\" />}\n </li>\n );\n});\n\n/**\n * A hook to manage the open state of the dropdown.\n */\nfunction useOpen(): [\n boolean,\n Dispatch<SetStateAction<boolean>>,\n RefObject<HTMLDivElement | null>,\n] {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement | null>(null);\n\n // If the user clicks outside the dropdown, close it\n useEffect(() => {\n const closeIfOutside = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"click\", closeIfOutside);\n return () => document.removeEventListener(\"click\", closeIfOutside);\n }, [setOpen]);\n\n return [open, setOpen, ref];\n}\n\n/**\n * A hook to manage the keyboard shortcuts of the dropdown.\n * @param open - the dropdown open state.\n * @param setOpen - the dropdown open state setter.\n * @param setValue - set the selected value and text\n */\nfunction useKeyboardShortcut(\n open: boolean,\n setOpen: Dispatch<SetStateAction<boolean>>,\n setValue: (value: string) => void,\n) {\n const listRef = useRef<HTMLUListElement>(null);\n const onComboboxKeyDown = useCallback(\n ({ key }: KeyboardEvent) => {\n switch (key) {\n // Enter and Space already managed because it's a button\n case \"Escape\":\n setOpen(false);\n break;\n case \"ArrowDown\":\n setOpen(true);\n // If open, focus the first element\n if (open) {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n }\n break;\n case \"ArrowUp\":\n setOpen(true);\n break;\n case \"Home\": {\n setOpen(true);\n // Wait for the dropdown to be opened\n Promise.resolve().then(() => {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n });\n break;\n }\n case \"End\": {\n setOpen(true);\n // Wait for the dropdown to be opened\n Promise.resolve().then(() => {\n (listRef.current?.lastElementChild as HTMLElement)?.focus();\n });\n break;\n }\n }\n },\n [listRef, open, setOpen],\n );\n\n const onOptionKeyDown = useCallback(\n (evt: KeyboardEvent, value: string) => {\n const { key, altKey } = evt;\n evt.stopPropagation();\n evt.preventDefault();\n\n switch (key) {\n case \"Enter\":\n case \" \": {\n setValue(value);\n setOpen(false);\n break;\n }\n case \"Tab\":\n case \"Escape\":\n setOpen(false);\n break;\n case \"ArrowDown\": {\n const currentFocus = document.activeElement;\n if (listRef.current?.contains(currentFocus) && currentFocus) {\n (currentFocus.nextElementSibling as HTMLElement)?.focus();\n }\n break;\n }\n case \"ArrowUp\": {\n if (altKey) {\n setValue(value);\n setOpen(false);\n } else {\n const currentFocus = document.activeElement;\n if (listRef.current?.contains(currentFocus) && currentFocus) {\n (currentFocus.previousElementSibling as HTMLElement)?.focus();\n }\n }\n break;\n }\n case \"Home\": {\n (listRef.current?.firstElementChild as HTMLElement)?.focus();\n break;\n }\n case \"End\": {\n (listRef.current?.lastElementChild as HTMLElement)?.focus();\n break;\n }\n }\n },\n [listRef, setValue, setOpen],\n );\n\n return { listRef, onComboboxKeyDown, onOptionKeyDown };\n}\n"],"mappings":"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"}