@dxos/plugin-space 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (544) hide show
  1. package/dist/lib/browser/CollectionArticle-XGSQDBMS.mjs +115 -0
  2. package/dist/lib/browser/CollectionArticle-XGSQDBMS.mjs.map +7 -0
  3. package/dist/lib/browser/CollectionSection-H2MBNI63.mjs +23 -0
  4. package/dist/lib/browser/CollectionSection-H2MBNI63.mjs.map +7 -0
  5. package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs +142 -0
  6. package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs.map +7 -0
  7. package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs +64 -0
  8. package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs.map +7 -0
  9. package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs +53 -0
  10. package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs.map +7 -0
  11. package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs +115 -0
  12. package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs.map +7 -0
  13. package/dist/lib/browser/MembersContainer-OGYV2L4M.mjs +257 -0
  14. package/dist/lib/browser/MembersContainer-OGYV2L4M.mjs.map +7 -0
  15. package/dist/lib/browser/MenuFooter-XCBDK7WP.mjs +37 -0
  16. package/dist/lib/browser/MenuFooter-XCBDK7WP.mjs.map +7 -0
  17. package/dist/lib/browser/ObjectCardStack-UOEHSBL5.mjs +64 -0
  18. package/dist/lib/browser/ObjectCardStack-UOEHSBL5.mjs.map +7 -0
  19. package/dist/lib/browser/ObjectDetails-ADGND237.mjs +43 -0
  20. package/dist/lib/browser/ObjectDetails-ADGND237.mjs.map +7 -0
  21. package/dist/lib/browser/ObjectRenamePopover-JNPJIFIR.mjs +70 -0
  22. package/dist/lib/browser/ObjectRenamePopover-JNPJIFIR.mjs.map +7 -0
  23. package/dist/lib/browser/{RecordArticle-W57QE7QV.mjs → RecordArticle-YXAJ23HH.mjs} +49 -34
  24. package/dist/lib/browser/RecordArticle-YXAJ23HH.mjs.map +7 -0
  25. package/dist/lib/browser/SchemaContainer-QWCSIZBS.mjs +49 -0
  26. package/dist/lib/browser/SchemaContainer-QWCSIZBS.mjs.map +7 -0
  27. package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs +9 -0
  28. package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs.map +7 -0
  29. package/dist/lib/browser/SpacePluginSettings-QGZKNQLK.mjs +59 -0
  30. package/dist/lib/browser/SpacePluginSettings-QGZKNQLK.mjs.map +7 -0
  31. package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs +12 -0
  32. package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs.map +7 -0
  33. package/dist/lib/browser/SpaceRenamePopover-ZL6RRZ2B.mjs +62 -0
  34. package/dist/lib/browser/SpaceRenamePopover-ZL6RRZ2B.mjs.map +7 -0
  35. package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs +242 -0
  36. package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs.map +7 -0
  37. package/dist/lib/browser/SyncStatus-6N7JJ7XF.mjs +141 -0
  38. package/dist/lib/browser/SyncStatus-6N7JJ7XF.mjs.map +7 -0
  39. package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs +113 -0
  40. package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs.map +7 -0
  41. package/dist/lib/browser/app-graph-builder-UEOUAYZG.mjs +1201 -0
  42. package/dist/lib/browser/app-graph-builder-UEOUAYZG.mjs.map +7 -0
  43. package/dist/lib/browser/{app-graph-serializer-7AT7QMSK.mjs → app-graph-serializer-UZWWGLGY.mjs} +11 -10
  44. package/dist/lib/browser/app-graph-serializer-UZWWGLGY.mjs.map +7 -0
  45. package/dist/lib/browser/chunk-2WHUSAHE.mjs +579 -0
  46. package/dist/lib/browser/chunk-2WHUSAHE.mjs.map +7 -0
  47. package/dist/lib/browser/{chunk-CCRSHECL.mjs → chunk-6IT5IBB5.mjs} +74 -105
  48. package/dist/lib/browser/chunk-6IT5IBB5.mjs.map +7 -0
  49. package/dist/lib/browser/chunk-6OA75CWN.mjs +77 -0
  50. package/dist/lib/browser/chunk-6OA75CWN.mjs.map +7 -0
  51. package/dist/lib/browser/{chunk-ZT2VPYRM.mjs → chunk-AUX3RRLY.mjs} +37 -12
  52. package/dist/lib/browser/chunk-AUX3RRLY.mjs.map +7 -0
  53. package/dist/lib/browser/{chunk-HSMQFM57.mjs → chunk-CBWGVOJE.mjs} +2 -2
  54. package/dist/lib/browser/{chunk-HSMQFM57.mjs.map → chunk-CBWGVOJE.mjs.map} +1 -1
  55. package/dist/lib/browser/{chunk-4WZUGLQQ.mjs → chunk-ICXESMDI.mjs} +13 -12
  56. package/dist/lib/browser/chunk-ICXESMDI.mjs.map +7 -0
  57. package/dist/lib/browser/chunk-RJUOHI3B.mjs +19 -0
  58. package/dist/lib/browser/{chunk-ASV6DYFH.mjs.map → chunk-RJUOHI3B.mjs.map} +1 -1
  59. package/dist/lib/browser/chunk-SJCNERZI.mjs +115 -0
  60. package/dist/lib/browser/chunk-SJCNERZI.mjs.map +7 -0
  61. package/dist/lib/browser/{chunk-AWVAX26X.mjs → chunk-SSTUPFZ2.mjs} +3 -3
  62. package/dist/lib/browser/chunk-UYOJYBGW.mjs +168 -0
  63. package/dist/lib/browser/chunk-UYOJYBGW.mjs.map +7 -0
  64. package/dist/lib/browser/cli/index.mjs +38 -44
  65. package/dist/lib/browser/cli/index.mjs.map +3 -3
  66. package/dist/lib/browser/{identity-created-VCFYLSBB.mjs → identity-created-ETXNQYR6.mjs} +5 -5
  67. package/dist/lib/browser/identity-created-ETXNQYR6.mjs.map +7 -0
  68. package/dist/lib/browser/index.mjs +104 -159
  69. package/dist/lib/browser/index.mjs.map +3 -3
  70. package/dist/lib/browser/meta.json +1 -1
  71. package/dist/lib/browser/{operation-resolver-SIRQT36Z.mjs → operation-resolver-D4LHB4D4.mjs} +95 -115
  72. package/dist/lib/browser/operation-resolver-D4LHB4D4.mjs.map +7 -0
  73. package/dist/lib/browser/{react-root-3SPMM45V.mjs → react-root-OD2HP63B.mjs} +9 -9
  74. package/dist/lib/browser/react-root-OD2HP63B.mjs.map +7 -0
  75. package/dist/lib/browser/{react-surface-UUS7NDHS.mjs → react-surface-ANV4KTRV.mjs} +98 -115
  76. package/dist/lib/browser/react-surface-ANV4KTRV.mjs.map +7 -0
  77. package/dist/lib/browser/repair-NUVEV4AK.mjs +31 -0
  78. package/dist/lib/browser/repair-NUVEV4AK.mjs.map +7 -0
  79. package/dist/lib/browser/{settings-ZS2AQ73E.mjs → settings-RUDP2Q56.mjs} +6 -5
  80. package/dist/lib/browser/settings-RUDP2Q56.mjs.map +7 -0
  81. package/dist/lib/browser/{spaces-ready-OQDGWUOS.mjs → spaces-ready-B2GYL5IN.mjs} +15 -14
  82. package/dist/lib/browser/spaces-ready-B2GYL5IN.mjs.map +7 -0
  83. package/dist/lib/browser/{state-7YZQB2KY.mjs → state-I6JDZCDE.mjs} +8 -8
  84. package/dist/lib/browser/state-I6JDZCDE.mjs.map +7 -0
  85. package/dist/lib/browser/types/index.mjs +2 -2
  86. package/dist/lib/node-esm/{CollectionArticle-V5OOJVJJ.mjs → CollectionArticle-MNLCROOX.mjs} +49 -59
  87. package/dist/lib/node-esm/CollectionArticle-MNLCROOX.mjs.map +7 -0
  88. package/dist/lib/node-esm/CollectionSection-BI66Y34F.mjs +24 -0
  89. package/dist/lib/node-esm/CollectionSection-BI66Y34F.mjs.map +7 -0
  90. package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs +143 -0
  91. package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs.map +7 -0
  92. package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs +65 -0
  93. package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs.map +7 -0
  94. package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs +54 -0
  95. package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs.map +7 -0
  96. package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs +116 -0
  97. package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs.map +7 -0
  98. package/dist/lib/node-esm/MembersContainer-4PV3Z4BA.mjs +258 -0
  99. package/dist/lib/node-esm/MembersContainer-4PV3Z4BA.mjs.map +7 -0
  100. package/dist/lib/node-esm/MenuFooter-PXG2GV6A.mjs +38 -0
  101. package/dist/lib/node-esm/MenuFooter-PXG2GV6A.mjs.map +7 -0
  102. package/dist/lib/node-esm/ObjectCardStack-THP5FKDV.mjs +65 -0
  103. package/dist/lib/node-esm/ObjectCardStack-THP5FKDV.mjs.map +7 -0
  104. package/dist/lib/node-esm/ObjectDetails-2SBF3KBM.mjs +44 -0
  105. package/dist/lib/node-esm/ObjectDetails-2SBF3KBM.mjs.map +7 -0
  106. package/dist/lib/node-esm/ObjectRenamePopover-BRPKVNVF.mjs +71 -0
  107. package/dist/lib/node-esm/ObjectRenamePopover-BRPKVNVF.mjs.map +7 -0
  108. package/dist/lib/node-esm/{RecordArticle-SSV74Z46.mjs → RecordArticle-344UK7QP.mjs} +49 -34
  109. package/dist/lib/node-esm/RecordArticle-344UK7QP.mjs.map +7 -0
  110. package/dist/lib/node-esm/SchemaContainer-5G4R3Z6O.mjs +50 -0
  111. package/dist/lib/node-esm/SchemaContainer-5G4R3Z6O.mjs.map +7 -0
  112. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs +10 -0
  113. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs.map +7 -0
  114. package/dist/lib/node-esm/SpacePluginSettings-PENV4GHL.mjs +60 -0
  115. package/dist/lib/node-esm/SpacePluginSettings-PENV4GHL.mjs.map +7 -0
  116. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs +13 -0
  117. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs.map +7 -0
  118. package/dist/lib/node-esm/SpaceRenamePopover-XEMTI4PU.mjs +63 -0
  119. package/dist/lib/node-esm/SpaceRenamePopover-XEMTI4PU.mjs.map +7 -0
  120. package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs +243 -0
  121. package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs.map +7 -0
  122. package/dist/lib/node-esm/SyncStatus-YEBGTNSD.mjs +142 -0
  123. package/dist/lib/node-esm/SyncStatus-YEBGTNSD.mjs.map +7 -0
  124. package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs +114 -0
  125. package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs.map +7 -0
  126. package/dist/lib/node-esm/app-graph-builder-W2QNDIZF.mjs +1202 -0
  127. package/dist/lib/node-esm/app-graph-builder-W2QNDIZF.mjs.map +7 -0
  128. package/dist/lib/node-esm/{app-graph-serializer-WJ2TIQG6.mjs → app-graph-serializer-RT2RQTV2.mjs} +11 -10
  129. package/dist/lib/node-esm/app-graph-serializer-RT2RQTV2.mjs.map +7 -0
  130. package/dist/lib/node-esm/{chunk-JOBIWCBC.mjs → chunk-2OLR2ZKH.mjs} +13 -12
  131. package/dist/lib/node-esm/chunk-2OLR2ZKH.mjs.map +7 -0
  132. package/dist/lib/node-esm/chunk-5KTTTTEX.mjs +20 -0
  133. package/dist/lib/node-esm/{chunk-CVXULIYC.mjs.map → chunk-5KTTTTEX.mjs.map} +1 -1
  134. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs → chunk-63N5JJXI.mjs} +2 -2
  135. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs.map → chunk-63N5JJXI.mjs.map} +1 -1
  136. package/dist/lib/node-esm/chunk-EDC2RUJU.mjs +169 -0
  137. package/dist/lib/node-esm/chunk-EDC2RUJU.mjs.map +7 -0
  138. package/dist/lib/node-esm/{chunk-MPL6NHQX.mjs → chunk-EVNSLSQS.mjs} +74 -105
  139. package/dist/lib/node-esm/chunk-EVNSLSQS.mjs.map +7 -0
  140. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs +78 -0
  141. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs.map +7 -0
  142. package/dist/lib/node-esm/chunk-IV7VKVGC.mjs +117 -0
  143. package/dist/lib/node-esm/chunk-IV7VKVGC.mjs.map +7 -0
  144. package/dist/lib/node-esm/{chunk-2SW6S2BB.mjs → chunk-RYQQXNI7.mjs} +37 -12
  145. package/dist/lib/node-esm/chunk-RYQQXNI7.mjs.map +7 -0
  146. package/dist/lib/node-esm/chunk-S5BQUCL4.mjs +580 -0
  147. package/dist/lib/node-esm/chunk-S5BQUCL4.mjs.map +7 -0
  148. package/dist/lib/node-esm/{chunk-HREWB23G.mjs → chunk-XYLDAH5C.mjs} +3 -3
  149. package/dist/lib/node-esm/cli/index.mjs +38 -44
  150. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  151. package/dist/lib/node-esm/{identity-created-2SJABVJD.mjs → identity-created-U5LGULVL.mjs} +5 -5
  152. package/dist/lib/node-esm/identity-created-U5LGULVL.mjs.map +7 -0
  153. package/dist/lib/node-esm/index.mjs +104 -159
  154. package/dist/lib/node-esm/index.mjs.map +3 -3
  155. package/dist/lib/node-esm/meta.json +1 -1
  156. package/dist/lib/node-esm/{operation-resolver-ZE3XJL5J.mjs → operation-resolver-IL2AHNPN.mjs} +95 -115
  157. package/dist/lib/node-esm/operation-resolver-IL2AHNPN.mjs.map +7 -0
  158. package/dist/lib/node-esm/{react-root-Y6JTGDTW.mjs → react-root-RILC5MBD.mjs} +9 -9
  159. package/dist/lib/node-esm/react-root-RILC5MBD.mjs.map +7 -0
  160. package/dist/lib/node-esm/{react-surface-SQ4SK3OK.mjs → react-surface-TA5KEWVW.mjs} +98 -115
  161. package/dist/lib/node-esm/react-surface-TA5KEWVW.mjs.map +7 -0
  162. package/dist/lib/node-esm/{repair-G3ZW3VG3.mjs → repair-LRZHFPSJ.mjs} +6 -25
  163. package/dist/lib/node-esm/repair-LRZHFPSJ.mjs.map +7 -0
  164. package/dist/lib/node-esm/{settings-PVI2VG56.mjs → settings-3EKSEAAG.mjs} +6 -5
  165. package/dist/lib/node-esm/settings-3EKSEAAG.mjs.map +7 -0
  166. package/dist/lib/node-esm/{spaces-ready-R744OHQG.mjs → spaces-ready-QK3EHBOS.mjs} +15 -14
  167. package/dist/lib/node-esm/spaces-ready-QK3EHBOS.mjs.map +7 -0
  168. package/dist/lib/node-esm/{state-XE5YGPHM.mjs → state-W36RRYUO.mjs} +8 -8
  169. package/dist/lib/node-esm/state-W36RRYUO.mjs.map +7 -0
  170. package/dist/lib/node-esm/types/index.mjs +2 -2
  171. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  172. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +2 -2
  173. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  174. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +33 -0
  175. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -0
  176. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +19 -0
  177. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -0
  178. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +6 -0
  179. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -0
  180. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +12 -0
  181. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -0
  182. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +57 -0
  183. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -0
  184. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts +2 -0
  185. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts.map +1 -0
  186. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -0
  187. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -0
  188. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +38 -0
  189. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +1 -0
  190. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +1 -1
  191. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -1
  192. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +2 -2
  193. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -1
  194. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +1 -1
  195. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -1
  196. package/dist/types/src/capabilities/identity-created/identity-created.d.ts +1 -1
  197. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  198. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  199. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  200. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  201. package/dist/types/src/capabilities/react-root/react-root.d.ts +1 -1
  202. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -1
  203. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  204. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  205. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  206. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  207. package/dist/types/src/capabilities/repair/repair.d.ts +1 -1
  208. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
  209. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  210. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  211. package/dist/types/src/capabilities/settings/settings.d.ts +4 -3
  212. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  213. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts +1 -1
  214. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts.map +1 -1
  215. package/dist/types/src/capabilities/state/state.d.ts +1 -1
  216. package/dist/types/src/capabilities/state/state.d.ts.map +1 -1
  217. package/dist/types/src/cli/commands/database/add.d.ts +0 -1
  218. package/dist/types/src/cli/commands/database/add.d.ts.map +1 -1
  219. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  220. package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -0
  221. package/dist/types/src/components/AwaitingObject/index.d.ts +2 -0
  222. package/dist/types/src/components/AwaitingObject/index.d.ts.map +1 -0
  223. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +12 -5
  224. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  225. package/dist/types/src/components/CreateDialog/index.d.ts +1 -2
  226. package/dist/types/src/components/CreateDialog/index.d.ts.map +1 -1
  227. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -1
  228. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +68 -14
  229. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -1
  230. package/dist/types/src/components/ObjectDetails/index.d.ts +2 -2
  231. package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -1
  232. package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -0
  233. package/dist/types/src/components/ObjectForm/index.d.ts +2 -0
  234. package/dist/types/src/components/ObjectForm/index.d.ts.map +1 -0
  235. package/dist/types/src/components/SyncStatus/index.d.ts +2 -2
  236. package/dist/types/src/components/SyncStatus/index.d.ts.map +1 -1
  237. package/dist/types/src/components/index.d.ts +2 -23
  238. package/dist/types/src/components/index.d.ts.map +1 -1
  239. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +8 -0
  240. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -0
  241. package/dist/types/src/containers/CollectionArticle/index.d.ts +3 -0
  242. package/dist/types/src/containers/CollectionArticle/index.d.ts.map +1 -0
  243. package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts +5 -0
  244. package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts.map +1 -0
  245. package/dist/types/src/containers/CollectionSection/index.d.ts +3 -0
  246. package/dist/types/src/containers/CollectionSection/index.d.ts.map +1 -0
  247. package/dist/types/src/{components/CreateDialog → containers/CreateObjectDialog}/CreateObjectDialog.d.ts +5 -3
  248. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -0
  249. package/dist/types/src/containers/CreateObjectDialog/index.d.ts +3 -0
  250. package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -0
  251. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -0
  252. package/dist/types/src/containers/CreateSpaceDialog/index.d.ts +3 -0
  253. package/dist/types/src/containers/CreateSpaceDialog/index.d.ts.map +1 -0
  254. package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -0
  255. package/dist/types/src/containers/InlineSyncStatus/index.d.ts +3 -0
  256. package/dist/types/src/containers/InlineSyncStatus/index.d.ts.map +1 -0
  257. package/dist/types/src/{components → containers}/JoinDialog/JoinDialog.d.ts.map +1 -1
  258. package/dist/types/src/containers/JoinDialog/index.d.ts +3 -0
  259. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -0
  260. package/dist/types/src/{components → containers}/MembersContainer/MembersContainer.d.ts.map +1 -1
  261. package/dist/types/src/containers/MembersContainer/index.d.ts +3 -0
  262. package/dist/types/src/containers/MembersContainer/index.d.ts.map +1 -0
  263. package/dist/types/src/containers/MenuFooter/MenuFooter.d.ts.map +1 -0
  264. package/dist/types/src/containers/MenuFooter/index.d.ts +3 -0
  265. package/dist/types/src/containers/MenuFooter/index.d.ts.map +1 -0
  266. package/dist/types/src/{components → containers}/ObjectCardStack/ObjectCardStack.d.ts +4 -1
  267. package/dist/types/src/containers/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
  268. package/dist/types/src/{components → containers}/ObjectCardStack/index.d.ts.map +1 -1
  269. package/dist/types/src/{components → containers}/ObjectDetails/ObjectDetails.d.ts +2 -1
  270. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +1 -0
  271. package/dist/types/src/containers/ObjectDetails/index.d.ts +3 -0
  272. package/dist/types/src/containers/ObjectDetails/index.d.ts.map +1 -0
  273. package/dist/types/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -1
  274. package/dist/types/src/containers/ObjectRenamePopover/index.d.ts +3 -0
  275. package/dist/types/src/containers/ObjectRenamePopover/index.d.ts.map +1 -0
  276. package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts +4 -0
  277. package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -0
  278. package/dist/types/src/containers/RecordArticle/index.d.ts +3 -0
  279. package/dist/types/src/containers/RecordArticle/index.d.ts.map +1 -0
  280. package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts.map +1 -0
  281. package/dist/types/src/containers/SchemaContainer/index.d.ts +3 -0
  282. package/dist/types/src/containers/SchemaContainer/index.d.ts.map +1 -0
  283. package/dist/types/src/containers/SmallPresenceLive/index.d.ts +2 -0
  284. package/dist/types/src/containers/SmallPresenceLive/index.d.ts.map +1 -0
  285. package/dist/types/src/{components → containers/SpacePluginSettings}/SpacePluginSettings.d.ts +1 -1
  286. package/dist/types/src/containers/SpacePluginSettings/SpacePluginSettings.d.ts.map +1 -0
  287. package/dist/types/src/containers/SpacePluginSettings/index.d.ts +3 -0
  288. package/dist/types/src/containers/SpacePluginSettings/index.d.ts.map +1 -0
  289. package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.d.ts.map +1 -1
  290. package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.stories.d.ts +67 -13
  291. package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  292. package/dist/types/src/containers/SpacePresence/index.d.ts +3 -0
  293. package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -0
  294. package/dist/types/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -1
  295. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts +3 -0
  296. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts.map +1 -0
  297. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts +10 -0
  298. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts.map +1 -0
  299. package/dist/types/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.d.ts +71 -14
  300. package/dist/types/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.d.ts.map +1 -1
  301. package/dist/types/src/containers/SpaceSettingsContainer/index.d.ts +3 -0
  302. package/dist/types/src/containers/SpaceSettingsContainer/index.d.ts.map +1 -0
  303. package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.d.ts.map +1 -1
  304. package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.stories.d.ts +67 -13
  305. package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  306. package/dist/types/src/containers/SyncStatus/index.d.ts +3 -0
  307. package/dist/types/src/containers/SyncStatus/index.d.ts.map +1 -0
  308. package/dist/types/src/{components → containers/ViewEditor}/ViewEditor.d.ts +1 -1
  309. package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -0
  310. package/dist/types/src/containers/ViewEditor/index.d.ts +3 -0
  311. package/dist/types/src/containers/ViewEditor/index.d.ts.map +1 -0
  312. package/dist/types/src/containers/index.d.ts +23 -0
  313. package/dist/types/src/containers/index.d.ts.map +1 -0
  314. package/dist/types/src/helpers/query.d.ts.map +1 -1
  315. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  316. package/dist/types/src/index.d.ts +1 -1
  317. package/dist/types/src/index.d.ts.map +1 -1
  318. package/dist/types/src/translations.d.ts +67 -13
  319. package/dist/types/src/translations.d.ts.map +1 -1
  320. package/dist/types/src/types/capabilities.d.ts +1 -1
  321. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  322. package/dist/types/src/types/events.d.ts.map +1 -1
  323. package/dist/types/src/types/form.d.ts +0 -2
  324. package/dist/types/src/types/form.d.ts.map +1 -1
  325. package/dist/types/src/types/types.d.ts +63 -124
  326. package/dist/types/src/types/types.d.ts.map +1 -1
  327. package/dist/types/src/util.d.ts +6 -121
  328. package/dist/types/src/util.d.ts.map +1 -1
  329. package/dist/types/tsconfig.tsbuildinfo +1 -1
  330. package/package.json +68 -66
  331. package/src/SpacePlugin.ts +83 -70
  332. package/src/capabilities/app-graph-builder/app-graph-builder.ts +17 -602
  333. package/src/capabilities/app-graph-builder/extensions/collections.ts +351 -0
  334. package/src/capabilities/app-graph-builder/extensions/companions.ts +80 -0
  335. package/src/capabilities/app-graph-builder/extensions/index.ts +9 -0
  336. package/src/capabilities/app-graph-builder/extensions/settings.ts +60 -0
  337. package/src/capabilities/app-graph-builder/extensions/shared.test.ts +112 -0
  338. package/src/capabilities/app-graph-builder/extensions/shared.ts +171 -0
  339. package/src/capabilities/app-graph-builder/extensions/spaces.ts +338 -0
  340. package/src/capabilities/app-graph-builder/extensions/types.ts +432 -0
  341. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +6 -5
  342. package/src/capabilities/identity-created/identity-created.ts +4 -4
  343. package/src/capabilities/operation-resolver/operation-resolver.ts +97 -94
  344. package/src/capabilities/react-root/react-root.tsx +3 -3
  345. package/src/capabilities/react-surface/react-surface.tsx +79 -99
  346. package/src/capabilities/repair/repair.ts +3 -28
  347. package/src/capabilities/settings/settings.ts +3 -2
  348. package/src/capabilities/spaces-ready/spaces-ready.ts +8 -7
  349. package/src/capabilities/state/state.ts +7 -5
  350. package/src/cli/commands/database/add.ts +8 -10
  351. package/src/cli/commands/database/query/query.ts +1 -1
  352. package/src/cli/commands/database/remove.ts +2 -2
  353. package/src/cli/commands/database/stats.ts +1 -1
  354. package/src/cli/commands/space/close/close.ts +1 -1
  355. package/src/cli/commands/space/create/create.ts +1 -1
  356. package/src/cli/commands/space/join/join.ts +1 -1
  357. package/src/cli/commands/space/open/open.ts +1 -1
  358. package/src/cli/plugin.ts +34 -27
  359. package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +6 -5
  360. package/src/components/AwaitingObject/index.ts +5 -0
  361. package/src/components/CreateDialog/CreateObjectPanel.tsx +90 -111
  362. package/src/components/CreateDialog/index.ts +1 -2
  363. package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +10 -10
  364. package/src/components/ObjectDetails/BaseObjectSettings.tsx +8 -8
  365. package/src/components/ObjectDetails/ForeignKeys.tsx +1 -1
  366. package/src/components/ObjectDetails/index.ts +2 -3
  367. package/src/components/{ObjectCardStack → ObjectForm}/ObjectForm.tsx +9 -7
  368. package/src/components/{JoinDialog → ObjectForm}/index.ts +1 -1
  369. package/src/components/SyncStatus/index.ts +2 -2
  370. package/src/components/index.ts +2 -18
  371. package/src/constants.ts +5 -5
  372. package/src/containers/CollectionArticle/CollectionArticle.tsx +139 -0
  373. package/src/containers/CollectionArticle/index.ts +7 -0
  374. package/src/{components → containers/CollectionSection}/CollectionSection.tsx +4 -4
  375. package/src/containers/CollectionSection/index.ts +7 -0
  376. package/src/{components/CreateDialog → containers/CreateObjectDialog}/CreateObjectDialog.tsx +62 -42
  377. package/src/containers/CreateObjectDialog/index.ts +6 -0
  378. package/src/{components/CreateDialog → containers/CreateSpaceDialog}/CreateSpaceDialog.tsx +6 -6
  379. package/src/containers/CreateSpaceDialog/index.ts +7 -0
  380. package/src/{components/SyncStatus → containers/InlineSyncStatus}/InlineSyncStatus.tsx +8 -19
  381. package/src/containers/InlineSyncStatus/index.ts +7 -0
  382. package/src/{components → containers}/JoinDialog/JoinDialog.tsx +10 -9
  383. package/src/containers/JoinDialog/index.ts +6 -0
  384. package/src/{components → containers}/MembersContainer/MembersContainer.tsx +50 -53
  385. package/src/containers/MembersContainer/index.ts +7 -0
  386. package/src/{components → containers/MenuFooter}/MenuFooter.tsx +5 -5
  387. package/src/containers/MenuFooter/index.ts +7 -0
  388. package/src/containers/ObjectCardStack/ObjectCardStack.tsx +82 -0
  389. package/src/containers/ObjectDetails/ObjectDetails.tsx +36 -0
  390. package/src/containers/ObjectDetails/index.ts +7 -0
  391. package/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.tsx +4 -4
  392. package/src/containers/ObjectRenamePopover/index.ts +7 -0
  393. package/src/{components → containers/RecordArticle}/RecordArticle.tsx +55 -37
  394. package/src/containers/RecordArticle/index.ts +7 -0
  395. package/src/{components → containers/SchemaContainer}/SchemaContainer.tsx +22 -18
  396. package/src/containers/SchemaContainer/index.ts +7 -0
  397. package/src/containers/SmallPresenceLive/index.ts +5 -0
  398. package/src/containers/SpacePluginSettings/SpacePluginSettings.tsx +65 -0
  399. package/src/containers/SpacePluginSettings/index.ts +7 -0
  400. package/src/{components → containers}/SpacePresence/SpacePresence.stories.tsx +2 -2
  401. package/src/{components → containers}/SpacePresence/SpacePresence.tsx +11 -22
  402. package/src/containers/SpacePresence/index.ts +6 -0
  403. package/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.tsx +4 -4
  404. package/src/containers/SpaceRenamePopover/index.ts +7 -0
  405. package/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.tsx +3 -3
  406. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +202 -0
  407. package/src/containers/SpaceSettingsContainer/index.ts +7 -0
  408. package/src/{components → containers}/SyncStatus/SyncStatus.stories.tsx +2 -2
  409. package/src/{components → containers}/SyncStatus/SyncStatus.tsx +5 -7
  410. package/src/containers/SyncStatus/index.ts +7 -0
  411. package/src/{components → containers/ViewEditor}/ViewEditor.tsx +11 -10
  412. package/src/containers/ViewEditor/index.ts +7 -0
  413. package/src/containers/index.ts +28 -0
  414. package/src/helpers/query.test.ts +1 -1
  415. package/src/helpers/query.ts +20 -7
  416. package/src/hooks/useActiveSpace.ts +8 -7
  417. package/src/hooks/useInputSurfaceLookup.tsx +3 -3
  418. package/src/index.ts +2 -1
  419. package/src/meta.ts +1 -1
  420. package/src/translations.ts +30 -4
  421. package/src/types/capabilities.ts +8 -8
  422. package/src/types/events.ts +7 -6
  423. package/src/types/form.ts +1 -8
  424. package/src/types/types.ts +61 -76
  425. package/src/util.ts +82 -0
  426. package/dist/lib/browser/CollectionArticle-OQMUVFVV.mjs +0 -125
  427. package/dist/lib/browser/CollectionArticle-OQMUVFVV.mjs.map +0 -7
  428. package/dist/lib/browser/ObjectCardStack-TWHN6C2Y.mjs +0 -148
  429. package/dist/lib/browser/ObjectCardStack-TWHN6C2Y.mjs.map +0 -7
  430. package/dist/lib/browser/ObjectDetails-GEDIISKK.mjs +0 -142
  431. package/dist/lib/browser/ObjectDetails-GEDIISKK.mjs.map +0 -7
  432. package/dist/lib/browser/RecordArticle-W57QE7QV.mjs.map +0 -7
  433. package/dist/lib/browser/app-graph-builder-SJHTZXZF.mjs +0 -523
  434. package/dist/lib/browser/app-graph-builder-SJHTZXZF.mjs.map +0 -7
  435. package/dist/lib/browser/app-graph-serializer-7AT7QMSK.mjs.map +0 -7
  436. package/dist/lib/browser/chunk-4WZUGLQQ.mjs.map +0 -7
  437. package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
  438. package/dist/lib/browser/chunk-CCRSHECL.mjs.map +0 -7
  439. package/dist/lib/browser/chunk-SUI34XSA.mjs +0 -772
  440. package/dist/lib/browser/chunk-SUI34XSA.mjs.map +0 -7
  441. package/dist/lib/browser/chunk-TWUMNPG4.mjs +0 -1898
  442. package/dist/lib/browser/chunk-TWUMNPG4.mjs.map +0 -7
  443. package/dist/lib/browser/chunk-ZT2VPYRM.mjs.map +0 -7
  444. package/dist/lib/browser/identity-created-VCFYLSBB.mjs.map +0 -7
  445. package/dist/lib/browser/operation-resolver-SIRQT36Z.mjs.map +0 -7
  446. package/dist/lib/browser/react-root-3SPMM45V.mjs.map +0 -7
  447. package/dist/lib/browser/react-surface-UUS7NDHS.mjs.map +0 -7
  448. package/dist/lib/browser/repair-CJG26D52.mjs +0 -50
  449. package/dist/lib/browser/repair-CJG26D52.mjs.map +0 -7
  450. package/dist/lib/browser/settings-ZS2AQ73E.mjs.map +0 -7
  451. package/dist/lib/browser/spaces-ready-OQDGWUOS.mjs.map +0 -7
  452. package/dist/lib/browser/state-7YZQB2KY.mjs.map +0 -7
  453. package/dist/lib/node-esm/CollectionArticle-V5OOJVJJ.mjs.map +0 -7
  454. package/dist/lib/node-esm/ObjectCardStack-C5ZXRKP7.mjs +0 -149
  455. package/dist/lib/node-esm/ObjectCardStack-C5ZXRKP7.mjs.map +0 -7
  456. package/dist/lib/node-esm/ObjectDetails-6ZLDRKCO.mjs +0 -143
  457. package/dist/lib/node-esm/ObjectDetails-6ZLDRKCO.mjs.map +0 -7
  458. package/dist/lib/node-esm/RecordArticle-SSV74Z46.mjs.map +0 -7
  459. package/dist/lib/node-esm/app-graph-builder-HZ3XXDFZ.mjs +0 -524
  460. package/dist/lib/node-esm/app-graph-builder-HZ3XXDFZ.mjs.map +0 -7
  461. package/dist/lib/node-esm/app-graph-serializer-WJ2TIQG6.mjs.map +0 -7
  462. package/dist/lib/node-esm/chunk-2SW6S2BB.mjs.map +0 -7
  463. package/dist/lib/node-esm/chunk-7KMYUWSR.mjs +0 -773
  464. package/dist/lib/node-esm/chunk-7KMYUWSR.mjs.map +0 -7
  465. package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
  466. package/dist/lib/node-esm/chunk-FYSBFBSD.mjs +0 -1899
  467. package/dist/lib/node-esm/chunk-FYSBFBSD.mjs.map +0 -7
  468. package/dist/lib/node-esm/chunk-JOBIWCBC.mjs.map +0 -7
  469. package/dist/lib/node-esm/chunk-MPL6NHQX.mjs.map +0 -7
  470. package/dist/lib/node-esm/identity-created-2SJABVJD.mjs.map +0 -7
  471. package/dist/lib/node-esm/operation-resolver-ZE3XJL5J.mjs.map +0 -7
  472. package/dist/lib/node-esm/react-root-Y6JTGDTW.mjs.map +0 -7
  473. package/dist/lib/node-esm/react-surface-SQ4SK3OK.mjs.map +0 -7
  474. package/dist/lib/node-esm/repair-G3ZW3VG3.mjs.map +0 -7
  475. package/dist/lib/node-esm/settings-PVI2VG56.mjs.map +0 -7
  476. package/dist/lib/node-esm/spaces-ready-R744OHQG.mjs.map +0 -7
  477. package/dist/lib/node-esm/state-XE5YGPHM.mjs.map +0 -7
  478. package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
  479. package/dist/types/src/components/CollectionArticle.d.ts +0 -9
  480. package/dist/types/src/components/CollectionArticle.d.ts.map +0 -1
  481. package/dist/types/src/components/CollectionSection.d.ts +0 -5
  482. package/dist/types/src/components/CollectionSection.d.ts.map +0 -1
  483. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +0 -1
  484. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +0 -1604
  485. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +0 -1
  486. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +0 -1
  487. package/dist/types/src/components/JoinDialog/index.d.ts +0 -2
  488. package/dist/types/src/components/JoinDialog/index.d.ts.map +0 -1
  489. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +0 -1600
  490. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +0 -1
  491. package/dist/types/src/components/MembersContainer/index.d.ts +0 -2
  492. package/dist/types/src/components/MembersContainer/index.d.ts.map +0 -1
  493. package/dist/types/src/components/MenuFooter.d.ts.map +0 -1
  494. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +0 -1
  495. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +0 -1
  496. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +0 -1
  497. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +0 -2
  498. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +0 -1
  499. package/dist/types/src/components/RecordArticle.d.ts +0 -5
  500. package/dist/types/src/components/RecordArticle.d.ts.map +0 -1
  501. package/dist/types/src/components/RecordArticle.stories.d.ts +0 -1600
  502. package/dist/types/src/components/RecordArticle.stories.d.ts.map +0 -1
  503. package/dist/types/src/components/SchemaContainer.d.ts.map +0 -1
  504. package/dist/types/src/components/SpacePluginSettings.d.ts.map +0 -1
  505. package/dist/types/src/components/SpacePresence/index.d.ts +0 -2
  506. package/dist/types/src/components/SpacePresence/index.d.ts.map +0 -1
  507. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +0 -2
  508. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +0 -1
  509. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +0 -7
  510. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +0 -1
  511. package/dist/types/src/components/SpaceSettings/index.d.ts +0 -2
  512. package/dist/types/src/components/SpaceSettings/index.d.ts.map +0 -1
  513. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +0 -1
  514. package/dist/types/src/components/ViewEditor.d.ts.map +0 -1
  515. package/src/components/CollectionArticle.tsx +0 -153
  516. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +0 -91
  517. package/src/components/MembersContainer/MembersContainer.stories.tsx +0 -56
  518. package/src/components/MembersContainer/index.ts +0 -5
  519. package/src/components/ObjectCardStack/ObjectCardStack.tsx +0 -67
  520. package/src/components/ObjectDetails/ObjectDetails.tsx +0 -32
  521. package/src/components/ObjectRenamePopover/index.ts +0 -5
  522. package/src/components/RecordArticle.stories.tsx +0 -115
  523. package/src/components/SpacePluginSettings.tsx +0 -62
  524. package/src/components/SpacePresence/index.ts +0 -5
  525. package/src/components/SpaceRenamePopover/index.ts +0 -5
  526. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +0 -220
  527. package/src/components/SpaceSettings/index.ts +0 -5
  528. package/src/util.tsx +0 -779
  529. /package/dist/lib/browser/{chunk-AWVAX26X.mjs.map → chunk-SSTUPFZ2.mjs.map} +0 -0
  530. /package/dist/lib/node-esm/{chunk-HREWB23G.mjs.map → chunk-XYLDAH5C.mjs.map} +0 -0
  531. /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +0 -0
  532. /package/dist/types/src/components/{ObjectCardStack → ObjectForm}/ObjectForm.d.ts +0 -0
  533. /package/dist/types/src/{components/CreateDialog → containers/CreateSpaceDialog}/CreateSpaceDialog.d.ts +0 -0
  534. /package/dist/types/src/{components/SyncStatus → containers/InlineSyncStatus}/InlineSyncStatus.d.ts +0 -0
  535. /package/dist/types/src/{components → containers}/JoinDialog/JoinDialog.d.ts +0 -0
  536. /package/dist/types/src/{components → containers}/MembersContainer/MembersContainer.d.ts +0 -0
  537. /package/dist/types/src/{components → containers/MenuFooter}/MenuFooter.d.ts +0 -0
  538. /package/dist/types/src/{components → containers}/ObjectCardStack/index.d.ts +0 -0
  539. /package/dist/types/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.d.ts +0 -0
  540. /package/dist/types/src/{components → containers/SchemaContainer}/SchemaContainer.d.ts +0 -0
  541. /package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.d.ts +0 -0
  542. /package/dist/types/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.d.ts +0 -0
  543. /package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.d.ts +0 -0
  544. /package/src/{components → containers}/ObjectCardStack/index.ts +0 -0
@@ -0,0 +1,65 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ useInputSurfaceLookup
4
+ } from "./chunk-2OLR2ZKH.mjs";
5
+ import {
6
+ SpaceForm,
7
+ SpaceOperation
8
+ } from "./chunk-EVNSLSQS.mjs";
9
+ import {
10
+ meta
11
+ } from "./chunk-63N5JJXI.mjs";
12
+
13
+ // src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx
14
+ import * as Effect from "effect/Effect";
15
+ import React, { useCallback, useRef } from "react";
16
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
17
+ import { LayoutOperation, getSpacePath } from "@dxos/app-toolkit";
18
+ import { runAndForwardErrors } from "@dxos/effect";
19
+ import { Dialog, useTranslation } from "@dxos/react-ui";
20
+ import { Form } from "@dxos/react-ui-form";
21
+ var CREATE_SPACE_DIALOG = `${meta.id}.CreateSpaceDialog`;
22
+ var initialValues = {
23
+ edgeReplication: true
24
+ };
25
+ var CreateSpaceDialog = () => {
26
+ const closeRef = useRef(null);
27
+ const { t } = useTranslation(meta.id);
28
+ const { invokePromise } = useOperationInvoker();
29
+ const inputSurfaceLookup = useInputSurfaceLookup();
30
+ const handleCreateSpace = useCallback(async (data) => {
31
+ const program = Effect.gen(function* () {
32
+ const { data: result } = yield* Effect.promise(() => invokePromise(SpaceOperation.Create, data));
33
+ if (result?.space) {
34
+ yield* Effect.promise(() => invokePromise(LayoutOperation.SwitchWorkspace, {
35
+ subject: getSpacePath(result.space.id)
36
+ }));
37
+ yield* Effect.promise(() => invokePromise(LayoutOperation.UpdateDialog, {
38
+ state: false
39
+ }));
40
+ }
41
+ });
42
+ await runAndForwardErrors(program);
43
+ }, [
44
+ invokePromise
45
+ ]);
46
+ return /* @__PURE__ */ React.createElement(Dialog.Content, null, /* @__PURE__ */ React.createElement(Dialog.Header, null, /* @__PURE__ */ React.createElement(Dialog.Title, null, t("create space dialog title")), /* @__PURE__ */ React.createElement(Dialog.Close, {
47
+ asChild: true
48
+ }, /* @__PURE__ */ React.createElement(Dialog.CloseIconButton, {
49
+ ref: closeRef
50
+ }))), /* @__PURE__ */ React.createElement(Form.Root, {
51
+ testId: "create-space-form",
52
+ autoFocus: true,
53
+ schema: SpaceForm,
54
+ defaultValues: initialValues,
55
+ fieldProvider: inputSurfaceLookup,
56
+ onSave: handleCreateSpace
57
+ }, /* @__PURE__ */ React.createElement(Form.Viewport, null, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.FieldSet, null), /* @__PURE__ */ React.createElement(Form.Submit, null)))));
58
+ };
59
+
60
+ // src/containers/CreateSpaceDialog/index.ts
61
+ var CreateSpaceDialog_default = CreateSpaceDialog;
62
+ export {
63
+ CreateSpaceDialog_default as default
64
+ };
65
+ //# sourceMappingURL=CreateSpaceDialog-J47M5FPQ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx", "../../../src/containers/CreateSpaceDialog/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport type * as Schema from 'effect/Schema';\nimport React, { useCallback, useRef } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { Form } from '@dxos/react-ui-form';\n\nimport { useInputSurfaceLookup } from '../../hooks';\nimport { meta } from '../../meta';\nimport { SpaceForm, SpaceOperation } from '../../types';\n\nexport const CREATE_SPACE_DIALOG = `${meta.id}.CreateSpaceDialog`;\n\ntype FormValues = Schema.Schema.Type<typeof SpaceForm>;\nconst initialValues: FormValues = { edgeReplication: true };\n\nexport const CreateSpaceDialog = () => {\n const closeRef = useRef<HTMLButtonElement | null>(null);\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n\n const inputSurfaceLookup = useInputSurfaceLookup();\n\n const handleCreateSpace = useCallback(\n async (data: FormValues) => {\n const program = Effect.gen(function* () {\n const { data: result } = yield* Effect.promise(() => invokePromise(SpaceOperation.Create, data));\n if (result?.space) {\n yield* Effect.promise(() =>\n invokePromise(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(result.space.id) }),\n );\n yield* Effect.promise(() => invokePromise(LayoutOperation.UpdateDialog, { state: false }));\n }\n });\n await runAndForwardErrors(program);\n },\n [invokePromise],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n <Dialog.Title>{t('create space dialog title')}</Dialog.Title>\n <Dialog.Close asChild>\n <Dialog.CloseIconButton ref={closeRef} />\n </Dialog.Close>\n </Dialog.Header>\n <Form.Root\n testId='create-space-form'\n autoFocus\n schema={SpaceForm}\n defaultValues={initialValues}\n fieldProvider={inputSurfaceLookup}\n onSave={handleCreateSpace}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n <Form.Submit />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CreateSpaceDialog } from './CreateSpaceDialog';\n\nexport default CreateSpaceDialog;\n"],
5
+ "mappings": ";;;;;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,OAAOC,SAASC,aAAaC,cAAc;AAE3C,SAASC,2BAA2B;AACpC,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,2BAA2B;AACpC,SAASC,QAAQC,sBAAsB;AACvC,SAASC,YAAY;AAMd,IAAMC,sBAAsB,GAAGC,KAAKC,EAAE;AAG7C,IAAMC,gBAA4B;EAAEC,iBAAiB;AAAK;AAEnD,IAAMC,oBAAoB,MAAA;AAC/B,QAAMC,WAAWC,OAAiC,IAAA;AAClD,QAAM,EAAEC,EAAC,IAAKC,eAAeR,KAAKC,EAAE;AACpC,QAAM,EAAEQ,cAAa,IAAKC,oBAAAA;AAE1B,QAAMC,qBAAqBC,sBAAAA;AAE3B,QAAMC,oBAAoBC,YACxB,OAAOC,SAAAA;AACL,UAAMC,UAAiBC,WAAI,aAAA;AACzB,YAAM,EAAEF,MAAMG,OAAM,IAAK,OAAcC,eAAQ,MAAMV,cAAcW,eAAeC,QAAQN,IAAAA,CAAAA;AAC1F,UAAIG,QAAQI,OAAO;AACjB,eAAcH,eAAQ,MACpBV,cAAcc,gBAAgBC,iBAAiB;UAAEC,SAASC,aAAaR,OAAOI,MAAMrB,EAAE;QAAE,CAAA,CAAA;AAE1F,eAAckB,eAAQ,MAAMV,cAAcc,gBAAgBI,cAAc;UAAEC,OAAO;QAAM,CAAA,CAAA;MACzF;IACF,CAAA;AACA,UAAMC,oBAAoBb,OAAAA;EAC5B,GACA;IAACP;GAAc;AAGjB,SACE,sBAAA,cAACqB,OAAOC,SAAO,MACb,sBAAA,cAACD,OAAOE,QAAM,MACZ,sBAAA,cAACF,OAAOG,OAAK,MAAE1B,EAAE,2BAAA,CAAA,GACjB,sBAAA,cAACuB,OAAOI,OAAK;IAACC,SAAAA;KACZ,sBAAA,cAACL,OAAOM,iBAAe;IAACC,KAAKhC;QAGjC,sBAAA,cAACiC,KAAKC,MAAI;IACRC,QAAO;IACPC,WAAAA;IACAC,QAAQC;IACRC,eAAe1C;IACf2C,eAAelC;IACfmC,QAAQjC;KAER,sBAAA,cAACyB,KAAKS,UAAQ,MACZ,sBAAA,cAACT,KAAKP,SAAO,MACX,sBAAA,cAACO,KAAKU,UAAQ,IAAA,GACd,sBAAA,cAACV,KAAKW,QAAM,IAAA,CAAA,CAAA,CAAA,CAAA;AAMxB;;;ACjEA,IAAA,4BAAeC;",
6
+ "names": ["Effect", "React", "useCallback", "useRef", "useOperationInvoker", "LayoutOperation", "getSpacePath", "runAndForwardErrors", "Dialog", "useTranslation", "Form", "CREATE_SPACE_DIALOG", "meta", "id", "initialValues", "edgeReplication", "CreateSpaceDialog", "closeRef", "useRef", "t", "useTranslation", "invokePromise", "useOperationInvoker", "inputSurfaceLookup", "useInputSurfaceLookup", "handleCreateSpace", "useCallback", "data", "program", "gen", "result", "promise", "SpaceOperation", "Create", "space", "LayoutOperation", "SwitchWorkspace", "subject", "getSpacePath", "UpdateDialog", "state", "runAndForwardErrors", "Dialog", "Content", "Header", "Title", "Close", "asChild", "CloseIconButton", "ref", "Form", "Root", "testId", "autoFocus", "schema", "SpaceForm", "defaultValues", "fieldProvider", "onSave", "Viewport", "FieldSet", "Submit", "CreateSpaceDialog"]
7
+ }
@@ -0,0 +1,54 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-63N5JJXI.mjs";
5
+
6
+ // src/containers/InlineSyncStatus/InlineSyncStatus.tsx
7
+ import React, { useEffect, useState } from "react";
8
+ import { getSpacePath } from "@dxos/app-toolkit";
9
+ import { EdgeStatus } from "@dxos/protocols/proto/dxos/client/services";
10
+ import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
11
+ import { useClient } from "@dxos/react-client";
12
+ import { useSpaceSyncState } from "@dxos/react-client/echo";
13
+ import { Tooltip, useTranslation } from "@dxos/react-ui";
14
+ import { AttentionGlyph, useAttention } from "@dxos/react-ui-attention";
15
+ var useEdgeStatus = () => {
16
+ const [status, setStatus] = useState(EdgeStatus.ConnectionState.NOT_CONNECTED);
17
+ const client = useClient();
18
+ useEffect(() => {
19
+ client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
20
+ setStatus(status2.state);
21
+ });
22
+ }, [
23
+ client
24
+ ]);
25
+ return status;
26
+ };
27
+ var InlineSyncStatus = ({ space, open }) => {
28
+ const { t } = useTranslation(meta.id);
29
+ const qualifiedId = getSpacePath(space.id);
30
+ const { hasAttention, isAncestor, isRelated } = useAttention(qualifiedId);
31
+ const attended = hasAttention || isRelated;
32
+ const containsAttended = isAncestor && !open;
33
+ const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;
34
+ const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED;
35
+ const syncState = useSpaceSyncState(space);
36
+ const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
37
+ return /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
38
+ asChild: true,
39
+ content: t("syncing label"),
40
+ side: "bottom"
41
+ }, /* @__PURE__ */ React.createElement(AttentionGlyph, {
42
+ syncing,
43
+ attended,
44
+ containsAttended,
45
+ classNames: "self-center mx-1"
46
+ }));
47
+ };
48
+
49
+ // src/containers/InlineSyncStatus/index.ts
50
+ var InlineSyncStatus_default = InlineSyncStatus;
51
+ export {
52
+ InlineSyncStatus_default as default
53
+ };
54
+ //# sourceMappingURL=InlineSyncStatus-BLD57LB5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/InlineSyncStatus/InlineSyncStatus.tsx", "../../../src/containers/InlineSyncStatus/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { getSpacePath } from '@dxos/app-toolkit';\nimport { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { useClient } from '@dxos/react-client';\nimport { type Space, useSpaceSyncState } from '@dxos/react-client/echo';\nimport { Tooltip, useTranslation } from '@dxos/react-ui';\nimport { AttentionGlyph, useAttention } from '@dxos/react-ui-attention';\n\nimport { meta } from '../../meta';\n\nconst useEdgeStatus = (): EdgeStatus.ConnectionState => {\n const [status, setStatus] = useState(EdgeStatus.ConnectionState.NOT_CONNECTED);\n const client = useClient();\n useEffect(() => {\n client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status }) => {\n setStatus(status.state);\n });\n }, [client]);\n\n return status;\n};\n\nexport const InlineSyncStatus = ({ space, open }: { space: Space; open?: boolean }) => {\n const { t } = useTranslation(meta.id);\n const qualifiedId = getSpacePath(space.id);\n const { hasAttention, isAncestor, isRelated } = useAttention(qualifiedId);\n const attended = hasAttention || isRelated;\n const containsAttended = isAncestor && !open;\n const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;\n // TODO(wittjosiah): This is not reactive.\n const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED;\n const syncState = useSpaceSyncState(space);\n const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;\n\n return (\n <Tooltip.Trigger asChild content={t('syncing label')} side='bottom'>\n <AttentionGlyph\n syncing={syncing}\n attended={attended}\n containsAttended={containsAttended}\n classNames='self-center mx-1'\n />\n </Tooltip.Trigger>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { InlineSyncStatus } from './InlineSyncStatus';\n\nexport default InlineSyncStatus;\n"],
5
+ "mappings": ";;;;;;AAIA,OAAOA,SAASC,WAAWC,gBAAgB;AAE3C,SAASC,oBAAoB;AAC7B,SAASC,kBAAkB;AAC3B,SAASC,8BAA8B;AACvC,SAASC,iBAAiB;AAC1B,SAAqBC,yBAAyB;AAC9C,SAASC,SAASC,sBAAsB;AACxC,SAASC,gBAAgBC,oBAAoB;AAI7C,IAAMC,gBAAgB,MAAA;AACpB,QAAM,CAACC,QAAQC,SAAAA,IAAaC,SAASC,WAAWC,gBAAgBC,aAAa;AAC7E,QAAMC,SAASC,UAAAA;AACfC,YAAU,MAAA;AACRF,WAAOG,SAASA,SAASC,kBAAkBC,gBAAAA,EAAkBC,UAAU,CAAC,EAAEZ,QAAAA,QAAM,MAAE;AAChFC,gBAAUD,QAAOa,KAAK;IACxB,CAAA;EACF,GAAG;IAACP;GAAO;AAEX,SAAON;AACT;AAEO,IAAMc,mBAAmB,CAAC,EAAEC,OAAOC,KAAI,MAAoC;AAChF,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAMC,cAAcC,aAAaP,MAAMK,EAAE;AACzC,QAAM,EAAEG,cAAcC,YAAYC,UAAS,IAAKC,aAAaL,WAAAA;AAC7D,QAAMM,WAAWJ,gBAAgBE;AACjC,QAAMG,mBAAmBJ,cAAc,CAACR;AACxC,QAAMa,kBAAkB9B,cAAAA,MAAoBI,WAAWC,gBAAgB0B;AAEvE,QAAMC,kBAAkBhB,MAAMiB,SAASC,KAAKC,oBAAoBC,uBAAuBC;AACvF,QAAMC,YAAYC,kBAAkBvB,KAAAA;AACpC,QAAMwB,UAAUV,mBAAmBE,mBAAmBM,aAAaA,UAAUG,iBAAiB;AAE9F,SACE,sBAAA,cAACC,QAAQC,SAAO;IAACC,SAAAA;IAAQC,SAAS3B,EAAE,eAAA;IAAkB4B,MAAK;KACzD,sBAAA,cAACC,gBAAAA;IACCP;IACAZ;IACAC;IACAmB,YAAW;;AAInB;;;AC5CA,IAAA,2BAAeC;",
6
+ "names": ["React", "useEffect", "useState", "getSpacePath", "EdgeStatus", "EdgeReplicationSetting", "useClient", "useSpaceSyncState", "Tooltip", "useTranslation", "AttentionGlyph", "useAttention", "useEdgeStatus", "status", "setStatus", "useState", "EdgeStatus", "ConnectionState", "NOT_CONNECTED", "client", "useClient", "useEffect", "services", "EdgeAgentService", "queryEdgeStatus", "subscribe", "state", "InlineSyncStatus", "space", "open", "t", "useTranslation", "meta", "id", "qualifiedId", "getSpacePath", "hasAttention", "isAncestor", "isRelated", "useAttention", "attended", "containsAttended", "connectedToEdge", "CONNECTED", "edgeSyncEnabled", "internal", "data", "edgeReplication", "EdgeReplicationSetting", "ENABLED", "syncState", "useSpaceSyncState", "syncing", "missingOnLocal", "Tooltip", "Trigger", "asChild", "content", "side", "AttentionGlyph", "classNames", "InlineSyncStatus"]
7
+ }
@@ -0,0 +1,116 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-63N5JJXI.mjs";
5
+
6
+ // src/containers/JoinDialog/JoinDialog.tsx
7
+ import React, { useCallback } from "react";
8
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
9
+ import { LayoutOperation, getSpacePath } from "@dxos/app-toolkit";
10
+ import { useAppGraph } from "@dxos/app-toolkit/ui";
11
+ import { Trigger } from "@dxos/async";
12
+ import { Graph } from "@dxos/plugin-graph";
13
+ import { ObservabilityOperation } from "@dxos/plugin-observability/types";
14
+ import { useClient } from "@dxos/react-client";
15
+ import { Dialog, useTranslation } from "@dxos/react-ui";
16
+ import { JoinPanel } from "@dxos/shell/react";
17
+ import { osTranslations } from "@dxos/ui-theme";
18
+ var JOIN_DIALOG = `${meta.id}.JoinDialog`;
19
+ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
20
+ const { invokePromise } = useOperationInvoker();
21
+ const client = useClient();
22
+ const { graph } = useAppGraph();
23
+ const { t } = useTranslation(meta.id);
24
+ const handleDone = useCallback(async (result) => {
25
+ const spaceKey = result?.spaceKey;
26
+ if (!spaceKey) {
27
+ return;
28
+ }
29
+ await Promise.all([
30
+ invokePromise(LayoutOperation.AddToast, {
31
+ id: `${meta.id}.join-success`,
32
+ duration: 5e3,
33
+ title: [
34
+ "join success label",
35
+ {
36
+ ns: meta.id
37
+ }
38
+ ],
39
+ closeLabel: [
40
+ "dismiss label",
41
+ {
42
+ ns: meta.id
43
+ }
44
+ ]
45
+ }),
46
+ invokePromise(LayoutOperation.UpdateDialog, {
47
+ state: false
48
+ })
49
+ ]);
50
+ let space = client.spaces.get(spaceKey);
51
+ if (!space) {
52
+ const trigger = new Trigger();
53
+ client.spaces.subscribe(() => {
54
+ const space2 = client.spaces.get(spaceKey);
55
+ if (space2) {
56
+ trigger.wake(space2);
57
+ }
58
+ });
59
+ space = await trigger.wait();
60
+ }
61
+ await invokePromise(LayoutOperation.SwitchWorkspace, {
62
+ subject: getSpacePath(space.id)
63
+ });
64
+ const target = result?.target || (navigableCollections ? space?.id : void 0);
65
+ if (target) {
66
+ await Graph.waitForPath(graph, {
67
+ target
68
+ }).catch(() => {
69
+ });
70
+ await Promise.all([
71
+ invokePromise(LayoutOperation.Open, {
72
+ subject: [
73
+ target
74
+ ]
75
+ }),
76
+ invokePromise(LayoutOperation.Expose, {
77
+ subject: target
78
+ })
79
+ ]);
80
+ }
81
+ await onDone?.(result);
82
+ if (space) {
83
+ await invokePromise(ObservabilityOperation.SendEvent, {
84
+ name: "space.join",
85
+ properties: {
86
+ spaceId: space.id
87
+ }
88
+ });
89
+ }
90
+ }, [
91
+ invokePromise,
92
+ client,
93
+ graph,
94
+ navigableCollections,
95
+ onDone
96
+ ]);
97
+ return /* @__PURE__ */ React.createElement(Dialog.Content, null, /* @__PURE__ */ React.createElement(Dialog.Title, {
98
+ classNames: "sr-only"
99
+ }, t("join space label", {
100
+ ns: osTranslations
101
+ })), /* @__PURE__ */ React.createElement(JoinPanel, {
102
+ ...props,
103
+ exitActionParent: /* @__PURE__ */ React.createElement(Dialog.Close, {
104
+ asChild: true
105
+ }),
106
+ doneActionParent: /* @__PURE__ */ React.createElement(Dialog.Close, {
107
+ asChild: true
108
+ }),
109
+ onDone: handleDone
110
+ }));
111
+ };
112
+ export {
113
+ JoinDialog,
114
+ JoinDialog as default
115
+ };
116
+ //# sourceMappingURL=JoinDialog-XCOYKSHA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/JoinDialog/JoinDialog.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';\nimport { useAppGraph } from '@dxos/app-toolkit/ui';\nimport { Trigger } from '@dxos/async';\nimport { Graph } from '@dxos/plugin-graph';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { type InvitationResult } from '@dxos/react-client/invitations';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { JoinPanel, type JoinPanelProps } from '@dxos/shell/react';\nimport { osTranslations } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\nexport const JOIN_DIALOG = `${meta.id}.JoinDialog`;\n\nexport type JoinDialogProps = JoinPanelProps & {\n navigableCollections?: boolean;\n};\n\nexport const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialogProps) => {\n const { invokePromise } = useOperationInvoker();\n const client = useClient();\n const { graph } = useAppGraph();\n const { t } = useTranslation(meta.id);\n\n const handleDone = useCallback(\n async (result: InvitationResult | null) => {\n const spaceKey = result?.spaceKey;\n if (!spaceKey) {\n return;\n }\n\n await Promise.all([\n invokePromise(LayoutOperation.AddToast, {\n id: `${meta.id}.join-success`,\n duration: 5_000,\n title: ['join success label', { ns: meta.id }],\n closeLabel: ['dismiss label', { ns: meta.id }],\n }),\n invokePromise(LayoutOperation.UpdateDialog, { state: false }),\n ]);\n\n let space = client.spaces.get(spaceKey);\n if (!space) {\n // TODO(wittjosiah): Add api to wait for a space.\n const trigger = new Trigger<Space>();\n client.spaces.subscribe(() => {\n const space = client.spaces.get(spaceKey);\n if (space) {\n trigger.wake(space);\n }\n });\n space = await trigger.wait();\n }\n\n await invokePromise(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(space.id) });\n\n // TODO(wittjosiah): If navigableCollections is false and there's no target,\n // should try to navigate to the first object of the space replicates.\n // Potentially this could also be done on the inviters side to ensure there's always a target.\n const target = result?.target || (navigableCollections ? space?.id : undefined);\n if (target) {\n // Wait before navigating to the target node.\n // If the target has not yet replicated, this will trigger a loading toast.\n await Graph.waitForPath(graph, { target }).catch(() => {});\n await Promise.all([\n invokePromise(LayoutOperation.Open, { subject: [target] }),\n invokePromise(LayoutOperation.Expose, { subject: target }),\n ]);\n }\n\n await onDone?.(result);\n\n if (space) {\n await invokePromise(ObservabilityOperation.SendEvent, {\n name: 'space.join',\n properties: {\n spaceId: space.id,\n },\n });\n }\n },\n [invokePromise, client, graph, navigableCollections, onDone],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Title classNames='sr-only'>{t('join space label', { ns: osTranslations })}</Dialog.Title>\n <JoinPanel\n {...props}\n exitActionParent={<Dialog.Close asChild />}\n doneActionParent={<Dialog.Close asChild />}\n onDone={handleDone}\n />\n </Dialog.Content>\n );\n};\n"],
5
+ "mappings": ";;;;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAASC,2BAA2B;AACpC,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,mBAAmB;AAC5B,SAASC,eAAe;AACxB,SAASC,aAAa;AACtB,SAASC,8BAA8B;AACvC,SAASC,iBAAiB;AAG1B,SAASC,QAAQC,sBAAsB;AACvC,SAASC,iBAAsC;AAC/C,SAASC,sBAAsB;AAIxB,IAAMC,cAAc,GAAGC,KAAKC,EAAE;AAM9B,IAAMC,aAAa,CAAC,EAAEC,sBAAsBC,QAAQ,GAAGC,MAAAA,MAAwB;AACpF,QAAM,EAAEC,cAAa,IAAKC,oBAAAA;AAC1B,QAAMC,SAASC,UAAAA;AACf,QAAM,EAAEC,MAAK,IAAKC,YAAAA;AAClB,QAAM,EAAEC,EAAC,IAAKC,eAAeb,KAAKC,EAAE;AAEpC,QAAMa,aAAaC,YACjB,OAAOC,WAAAA;AACL,UAAMC,WAAWD,QAAQC;AACzB,QAAI,CAACA,UAAU;AACb;IACF;AAEA,UAAMC,QAAQC,IAAI;MAChBb,cAAcc,gBAAgBC,UAAU;QACtCpB,IAAI,GAAGD,KAAKC,EAAE;QACdqB,UAAU;QACVC,OAAO;UAAC;UAAsB;YAAEC,IAAIxB,KAAKC;UAAG;;QAC5CwB,YAAY;UAAC;UAAiB;YAAED,IAAIxB,KAAKC;UAAG;;MAC9C,CAAA;MACAK,cAAcc,gBAAgBM,cAAc;QAAEC,OAAO;MAAM,CAAA;KAC5D;AAED,QAAIC,QAAQpB,OAAOqB,OAAOC,IAAIb,QAAAA;AAC9B,QAAI,CAACW,OAAO;AAEV,YAAMG,UAAU,IAAIC,QAAAA;AACpBxB,aAAOqB,OAAOI,UAAU,MAAA;AACtB,cAAML,SAAQpB,OAAOqB,OAAOC,IAAIb,QAAAA;AAChC,YAAIW,QAAO;AACTG,kBAAQG,KAAKN,MAAAA;QACf;MACF,CAAA;AACAA,cAAQ,MAAMG,QAAQI,KAAI;IAC5B;AAEA,UAAM7B,cAAcc,gBAAgBgB,iBAAiB;MAAEC,SAASC,aAAaV,MAAM3B,EAAE;IAAE,CAAA;AAKvF,UAAMsC,SAASvB,QAAQuB,WAAWpC,uBAAuByB,OAAO3B,KAAKuC;AACrE,QAAID,QAAQ;AAGV,YAAME,MAAMC,YAAYhC,OAAO;QAAE6B;MAAO,CAAA,EAAGI,MAAM,MAAA;MAAO,CAAA;AACxD,YAAMzB,QAAQC,IAAI;QAChBb,cAAcc,gBAAgBwB,MAAM;UAAEP,SAAS;YAACE;;QAAQ,CAAA;QACxDjC,cAAcc,gBAAgByB,QAAQ;UAAER,SAASE;QAAO,CAAA;OACzD;IACH;AAEA,UAAMnC,SAASY,MAAAA;AAEf,QAAIY,OAAO;AACT,YAAMtB,cAAcwC,uBAAuBC,WAAW;QACpDC,MAAM;QACNC,YAAY;UACVC,SAAStB,MAAM3B;QACjB;MACF,CAAA;IACF;EACF,GACA;IAACK;IAAeE;IAAQE;IAAOP;IAAsBC;GAAO;AAG9D,SACE,sBAAA,cAAC+C,OAAOC,SAAO,MACb,sBAAA,cAACD,OAAOE,OAAK;IAACC,YAAW;KAAW1C,EAAE,oBAAoB;IAAEY,IAAI+B;EAAe,CAAA,CAAA,GAC/E,sBAAA,cAACC,WAAAA;IACE,GAAGnD;IACJoD,kBAAkB,sBAAA,cAACN,OAAOO,OAAK;MAACC,SAAAA;;IAChCC,kBAAkB,sBAAA,cAACT,OAAOO,OAAK;MAACC,SAAAA;;IAChCvD,QAAQU;;AAIhB;",
6
+ "names": ["React", "useCallback", "useOperationInvoker", "LayoutOperation", "getSpacePath", "useAppGraph", "Trigger", "Graph", "ObservabilityOperation", "useClient", "Dialog", "useTranslation", "JoinPanel", "osTranslations", "JOIN_DIALOG", "meta", "id", "JoinDialog", "navigableCollections", "onDone", "props", "invokePromise", "useOperationInvoker", "client", "useClient", "graph", "useAppGraph", "t", "useTranslation", "handleDone", "useCallback", "result", "spaceKey", "Promise", "all", "LayoutOperation", "AddToast", "duration", "title", "ns", "closeLabel", "UpdateDialog", "state", "space", "spaces", "get", "trigger", "Trigger", "subscribe", "wake", "wait", "SwitchWorkspace", "subject", "getSpacePath", "target", "undefined", "Graph", "waitForPath", "catch", "Open", "Expose", "ObservabilityOperation", "SendEvent", "name", "properties", "spaceId", "Dialog", "Content", "Title", "classNames", "osTranslations", "JoinPanel", "exitActionParent", "Close", "asChild", "doneActionParent"]
7
+ }
@@ -0,0 +1,258 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ COMPOSER_SPACE_LOCK
4
+ } from "./chunk-GEGWQVZX.mjs";
5
+ import {
6
+ SpaceOperation
7
+ } from "./chunk-EVNSLSQS.mjs";
8
+ import {
9
+ meta
10
+ } from "./chunk-63N5JJXI.mjs";
11
+
12
+ // src/containers/MembersContainer/MembersContainer.tsx
13
+ import React, { useCallback, useMemo, useState } from "react";
14
+ import { QR } from "react-qr-rounded";
15
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
16
+ import { Obj } from "@dxos/echo";
17
+ import { Collection } from "@dxos/echo";
18
+ import { log } from "@dxos/log";
19
+ import { useConfig } from "@dxos/react-client";
20
+ import { useSpaceInvitations } from "@dxos/react-client/echo";
21
+ import { Invitation, InvitationEncoder } from "@dxos/react-client/invitations";
22
+ import { Button, Clipboard, Icon, Input, useId, useTranslation } from "@dxos/react-ui";
23
+ import { Settings } from "@dxos/react-ui-form";
24
+ import { AuthCode, BifurcatedAction, Centered, Emoji, InvitationList, SpaceMemberList, Viewport, translationKey as shellTranslationKey } from "@dxos/shell/react";
25
+ import { hexToEmoji } from "@dxos/util";
26
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/containers/MembersContainer/MembersContainer.tsx";
27
+ var activeActionKey = "dxos:react-shell/space-manager/active-action";
28
+ var handleInvitationEvent = (invitation, subscription) => {
29
+ const invitationCode = InvitationEncoder.encode(invitation);
30
+ if (invitation.state === Invitation.State.CONNECTING) {
31
+ log.info(JSON.stringify({
32
+ invitationCode,
33
+ authCode: invitation.authCode
34
+ }), void 0, {
35
+ F: __dxlog_file,
36
+ L: 40,
37
+ S: void 0,
38
+ C: (f, a) => f(...a)
39
+ });
40
+ subscription.unsubscribe();
41
+ }
42
+ };
43
+ var MembersContainer = ({ space, createInvitationUrl }) => {
44
+ const { t } = useTranslation(meta.id);
45
+ const config = useConfig();
46
+ const { invokePromise } = useOperationInvoker();
47
+ const invitations = useSpaceInvitations(space.key);
48
+ const visibleInvitations = invitations?.filter((invitation) => ![
49
+ Invitation.State.CANCELLED
50
+ ].includes(invitation.get().state));
51
+ const [activeAction, setInternalActiveAction] = useState(localStorage.getItem(activeActionKey) ?? "inviteMany");
52
+ const setActiveAction = (nextAction) => {
53
+ setInternalActiveAction(nextAction);
54
+ localStorage.setItem(activeActionKey, nextAction);
55
+ };
56
+ const target = space.properties[Collection.Collection.typename]?.target?.objects[0]?.target;
57
+ const locked = space.properties[COMPOSER_SPACE_LOCK];
58
+ const handleChangeLocked = useCallback(() => {
59
+ Obj.change(space.properties, (p) => {
60
+ p[COMPOSER_SPACE_LOCK] = !locked;
61
+ });
62
+ }, [
63
+ locked,
64
+ space
65
+ ]);
66
+ const inviteActions = useMemo(() => ({
67
+ inviteOne: {
68
+ label: t("invite one label", {
69
+ ns: shellTranslationKey
70
+ }),
71
+ description: t("invite one description", {
72
+ ns: shellTranslationKey
73
+ }),
74
+ icon: "ph--user-plus--regular",
75
+ testId: "membersContainer.inviteOne",
76
+ onClick: async () => {
77
+ const { data: invitation } = await invokePromise(SpaceOperation.Share, {
78
+ space,
79
+ type: Invitation.Type.INTERACTIVE,
80
+ authMethod: Invitation.AuthMethod.SHARED_SECRET,
81
+ multiUse: false,
82
+ target: target && Obj.getDXN(target).toString()
83
+ });
84
+ if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
85
+ const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
86
+ }
87
+ }
88
+ },
89
+ inviteMany: {
90
+ label: t("invite many label", {
91
+ ns: shellTranslationKey
92
+ }),
93
+ description: t("invite many description", {
94
+ ns: shellTranslationKey
95
+ }),
96
+ icon: "ph--users-three--regular",
97
+ testId: "membersContainer.inviteMany",
98
+ onClick: async () => {
99
+ const { data: invitation } = await invokePromise(SpaceOperation.Share, {
100
+ space,
101
+ type: Invitation.Type.DELEGATED,
102
+ authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
103
+ multiUse: true,
104
+ target: target && Obj.getDXN(target).toString()
105
+ });
106
+ if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
107
+ const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
108
+ }
109
+ }
110
+ }
111
+ }), [
112
+ t,
113
+ space,
114
+ target,
115
+ invokePromise
116
+ ]);
117
+ const [selectedInvitation, setSelectedInvitation] = useState(null);
118
+ const handleSend = (event) => {
119
+ setSelectedInvitation(event.invitation);
120
+ };
121
+ const handleBack = () => {
122
+ setSelectedInvitation(null);
123
+ };
124
+ return /* @__PURE__ */ React.createElement(Clipboard.Provider, null, /* @__PURE__ */ React.createElement(Settings.Root, null, /* @__PURE__ */ React.createElement(Settings.Section, {
125
+ title: t("members verbose label"),
126
+ description: t("members description")
127
+ }, /* @__PURE__ */ React.createElement(Settings.Frame, null, /* @__PURE__ */ React.createElement(Settings.FrameItem, {
128
+ title: t("members label")
129
+ }, /* @__PURE__ */ React.createElement(SpaceMemberList, {
130
+ spaceKey: space.key,
131
+ includeSelf: true
132
+ })), locked && /* @__PURE__ */ React.createElement(Settings.FrameItem, {
133
+ title: t("invitations label")
134
+ }, /* @__PURE__ */ React.createElement("p", {
135
+ className: "text-description mb-2"
136
+ }, t("locked space description"))), !locked && /* @__PURE__ */ React.createElement(Settings.FrameItem, {
137
+ title: t("invitations label")
138
+ }, selectedInvitation && /* @__PURE__ */ React.createElement(InvitationSection, {
139
+ ...selectedInvitation,
140
+ onBack: handleBack
141
+ }), !selectedInvitation && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", {
142
+ className: "text-description mb-2"
143
+ }, t("space invitation description")), /* @__PURE__ */ React.createElement(InvitationList, {
144
+ className: "mb-2",
145
+ send: handleSend,
146
+ invitations: visibleInvitations ?? [],
147
+ onClickRemove: (invitation) => invitation.cancel(),
148
+ createInvitationUrl
149
+ }), /* @__PURE__ */ React.createElement(BifurcatedAction, {
150
+ actions: inviteActions,
151
+ activeAction,
152
+ onChangeActiveAction: setActiveAction,
153
+ "data-testid": "membersContainer.createInvitation"
154
+ })))), /* @__PURE__ */ React.createElement("div", {
155
+ className: "justify-center p-0 mt-4 grid grid-cols-1 md:grid-cols-[1fr_min-content]"
156
+ }, /* @__PURE__ */ React.createElement(Settings.ItemInput, {
157
+ title: t("space locked label"),
158
+ description: t("space locked description")
159
+ }, /* @__PURE__ */ React.createElement(Input.Switch, {
160
+ checked: locked,
161
+ onCheckedChange: handleChangeLocked,
162
+ classNames: "justify-self-end"
163
+ }))))));
164
+ };
165
+ var InvitationSection = ({ state = Invitation.State.INIT, authCode, invitationId = "never", url = "never", onBack }) => {
166
+ const activeView = state < 0 ? "init" : state >= Invitation.State.CANCELLED ? "complete" : state >= Invitation.State.READY_FOR_AUTHENTICATION && authCode ? "auth-code" : "qr-code";
167
+ return /* @__PURE__ */ React.createElement(Viewport.Root, {
168
+ activeView
169
+ }, /* @__PURE__ */ React.createElement(Viewport.Views, null, /* @__PURE__ */ React.createElement(Viewport.View, {
170
+ id: "init"
171
+ }), /* @__PURE__ */ React.createElement(Viewport.View, {
172
+ id: "complete"
173
+ }, /* @__PURE__ */ React.createElement(InvitationComplete, {
174
+ statusValue: state
175
+ })), /* @__PURE__ */ React.createElement(Viewport.View, {
176
+ id: "auth-code"
177
+ }, /* @__PURE__ */ React.createElement(InvitationAuthCode, {
178
+ id: invitationId,
179
+ code: authCode ?? "never",
180
+ onCancel: onBack
181
+ })), /* @__PURE__ */ React.createElement(Viewport.View, {
182
+ id: "qr-code"
183
+ }, /* @__PURE__ */ React.createElement(InvitationQR, {
184
+ id: invitationId,
185
+ url,
186
+ onCancel: onBack
187
+ }))));
188
+ };
189
+ var InvitationQR = ({ id, url, onCancel }) => {
190
+ const { t } = useTranslation(shellTranslationKey);
191
+ const qrLabel = useId("members-container__qr-code");
192
+ const emoji = hexToEmoji(id);
193
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", {
194
+ className: "text-description"
195
+ }, t("qr code description", {
196
+ ns: meta.id
197
+ })), /* @__PURE__ */ React.createElement("div", {
198
+ role: "group",
199
+ className: "grid grid-cols-[1fr_min-content] my-2 gap-2"
200
+ }, /* @__PURE__ */ React.createElement("div", {
201
+ role: "none",
202
+ className: "w-full aspect-square relative text-description"
203
+ }, /* @__PURE__ */ React.createElement(QR, {
204
+ rounding: 100,
205
+ backgroundColor: "transparent",
206
+ color: "currentColor",
207
+ "aria-labelledby": qrLabel,
208
+ errorCorrectionLevel: "Q",
209
+ cutout: true
210
+ }, url ?? "never"), /* @__PURE__ */ React.createElement(Centered, null, /* @__PURE__ */ React.createElement(Emoji, {
211
+ text: emoji
212
+ }))), /* @__PURE__ */ React.createElement("span", {
213
+ id: qrLabel,
214
+ className: "sr-only"
215
+ }, t("qr label")), /* @__PURE__ */ React.createElement(Clipboard.Button, {
216
+ value: url ?? "never"
217
+ })), /* @__PURE__ */ React.createElement(Button, {
218
+ variant: "ghost",
219
+ onClick: onCancel
220
+ }, t("cancel label")));
221
+ };
222
+ var InvitationAuthCode = ({ id, code, onCancel }) => {
223
+ const { t } = useTranslation(shellTranslationKey);
224
+ const emoji = hexToEmoji(id);
225
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", {
226
+ className: "text-description"
227
+ }, t("auth other device emoji message")), emoji && /* @__PURE__ */ React.createElement(Emoji, {
228
+ text: emoji,
229
+ className: "mx-auto my-2 text-center"
230
+ }), /* @__PURE__ */ React.createElement("p", {
231
+ className: "text-description"
232
+ }, t("auth code message")), /* @__PURE__ */ React.createElement(AuthCode, {
233
+ code,
234
+ large: true,
235
+ classNames: "mx-auto my-2 text-center grow"
236
+ }), /* @__PURE__ */ React.createElement(Button, {
237
+ variant: "ghost",
238
+ onClick: onCancel
239
+ }, t("cancel label")));
240
+ };
241
+ var InvitationComplete = ({ statusValue }) => {
242
+ return statusValue > 0 ? /* @__PURE__ */ React.createElement(Icon, {
243
+ icon: "ph--check--regular",
244
+ size: 6,
245
+ classNames: "m-1.5"
246
+ }) : /* @__PURE__ */ React.createElement(Icon, {
247
+ icon: "ph--x--regular",
248
+ size: 6,
249
+ classNames: "m-1.5"
250
+ });
251
+ };
252
+
253
+ // src/containers/MembersContainer/index.ts
254
+ var MembersContainer_default = MembersContainer;
255
+ export {
256
+ MembersContainer_default as default
257
+ };
258
+ //# sourceMappingURL=MembersContainer-4PV3Z4BA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/MembersContainer/MembersContainer.tsx", "../../../src/containers/MembersContainer/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type Dispatch, type SetStateAction, useCallback, useMemo, useState } from 'react';\nimport { QR } from 'react-qr-rounded';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { Collection } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { useConfig } from '@dxos/react-client';\nimport { type Space, useSpaceInvitations } from '@dxos/react-client/echo';\nimport { type CancellableInvitationObservable, Invitation, InvitationEncoder } from '@dxos/react-client/invitations';\nimport { Button, Clipboard, Icon, Input, useId, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\nimport {\n type ActionMenuItem,\n AuthCode,\n BifurcatedAction,\n Centered,\n Emoji,\n InvitationList,\n SpaceMemberList,\n Viewport,\n translationKey as shellTranslationKey,\n} from '@dxos/shell/react';\nimport { hexToEmoji } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { SpaceOperation } from '../../types';\nimport { COMPOSER_SPACE_LOCK } from '../../util';\n\n// TODO(wittjosiah): Copied from Shell.\nconst activeActionKey = 'dxos:react-shell/space-manager/active-action';\n\nconst handleInvitationEvent = (invitation: Invitation, subscription: ZenObservable.Subscription) => {\n const invitationCode = InvitationEncoder.encode(invitation);\n if (invitation.state === Invitation.State.CONNECTING) {\n log.info(JSON.stringify({ invitationCode, authCode: invitation.authCode }));\n subscription.unsubscribe();\n }\n};\n\nexport type MembersContainerProps = {\n space: Space;\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport const MembersContainer = ({ space, createInvitationUrl }: MembersContainerProps) => {\n const { t } = useTranslation(meta.id);\n const config = useConfig();\n const { invokePromise } = useOperationInvoker();\n const invitations = useSpaceInvitations(space.key);\n const visibleInvitations = invitations?.filter(\n (invitation) => ![Invitation.State.CANCELLED].includes(invitation.get().state),\n );\n\n const [activeAction, setInternalActiveAction] = useState(localStorage.getItem(activeActionKey) ?? 'inviteMany');\n\n const setActiveAction = (nextAction: string) => {\n setInternalActiveAction(nextAction);\n localStorage.setItem(activeActionKey, nextAction);\n };\n\n // TODO(wittjosiah): Track which was the most recently viewed object.\n const target = space.properties[Collection.Collection.typename]?.target?.objects[0]?.target;\n\n const locked = space.properties[COMPOSER_SPACE_LOCK];\n const handleChangeLocked = useCallback(() => {\n Obj.change(space.properties, (p) => {\n p[COMPOSER_SPACE_LOCK] = !locked;\n });\n }, [locked, space]);\n\n const inviteActions = useMemo(\n (): Record<string, ActionMenuItem> => ({\n inviteOne: {\n label: t('invite one label', { ns: shellTranslationKey }),\n description: t('invite one description', { ns: shellTranslationKey }),\n icon: 'ph--user-plus--regular',\n testId: 'membersContainer.inviteOne',\n onClick: async () => {\n const { data: invitation } = await invokePromise(SpaceOperation.Share, {\n space,\n type: Invitation.Type.INTERACTIVE,\n authMethod: Invitation.AuthMethod.SHARED_SECRET,\n multiUse: false,\n target: target && Obj.getDXN(target).toString(),\n });\n if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {\n const subscription: ZenObservable.Subscription = (invitation as CancellableInvitationObservable).subscribe(\n (invitation: Invitation) => handleInvitationEvent(invitation, subscription),\n );\n }\n },\n },\n inviteMany: {\n label: t('invite many label', { ns: shellTranslationKey }),\n description: t('invite many description', { ns: shellTranslationKey }),\n icon: 'ph--users-three--regular',\n testId: 'membersContainer.inviteMany',\n onClick: async () => {\n const { data: invitation } = await invokePromise(SpaceOperation.Share, {\n space,\n type: Invitation.Type.DELEGATED,\n authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,\n multiUse: true,\n target: target && Obj.getDXN(target).toString(),\n });\n if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {\n const subscription: ZenObservable.Subscription = (invitation as CancellableInvitationObservable).subscribe(\n (invitation: Invitation) => handleInvitationEvent(invitation, subscription),\n );\n }\n },\n },\n }),\n [t, space, target, invokePromise],\n );\n\n const [selectedInvitation, setSelectedInvitation] = useState<CancellableInvitationObservable | null>(null);\n const handleSend = (event: { type: 'selectInvitation'; invitation: CancellableInvitationObservable }) => {\n setSelectedInvitation(event.invitation);\n };\n const handleBack = () => {\n setSelectedInvitation(null);\n };\n\n return (\n <Clipboard.Provider>\n <Settings.Root>\n <Settings.Section title={t('members verbose label')} description={t('members description')}>\n <Settings.Frame>\n <Settings.FrameItem title={t('members label')}>\n <SpaceMemberList spaceKey={space.key} includeSelf />\n </Settings.FrameItem>\n {locked && (\n <Settings.FrameItem title={t('invitations label')}>\n <p className='text-description mb-2'>{t('locked space description')}</p>\n </Settings.FrameItem>\n )}\n {!locked && (\n <Settings.FrameItem title={t('invitations label')}>\n {selectedInvitation && <InvitationSection {...selectedInvitation} onBack={handleBack} />}\n {!selectedInvitation && (\n <>\n <p className='text-description mb-2'>{t('space invitation description')}</p>\n <InvitationList\n className='mb-2'\n send={handleSend}\n invitations={visibleInvitations ?? []}\n onClickRemove={(invitation) => invitation.cancel()}\n createInvitationUrl={createInvitationUrl}\n />\n <BifurcatedAction\n actions={inviteActions}\n activeAction={activeAction}\n onChangeActiveAction={setActiveAction as Dispatch<SetStateAction<string>>}\n data-testid='membersContainer.createInvitation'\n />\n </>\n )}\n </Settings.FrameItem>\n )}\n </Settings.Frame>\n {/* TODO(wittjosiah): Make Settings.ItemInput & Settings.Frame compatible. */}\n <div className='justify-center p-0 mt-4 grid grid-cols-1 md:grid-cols-[1fr_min-content]'>\n <Settings.ItemInput title={t('space locked label')} description={t('space locked description')}>\n <Input.Switch checked={locked} onCheckedChange={handleChangeLocked} classNames='justify-self-end' />\n </Settings.ItemInput>\n </div>\n </Settings.Section>\n </Settings.Root>\n </Clipboard.Provider>\n );\n};\n\n// TODO(wittjosiah): Reconcile the below components with DevicesContainer in @dxos/plugin-client.\n\ntype InvitationComponentProps = Partial<\n Pick<Invitation, 'authCode' | 'invitationId'> & {\n state: Invitation.State;\n url: string;\n onBack: () => void;\n }\n>;\n\nconst InvitationSection = ({\n state = Invitation.State.INIT,\n authCode,\n invitationId = 'never',\n url = 'never',\n onBack,\n}: InvitationComponentProps) => {\n const activeView =\n state < 0\n ? 'init'\n : state >= Invitation.State.CANCELLED\n ? 'complete'\n : state >= Invitation.State.READY_FOR_AUTHENTICATION && authCode\n ? 'auth-code'\n : 'qr-code';\n return (\n <Viewport.Root activeView={activeView}>\n <Viewport.Views>\n <Viewport.View id='init'>\n {/* This view intentionally left blank while conditionally rendering the viewport. */}\n </Viewport.View>\n <Viewport.View id='complete'>\n <InvitationComplete statusValue={state} />\n </Viewport.View>\n <Viewport.View id='auth-code'>\n <InvitationAuthCode id={invitationId} code={authCode ?? 'never'} onCancel={onBack} />\n </Viewport.View>\n <Viewport.View id='qr-code'>\n <InvitationQR id={invitationId} url={url} onCancel={onBack} />\n </Viewport.View>\n </Viewport.Views>\n </Viewport.Root>\n );\n};\n\nconst InvitationQR = ({ id, url, onCancel }: { id: string; url: string; onCancel?: () => void }) => {\n const { t } = useTranslation(shellTranslationKey);\n const qrLabel = useId('members-container__qr-code');\n const emoji = hexToEmoji(id);\n return (\n <>\n <p className='text-description'>{t('qr code description', { ns: meta.id })}</p>\n <div role='group' className='grid grid-cols-[1fr_min-content] my-2 gap-2'>\n <div role='none' className='w-full aspect-square relative text-description'>\n <QR\n rounding={100}\n backgroundColor='transparent'\n color='currentColor'\n aria-labelledby={qrLabel}\n errorCorrectionLevel='Q'\n cutout={true}\n >\n {url ?? 'never'}\n </QR>\n <Centered>\n <Emoji text={emoji} />\n </Centered>\n </div>\n <span id={qrLabel} className='sr-only'>\n {t('qr label')}\n </span>\n <Clipboard.Button value={url ?? 'never'} />\n </div>\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </>\n );\n};\n\nconst InvitationAuthCode = ({ id, code, onCancel }: { id: string; code: string; onCancel?: () => void }) => {\n const { t } = useTranslation(shellTranslationKey);\n const emoji = hexToEmoji(id);\n\n return (\n <>\n <p className='text-description'>{t('auth other device emoji message')}</p>\n {emoji && <Emoji text={emoji} className='mx-auto my-2 text-center' />}\n <p className='text-description'>{t('auth code message')}</p>\n <AuthCode code={code} large classNames='mx-auto my-2 text-center grow' />\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </>\n );\n};\n\nconst InvitationComplete = ({ statusValue }: { statusValue: number }) => {\n return statusValue > 0 ? (\n <Icon icon='ph--check--regular' size={6} classNames='m-1.5' />\n ) : (\n <Icon icon='ph--x--regular' size={6} classNames='m-1.5' />\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { MembersContainer } from './MembersContainer';\n\nexport default MembersContainer;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "useState", "QR", "useOperationInvoker", "Obj", "Collection", "log", "useConfig", "useSpaceInvitations", "Invitation", "InvitationEncoder", "Button", "Clipboard", "Icon", "Input", "useId", "useTranslation", "Settings", "AuthCode", "BifurcatedAction", "Centered", "Emoji", "InvitationList", "SpaceMemberList", "Viewport", "translationKey", "shellTranslationKey", "hexToEmoji", "activeActionKey", "handleInvitationEvent", "invitation", "subscription", "invitationCode", "InvitationEncoder", "encode", "state", "Invitation", "State", "CONNECTING", "log", "info", "JSON", "stringify", "authCode", "unsubscribe", "MembersContainer", "space", "createInvitationUrl", "t", "useTranslation", "meta", "id", "config", "useConfig", "invokePromise", "useOperationInvoker", "invitations", "useSpaceInvitations", "key", "visibleInvitations", "filter", "CANCELLED", "includes", "get", "activeAction", "setInternalActiveAction", "useState", "localStorage", "getItem", "setActiveAction", "nextAction", "setItem", "target", "properties", "Collection", "typename", "objects", "locked", "COMPOSER_SPACE_LOCK", "handleChangeLocked", "useCallback", "Obj", "change", "p", "inviteActions", "useMemo", "inviteOne", "label", "ns", "shellTranslationKey", "description", "icon", "testId", "onClick", "data", "SpaceOperation", "Share", "type", "Type", "INTERACTIVE", "authMethod", "AuthMethod", "SHARED_SECRET", "multiUse", "getDXN", "toString", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "subscribe", "inviteMany", "DELEGATED", "KNOWN_PUBLIC_KEY", "selectedInvitation", "setSelectedInvitation", "handleSend", "event", "handleBack", "Clipboard", "Provider", "Settings", "Root", "Section", "title", "Frame", "FrameItem", "SpaceMemberList", "spaceKey", "includeSelf", "className", "InvitationSection", "onBack", "InvitationList", "send", "onClickRemove", "cancel", "BifurcatedAction", "actions", "onChangeActiveAction", "data-testid", "div", "ItemInput", "Input", "Switch", "checked", "onCheckedChange", "classNames", "INIT", "invitationId", "url", "activeView", "READY_FOR_AUTHENTICATION", "Viewport", "Views", "View", "InvitationComplete", "statusValue", "InvitationAuthCode", "code", "onCancel", "InvitationQR", "qrLabel", "useId", "emoji", "hexToEmoji", "role", "QR", "rounding", "backgroundColor", "color", "aria-labelledby", "errorCorrectionLevel", "cutout", "Centered", "Emoji", "text", "span", "Button", "value", "variant", "AuthCode", "large", "Icon", "size", "MembersContainer"]
7
+ }
@@ -0,0 +1,38 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ getSpaceDisplayName
4
+ } from "./chunk-GEGWQVZX.mjs";
5
+ import {
6
+ meta
7
+ } from "./chunk-63N5JJXI.mjs";
8
+
9
+ // src/containers/MenuFooter/MenuFooter.tsx
10
+ import React from "react";
11
+ import { getSpace } from "@dxos/client/echo";
12
+ import { useClient } from "@dxos/react-client";
13
+ import { DropdownMenu, Icon, toLocalizedString, useTranslation } from "@dxos/react-ui";
14
+ var MenuFooter = ({ object }) => {
15
+ const { t } = useTranslation(meta.id);
16
+ const client = useClient();
17
+ const space = getSpace(object);
18
+ const spaceName = space ? getSpaceDisplayName(space, {
19
+ personal: client.spaces.default === space
20
+ }) : "";
21
+ return space ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DropdownMenu.Separator, null), /* @__PURE__ */ React.createElement(DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ React.createElement("dl", {
22
+ className: "ps-2 mb-2 text-xs grid grid-cols-[max-content_1fr] gap-2"
23
+ }, /* @__PURE__ */ React.createElement("dt", {
24
+ className: "uppercase text-[.75em] tracking-wide font-medium mt-px self-start"
25
+ }, t("location label")), /* @__PURE__ */ React.createElement("dd", {
26
+ className: "line-clamp-3"
27
+ }, /* @__PURE__ */ React.createElement(Icon, {
28
+ icon: "ph--planet--regular",
29
+ classNames: "inline-block me-1"
30
+ }), toLocalizedString(spaceName, t)))) : null;
31
+ };
32
+
33
+ // src/containers/MenuFooter/index.ts
34
+ var MenuFooter_default = MenuFooter;
35
+ export {
36
+ MenuFooter_default as default
37
+ };
38
+ //# sourceMappingURL=MenuFooter-PXG2GV6A.mjs.map