@vector-im/compound-web 8.4.0 → 9.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) 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.d.ts +2 -1
  74. package/dist/components/Button/Button.d.ts.map +1 -1
  75. package/dist/components/Button/Button.js +36 -51
  76. package/dist/components/Button/Button.js.map +1 -1
  77. package/dist/components/Button/Button.module.cjs +13 -0
  78. package/dist/components/Button/Button.module.cjs.map +1 -0
  79. package/dist/components/Button/Button.module.js +13 -0
  80. package/dist/components/Button/Button.module.js.map +1 -0
  81. package/dist/components/Button/IconButton/IconButton.cjs +43 -52
  82. package/dist/components/Button/IconButton/IconButton.cjs.map +1 -1
  83. package/dist/components/Button/IconButton/IconButton.js +38 -50
  84. package/dist/components/Button/IconButton/IconButton.js.map +1 -1
  85. package/dist/components/Button/IconButton/IconButton.module.cjs +11 -0
  86. package/dist/components/Button/IconButton/IconButton.module.cjs.map +1 -0
  87. package/dist/components/Button/IconButton/IconButton.module.js +11 -0
  88. package/dist/components/Button/IconButton/IconButton.module.js.map +1 -0
  89. package/dist/components/Button/UnstyledButton.cjs +36 -45
  90. package/dist/components/Button/UnstyledButton.cjs.map +1 -1
  91. package/dist/components/Button/UnstyledButton.js +34 -45
  92. package/dist/components/Button/UnstyledButton.js.map +1 -1
  93. package/dist/components/ChatFilter/ChatFilter.cjs +23 -20
  94. package/dist/components/ChatFilter/ChatFilter.cjs.map +1 -1
  95. package/dist/components/ChatFilter/ChatFilter.js +21 -20
  96. package/dist/components/ChatFilter/ChatFilter.js.map +1 -1
  97. package/dist/components/ChatFilter/ChatFilter.module.cjs +6 -0
  98. package/dist/components/ChatFilter/ChatFilter.module.cjs.map +1 -0
  99. package/dist/components/ChatFilter/ChatFilter.module.js +6 -0
  100. package/dist/components/ChatFilter/ChatFilter.module.js.map +1 -0
  101. package/dist/components/Dropdown/Dropdown.cjs +231 -249
  102. package/dist/components/Dropdown/Dropdown.cjs.map +1 -1
  103. package/dist/components/Dropdown/Dropdown.js +225 -249
  104. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  105. package/dist/components/Dropdown/Dropdown.module.cjs +13 -0
  106. package/dist/components/Dropdown/Dropdown.module.cjs.map +1 -0
  107. package/dist/components/Dropdown/Dropdown.module.js +13 -0
  108. package/dist/components/Dropdown/Dropdown.module.js.map +1 -0
  109. package/dist/components/Form/Controls/Action/Action.cjs +51 -31
  110. package/dist/components/Form/Controls/Action/Action.cjs.map +1 -1
  111. package/dist/components/Form/Controls/Action/Action.js +46 -30
  112. package/dist/components/Form/Controls/Action/Action.js.map +1 -1
  113. package/dist/components/Form/Controls/Action/Action.module.cjs +9 -0
  114. package/dist/components/Form/Controls/Action/Action.module.cjs.map +1 -0
  115. package/dist/components/Form/Controls/Action/Action.module.js +9 -0
  116. package/dist/components/Form/Controls/Action/Action.module.js.map +1 -0
  117. package/dist/components/Form/Controls/Checkbox/Checkbox.cjs +42 -20
  118. package/dist/components/Form/Controls/Checkbox/Checkbox.cjs.map +1 -1
  119. package/dist/components/Form/Controls/Checkbox/Checkbox.js +36 -19
  120. package/dist/components/Form/Controls/Checkbox/Checkbox.js.map +1 -1
  121. package/dist/components/Form/Controls/Checkbox/Checkbox.module.cjs +9 -0
  122. package/dist/components/Form/Controls/Checkbox/Checkbox.module.cjs.map +1 -0
  123. package/dist/components/Form/Controls/Checkbox/Checkbox.module.js +9 -0
  124. package/dist/components/Form/Controls/Checkbox/Checkbox.module.js.map +1 -0
  125. package/dist/components/Form/Controls/EditInPlace/EditInPlace.cjs +171 -203
  126. package/dist/components/Form/Controls/EditInPlace/EditInPlace.cjs.map +1 -1
  127. package/dist/components/Form/Controls/EditInPlace/EditInPlace.js +166 -202
  128. package/dist/components/Form/Controls/EditInPlace/EditInPlace.js.map +1 -1
  129. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.cjs +8 -0
  130. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.cjs.map +1 -0
  131. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.js +8 -0
  132. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.js.map +1 -0
  133. package/dist/components/Form/Controls/MFA/MFA.cjs +60 -65
  134. package/dist/components/Form/Controls/MFA/MFA.cjs.map +1 -1
  135. package/dist/components/Form/Controls/MFA/MFA.js +56 -65
  136. package/dist/components/Form/Controls/MFA/MFA.js.map +1 -1
  137. package/dist/components/Form/Controls/MFA/MFA.module.cjs +9 -0
  138. package/dist/components/Form/Controls/MFA/MFA.module.cjs.map +1 -0
  139. package/dist/components/Form/Controls/MFA/MFA.module.js +9 -0
  140. package/dist/components/Form/Controls/MFA/MFA.module.js.map +1 -0
  141. package/dist/components/Form/Controls/Password/Password.cjs +52 -37
  142. package/dist/components/Form/Controls/Password/Password.cjs.map +1 -1
  143. package/dist/components/Form/Controls/Password/Password.js +45 -35
  144. package/dist/components/Form/Controls/Password/Password.js.map +1 -1
  145. package/dist/components/Form/Controls/Radio/Radio.cjs +33 -16
  146. package/dist/components/Form/Controls/Radio/Radio.cjs.map +1 -1
  147. package/dist/components/Form/Controls/Radio/Radio.js +28 -15
  148. package/dist/components/Form/Controls/Radio/Radio.js.map +1 -1
  149. package/dist/components/Form/Controls/Radio/Radio.module.cjs +9 -0
  150. package/dist/components/Form/Controls/Radio/Radio.module.cjs.map +1 -0
  151. package/dist/components/Form/Controls/Radio/Radio.module.js +9 -0
  152. package/dist/components/Form/Controls/Radio/Radio.module.js.map +1 -0
  153. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.cjs +47 -29
  154. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.cjs.map +1 -1
  155. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.js +43 -28
  156. package/dist/components/Form/Controls/SettingsToggle/SettingsToggle.js.map +1 -1
  157. package/dist/components/Form/Controls/Text/Text.cjs +34 -18
  158. package/dist/components/Form/Controls/Text/Text.cjs.map +1 -1
  159. package/dist/components/Form/Controls/Text/Text.js +30 -18
  160. package/dist/components/Form/Controls/Text/Text.js.map +1 -1
  161. package/dist/components/Form/Controls/Text/Text.module.cjs +8 -0
  162. package/dist/components/Form/Controls/Text/Text.module.cjs.map +1 -0
  163. package/dist/components/Form/Controls/Text/Text.module.js +8 -0
  164. package/dist/components/Form/Controls/Text/Text.module.js.map +1 -0
  165. package/dist/components/Form/Controls/Toggle/Toggle.cjs +37 -25
  166. package/dist/components/Form/Controls/Toggle/Toggle.cjs.map +1 -1
  167. package/dist/components/Form/Controls/Toggle/Toggle.js +32 -24
  168. package/dist/components/Form/Controls/Toggle/Toggle.js.map +1 -1
  169. package/dist/components/Form/Controls/Toggle/Toggle.module.cjs +9 -0
  170. package/dist/components/Form/Controls/Toggle/Toggle.module.cjs.map +1 -0
  171. package/dist/components/Form/Controls/Toggle/Toggle.module.js +9 -0
  172. package/dist/components/Form/Controls/Toggle/Toggle.module.js.map +1 -0
  173. package/dist/components/Form/Field.cjs +25 -14
  174. package/dist/components/Form/Field.cjs.map +1 -1
  175. package/dist/components/Form/Field.js +22 -14
  176. package/dist/components/Form/Field.js.map +1 -1
  177. package/dist/components/Form/InlineField.cjs +27 -17
  178. package/dist/components/Form/InlineField.cjs.map +1 -1
  179. package/dist/components/Form/InlineField.js +23 -16
  180. package/dist/components/Form/InlineField.js.map +1 -1
  181. package/dist/components/Form/Label.cjs +24 -11
  182. package/dist/components/Form/Label.cjs.map +1 -1
  183. package/dist/components/Form/Label.js +21 -11
  184. package/dist/components/Form/Label.js.map +1 -1
  185. package/dist/components/Form/Message.cjs +61 -40
  186. package/dist/components/Form/Message.cjs.map +1 -1
  187. package/dist/components/Form/Message.js +54 -41
  188. package/dist/components/Form/Message.js.map +1 -1
  189. package/dist/components/Form/Root.cjs +25 -14
  190. package/dist/components/Form/Root.cjs.map +1 -1
  191. package/dist/components/Form/Root.js +22 -14
  192. package/dist/components/Form/Root.js.map +1 -1
  193. package/dist/components/Form/Submit.cjs +23 -12
  194. package/dist/components/Form/Submit.cjs.map +1 -1
  195. package/dist/components/Form/Submit.js +21 -12
  196. package/dist/components/Form/Submit.js.map +1 -1
  197. package/dist/components/Form/form.module.cjs +21 -0
  198. package/dist/components/Form/form.module.cjs.map +1 -0
  199. package/dist/components/Form/form.module.js +21 -0
  200. package/dist/components/Form/form.module.js.map +1 -0
  201. package/dist/components/Form/index.cjs +55 -51
  202. package/dist/components/Form/index.cjs.map +1 -1
  203. package/dist/components/Form/index.js +48 -43
  204. package/dist/components/Form/index.js.map +1 -1
  205. package/dist/components/Glass/Glass.cjs +20 -10
  206. package/dist/components/Glass/Glass.cjs.map +1 -1
  207. package/dist/components/Glass/Glass.js +17 -10
  208. package/dist/components/Glass/Glass.js.map +1 -1
  209. package/dist/components/Glass/Glass.module.cjs +5 -0
  210. package/dist/components/Glass/Glass.module.cjs.map +1 -0
  211. package/dist/components/Glass/Glass.module.js +5 -0
  212. package/dist/components/Glass/Glass.module.js.map +1 -0
  213. package/dist/components/Icon/BigIcon/BigIcon.cjs +18 -25
  214. package/dist/components/Icon/BigIcon/BigIcon.cjs.map +1 -1
  215. package/dist/components/Icon/BigIcon/BigIcon.d.ts +8 -12
  216. package/dist/components/Icon/BigIcon/BigIcon.d.ts.map +1 -1
  217. package/dist/components/Icon/BigIcon/BigIcon.js +15 -25
  218. package/dist/components/Icon/BigIcon/BigIcon.js.map +1 -1
  219. package/dist/components/Icon/BigIcon/BigIcon.module.cjs +6 -0
  220. package/dist/components/Icon/BigIcon/BigIcon.module.cjs.map +1 -0
  221. package/dist/components/Icon/BigIcon/BigIcon.module.js +6 -0
  222. package/dist/components/Icon/BigIcon/BigIcon.module.js.map +1 -0
  223. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.cjs +22 -22
  224. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.cjs.map +1 -1
  225. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.js +19 -22
  226. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.js.map +1 -1
  227. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.cjs +6 -0
  228. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.cjs.map +1 -0
  229. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.js +6 -0
  230. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.js.map +1 -0
  231. package/dist/components/InlineSpinner/InlineSpinner.cjs +24 -21
  232. package/dist/components/InlineSpinner/InlineSpinner.cjs.map +1 -1
  233. package/dist/components/InlineSpinner/InlineSpinner.js +19 -20
  234. package/dist/components/InlineSpinner/InlineSpinner.js.map +1 -1
  235. package/dist/components/InlineSpinner/InlineSpinner.module.cjs +8 -0
  236. package/dist/components/InlineSpinner/InlineSpinner.module.cjs.map +1 -0
  237. package/dist/components/InlineSpinner/InlineSpinner.module.js +8 -0
  238. package/dist/components/InlineSpinner/InlineSpinner.module.js.map +1 -0
  239. package/dist/components/Link/Link.cjs +25 -23
  240. package/dist/components/Link/Link.cjs.map +1 -1
  241. package/dist/components/Link/Link.d.ts +5 -4
  242. package/dist/components/Link/Link.d.ts.map +1 -1
  243. package/dist/components/Link/Link.js +22 -23
  244. package/dist/components/Link/Link.js.map +1 -1
  245. package/dist/components/Link/Link.module.cjs +5 -0
  246. package/dist/components/Link/Link.module.cjs.map +1 -0
  247. package/dist/components/Link/Link.module.js +5 -0
  248. package/dist/components/Link/Link.module.js.map +1 -0
  249. package/dist/components/Menu/CheckboxMenuItem.cjs +37 -39
  250. package/dist/components/Menu/CheckboxMenuItem.cjs.map +1 -1
  251. package/dist/components/Menu/CheckboxMenuItem.js +34 -38
  252. package/dist/components/Menu/CheckboxMenuItem.js.map +1 -1
  253. package/dist/components/Menu/ContextMenu.cjs +71 -62
  254. package/dist/components/Menu/ContextMenu.cjs.map +1 -1
  255. package/dist/components/Menu/ContextMenu.js +66 -60
  256. package/dist/components/Menu/ContextMenu.js.map +1 -1
  257. package/dist/components/Menu/DrawerMenu.cjs +27 -22
  258. package/dist/components/Menu/DrawerMenu.cjs.map +1 -1
  259. package/dist/components/Menu/DrawerMenu.js +23 -21
  260. package/dist/components/Menu/DrawerMenu.js.map +1 -1
  261. package/dist/components/Menu/DrawerMenu.module.cjs +9 -0
  262. package/dist/components/Menu/DrawerMenu.module.cjs.map +1 -0
  263. package/dist/components/Menu/DrawerMenu.module.js +9 -0
  264. package/dist/components/Menu/DrawerMenu.module.js.map +1 -0
  265. package/dist/components/Menu/FloatingMenu.cjs +31 -28
  266. package/dist/components/Menu/FloatingMenu.cjs.map +1 -1
  267. package/dist/components/Menu/FloatingMenu.js +27 -27
  268. package/dist/components/Menu/FloatingMenu.js.map +1 -1
  269. package/dist/components/Menu/FloatingMenu.module.cjs +14 -0
  270. package/dist/components/Menu/FloatingMenu.module.cjs.map +1 -0
  271. package/dist/components/Menu/FloatingMenu.module.js +14 -0
  272. package/dist/components/Menu/FloatingMenu.module.js.map +1 -0
  273. package/dist/components/Menu/Menu.cjs +68 -56
  274. package/dist/components/Menu/Menu.cjs.map +1 -1
  275. package/dist/components/Menu/Menu.js +63 -54
  276. package/dist/components/Menu/Menu.js.map +1 -1
  277. package/dist/components/Menu/MenuContext.cjs +10 -5
  278. package/dist/components/Menu/MenuContext.cjs.map +1 -1
  279. package/dist/components/Menu/MenuContext.js +10 -5
  280. package/dist/components/Menu/MenuContext.js.map +1 -1
  281. package/dist/components/Menu/MenuItem.cjs +83 -95
  282. package/dist/components/Menu/MenuItem.cjs.map +1 -1
  283. package/dist/components/Menu/MenuItem.js +77 -93
  284. package/dist/components/Menu/MenuItem.js.map +1 -1
  285. package/dist/components/Menu/MenuItem.module.cjs +20 -0
  286. package/dist/components/Menu/MenuItem.module.cjs.map +1 -0
  287. package/dist/components/Menu/MenuItem.module.js +20 -0
  288. package/dist/components/Menu/MenuItem.module.js.map +1 -0
  289. package/dist/components/Menu/MenuTitle.cjs +21 -14
  290. package/dist/components/Menu/MenuTitle.cjs.map +1 -1
  291. package/dist/components/Menu/MenuTitle.js +17 -13
  292. package/dist/components/Menu/MenuTitle.js.map +1 -1
  293. package/dist/components/Menu/MenuTitle.module.cjs +6 -0
  294. package/dist/components/Menu/MenuTitle.module.cjs.map +1 -0
  295. package/dist/components/Menu/MenuTitle.module.js +6 -0
  296. package/dist/components/Menu/MenuTitle.module.js.map +1 -0
  297. package/dist/components/Menu/RadioMenuItem.cjs +35 -37
  298. package/dist/components/Menu/RadioMenuItem.cjs.map +1 -1
  299. package/dist/components/Menu/RadioMenuItem.js +32 -36
  300. package/dist/components/Menu/RadioMenuItem.js.map +1 -1
  301. package/dist/components/Menu/ToggleMenuItem.cjs +39 -41
  302. package/dist/components/Menu/ToggleMenuItem.cjs.map +1 -1
  303. package/dist/components/Menu/ToggleMenuItem.js +36 -40
  304. package/dist/components/Menu/ToggleMenuItem.js.map +1 -1
  305. package/dist/components/Nav/Nav.module.cjs +11 -0
  306. package/dist/components/Nav/Nav.module.cjs.map +1 -0
  307. package/dist/components/Nav/Nav.module.js +11 -0
  308. package/dist/components/Nav/Nav.module.js.map +1 -0
  309. package/dist/components/Nav/NavBar.cjs +47 -28
  310. package/dist/components/Nav/NavBar.cjs.map +1 -1
  311. package/dist/components/Nav/NavBar.js +44 -28
  312. package/dist/components/Nav/NavBar.js.map +1 -1
  313. package/dist/components/Nav/NavItem.cjs +70 -72
  314. package/dist/components/Nav/NavItem.cjs.map +1 -1
  315. package/dist/components/Nav/NavItem.js +68 -72
  316. package/dist/components/Nav/NavItem.js.map +1 -1
  317. package/dist/components/PageHeader/PageHeader.d.ts +19 -0
  318. package/dist/components/PageHeader/PageHeader.d.ts.map +1 -0
  319. package/dist/components/Progress/Progress.cjs +43 -56
  320. package/dist/components/Progress/Progress.cjs.map +1 -1
  321. package/dist/components/Progress/Progress.d.ts +2 -1
  322. package/dist/components/Progress/Progress.d.ts.map +1 -1
  323. package/dist/components/Progress/Progress.js +40 -56
  324. package/dist/components/Progress/Progress.js.map +1 -1
  325. package/dist/components/Progress/Progress.module.cjs +11 -0
  326. package/dist/components/Progress/Progress.module.cjs.map +1 -0
  327. package/dist/components/Progress/Progress.module.js +11 -0
  328. package/dist/components/Progress/Progress.module.js.map +1 -0
  329. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.cjs +108 -115
  330. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.cjs.map +1 -1
  331. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.js +105 -114
  332. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.js.map +1 -1
  333. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.cjs +11 -0
  334. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.cjs.map +1 -0
  335. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.js +11 -0
  336. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.js.map +1 -0
  337. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.cjs +16 -12
  338. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.cjs.map +1 -1
  339. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.js +15 -13
  340. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncementContext.js.map +1 -1
  341. package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.cjs +52 -62
  342. package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.cjs.map +1 -1
  343. package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.js +52 -63
  344. package/dist/components/ReleaseAnnouncement/useReleaseAnnouncement.js.map +1 -1
  345. package/dist/components/Search/Search.cjs +43 -36
  346. package/dist/components/Search/Search.cjs.map +1 -1
  347. package/dist/components/Search/Search.js +37 -34
  348. package/dist/components/Search/Search.js.map +1 -1
  349. package/dist/components/Search/Search.module.cjs +9 -0
  350. package/dist/components/Search/Search.module.cjs.map +1 -0
  351. package/dist/components/Search/Search.module.js +9 -0
  352. package/dist/components/Search/Search.module.js.map +1 -0
  353. package/dist/components/Separator/Separator.cjs +34 -57
  354. package/dist/components/Separator/Separator.cjs.map +1 -1
  355. package/dist/components/Separator/Separator.js +29 -39
  356. package/dist/components/Separator/Separator.js.map +1 -1
  357. package/dist/components/Separator/Separator.module.cjs +5 -0
  358. package/dist/components/Separator/Separator.module.cjs.map +1 -0
  359. package/dist/components/Separator/Separator.module.js +5 -0
  360. package/dist/components/Separator/Separator.module.js.map +1 -0
  361. package/dist/components/Toast/Toast.cjs +19 -10
  362. package/dist/components/Toast/Toast.cjs.map +1 -1
  363. package/dist/components/Toast/Toast.js +15 -9
  364. package/dist/components/Toast/Toast.js.map +1 -1
  365. package/dist/components/Toast/Toast.module.cjs +6 -0
  366. package/dist/components/Toast/Toast.module.cjs.map +1 -0
  367. package/dist/components/Toast/Toast.module.js +6 -0
  368. package/dist/components/Toast/Toast.module.js.map +1 -0
  369. package/dist/components/Tooltip/Tooltip.cjs +103 -118
  370. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  371. package/dist/components/Tooltip/Tooltip.js +99 -117
  372. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  373. package/dist/components/Tooltip/Tooltip.module.cjs +10 -0
  374. package/dist/components/Tooltip/Tooltip.module.cjs.map +1 -0
  375. package/dist/components/Tooltip/Tooltip.module.js +10 -0
  376. package/dist/components/Tooltip/Tooltip.module.js.map +1 -0
  377. package/dist/components/Tooltip/TooltipContext.cjs +16 -10
  378. package/dist/components/Tooltip/TooltipContext.cjs.map +1 -1
  379. package/dist/components/Tooltip/TooltipContext.js +15 -11
  380. package/dist/components/Tooltip/TooltipContext.js.map +1 -1
  381. package/dist/components/Tooltip/TooltipProvider.cjs +22 -7
  382. package/dist/components/Tooltip/TooltipProvider.cjs.map +1 -1
  383. package/dist/components/Tooltip/TooltipProvider.js +19 -7
  384. package/dist/components/Tooltip/TooltipProvider.js.map +1 -1
  385. package/dist/components/Tooltip/useTooltip.cjs +112 -139
  386. package/dist/components/Tooltip/useTooltip.cjs.map +1 -1
  387. package/dist/components/Tooltip/useTooltip.js +111 -139
  388. package/dist/components/Tooltip/useTooltip.js.map +1 -1
  389. package/dist/components/Typography/Body.cjs +17 -10
  390. package/dist/components/Typography/Body.cjs.map +1 -1
  391. package/dist/components/Typography/Body.js +15 -10
  392. package/dist/components/Typography/Body.js.map +1 -1
  393. package/dist/components/Typography/Heading.cjs +92 -20
  394. package/dist/components/Typography/Heading.cjs.map +1 -1
  395. package/dist/components/Typography/Heading.d.ts +2 -1
  396. package/dist/components/Typography/Heading.d.ts.map +1 -1
  397. package/dist/components/Typography/Heading.js +89 -25
  398. package/dist/components/Typography/Heading.js.map +1 -1
  399. package/dist/components/Typography/Text.cjs +20 -7
  400. package/dist/components/Typography/Text.cjs.map +1 -1
  401. package/dist/components/Typography/Text.d.ts +2 -1
  402. package/dist/components/Typography/Text.d.ts.map +1 -1
  403. package/dist/components/Typography/Text.js +18 -7
  404. package/dist/components/Typography/Text.js.map +1 -1
  405. package/dist/components/Typography/Typography.cjs +17 -28
  406. package/dist/components/Typography/Typography.cjs.map +1 -1
  407. package/dist/components/Typography/Typography.d.ts +2 -1
  408. package/dist/components/Typography/Typography.d.ts.map +1 -1
  409. package/dist/components/Typography/Typography.js +14 -28
  410. package/dist/components/Typography/Typography.js.map +1 -1
  411. package/dist/components/Typography/Typography.module.cjs +30 -0
  412. package/dist/components/Typography/Typography.module.cjs.map +1 -0
  413. package/dist/components/Typography/Typography.module.js +30 -0
  414. package/dist/components/Typography/Typography.module.js.map +1 -0
  415. package/dist/components/VisualList/VisualList.cjs +20 -12
  416. package/dist/components/VisualList/VisualList.cjs.map +1 -1
  417. package/dist/components/VisualList/VisualList.js +17 -12
  418. package/dist/components/VisualList/VisualList.js.map +1 -1
  419. package/dist/components/VisualList/VisualList.module.cjs +6 -0
  420. package/dist/components/VisualList/VisualList.module.cjs.map +1 -0
  421. package/dist/components/VisualList/VisualList.module.js +6 -0
  422. package/dist/components/VisualList/VisualList.module.js.map +1 -0
  423. package/dist/components/VisualList/VisualListItem.cjs +28 -36
  424. package/dist/components/VisualList/VisualListItem.cjs.map +1 -1
  425. package/dist/components/VisualList/VisualListItem.js +25 -36
  426. package/dist/components/VisualList/VisualListItem.js.map +1 -1
  427. package/dist/components/VisualList/VisualListItem.module.cjs +11 -0
  428. package/dist/components/VisualList/VisualListItem.module.cjs.map +1 -0
  429. package/dist/components/VisualList/VisualListItem.module.js +11 -0
  430. package/dist/components/VisualList/VisualListItem.module.js.map +1 -0
  431. package/dist/index.cjs +147 -139
  432. package/dist/index.js +36 -116
  433. package/dist/style.css +1609 -1601
  434. package/dist/utils/platform.cjs +12 -11
  435. package/dist/utils/platform.cjs.map +1 -1
  436. package/dist/utils/platform.js +13 -12
  437. package/dist/utils/platform.js.map +1 -1
  438. package/dist/utils/size.d.ts +5 -0
  439. package/dist/utils/size.d.ts.map +1 -0
  440. package/dist/utils/string.cjs +19 -19
  441. package/dist/utils/string.cjs.map +1 -1
  442. package/dist/utils/string.js +20 -20
  443. package/dist/utils/string.js.map +1 -1
  444. package/package.json +15 -15
  445. package/src/components/Avatar/Avatar.module.css +1 -1
  446. package/src/components/Avatar/avatar-clip.mask.svg +2 -6
  447. package/src/components/Breadcrumb/Breadcrumb.module.css +1 -1
  448. package/src/components/Breadcrumb/Breadcrumb.tsx +1 -1
  449. package/src/components/Button/Button.tsx +2 -1
  450. package/src/components/Dropdown/Dropdown.module.css +1 -1
  451. package/src/components/Icon/BigIcon/BigIcon.module.css +11 -8
  452. package/src/components/Icon/BigIcon/BigIcon.tsx +11 -18
  453. package/src/components/Link/Link.module.css +5 -1
  454. package/src/components/Link/Link.tsx +6 -5
  455. package/src/components/Nav/Nav.module.css +1 -1
  456. package/src/components/PageHeader/PageHeader.module.css +41 -0
  457. package/src/components/PageHeader/PageHeader.tsx +67 -0
  458. package/src/components/Progress/Progress.tsx +2 -1
  459. package/src/components/Separator/Separator.module.css +2 -2
  460. package/src/components/Typography/Heading.tsx +2 -1
  461. package/src/components/Typography/Text.tsx +2 -1
  462. package/src/components/Typography/Typography.tsx +2 -1
  463. package/src/components/VisualList/VisualList.module.css +1 -1
  464. package/src/utils/size.ts +11 -0
  465. package/tsconfig.json +1 -0
  466. package/dist/components/ActivityMarker/Pill.module.css.cjs +0 -9
  467. package/dist/components/ActivityMarker/Pill.module.css.cjs.map +0 -1
  468. package/dist/components/ActivityMarker/Pill.module.css.js +0 -9
  469. package/dist/components/ActivityMarker/Pill.module.css.js.map +0 -1
  470. package/dist/components/ActivityMarker/Unread.module.css.cjs +0 -9
  471. package/dist/components/ActivityMarker/Unread.module.css.cjs.map +0 -1
  472. package/dist/components/ActivityMarker/Unread.module.css.js +0 -9
  473. package/dist/components/ActivityMarker/Unread.module.css.js.map +0 -1
  474. package/dist/components/ActivityMarker/UnreadCounter.module.css.cjs +0 -7
  475. package/dist/components/ActivityMarker/UnreadCounter.module.css.cjs.map +0 -1
  476. package/dist/components/ActivityMarker/UnreadCounter.module.css.js +0 -7
  477. package/dist/components/ActivityMarker/UnreadCounter.module.css.js.map +0 -1
  478. package/dist/components/Alert/Alert.module.css.cjs +0 -19
  479. package/dist/components/Alert/Alert.module.css.cjs.map +0 -1
  480. package/dist/components/Alert/Alert.module.css.js +0 -19
  481. package/dist/components/Alert/Alert.module.css.js.map +0 -1
  482. package/dist/components/Avatar/Avatar.module.css.cjs +0 -15
  483. package/dist/components/Avatar/Avatar.module.css.cjs.map +0 -1
  484. package/dist/components/Avatar/Avatar.module.css.js +0 -15
  485. package/dist/components/Avatar/Avatar.module.css.js.map +0 -1
  486. package/dist/components/Avatar/avatar-clip.mask.svg.cjs +0 -5
  487. package/dist/components/Avatar/avatar-clip.mask.svg.cjs.map +0 -1
  488. package/dist/components/Avatar/avatar-clip.mask.svg.js +0 -5
  489. package/dist/components/Avatar/avatar-clip.mask.svg.js.map +0 -1
  490. package/dist/components/Badge/Badge.module.css.cjs +0 -9
  491. package/dist/components/Badge/Badge.module.css.cjs.map +0 -1
  492. package/dist/components/Badge/Badge.module.css.js +0 -9
  493. package/dist/components/Badge/Badge.module.css.js.map +0 -1
  494. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs +0 -13
  495. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs.map +0 -1
  496. package/dist/components/Breadcrumb/Breadcrumb.module.css.js +0 -13
  497. package/dist/components/Breadcrumb/Breadcrumb.module.css.js.map +0 -1
  498. package/dist/components/Button/Button.module.css.cjs +0 -14
  499. package/dist/components/Button/Button.module.css.cjs.map +0 -1
  500. package/dist/components/Button/Button.module.css.js +0 -14
  501. package/dist/components/Button/Button.module.css.js.map +0 -1
  502. package/dist/components/Button/IconButton/IconButton.module.css.cjs +0 -11
  503. package/dist/components/Button/IconButton/IconButton.module.css.cjs.map +0 -1
  504. package/dist/components/Button/IconButton/IconButton.module.css.js +0 -11
  505. package/dist/components/Button/IconButton/IconButton.module.css.js.map +0 -1
  506. package/dist/components/ChatFilter/ChatFilter.module.css.cjs +0 -7
  507. package/dist/components/ChatFilter/ChatFilter.module.css.cjs.map +0 -1
  508. package/dist/components/ChatFilter/ChatFilter.module.css.js +0 -7
  509. package/dist/components/ChatFilter/ChatFilter.module.css.js.map +0 -1
  510. package/dist/components/Dropdown/Dropdown.module.css.cjs +0 -27
  511. package/dist/components/Dropdown/Dropdown.module.css.cjs.map +0 -1
  512. package/dist/components/Dropdown/Dropdown.module.css.js +0 -27
  513. package/dist/components/Dropdown/Dropdown.module.css.js.map +0 -1
  514. package/dist/components/Form/Controls/Action/Action.module.css.cjs +0 -15
  515. package/dist/components/Form/Controls/Action/Action.module.css.cjs.map +0 -1
  516. package/dist/components/Form/Controls/Action/Action.module.css.js +0 -15
  517. package/dist/components/Form/Controls/Action/Action.module.css.js.map +0 -1
  518. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.cjs +0 -15
  519. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.cjs.map +0 -1
  520. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.js +0 -15
  521. package/dist/components/Form/Controls/Checkbox/Checkbox.module.css.js.map +0 -1
  522. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.cjs +0 -10
  523. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.cjs.map +0 -1
  524. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.js +0 -10
  525. package/dist/components/Form/Controls/EditInPlace/EditInPlace.module.css.js.map +0 -1
  526. package/dist/components/Form/Controls/MFA/MFA.module.css.cjs +0 -15
  527. package/dist/components/Form/Controls/MFA/MFA.module.css.cjs.map +0 -1
  528. package/dist/components/Form/Controls/MFA/MFA.module.css.js +0 -15
  529. package/dist/components/Form/Controls/MFA/MFA.module.css.js.map +0 -1
  530. package/dist/components/Form/Controls/Radio/Radio.module.css.cjs +0 -15
  531. package/dist/components/Form/Controls/Radio/Radio.module.css.cjs.map +0 -1
  532. package/dist/components/Form/Controls/Radio/Radio.module.css.js +0 -15
  533. package/dist/components/Form/Controls/Radio/Radio.module.css.js.map +0 -1
  534. package/dist/components/Form/Controls/Text/Text.module.css.cjs +0 -10
  535. package/dist/components/Form/Controls/Text/Text.module.css.cjs.map +0 -1
  536. package/dist/components/Form/Controls/Text/Text.module.css.js +0 -10
  537. package/dist/components/Form/Controls/Text/Text.module.css.js.map +0 -1
  538. package/dist/components/Form/Controls/Toggle/Toggle.module.css.cjs +0 -15
  539. package/dist/components/Form/Controls/Toggle/Toggle.module.css.cjs.map +0 -1
  540. package/dist/components/Form/Controls/Toggle/Toggle.module.css.js +0 -15
  541. package/dist/components/Form/Controls/Toggle/Toggle.module.css.js.map +0 -1
  542. package/dist/components/Form/form.module.css.cjs +0 -24
  543. package/dist/components/Form/form.module.css.cjs.map +0 -1
  544. package/dist/components/Form/form.module.css.js +0 -24
  545. package/dist/components/Form/form.module.css.js.map +0 -1
  546. package/dist/components/Glass/Glass.module.css.cjs +0 -9
  547. package/dist/components/Glass/Glass.module.css.cjs.map +0 -1
  548. package/dist/components/Glass/Glass.module.css.js +0 -9
  549. package/dist/components/Glass/Glass.module.css.js.map +0 -1
  550. package/dist/components/Icon/BigIcon/BigIcon.module.css.cjs +0 -15
  551. package/dist/components/Icon/BigIcon/BigIcon.module.css.cjs.map +0 -1
  552. package/dist/components/Icon/BigIcon/BigIcon.module.css.js +0 -15
  553. package/dist/components/Icon/BigIcon/BigIcon.module.css.js.map +0 -1
  554. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.cjs +0 -7
  555. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.cjs.map +0 -1
  556. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.js +0 -7
  557. package/dist/components/Icon/IndicatorIcon/IndicatorIcon.module.css.js.map +0 -1
  558. package/dist/components/InlineSpinner/InlineSpinner.module.css.cjs +0 -9
  559. package/dist/components/InlineSpinner/InlineSpinner.module.css.cjs.map +0 -1
  560. package/dist/components/InlineSpinner/InlineSpinner.module.css.js +0 -9
  561. package/dist/components/InlineSpinner/InlineSpinner.module.css.js.map +0 -1
  562. package/dist/components/Link/Link.module.css.cjs +0 -9
  563. package/dist/components/Link/Link.module.css.cjs.map +0 -1
  564. package/dist/components/Link/Link.module.css.js +0 -9
  565. package/dist/components/Link/Link.module.css.js.map +0 -1
  566. package/dist/components/Menu/DrawerMenu.module.css.cjs +0 -15
  567. package/dist/components/Menu/DrawerMenu.module.css.cjs.map +0 -1
  568. package/dist/components/Menu/DrawerMenu.module.css.js +0 -15
  569. package/dist/components/Menu/DrawerMenu.module.css.js.map +0 -1
  570. package/dist/components/Menu/FloatingMenu.module.css.cjs +0 -12
  571. package/dist/components/Menu/FloatingMenu.module.css.cjs.map +0 -1
  572. package/dist/components/Menu/FloatingMenu.module.css.js +0 -12
  573. package/dist/components/Menu/FloatingMenu.module.css.js.map +0 -1
  574. package/dist/components/Menu/MenuItem.module.css.cjs +0 -24
  575. package/dist/components/Menu/MenuItem.module.css.cjs.map +0 -1
  576. package/dist/components/Menu/MenuItem.module.css.js +0 -24
  577. package/dist/components/Menu/MenuItem.module.css.js.map +0 -1
  578. package/dist/components/Menu/MenuTitle.module.css.cjs +0 -7
  579. package/dist/components/Menu/MenuTitle.module.css.cjs.map +0 -1
  580. package/dist/components/Menu/MenuTitle.module.css.js +0 -7
  581. package/dist/components/Menu/MenuTitle.module.css.js.map +0 -1
  582. package/dist/components/Nav/Nav.module.css.cjs +0 -10
  583. package/dist/components/Nav/Nav.module.css.cjs.map +0 -1
  584. package/dist/components/Nav/Nav.module.css.js +0 -10
  585. package/dist/components/Nav/Nav.module.css.js.map +0 -1
  586. package/dist/components/Progress/Progress.module.css.cjs +0 -10
  587. package/dist/components/Progress/Progress.module.css.cjs.map +0 -1
  588. package/dist/components/Progress/Progress.module.css.js +0 -10
  589. package/dist/components/Progress/Progress.module.css.js.map +0 -1
  590. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.cjs +0 -21
  591. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.cjs.map +0 -1
  592. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.js +0 -21
  593. package/dist/components/ReleaseAnnouncement/ReleaseAnnouncement.module.css.js.map +0 -1
  594. package/dist/components/Search/Search.module.css.cjs +0 -15
  595. package/dist/components/Search/Search.module.css.cjs.map +0 -1
  596. package/dist/components/Search/Search.module.css.js +0 -15
  597. package/dist/components/Search/Search.module.css.js.map +0 -1
  598. package/dist/components/Separator/Separator.module.css.cjs +0 -9
  599. package/dist/components/Separator/Separator.module.css.cjs.map +0 -1
  600. package/dist/components/Separator/Separator.module.css.js +0 -9
  601. package/dist/components/Separator/Separator.module.css.js.map +0 -1
  602. package/dist/components/Toast/Toast.module.css.cjs +0 -7
  603. package/dist/components/Toast/Toast.module.css.cjs.map +0 -1
  604. package/dist/components/Toast/Toast.module.css.js +0 -7
  605. package/dist/components/Toast/Toast.module.css.js.map +0 -1
  606. package/dist/components/Tooltip/Tooltip.module.css.cjs +0 -18
  607. package/dist/components/Tooltip/Tooltip.module.css.cjs.map +0 -1
  608. package/dist/components/Tooltip/Tooltip.module.css.js +0 -18
  609. package/dist/components/Tooltip/Tooltip.module.css.js.map +0 -1
  610. package/dist/components/Typography/Typography.module.css.cjs +0 -30
  611. package/dist/components/Typography/Typography.module.css.cjs.map +0 -1
  612. package/dist/components/Typography/Typography.module.css.js +0 -30
  613. package/dist/components/Typography/Typography.module.css.js.map +0 -1
  614. package/dist/components/VisualList/VisualList.module.css.cjs +0 -7
  615. package/dist/components/VisualList/VisualList.module.css.cjs.map +0 -1
  616. package/dist/components/VisualList/VisualList.module.css.js +0 -7
  617. package/dist/components/VisualList/VisualList.module.css.js.map +0 -1
  618. package/dist/components/VisualList/VisualListItem.module.css.cjs +0 -10
  619. package/dist/components/VisualList/VisualListItem.module.css.cjs.map +0 -1
  620. package/dist/components/VisualList/VisualListItem.module.css.js +0 -10
  621. package/dist/components/VisualList/VisualListItem.module.css.js.map +0 -1
  622. package/dist/index.cjs.map +0 -1
  623. package/dist/index.js.map +0 -1
@@ -1,208 +1,176 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const React = require("react");
5
- const reactForm = require("@radix-ui/react-form");
6
- const CheckIcon = require("@vector-im/compound-design-tokens/assets/web/icons/check");
7
- const CloseIcon = require("@vector-im/compound-design-tokens/assets/web/icons/close");
8
- const EditInPlace_module = require("./EditInPlace.module.css.cjs");
9
- const Root = require("../../Root.cjs");
10
- const Field = require("../../Field.cjs");
11
- const Label = require("../../Label.cjs");
12
- const Text = require("../Text/Text.cjs");
13
- const Tooltip = require("../../../Tooltip/Tooltip.cjs");
14
- const Button = require("../../../Button/Button.cjs");
15
- const Message = require("../../Message.cjs");
1
+ const require_runtime = require("../../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_Button = require("../../../Button/Button.cjs");
3
+ const require_Tooltip = require("../../../Tooltip/Tooltip.cjs");
4
+ const require_Text = require("../Text/Text.cjs");
5
+ const require_EditInPlace_module = require("./EditInPlace.module.cjs");
6
+ const require_Label = require("../../Label.cjs");
7
+ const require_Message = require("../../Message.cjs");
8
+ const require_Root = require("../../Root.cjs");
9
+ const require_Field = require("../../Field.cjs");
10
+ let react = require("react");
11
+ react = require_runtime.__toESM(react);
12
+ let _vector_im_compound_design_tokens_assets_web_icons_close = require("@vector-im/compound-design-tokens/assets/web/icons/close");
13
+ _vector_im_compound_design_tokens_assets_web_icons_close = require_runtime.__toESM(_vector_im_compound_design_tokens_assets_web_icons_close);
14
+ let react_jsx_runtime = require("react/jsx-runtime");
15
+ let _radix_ui_react_form = require("@radix-ui/react-form");
16
+ let _vector_im_compound_design_tokens_assets_web_icons_check = require("@vector-im/compound-design-tokens/assets/web/icons/check");
17
+ _vector_im_compound_design_tokens_assets_web_icons_check = require_runtime.__toESM(_vector_im_compound_design_tokens_assets_web_icons_check);
18
+ //#region src/components/Form/Controls/EditInPlace/EditInPlace.tsx
19
+ var State = /* @__PURE__ */ function(State) {
20
+ /** No changes on the input has been made */
21
+ State[State["Initial"] = 0] = "Initial";
22
+ /** The input has been changed */
23
+ State[State["Dirty"] = 1] = "Dirty";
24
+ /** The input is being saved */
25
+ State[State["Saving"] = 2] = "Saving";
26
+ /** The input has been saved */
27
+ State[State["Saved"] = 3] = "Saved";
28
+ return State;
29
+ }(State || {});
30
+ var Event = /* @__PURE__ */ function(Event) {
31
+ Event[Event["Touch"] = 0] = "Touch";
32
+ Event[Event["Save"] = 1] = "Save";
33
+ Event[Event["Saved"] = 2] = "Saved";
34
+ Event[Event["SaveError"] = 3] = "SaveError";
35
+ Event[Event["Cancel"] = 4] = "Cancel";
36
+ Event[Event["SavedTimeout"] = 5] = "SavedTimeout";
37
+ return Event;
38
+ }(Event || {});
16
39
  function reducer(state, action) {
17
- switch (action) {
18
- case 0:
19
- if (state === 0 || state === 3) return 1;
20
- else return state;
21
- case 1:
22
- return 2;
23
- case 4:
24
- return 0;
25
- case 2:
26
- if (state === 2) return 3;
27
- else return state;
28
- case 3:
29
- if (state === 2) return 0;
30
- else return state;
31
- case 5:
32
- if (state === 3) return 0;
33
- else return state;
34
- }
35
- assertNever(action);
40
+ switch (action) {
41
+ case Event.Touch: if (state === State.Initial || state === State.Saved) return State.Dirty;
42
+ else return state;
43
+ case Event.Save: return State.Saving;
44
+ case Event.Cancel: return State.Initial;
45
+ case Event.Saved: if (state === State.Saving) return State.Saved;
46
+ else return state;
47
+ case Event.SaveError: if (state === State.Saving) return State.Initial;
48
+ else return state;
49
+ case Event.SavedTimeout: if (state === State.Saved) return State.Initial;
50
+ else return state;
51
+ }
52
+ assertNever(action);
36
53
  }
37
54
  function assertNever(value) {
38
- throw new Error(`Unreachable value: ${value}`);
55
+ throw new Error(`Unreachable value: ${value}`);
39
56
  }
40
- const EditInPlace = React.forwardRef(
41
- function EditInPlace2({
42
- className,
43
- label,
44
- onSave,
45
- onCancel,
46
- onInput,
47
- onClearServerErrors,
48
- serverInvalid,
49
- saveButtonLabel,
50
- cancelButtonLabel,
51
- savedLabel,
52
- savingLabel,
53
- helpLabel,
54
- disabled,
55
- children,
56
- ...props
57
- }, ref) {
58
- const [state, dispatch] = React.useReducer(
59
- reducer,
60
- 0
61
- /* Initial */
62
- );
63
- const isFocusWithinRef = React.useRef(false);
64
- const [isFocusWithin, setFocusWithin] = React.useState(false);
65
- const shouldShowSaveButton = state === 1 || state === 2 || isFocusWithin;
66
- const hideTimer = React.useRef(
67
- void 0
68
- );
69
- React.useEffect(() => {
70
- if (state === 3) {
71
- hideTimer.current = setTimeout(() => {
72
- dispatch(
73
- 5
74
- /* SavedTimeout */
75
- );
76
- hideTimer.current = void 0;
77
- }, 2e3);
78
- }
79
- return () => {
80
- if (hideTimer.current) clearTimeout(hideTimer.current);
81
- hideTimer.current = void 0;
82
- };
83
- }, [state]);
84
- const formRef = React.useRef(null);
85
- const saveButtonRef = React.useRef(null);
86
- const cancelButtonRef = React.useRef(null);
87
- const onFocus = React.useCallback(() => {
88
- if (isFocusWithinRef.current) return;
89
- isFocusWithinRef.current = true;
90
- setFocusWithin(true);
91
- }, [isFocusWithin, setFocusWithin]);
92
- const onBlur = React.useCallback(
93
- (e) => {
94
- if (!isFocusWithinRef.current) return;
95
- if (e.currentTarget.contains(e.relatedTarget)) return;
96
- isFocusWithinRef.current = false;
97
- setFocusWithin(false);
98
- },
99
- [isFocusWithin, setFocusWithin]
100
- );
101
- const onInputHandler = React.useCallback(
102
- (e) => {
103
- dispatch(
104
- 0
105
- /* Touch */
106
- );
107
- onInput?.(e);
108
- },
109
- [dispatch, onInput]
110
- );
111
- const onFormSubmit = React.useCallback(
112
- async (e) => {
113
- e.preventDefault();
114
- if (state === 0) {
115
- return;
116
- }
117
- try {
118
- dispatch(
119
- 1
120
- /* Save */
121
- );
122
- saveButtonRef.current?.blur();
123
- await onSave?.(e);
124
- dispatch(
125
- 2
126
- /* Saved */
127
- );
128
- } catch {
129
- dispatch(
130
- 3
131
- /* SaveError */
132
- );
133
- }
134
- },
135
- [onSave, state, hideTimer]
136
- );
137
- const onFormReset = React.useCallback(
138
- (e) => {
139
- cancelButtonRef.current?.blur();
140
- onCancel?.(e);
141
- dispatch(
142
- 4
143
- /* Cancel */
144
- );
145
- },
146
- [cancelButtonRef, onCancel]
147
- );
148
- return /* @__PURE__ */ jsxRuntime.jsx(
149
- Root.Root,
150
- {
151
- className,
152
- onSubmit: onFormSubmit,
153
- onReset: onFormReset,
154
- onFocus,
155
- onBlur,
156
- onClearServerErrors,
157
- ref: formRef,
158
- children: /* @__PURE__ */ jsxRuntime.jsxs(Field.Field, { name: "input", serverInvalid, children: [
159
- /* @__PURE__ */ jsxRuntime.jsx(Label.Label, { children: label }),
160
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: EditInPlace_module.default.controls, children: [
161
- /* @__PURE__ */ jsxRuntime.jsx(
162
- Text.TextControl,
163
- {
164
- ref,
165
- ...props,
166
- onInput: onInputHandler,
167
- disabled: disabled || state === 2
168
- /* Saving */
169
- }
170
- ),
171
- shouldShowSaveButton && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: EditInPlace_module.default["button-group"], children: [
172
- /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, { label: saveButtonLabel, children: /* @__PURE__ */ jsxRuntime.jsx(reactForm.Submit, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
173
- Button.Button,
174
- {
175
- type: "submit",
176
- kind: "primary",
177
- size: "sm",
178
- ref: saveButtonRef,
179
- disabled: state !== 1,
180
- iconOnly: true,
181
- Icon: CheckIcon
182
- }
183
- ) }) }),
184
- /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, { label: cancelButtonLabel, children: /* @__PURE__ */ jsxRuntime.jsx(
185
- Button.Button,
186
- {
187
- type: "reset",
188
- kind: "secondary",
189
- size: "sm",
190
- ref: cancelButtonRef,
191
- className: EditInPlace_module.default.button,
192
- disabled: state === 2,
193
- iconOnly: true,
194
- Icon: CloseIcon
195
- }
196
- ) })
197
- ] })
198
- ] }),
199
- state === 2 ? /* @__PURE__ */ jsxRuntime.jsx(Message.LoadingMessage, { children: savingLabel }) : children,
200
- savedLabel && state === 3 && /* @__PURE__ */ jsxRuntime.jsx(Message.SuccessMessage, { children: savedLabel }),
201
- helpLabel && (state === 0 || state === 1) && /* @__PURE__ */ jsxRuntime.jsx(reactForm.ValidityState, { children: (validity) => (validity === void 0 || validity.valid) && !serverInvalid && /* @__PURE__ */ jsxRuntime.jsx(Message.HelpMessage, { children: helpLabel }) })
202
- ] })
203
- }
204
- );
205
- }
206
- );
57
+ /**
58
+ * A text box with save/cancel buttons that appear when the field is active.
59
+ * Since thios control has its own 'save' button, it should *not* appear as part
60
+ * of a larger form: it exists as its own form that submits separately.
61
+ */
62
+ var EditInPlace = (0, react.forwardRef)(function EditInPlace({ className, label, onSave, onCancel, onInput, onClearServerErrors, serverInvalid, saveButtonLabel, cancelButtonLabel, savedLabel, savingLabel, helpLabel, disabled, children, ...props }, ref) {
63
+ const [state, dispatch] = (0, react.useReducer)(reducer, State.Initial);
64
+ const isFocusWithinRef = (0, react.useRef)(false);
65
+ const [isFocusWithin, setFocusWithin] = (0, react.useState)(false);
66
+ const shouldShowSaveButton = state === State.Dirty || state === State.Saving || isFocusWithin;
67
+ const hideTimer = (0, react.useRef)(void 0);
68
+ (0, react.useEffect)(() => {
69
+ if (state === State.Saved) hideTimer.current = setTimeout(() => {
70
+ dispatch(Event.SavedTimeout);
71
+ hideTimer.current = void 0;
72
+ }, 2e3);
73
+ return () => {
74
+ if (hideTimer.current) clearTimeout(hideTimer.current);
75
+ hideTimer.current = void 0;
76
+ };
77
+ }, [state]);
78
+ const formRef = (0, react.useRef)(null);
79
+ const saveButtonRef = (0, react.useRef)(null);
80
+ const cancelButtonRef = (0, react.useRef)(null);
81
+ const onFocus = (0, react.useCallback)(() => {
82
+ if (isFocusWithinRef.current) return;
83
+ isFocusWithinRef.current = true;
84
+ setFocusWithin(true);
85
+ }, [isFocusWithin, setFocusWithin]);
86
+ const onBlur = (0, react.useCallback)((e) => {
87
+ if (!isFocusWithinRef.current) return;
88
+ if (e.currentTarget.contains(e.relatedTarget)) return;
89
+ isFocusWithinRef.current = false;
90
+ setFocusWithin(false);
91
+ }, [isFocusWithin, setFocusWithin]);
92
+ const onInputHandler = (0, react.useCallback)((e) => {
93
+ dispatch(Event.Touch);
94
+ onInput?.(e);
95
+ }, [dispatch, onInput]);
96
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Root.Root, {
97
+ className,
98
+ onSubmit: (0, react.useCallback)(async (e) => {
99
+ e.preventDefault();
100
+ if (state === State.Initial) return;
101
+ try {
102
+ dispatch(Event.Save);
103
+ saveButtonRef.current?.blur();
104
+ await onSave?.(e);
105
+ dispatch(Event.Saved);
106
+ } catch {
107
+ dispatch(Event.SaveError);
108
+ }
109
+ }, [
110
+ onSave,
111
+ state,
112
+ hideTimer
113
+ ]),
114
+ onReset: (0, react.useCallback)((e) => {
115
+ cancelButtonRef.current?.blur();
116
+ onCancel?.(e);
117
+ dispatch(Event.Cancel);
118
+ }, [cancelButtonRef, onCancel]),
119
+ onFocus,
120
+ onBlur,
121
+ onClearServerErrors,
122
+ ref: formRef,
123
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Field.Field, {
124
+ name: "input",
125
+ serverInvalid,
126
+ children: [
127
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Label.Label, { children: label }),
128
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
129
+ className: require_EditInPlace_module.default.controls,
130
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Text.TextControl, {
131
+ ref,
132
+ ...props,
133
+ onInput: onInputHandler,
134
+ disabled: disabled || state === State.Saving
135
+ }), shouldShowSaveButton && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
136
+ className: require_EditInPlace_module.default["button-group"],
137
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tooltip.Tooltip, {
138
+ label: saveButtonLabel,
139
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_form.Submit, {
140
+ asChild: true,
141
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.Button, {
142
+ type: "submit",
143
+ kind: "primary",
144
+ size: "sm",
145
+ ref: saveButtonRef,
146
+ disabled: state !== State.Dirty,
147
+ iconOnly: true,
148
+ Icon: _vector_im_compound_design_tokens_assets_web_icons_check.default
149
+ })
150
+ })
151
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tooltip.Tooltip, {
152
+ label: cancelButtonLabel,
153
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.Button, {
154
+ type: "reset",
155
+ kind: "secondary",
156
+ size: "sm",
157
+ ref: cancelButtonRef,
158
+ className: require_EditInPlace_module.default.button,
159
+ disabled: state === State.Saving,
160
+ iconOnly: true,
161
+ Icon: _vector_im_compound_design_tokens_assets_web_icons_close.default
162
+ })
163
+ })]
164
+ })]
165
+ }),
166
+ state === State.Saving ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Message.LoadingMessage, { children: savingLabel }) : children,
167
+ savedLabel && state === State.Saved && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Message.SuccessMessage, { children: savedLabel }),
168
+ helpLabel && (state === State.Initial || state === State.Dirty) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_form.ValidityState, { children: (validity) => (validity === void 0 || validity.valid) && !serverInvalid && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Message.HelpMessage, { children: helpLabel }) })
169
+ ]
170
+ })
171
+ });
172
+ });
173
+ //#endregion
207
174
  exports.EditInPlace = EditInPlace;
208
- //# sourceMappingURL=EditInPlace.cjs.map
175
+
176
+ //# sourceMappingURL=EditInPlace.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditInPlace.cjs","sources":["../../../../../src/components/Form/Controls/EditInPlace/EditInPlace.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 React, {\n forwardRef,\n useCallback,\n useRef,\n useState,\n useEffect,\n useReducer,\n} from \"react\";\nimport { Submit, ValidityState } from \"@radix-ui/react-form\";\nimport CheckIcon from \"@vector-im/compound-design-tokens/assets/web/icons/check\";\nimport CancelIcon from \"@vector-im/compound-design-tokens/assets/web/icons/close\";\n\nimport styles from \"./EditInPlace.module.css\";\n\nimport {\n Field,\n HelpMessage,\n Label,\n LoadingMessage,\n Root,\n SuccessMessage,\n TextControl,\n} from \"../..\";\nimport { Button, Tooltip } from \"../../../..\";\n\ntype Props = {\n /**\n * The label for the control\n */\n label: string;\n\n /**\n * The CSS class name.\n */\n className?: string;\n\n /**\n * Callback for when the user confirms the change\n */\n onSave?: (e: React.FormEvent<HTMLFormElement>) => Promise<void> | void;\n\n /**\n * Callback for when the user wishes to cancel the change\n */\n onCancel?: (e: React.FormEvent<HTMLFormElement>) => void;\n\n /**\n * onInput event handler on the text control\n */\n onInput?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\n /**\n * Callback for when the server validation errors should be cleared.\n */\n onClearServerErrors?: () => void;\n\n /**\n * Whether the field is in an error state according to the server validation.\n *\n * For validation messages, use native validations properties directly, or add custom error messages as children.\n */\n serverInvalid?: boolean;\n\n /**\n * Label to be displayed by the green check at the bottom. Will only be displayed\n * for 2 seconds after the onSave callback promise resolves successfully.\n */\n savedLabel?: string;\n\n /**\n * The label for the save button\n */\n saveButtonLabel: string;\n\n /**\n * The label for the 'in progress' saving caption\n */\n savingLabel: string;\n\n /**\n * The label for the cancel button\n */\n cancelButtonLabel: string;\n\n /**\n * Label to be displayed under the input as a help text\n */\n helpLabel?: string;\n\n /**\n * If true, disabled the entire component to disallow editing.\n */\n disabled?: boolean;\n} & React.ComponentProps<typeof TextControl>;\n\nenum State {\n /** No changes on the input has been made */\n Initial,\n\n /** The input has been changed */\n Dirty,\n\n /** The input is being saved */\n Saving,\n\n /** The input has been saved */\n Saved,\n}\n\nenum Event {\n Touch, // The user 'touched' the control\n Save, // The user has clicked the save button\n Saved, // The onSave callback finished successfully\n SaveError, // The onSave callback finished with an error\n Cancel, // The user has clicked the cancel button\n SavedTimeout, // The user has clicked the save button and the saved label has been shown for 2 seconds\n}\n\nfunction reducer(state: State, action: Event): State {\n switch (action) {\n case Event.Touch:\n if (state === State.Initial || state === State.Saved) return State.Dirty;\n else return state;\n\n case Event.Save:\n return State.Saving;\n\n case Event.Cancel:\n return State.Initial;\n\n case Event.Saved:\n if (state === State.Saving) return State.Saved;\n else return state;\n\n case Event.SaveError:\n if (state === State.Saving) return State.Initial;\n else return state;\n\n case Event.SavedTimeout:\n if (state === State.Saved) return State.Initial;\n else return state;\n }\n\n assertNever(action);\n}\n\nfunction assertNever(value: never): never {\n throw new Error(`Unreachable value: ${value}`);\n}\n\n/**\n * A text box with save/cancel buttons that appear when the field is active.\n * Since thios control has its own 'save' button, it should *not* appear as part\n * of a larger form: it exists as its own form that submits separately.\n */\nexport const EditInPlace = forwardRef<HTMLInputElement, Props>(\n function EditInPlace(\n {\n className,\n label,\n onSave,\n onCancel,\n onInput,\n onClearServerErrors,\n serverInvalid,\n saveButtonLabel,\n cancelButtonLabel,\n savedLabel,\n savingLabel,\n helpLabel,\n disabled,\n children,\n ...props\n },\n ref,\n ) {\n const [state, dispatch] = useReducer(reducer, State.Initial);\n\n // Tracks the focus state of the form\n // This uses a `ref` to make sure the onFocus/onBlur callback don't trigger unnecessary re-renders\n // and a state to track the focus state and hide the buttons when the form is not focused\n const isFocusWithinRef = useRef(false);\n const [isFocusWithin, setFocusWithin] = useState(false);\n\n const shouldShowSaveButton =\n state === State.Dirty || state === State.Saving || isFocusWithin;\n\n const hideTimer = useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n\n useEffect(() => {\n // Start a timer when we switch to the saved state\n if (state === State.Saved) {\n hideTimer.current = setTimeout(() => {\n dispatch(Event.SavedTimeout);\n hideTimer.current = undefined;\n }, 2000);\n }\n\n return () => {\n // Clear any timers that may have been set\n if (hideTimer.current) clearTimeout(hideTimer.current);\n hideTimer.current = undefined;\n };\n }, [state]);\n\n const formRef = useRef<HTMLFormElement>(null);\n const saveButtonRef = useRef<HTMLButtonElement>(null);\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\n\n const onFocus = useCallback(() => {\n if (isFocusWithinRef.current) return;\n isFocusWithinRef.current = true;\n setFocusWithin(true);\n }, [isFocusWithin, setFocusWithin]);\n\n const onBlur = useCallback(\n (e: React.FocusEvent) => {\n if (!isFocusWithinRef.current) return;\n // If the user switched to another element within the form\n // consider that we're still focused within the form\n if (e.currentTarget.contains(e.relatedTarget)) return;\n\n isFocusWithinRef.current = false;\n setFocusWithin(false);\n },\n [isFocusWithin, setFocusWithin],\n );\n\n const onInputHandler = useCallback(\n (e: React.InputEvent<HTMLInputElement>) => {\n dispatch(Event.Touch);\n onInput?.(e);\n },\n [dispatch, onInput],\n );\n\n const onFormSubmit = useCallback(\n async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n // Prevent submitting the form if the user has not yet entered any text\n if (state === State.Initial) {\n return;\n }\n\n try {\n dispatch(Event.Save);\n saveButtonRef.current?.blur();\n await onSave?.(e);\n dispatch(Event.Saved);\n } catch {\n // We don't really need to do anything here, we just don't want to display the\n // 'saved' label, obviously. The user of the component can update the error to\n // show what failed.\n dispatch(Event.SaveError);\n }\n },\n [onSave, state, hideTimer],\n );\n\n const onFormReset = useCallback(\n (e: React.FormEvent<HTMLFormElement>) => {\n cancelButtonRef.current?.blur();\n onCancel?.(e);\n dispatch(Event.Cancel);\n },\n [cancelButtonRef, onCancel],\n );\n\n return (\n <Root\n className={className}\n onSubmit={onFormSubmit}\n onReset={onFormReset}\n onFocus={onFocus}\n onBlur={onBlur}\n onClearServerErrors={onClearServerErrors}\n ref={formRef}\n >\n <Field name=\"input\" serverInvalid={serverInvalid}>\n <Label>{label}</Label>\n <div className={styles.controls}>\n <TextControl\n ref={ref}\n {...props}\n onInput={onInputHandler}\n disabled={disabled || state === State.Saving}\n />\n\n {shouldShowSaveButton && (\n <div className={styles[\"button-group\"]}>\n <Tooltip label={saveButtonLabel}>\n <Submit asChild>\n <Button\n type=\"submit\"\n kind=\"primary\"\n size=\"sm\"\n ref={saveButtonRef}\n disabled={state !== State.Dirty}\n iconOnly\n Icon={CheckIcon}\n />\n </Submit>\n </Tooltip>\n\n <Tooltip label={cancelButtonLabel}>\n <Button\n type=\"reset\"\n kind=\"secondary\"\n size=\"sm\"\n ref={cancelButtonRef}\n className={styles.button}\n disabled={state === State.Saving}\n iconOnly\n Icon={CancelIcon}\n />\n </Tooltip>\n </div>\n )}\n </div>\n\n {/*\n During the loading saving state, we only show the saving message.\n Else, we show whatever children were passed on, as they will have other validation messages\n */}\n {state === State.Saving ? (\n <LoadingMessage>{savingLabel}</LoadingMessage>\n ) : (\n children\n )}\n\n {savedLabel && state === State.Saved && (\n <SuccessMessage>{savedLabel}</SuccessMessage>\n )}\n\n {/*\n We show the help message only if:\n - the helpLabel is set\n - the form hasn't been validated yet\n - the 'serverInvalid' prop is not set\n - we're in the initial or dirty state\n */}\n {helpLabel && (state === State.Initial || state === State.Dirty) && (\n <ValidityState>\n {(validity) =>\n (validity === undefined || validity.valid) &&\n !serverInvalid && <HelpMessage>{helpLabel}</HelpMessage>\n }\n </ValidityState>\n )}\n </Field>\n </Root>\n );\n },\n);\n"],"names":["forwardRef","EditInPlace","useReducer","useRef","useState","useEffect","useCallback","jsx","Root","jsxs","Field","Label","styles","TextControl","Tooltip","Submit","Button","CancelIcon","LoadingMessage","SuccessMessage","ValidityState","HelpMessage"],"mappings":"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"}
1
+ {"version":3,"file":"EditInPlace.cjs","names":[],"sources":["../../../../../src/components/Form/Controls/EditInPlace/EditInPlace.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 React, {\n forwardRef,\n useCallback,\n useRef,\n useState,\n useEffect,\n useReducer,\n} from \"react\";\nimport { Submit, ValidityState } from \"@radix-ui/react-form\";\nimport CheckIcon from \"@vector-im/compound-design-tokens/assets/web/icons/check\";\nimport CancelIcon from \"@vector-im/compound-design-tokens/assets/web/icons/close\";\n\nimport styles from \"./EditInPlace.module.css\";\n\nimport {\n Field,\n HelpMessage,\n Label,\n LoadingMessage,\n Root,\n SuccessMessage,\n TextControl,\n} from \"../..\";\nimport { Button, Tooltip } from \"../../../..\";\n\ntype Props = {\n /**\n * The label for the control\n */\n label: string;\n\n /**\n * The CSS class name.\n */\n className?: string;\n\n /**\n * Callback for when the user confirms the change\n */\n onSave?: (e: React.FormEvent<HTMLFormElement>) => Promise<void> | void;\n\n /**\n * Callback for when the user wishes to cancel the change\n */\n onCancel?: (e: React.FormEvent<HTMLFormElement>) => void;\n\n /**\n * onInput event handler on the text control\n */\n onInput?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\n /**\n * Callback for when the server validation errors should be cleared.\n */\n onClearServerErrors?: () => void;\n\n /**\n * Whether the field is in an error state according to the server validation.\n *\n * For validation messages, use native validations properties directly, or add custom error messages as children.\n */\n serverInvalid?: boolean;\n\n /**\n * Label to be displayed by the green check at the bottom. Will only be displayed\n * for 2 seconds after the onSave callback promise resolves successfully.\n */\n savedLabel?: string;\n\n /**\n * The label for the save button\n */\n saveButtonLabel: string;\n\n /**\n * The label for the 'in progress' saving caption\n */\n savingLabel: string;\n\n /**\n * The label for the cancel button\n */\n cancelButtonLabel: string;\n\n /**\n * Label to be displayed under the input as a help text\n */\n helpLabel?: string;\n\n /**\n * If true, disabled the entire component to disallow editing.\n */\n disabled?: boolean;\n} & React.ComponentProps<typeof TextControl>;\n\nenum State {\n /** No changes on the input has been made */\n Initial,\n\n /** The input has been changed */\n Dirty,\n\n /** The input is being saved */\n Saving,\n\n /** The input has been saved */\n Saved,\n}\n\nenum Event {\n Touch, // The user 'touched' the control\n Save, // The user has clicked the save button\n Saved, // The onSave callback finished successfully\n SaveError, // The onSave callback finished with an error\n Cancel, // The user has clicked the cancel button\n SavedTimeout, // The user has clicked the save button and the saved label has been shown for 2 seconds\n}\n\nfunction reducer(state: State, action: Event): State {\n switch (action) {\n case Event.Touch:\n if (state === State.Initial || state === State.Saved) return State.Dirty;\n else return state;\n\n case Event.Save:\n return State.Saving;\n\n case Event.Cancel:\n return State.Initial;\n\n case Event.Saved:\n if (state === State.Saving) return State.Saved;\n else return state;\n\n case Event.SaveError:\n if (state === State.Saving) return State.Initial;\n else return state;\n\n case Event.SavedTimeout:\n if (state === State.Saved) return State.Initial;\n else return state;\n }\n\n assertNever(action);\n}\n\nfunction assertNever(value: never): never {\n throw new Error(`Unreachable value: ${value}`);\n}\n\n/**\n * A text box with save/cancel buttons that appear when the field is active.\n * Since thios control has its own 'save' button, it should *not* appear as part\n * of a larger form: it exists as its own form that submits separately.\n */\nexport const EditInPlace = forwardRef<HTMLInputElement, Props>(\n function EditInPlace(\n {\n className,\n label,\n onSave,\n onCancel,\n onInput,\n onClearServerErrors,\n serverInvalid,\n saveButtonLabel,\n cancelButtonLabel,\n savedLabel,\n savingLabel,\n helpLabel,\n disabled,\n children,\n ...props\n },\n ref,\n ) {\n const [state, dispatch] = useReducer(reducer, State.Initial);\n\n // Tracks the focus state of the form\n // This uses a `ref` to make sure the onFocus/onBlur callback don't trigger unnecessary re-renders\n // and a state to track the focus state and hide the buttons when the form is not focused\n const isFocusWithinRef = useRef(false);\n const [isFocusWithin, setFocusWithin] = useState(false);\n\n const shouldShowSaveButton =\n state === State.Dirty || state === State.Saving || isFocusWithin;\n\n const hideTimer = useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n\n useEffect(() => {\n // Start a timer when we switch to the saved state\n if (state === State.Saved) {\n hideTimer.current = setTimeout(() => {\n dispatch(Event.SavedTimeout);\n hideTimer.current = undefined;\n }, 2000);\n }\n\n return () => {\n // Clear any timers that may have been set\n if (hideTimer.current) clearTimeout(hideTimer.current);\n hideTimer.current = undefined;\n };\n }, [state]);\n\n const formRef = useRef<HTMLFormElement>(null);\n const saveButtonRef = useRef<HTMLButtonElement>(null);\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\n\n const onFocus = useCallback(() => {\n if (isFocusWithinRef.current) return;\n isFocusWithinRef.current = true;\n setFocusWithin(true);\n }, [isFocusWithin, setFocusWithin]);\n\n const onBlur = useCallback(\n (e: React.FocusEvent) => {\n if (!isFocusWithinRef.current) return;\n // If the user switched to another element within the form\n // consider that we're still focused within the form\n if (e.currentTarget.contains(e.relatedTarget)) return;\n\n isFocusWithinRef.current = false;\n setFocusWithin(false);\n },\n [isFocusWithin, setFocusWithin],\n );\n\n const onInputHandler = useCallback(\n (e: React.InputEvent<HTMLInputElement>) => {\n dispatch(Event.Touch);\n onInput?.(e);\n },\n [dispatch, onInput],\n );\n\n const onFormSubmit = useCallback(\n async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n // Prevent submitting the form if the user has not yet entered any text\n if (state === State.Initial) {\n return;\n }\n\n try {\n dispatch(Event.Save);\n saveButtonRef.current?.blur();\n await onSave?.(e);\n dispatch(Event.Saved);\n } catch {\n // We don't really need to do anything here, we just don't want to display the\n // 'saved' label, obviously. The user of the component can update the error to\n // show what failed.\n dispatch(Event.SaveError);\n }\n },\n [onSave, state, hideTimer],\n );\n\n const onFormReset = useCallback(\n (e: React.FormEvent<HTMLFormElement>) => {\n cancelButtonRef.current?.blur();\n onCancel?.(e);\n dispatch(Event.Cancel);\n },\n [cancelButtonRef, onCancel],\n );\n\n return (\n <Root\n className={className}\n onSubmit={onFormSubmit}\n onReset={onFormReset}\n onFocus={onFocus}\n onBlur={onBlur}\n onClearServerErrors={onClearServerErrors}\n ref={formRef}\n >\n <Field name=\"input\" serverInvalid={serverInvalid}>\n <Label>{label}</Label>\n <div className={styles.controls}>\n <TextControl\n ref={ref}\n {...props}\n onInput={onInputHandler}\n disabled={disabled || state === State.Saving}\n />\n\n {shouldShowSaveButton && (\n <div className={styles[\"button-group\"]}>\n <Tooltip label={saveButtonLabel}>\n <Submit asChild>\n <Button\n type=\"submit\"\n kind=\"primary\"\n size=\"sm\"\n ref={saveButtonRef}\n disabled={state !== State.Dirty}\n iconOnly\n Icon={CheckIcon}\n />\n </Submit>\n </Tooltip>\n\n <Tooltip label={cancelButtonLabel}>\n <Button\n type=\"reset\"\n kind=\"secondary\"\n size=\"sm\"\n ref={cancelButtonRef}\n className={styles.button}\n disabled={state === State.Saving}\n iconOnly\n Icon={CancelIcon}\n />\n </Tooltip>\n </div>\n )}\n </div>\n\n {/*\n During the loading saving state, we only show the saving message.\n Else, we show whatever children were passed on, as they will have other validation messages\n */}\n {state === State.Saving ? (\n <LoadingMessage>{savingLabel}</LoadingMessage>\n ) : (\n children\n )}\n\n {savedLabel && state === State.Saved && (\n <SuccessMessage>{savedLabel}</SuccessMessage>\n )}\n\n {/*\n We show the help message only if:\n - the helpLabel is set\n - the form hasn't been validated yet\n - the 'serverInvalid' prop is not set\n - we're in the initial or dirty state\n */}\n {helpLabel && (state === State.Initial || state === State.Dirty) && (\n <ValidityState>\n {(validity) =>\n (validity === undefined || validity.valid) &&\n !serverInvalid && <HelpMessage>{helpLabel}</HelpMessage>\n }\n </ValidityState>\n )}\n </Field>\n </Root>\n );\n },\n);\n"],"mappings":"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"}