@dxos/react-ui 0.1.41-next.d517c89 → 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
@@ -0,0 +1,111 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import React, { type ComponentPropsWithRef, forwardRef } from 'react';
6
+
7
+ import { useId } from '@dxos/react-hooks';
8
+
9
+ import { Avatar, type AvatarRootProps, useAvatarContext } from './Avatar';
10
+ import { useThemeContext } from '../../hooks';
11
+ import { type ThemedClassName } from '../../util';
12
+
13
+ type AvatarGroupRootProps = Omit<AvatarRootProps, 'status' | 'maskId' | 'inGroup'> &
14
+ ThemedClassName<ComponentPropsWithRef<'div'>>;
15
+
16
+ const AvatarGroupRoot = forwardRef<HTMLDivElement, AvatarGroupRootProps>(
17
+ (
18
+ {
19
+ labelId: propsLabelId,
20
+ descriptionId: propsDescriptionId,
21
+ size,
22
+ variant,
23
+ children,
24
+ classNames,
25
+ }: AvatarGroupRootProps,
26
+ forwardedRef,
27
+ ) => {
28
+ const { tx } = useThemeContext();
29
+ const labelId = useId('avatar-group__label', propsLabelId);
30
+ const descriptionId = useId('avatar-group__description', propsDescriptionId);
31
+ return (
32
+ <Avatar.Root {...{ labelId, descriptionId, size, variant, inGroup: true }}>
33
+ <div
34
+ role='group'
35
+ className={tx('avatar.group', 'avatar-group', {}, classNames)}
36
+ aria-labelledby={labelId}
37
+ aria-describedby={descriptionId}
38
+ ref={forwardedRef}
39
+ >
40
+ {children}
41
+ </div>
42
+ </Avatar.Root>
43
+ );
44
+ },
45
+ );
46
+
47
+ type AvatarGroupItemRootProps = Omit<AvatarRootProps, 'labelId' | 'descriptionId' | 'inGroup'>;
48
+
49
+ const AvatarGroupItemRoot = ({ maskId, size, variant, status, children }: AvatarGroupItemRootProps) => {
50
+ const {
51
+ labelId,
52
+ descriptionId,
53
+ size: contextSize,
54
+ variant: contextVariant,
55
+ } = useAvatarContext('AvatarGroupItemRoot');
56
+ return (
57
+ <Avatar.Root
58
+ {...{
59
+ labelId,
60
+ descriptionId,
61
+ maskId,
62
+ status,
63
+ size: size ?? contextSize,
64
+ variant: variant ?? contextVariant,
65
+ inGroup: true,
66
+ }}
67
+ >
68
+ {children}
69
+ </Avatar.Root>
70
+ );
71
+ };
72
+
73
+ type AvatarGroupLabelProps = ThemedClassName<Omit<ComponentPropsWithRef<'span'>, 'id'>> & { srOnly?: boolean };
74
+
75
+ const AvatarGroupLabel = forwardRef<HTMLSpanElement, AvatarGroupLabelProps>(
76
+ ({ srOnly, classNames, children, ...props }, forwardedRef) => {
77
+ const { labelId, size } = useAvatarContext('AvatarGroupLabel');
78
+ const { tx } = useThemeContext();
79
+ return (
80
+ <span
81
+ {...props}
82
+ id={labelId}
83
+ className={tx('avatar.groupLabel', 'avatar-group__label', { srOnly, size }, classNames)}
84
+ >
85
+ {children}
86
+ </span>
87
+ );
88
+ },
89
+ );
90
+
91
+ type AvatarGroupDescriptionProps = ThemedClassName<Omit<ComponentPropsWithRef<'span'>, 'id'>> & { srOnly?: boolean };
92
+
93
+ const AvatarGroupDescription = forwardRef<HTMLSpanElement, AvatarGroupDescriptionProps>(
94
+ ({ srOnly, classNames, children, ...props }, forwardedRef) => {
95
+ const { descriptionId } = useAvatarContext('AvatarGroupDescription');
96
+ const { tx } = useThemeContext();
97
+ return (
98
+ <span
99
+ {...props}
100
+ id={descriptionId}
101
+ className={tx('avatar.groupDescription', 'avatar-group__description', { srOnly }, classNames)}
102
+ >
103
+ {children}
104
+ </span>
105
+ );
106
+ },
107
+ );
108
+
109
+ export const AvatarGroup = { Root: AvatarGroupRoot, Label: AvatarGroupLabel, Description: AvatarGroupDescription };
110
+ export const AvatarGroupItem = { Root: AvatarGroupItemRoot };
111
+ export type { AvatarGroupRootProps, AvatarGroupItemRootProps, AvatarGroupLabelProps, AvatarGroupDescriptionProps };
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ export * from './Avatar';
6
+ export * from './AvatarGroup';
@@ -0,0 +1,46 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import '@dxosTheme';
6
+
7
+ import React from 'react';
8
+
9
+ import { Breadcrumb } from './Breadcrumb';
10
+ import { Button } from '../Buttons';
11
+
12
+ const StorybookBreadcrumb = () => {
13
+ return (
14
+ <Breadcrumb.Root aria-label='Breadcrumb'>
15
+ <Breadcrumb.List>
16
+ <Breadcrumb.ListItem>
17
+ <Breadcrumb.Link asChild>
18
+ <Button variant='ghost' density='fine' classNames='pli-0 text-base font-normal'>
19
+ Grocery
20
+ </Button>
21
+ </Breadcrumb.Link>
22
+ <Breadcrumb.Separator />
23
+ </Breadcrumb.ListItem>
24
+ <Breadcrumb.ListItem>
25
+ <Breadcrumb.Link href='#'>Produce</Breadcrumb.Link>
26
+ <Breadcrumb.Separator />
27
+ </Breadcrumb.ListItem>
28
+ <Breadcrumb.ListItem>
29
+ <Breadcrumb.Link href='#'>Veggies</Breadcrumb.Link>
30
+ <Breadcrumb.Separator />
31
+ </Breadcrumb.ListItem>
32
+ <Breadcrumb.ListItem>
33
+ <Breadcrumb.Current>Peppers</Breadcrumb.Current>
34
+ </Breadcrumb.ListItem>
35
+ </Breadcrumb.List>
36
+ </Breadcrumb.Root>
37
+ );
38
+ };
39
+
40
+ export default {
41
+ component: StorybookBreadcrumb,
42
+ };
43
+
44
+ export const Default = {
45
+ args: {},
46
+ };
@@ -0,0 +1,116 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { Dot } from '@phosphor-icons/react';
6
+ import { Primitive } from '@radix-ui/react-primitive';
7
+ import { Slot } from '@radix-ui/react-slot';
8
+ import React, { type ComponentPropsWithoutRef, type ComponentPropsWithRef, forwardRef } from 'react';
9
+
10
+ import { useThemeContext } from '../../hooks';
11
+ import { type ThemedClassName } from '../../util';
12
+ import { Link, type LinkProps } from '../Link';
13
+
14
+ type BreadcrumbRootProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {
15
+ 'aria-label': string;
16
+ asChild?: boolean;
17
+ };
18
+
19
+ const BreadcrumbRoot = forwardRef<HTMLDivElement, BreadcrumbRootProps>(
20
+ ({ asChild, classNames, ...props }, forwardedRef) => {
21
+ const { tx } = useThemeContext();
22
+ const Root = asChild ? Slot : Primitive.div;
23
+ return (
24
+ <Root
25
+ role='navigation'
26
+ {...props}
27
+ className={tx('breadcrumb.root', 'breadcrumb', {}, classNames)}
28
+ ref={forwardedRef}
29
+ />
30
+ );
31
+ },
32
+ );
33
+
34
+ type BreadcrumbListProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.ol>> & { asChild?: boolean };
35
+
36
+ const BreadcrumbList = forwardRef<HTMLOListElement, BreadcrumbListProps>(
37
+ ({ asChild, classNames, ...props }, forwardedRef) => {
38
+ const { tx } = useThemeContext();
39
+ const Root = asChild ? Slot : Primitive.ol;
40
+ return <Root {...props} className={tx('breadcrumb.list', 'breadcrumb__list', {}, classNames)} ref={forwardedRef} />;
41
+ },
42
+ );
43
+
44
+ type BreadcrumbListItemProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.li>> & { asChild?: boolean };
45
+
46
+ const BreadcrumbListItem = forwardRef<HTMLLIElement, BreadcrumbListItemProps>(
47
+ ({ asChild, classNames, ...props }, forwardedRef) => {
48
+ const { tx } = useThemeContext();
49
+ const Root = asChild ? Slot : Primitive.li;
50
+ return (
51
+ <Root
52
+ {...props}
53
+ className={tx('breadcrumb.listItem', 'breadcrumb__list__item', {}, classNames)}
54
+ ref={forwardedRef}
55
+ />
56
+ );
57
+ },
58
+ );
59
+
60
+ type BreadcrumbLinkProps = LinkProps;
61
+
62
+ const BreadcrumbLink = forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(({ asChild, ...props }, forwardedRef) => {
63
+ const Root = asChild ? Slot : Link;
64
+ return <Root {...props} ref={forwardedRef} />;
65
+ });
66
+
67
+ type BreadcrumbCurrentProps = ThemedClassName<ComponentPropsWithRef<'h1'>> & { asChild?: boolean };
68
+
69
+ const BreadcrumbCurrent = forwardRef<HTMLHeadingElement, BreadcrumbCurrentProps>(
70
+ ({ asChild, classNames, ...props }, forwardedRef) => {
71
+ const { tx } = useThemeContext();
72
+ const Root = asChild ? Slot : 'h1';
73
+ return (
74
+ <Root
75
+ {...props}
76
+ aria-current='page'
77
+ className={tx('breadcrumb.current', 'breadcrumb__item__heading--current', {}, classNames)}
78
+ ref={forwardedRef}
79
+ />
80
+ );
81
+ },
82
+ );
83
+
84
+ type BreadcrumbSeparatorProps = ThemedClassName<ComponentPropsWithoutRef<typeof Primitive.span>>;
85
+
86
+ const BreadcrumbSeparator = ({ children, classNames, ...props }: BreadcrumbSeparatorProps) => {
87
+ const { tx } = useThemeContext();
88
+ return (
89
+ <Primitive.span
90
+ role='separator'
91
+ aria-hidden='true'
92
+ {...props}
93
+ className={tx('breadcrumb.separator', 'breadcrumb__separator', {}, classNames)}
94
+ >
95
+ {children ?? <Dot weight='bold' />}
96
+ </Primitive.span>
97
+ );
98
+ };
99
+
100
+ export const Breadcrumb = {
101
+ Root: BreadcrumbRoot,
102
+ List: BreadcrumbList,
103
+ ListItem: BreadcrumbListItem,
104
+ Link: BreadcrumbLink,
105
+ Current: BreadcrumbCurrent,
106
+ Separator: BreadcrumbSeparator,
107
+ };
108
+
109
+ export type {
110
+ BreadcrumbRootProps,
111
+ BreadcrumbListProps,
112
+ BreadcrumbListItemProps,
113
+ BreadcrumbLinkProps,
114
+ BreadcrumbCurrentProps,
115
+ BreadcrumbSeparatorProps,
116
+ };
@@ -2,4 +2,4 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export * from './JoinDialog';
5
+ export * from './Breadcrumb';
@@ -0,0 +1,85 @@
1
+ //
2
+ // Copyright 2022 DXOS.org
3
+ //
4
+
5
+ import '@dxosTheme';
6
+
7
+ import { CaretLeft, CaretRight } from '@phosphor-icons/react';
8
+ import React, { type PropsWithChildren } from 'react';
9
+
10
+ import { chromeSurface, groupSurface, mx, surfaceElevation } from '@dxos/react-ui-theme';
11
+
12
+ import { Button, ButtonGroup, type ButtonProps } from './Button';
13
+ import { DensityProvider } from '../DensityProvider';
14
+ import { ElevationProvider } from '../ElevationProvider';
15
+
16
+ export default {
17
+ component: Button,
18
+ };
19
+
20
+ const Container = ({ children }: PropsWithChildren<{}>) => (
21
+ <>
22
+ <div role='group' className={mx('flex flex-col gap-4 mbe-4 p-4')}>
23
+ <ElevationProvider elevation='base'>
24
+ <div className='flex gap-4'>{children}</div>
25
+ <DensityProvider density='fine'>
26
+ <div className='flex gap-4'>{children}</div>
27
+ </DensityProvider>
28
+ </ElevationProvider>
29
+ </div>
30
+ <div
31
+ role='group'
32
+ className={mx('flex flex-col gap-4 mbe-4 p-4 rounded-lg', groupSurface, surfaceElevation({ elevation: 'group' }))}
33
+ >
34
+ <ElevationProvider elevation='group'>
35
+ <div className='flex gap-4'>{children}</div>
36
+ <DensityProvider density='fine'>
37
+ <div className='flex gap-4'>{children}</div>
38
+ </DensityProvider>
39
+ </ElevationProvider>
40
+ </div>
41
+ <div
42
+ role='group'
43
+ className={mx(
44
+ 'flex flex-col gap-4 mbe-4 p-4 rounded-lg',
45
+ chromeSurface,
46
+ surfaceElevation({ elevation: 'chrome' }),
47
+ )}
48
+ >
49
+ <ElevationProvider elevation='chrome'>
50
+ <div className='flex gap-4'>{children}</div>
51
+ <DensityProvider density='fine'>
52
+ <div className='flex gap-4'>{children}</div>
53
+ </DensityProvider>
54
+ </ElevationProvider>
55
+ </div>
56
+ </>
57
+ );
58
+
59
+ export const Default = {
60
+ render: ({ children, ...args }: Omit<ButtonProps, 'ref'>) => (
61
+ <Container>
62
+ <Button {...args}>{children}</Button>
63
+ <Button {...args} disabled>
64
+ Disabled
65
+ </Button>
66
+ {(args.variant === 'default' || args.variant === 'primary') && (
67
+ <ButtonGroup>
68
+ <Button {...args}>
69
+ <CaretLeft />
70
+ </Button>
71
+ <Button {...args}>
72
+ <CaretRight />
73
+ </Button>
74
+ </ButtonGroup>
75
+ )}
76
+ </Container>
77
+ ),
78
+ args: { children: 'Hello', disabled: false, variant: 'default' },
79
+ };
80
+
81
+ export const Primary = { ...Default, args: { variant: 'primary', children: 'Hello' } };
82
+
83
+ export const Outline = { ...Default, args: { variant: 'outline', children: 'Hello' } };
84
+
85
+ export const Ghost = { ...Default, args: { variant: 'ghost', children: 'Hello' } };
@@ -0,0 +1,93 @@
1
+ //
2
+ // Copyright 2022 DXOS.org
3
+ //
4
+
5
+ import { createContext } from '@radix-ui/react-context';
6
+ import { Primitive } from '@radix-ui/react-primitive';
7
+ import { Slot } from '@radix-ui/react-slot';
8
+ import React, { type ComponentPropsWithRef, forwardRef } from 'react';
9
+
10
+ import { type Density, type Elevation } from '@dxos/react-ui-types';
11
+
12
+ import { useDensityContext, useElevationContext, useThemeContext } from '../../hooks';
13
+ import { type ThemedClassName } from '../../util';
14
+
15
+ interface ButtonProps extends ThemedClassName<ComponentPropsWithRef<typeof Primitive.button>> {
16
+ variant?: 'default' | 'primary' | 'outline' | 'ghost';
17
+ density?: Density;
18
+ elevation?: Elevation;
19
+ asChild?: boolean;
20
+ }
21
+
22
+ type ButtonGroupContextValue = { inGroup?: boolean };
23
+
24
+ const BUTTON_GROUP_NAME = 'ButtonGroup';
25
+ const BUTTON_NAME = 'Button';
26
+ const [ButtonGroupProvider, useButtonGroupContext] = createContext<ButtonGroupContextValue>(BUTTON_GROUP_NAME, {
27
+ inGroup: false,
28
+ });
29
+
30
+ const Button = forwardRef<HTMLButtonElement, ButtonProps>(
31
+ (
32
+ { classNames, children, density: propsDensity, elevation: propsElevation, variant = 'default', asChild, ...props },
33
+ ref,
34
+ ) => {
35
+ const { inGroup } = useButtonGroupContext(BUTTON_NAME);
36
+ const { tx } = useThemeContext();
37
+ const elevation = useElevationContext(propsElevation);
38
+ const density = useDensityContext(propsDensity);
39
+ const Root = asChild ? Slot : Primitive.button;
40
+ return (
41
+ <Root
42
+ ref={ref}
43
+ {...props}
44
+ className={tx(
45
+ 'button.root',
46
+ 'button',
47
+ {
48
+ variant,
49
+ inGroup,
50
+ disabled: props.disabled,
51
+ density,
52
+ elevation,
53
+ },
54
+ classNames,
55
+ )}
56
+ {...(props.disabled && { disabled: true })}
57
+ >
58
+ {children}
59
+ </Root>
60
+ );
61
+ },
62
+ );
63
+
64
+ Button.displayName = BUTTON_NAME;
65
+
66
+ type ButtonGroupProps = ThemedClassName<ComponentPropsWithRef<typeof Primitive.div>> & {
67
+ elevation?: Elevation;
68
+ asChild?: boolean;
69
+ };
70
+
71
+ const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(
72
+ ({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {
73
+ const { tx } = useThemeContext();
74
+ const elevation = useElevationContext(propsElevation);
75
+ const Root = asChild ? Slot : Primitive.div;
76
+ return (
77
+ <Root
78
+ role='none'
79
+ {...props}
80
+ className={tx('button.group', 'button-group', { elevation }, classNames)}
81
+ ref={forwardedRef}
82
+ >
83
+ <ButtonGroupProvider inGroup>{children}</ButtonGroupProvider>
84
+ </Root>
85
+ );
86
+ },
87
+ );
88
+
89
+ ButtonGroup.displayName = BUTTON_GROUP_NAME;
90
+
91
+ export { Button, ButtonGroup, BUTTON_GROUP_NAME, useButtonGroupContext };
92
+
93
+ export type { ButtonProps, ButtonGroupProps };
@@ -0,0 +1,28 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import '@dxosTheme';
6
+
7
+ import { TextB } from '@phosphor-icons/react';
8
+ import React from 'react';
9
+
10
+ import { Toggle } from './Toggle';
11
+
12
+ type StorybookToggleProps = {};
13
+
14
+ const StorybookToggle = (props: StorybookToggleProps) => {
15
+ return (
16
+ <Toggle {...props}>
17
+ <TextB />
18
+ </Toggle>
19
+ );
20
+ };
21
+
22
+ export default {
23
+ component: StorybookToggle,
24
+ };
25
+
26
+ export const Default = {
27
+ args: {},
28
+ };
@@ -0,0 +1,23 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { Toggle as TogglePrimitive, type ToggleProps as TogglePrimitiveProps } from '@radix-ui/react-toggle';
6
+ import React, { forwardRef } from 'react';
7
+
8
+ import { Button, type ButtonProps } from './Button';
9
+
10
+ type ToggleProps = Omit<TogglePrimitiveProps, 'asChild'> & ButtonProps;
11
+
12
+ const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(
13
+ ({ defaultPressed, pressed, onPressedChange, ...props }, forwardedRef) => {
14
+ return (
15
+ <TogglePrimitive {...{ defaultPressed, pressed, onPressedChange }} asChild>
16
+ <Button {...props} ref={forwardedRef} />
17
+ </TogglePrimitive>
18
+ );
19
+ },
20
+ );
21
+
22
+ export { Toggle };
23
+ export type { ToggleProps };
@@ -0,0 +1,38 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import '@dxosTheme';
6
+
7
+ import { TextB, TextItalic } from '@phosphor-icons/react';
8
+ import React from 'react';
9
+
10
+ import { ToggleGroup, ToggleGroupItem, type ToggleGroupProps } from './ToggleGroup';
11
+
12
+ type StorybookToggleGroupProps = {
13
+ type: ToggleGroupProps['type'];
14
+ };
15
+
16
+ // TODO(burdon): ToggleGroup.Item.
17
+ const StorybookToggleGroup = (props: StorybookToggleGroupProps) => {
18
+ return (
19
+ <ToggleGroup {...props}>
20
+ <ToggleGroupItem value='textb'>
21
+ <TextB />
22
+ </ToggleGroupItem>
23
+ <ToggleGroupItem value='texti'>
24
+ <TextItalic />
25
+ </ToggleGroupItem>
26
+ </ToggleGroup>
27
+ );
28
+ };
29
+
30
+ export default {
31
+ component: StorybookToggleGroup,
32
+ };
33
+
34
+ export const Default = {
35
+ args: {
36
+ type: 'single',
37
+ },
38
+ };
@@ -0,0 +1,41 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import {
6
+ ToggleGroup as ToggleGroupPrimitive,
7
+ type ToggleGroupSingleProps,
8
+ type ToggleGroupMultipleProps,
9
+ type ToggleGroupItemProps as ToggleGroupItemPrimitiveProps,
10
+ ToggleGroupItem as ToggleGroupItemPrimitive,
11
+ } from '@radix-ui/react-toggle-group';
12
+ import React, { forwardRef } from 'react';
13
+
14
+ import { Button, ButtonGroup, type ButtonGroupProps, type ButtonProps } from './Button';
15
+
16
+ type ToggleGroupProps = Omit<ToggleGroupSingleProps, 'className'> | Omit<ToggleGroupMultipleProps, 'className'>;
17
+
18
+ const ToggleGroup = forwardRef<HTMLDivElement, ToggleGroupProps & ButtonGroupProps>(
19
+ ({ classNames, children, ...props }, forwardedRef) => {
20
+ return (
21
+ <ToggleGroupPrimitive {...props} asChild>
22
+ <ButtonGroup {...{ classNames, children }} ref={forwardedRef} />
23
+ </ToggleGroupPrimitive>
24
+ );
25
+ },
26
+ );
27
+
28
+ type ToggleGroupItemProps = Omit<ToggleGroupItemPrimitiveProps, 'className'> & ButtonProps;
29
+
30
+ const ToggleGroupItem = forwardRef<HTMLButtonElement, ToggleGroupItemProps>(
31
+ ({ variant, elevation, density, classNames, children, ...props }, forwardedRef) => {
32
+ return (
33
+ <ToggleGroupItemPrimitive {...props} asChild>
34
+ <Button {...{ variant, elevation, density, classNames, children }} ref={forwardedRef} />
35
+ </ToggleGroupItemPrimitive>
36
+ );
37
+ },
38
+ );
39
+
40
+ export { ToggleGroup, ToggleGroupItem };
41
+ export type { ToggleGroupProps, ToggleGroupItemProps };
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2022 DXOS.org
3
+ //
4
+
5
+ export * from './Button';
6
+ export * from './Toggle';
7
+ export * from './ToggleGroup';