@dxos/react-ui 0.1.41-next.adfd7c6 → 0.3.3-main.3ce60d4

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 (546) hide show
  1. package/README.md +5 -1
  2. package/README.yml +1 -0
  3. package/dist/lib/browser/index.mjs +2096 -2849
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/types/src/components/Avatars/Avatar.d.ts +51 -0
  7. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -0
  8. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +27 -0
  9. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -0
  10. package/dist/types/src/components/Avatars/AvatarGroup.d.ts +21 -0
  11. package/dist/types/src/components/Avatars/AvatarGroup.d.ts.map +1 -0
  12. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +9 -0
  13. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -0
  14. package/dist/types/src/components/Avatars/index.d.ts +3 -0
  15. package/dist/types/src/components/Avatars/index.d.ts.map +1 -0
  16. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +29 -0
  17. package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  18. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +9 -0
  19. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -0
  20. package/dist/types/src/components/Breadcrumb/index.d.ts +2 -0
  21. package/dist/types/src/components/Breadcrumb/index.d.ts.map +1 -0
  22. package/dist/types/src/components/Buttons/Button.d.ts +24 -0
  23. package/dist/types/src/components/Buttons/Button.d.ts.map +1 -0
  24. package/dist/types/src/components/Buttons/Button.stories.d.ts +37 -0
  25. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +1 -0
  26. package/dist/types/src/components/Buttons/Toggle.d.ts +8 -0
  27. package/dist/types/src/components/Buttons/Toggle.d.ts.map +1 -0
  28. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +10 -0
  29. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +1 -0
  30. package/dist/types/src/components/Buttons/ToggleGroup.d.ts +28 -0
  31. package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +1 -0
  32. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +15 -0
  33. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +1 -0
  34. package/dist/types/src/components/Buttons/index.d.ts +4 -0
  35. package/dist/types/src/components/Buttons/index.d.ts.map +1 -0
  36. package/dist/types/src/components/Card/Card.d.ts +44 -0
  37. package/dist/types/src/components/Card/Card.d.ts.map +1 -0
  38. package/dist/types/src/components/Card/Card.stories.d.ts +49 -0
  39. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
  40. package/dist/types/src/components/Card/index.d.ts +2 -0
  41. package/dist/types/src/components/Card/index.d.ts.map +1 -0
  42. package/dist/types/src/components/Card/testing.d.ts +9 -0
  43. package/dist/types/src/components/Card/testing.d.ts.map +1 -0
  44. package/dist/types/src/components/Center/Center.d.ts +4 -0
  45. package/dist/types/src/components/Center/Center.d.ts.map +1 -0
  46. package/dist/types/src/components/Center/Center.stories.d.ts +11 -0
  47. package/dist/types/src/components/Center/Center.stories.d.ts.map +1 -0
  48. package/dist/types/src/components/Center/index.d.ts +2 -0
  49. package/dist/types/src/components/Center/index.d.ts.map +1 -0
  50. package/dist/types/src/components/ComboBox/ComboBox.d.ts +49 -0
  51. package/dist/types/src/components/ComboBox/ComboBox.d.ts.map +1 -0
  52. package/dist/types/src/components/ComboBox/ComboBox.stories.d.ts +25 -0
  53. package/dist/types/src/components/ComboBox/ComboBox.stories.d.ts.map +1 -0
  54. package/dist/types/src/components/ComboBox/index.d.ts +2 -0
  55. package/dist/types/src/components/ComboBox/index.d.ts.map +1 -0
  56. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +11 -0
  57. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -0
  58. package/dist/types/src/components/DensityProvider/index.d.ts +2 -0
  59. package/dist/types/src/components/DensityProvider/index.d.ts.map +1 -0
  60. package/dist/types/src/components/Dialogs/AlertDialog.d.ts +29 -0
  61. package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +1 -0
  62. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +23 -0
  63. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +1 -0
  64. package/dist/types/src/components/Dialogs/Dialog.d.ts +27 -0
  65. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +1 -0
  66. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +21 -0
  67. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +1 -0
  68. package/dist/types/src/components/Dialogs/index.d.ts +3 -0
  69. package/dist/types/src/components/Dialogs/index.d.ts.map +1 -0
  70. package/dist/types/src/components/DropdownMenu/DropdownMenu.d.ts +44 -0
  71. package/dist/types/src/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
  72. package/dist/types/src/components/DropdownMenu/DropdownMenu.stories.d.ts +14 -0
  73. package/dist/types/src/components/DropdownMenu/DropdownMenu.stories.d.ts.map +1 -0
  74. package/dist/types/src/components/DropdownMenu/index.d.ts +2 -0
  75. package/dist/types/src/components/DropdownMenu/index.d.ts.map +1 -0
  76. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +11 -0
  77. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -0
  78. package/dist/types/src/components/ElevationProvider/index.d.ts +2 -0
  79. package/dist/types/src/components/ElevationProvider/index.d.ts.map +1 -0
  80. package/dist/types/src/components/Input/Input.d.ts +55 -0
  81. package/dist/types/src/components/Input/Input.d.ts.map +1 -0
  82. package/dist/types/src/components/Input/Input.stories.d.ts +151 -0
  83. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -0
  84. package/dist/types/src/components/Input/index.d.ts +2 -0
  85. package/dist/types/src/components/Input/index.d.ts.map +1 -0
  86. package/dist/types/src/components/Link/Link.d.ts +8 -0
  87. package/dist/types/src/components/Link/Link.d.ts.map +1 -0
  88. package/dist/types/src/components/Link/Link.stories.d.ts +10 -0
  89. package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -0
  90. package/dist/types/src/components/Link/index.d.ts +2 -0
  91. package/dist/types/src/components/Link/index.d.ts.map +1 -0
  92. package/dist/types/src/components/List/List.d.ts +25 -0
  93. package/dist/types/src/components/List/List.d.ts.map +1 -0
  94. package/dist/types/src/components/List/List.stories.d.ts +29 -0
  95. package/dist/types/src/components/List/List.stories.d.ts.map +1 -0
  96. package/dist/types/src/components/List/Tree.d.ts +21 -0
  97. package/dist/types/src/components/List/Tree.d.ts.map +1 -0
  98. package/dist/types/src/components/List/Tree.stories.d.ts +29 -0
  99. package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -0
  100. package/dist/types/src/components/List/index.d.ts +3 -0
  101. package/dist/types/src/components/List/index.d.ts.map +1 -0
  102. package/dist/types/src/components/Main/Main.d.ts +57 -0
  103. package/dist/types/src/components/Main/Main.d.ts.map +1 -0
  104. package/dist/types/src/components/Main/Main.stories.d.ts +11 -0
  105. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -0
  106. package/dist/types/src/components/Main/index.d.ts +2 -0
  107. package/dist/types/src/components/Main/index.d.ts.map +1 -0
  108. package/dist/types/src/components/Main/useSwipeToDismiss.d.ts +11 -0
  109. package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -0
  110. package/dist/types/src/components/Message/Message.d.ts +23 -0
  111. package/dist/types/src/components/Message/Message.d.ts.map +1 -0
  112. package/dist/types/src/components/Message/Message.stories.d.ts +19 -0
  113. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -0
  114. package/dist/types/src/components/Message/index.d.ts +2 -0
  115. package/dist/types/src/components/Message/index.d.ts.map +1 -0
  116. package/dist/types/src/components/Popover/Popover.d.ts +32 -0
  117. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -0
  118. package/dist/types/src/components/Popover/Popover.stories.d.ts +15 -0
  119. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -0
  120. package/dist/types/src/components/Popover/index.d.ts +2 -0
  121. package/dist/types/src/components/Popover/index.d.ts.map +1 -0
  122. package/dist/types/src/components/ProgressBar/ProgressBar.d.ts +7 -0
  123. package/dist/types/src/components/ProgressBar/ProgressBar.d.ts.map +1 -0
  124. package/dist/types/src/components/ProgressBar/ProgressBar.stories.d.ts +12 -0
  125. package/dist/types/src/components/ProgressBar/ProgressBar.stories.d.ts.map +1 -0
  126. package/dist/types/src/components/ProgressBar/index.d.ts +2 -0
  127. package/dist/types/src/components/ProgressBar/index.d.ts.map +1 -0
  128. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +27 -0
  129. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -0
  130. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +14 -0
  131. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -0
  132. package/dist/types/src/components/ScrollArea/index.d.ts +2 -0
  133. package/dist/types/src/components/ScrollArea/index.d.ts.map +1 -0
  134. package/dist/types/src/components/Select/Select.d.ts +60 -0
  135. package/dist/types/src/components/Select/Select.d.ts.map +1 -0
  136. package/dist/types/src/components/Select/Select.stories.d.ts +16 -0
  137. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -0
  138. package/dist/types/src/components/Select/index.d.ts +2 -0
  139. package/dist/types/src/components/Select/index.d.ts.map +1 -0
  140. package/dist/types/src/components/Separator/Separator.d.ts +7 -0
  141. package/dist/types/src/components/Separator/Separator.d.ts.map +1 -0
  142. package/dist/types/src/components/Separator/index.d.ts +2 -0
  143. package/dist/types/src/components/Separator/index.d.ts.map +1 -0
  144. package/dist/types/src/components/Tag/Tag.d.ts +10 -0
  145. package/dist/types/src/components/Tag/Tag.d.ts.map +1 -0
  146. package/dist/types/src/components/Tag/Tag.stories.d.ts +10 -0
  147. package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -0
  148. package/dist/types/src/components/Tag/index.d.ts +2 -0
  149. package/dist/types/src/components/Tag/index.d.ts.map +1 -0
  150. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +16 -0
  151. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -0
  152. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +20 -0
  153. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -0
  154. package/dist/types/src/components/ThemeProvider/index.d.ts +2 -0
  155. package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -0
  156. package/dist/types/src/components/Toast/Toast.d.ts +34 -0
  157. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -0
  158. package/dist/types/src/components/Toast/Toast.stories.d.ts +34 -0
  159. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -0
  160. package/dist/types/src/components/Toast/index.d.ts +2 -0
  161. package/dist/types/src/components/Toast/index.d.ts.map +1 -0
  162. package/dist/types/src/components/Toolbar/Toolbar.d.ts +42 -0
  163. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -0
  164. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +10 -0
  165. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -0
  166. package/dist/types/src/components/Toolbar/index.d.ts +2 -0
  167. package/dist/types/src/components/Toolbar/index.d.ts.map +1 -0
  168. package/dist/types/src/components/Tooltip/Tooltip.d.ts +23 -0
  169. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -0
  170. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +19 -0
  171. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -0
  172. package/dist/types/src/components/Tooltip/index.d.ts +2 -0
  173. package/dist/types/src/components/Tooltip/index.d.ts.map +1 -0
  174. package/dist/types/src/components/index.d.ts +25 -6
  175. package/dist/types/src/components/index.d.ts.map +1 -1
  176. package/dist/types/src/hooks/index.d.ts +6 -0
  177. package/dist/types/src/hooks/index.d.ts.map +1 -0
  178. package/dist/types/src/hooks/useDensityContext.d.ts +3 -0
  179. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -0
  180. package/dist/types/src/hooks/useElevationContext.d.ts +3 -0
  181. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -0
  182. package/dist/types/src/hooks/useThemeContext.d.ts +2 -0
  183. package/dist/types/src/hooks/useThemeContext.d.ts.map +1 -0
  184. package/dist/types/src/hooks/useTranslationsContext.d.ts +4 -0
  185. package/dist/types/src/hooks/useTranslationsContext.d.ts.map +1 -0
  186. package/dist/types/src/hooks/useVisualViewport.d.ts +6 -0
  187. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -0
  188. package/dist/types/src/index.d.ts +6 -5
  189. package/dist/types/src/index.d.ts.map +1 -1
  190. package/dist/types/src/playground/Controls.stories.d.ts +11 -0
  191. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -0
  192. package/dist/types/src/playground/Surfaces.stories.d.ts +9 -0
  193. package/dist/types/src/playground/Surfaces.stories.d.ts.map +1 -0
  194. package/dist/types/src/playground/helpers.d.ts +6 -0
  195. package/dist/types/src/playground/helpers.d.ts.map +1 -0
  196. package/dist/types/src/util/ThemedClassName.d.ts +5 -0
  197. package/dist/types/src/util/ThemedClassName.d.ts.map +1 -0
  198. package/dist/types/src/util/hasIosKeyboard.d.ts +2 -0
  199. package/dist/types/src/util/hasIosKeyboard.d.ts.map +1 -0
  200. package/dist/types/src/util/index.d.ts +2 -2
  201. package/dist/types/src/util/index.d.ts.map +1 -1
  202. package/package.json +43 -41
  203. package/src/components/Avatars/Avatar.stories.tsx +104 -0
  204. package/src/components/Avatars/Avatar.tsx +303 -0
  205. package/src/components/Avatars/AvatarGroup.stories.tsx +49 -0
  206. package/src/components/Avatars/AvatarGroup.tsx +111 -0
  207. package/src/components/Avatars/index.ts +6 -0
  208. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +46 -0
  209. package/src/components/Breadcrumb/Breadcrumb.tsx +116 -0
  210. package/src/{composites/JoinDialog → components/Breadcrumb}/index.ts +1 -1
  211. package/src/components/Buttons/Button.stories.tsx +85 -0
  212. package/src/components/Buttons/Button.tsx +93 -0
  213. package/src/components/Buttons/Toggle.stories.tsx +28 -0
  214. package/src/components/Buttons/Toggle.tsx +23 -0
  215. package/src/components/Buttons/ToggleGroup.stories.tsx +38 -0
  216. package/src/components/Buttons/ToggleGroup.tsx +41 -0
  217. package/src/components/Buttons/index.ts +7 -0
  218. package/src/components/Card/Card.stories.tsx +215 -0
  219. package/src/components/Card/Card.tsx +114 -0
  220. package/src/{panels/SpacePanel → components/Card}/index.ts +1 -1
  221. package/src/components/Card/testing.ts +90 -0
  222. package/src/components/Center/Center.stories.tsx +18 -0
  223. package/src/components/Center/Center.tsx +16 -0
  224. package/src/{layouts/PanelDialog → components/Center}/index.ts +1 -1
  225. package/src/components/ComboBox/ComboBox.stories.tsx +82 -0
  226. package/src/components/ComboBox/ComboBox.tsx +218 -0
  227. package/src/components/ComboBox/index.ts +5 -0
  228. package/src/components/DensityProvider/DensityProvider.tsx +21 -0
  229. package/src/components/DensityProvider/index.ts +5 -0
  230. package/src/components/Dialogs/AlertDialog.stories.tsx +68 -0
  231. package/src/components/Dialogs/AlertDialog.tsx +157 -0
  232. package/src/components/Dialogs/Dialog.stories.tsx +52 -0
  233. package/src/components/Dialogs/Dialog.tsx +143 -0
  234. package/src/components/Dialogs/index.ts +6 -0
  235. package/src/components/DropdownMenu/DropdownMenu.stories.tsx +102 -0
  236. package/src/components/DropdownMenu/DropdownMenu.tsx +171 -0
  237. package/src/{layouts/PanelPopover → components/DropdownMenu}/index.ts +1 -1
  238. package/src/components/ElevationProvider/ElevationProvider.tsx +21 -0
  239. package/src/components/ElevationProvider/index.ts +5 -0
  240. package/src/components/Input/Input.stories.tsx +199 -0
  241. package/src/components/Input/Input.tsx +369 -0
  242. package/src/{composites/SpaceDialog → components/Input}/index.ts +1 -1
  243. package/src/components/Link/Link.stories.tsx +13 -0
  244. package/src/components/Link/Link.tsx +20 -0
  245. package/src/components/Link/index.ts +5 -0
  246. package/src/components/List/List.stories.tsx +184 -0
  247. package/src/components/List/List.tsx +173 -0
  248. package/src/components/List/Tree.stories.tsx +80 -0
  249. package/src/components/List/Tree.tsx +76 -0
  250. package/src/components/List/index.ts +6 -0
  251. package/src/components/Main/Main.stories.tsx +52 -0
  252. package/src/components/Main/Main.tsx +271 -0
  253. package/src/components/Main/index.ts +5 -0
  254. package/src/components/Main/useSwipeToDismiss.ts +103 -0
  255. package/src/components/Message/Message.stories.tsx +39 -0
  256. package/src/components/Message/Message.tsx +109 -0
  257. package/src/components/Message/index.ts +5 -0
  258. package/src/components/Popover/Popover.stories.tsx +38 -0
  259. package/src/components/Popover/Popover.tsx +123 -0
  260. package/src/components/Popover/index.ts +5 -0
  261. package/src/components/ProgressBar/ProgressBar.stories.tsx +33 -0
  262. package/src/components/ProgressBar/ProgressBar.tsx +29 -0
  263. package/src/components/ProgressBar/index.ts +5 -0
  264. package/src/components/ScrollArea/ScrollArea.stories.tsx +43 -0
  265. package/src/components/ScrollArea/ScrollArea.tsx +105 -0
  266. package/src/components/ScrollArea/index.ts +5 -0
  267. package/src/components/Select/Select.stories.tsx +68 -0
  268. package/src/components/Select/Select.tsx +223 -0
  269. package/src/components/Select/index.ts +5 -0
  270. package/src/components/Separator/Separator.tsx +28 -0
  271. package/src/components/Separator/index.ts +5 -0
  272. package/src/components/Tag/Tag.stories.tsx +42 -0
  273. package/src/components/Tag/Tag.tsx +23 -0
  274. package/src/components/Tag/index.ts +5 -0
  275. package/src/components/ThemeProvider/ThemeProvider.tsx +76 -0
  276. package/src/components/ThemeProvider/TranslationsProvider.tsx +63 -0
  277. package/src/components/ThemeProvider/index.ts +5 -0
  278. package/src/components/Toast/Toast.stories.tsx +61 -0
  279. package/src/components/Toast/Toast.tsx +126 -0
  280. package/src/components/Toast/index.ts +5 -0
  281. package/src/components/Toolbar/Toolbar.stories.tsx +77 -0
  282. package/src/components/Toolbar/Toolbar.tsx +99 -0
  283. package/src/components/Toolbar/index.ts +5 -0
  284. package/src/components/Tooltip/Tooltip.stories.tsx +41 -0
  285. package/src/components/Tooltip/Tooltip.tsx +84 -0
  286. package/src/components/Tooltip/index.ts +5 -0
  287. package/src/components/index.ts +27 -7
  288. package/src/hooks/index.ts +9 -0
  289. package/src/hooks/useDensityContext.ts +14 -0
  290. package/src/hooks/useElevationContext.ts +14 -0
  291. package/src/hooks/useThemeContext.ts +9 -0
  292. package/src/hooks/useTranslationsContext.ts +9 -0
  293. package/src/hooks/useVisualViewport.ts +24 -0
  294. package/src/index.ts +8 -6
  295. package/src/playground/Controls.stories.tsx +90 -0
  296. package/src/playground/Surfaces.stories.tsx +43 -0
  297. package/src/playground/helpers.tsx +32 -0
  298. package/src/util/ThemedClassName.ts +7 -0
  299. package/src/util/hasIosKeyboard.ts +8 -0
  300. package/src/util/index.ts +2 -2
  301. package/dist/lib/browser/chunk-5VRACIDE.mjs +0 -10
  302. package/dist/lib/browser/chunk-5VRACIDE.mjs.map +0 -7
  303. package/dist/lib/browser/testing/index.mjs +0 -64
  304. package/dist/lib/browser/testing/index.mjs.map +0 -7
  305. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts +0 -9
  306. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +0 -1
  307. package/dist/types/src/components/Clipboard/CopyButton.d.ts +0 -5
  308. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +0 -1
  309. package/dist/types/src/components/Clipboard/index.d.ts +0 -3
  310. package/dist/types/src/components/Clipboard/index.d.ts.map +0 -1
  311. package/dist/types/src/components/IdentityList/DeviceList.d.ts +0 -7
  312. package/dist/types/src/components/IdentityList/DeviceList.d.ts.map +0 -1
  313. package/dist/types/src/components/IdentityList/IdentityListItem.d.ts +0 -7
  314. package/dist/types/src/components/IdentityList/IdentityListItem.d.ts.map +0 -1
  315. package/dist/types/src/components/IdentityList/IdentityListItem.stories.d.ts +0 -21
  316. package/dist/types/src/components/IdentityList/IdentityListItem.stories.d.ts.map +0 -1
  317. package/dist/types/src/components/IdentityList/SpaceMemberList.d.ts +0 -7
  318. package/dist/types/src/components/IdentityList/SpaceMemberList.d.ts.map +0 -1
  319. package/dist/types/src/components/IdentityList/SpaceMemberListContainer.d.ts +0 -9
  320. package/dist/types/src/components/IdentityList/SpaceMemberListContainer.d.ts.map +0 -1
  321. package/dist/types/src/components/IdentityList/index.d.ts +0 -5
  322. package/dist/types/src/components/IdentityList/index.d.ts.map +0 -1
  323. package/dist/types/src/components/InvitationEmoji/InvitationEmoji.d.ts +0 -7
  324. package/dist/types/src/components/InvitationEmoji/InvitationEmoji.d.ts.map +0 -1
  325. package/dist/types/src/components/InvitationEmoji/index.d.ts +0 -2
  326. package/dist/types/src/components/InvitationEmoji/index.d.ts.map +0 -1
  327. package/dist/types/src/components/InvitationList/InvitationList.d.ts +0 -7
  328. package/dist/types/src/components/InvitationList/InvitationList.d.ts.map +0 -1
  329. package/dist/types/src/components/InvitationList/InvitationList.stories.d.ts +0 -10
  330. package/dist/types/src/components/InvitationList/InvitationList.stories.d.ts.map +0 -1
  331. package/dist/types/src/components/InvitationList/InvitationListContainer.d.ts +0 -7
  332. package/dist/types/src/components/InvitationList/InvitationListContainer.d.ts.map +0 -1
  333. package/dist/types/src/components/InvitationList/InvitationListItem.d.ts +0 -9
  334. package/dist/types/src/components/InvitationList/InvitationListItem.d.ts.map +0 -1
  335. package/dist/types/src/components/InvitationList/InvitationListProps.d.ts +0 -4
  336. package/dist/types/src/components/InvitationList/InvitationListProps.d.ts.map +0 -1
  337. package/dist/types/src/components/InvitationList/InvitationStatusAvatar.d.ts +0 -15
  338. package/dist/types/src/components/InvitationList/InvitationStatusAvatar.d.ts.map +0 -1
  339. package/dist/types/src/components/InvitationList/InvitationStatusAvatar.stories.d.ts +0 -9
  340. package/dist/types/src/components/InvitationList/InvitationStatusAvatar.stories.d.ts.map +0 -1
  341. package/dist/types/src/components/InvitationList/index.d.ts +0 -5
  342. package/dist/types/src/components/InvitationList/index.d.ts.map +0 -1
  343. package/dist/types/src/components/PanelSeparator/PanelSeparator.d.ts +0 -3
  344. package/dist/types/src/components/PanelSeparator/PanelSeparator.d.ts.map +0 -1
  345. package/dist/types/src/components/PanelSeparator/index.d.ts +0 -2
  346. package/dist/types/src/components/PanelSeparator/index.d.ts.map +0 -1
  347. package/dist/types/src/components/SpaceList/SpaceListItem.d.ts +0 -7
  348. package/dist/types/src/components/SpaceList/SpaceListItem.d.ts.map +0 -1
  349. package/dist/types/src/components/SpaceList/index.d.ts +0 -2
  350. package/dist/types/src/components/SpaceList/index.d.ts.map +0 -1
  351. package/dist/types/src/composites/DevicesDialog/DevicesDialog.d.ts +0 -6
  352. package/dist/types/src/composites/DevicesDialog/DevicesDialog.d.ts.map +0 -1
  353. package/dist/types/src/composites/DevicesDialog/index.d.ts +0 -2
  354. package/dist/types/src/composites/DevicesDialog/index.d.ts.map +0 -1
  355. package/dist/types/src/composites/IdentityPopover/IdentityPopover.d.ts +0 -9
  356. package/dist/types/src/composites/IdentityPopover/IdentityPopover.d.ts.map +0 -1
  357. package/dist/types/src/composites/IdentityPopover/index.d.ts +0 -2
  358. package/dist/types/src/composites/IdentityPopover/index.d.ts.map +0 -1
  359. package/dist/types/src/composites/JoinDialog/JoinDialog.d.ts +0 -6
  360. package/dist/types/src/composites/JoinDialog/JoinDialog.d.ts.map +0 -1
  361. package/dist/types/src/composites/JoinDialog/JoinDialog.stories.d.ts +0 -10
  362. package/dist/types/src/composites/JoinDialog/JoinDialog.stories.d.ts.map +0 -1
  363. package/dist/types/src/composites/JoinDialog/index.d.ts +0 -2
  364. package/dist/types/src/composites/JoinDialog/index.d.ts.map +0 -1
  365. package/dist/types/src/composites/Shell/Shell.d.ts +0 -6
  366. package/dist/types/src/composites/Shell/Shell.d.ts.map +0 -1
  367. package/dist/types/src/composites/Shell/Shell.stories.d.ts +0 -10
  368. package/dist/types/src/composites/Shell/Shell.stories.d.ts.map +0 -1
  369. package/dist/types/src/composites/Shell/ShellContext.d.ts +0 -22
  370. package/dist/types/src/composites/Shell/ShellContext.d.ts.map +0 -1
  371. package/dist/types/src/composites/Shell/index.d.ts +0 -3
  372. package/dist/types/src/composites/Shell/index.d.ts.map +0 -1
  373. package/dist/types/src/composites/SpaceDialog/SpaceDialog.d.ts +0 -6
  374. package/dist/types/src/composites/SpaceDialog/SpaceDialog.d.ts.map +0 -1
  375. package/dist/types/src/composites/SpaceDialog/index.d.ts +0 -2
  376. package/dist/types/src/composites/SpaceDialog/index.d.ts.map +0 -1
  377. package/dist/types/src/composites/index.d.ts +0 -5
  378. package/dist/types/src/composites/index.d.ts.map +0 -1
  379. package/dist/types/src/layouts/PanelAlertDialog/PanelAlertDialog.d.ts +0 -14
  380. package/dist/types/src/layouts/PanelAlertDialog/PanelAlertDialog.d.ts.map +0 -1
  381. package/dist/types/src/layouts/PanelAlertDialog/index.d.ts +0 -2
  382. package/dist/types/src/layouts/PanelAlertDialog/index.d.ts.map +0 -1
  383. package/dist/types/src/layouts/PanelDialog/PanelDialog.d.ts +0 -14
  384. package/dist/types/src/layouts/PanelDialog/PanelDialog.d.ts.map +0 -1
  385. package/dist/types/src/layouts/PanelDialog/index.d.ts +0 -2
  386. package/dist/types/src/layouts/PanelDialog/index.d.ts.map +0 -1
  387. package/dist/types/src/layouts/PanelPopover/PanelPopover.d.ts +0 -11
  388. package/dist/types/src/layouts/PanelPopover/PanelPopover.d.ts.map +0 -1
  389. package/dist/types/src/layouts/PanelPopover/index.d.ts +0 -2
  390. package/dist/types/src/layouts/PanelPopover/index.d.ts.map +0 -1
  391. package/dist/types/src/layouts/PanelSidebar/PanelSidebar.d.ts +0 -19
  392. package/dist/types/src/layouts/PanelSidebar/PanelSidebar.d.ts.map +0 -1
  393. package/dist/types/src/layouts/PanelSidebar/index.d.ts +0 -2
  394. package/dist/types/src/layouts/PanelSidebar/index.d.ts.map +0 -1
  395. package/dist/types/src/layouts/index.d.ts +0 -5
  396. package/dist/types/src/layouts/index.d.ts.map +0 -1
  397. package/dist/types/src/panels/DevicesPanel/DevicesPanel.d.ts +0 -10
  398. package/dist/types/src/panels/DevicesPanel/DevicesPanel.d.ts.map +0 -1
  399. package/dist/types/src/panels/DevicesPanel/index.d.ts +0 -2
  400. package/dist/types/src/panels/DevicesPanel/index.d.ts.map +0 -1
  401. package/dist/types/src/panels/IdentityPanel/IdentityPanel.d.ts +0 -6
  402. package/dist/types/src/panels/IdentityPanel/IdentityPanel.d.ts.map +0 -1
  403. package/dist/types/src/panels/IdentityPanel/index.d.ts +0 -2
  404. package/dist/types/src/panels/IdentityPanel/index.d.ts.map +0 -1
  405. package/dist/types/src/panels/JoinPanel/JoinHeading.d.ts +0 -13
  406. package/dist/types/src/panels/JoinPanel/JoinHeading.d.ts.map +0 -1
  407. package/dist/types/src/panels/JoinPanel/JoinPanel.d.ts +0 -3
  408. package/dist/types/src/panels/JoinPanel/JoinPanel.d.ts.map +0 -1
  409. package/dist/types/src/panels/JoinPanel/JoinPanelProps.d.ts +0 -54
  410. package/dist/types/src/panels/JoinPanel/JoinPanelProps.d.ts.map +0 -1
  411. package/dist/types/src/panels/JoinPanel/index.d.ts +0 -3
  412. package/dist/types/src/panels/JoinPanel/index.d.ts.map +0 -1
  413. package/dist/types/src/panels/JoinPanel/joinMachine.d.ts +0 -64
  414. package/dist/types/src/panels/JoinPanel/joinMachine.d.ts.map +0 -1
  415. package/dist/types/src/panels/JoinPanel/view-states/AdditionMethodSelector.d.ts +0 -4
  416. package/dist/types/src/panels/JoinPanel/view-states/AdditionMethodSelector.d.ts.map +0 -1
  417. package/dist/types/src/panels/JoinPanel/view-states/IdentityAdded.d.ts +0 -15
  418. package/dist/types/src/panels/JoinPanel/view-states/IdentityAdded.d.ts.map +0 -1
  419. package/dist/types/src/panels/JoinPanel/view-states/IdentityInput.d.ts +0 -6
  420. package/dist/types/src/panels/JoinPanel/view-states/IdentityInput.d.ts.map +0 -1
  421. package/dist/types/src/panels/JoinPanel/view-states/InvitationAccepted.d.ts +0 -10
  422. package/dist/types/src/panels/JoinPanel/view-states/InvitationAccepted.d.ts.map +0 -1
  423. package/dist/types/src/panels/JoinPanel/view-states/InvitationAuthenticator.d.ts +0 -7
  424. package/dist/types/src/panels/JoinPanel/view-states/InvitationAuthenticator.d.ts.map +0 -1
  425. package/dist/types/src/panels/JoinPanel/view-states/InvitationInput.d.ts +0 -6
  426. package/dist/types/src/panels/JoinPanel/view-states/InvitationInput.d.ts.map +0 -1
  427. package/dist/types/src/panels/JoinPanel/view-states/InvitationRescuer.d.ts +0 -6
  428. package/dist/types/src/panels/JoinPanel/view-states/InvitationRescuer.d.ts.map +0 -1
  429. package/dist/types/src/panels/JoinPanel/view-states/ViewState.d.ts +0 -10
  430. package/dist/types/src/panels/JoinPanel/view-states/ViewState.d.ts.map +0 -1
  431. package/dist/types/src/panels/JoinPanel/view-states/index.d.ts +0 -8
  432. package/dist/types/src/panels/JoinPanel/view-states/index.d.ts.map +0 -1
  433. package/dist/types/src/panels/SpacePanel/SpacePanel.d.ts +0 -12
  434. package/dist/types/src/panels/SpacePanel/SpacePanel.d.ts.map +0 -1
  435. package/dist/types/src/panels/SpacePanel/SpacePanel.stories.d.ts +0 -8
  436. package/dist/types/src/panels/SpacePanel/SpacePanel.stories.d.ts.map +0 -1
  437. package/dist/types/src/panels/SpacePanel/index.d.ts +0 -2
  438. package/dist/types/src/panels/SpacePanel/index.d.ts.map +0 -1
  439. package/dist/types/src/panels/index.d.ts +0 -5
  440. package/dist/types/src/panels/index.d.ts.map +0 -1
  441. package/dist/types/src/playwright/invitations-manager.d.ts +0 -25
  442. package/dist/types/src/playwright/invitations-manager.d.ts.map +0 -1
  443. package/dist/types/src/playwright/invitations.spec.d.ts +0 -2
  444. package/dist/types/src/playwright/invitations.spec.d.ts.map +0 -1
  445. package/dist/types/src/playwright/playwright.config.d.ts +0 -3
  446. package/dist/types/src/playwright/playwright.config.d.ts.map +0 -1
  447. package/dist/types/src/stories/Invitations.stories.d.ts +0 -14
  448. package/dist/types/src/stories/Invitations.stories.d.ts.map +0 -1
  449. package/dist/types/src/styles/dialogStyles.d.ts +0 -3
  450. package/dist/types/src/styles/dialogStyles.d.ts.map +0 -1
  451. package/dist/types/src/styles/index.d.ts +0 -4
  452. package/dist/types/src/styles/index.d.ts.map +0 -1
  453. package/dist/types/src/styles/invitationStatusStyles.d.ts +0 -20
  454. package/dist/types/src/styles/invitationStatusStyles.d.ts.map +0 -1
  455. package/dist/types/src/styles/panelStyles.d.ts +0 -4
  456. package/dist/types/src/styles/panelStyles.d.ts.map +0 -1
  457. package/dist/types/src/testing/index.d.ts +0 -2
  458. package/dist/types/src/testing/index.d.ts.map +0 -1
  459. package/dist/types/src/testing/shell-manager.d.ts +0 -17
  460. package/dist/types/src/testing/shell-manager.d.ts.map +0 -1
  461. package/dist/types/src/translations/index.d.ts +0 -5
  462. package/dist/types/src/translations/index.d.ts.map +0 -1
  463. package/dist/types/src/translations/locales/en-US.d.ts +0 -66
  464. package/dist/types/src/translations/locales/en-US.d.ts.map +0 -1
  465. package/dist/types/src/util/invitationStatusValue.d.ts +0 -8
  466. package/dist/types/src/util/invitationStatusValue.d.ts.map +0 -1
  467. package/dist/types/src/util/toEmoji.d.ts +0 -2
  468. package/dist/types/src/util/toEmoji.d.ts.map +0 -1
  469. package/src/components/Clipboard/ClipboardProvider.tsx +0 -26
  470. package/src/components/Clipboard/CopyButton.tsx +0 -38
  471. package/src/components/Clipboard/index.ts +0 -6
  472. package/src/components/IdentityList/DeviceList.tsx +0 -31
  473. package/src/components/IdentityList/IdentityListItem.stories.tsx +0 -23
  474. package/src/components/IdentityList/IdentityListItem.tsx +0 -48
  475. package/src/components/IdentityList/SpaceMemberList.tsx +0 -33
  476. package/src/components/IdentityList/SpaceMemberListContainer.tsx +0 -32
  477. package/src/components/IdentityList/index.ts +0 -8
  478. package/src/components/InvitationEmoji/InvitationEmoji.tsx +0 -32
  479. package/src/components/InvitationEmoji/index.ts +0 -5
  480. package/src/components/InvitationList/InvitationList.stories.tsx +0 -65
  481. package/src/components/InvitationList/InvitationList.tsx +0 -33
  482. package/src/components/InvitationList/InvitationListContainer.tsx +0 -27
  483. package/src/components/InvitationList/InvitationListItem.tsx +0 -91
  484. package/src/components/InvitationList/InvitationListProps.ts +0 -7
  485. package/src/components/InvitationList/InvitationStatusAvatar.stories.tsx +0 -52
  486. package/src/components/InvitationList/InvitationStatusAvatar.tsx +0 -91
  487. package/src/components/InvitationList/index.ts +0 -8
  488. package/src/components/PanelSeparator/PanelSeparator.tsx +0 -17
  489. package/src/components/PanelSeparator/index.ts +0 -5
  490. package/src/components/SpaceList/SpaceListItem.tsx +0 -32
  491. package/src/components/SpaceList/index.ts +0 -5
  492. package/src/composites/DevicesDialog/DevicesDialog.tsx +0 -39
  493. package/src/composites/DevicesDialog/index.ts +0 -5
  494. package/src/composites/IdentityPopover/IdentityPopover.tsx +0 -54
  495. package/src/composites/IdentityPopover/index.ts +0 -5
  496. package/src/composites/JoinDialog/JoinDialog.stories.tsx +0 -74
  497. package/src/composites/JoinDialog/JoinDialog.tsx +0 -35
  498. package/src/composites/Shell/Shell.stories.tsx +0 -93
  499. package/src/composites/Shell/Shell.tsx +0 -100
  500. package/src/composites/Shell/ShellContext.tsx +0 -178
  501. package/src/composites/Shell/index.ts +0 -6
  502. package/src/composites/SpaceDialog/SpaceDialog.tsx +0 -39
  503. package/src/composites/index.ts +0 -8
  504. package/src/layouts/PanelAlertDialog/PanelAlertDialog.tsx +0 -40
  505. package/src/layouts/PanelAlertDialog/index.ts +0 -5
  506. package/src/layouts/PanelDialog/PanelDialog.tsx +0 -41
  507. package/src/layouts/PanelPopover/PanelPopover.tsx +0 -40
  508. package/src/layouts/PanelSidebar/PanelSidebar.tsx +0 -124
  509. package/src/layouts/PanelSidebar/index.ts +0 -5
  510. package/src/layouts/index.ts +0 -8
  511. package/src/panels/DevicesPanel/DevicesPanel.tsx +0 -113
  512. package/src/panels/DevicesPanel/index.ts +0 -5
  513. package/src/panels/IdentityPanel/IdentityPanel.tsx +0 -43
  514. package/src/panels/IdentityPanel/index.ts +0 -5
  515. package/src/panels/JoinPanel/JoinHeading.tsx +0 -73
  516. package/src/panels/JoinPanel/JoinPanel.tsx +0 -247
  517. package/src/panels/JoinPanel/JoinPanelProps.ts +0 -90
  518. package/src/panels/JoinPanel/index.ts +0 -6
  519. package/src/panels/JoinPanel/joinMachine.ts +0 -444
  520. package/src/panels/JoinPanel/view-states/AdditionMethodSelector.tsx +0 -63
  521. package/src/panels/JoinPanel/view-states/IdentityAdded.tsx +0 -99
  522. package/src/panels/JoinPanel/view-states/IdentityInput.tsx +0 -81
  523. package/src/panels/JoinPanel/view-states/InvitationAccepted.tsx +0 -74
  524. package/src/panels/JoinPanel/view-states/InvitationAuthenticator.tsx +0 -152
  525. package/src/panels/JoinPanel/view-states/InvitationInput.tsx +0 -75
  526. package/src/panels/JoinPanel/view-states/InvitationRescuer.tsx +0 -115
  527. package/src/panels/JoinPanel/view-states/ViewState.tsx +0 -153
  528. package/src/panels/JoinPanel/view-states/index.ts +0 -11
  529. package/src/panels/SpacePanel/SpacePanel.stories.tsx +0 -15
  530. package/src/panels/SpacePanel/SpacePanel.tsx +0 -105
  531. package/src/panels/index.ts +0 -8
  532. package/src/playwright/invitations-manager.ts +0 -165
  533. package/src/playwright/invitations.spec.ts +0 -393
  534. package/src/playwright/playwright.config.ts +0 -7
  535. package/src/stories/Invitations.stories.tsx +0 -187
  536. package/src/styles/dialogStyles.ts +0 -8
  537. package/src/styles/index.ts +0 -7
  538. package/src/styles/invitationStatusStyles.ts +0 -42
  539. package/src/styles/panelStyles.ts +0 -7
  540. package/src/testing/index.ts +0 -5
  541. package/src/testing/shell-manager.ts +0 -79
  542. package/src/translations/index.ts +0 -7
  543. package/src/translations/locales/en-US.ts +0 -69
  544. package/src/util/invitationStatusValue.ts +0 -22
  545. package/src/util/toEmoji.ts +0 -22
  546. package/theme-extensions.js +0 -11
@@ -1,444 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { useMachine } from '@xstate/react';
6
- import { useCallback } from 'react';
7
- import { assign, createMachine, InterpreterFrom, StateFrom } from 'xstate';
8
- import type { StateNodeConfig, Subscribable, Subscription } from 'xstate';
9
-
10
- import type { Identity, AuthenticatingInvitationObservable, Client } from '@dxos/client';
11
- import { Invitation, InvitationEncoder } from '@dxos/client';
12
- import { log } from '@dxos/log';
13
-
14
- import { JoinPanelMode } from './JoinPanelProps';
15
-
16
- type FailReason = 'error' | 'timeout' | 'cancelled' | 'badVerificationCode';
17
-
18
- type InvitationKindContext = Partial<{
19
- failReason: FailReason | null;
20
- unredeemedCode: string;
21
- invitationObservable: AuthenticatingInvitationObservable;
22
- invitation: Invitation;
23
- invitationSubscribable: Subscribable<InvitationEvent>;
24
- }>;
25
-
26
- type JoinMachineContext = {
27
- mode: JoinPanelMode;
28
- identity: Identity | null;
29
- halo: InvitationKindContext;
30
- space: InvitationKindContext;
31
- };
32
-
33
- type SelectIdentityEvent = {
34
- type: 'selectIdentity';
35
- identity: Identity;
36
- };
37
-
38
- type SetInvitationCodeEvent = {
39
- type: 'setHaloInvitationCode' | 'setSpaceInvitationCode';
40
- code: string;
41
- };
42
-
43
- type SetInvitationEvent = {
44
- type:
45
- | 'authenticatingHaloInvitation'
46
- | 'authenticatingSpaceInvitation'
47
- | 'readyForAuthenticationHaloInvitation'
48
- | 'readyForAuthenticationSpaceInvitation'
49
- | 'connectingHaloInvitation'
50
- | 'connectingSpaceInvitation'
51
- | 'connectedHaloInvitation'
52
- | 'connectedSpaceInvitation'
53
- | 'successHaloInvitation'
54
- | 'successSpaceInvitation';
55
- invitation: Invitation;
56
- };
57
-
58
- type FailInvitationEvent = {
59
- type: 'failHaloInvitation' | 'failSpaceInvitation';
60
- reason: FailReason;
61
- };
62
-
63
- type EmptyInvitationEvent = {
64
- type:
65
- | 'authenticateHaloVerificationCode'
66
- | 'authenticateSpaceVerificationCode'
67
- | 'resetHaloInvitation'
68
- | 'resetSpaceInvitation';
69
- };
70
-
71
- type InvitationEvent = FailInvitationEvent | SetInvitationCodeEvent | SetInvitationEvent | EmptyInvitationEvent;
72
-
73
- const getInvitationSubscribable = (
74
- Kind: 'Space' | 'Halo',
75
- invitation: AuthenticatingInvitationObservable
76
- ): Subscribable<InvitationEvent> => {
77
- log('[subscribing to invitation]', invitation);
78
- return {
79
- subscribe: (
80
- next: (value: InvitationEvent) => void,
81
- onError?: (error: any) => void,
82
- complete?: () => void
83
- ): Subscription =>
84
- invitation.subscribe(
85
- (invitation: Invitation) => {
86
- switch (invitation.state) {
87
- case Invitation.State.CONNECTING: {
88
- log('[invitation connecting]', { Kind, invitation });
89
- return next({ type: `connecting${Kind}Invitation`, invitation });
90
- }
91
-
92
- case Invitation.State.CONNECTED: {
93
- log('[invitation connected]', { Kind, invitation });
94
- return next({ type: `connected${Kind}Invitation`, invitation });
95
- }
96
-
97
- case Invitation.State.READY_FOR_AUTHENTICATION: {
98
- log('[invitation ready for authentication]', { Kind, invitation });
99
- return next({ type: `readyForAuthentication${Kind}Invitation`, invitation });
100
- }
101
-
102
- case Invitation.State.AUTHENTICATING: {
103
- log('[invitation authenticating]', { Kind, invitation });
104
- return next({ type: `authenticating${Kind}Invitation`, invitation });
105
- }
106
-
107
- case Invitation.State.SUCCESS: {
108
- log('[invitation success]', { Kind, invitation });
109
- next({ type: `success${Kind}Invitation`, invitation });
110
- return complete?.();
111
- }
112
-
113
- case Invitation.State.CANCELLED: {
114
- log.warn('[invitation cancelled]', { Kind });
115
- return next({ type: `fail${Kind}Invitation`, reason: 'cancelled' } as FailInvitationEvent);
116
- }
117
-
118
- case Invitation.State.TIMEOUT: {
119
- log.error('[invitation timeout]', { Kind });
120
- return next({ type: `fail${Kind}Invitation`, reason: 'timeout' } as FailInvitationEvent);
121
- }
122
- }
123
- },
124
- (error: any) => {
125
- log.error('[invitation errored]', { Kind, error });
126
- next({ type: `fail${Kind}Invitation`, reason: 'error' });
127
- return onError?.(error);
128
- }
129
- )
130
- } as Subscribable<InvitationEvent>;
131
- };
132
-
133
- const acceptingInvitationTemplate = (Kind: 'Space' | 'Halo', successTarget: string) => {
134
- const config: StateNodeConfig<JoinMachineContext, any, InvitationEvent> = {
135
- initial: `unknown${Kind}`,
136
- states: {
137
- [`unknown${Kind}`]: {
138
- always: [
139
- {
140
- cond: ({ mode }) => mode === 'halo-only' && Kind === 'Space',
141
- target: '#join.finishingJoiningHalo'
142
- },
143
- {
144
- // cond: `no${Kind}Invitation`,
145
- target: `inputting${Kind}InvitationCode`,
146
- actions: 'log'
147
- }
148
- // todo(thure): Restore this transition that redeems the invitation code on init.
149
- // {
150
- // target: `acceptingRedeemed${Kind}Invitation`,
151
- // actions: [`redeem${Kind}InvitationCode`, 'log']
152
- // }
153
- ]
154
- },
155
- [`inputting${Kind}InvitationCode`]: {},
156
- [`acceptingRedeemed${Kind}Invitation`]: {
157
- invoke: {
158
- src: (context) => context[Kind.toLowerCase() as 'space' | 'halo'].invitationSubscribable!
159
- },
160
- initial: `unknown${Kind}Invitation`,
161
- states: {
162
- [`unknown${Kind}Invitation`]: {
163
- always: [
164
- {
165
- cond: (context) => {
166
- const invitation = context[Kind.toLowerCase() as 'space' | 'halo'].invitation;
167
- return !invitation || invitation?.state === Invitation.State.CONNECTING;
168
- },
169
- target: `connecting${Kind}Invitation`,
170
- actions: 'log'
171
- },
172
- {
173
- target: `inputting${Kind}VerificationCode`,
174
- actions: 'log'
175
- }
176
- ]
177
- },
178
- [`connecting${Kind}Invitation`]: {},
179
- [`inputting${Kind}VerificationCode`]: {},
180
- [`authenticating${Kind}VerificationCode`]: {
181
- on: {
182
- [`readyForAuthentication${Kind}Invitation`]: {
183
- target: `authenticationFailing${Kind}VerificationCode`,
184
- actions: ['setInvitation', 'log']
185
- }
186
- }
187
- },
188
- [`authenticationFailing${Kind}VerificationCode`]: {},
189
- [`failing${Kind}Invitation`]: {},
190
- [`success${Kind}Invitation`]: {}
191
- },
192
- on: {
193
- [`reset${Kind}Invitation`]: {
194
- target: `#join${Kind === 'Halo' ? '.choosingIdentity' : ''}.accepting${Kind}Invitation.unknown${Kind}`,
195
- actions: ['resetInvitation', 'log']
196
- },
197
- [`connecting${Kind}Invitation`]: {
198
- target: `.connecting${Kind}Invitation`,
199
- actions: ['setInvitation', 'log']
200
- },
201
- [`connected${Kind}Invitation`]: {
202
- target: `.connecting${Kind}Invitation`,
203
- actions: ['setInvitation', 'log']
204
- },
205
- [`readyForAuthentication${Kind}Invitation`]: {
206
- target: `.inputting${Kind}VerificationCode`,
207
- actions: ['setInvitation', 'log']
208
- },
209
- [`authenticating${Kind}Invitation`]: {
210
- target: `.authenticating${Kind}VerificationCode`,
211
- actions: ['setInvitation', 'log']
212
- },
213
- [`success${Kind}Invitation`]: { target: successTarget, actions: ['setInvitation', 'log'] },
214
- [`fail${Kind}Invitation`]: {
215
- target: `.failing${Kind}Invitation`,
216
- actions: [
217
- assign({
218
- [Kind.toLowerCase() as 'space' | 'halo']: (
219
- context: JoinMachineContext,
220
- event: FailInvitationEvent
221
- ) => ({
222
- ...context[Kind.toLowerCase() as 'space' | 'halo'],
223
- failReason: event.reason
224
- })
225
- }),
226
- 'log'
227
- ]
228
- }
229
- }
230
- }
231
- },
232
- on: {
233
- [`set${Kind}InvitationCode`]: {
234
- target: `.acceptingRedeemed${Kind}Invitation`,
235
- actions: [
236
- assign({
237
- [Kind.toLowerCase() as 'space' | 'halo']: (context: JoinMachineContext, event: SetInvitationCodeEvent) => ({
238
- ...context[Kind.toLowerCase() as 'space' | 'halo'],
239
- unredeemedCode: event.code
240
- })
241
- }),
242
- `redeem${Kind}InvitationCode`,
243
- 'log'
244
- ]
245
- }
246
- }
247
- };
248
- return config as StateNodeConfig<JoinMachineContext, typeof config, JoinEvent>;
249
- };
250
-
251
- type EmptyJoinEvent = {
252
- type:
253
- | 'recoverIdentity'
254
- | 'createIdentity'
255
- | 'acceptHaloInvitation'
256
- | 'addIdentity'
257
- | 'selectIdentity'
258
- | 'deselectAuthMethod';
259
- };
260
-
261
- type JoinEvent = InvitationEvent | SelectIdentityEvent | EmptyJoinEvent;
262
-
263
- const joinMachine = createMachine<JoinMachineContext, JoinEvent>(
264
- {
265
- id: 'join',
266
- predictableActionArguments: true,
267
- context: {
268
- mode: 'default',
269
- identity: null,
270
- halo: {},
271
- space: {}
272
- },
273
- initial: 'unknown',
274
- states: {
275
- unknown: {
276
- always: [
277
- { cond: 'noSelectedIdentity', target: 'choosingIdentity', actions: 'log' },
278
- { target: 'acceptingSpaceInvitation', actions: 'log' }
279
- ]
280
- },
281
- choosingIdentity: {
282
- initial: 'choosingAuthMethod',
283
- states: {
284
- choosingAuthMethod: {},
285
- recoveringIdentity: {},
286
- creatingIdentity: {},
287
- acceptingHaloInvitation: acceptingInvitationTemplate('Halo', '#join.acceptingSpaceInvitation'),
288
- confirmingAddedIdentity: {}
289
- },
290
- on: {
291
- recoverIdentity: { target: '.recoveringIdentity', actions: 'log' },
292
- createIdentity: { target: '.creatingIdentity', actions: 'log' },
293
- acceptHaloInvitation: { target: '.acceptingHaloInvitation', actions: 'log' },
294
- addIdentity: { target: '.confirmingAddedIdentity', actions: 'log' },
295
- selectIdentity: {
296
- target: 'acceptingSpaceInvitation',
297
- actions: ['setIdentity', 'log']
298
- },
299
- deselectAuthMethod: { target: '.choosingAuthMethod', actions: 'log' }
300
- }
301
- },
302
- acceptingSpaceInvitation: acceptingInvitationTemplate('Space', '#join.finishingJoiningSpace'),
303
- finishingJoiningSpace: {
304
- type: 'final'
305
- },
306
- finishingJoiningHalo: {
307
- type: 'final'
308
- }
309
- }
310
- },
311
- {
312
- guards: {
313
- noSelectedIdentity: ({ identity }, _event) => !identity,
314
- noHaloInvitation: ({ halo }, _event) => !halo.invitation && !halo.unredeemedCode,
315
- noSpaceInvitation: ({ space }, _event) => !space.invitation && !space.unredeemedCode
316
- },
317
- actions: {
318
- setIdentity: assign<JoinMachineContext, SelectIdentityEvent>({
319
- identity: (context, event) => event.identity
320
- }),
321
- unsetIdentity: assign<JoinMachineContext>({
322
- identity: () => null
323
- }),
324
- resetInvitation: assign<JoinMachineContext, EmptyInvitationEvent>({
325
- halo: (context, event) => {
326
- if (event.type !== 'resetHaloInvitation') {
327
- return context.halo;
328
- }
329
-
330
- if (context.halo.invitationObservable) {
331
- void context.halo.invitationObservable.cancel();
332
- }
333
-
334
- return {
335
- ...context.halo,
336
- invitation: undefined,
337
- invitationObservable: undefined,
338
- invitationSubscribable: undefined
339
- };
340
- },
341
- space: (context, event) => {
342
- if (event.type !== 'resetSpaceInvitation') {
343
- return context.space;
344
- }
345
-
346
- if (context.space.invitationObservable) {
347
- void context.space.invitationObservable.cancel();
348
- }
349
-
350
- return {
351
- ...context.space,
352
- invitation: undefined,
353
- invitationObservable: undefined,
354
- invitationSubscribable: undefined
355
- };
356
- }
357
- }),
358
- setInvitation: assign<JoinMachineContext, SetInvitationEvent>({
359
- halo: (context, event) =>
360
- event.type.includes('Halo') ? { ...context.halo, invitation: event.invitation } : context.halo,
361
- space: (context, event) =>
362
- event.type.includes('Space') ? { ...context.space, invitation: event.invitation } : context.space
363
- }),
364
- log: (context, event) => {
365
- log('[transition]', {
366
- event,
367
- haloInvitation: context.halo.invitation,
368
- spaceInvitation: context.space.invitation
369
- });
370
- }
371
- }
372
- }
373
- );
374
-
375
- type JoinMachine = typeof joinMachine;
376
-
377
- type JoinState = StateFrom<JoinMachine>;
378
- type JoinSend = InterpreterFrom<JoinMachine>['send'];
379
-
380
- const defaultCodeFromUrl = (invitationType: 'halo' | 'space', text: string) => {
381
- try {
382
- const searchParams = new URLSearchParams(text.substring(text.lastIndexOf('?')));
383
- return (
384
- searchParams.get(`${invitationType}InvitationCode`) ??
385
- searchParams.get(`${invitationType}Invitation`) ??
386
- searchParams.get('invitationCode') ??
387
- searchParams.get('invitation') ??
388
- text
389
- );
390
- } catch (err) {
391
- log.catch(err);
392
- return text;
393
- }
394
- };
395
-
396
- const useJoinMachine = (client: Client, options?: Parameters<typeof useMachine<JoinMachine>>[1]) => {
397
- const redeemHaloInvitationCode = useCallback(
398
- ({ halo }: JoinMachineContext) => {
399
- if (halo.unredeemedCode) {
400
- const invitationObservable = client.halo.acceptInvitation(
401
- InvitationEncoder.decode(defaultCodeFromUrl('halo', halo.unredeemedCode))
402
- );
403
- return {
404
- ...halo,
405
- invitationObservable,
406
- invitationSubscribable: getInvitationSubscribable('Halo', invitationObservable)
407
- };
408
- } else {
409
- return halo;
410
- }
411
- },
412
- [client]
413
- );
414
-
415
- const redeemSpaceInvitationCode = useCallback(
416
- ({ space }: JoinMachineContext) => {
417
- if (space.unredeemedCode) {
418
- const invitationObservable = client.acceptInvitation(
419
- InvitationEncoder.decode(defaultCodeFromUrl('space', space.unredeemedCode))
420
- );
421
- return {
422
- ...space,
423
- invitationObservable,
424
- invitationSubscribable: getInvitationSubscribable('Space', invitationObservable)
425
- };
426
- } else {
427
- return space;
428
- }
429
- },
430
- [client]
431
- );
432
-
433
- return useMachine(joinMachine, {
434
- ...options,
435
- actions: {
436
- ...options?.actions,
437
- redeemHaloInvitationCode: assign<JoinMachineContext>({ halo: redeemHaloInvitationCode }),
438
- redeemSpaceInvitationCode: assign<JoinMachineContext>({ space: redeemSpaceInvitationCode })
439
- }
440
- });
441
- };
442
-
443
- export type { JoinMachine, JoinState, JoinSend, JoinEvent, JoinMachineContext };
444
- export { joinMachine, useJoinMachine };
@@ -1,63 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { CaretRight, Plus, QrCode, Textbox } from '@phosphor-icons/react';
6
- import React from 'react';
7
-
8
- import { CompoundButton, getSize, useTranslation } from '@dxos/react-components';
9
-
10
- import { ViewState, ViewStateHeading, ViewStateProps } from './ViewState';
11
-
12
- export type AdditionMethodSelectorProps = ViewStateProps;
13
-
14
- export const AdditionMethodSelector = (viewStateProps: AdditionMethodSelectorProps) => {
15
- const disabled = !viewStateProps.active;
16
- const { joinSend } = viewStateProps;
17
-
18
- const { t } = useTranslation('os');
19
-
20
- const sharedButtonProps = {
21
- disabled,
22
- after: <CaretRight className={getSize(4)} weight='bold' />,
23
- slots: { label: { className: 'text-sm' } }
24
- };
25
-
26
- return (
27
- <ViewState {...viewStateProps}>
28
- <ViewStateHeading>{t('addition method selector title')}</ViewStateHeading>
29
- <div role='none' className='flex flex-col gap-1 grow'>
30
- <CompoundButton
31
- {...sharedButtonProps}
32
- description={t('create identity description')}
33
- before={<Plus className={getSize(6)} />}
34
- onClick={() => joinSend({ type: 'createIdentity' })}
35
- data-autofocus='choosingAuthMethod'
36
- data-testid='create-identity'
37
- >
38
- {t('create identity label')}
39
- </CompoundButton>
40
- <CompoundButton
41
- {...sharedButtonProps}
42
- description={t('join identity description')}
43
- before={<QrCode className={getSize(6)} />}
44
- onClick={() => joinSend({ type: 'acceptHaloInvitation' })}
45
- data-testid='join-identity'
46
- >
47
- {t('join identity label')}
48
- </CompoundButton>
49
- <CompoundButton
50
- {...sharedButtonProps}
51
- // TODO(mykola): Implement recover.
52
- disabled={true}
53
- description={t('recover identity description')}
54
- before={<Textbox className={getSize(6)} />}
55
- onClick={() => joinSend({ type: 'recoverIdentity' })}
56
- data-testid='recover-identity'
57
- >
58
- {t('recover identity label')}
59
- </CompoundButton>
60
- </div>
61
- </ViewState>
62
- );
63
- };
@@ -1,99 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { CaretLeft, CaretRight, Check } from '@phosphor-icons/react';
6
- import React, { cloneElement } from 'react';
7
-
8
- import type { Identity } from '@dxos/client';
9
- import { InvitationResult } from '@dxos/react-client';
10
- import { Avatar, Button, getSize, mx, useTranslation } from '@dxos/react-components';
11
-
12
- import { JoinPanelMode } from '../JoinPanelProps';
13
- import { ViewState, ViewStateHeading, ViewStateProps } from './ViewState';
14
-
15
- export interface IdentityAddedProps extends ViewStateProps, DoneProps {
16
- mode?: JoinPanelMode;
17
- addedIdentity?: Identity;
18
- }
19
-
20
- export interface DoneProps extends ViewStateProps {
21
- doneActionParent?: Parameters<typeof cloneElement>[0];
22
- onDone?: (result: InvitationResult | null) => void;
23
- }
24
-
25
- const Done = ({ onDone, doneActionParent, active }: DoneProps) => {
26
- const disabled = !active;
27
- const { t } = useTranslation('os');
28
-
29
- const doneButton = (
30
- <Button
31
- {...(onDone && { onClick: () => onDone(null) })}
32
- disabled={disabled}
33
- className='grow flex items-center gap-2 pli-2'
34
- data-autofocus='confirmingAddedIdentity'
35
- data-testid='identity-added-done'
36
- >
37
- <CaretLeft weight='bold' className={mx(getSize(2), 'invisible')} />
38
- <span className='grow'>{t('done label')}</span>
39
- <Check className={getSize(4)} />
40
- </Button>
41
- );
42
-
43
- return doneActionParent ? cloneElement(doneActionParent, {}, doneButton) : doneButton;
44
- };
45
-
46
- export const IdentityAdded = ({
47
- mode,
48
- addedIdentity,
49
- onDone,
50
- doneActionParent,
51
- ...viewStateProps
52
- }: IdentityAddedProps) => {
53
- const disabled = !viewStateProps.active;
54
- const { joinSend } = viewStateProps;
55
- const { t } = useTranslation('os');
56
-
57
- return (
58
- <ViewState {...viewStateProps}>
59
- <ViewStateHeading>{t('identity added label')}</ViewStateHeading>
60
- <div role='none' className='grow flex flex-col items-center justify-center text-center gap-2'>
61
- <Avatar
62
- size={20}
63
- fallbackValue={addedIdentity?.identityKey.toHex() ?? ''}
64
- label={
65
- <p className={mx('text-lg', !addedIdentity?.profile?.displayName && 'font-mono')}>
66
- {addedIdentity?.profile?.displayName ?? addedIdentity?.identityKey.truncate() ?? ' '}
67
- </p>
68
- }
69
- variant='circle'
70
- status='active'
71
- />
72
- </div>
73
- {mode === 'halo-only' ? (
74
- <Done onDone={onDone} doneActionParent={doneActionParent} {...viewStateProps} />
75
- ) : (
76
- <div className='flex gap-2'>
77
- <Button
78
- disabled={disabled || !addedIdentity}
79
- className='grow flex items-center gap-2 pli-2 order-2'
80
- onClick={() => addedIdentity && joinSend({ type: 'selectIdentity', identity: addedIdentity })}
81
- data-autofocus='confirmingAddedIdentity'
82
- >
83
- <CaretLeft weight='bold' className={mx(getSize(2), 'invisible')} />
84
- <span className='grow'>{t('continue label')}</span>
85
- <CaretRight weight='bold' className={getSize(4)} />
86
- </Button>
87
- <Button
88
- disabled={disabled}
89
- onClick={() => joinSend({ type: 'deselectAuthMethod' })}
90
- className='flex items-center gap-2 pis-2 pie-4'
91
- >
92
- <CaretLeft weight='bold' className={getSize(4)} />
93
- <span>{t('deselect identity label')}</span>
94
- </Button>
95
- </div>
96
- )}
97
- </ViewState>
98
- );
99
- };
@@ -1,81 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { CaretLeft, CaretRight } from '@phosphor-icons/react';
6
- import React, { ComponentPropsWithoutRef, useState } from 'react';
7
-
8
- import { log } from '@dxos/log';
9
- import { useClient } from '@dxos/react-client';
10
- import { Button, getSize, Input, mx, useTranslation } from '@dxos/react-components';
11
-
12
- import { ViewState, ViewStateHeading, ViewStateProps } from './ViewState';
13
-
14
- export interface IdentityCreatorProps extends ViewStateProps {
15
- method: 'recover identity' | 'create identity';
16
- }
17
-
18
- export const IdentityInput = ({ method, ...viewStateProps }: IdentityCreatorProps) => {
19
- const disabled = !viewStateProps.active;
20
- const { joinSend } = viewStateProps;
21
- const { t } = useTranslation('os');
22
- const [inputValue, setInputValue] = useState('');
23
- const client = useClient();
24
- const [validationMessage, setValidationMessage] = useState('');
25
- const isRecover = method === 'recover identity';
26
- const handleNext = () => {
27
- void client.halo.createIdentity({ [isRecover ? 'seedphrase' : 'displayName']: inputValue }).then(
28
- (identity) => {
29
- joinSend({ type: 'selectIdentity', identity });
30
- },
31
- (error) => {
32
- log.catch(error);
33
- setValidationMessage(t(isRecover ? 'failed to recover identity message' : 'failed to create identity message'));
34
- }
35
- );
36
- };
37
- return (
38
- <ViewState {...viewStateProps}>
39
- <Input
40
- disabled={disabled}
41
- label={
42
- <ViewStateHeading>
43
- {t(isRecover ? 'recover identity input label' : 'new identity input label')}
44
- </ViewStateHeading>
45
- }
46
- onChange={({ target: { value } }) => setInputValue(value)}
47
- slots={{
48
- root: { className: 'm-0' },
49
- input: {
50
- 'data-autofocus': isRecover ? 'recoveringIdentity' : 'creatingIdentity',
51
- onKeyUp: ({ key }) => key === 'Enter' && handleNext()
52
- } as ComponentPropsWithoutRef<'input'>
53
- }}
54
- {...(validationMessage.length && { validationValence: 'error', validationMessage })}
55
- data-testid='identity-input'
56
- />
57
- <div role='none' className='grow' />
58
- <div className='flex gap-2'>
59
- <Button
60
- disabled={disabled}
61
- className='grow flex items-center gap-2 pli-2 order-2'
62
- onClick={handleNext}
63
- data-testid={`${method === 'recover identity' ? 'recover' : 'create'}-identity-input-continue`}
64
- >
65
- <CaretLeft weight='bold' className={mx(getSize(2), 'invisible')} />
66
- <span className='grow'>{t('continue label')}</span>
67
- <CaretRight weight='bold' className={getSize(4)} />
68
- </Button>
69
- <Button
70
- disabled={disabled}
71
- onClick={() => joinSend({ type: 'deselectAuthMethod' })}
72
- className='flex items-center gap-2 pis-2 pie-4'
73
- data-testid={`${method === 'recover identity' ? 'recover' : 'create'}-identity-input-back`}
74
- >
75
- <CaretLeft weight='bold' className={getSize(4)} />
76
- <span>{t('back label')}</span>
77
- </Button>
78
- </div>
79
- </ViewState>
80
- );
81
- };