@vector-im/compound-web 8.3.6 → 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 (878) 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 +44 -39
  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 -47
  268. package/dist/components/Menu/Menu.cjs.map +1 -1
  269. package/dist/components/Menu/Menu.js +63 -45
  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 +32 -112
  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/{components → src/components}/Menu/Menu.d.ts +4 -0
  477. package/dist/src/components/Menu/Menu.d.ts.map +1 -0
  478. package/dist/src/components/Menu/MenuContext.d.ts.map +1 -0
  479. package/dist/src/components/Menu/MenuItem.d.ts.map +1 -0
  480. package/dist/src/components/Menu/MenuTitle.d.ts.map +1 -0
  481. package/dist/src/components/Menu/RadioMenuItem.d.ts.map +1 -0
  482. package/dist/src/components/Menu/ToggleMenuItem.d.ts.map +1 -0
  483. package/dist/src/components/Nav/NavBar.d.ts.map +1 -0
  484. package/dist/src/components/Nav/NavItem.d.ts.map +1 -0
  485. package/dist/src/components/Nav/index.d.ts.map +1 -0
  486. package/dist/src/components/PageHeader/PageHeader.d.ts +19 -0
  487. package/dist/src/components/PageHeader/PageHeader.d.ts.map +1 -0
  488. package/dist/{components → src/components}/Progress/Progress.d.ts +2 -1
  489. package/dist/src/components/Progress/Progress.d.ts.map +1 -0
  490. package/dist/src/components/ReleaseAnnouncement/ReleaseAnnouncement.d.ts.map +1 -0
  491. package/dist/src/components/ReleaseAnnouncement/ReleaseAnnouncementContext.d.ts.map +1 -0
  492. package/dist/src/components/ReleaseAnnouncement/index.d.ts.map +1 -0
  493. package/dist/src/components/ReleaseAnnouncement/useReleaseAnnouncement.d.ts.map +1 -0
  494. package/dist/src/components/Search/Search.d.ts.map +1 -0
  495. package/dist/src/components/Separator/Separator.d.ts.map +1 -0
  496. package/dist/src/components/Toast/Toast.d.ts.map +1 -0
  497. package/dist/src/components/Tooltip/Tooltip.d.ts.map +1 -0
  498. package/dist/src/components/Tooltip/TooltipContext.d.ts.map +1 -0
  499. package/dist/src/components/Tooltip/TooltipProvider.d.ts.map +1 -0
  500. package/dist/src/components/Tooltip/useTooltip.d.ts.map +1 -0
  501. package/dist/src/components/Typography/Body.d.ts.map +1 -0
  502. package/dist/{components → src/components}/Typography/Heading.d.ts +2 -1
  503. package/dist/src/components/Typography/Heading.d.ts.map +1 -0
  504. package/dist/{components → src/components}/Typography/Text.d.ts +2 -1
  505. package/dist/src/components/Typography/Text.d.ts.map +1 -0
  506. package/dist/{components → src/components}/Typography/Typography.d.ts +2 -1
  507. package/dist/src/components/Typography/Typography.d.ts.map +1 -0
  508. package/dist/src/components/VisualList/VisualList.d.ts.map +1 -0
  509. package/dist/src/components/VisualList/VisualListItem.d.ts.map +1 -0
  510. package/dist/src/components/VisualList/index.d.ts.map +1 -0
  511. package/dist/src/index.d.ts.map +1 -0
  512. package/dist/src/setupTests.d.ts.map +1 -0
  513. package/dist/src/utils/__ComponentTemplate__/__ComponentTemplate__.d.ts.map +1 -0
  514. package/dist/src/utils/platform.d.ts.map +1 -0
  515. package/dist/src/utils/size.d.ts +5 -0
  516. package/dist/src/utils/size.d.ts.map +1 -0
  517. package/dist/src/utils/string.d.ts.map +1 -0
  518. package/dist/style.css +1630 -1622
  519. package/dist/utils/platform.cjs +12 -11
  520. package/dist/utils/platform.cjs.map +1 -1
  521. package/dist/utils/platform.js +13 -12
  522. package/dist/utils/platform.js.map +1 -1
  523. package/dist/utils/string.cjs +19 -19
  524. package/dist/utils/string.cjs.map +1 -1
  525. package/dist/utils/string.js +20 -20
  526. package/dist/utils/string.js.map +1 -1
  527. package/package.json +16 -16
  528. package/src/components/Avatar/Avatar.module.css +1 -1
  529. package/src/components/Avatar/avatar-clip.mask.svg +2 -6
  530. package/src/components/Breadcrumb/Breadcrumb.module.css +1 -1
  531. package/src/components/Breadcrumb/Breadcrumb.tsx +1 -1
  532. package/src/components/Button/Button.tsx +2 -1
  533. package/src/components/Dropdown/Dropdown.module.css +1 -1
  534. package/src/components/Form/Controls/EditInPlace/EditInPlace.tsx +1 -1
  535. package/src/components/Icon/BigIcon/BigIcon.module.css +11 -8
  536. package/src/components/Icon/BigIcon/BigIcon.tsx +11 -18
  537. package/src/components/Link/Link.module.css +5 -1
  538. package/src/components/Link/Link.tsx +6 -5
  539. package/src/components/Menu/Menu.tsx +11 -1
  540. package/src/components/Nav/Nav.module.css +1 -1
  541. package/src/components/PageHeader/PageHeader.module.css +41 -0
  542. package/src/components/PageHeader/PageHeader.tsx +67 -0
  543. package/src/components/Progress/Progress.tsx +2 -1
  544. package/src/components/Separator/Separator.module.css +2 -2
  545. package/src/components/Typography/Heading.tsx +2 -1
  546. package/src/components/Typography/Text.tsx +2 -1
  547. package/src/components/Typography/Typography.tsx +2 -1
  548. package/src/components/VisualList/VisualList.module.css +1 -1
  549. package/src/utils/size.ts +11 -0
  550. package/dist/components/ActivityMarker/Pill.d.ts.map +0 -1
  551. package/dist/components/ActivityMarker/Pill.module.css.cjs +0 -9
  552. package/dist/components/ActivityMarker/Pill.module.css.cjs.map +0 -1
  553. package/dist/components/ActivityMarker/Pill.module.css.js +0 -9
  554. package/dist/components/ActivityMarker/Pill.module.css.js.map +0 -1
  555. package/dist/components/ActivityMarker/Unread.d.ts.map +0 -1
  556. package/dist/components/ActivityMarker/Unread.module.css.cjs +0 -9
  557. package/dist/components/ActivityMarker/Unread.module.css.cjs.map +0 -1
  558. package/dist/components/ActivityMarker/Unread.module.css.js +0 -9
  559. package/dist/components/ActivityMarker/Unread.module.css.js.map +0 -1
  560. package/dist/components/ActivityMarker/UnreadCounter.d.ts.map +0 -1
  561. package/dist/components/ActivityMarker/UnreadCounter.module.css.cjs +0 -7
  562. package/dist/components/ActivityMarker/UnreadCounter.module.css.cjs.map +0 -1
  563. package/dist/components/ActivityMarker/UnreadCounter.module.css.js +0 -7
  564. package/dist/components/ActivityMarker/UnreadCounter.module.css.js.map +0 -1
  565. package/dist/components/ActivityMarker/index.d.ts.map +0 -1
  566. package/dist/components/Alert/Alert.d.ts.map +0 -1
  567. package/dist/components/Alert/Alert.module.css.cjs +0 -19
  568. package/dist/components/Alert/Alert.module.css.cjs.map +0 -1
  569. package/dist/components/Alert/Alert.module.css.js +0 -19
  570. package/dist/components/Alert/Alert.module.css.js.map +0 -1
  571. package/dist/components/Avatar/Avatar.d.ts.map +0 -1
  572. package/dist/components/Avatar/Avatar.module.css.cjs +0 -15
  573. package/dist/components/Avatar/Avatar.module.css.cjs.map +0 -1
  574. package/dist/components/Avatar/Avatar.module.css.js +0 -15
  575. package/dist/components/Avatar/Avatar.module.css.js.map +0 -1
  576. package/dist/components/Avatar/AvatarStack.d.ts.map +0 -1
  577. package/dist/components/Avatar/avatar-clip.mask.svg.cjs +0 -5
  578. package/dist/components/Avatar/avatar-clip.mask.svg.cjs.map +0 -1
  579. package/dist/components/Avatar/avatar-clip.mask.svg.js +0 -5
  580. package/dist/components/Avatar/avatar-clip.mask.svg.js.map +0 -1
  581. package/dist/components/Avatar/useIdColorHash.d.ts.map +0 -1
  582. package/dist/components/Badge/Badge.d.ts.map +0 -1
  583. package/dist/components/Badge/Badge.module.css.cjs +0 -9
  584. package/dist/components/Badge/Badge.module.css.cjs.map +0 -1
  585. package/dist/components/Badge/Badge.module.css.js +0 -9
  586. package/dist/components/Badge/Badge.module.css.js.map +0 -1
  587. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +0 -1
  588. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs +0 -13
  589. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs.map +0 -1
  590. package/dist/components/Breadcrumb/Breadcrumb.module.css.js +0 -13
  591. package/dist/components/Breadcrumb/Breadcrumb.module.css.js.map +0 -1
  592. package/dist/components/Breadcrumb/index.d.ts.map +0 -1
  593. package/dist/components/Button/Button.d.ts.map +0 -1
  594. package/dist/components/Button/Button.module.css.cjs +0 -14
  595. package/dist/components/Button/Button.module.css.cjs.map +0 -1
  596. package/dist/components/Button/Button.module.css.js +0 -14
  597. package/dist/components/Button/Button.module.css.js.map +0 -1
  598. package/dist/components/Button/IconButton/IconButton.d.ts.map +0 -1
  599. package/dist/components/Button/IconButton/IconButton.module.css.cjs +0 -11
  600. package/dist/components/Button/IconButton/IconButton.module.css.cjs.map +0 -1
  601. package/dist/components/Button/IconButton/IconButton.module.css.js +0 -11
  602. package/dist/components/Button/IconButton/IconButton.module.css.js.map +0 -1
  603. package/dist/components/Button/UnstyledButton.d.ts.map +0 -1
  604. package/dist/components/Button/index.d.ts.map +0 -1
  605. package/dist/components/ChatFilter/ChatFilter.d.ts.map +0 -1
  606. package/dist/components/ChatFilter/ChatFilter.module.css.cjs +0 -7
  607. package/dist/components/ChatFilter/ChatFilter.module.css.cjs.map +0 -1
  608. package/dist/components/ChatFilter/ChatFilter.module.css.js +0 -7
  609. package/dist/components/ChatFilter/ChatFilter.module.css.js.map +0 -1
  610. package/dist/components/ChatFilter/index.d.ts.map +0 -1
  611. package/dist/components/Dropdown/Dropdown.d.ts.map +0 -1
  612. package/dist/components/Dropdown/Dropdown.module.css.cjs +0 -27
  613. package/dist/components/Dropdown/Dropdown.module.css.cjs.map +0 -1
  614. package/dist/components/Dropdown/Dropdown.module.css.js +0 -27
  615. package/dist/components/Dropdown/Dropdown.module.css.js.map +0 -1
  616. package/dist/components/Dropdown/index.d.ts.map +0 -1
  617. package/dist/components/Form/Controls/Action/Action.d.ts.map +0 -1
  618. package/dist/components/Form/Controls/Action/Action.module.css.cjs +0 -15
  619. package/dist/components/Form/Controls/Action/Action.module.css.cjs.map +0 -1
  620. package/dist/components/Form/Controls/Action/Action.module.css.js +0 -15
  621. package/dist/components/Form/Controls/Action/Action.module.css.js.map +0 -1
  622. package/dist/components/Form/Controls/Action/index.d.ts.map +0 -1
  623. package/dist/components/Form/Controls/Checkbox/Checkbox.d.ts.map +0 -1
  624. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.cjs +0 -15
  625. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.cjs.map +0 -1
  626. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.js +0 -15
  627. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.js.map +0 -1
  628. package/dist/components/Form/Controls/Checkbox/index.d.ts.map +0 -1
  629. package/dist/components/Form/Controls/EditInPlace/EditInPlace.d.ts.map +0 -1
  630. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.cjs +0 -10
  631. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.cjs.map +0 -1
  632. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.js +0 -10
  633. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.js.map +0 -1
  634. package/dist/components/Form/Controls/EditInPlace/index.d.ts.map +0 -1
  635. package/dist/components/Form/Controls/MFA/MFA.d.ts.map +0 -1
  636. package/dist/components/Form/Controls/MFA/MFA.module.css.cjs +0 -15
  637. package/dist/components/Form/Controls/MFA/MFA.module.css.cjs.map +0 -1
  638. package/dist/components/Form/Controls/MFA/MFA.module.css.js +0 -15
  639. package/dist/components/Form/Controls/MFA/MFA.module.css.js.map +0 -1
  640. package/dist/components/Form/Controls/MFA/index.d.ts.map +0 -1
  641. package/dist/components/Form/Controls/Password/Password.d.ts.map +0 -1
  642. package/dist/components/Form/Controls/Password/index.d.ts.map +0 -1
  643. package/dist/components/Form/Controls/Radio/Radio.d.ts.map +0 -1
  644. package/dist/components/Form/Controls/Radio/Radio.module.css.cjs +0 -15
  645. package/dist/components/Form/Controls/Radio/Radio.module.css.cjs.map +0 -1
  646. package/dist/components/Form/Controls/Radio/Radio.module.css.js +0 -15
  647. package/dist/components/Form/Controls/Radio/Radio.module.css.js.map +0 -1
  648. package/dist/components/Form/Controls/Radio/index.d.ts.map +0 -1
  649. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.d.ts.map +0 -1
  650. package/dist/components/Form/Controls/SettingsToggle/index.d.ts.map +0 -1
  651. package/dist/components/Form/Controls/Text/Text.d.ts.map +0 -1
  652. package/dist/components/Form/Controls/Text/Text.module.css.cjs +0 -10
  653. package/dist/components/Form/Controls/Text/Text.module.css.cjs.map +0 -1
  654. package/dist/components/Form/Controls/Text/Text.module.css.js +0 -10
  655. package/dist/components/Form/Controls/Text/Text.module.css.js.map +0 -1
  656. package/dist/components/Form/Controls/Text/index.d.ts.map +0 -1
  657. package/dist/components/Form/Controls/Toggle/Toggle.d.ts.map +0 -1
  658. package/dist/components/Form/Controls/Toggle/Toggle.module.css.cjs +0 -15
  659. package/dist/components/Form/Controls/Toggle/Toggle.module.css.cjs.map +0 -1
  660. package/dist/components/Form/Controls/Toggle/Toggle.module.css.js +0 -15
  661. package/dist/components/Form/Controls/Toggle/Toggle.module.css.js.map +0 -1
  662. package/dist/components/Form/Controls/Toggle/index.d.ts.map +0 -1
  663. package/dist/components/Form/Controls/index.d.ts.map +0 -1
  664. package/dist/components/Form/Field.d.ts.map +0 -1
  665. package/dist/components/Form/InlineField.d.ts.map +0 -1
  666. package/dist/components/Form/Label.d.ts.map +0 -1
  667. package/dist/components/Form/Message.d.ts.map +0 -1
  668. package/dist/components/Form/Root.d.ts.map +0 -1
  669. package/dist/components/Form/Submit.d.ts.map +0 -1
  670. package/dist/components/Form/form.module.css.cjs +0 -24
  671. package/dist/components/Form/form.module.css.cjs.map +0 -1
  672. package/dist/components/Form/form.module.css.js +0 -24
  673. package/dist/components/Form/form.module.css.js.map +0 -1
  674. package/dist/components/Form/index.d.ts.map +0 -1
  675. package/dist/components/Glass/Glass.d.ts.map +0 -1
  676. package/dist/components/Glass/Glass.module.css.cjs +0 -9
  677. package/dist/components/Glass/Glass.module.css.cjs.map +0 -1
  678. package/dist/components/Glass/Glass.module.css.js +0 -9
  679. package/dist/components/Glass/Glass.module.css.js.map +0 -1
  680. package/dist/components/Icon/BigIcon/BigIcon.d.ts +0 -25
  681. package/dist/components/Icon/BigIcon/BigIcon.d.ts.map +0 -1
  682. package/dist/components/Icon/BigIcon/BigIcon.module.css.cjs +0 -15
  683. package/dist/components/Icon/BigIcon/BigIcon.module.css.cjs.map +0 -1
  684. package/dist/components/Icon/BigIcon/BigIcon.module.css.js +0 -15
  685. package/dist/components/Icon/BigIcon/BigIcon.module.css.js.map +0 -1
  686. package/dist/components/Icon/BigIcon/index.d.ts.map +0 -1
  687. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.d.ts.map +0 -1
  688. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.cjs +0 -7
  689. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.cjs.map +0 -1
  690. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.js +0 -7
  691. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.js.map +0 -1
  692. package/dist/components/InlineSpinner/InlineSpinner.d.ts.map +0 -1
  693. package/dist/components/InlineSpinner/InlineSpinner.module.css.cjs +0 -9
  694. package/dist/components/InlineSpinner/InlineSpinner.module.css.cjs.map +0 -1
  695. package/dist/components/InlineSpinner/InlineSpinner.module.css.js +0 -9
  696. package/dist/components/InlineSpinner/InlineSpinner.module.css.js.map +0 -1
  697. package/dist/components/InlineSpinner/index.d.ts.map +0 -1
  698. package/dist/components/Link/Link.d.ts.map +0 -1
  699. package/dist/components/Link/Link.module.css.cjs +0 -9
  700. package/dist/components/Link/Link.module.css.cjs.map +0 -1
  701. package/dist/components/Link/Link.module.css.js +0 -9
  702. package/dist/components/Link/Link.module.css.js.map +0 -1
  703. package/dist/components/Menu/CheckboxMenuItem.d.ts.map +0 -1
  704. package/dist/components/Menu/ContextMenu.d.ts.map +0 -1
  705. package/dist/components/Menu/DrawerMenu.d.ts.map +0 -1
  706. package/dist/components/Menu/DrawerMenu.module.css.cjs +0 -15
  707. package/dist/components/Menu/DrawerMenu.module.css.cjs.map +0 -1
  708. package/dist/components/Menu/DrawerMenu.module.css.js +0 -15
  709. package/dist/components/Menu/DrawerMenu.module.css.js.map +0 -1
  710. package/dist/components/Menu/FloatingMenu.d.ts.map +0 -1
  711. package/dist/components/Menu/FloatingMenu.module.css.cjs +0 -12
  712. package/dist/components/Menu/FloatingMenu.module.css.cjs.map +0 -1
  713. package/dist/components/Menu/FloatingMenu.module.css.js +0 -12
  714. package/dist/components/Menu/FloatingMenu.module.css.js.map +0 -1
  715. package/dist/components/Menu/Menu.d.ts.map +0 -1
  716. package/dist/components/Menu/MenuContext.d.ts.map +0 -1
  717. package/dist/components/Menu/MenuItem.d.ts.map +0 -1
  718. package/dist/components/Menu/MenuItem.module.css.cjs +0 -24
  719. package/dist/components/Menu/MenuItem.module.css.cjs.map +0 -1
  720. package/dist/components/Menu/MenuItem.module.css.js +0 -24
  721. package/dist/components/Menu/MenuItem.module.css.js.map +0 -1
  722. package/dist/components/Menu/MenuTitle.d.ts.map +0 -1
  723. package/dist/components/Menu/MenuTitle.module.css.cjs +0 -7
  724. package/dist/components/Menu/MenuTitle.module.css.cjs.map +0 -1
  725. package/dist/components/Menu/MenuTitle.module.css.js +0 -7
  726. package/dist/components/Menu/MenuTitle.module.css.js.map +0 -1
  727. package/dist/components/Menu/RadioMenuItem.d.ts.map +0 -1
  728. package/dist/components/Menu/ToggleMenuItem.d.ts.map +0 -1
  729. package/dist/components/Nav/Nav.module.css.cjs +0 -10
  730. package/dist/components/Nav/Nav.module.css.cjs.map +0 -1
  731. package/dist/components/Nav/Nav.module.css.js +0 -10
  732. package/dist/components/Nav/Nav.module.css.js.map +0 -1
  733. package/dist/components/Nav/NavBar.d.ts.map +0 -1
  734. package/dist/components/Nav/NavItem.d.ts.map +0 -1
  735. package/dist/components/Nav/index.d.ts.map +0 -1
  736. package/dist/components/Progress/Progress.d.ts.map +0 -1
  737. package/dist/components/Progress/Progress.module.css.cjs +0 -10
  738. package/dist/components/Progress/Progress.module.css.cjs.map +0 -1
  739. package/dist/components/Progress/Progress.module.css.js +0 -10
  740. package/dist/components/Progress/Progress.module.css.js.map +0 -1
  741. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.d.ts.map +0 -1
  742. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.cjs +0 -21
  743. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.cjs.map +0 -1
  744. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.js +0 -21
  745. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.js.map +0 -1
  746. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.d.ts.map +0 -1
  747. package/dist/components/ReleaseAnnouncement/index.d.ts.map +0 -1
  748. package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.d.ts.map +0 -1
  749. package/dist/components/Search/Search.d.ts.map +0 -1
  750. package/dist/components/Search/Search.module.css.cjs +0 -15
  751. package/dist/components/Search/Search.module.css.cjs.map +0 -1
  752. package/dist/components/Search/Search.module.css.js +0 -15
  753. package/dist/components/Search/Search.module.css.js.map +0 -1
  754. package/dist/components/Separator/Separator.d.ts.map +0 -1
  755. package/dist/components/Separator/Separator.module.css.cjs +0 -9
  756. package/dist/components/Separator/Separator.module.css.cjs.map +0 -1
  757. package/dist/components/Separator/Separator.module.css.js +0 -9
  758. package/dist/components/Separator/Separator.module.css.js.map +0 -1
  759. package/dist/components/Toast/Toast.d.ts.map +0 -1
  760. package/dist/components/Toast/Toast.module.css.cjs +0 -7
  761. package/dist/components/Toast/Toast.module.css.cjs.map +0 -1
  762. package/dist/components/Toast/Toast.module.css.js +0 -7
  763. package/dist/components/Toast/Toast.module.css.js.map +0 -1
  764. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  765. package/dist/components/Tooltip/Tooltip.module.css.cjs +0 -18
  766. package/dist/components/Tooltip/Tooltip.module.css.cjs.map +0 -1
  767. package/dist/components/Tooltip/Tooltip.module.css.js +0 -18
  768. package/dist/components/Tooltip/Tooltip.module.css.js.map +0 -1
  769. package/dist/components/Tooltip/TooltipContext.d.ts.map +0 -1
  770. package/dist/components/Tooltip/TooltipProvider.d.ts.map +0 -1
  771. package/dist/components/Tooltip/useTooltip.d.ts.map +0 -1
  772. package/dist/components/Typography/Body.d.ts.map +0 -1
  773. package/dist/components/Typography/Heading.d.ts.map +0 -1
  774. package/dist/components/Typography/Text.d.ts.map +0 -1
  775. package/dist/components/Typography/Typography.d.ts.map +0 -1
  776. package/dist/components/Typography/Typography.module.css.cjs +0 -30
  777. package/dist/components/Typography/Typography.module.css.cjs.map +0 -1
  778. package/dist/components/Typography/Typography.module.css.js +0 -30
  779. package/dist/components/Typography/Typography.module.css.js.map +0 -1
  780. package/dist/components/VisualList/VisualList.d.ts.map +0 -1
  781. package/dist/components/VisualList/VisualList.module.css.cjs +0 -7
  782. package/dist/components/VisualList/VisualList.module.css.cjs.map +0 -1
  783. package/dist/components/VisualList/VisualList.module.css.js +0 -7
  784. package/dist/components/VisualList/VisualList.module.css.js.map +0 -1
  785. package/dist/components/VisualList/VisualListItem.d.ts.map +0 -1
  786. package/dist/components/VisualList/VisualListItem.module.css.cjs +0 -10
  787. package/dist/components/VisualList/VisualListItem.module.css.cjs.map +0 -1
  788. package/dist/components/VisualList/VisualListItem.module.css.js +0 -10
  789. package/dist/components/VisualList/VisualListItem.module.css.js.map +0 -1
  790. package/dist/components/VisualList/index.d.ts.map +0 -1
  791. package/dist/index.cjs.map +0 -1
  792. package/dist/index.d.ts.map +0 -1
  793. package/dist/index.js.map +0 -1
  794. package/dist/setupTests.d.ts.map +0 -1
  795. package/dist/utils/__ComponentTemplate__/__ComponentTemplate__.d.ts.map +0 -1
  796. package/dist/utils/platform.d.ts.map +0 -1
  797. package/dist/utils/string.d.ts.map +0 -1
  798. /package/dist/{components → src/components}/ActivityMarker/Pill.d.ts +0 -0
  799. /package/dist/{components → src/components}/ActivityMarker/Unread.d.ts +0 -0
  800. /package/dist/{components → src/components}/ActivityMarker/UnreadCounter.d.ts +0 -0
  801. /package/dist/{components → src/components}/ActivityMarker/index.d.ts +0 -0
  802. /package/dist/{components → src/components}/Alert/Alert.d.ts +0 -0
  803. /package/dist/{components → src/components}/Avatar/Avatar.d.ts +0 -0
  804. /package/dist/{components → src/components}/Avatar/AvatarStack.d.ts +0 -0
  805. /package/dist/{components → src/components}/Avatar/useIdColorHash.d.ts +0 -0
  806. /package/dist/{components → src/components}/Badge/Badge.d.ts +0 -0
  807. /package/dist/{components → src/components}/Breadcrumb/Breadcrumb.d.ts +0 -0
  808. /package/dist/{components → src/components}/Breadcrumb/index.d.ts +0 -0
  809. /package/dist/{components → src/components}/Button/IconButton/IconButton.d.ts +0 -0
  810. /package/dist/{components → src/components}/Button/UnstyledButton.d.ts +0 -0
  811. /package/dist/{components → src/components}/Button/index.d.ts +0 -0
  812. /package/dist/{components → src/components}/ChatFilter/ChatFilter.d.ts +0 -0
  813. /package/dist/{components → src/components}/ChatFilter/index.d.ts +0 -0
  814. /package/dist/{components → src/components}/Dropdown/Dropdown.d.ts +0 -0
  815. /package/dist/{components → src/components}/Dropdown/index.d.ts +0 -0
  816. /package/dist/{components → src/components}/Form/Controls/Action/Action.d.ts +0 -0
  817. /package/dist/{components → src/components}/Form/Controls/Action/index.d.ts +0 -0
  818. /package/dist/{components → src/components}/Form/Controls/Checkbox/Checkbox.d.ts +0 -0
  819. /package/dist/{components → src/components}/Form/Controls/Checkbox/index.d.ts +0 -0
  820. /package/dist/{components → src/components}/Form/Controls/EditInPlace/EditInPlace.d.ts +0 -0
  821. /package/dist/{components → src/components}/Form/Controls/EditInPlace/index.d.ts +0 -0
  822. /package/dist/{components → src/components}/Form/Controls/MFA/MFA.d.ts +0 -0
  823. /package/dist/{components → src/components}/Form/Controls/MFA/index.d.ts +0 -0
  824. /package/dist/{components → src/components}/Form/Controls/Password/Password.d.ts +0 -0
  825. /package/dist/{components → src/components}/Form/Controls/Password/index.d.ts +0 -0
  826. /package/dist/{components → src/components}/Form/Controls/Radio/Radio.d.ts +0 -0
  827. /package/dist/{components → src/components}/Form/Controls/Radio/index.d.ts +0 -0
  828. /package/dist/{components → src/components}/Form/Controls/SettingsToggle/SettingsToggle.d.ts +0 -0
  829. /package/dist/{components → src/components}/Form/Controls/SettingsToggle/index.d.ts +0 -0
  830. /package/dist/{components → src/components}/Form/Controls/Text/Text.d.ts +0 -0
  831. /package/dist/{components → src/components}/Form/Controls/Text/index.d.ts +0 -0
  832. /package/dist/{components → src/components}/Form/Controls/Toggle/Toggle.d.ts +0 -0
  833. /package/dist/{components → src/components}/Form/Controls/Toggle/index.d.ts +0 -0
  834. /package/dist/{components → src/components}/Form/Controls/index.d.ts +0 -0
  835. /package/dist/{components → src/components}/Form/Field.d.ts +0 -0
  836. /package/dist/{components → src/components}/Form/InlineField.d.ts +0 -0
  837. /package/dist/{components → src/components}/Form/Label.d.ts +0 -0
  838. /package/dist/{components → src/components}/Form/Message.d.ts +0 -0
  839. /package/dist/{components → src/components}/Form/Root.d.ts +0 -0
  840. /package/dist/{components → src/components}/Form/Submit.d.ts +0 -0
  841. /package/dist/{components → src/components}/Form/index.d.ts +0 -0
  842. /package/dist/{components → src/components}/Glass/Glass.d.ts +0 -0
  843. /package/dist/{components → src/components}/Icon/BigIcon/index.d.ts +0 -0
  844. /package/dist/{components → src/components}/Icon/IndicatorIcon/IndicatorIcon.d.ts +0 -0
  845. /package/dist/{components → src/components}/InlineSpinner/InlineSpinner.d.ts +0 -0
  846. /package/dist/{components → src/components}/InlineSpinner/index.d.ts +0 -0
  847. /package/dist/{components → src/components}/Menu/CheckboxMenuItem.d.ts +0 -0
  848. /package/dist/{components → src/components}/Menu/ContextMenu.d.ts +0 -0
  849. /package/dist/{components → src/components}/Menu/DrawerMenu.d.ts +0 -0
  850. /package/dist/{components → src/components}/Menu/FloatingMenu.d.ts +0 -0
  851. /package/dist/{components → src/components}/Menu/MenuContext.d.ts +0 -0
  852. /package/dist/{components → src/components}/Menu/MenuItem.d.ts +0 -0
  853. /package/dist/{components → src/components}/Menu/MenuTitle.d.ts +0 -0
  854. /package/dist/{components → src/components}/Menu/RadioMenuItem.d.ts +0 -0
  855. /package/dist/{components → src/components}/Menu/ToggleMenuItem.d.ts +0 -0
  856. /package/dist/{components → src/components}/Nav/NavBar.d.ts +0 -0
  857. /package/dist/{components → src/components}/Nav/NavItem.d.ts +0 -0
  858. /package/dist/{components → src/components}/Nav/index.d.ts +0 -0
  859. /package/dist/{components → src/components}/ReleaseAnnouncement/ReleaseAnnouncement.d.ts +0 -0
  860. /package/dist/{components → src/components}/ReleaseAnnouncement/ReleaseAnnouncementContext.d.ts +0 -0
  861. /package/dist/{components → src/components}/ReleaseAnnouncement/index.d.ts +0 -0
  862. /package/dist/{components → src/components}/ReleaseAnnouncement/useReleaseAnnouncement.d.ts +0 -0
  863. /package/dist/{components → src/components}/Search/Search.d.ts +0 -0
  864. /package/dist/{components → src/components}/Separator/Separator.d.ts +0 -0
  865. /package/dist/{components → src/components}/Toast/Toast.d.ts +0 -0
  866. /package/dist/{components → src/components}/Tooltip/Tooltip.d.ts +0 -0
  867. /package/dist/{components → src/components}/Tooltip/TooltipContext.d.ts +0 -0
  868. /package/dist/{components → src/components}/Tooltip/TooltipProvider.d.ts +0 -0
  869. /package/dist/{components → src/components}/Tooltip/useTooltip.d.ts +0 -0
  870. /package/dist/{components → src/components}/Typography/Body.d.ts +0 -0
  871. /package/dist/{components → src/components}/VisualList/VisualList.d.ts +0 -0
  872. /package/dist/{components → src/components}/VisualList/VisualListItem.d.ts +0 -0
  873. /package/dist/{components → src/components}/VisualList/index.d.ts +0 -0
  874. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  875. /package/dist/{setupTests.d.ts → src/setupTests.d.ts} +0 -0
  876. /package/dist/{utils → src/utils}/__ComponentTemplate__/__ComponentTemplate__.d.ts +0 -0
  877. /package/dist/{utils → src/utils}/platform.d.ts +0 -0
  878. /package/dist/{utils → src/utils}/string.d.ts +0 -0
@@ -1,255 +1,231 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import ChevronDown from "@vector-im/compound-design-tokens/assets/web/icons/chevron-down";
3
- import CheckIcon from "@vector-im/compound-design-tokens/assets/web/icons/check";
4
- import ErrorIcon from "@vector-im/compound-design-tokens/assets/web/icons/error-solid";
5
- import { forwardRef, useState, useMemo, useCallback, useRef, useEffect, memo } from "react";
1
+ import Dropdown_module_default from "./Dropdown.module.js";
6
2
  import classNames from "classnames";
7
- import styles from "./Dropdown.module.css.js";
8
- import { useId } from "@floating-ui/react";
9
- const Dropdown = forwardRef(
10
- function Dropdown2({
11
- className,
12
- label,
13
- placeholder,
14
- helpLabel,
15
- onValueChange,
16
- error,
17
- value: controlledValue,
18
- defaultValue,
19
- values,
20
- ...props
21
- }, ref) {
22
- const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
23
- const value = controlledValue ?? uncontrolledValue;
24
- const text = useMemo(
25
- () => value === void 0 ? placeholder : values.find(([v]) => v === value)?.[1] ?? placeholder,
26
- [value, values, placeholder]
27
- );
28
- const setValue = useCallback(
29
- (value2) => {
30
- setUncontrolledValue(value2);
31
- onValueChange?.(value2);
32
- },
33
- [setUncontrolledValue, onValueChange]
34
- );
35
- const [open, setOpen, dropdownRef] = useOpen();
36
- const { listRef, onComboboxKeyDown, onOptionKeyDown } = useKeyboardShortcut(
37
- open,
38
- setOpen,
39
- setValue
40
- );
41
- const buttonRef = useRef(null);
42
- useEffect(() => {
43
- if (value !== void 0) buttonRef.current?.focus();
44
- }, [value]);
45
- const hasPlaceholder = text === placeholder;
46
- const buttonClasses = classNames({
47
- [styles.placeholder]: hasPlaceholder
48
- });
49
- const borderClasses = classNames(styles.border, {
50
- [styles.open]: open
51
- });
52
- const contentClasses = classNames(styles.content, {
53
- [styles.open]: open
54
- });
55
- const labelId = useId();
56
- const contentId = useId();
57
- return /* @__PURE__ */ jsxs(
58
- "div",
59
- {
60
- ref: dropdownRef,
61
- className: classNames(className, styles.container),
62
- "aria-invalid": Boolean(error),
63
- children: [
64
- /* @__PURE__ */ jsx("label", { id: labelId, children: label }),
65
- /* @__PURE__ */ jsxs(
66
- "button",
67
- {
68
- className: buttonClasses,
69
- role: "combobox",
70
- "aria-haspopup": "listbox",
71
- "aria-labelledby": labelId,
72
- "aria-controls": contentId,
73
- "aria-expanded": open,
74
- ref: (element) => {
75
- buttonRef.current = element;
76
- if (typeof ref === "function") {
77
- ref(element);
78
- } else if (ref) {
79
- ref.current = element;
80
- }
81
- },
82
- onClick: () => setOpen((_open) => !_open),
83
- onKeyDown: onComboboxKeyDown,
84
- ...props,
85
- children: [
86
- text,
87
- /* @__PURE__ */ jsx(ChevronDown, { width: "24", height: "24" })
88
- ]
89
- }
90
- ),
91
- /* @__PURE__ */ jsx("div", { className: borderClasses }),
92
- /* @__PURE__ */ jsx("div", { className: contentClasses, children: /* @__PURE__ */ jsx(
93
- "ul",
94
- {
95
- ref: listRef,
96
- id: contentId,
97
- role: "listbox",
98
- className: styles.content,
99
- children: values.map(([v, text2]) => /* @__PURE__ */ jsx(
100
- DropdownItem,
101
- {
102
- isDisplayed: open,
103
- isSelected: value === v,
104
- onClick: () => {
105
- setOpen(false);
106
- setValue(v);
107
- },
108
- onKeyDown: (e) => onOptionKeyDown(e, v),
109
- children: text2
110
- },
111
- v
112
- ))
113
- }
114
- ) }),
115
- !error && helpLabel && /* @__PURE__ */ jsx("span", { className: styles.help, children: helpLabel }),
116
- error && /* @__PURE__ */ jsxs("span", { className: styles.error, children: [
117
- /* @__PURE__ */ jsx(ErrorIcon, { width: "20", height: "20" }),
118
- error
119
- ] })
120
- ]
121
- }
122
- );
123
- }
124
- );
125
- const DropdownItem = memo(function DropdownItem2({
126
- children,
127
- isSelected,
128
- isDisplayed,
129
- ...props
130
- }) {
131
- const ref = useRef(null);
132
- useEffect(() => {
133
- if (isSelected && isDisplayed) {
134
- ref.current?.focus();
135
- }
136
- }, [isSelected, isDisplayed]);
137
- return /* @__PURE__ */ jsxs(
138
- "li",
139
- {
140
- tabIndex: 0,
141
- role: "option",
142
- ref,
143
- "aria-selected": isSelected,
144
- ...props,
145
- children: [
146
- children,
147
- " ",
148
- isSelected && /* @__PURE__ */ jsx(CheckIcon, { width: "20", height: "20" })
149
- ]
150
- }
151
- );
3
+ import { forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
4
+ import ErrorIcon from "@vector-im/compound-design-tokens/assets/web/icons/error-solid";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { useId as useId$1 } from "@floating-ui/react";
7
+ import Check from "@vector-im/compound-design-tokens/assets/web/icons/check";
8
+ import ChevronDown from "@vector-im/compound-design-tokens/assets/web/icons/chevron-down";
9
+ //#region src/components/Dropdown/Dropdown.tsx
10
+ /**
11
+ * The dropdown content.
12
+ */
13
+ var Dropdown = forwardRef(function Dropdown({ className, label, placeholder, helpLabel, onValueChange, error, value: controlledValue, defaultValue, values, ...props }, ref) {
14
+ const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
15
+ const value = controlledValue ?? uncontrolledValue;
16
+ const text = useMemo(() => value === void 0 ? placeholder : values.find(([v]) => v === value)?.[1] ?? placeholder, [
17
+ value,
18
+ values,
19
+ placeholder
20
+ ]);
21
+ const setValue = useCallback((value) => {
22
+ setUncontrolledValue(value);
23
+ onValueChange?.(value);
24
+ }, [setUncontrolledValue, onValueChange]);
25
+ const [open, setOpen, dropdownRef] = useOpen();
26
+ const { listRef, onComboboxKeyDown, onOptionKeyDown } = useKeyboardShortcut(open, setOpen, setValue);
27
+ const buttonRef = useRef(null);
28
+ useEffect(() => {
29
+ if (value !== void 0) buttonRef.current?.focus();
30
+ }, [value]);
31
+ const hasPlaceholder = text === placeholder;
32
+ const buttonClasses = classNames({ [Dropdown_module_default.placeholder]: hasPlaceholder });
33
+ const borderClasses = classNames(Dropdown_module_default.border, { [Dropdown_module_default.open]: open });
34
+ const contentClasses = classNames(Dropdown_module_default.content, { [Dropdown_module_default.open]: open });
35
+ /**
36
+ * Ids for accessibility.
37
+ */
38
+ const labelId = useId$1();
39
+ const contentId = useId$1();
40
+ return /* @__PURE__ */ jsxs("div", {
41
+ ref: dropdownRef,
42
+ className: classNames(className, Dropdown_module_default.container),
43
+ "aria-invalid": Boolean(error),
44
+ children: [
45
+ /* @__PURE__ */ jsx("label", {
46
+ id: labelId,
47
+ children: label
48
+ }),
49
+ /* @__PURE__ */ jsxs("button", {
50
+ className: buttonClasses,
51
+ role: "combobox",
52
+ "aria-haspopup": "listbox",
53
+ "aria-labelledby": labelId,
54
+ "aria-controls": contentId,
55
+ "aria-expanded": open,
56
+ ref: (element) => {
57
+ buttonRef.current = element;
58
+ if (typeof ref === "function") ref(element);
59
+ else if (ref) ref.current = element;
60
+ },
61
+ onClick: () => setOpen((_open) => !_open),
62
+ onKeyDown: onComboboxKeyDown,
63
+ ...props,
64
+ children: [text, /* @__PURE__ */ jsx(ChevronDown, {
65
+ width: "24",
66
+ height: "24"
67
+ })]
68
+ }),
69
+ /* @__PURE__ */ jsx("div", { className: borderClasses }),
70
+ /* @__PURE__ */ jsx("div", {
71
+ className: contentClasses,
72
+ children: /* @__PURE__ */ jsx("ul", {
73
+ ref: listRef,
74
+ id: contentId,
75
+ role: "listbox",
76
+ className: Dropdown_module_default.content,
77
+ children: values.map(([v, text]) => /* @__PURE__ */ jsx(DropdownItem, {
78
+ isDisplayed: open,
79
+ isSelected: value === v,
80
+ onClick: () => {
81
+ setOpen(false);
82
+ setValue(v);
83
+ },
84
+ onKeyDown: (e) => onOptionKeyDown(e, v),
85
+ children: text
86
+ }, v))
87
+ })
88
+ }),
89
+ !error && helpLabel && /* @__PURE__ */ jsx("span", {
90
+ className: Dropdown_module_default.help,
91
+ children: helpLabel
92
+ }),
93
+ error && /* @__PURE__ */ jsxs("span", {
94
+ className: Dropdown_module_default.error,
95
+ children: [/* @__PURE__ */ jsx(ErrorIcon, {
96
+ width: "20",
97
+ height: "20"
98
+ }), error]
99
+ })
100
+ ]
101
+ });
102
+ });
103
+ /**
104
+ * A dropdown item component.
105
+ */
106
+ var DropdownItem = memo(function DropdownItem({ children, isSelected, isDisplayed, ...props }) {
107
+ const ref = useRef(null);
108
+ useEffect(() => {
109
+ if (isSelected && isDisplayed) ref.current?.focus();
110
+ }, [isSelected, isDisplayed]);
111
+ return /* @__PURE__ */ jsxs("li", {
112
+ tabIndex: 0,
113
+ role: "option",
114
+ ref,
115
+ "aria-selected": isSelected,
116
+ ...props,
117
+ children: [
118
+ children,
119
+ " ",
120
+ isSelected && /* @__PURE__ */ jsx(Check, {
121
+ width: "20",
122
+ height: "20"
123
+ })
124
+ ]
125
+ });
152
126
  });
127
+ /**
128
+ * A hook to manage the open state of the dropdown.
129
+ */
153
130
  function useOpen() {
154
- const [open, setOpen] = useState(false);
155
- const ref = useRef(null);
156
- useEffect(() => {
157
- const closeIfOutside = (e) => {
158
- if (ref.current && !ref.current.contains(e.target)) {
159
- setOpen(false);
160
- }
161
- };
162
- document.addEventListener("click", closeIfOutside);
163
- return () => document.removeEventListener("click", closeIfOutside);
164
- }, [setOpen]);
165
- return [open, setOpen, ref];
131
+ const [open, setOpen] = useState(false);
132
+ const ref = useRef(null);
133
+ useEffect(() => {
134
+ const closeIfOutside = (e) => {
135
+ if (ref.current && !ref.current.contains(e.target)) setOpen(false);
136
+ };
137
+ document.addEventListener("click", closeIfOutside);
138
+ return () => document.removeEventListener("click", closeIfOutside);
139
+ }, [setOpen]);
140
+ return [
141
+ open,
142
+ setOpen,
143
+ ref
144
+ ];
166
145
  }
146
+ /**
147
+ * A hook to manage the keyboard shortcuts of the dropdown.
148
+ * @param open - the dropdown open state.
149
+ * @param setOpen - the dropdown open state setter.
150
+ * @param setValue - set the selected value and text
151
+ */
167
152
  function useKeyboardShortcut(open, setOpen, setValue) {
168
- const listRef = useRef(null);
169
- const onComboboxKeyDown = useCallback(
170
- ({ key }) => {
171
- switch (key) {
172
- // Enter and Space already managed because it's a button
173
- case "Escape":
174
- setOpen(false);
175
- break;
176
- case "ArrowDown":
177
- setOpen(true);
178
- if (open) {
179
- listRef.current?.firstElementChild?.focus();
180
- }
181
- break;
182
- case "ArrowUp":
183
- setOpen(true);
184
- break;
185
- case "Home": {
186
- setOpen(true);
187
- Promise.resolve().then(() => {
188
- listRef.current?.firstElementChild?.focus();
189
- });
190
- break;
191
- }
192
- case "End": {
193
- setOpen(true);
194
- Promise.resolve().then(() => {
195
- listRef.current?.lastElementChild?.focus();
196
- });
197
- break;
198
- }
199
- }
200
- },
201
- [listRef, open, setOpen]
202
- );
203
- const onOptionKeyDown = useCallback(
204
- (evt, value) => {
205
- const { key, altKey } = evt;
206
- evt.stopPropagation();
207
- evt.preventDefault();
208
- switch (key) {
209
- case "Enter":
210
- case " ": {
211
- setValue(value);
212
- setOpen(false);
213
- break;
214
- }
215
- case "Tab":
216
- case "Escape":
217
- setOpen(false);
218
- break;
219
- case "ArrowDown": {
220
- const currentFocus = document.activeElement;
221
- if (listRef.current?.contains(currentFocus) && currentFocus) {
222
- currentFocus.nextElementSibling?.focus();
223
- }
224
- break;
225
- }
226
- case "ArrowUp": {
227
- if (altKey) {
228
- setValue(value);
229
- setOpen(false);
230
- } else {
231
- const currentFocus = document.activeElement;
232
- if (listRef.current?.contains(currentFocus) && currentFocus) {
233
- currentFocus.previousElementSibling?.focus();
234
- }
235
- }
236
- break;
237
- }
238
- case "Home": {
239
- listRef.current?.firstElementChild?.focus();
240
- break;
241
- }
242
- case "End": {
243
- listRef.current?.lastElementChild?.focus();
244
- break;
245
- }
246
- }
247
- },
248
- [listRef, setValue, setOpen]
249
- );
250
- return { listRef, onComboboxKeyDown, onOptionKeyDown };
153
+ const listRef = useRef(null);
154
+ return {
155
+ listRef,
156
+ onComboboxKeyDown: useCallback(({ key }) => {
157
+ switch (key) {
158
+ case "Escape":
159
+ setOpen(false);
160
+ break;
161
+ case "ArrowDown":
162
+ setOpen(true);
163
+ if (open) (listRef.current?.firstElementChild)?.focus();
164
+ break;
165
+ case "ArrowUp":
166
+ setOpen(true);
167
+ break;
168
+ case "Home":
169
+ setOpen(true);
170
+ Promise.resolve().then(() => {
171
+ (listRef.current?.firstElementChild)?.focus();
172
+ });
173
+ break;
174
+ case "End":
175
+ setOpen(true);
176
+ Promise.resolve().then(() => {
177
+ (listRef.current?.lastElementChild)?.focus();
178
+ });
179
+ break;
180
+ }
181
+ }, [
182
+ listRef,
183
+ open,
184
+ setOpen
185
+ ]),
186
+ onOptionKeyDown: useCallback((evt, value) => {
187
+ const { key, altKey } = evt;
188
+ evt.stopPropagation();
189
+ evt.preventDefault();
190
+ switch (key) {
191
+ case "Enter":
192
+ case " ":
193
+ setValue(value);
194
+ setOpen(false);
195
+ break;
196
+ case "Tab":
197
+ case "Escape":
198
+ setOpen(false);
199
+ break;
200
+ case "ArrowDown": {
201
+ const currentFocus = document.activeElement;
202
+ if (listRef.current?.contains(currentFocus) && currentFocus) currentFocus.nextElementSibling?.focus();
203
+ break;
204
+ }
205
+ case "ArrowUp":
206
+ if (altKey) {
207
+ setValue(value);
208
+ setOpen(false);
209
+ } else {
210
+ const currentFocus = document.activeElement;
211
+ if (listRef.current?.contains(currentFocus) && currentFocus) currentFocus.previousElementSibling?.focus();
212
+ }
213
+ break;
214
+ case "Home":
215
+ (listRef.current?.firstElementChild)?.focus();
216
+ break;
217
+ case "End":
218
+ (listRef.current?.lastElementChild)?.focus();
219
+ break;
220
+ }
221
+ }, [
222
+ listRef,
223
+ setValue,
224
+ setOpen
225
+ ])
226
+ };
251
227
  }
252
- export {
253
- Dropdown
254
- };
255
- //# sourceMappingURL=Dropdown.js.map
228
+ //#endregion
229
+ export { Dropdown };
230
+
231
+ //# sourceMappingURL=Dropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","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":["Dropdown","value","text","Error","DropdownItem","Check"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","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":";;;;;;;;;;;;AA2EA,IAAa,WAAW,WACtB,SAAS,SACP,EACE,WACA,OACA,aACA,WACA,eACA,OACA,OAAO,iBACP,cACA,QACA,GAAG,SAEL,KACA;CACA,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,aAAa;CACxE,MAAM,QAAQ,mBAAmB;CACjC,MAAM,OAAO,cAET,UAAU,KAAA,IACN,cACC,OAAO,MAAM,CAAC,OAAO,MAAM,MAAM,GAAG,MAAM,aACjD;EAAC;EAAO;EAAQ;EAAY,CAC7B;CAED,MAAM,WAAW,aACd,UAAkB;AACjB,uBAAqB,MAAM;AAC3B,kBAAgB,MAAM;IAExB,CAAC,sBAAsB,cAAc,CACtC;CAED,MAAM,CAAC,MAAM,SAAS,eAAe,SAAS;CAC9C,MAAM,EAAE,SAAS,mBAAmB,oBAAoB,oBACtD,MACA,SACA,SACD;CAED,MAAM,YAAY,OAAiC,KAAK;AACxD,iBAAgB;AAGd,MAAI,UAAU,KAAA,EAAW,WAAU,SAAS,OAAO;IAClD,CAAC,MAAM,CAAC;CAEX,MAAM,iBAAiB,SAAS;CAChC,MAAM,gBAAgB,WAAW,GAC9B,wBAAO,cAAc,gBACvB,CAAC;CACF,MAAM,gBAAgB,WAAW,wBAAO,QAAQ,GAC7C,wBAAO,OAAO,MAChB,CAAC;CACF,MAAM,iBAAiB,WAAW,wBAAO,SAAS,GAC/C,wBAAO,OAAO,MAChB,CAAC;;;;CAKF,MAAM,UAAU,SAAO;CACvB,MAAM,YAAY,SAAO;AAEzB,QACE,qBAAC,OAAD;EACE,KAAK;EACL,WAAW,WAAW,WAAW,wBAAO,UAAU;EAClD,gBAAc,QAAQ,MAAM;YAH9B;GAKE,oBAAC,SAAD;IAAO,IAAI;cAAU;IAAc,CAAA;GACnC,qBAAC,UAAD;IACE,WAAW;IACX,MAAK;IACL,iBAAc;IACd,mBAAiB;IACjB,iBAAe;IACf,iBAAe;IACf,MAAM,YAAY;AAEhB,eAAU,UAAU;AAEpB,SAAI,OAAO,QAAQ,WACjB,KAAI,QAAQ;cACH,IACT,KAAI,UAAU;;IAGlB,eAAe,SAAS,UAAU,CAAC,MAAM;IACzC,WAAW;IACX,GAAI;cAnBN,CAqBG,MACD,oBAAC,aAAD;KAAa,OAAM;KAAK,QAAO;KAAO,CAAA,CAC/B;;GACT,oBAAC,OAAD,EAAK,WAAW,eAAiB,CAAA;GACjC,oBAAC,OAAD;IAAK,WAAW;cACd,oBAAC,MAAD;KACE,KAAK;KACL,IAAI;KACJ,MAAK;KACL,WAAW,wBAAO;eAEjB,OAAO,KAAK,CAAC,GAAG,UACf,oBAAC,cAAD;MAEE,aAAa;MACb,YAAY,UAAU;MACtB,eAAe;AACb,eAAQ,MAAM;AACd,gBAAS,EAAE;;MAEb,YAAY,MAAM,gBAAgB,GAAG,EAAE;gBAEtC;MACY,EAVR,EAUQ,CACf;KACC,CAAA;IACD,CAAA;GACL,CAAC,SAAS,aACT,oBAAC,QAAD;IAAM,WAAW,wBAAO;cAAO;IAAiB,CAAA;GAEjD,SACC,qBAAC,QAAD;IAAM,WAAW,wBAAO;cAAxB,CACE,oBAAC,WAAD;KAAO,OAAM;KAAK,QAAO;KAAO,CAAA,EAC/B,MACI;;GAEL;;EAGX;;;;AAoBD,IAAM,eAAe,KAAK,SAAS,aAAa,EAC9C,UACA,YACA,aACA,GAAG,SACiB;CACpB,MAAM,MAAM,OAAsB,KAAK;AAGvC,iBAAgB;AACd,MAAI,cAAc,YAChB,KAAI,SAAS,OAAO;IAErB,CAAC,YAAY,YAAY,CAAC;AAE7B,QACE,qBAAC,MAAD;EACE,UAAU;EACV,MAAK;EACA;EACL,iBAAe;EACf,GAAI;YALN;GAOG;GAAS;GAAE,cAAc,oBAAC,OAAD;IAAO,OAAM;IAAK,QAAO;IAAO,CAAA;GACvD;;EAEP;;;;AAKF,SAAS,UAIP;CACA,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,MAAM,OAA8B,KAAK;AAG/C,iBAAgB;EACd,MAAM,kBAAkB,MAAkB;AACxC,OAAI,IAAI,WAAW,CAAC,IAAI,QAAQ,SAAS,EAAE,OAAe,CACxD,SAAQ,MAAM;;AAIlB,WAAS,iBAAiB,SAAS,eAAe;AAClD,eAAa,SAAS,oBAAoB,SAAS,eAAe;IACjE,CAAC,QAAQ,CAAC;AAEb,QAAO;EAAC;EAAM;EAAS;EAAI;;;;;;;;AAS7B,SAAS,oBACP,MACA,SACA,UACA;CACA,MAAM,UAAU,OAAyB,KAAK;AAwF9C,QAAO;EAAE;EAAS,mBAvFQ,aACvB,EAAE,UAAyB;AAC1B,WAAQ,KAAR;IAEE,KAAK;AACH,aAAQ,MAAM;AACd;IACF,KAAK;AACH,aAAQ,KAAK;AAEb,SAAI,KACF,EAAC,QAAQ,SAAS,oBAAmC,OAAO;AAE9D;IACF,KAAK;AACH,aAAQ,KAAK;AACb;IACF,KAAK;AACH,aAAQ,KAAK;AAEb,aAAQ,SAAS,CAAC,WAAW;AAC3B,OAAC,QAAQ,SAAS,oBAAmC,OAAO;OAC5D;AACF;IAEF,KAAK;AACH,aAAQ,KAAK;AAEb,aAAQ,SAAS,CAAC,WAAW;AAC3B,OAAC,QAAQ,SAAS,mBAAkC,OAAO;OAC3D;AACF;;KAIN;GAAC;GAAS;GAAM;GAAQ,CACzB;EAmDoC,iBAjDb,aACrB,KAAoB,UAAkB;GACrC,MAAM,EAAE,KAAK,WAAW;AACxB,OAAI,iBAAiB;AACrB,OAAI,gBAAgB;AAEpB,WAAQ,KAAR;IACE,KAAK;IACL,KAAK;AACH,cAAS,MAAM;AACf,aAAQ,MAAM;AACd;IAEF,KAAK;IACL,KAAK;AACH,aAAQ,MAAM;AACd;IACF,KAAK,aAAa;KAChB,MAAM,eAAe,SAAS;AAC9B,SAAI,QAAQ,SAAS,SAAS,aAAa,IAAI,aAC5C,cAAa,oBAAoC,OAAO;AAE3D;;IAEF,KAAK;AACH,SAAI,QAAQ;AACV,eAAS,MAAM;AACf,cAAQ,MAAM;YACT;MACL,MAAM,eAAe,SAAS;AAC9B,UAAI,QAAQ,SAAS,SAAS,aAAa,IAAI,aAC5C,cAAa,wBAAwC,OAAO;;AAGjE;IAEF,KAAK;AACH,MAAC,QAAQ,SAAS,oBAAmC,OAAO;AAC5D;IAEF,KAAK;AACH,MAAC,QAAQ,SAAS,mBAAkC,OAAO;AAC3D;;KAIN;GAAC;GAAS;GAAU;GAAQ,CAC7B;EAEqD"}
@@ -0,0 +1,13 @@
1
+ var Dropdown_module_default = {
2
+ container: "_container_gn3xc_8",
3
+ placeholder: "_placeholder_gn3xc_47",
4
+ border: "_border_gn3xc_51",
5
+ content: "_content_gn3xc_60",
6
+ open: "_open_gn3xc_108",
7
+ help: "_help_gn3xc_112",
8
+ error: "_error_gn3xc_117"
9
+ };
10
+ //#endregion
11
+ exports.default = Dropdown_module_default;
12
+
13
+ //# sourceMappingURL=Dropdown.module.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropdown.module.cjs","names":[],"sources":["../../../src/components/Dropdown/Dropdown.module.css"],"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\n.container {\n display: flex;\n flex-direction: column;\n\n label {\n font: var(--cpd-font-body-md-medium);\n margin-block-end: var(--cpd-space-1x);\n }\n\n button {\n inline-size: 100%;\n border: 1px solid var(--cpd-color-border-interactive-primary);\n background: var(--cpd-color-bg-canvas-default);\n border-radius: 0.5rem;\n padding: var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x)\n var(--cpd-space-4x);\n box-sizing: border-box;\n color: var(--cpd-color-text-primary);\n font: var(--cpd-font-body-md-regular);\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--cpd-space-4x);\n\n svg {\n transition: transform 0.1s linear;\n }\n }\n\n /**\n * When the dropdown is open, rotate the arrow icon\n */\n button[aria-expanded=\"true\"] {\n svg {\n transform: rotate(180deg);\n }\n }\n\n button.placeholder {\n color: var(--cpd-color-text-secondary);\n }\n\n .border {\n display: none;\n border-inline-start: 1px solid var(--cpd-color-border-interactive-secondary);\n border-inline-end: 1px solid var(--cpd-color-border-interactive-secondary);\n block-size: var(--cpd-space-1x);\n margin-block-start: calc(var(--cpd-space-1x) * -1);\n box-sizing: border-box;\n }\n\n .content {\n display: none;\n position: relative;\n\n ul {\n /**\n * To make the component going over the other elements\n */\n position: absolute;\n display: block;\n inline-size: 100%;\n background: var(--cpd-color-bg-canvas-default);\n border: 1px solid var(--cpd-color-border-interactive-secondary);\n border-block-start: 0;\n border-end-start-radius: var(--cpd-space-4x);\n border-end-end-radius: var(--cpd-space-4x);\n box-sizing: border-box;\n box-shadow: 0 4px 24px 0 rgb(27 29 34 / 10%);\n margin: 0;\n padding: 0;\n padding-block-end: var(--cpd-space-4x);\n cursor: pointer;\n\n li {\n list-style-type: \"\";\n font: var(--cpd-font-body-md-medium);\n padding: var(--cpd-space-3x) var(--cpd-space-4x);\n border-block-end: 1px solid var(--cpd-color-gray-300);\n color: var(--cpd-color-text-secondary);\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--cpd-space-4x);\n\n @media (hover) {\n &:hover {\n background: var(--cpd-color-gray-200);\n }\n }\n\n &[aria-selected=\"true\"] {\n color: var(--cpd-color-text-primary);\n background: var(--cpd-color-gray-300);\n }\n }\n }\n }\n\n .open {\n display: block;\n }\n\n .help {\n font: var(--cpd-font-body-sm-regular);\n color: var(--cpd-color-text-secondary);\n }\n\n .error {\n font: var(--cpd-font-body-sm-medium);\n color: var(--cpd-color-text-critical-primary);\n display: flex;\n gap: var(--cpd-space-2x);\n }\n\n .error,\n .help {\n margin-block-start: var(--cpd-space-2x);\n }\n\n &[aria-invalid=\"true\"] {\n label {\n color: var(--cpd-color-text-critical-primary);\n }\n\n button {\n border-color: var(--cpd-color-text-critical-primary);\n }\n }\n}\n"],"mappings":""}
@@ -0,0 +1,13 @@
1
+ var Dropdown_module_default = {
2
+ container: "_container_gn3xc_8",
3
+ placeholder: "_placeholder_gn3xc_47",
4
+ border: "_border_gn3xc_51",
5
+ content: "_content_gn3xc_60",
6
+ open: "_open_gn3xc_108",
7
+ help: "_help_gn3xc_112",
8
+ error: "_error_gn3xc_117"
9
+ };
10
+ //#endregion
11
+ export { Dropdown_module_default as default };
12
+
13
+ //# sourceMappingURL=Dropdown.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropdown.module.js","names":[],"sources":["../../../src/components/Dropdown/Dropdown.module.css"],"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\n.container {\n display: flex;\n flex-direction: column;\n\n label {\n font: var(--cpd-font-body-md-medium);\n margin-block-end: var(--cpd-space-1x);\n }\n\n button {\n inline-size: 100%;\n border: 1px solid var(--cpd-color-border-interactive-primary);\n background: var(--cpd-color-bg-canvas-default);\n border-radius: 0.5rem;\n padding: var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x)\n var(--cpd-space-4x);\n box-sizing: border-box;\n color: var(--cpd-color-text-primary);\n font: var(--cpd-font-body-md-regular);\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--cpd-space-4x);\n\n svg {\n transition: transform 0.1s linear;\n }\n }\n\n /**\n * When the dropdown is open, rotate the arrow icon\n */\n button[aria-expanded=\"true\"] {\n svg {\n transform: rotate(180deg);\n }\n }\n\n button.placeholder {\n color: var(--cpd-color-text-secondary);\n }\n\n .border {\n display: none;\n border-inline-start: 1px solid var(--cpd-color-border-interactive-secondary);\n border-inline-end: 1px solid var(--cpd-color-border-interactive-secondary);\n block-size: var(--cpd-space-1x);\n margin-block-start: calc(var(--cpd-space-1x) * -1);\n box-sizing: border-box;\n }\n\n .content {\n display: none;\n position: relative;\n\n ul {\n /**\n * To make the component going over the other elements\n */\n position: absolute;\n display: block;\n inline-size: 100%;\n background: var(--cpd-color-bg-canvas-default);\n border: 1px solid var(--cpd-color-border-interactive-secondary);\n border-block-start: 0;\n border-end-start-radius: var(--cpd-space-4x);\n border-end-end-radius: var(--cpd-space-4x);\n box-sizing: border-box;\n box-shadow: 0 4px 24px 0 rgb(27 29 34 / 10%);\n margin: 0;\n padding: 0;\n padding-block-end: var(--cpd-space-4x);\n cursor: pointer;\n\n li {\n list-style-type: \"\";\n font: var(--cpd-font-body-md-medium);\n padding: var(--cpd-space-3x) var(--cpd-space-4x);\n border-block-end: 1px solid var(--cpd-color-gray-300);\n color: var(--cpd-color-text-secondary);\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--cpd-space-4x);\n\n @media (hover) {\n &:hover {\n background: var(--cpd-color-gray-200);\n }\n }\n\n &[aria-selected=\"true\"] {\n color: var(--cpd-color-text-primary);\n background: var(--cpd-color-gray-300);\n }\n }\n }\n }\n\n .open {\n display: block;\n }\n\n .help {\n font: var(--cpd-font-body-sm-regular);\n color: var(--cpd-color-text-secondary);\n }\n\n .error {\n font: var(--cpd-font-body-sm-medium);\n color: var(--cpd-color-text-critical-primary);\n display: flex;\n gap: var(--cpd-space-2x);\n }\n\n .error,\n .help {\n margin-block-start: var(--cpd-space-2x);\n }\n\n &[aria-invalid=\"true\"] {\n label {\n color: var(--cpd-color-text-critical-primary);\n }\n\n button {\n border-color: var(--cpd-color-text-critical-primary);\n }\n }\n}\n"],"mappings":""}