@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,115 @@
1
+ // src/helpers/query.ts
2
+ import * as Array from "effect/Array";
3
+ import * as Effect from "effect/Effect";
4
+ import * as EffectFunction from "effect/Function";
5
+ import * as Match from "effect/Match";
6
+ import * as Option from "effect/Option";
7
+ import * as SchemaAST from "effect/SchemaAST";
8
+ import { DXN, Filter, Key, Query } from "@dxos/echo";
9
+ import { ReferenceAnnotationId, getTypeAnnotation, unwrapOptional } from "@dxos/echo/internal";
10
+ import { runAndForwardErrors } from "@dxos/effect";
11
+ import { log } from "@dxos/log";
12
+ import { Person } from "@dxos/types";
13
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/helpers/query.ts";
14
+ var evalQuery = (queryString) => {
15
+ const globals = {
16
+ Query,
17
+ Filter,
18
+ Person
19
+ };
20
+ try {
21
+ return new Function(...Object.keys(globals), `return ${queryString}`)(...Object.values(globals));
22
+ } catch (err) {
23
+ log.catch(err, void 0, {
24
+ F: __dxlog_file,
25
+ L: 33,
26
+ S: void 0,
27
+ C: (f, a) => f(...a)
28
+ });
29
+ return Query.select(Filter.nothing());
30
+ }
31
+ };
32
+ var resolveSchemaWithRegistry = (registry, query) => {
33
+ const resolve = Effect.fn(function* (dxn) {
34
+ const typename = DXN.parse(dxn).asTypeDXN()?.type;
35
+ if (!typename) {
36
+ return Option.none();
37
+ }
38
+ const query2 = registry.query({
39
+ typename,
40
+ location: [
41
+ "database",
42
+ "runtime"
43
+ ]
44
+ });
45
+ const schemas = yield* Effect.promise(() => query2.run());
46
+ return Array.head(schemas);
47
+ });
48
+ return resolveSchema(query, resolve).pipe(Effect.map((schema) => Option.getOrUndefined(schema)), runAndForwardErrors);
49
+ };
50
+ var resolveSchema = (query, resolve) => {
51
+ return Match.value(query).pipe(
52
+ Match.withReturnType(),
53
+ // TODO(wittjosiah): Reconcile with filter match?
54
+ Match.when({
55
+ type: "select"
56
+ }, ({ filter }) => typenameFromFilter(filter).pipe(Option.map((typename) => resolve(typename)), Option.getOrElse(() => Effect.succeed(Option.none())))),
57
+ Match.when({
58
+ type: "filter"
59
+ }, ({ filter }) => typenameFromFilter(filter).pipe(Option.map((typename) => resolve(typename)), Option.getOrElse(() => Effect.succeed(Option.none())))),
60
+ Match.when({
61
+ type: "reference-traversal"
62
+ }, ({ anchor, property }) => resolveSchema(anchor, resolve).pipe(Effect.map((base) => base.pipe(Option.map((schema) => SchemaAST.getPropertySignatures(schema.ast)), Option.flatMap((properties) => Array.findFirst(properties, (p) => p.name === property)), Option.flatMap((property2) => SchemaAST.getAnnotation(ReferenceAnnotationId)(unwrapOptional(property2))), Option.map((annotation) => annotation.typename))), Effect.flatMap(Option.match({
63
+ onNone: () => Effect.succeed(Option.none()),
64
+ onSome: (typename) => resolve(DXN.fromTypename(typename).toString())
65
+ })))),
66
+ Match.when({
67
+ type: "relation",
68
+ filter: Match.defined
69
+ }, ({ filter }) => typenameFromFilter(filter).pipe(Option.map((typename) => resolve(typename)), Option.getOrElse(() => Effect.succeed(Option.none())))),
70
+ Match.when({
71
+ type: "relation-traversal"
72
+ }, ({ anchor, direction }) => resolveSchema(anchor, resolve).pipe(Effect.map((base) => base.pipe(Option.map((schema) => getTypeAnnotation(schema)), Option.flatMap((annotation) => Option.fromNullable(direction === "source" ? annotation?.sourceSchema : annotation?.targetSchema)))), Effect.flatMap(Option.match({
73
+ onNone: () => Effect.succeed(Option.none()),
74
+ onSome: (typename) => resolve(typename)
75
+ })))),
76
+ Match.when({
77
+ type: "options"
78
+ }, ({ query: query2 }) => resolveSchema(query2, resolve)),
79
+ Match.orElse((_q) => {
80
+ return Effect.succeed(Option.none());
81
+ })
82
+ );
83
+ };
84
+ var typenameFromFilter = (filter) => Match.value(filter).pipe(Match.withReturnType(), Match.when({
85
+ type: "object"
86
+ }, ({ typename }) => Option.fromNullable(typename)), Match.when({
87
+ type: "and"
88
+ }, ({ filters }) => EffectFunction.pipe(filters, Array.map(typenameFromFilter), Array.findFirst(Option.isSome), Option.flatten)), Match.when({
89
+ type: "or"
90
+ }, ({ filters }) => EffectFunction.pipe(filters, Array.map(typenameFromFilter), Array.findFirst(Option.isSome), Option.flatten)), Match.orElse(() => Option.none()));
91
+ var getQueryTarget = (query, space) => {
92
+ return Match.value(query).pipe(Match.when({
93
+ type: "from"
94
+ }, ({ from }) => {
95
+ if (from._tag !== "scope") {
96
+ return space?.db;
97
+ }
98
+ const result = Option.fromNullable(from.scope.queues).pipe(Option.flatMap((queues) => Array.head(queues)), Option.flatMap((queueDxn) => Option.fromNullable(DXN.tryParse(String(queueDxn)))), Option.flatMap((parsed) => {
99
+ const q = parsed.asQueueDXN();
100
+ if (!q || !Key.ObjectId.isValid(q.queueId)) return Option.none();
101
+ return Option.fromNullable(space?.queues.get(parsed));
102
+ }));
103
+ if (from.scope.queues?.length && Option.isNone(result)) {
104
+ return void 0;
105
+ }
106
+ return Option.getOrElse(result, () => space?.db);
107
+ }), Match.orElse(() => space?.db));
108
+ };
109
+
110
+ export {
111
+ evalQuery,
112
+ resolveSchemaWithRegistry,
113
+ getQueryTarget
114
+ };
115
+ //# sourceMappingURL=chunk-SJCNERZI.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/query.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as EffectFunction from 'effect/Function';\nimport * as Match from 'effect/Match';\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { DXN, Filter, Key, Query, type QueryAST, type SchemaRegistry } from '@dxos/echo';\nimport {\n ReferenceAnnotationId,\n type ReferenceAnnotationValue,\n getTypeAnnotation,\n unwrapOptional,\n} from '@dxos/echo/internal';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\nimport { Person } from '@dxos/types';\n\n// TODO(wittjosiah): Factor out and add tests.\n// TODO(wittjosiah): Support arbitrary type imports.\nexport const evalQuery = (queryString: string): Query.Any => {\n const globals = { Query, Filter, Person };\n try {\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n return new Function(...Object.keys(globals), `return ${queryString}`)(...Object.values(globals));\n } catch (err) {\n log.catch(err);\n return Query.select(Filter.nothing());\n }\n};\n\nexport const resolveSchemaWithRegistry = (registry: SchemaRegistry.SchemaRegistry, query: QueryAST.Query) => {\n const resolve = Effect.fn(function* (dxn: string) {\n const typename = DXN.parse(dxn).asTypeDXN()?.type;\n if (!typename) {\n return Option.none();\n }\n\n const query = registry.query({ typename, location: ['database', 'runtime'] });\n const schemas = yield* Effect.promise(() => query.run());\n return Array.head(schemas);\n });\n\n return resolveSchema(query, resolve).pipe(\n Effect.map((schema) => Option.getOrUndefined(schema)),\n runAndForwardErrors,\n );\n};\n\nconst resolveSchema = (\n query: QueryAST.Query,\n resolve: (dxn: string) => Effect.Effect<Option.Option<Schema.Schema.AnyNoContext>>,\n): Effect.Effect<Option.Option<Schema.Schema.AnyNoContext>> => {\n return Match.value(query).pipe(\n Match.withReturnType<Effect.Effect<Option.Option<Schema.Schema.AnyNoContext>>>(),\n // TODO(wittjosiah): Reconcile with filter match?\n Match.when({ type: 'select' }, ({ filter }) =>\n typenameFromFilter(filter).pipe(\n Option.map((typename) => resolve(typename)),\n Option.getOrElse(() => Effect.succeed(Option.none<Schema.Schema.AnyNoContext>())),\n ),\n ),\n Match.when({ type: 'filter' }, ({ filter }) =>\n typenameFromFilter(filter).pipe(\n Option.map((typename) => resolve(typename)),\n Option.getOrElse(() => Effect.succeed(Option.none<Schema.Schema.AnyNoContext>())),\n ),\n ),\n Match.when({ type: 'reference-traversal' }, ({ anchor, property }) =>\n resolveSchema(anchor, resolve).pipe(\n Effect.map((base) =>\n base.pipe(\n Option.map((schema) => SchemaAST.getPropertySignatures(schema.ast)),\n Option.flatMap((properties) => Array.findFirst(properties, (p) => p.name === property)),\n Option.flatMap((property) =>\n SchemaAST.getAnnotation<ReferenceAnnotationValue>(ReferenceAnnotationId)(unwrapOptional(property)),\n ),\n Option.map((annotation) => annotation.typename),\n ),\n ),\n Effect.flatMap(\n Option.match({\n onNone: () => Effect.succeed(Option.none()),\n onSome: (typename) => resolve(DXN.fromTypename(typename).toString()),\n }),\n ),\n ),\n ),\n Match.when({ type: 'relation', filter: Match.defined }, ({ filter }) =>\n typenameFromFilter(filter).pipe(\n Option.map((typename) => resolve(typename)),\n Option.getOrElse(() => Effect.succeed(Option.none<Schema.Schema.AnyNoContext>())),\n ),\n ),\n Match.when({ type: 'relation-traversal' }, ({ anchor, direction }) =>\n resolveSchema(anchor, resolve).pipe(\n Effect.map((base) =>\n base.pipe(\n Option.map((schema) => getTypeAnnotation(schema)),\n Option.flatMap((annotation) =>\n Option.fromNullable(direction === 'source' ? annotation?.sourceSchema : annotation?.targetSchema),\n ),\n ),\n ),\n Effect.flatMap(\n Option.match({\n onNone: () => Effect.succeed(Option.none()),\n onSome: (typename) => resolve(typename),\n }),\n ),\n ),\n ),\n Match.when({ type: 'options' }, ({ query }) => resolveSchema(query, resolve)),\n Match.orElse((_q) => {\n // TODO(wittjosiah): Implement other cases.\n return Effect.succeed(Option.none());\n }),\n );\n};\n\nconst typenameFromFilter = (filter: QueryAST.Filter): Option.Option<string> =>\n Match.value(filter).pipe(\n Match.withReturnType<Option.Option<string>>(),\n Match.when({ type: 'object' }, ({ typename }) => Option.fromNullable(typename)),\n Match.when({ type: 'and' }, ({ filters }) =>\n EffectFunction.pipe(filters, Array.map(typenameFromFilter), Array.findFirst(Option.isSome), Option.flatten),\n ),\n Match.when({ type: 'or' }, ({ filters }) =>\n EffectFunction.pipe(filters, Array.map(typenameFromFilter), Array.findFirst(Option.isSome), Option.flatten),\n ),\n Match.orElse(() => Option.none()),\n );\n\n// TODO(wittjosiah): Currently assumes from scope is at the top-level of the ast.\nexport const getQueryTarget = (query: QueryAST.Query, space?: Space) => {\n return Match.value(query).pipe(\n Match.when({ type: 'from' }, ({ from }) => {\n if (from._tag !== 'scope') {\n return space?.db;\n }\n const result = Option.fromNullable(from.scope.queues).pipe(\n Option.flatMap((queues) => Array.head(queues)),\n Option.flatMap((queueDxn) => Option.fromNullable(DXN.tryParse(String(queueDxn)))),\n Option.flatMap((parsed) => {\n const q = parsed.asQueueDXN();\n if (!q || !Key.ObjectId.isValid(q.queueId)) return Option.none();\n return Option.fromNullable(space?.queues.get(parsed));\n }),\n );\n // Skip query when a requested queue is not found (structurally invalid DXN or valid DXN\n // referencing a queue not present in space.queues, e.g. not yet synced) to avoid 400 errors.\n // TODO(wittjosiah): Can we handle this upstream?\n if (from.scope.queues?.length && Option.isNone(result)) {\n return undefined;\n }\n return Option.getOrElse(result, () => space?.db);\n }),\n Match.orElse(() => space?.db),\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Array", "Effect", "EffectFunction", "Match", "Option", "SchemaAST", "DXN", "Filter", "Key", "Query", "ReferenceAnnotationId", "getTypeAnnotation", "unwrapOptional", "runAndForwardErrors", "log", "Person", "evalQuery", "queryString", "globals", "Function", "Object", "keys", "values", "err", "catch", "select", "nothing", "resolveSchemaWithRegistry", "registry", "query", "resolve", "fn", "dxn", "typename", "parse", "asTypeDXN", "type", "none", "location", "schemas", "promise", "run", "head", "resolveSchema", "pipe", "map", "schema", "getOrUndefined", "value", "withReturnType", "when", "filter", "typenameFromFilter", "getOrElse", "succeed", "anchor", "property", "base", "getPropertySignatures", "ast", "flatMap", "properties", "findFirst", "p", "name", "getAnnotation", "annotation", "match", "onNone", "onSome", "fromTypename", "toString", "defined", "direction", "fromNullable", "sourceSchema", "targetSchema", "orElse", "_q", "filters", "isSome", "flatten", "getQueryTarget", "space", "from", "_tag", "db", "result", "scope", "queues", "queueDxn", "tryParse", "String", "parsed", "q", "asQueueDXN", "ObjectId", "isValid", "queueId", "get", "length", "isNone", "undefined"]
7
+ }
@@ -1,13 +1,13 @@
1
1
  // src/capabilities/identity-created/index.ts
2
2
  import { Capability } from "@dxos/app-framework";
3
- var IdentityCreated = Capability.lazy("IdentityCreated", () => import("./identity-created-VCFYLSBB.mjs"));
3
+ var IdentityCreated = Capability.lazy("IdentityCreated", () => import("./identity-created-ETXNQYR6.mjs"));
4
4
 
5
5
  // src/capabilities/operation-resolver/index.ts
6
6
  import { Capability as Capability2 } from "@dxos/app-framework";
7
- var OperationResolver = Capability2.lazy("OperationResolver", () => import("./operation-resolver-SIRQT36Z.mjs"));
7
+ var OperationResolver = Capability2.lazy("OperationResolver", () => import("./operation-resolver-D4LHB4D4.mjs"));
8
8
 
9
9
  export {
10
10
  IdentityCreated,
11
11
  OperationResolver
12
12
  };
13
- //# sourceMappingURL=chunk-AWVAX26X.mjs.map
13
+ //# sourceMappingURL=chunk-SSTUPFZ2.mjs.map
@@ -0,0 +1,168 @@
1
+ import {
2
+ SpaceCapabilities
3
+ } from "./chunk-6IT5IBB5.mjs";
4
+ import {
5
+ meta
6
+ } from "./chunk-CBWGVOJE.mjs";
7
+
8
+ // src/containers/SpacePresence/SpacePresence.tsx
9
+ import React, { forwardRef, useCallback, useEffect, useState } from "react";
10
+ import { useAtomCapability } from "@dxos/app-framework/ui";
11
+ import { generateName } from "@dxos/display-name";
12
+ import { Obj } from "@dxos/echo";
13
+ import { PublicKey } from "@dxos/react-client";
14
+ import { useMembers, useSpace } from "@dxos/react-client/echo";
15
+ import { useIdentity } from "@dxos/react-client/halo";
16
+ import { Avatar, List, ListItem, Popover, Tooltip, useDefaultValue, useTranslation } from "@dxos/react-ui";
17
+ import { AttentionGlyph, useAttention } from "@dxos/react-ui-attention";
18
+ import { ComplexMap, keyToFallback } from "@dxos/util";
19
+ var REFRESH_INTERVAL = 5e3;
20
+ var ACTIVITY_DURATION = 3e4;
21
+ var noViewers = new ComplexMap(PublicKey.hash);
22
+ var getName = (identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());
23
+ var SpacePresence = ({ object, spaceId }) => {
24
+ const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);
25
+ const identity = useIdentity();
26
+ const db = Obj.getDatabase(object);
27
+ const space = useSpace(spaceId ?? db?.spaceId);
28
+ const spaceMembers = useMembers(spaceId ?? db?.spaceId);
29
+ const [_moment, setMoment] = useState(Date.now());
30
+ useEffect(() => {
31
+ const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
32
+ return () => clearInterval(interval);
33
+ }, []);
34
+ const memberOnline = useCallback((member) => member.presence === 1, []);
35
+ const memberIsNotSelf = useCallback((member) => !identity?.identityKey.equals(member.identity.identityKey), [
36
+ identity?.identityKey
37
+ ]);
38
+ if (!identity || !ephemeral || !space) {
39
+ return null;
40
+ }
41
+ const currentObjectViewers = ephemeral.viewersByObject[Obj.getDXN(object).toString()] ?? noViewers;
42
+ const membersForObject = spaceMembers.filter((member) => memberOnline(member) && memberIsNotSelf(member)).filter((member) => currentObjectViewers.has(member.identity.identityKey)).map((member) => {
43
+ const objectView = currentObjectViewers.get(member.identity.identityKey);
44
+ const lastSeen = objectView?.lastSeen ?? -Infinity;
45
+ const currentlyAttended = objectView?.currentlyAttended ?? false;
46
+ return {
47
+ ...member,
48
+ currentlyAttended,
49
+ lastSeen
50
+ };
51
+ }).toSorted((a, b) => a.lastSeen - b.lastSeen);
52
+ return /* @__PURE__ */ React.createElement(FullPresence, {
53
+ members: membersForObject
54
+ });
55
+ };
56
+ var FullPresence = (props) => {
57
+ const { size = 9, onMemberClick } = props;
58
+ const members = useDefaultValue(props.members, () => []);
59
+ if (members.length === 0) {
60
+ return null;
61
+ }
62
+ return /* @__PURE__ */ React.createElement("div", {
63
+ className: "dx-avatar-group",
64
+ "data-testid": "spacePlugin.presence"
65
+ }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
66
+ key: member.identity.identityKey.toHex(),
67
+ side: "bottom",
68
+ content: getName(member.identity),
69
+ className: "grid focus:outline-hidden"
70
+ }, /* @__PURE__ */ React.createElement(PresenceAvatar, {
71
+ identity: member.identity,
72
+ match: member.currentlyAttended,
73
+ index: members.length - i,
74
+ onClick: () => onMemberClick?.(member),
75
+ size
76
+ }))), members.length > 3 && /* @__PURE__ */ React.createElement(Popover.Root, null, /* @__PURE__ */ React.createElement(Popover.Trigger, {
77
+ className: "grid focus:outline-hidden"
78
+ }, /* @__PURE__ */ React.createElement(Avatar.Root, null, /* @__PURE__ */ React.createElement(Avatar.Content, {
79
+ status: "inactive",
80
+ style: {
81
+ zIndex: members.length - 4
82
+ },
83
+ fallback: `+${members.length - 3}`,
84
+ size
85
+ }))), /* @__PURE__ */ React.createElement(Popover.Portal, null, /* @__PURE__ */ React.createElement(Popover.Content, {
86
+ side: "bottom"
87
+ }, /* @__PURE__ */ React.createElement(Popover.Arrow, null), /* @__PURE__ */ React.createElement(Popover.Viewport, {
88
+ classNames: "max-h-56"
89
+ }, /* @__PURE__ */ React.createElement(List, null, members.map((member) => /* @__PURE__ */ React.createElement(ListItem.Root, {
90
+ key: member.identity.identityKey.toHex(),
91
+ classNames: "flex gap-2 items-center cursor-pointer mb-2",
92
+ onClick: () => onMemberClick?.(member),
93
+ "data-testid": "identity-list-item"
94
+ }, /* @__PURE__ */ React.createElement(PresenceAvatar, {
95
+ identity: member.identity,
96
+ size,
97
+ showName: true,
98
+ match: member.currentlyAttended
99
+ })))))))));
100
+ };
101
+ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, index, onClick, size }, forwardedRef) => {
102
+ const status = match ? "current" : "active";
103
+ const fallbackValue = keyToFallback(identity.identityKey);
104
+ return /* @__PURE__ */ React.createElement(Avatar.Root, null, /* @__PURE__ */ React.createElement(Avatar.Content, {
105
+ status,
106
+ hue: identity.profile?.data?.hue || fallbackValue.hue,
107
+ "data-testid": "spacePlugin.presence.member",
108
+ "data-status": status,
109
+ size,
110
+ ...index ? {
111
+ style: {
112
+ zIndex: index
113
+ }
114
+ } : {},
115
+ onClick,
116
+ fallback: identity.profile?.data?.emoji || fallbackValue.emoji,
117
+ ref: forwardedRef
118
+ }), /* @__PURE__ */ React.createElement(Avatar.Label, {
119
+ classNames: showName ? "text-sm truncate px-2" : "sr-only"
120
+ }, getName(identity)));
121
+ });
122
+ var SmallPresenceLive = ({ id, open, viewers }) => {
123
+ const { hasAttention, isAncestor, isRelated } = useAttention(id);
124
+ const attended = hasAttention || isRelated;
125
+ const containsAttended = isAncestor && !open;
126
+ const getActiveViewers = (viewers2) => {
127
+ const moment = Date.now();
128
+ return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
129
+ };
130
+ const [activeViewers, setActiveViewers] = useState(viewers ? getActiveViewers(viewers) : []);
131
+ useEffect(() => {
132
+ if (viewers) {
133
+ setActiveViewers(getActiveViewers(viewers));
134
+ const interval = setInterval(() => {
135
+ setActiveViewers(getActiveViewers(viewers));
136
+ }, REFRESH_INTERVAL);
137
+ return () => clearInterval(interval);
138
+ }
139
+ }, [
140
+ viewers
141
+ ]);
142
+ return /* @__PURE__ */ React.createElement(SmallPresence, {
143
+ count: activeViewers.length,
144
+ attended,
145
+ containsAttended
146
+ });
147
+ };
148
+ var SmallPresence = ({ count = 0, attended, containsAttended }) => {
149
+ const { t } = useTranslation(meta.id);
150
+ return /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
151
+ asChild: true,
152
+ content: t("presence label", {
153
+ count
154
+ }),
155
+ side: "bottom"
156
+ }, /* @__PURE__ */ React.createElement(AttentionGlyph, {
157
+ attended,
158
+ containsAttended,
159
+ presence: count > 1 ? "many" : count === 1 ? "one" : "none",
160
+ classNames: "self-center mx-1"
161
+ }));
162
+ };
163
+
164
+ export {
165
+ SpacePresence,
166
+ SmallPresenceLive
167
+ };
168
+ //# sourceMappingURL=chunk-UYOJYBGW.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/SpacePresence/SpacePresence.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { forwardRef, useCallback, useEffect, useState } from 'react';\n\nimport { useAtomCapability } from '@dxos/app-framework/ui';\nimport { generateName } from '@dxos/display-name';\nimport { type Key, Obj } from '@dxos/echo';\nimport { PublicKey } from '@dxos/react-client';\nimport { type SpaceMember, useMembers, useSpace } from '@dxos/react-client/echo';\nimport { type Identity, useIdentity } from '@dxos/react-client/halo';\nimport {\n Avatar,\n type AvatarContentProps,\n type DxAvatar,\n List,\n ListItem,\n Popover,\n type Size,\n type ThemedClassName,\n Tooltip,\n useDefaultValue,\n useTranslation,\n} from '@dxos/react-ui';\nimport { AttentionGlyph, type AttentionGlyphProps, useAttention } from '@dxos/react-ui-attention';\nimport { ComplexMap, keyToFallback } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { type ObjectViewerProps, SpaceCapabilities } from '../../types';\n\n// TODO(thure): Get/derive these values from protocol\nconst REFRESH_INTERVAL = 5000;\nconst ACTIVITY_DURATION = 30_000;\n\n// TODO(thure): This is chiefly meant to satisfy TS & provide an empty map after `deepSignal` interactions.\nconst noViewers = new ComplexMap<PublicKey, ObjectViewerProps>(PublicKey.hash);\n\n// TODO(wittjosiah): Factor out?\nconst getName = (identity: Identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());\n\nexport type SpacePresenceProps = {\n object: Obj.Unknown;\n spaceId?: Key.SpaceId;\n};\n\nexport const SpacePresence = ({ object, spaceId }: SpacePresenceProps) => {\n const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);\n const identity = useIdentity();\n const db = Obj.getDatabase(object);\n const space = useSpace(spaceId ?? db?.spaceId);\n const spaceMembers = useMembers(spaceId ?? db?.spaceId);\n\n const [_moment, setMoment] = useState(Date.now());\n\n // NOTE(thure): This is necessary so Presence updates without any underlying data updating.\n useEffect(() => {\n const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);\n return () => clearInterval(interval);\n }, []);\n\n const memberOnline = useCallback((member: SpaceMember) => member.presence === 1, []);\n const memberIsNotSelf = useCallback(\n (member: SpaceMember) => !identity?.identityKey.equals(member.identity.identityKey),\n [identity?.identityKey],\n );\n\n // TODO(thure): Could it be a smell to return early when there are interactions with `deepSignal` later, since it\n // prevents reactivity?\n if (!identity || !ephemeral || !space) {\n return null;\n }\n\n const currentObjectViewers = ephemeral.viewersByObject[Obj.getDXN(object).toString()] ?? noViewers;\n\n const membersForObject = spaceMembers\n .filter((member) => memberOnline(member) && memberIsNotSelf(member))\n .filter((member) => currentObjectViewers.has(member.identity.identityKey))\n .map((member) => {\n const objectView = currentObjectViewers.get(member.identity.identityKey);\n const lastSeen = objectView?.lastSeen ?? -Infinity;\n const currentlyAttended = objectView?.currentlyAttended ?? false;\n\n return {\n ...member,\n currentlyAttended,\n lastSeen,\n };\n })\n .toSorted((a, b) => a.lastSeen - b.lastSeen);\n\n return <FullPresence members={membersForObject} />;\n};\n\nexport type Member = SpaceMember & {\n /**\n * Last time a member was seen on this object.\n */\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type MemberPresenceProps = ThemedClassName<{\n size?: Size;\n members?: Member[];\n showCount?: boolean;\n onMemberClick?: (member: Member) => void;\n}>;\n\nexport const FullPresence = (props: MemberPresenceProps) => {\n const { size = 9, onMemberClick } = props;\n const members = useDefaultValue(props.members, () => []);\n\n if (members.length === 0) {\n return null;\n }\n\n return (\n <div className='dx-avatar-group' data-testid='spacePlugin.presence'>\n {members.slice(0, 3).map((member, i) => (\n <Tooltip.Trigger\n key={member.identity.identityKey.toHex()}\n side='bottom'\n content={getName(member.identity)}\n className='grid focus:outline-hidden'\n >\n <PresenceAvatar\n identity={member.identity}\n match={member.currentlyAttended} // TODO(Zan): Match always true now we're showing 'members viewing current object'.\n index={members.length - i}\n onClick={() => onMemberClick?.(member)}\n size={size}\n />\n </Tooltip.Trigger>\n ))}\n\n {members.length > 3 && (\n <Popover.Root>\n <Popover.Trigger className='grid focus:outline-hidden'>\n <Avatar.Root>\n {/* TODO(wittjosiah): Make text fit. */}\n <Avatar.Content\n status='inactive'\n style={{ zIndex: members.length - 4 }}\n fallback={`+${members.length - 3}`}\n size={size}\n />\n </Avatar.Root>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content side='bottom'>\n <Popover.Arrow />\n <Popover.Viewport classNames='max-h-56'>\n <List>\n {members.map((member) => (\n <ListItem.Root\n key={member.identity.identityKey.toHex()}\n classNames='flex gap-2 items-center cursor-pointer mb-2'\n onClick={() => onMemberClick?.(member)}\n data-testid='identity-list-item'\n >\n {/* TODO(Zan): Match always true now we're showing 'members viewing current object'. */}\n <PresenceAvatar\n identity={member.identity}\n size={size}\n showName\n match={member.currentlyAttended}\n />\n </ListItem.Root>\n ))}\n </List>\n </Popover.Viewport>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )}\n </div>\n );\n};\n\ntype PresenceAvatarProps = Pick<AvatarContentProps, 'size'> & {\n identity: Identity;\n showName?: boolean;\n match?: boolean;\n index?: number;\n onClick?: () => void;\n};\n\nconst PresenceAvatar = forwardRef<DxAvatar, PresenceAvatarProps>(\n ({ identity, showName, match, index, onClick, size }, forwardedRef) => {\n const status = match ? 'current' : 'active';\n const fallbackValue = keyToFallback(identity.identityKey);\n return (\n <Avatar.Root>\n <Avatar.Content\n status={status}\n hue={identity.profile?.data?.hue || fallbackValue.hue}\n data-testid='spacePlugin.presence.member'\n data-status={status}\n size={size}\n {...(index ? { style: { zIndex: index } } : {})}\n onClick={onClick}\n fallback={identity.profile?.data?.emoji || fallbackValue.emoji}\n ref={forwardedRef}\n />\n <Avatar.Label classNames={showName ? 'text-sm truncate px-2' : 'sr-only'}>{getName(identity)}</Avatar.Label>\n </Avatar.Root>\n );\n },\n);\n\nexport type SmallPresenceLiveProps = {\n id?: string;\n open?: boolean;\n viewers?: ComplexMap<PublicKey, ObjectViewerProps>;\n};\n\nexport const SmallPresenceLive = ({ id, open, viewers }: SmallPresenceLiveProps) => {\n const { hasAttention, isAncestor, isRelated } = useAttention(id);\n const attended = hasAttention || isRelated;\n const containsAttended = isAncestor && !open;\n const getActiveViewers = (viewers: ComplexMap<PublicKey, ObjectViewerProps>): ObjectViewerProps[] => {\n const moment = Date.now();\n return Array.from<ObjectViewerProps>(viewers.values()).filter(\n (viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION,\n );\n };\n\n const [activeViewers, setActiveViewers] = useState(viewers ? getActiveViewers(viewers) : []);\n\n useEffect(() => {\n if (viewers) {\n setActiveViewers(getActiveViewers(viewers));\n const interval = setInterval(() => {\n setActiveViewers(getActiveViewers(viewers));\n }, REFRESH_INTERVAL);\n return () => clearInterval(interval);\n }\n }, [viewers]);\n\n return <SmallPresence count={activeViewers.length} attended={attended} containsAttended={containsAttended} />;\n};\n\nexport type SmallPresenceProps = {\n count?: number;\n} & Pick<AttentionGlyphProps, 'attended' | 'containsAttended'>;\n\nexport const SmallPresence = ({ count = 0, attended, containsAttended }: SmallPresenceProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <Tooltip.Trigger asChild content={t('presence label', { count })} side='bottom'>\n <AttentionGlyph\n attended={attended}\n containsAttended={containsAttended}\n presence={count > 1 ? 'many' : count === 1 ? 'one' : 'none'}\n classNames='self-center mx-1'\n />\n </Tooltip.Trigger>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "forwardRef", "useCallback", "useEffect", "useState", "useAtomCapability", "generateName", "Obj", "PublicKey", "useMembers", "useSpace", "useIdentity", "Avatar", "List", "ListItem", "Popover", "Tooltip", "useDefaultValue", "useTranslation", "AttentionGlyph", "useAttention", "ComplexMap", "keyToFallback", "REFRESH_INTERVAL", "ACTIVITY_DURATION", "noViewers", "ComplexMap", "PublicKey", "hash", "getName", "identity", "profile", "displayName", "generateName", "identityKey", "toHex", "SpacePresence", "object", "spaceId", "ephemeral", "useAtomCapability", "SpaceCapabilities", "EphemeralState", "useIdentity", "db", "Obj", "getDatabase", "space", "useSpace", "spaceMembers", "useMembers", "_moment", "setMoment", "useState", "Date", "now", "useEffect", "interval", "setInterval", "clearInterval", "memberOnline", "useCallback", "member", "presence", "memberIsNotSelf", "equals", "currentObjectViewers", "viewersByObject", "getDXN", "toString", "membersForObject", "filter", "has", "map", "objectView", "get", "lastSeen", "currentlyAttended", "toSorted", "a", "b", "FullPresence", "members", "props", "size", "onMemberClick", "useDefaultValue", "length", "div", "className", "data-testid", "slice", "i", "Tooltip", "Trigger", "key", "side", "content", "PresenceAvatar", "match", "index", "onClick", "Popover", "Root", "Avatar", "Content", "status", "style", "zIndex", "fallback", "Portal", "Arrow", "Viewport", "classNames", "List", "ListItem", "showName", "forwardRef", "forwardedRef", "fallbackValue", "keyToFallback", "hue", "data", "data-status", "emoji", "ref", "Label", "SmallPresenceLive", "id", "open", "viewers", "hasAttention", "isAncestor", "isRelated", "useAttention", "attended", "containsAttended", "getActiveViewers", "moment", "Array", "from", "values", "viewer", "activeViewers", "setActiveViewers", "SmallPresence", "count", "t", "useTranslation", "meta", "asChild", "AttentionGlyph"]
7
+ }
@@ -1,21 +1,23 @@
1
1
  import {
2
2
  IdentityCreated,
3
3
  OperationResolver
4
- } from "../chunk-AWVAX26X.mjs";
4
+ } from "../chunk-SSTUPFZ2.mjs";
5
5
  import {
6
6
  SpaceEvents
7
- } from "../chunk-CCRSHECL.mjs";
7
+ } from "../chunk-6IT5IBB5.mjs";
8
8
  import {
9
9
  meta
10
- } from "../chunk-HSMQFM57.mjs";
10
+ } from "../chunk-CBWGVOJE.mjs";
11
11
 
12
12
  // src/cli/plugin.ts
13
13
  import * as Effect17 from "effect/Effect";
14
- import { Capability, Common as Common12, Plugin as Plugin2 } from "@dxos/app-framework";
14
+ import { ActivationEvents, Capability, Plugin as Plugin2 } from "@dxos/app-framework";
15
+ import { AppPlugin } from "@dxos/app-toolkit";
15
16
  import { Tag } from "@dxos/echo";
17
+ import { Collection as Collection2 } from "@dxos/echo";
16
18
  import { ClientEvents } from "@dxos/plugin-client/types";
17
- import { Collection as Collection2, DataTypes } from "@dxos/schema";
18
- import { AnchoredTo, Employer, Event, HasConnection, HasRelationship, HasSubject, Organization, Person, Project, Task } from "@dxos/types";
19
+ import { DataTypes } from "@dxos/schema";
20
+ import { AnchoredTo, Employer, Event, HasConnection, HasRelationship, HasSubject, Organization, Person, Pipeline, Task } from "@dxos/types";
19
21
 
20
22
  // src/cli/commands/database/index.ts
21
23
  import * as Command5 from "@effect/cli/Command";
@@ -27,12 +29,13 @@ import * as Prompt from "@effect/cli/Prompt";
27
29
  import * as Console from "effect/Console";
28
30
  import * as Effect from "effect/Effect";
29
31
  import * as Option from "effect/Option";
30
- import { Common as AppFrameworkCommon, Plugin } from "@dxos/app-framework";
32
+ import { Plugin } from "@dxos/app-framework";
33
+ import { AppActivationEvents, AppCapabilities } from "@dxos/app-toolkit";
31
34
  import { CommandConfig, Common, flushAndSync, print, spaceLayer } from "@dxos/cli-util";
32
35
  import { SpaceProperties } from "@dxos/client/echo";
33
36
  import { Database, Filter, Obj, Ref, Type } from "@dxos/echo";
37
+ import { Collection } from "@dxos/echo";
34
38
  import { EntityKind, getTypeAnnotation } from "@dxos/echo/internal";
35
- import { Collection } from "@dxos/schema";
36
39
 
37
40
  // src/cli/commands/database/util.ts
38
41
  import { FormBuilder } from "@dxos/cli-util";
@@ -58,13 +61,13 @@ var add = Command.make("add", {
58
61
  const { json } = yield* CommandConfig;
59
62
  const manager = yield* Plugin.Service;
60
63
  const { db } = yield* Database.Service;
61
- yield* manager.activate(AppFrameworkCommon.ActivationEvent.SetupMetadata);
64
+ yield* manager.activate(AppActivationEvents.SetupMetadata);
62
65
  const resolve = (typename2) => {
63
- const metadata2 = manager.capabilities.getAll(AppFrameworkCommon.Capability.Metadata).find(({ id }) => id === typename2)?.metadata;
66
+ const metadata2 = manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename2)?.metadata;
64
67
  return metadata2?.createObject ? metadata2 : void 0;
65
68
  };
66
- const [properties] = yield* Database.Service.runQuery(Filter.type(SpaceProperties));
67
- const collection = yield* Database.Service.load(properties[Collection.Collection.typename]);
69
+ const [properties] = yield* Database.runQuery(Filter.type(SpaceProperties));
70
+ const collection = yield* Database.load(properties[Collection.Collection.typename]);
68
71
  const selectedTypename = yield* Option.match(typename, {
69
72
  onNone: () => selectTypename(resolve),
70
73
  onSome: (t) => Effect.succeed(t)
@@ -93,7 +96,7 @@ var add = Command.make("add", {
93
96
  });
94
97
  })).pipe(Command.withDescription("Add an object to a space."), Command.provide(({ spaceId }) => spaceLayer(spaceId, true)));
95
98
  var selectTypename = Effect.fn(function* (resolve) {
96
- const schemas = yield* Database.Service.runSchemaQuery({
99
+ const schemas = yield* Database.runSchemaQuery({
97
100
  location: [
98
101
  "database",
99
102
  "runtime"
@@ -127,7 +130,7 @@ var handler = ({ typename }) => Effect2.gen(function* () {
127
130
  onNone: () => Filter2.everything(),
128
131
  onSome: (typename2) => Filter2.typename(typename2)
129
132
  });
130
- const objects = yield* Database2.Service.runQuery(filter);
133
+ const objects = yield* Database2.runQuery(filter);
131
134
  if (json) {
132
135
  yield* Console2.log(JSON.stringify(objects, null, 2));
133
136
  } else {
@@ -165,9 +168,9 @@ var remove = Command3.make("remove", {
165
168
  } else {
166
169
  throw new Error("Must specify typename or id");
167
170
  }
168
- const objects = yield* Database3.Service.runQuery(query3);
171
+ const objects = yield* Database3.runQuery(query3);
169
172
  for (const object of objects) {
170
- yield* Database3.Service.remove(object);
173
+ yield* Database3.remove(object);
171
174
  }
172
175
  if (json) {
173
176
  yield* Console3.log(JSON.stringify({
@@ -193,7 +196,7 @@ var stats = Command4.make("stats", {
193
196
  spaceId: Common4.spaceId.pipe(Options4.optional)
194
197
  }, () => Effect4.gen(function* () {
195
198
  const { json } = yield* CommandConfig4;
196
- const objects = yield* Database4.Service.runQuery(Query2.select(Filter4.everything()));
199
+ const objects = yield* Database4.runQuery(Query2.select(Filter4.everything()));
197
200
  const stats2 = Function.pipe(objects, Array.groupBy((obj) => Obj2.getTypename(obj) ?? "<empty>"), Record.map((objs) => objs.length));
198
201
  if (json) {
199
202
  yield* Console4.log(JSON.stringify(stats2, null, 2));
@@ -273,9 +276,7 @@ var handler2 = ({ spaceId }) => Effect6.gen(function* () {
273
276
  const { json } = yield* CommandConfig6;
274
277
  const client = yield* ClientService2;
275
278
  const space2 = yield* getSpace(spaceId);
276
- yield* Effect6.tryPromise(() => space2.db.flush({
277
- indexes: true
278
- }));
279
+ yield* Effect6.tryPromise(() => space2.db.flush());
279
280
  yield* waitForSync(space2);
280
281
  yield* Effect6.tryPromise(() => space2.close());
281
282
  if (json) {
@@ -325,9 +326,7 @@ var handler3 = Effect7.fn(function* ({ name }) {
325
326
  }).pipe(FormBuilder3.set("key", space2.key.truncate()), FormBuilder3.set("name", space2.properties.name ?? "<none>"));
326
327
  yield* Console7.log(print3(FormBuilder3.build(builder)));
327
328
  }
328
- yield* Effect7.tryPromise(() => space2.db.flush({
329
- indexes: true
330
- }));
329
+ yield* Effect7.tryPromise(() => space2.db.flush());
331
330
  yield* waitForSync2(space2);
332
331
  });
333
332
  var create = Command9.make("create", {
@@ -495,9 +494,7 @@ var handler5 = Effect10.fn(function* ({ invitationCode, authCode }) {
495
494
  }
496
495
  return;
497
496
  }
498
- yield* Effect10.tryPromise(() => space2.db.flush({
499
- indexes: true
500
- }));
497
+ yield* Effect10.tryPromise(() => space2.db.flush());
501
498
  yield* waitForSync3(space2);
502
499
  if (json) {
503
500
  yield* Console9.log(JSON.stringify({
@@ -595,9 +592,7 @@ var handler8 = ({ spaceId }) => Effect13.gen(function* () {
595
592
  const client = yield* ClientService8;
596
593
  const space2 = yield* getSpace4(spaceId);
597
594
  yield* Effect13.tryPromise(() => space2.open());
598
- yield* Effect13.tryPromise(() => space2.db.flush({
599
- indexes: true
600
- }));
595
+ yield* Effect13.tryPromise(() => space2.db.flush());
601
596
  yield* waitForSync4(space2);
602
597
  if (json) {
603
598
  yield* Console12.log(JSON.stringify({
@@ -787,14 +782,22 @@ var space = Command19.make("space").pipe(Command19.withDescription("Manage ECHO
787
782
  // src/cli/plugin.ts
788
783
  var SpacePlugin = Plugin2.define(meta).pipe(
789
784
  // TODO(wittjosiah): Could some of these commands make use of operations?
790
- Common12.Plugin.addCommandModule({
785
+ AppPlugin.addCommandModule({
791
786
  commands: [
792
787
  database,
793
788
  queue,
794
789
  space
795
790
  ]
796
791
  }),
797
- Common12.Plugin.addSchemaModule({
792
+ AppPlugin.addMetadataModule({
793
+ metadata: {
794
+ id: Collection2.Collection.typename,
795
+ metadata: {
796
+ createObject: (props) => Effect17.sync(() => Collection2.make(props))
797
+ }
798
+ }
799
+ }),
800
+ AppPlugin.addSchemaModule({
798
801
  schema: [
799
802
  ...DataTypes,
800
803
  AnchoredTo.AnchoredTo,
@@ -805,29 +808,20 @@ var SpacePlugin = Plugin2.define(meta).pipe(
805
808
  HasSubject.HasSubject,
806
809
  Organization.Organization,
807
810
  Person.Person,
808
- Project.Project,
811
+ Pipeline.Pipeline,
809
812
  Tag.Tag,
810
813
  Task.Task
811
814
  ]
812
815
  }),
813
- Common12.Plugin.addMetadataModule({
814
- metadata: {
815
- id: Collection2.Collection.typename,
816
- metadata: {
817
- createObject: (props) => Effect17.sync(() => Collection2.make(props)),
818
- addToCollectionOnCreate: true
819
- }
820
- }
821
- }),
822
- Plugin2.addModule(({ invitationUrl = "http://localhost:5173", invitationProp = "spaceInvitationCode" }) => {
816
+ Plugin2.addModule(({ shareableLinkOrigin = "http://localhost:5173", invitationPath = "/", invitationProp = "spaceInvitationCode" }) => {
823
817
  const createInvitationUrl = (invitationCode) => {
824
- const baseUrl = new URL(invitationUrl);
818
+ const baseUrl = new URL(invitationPath || "/", shareableLinkOrigin);
825
819
  baseUrl.searchParams.set(invitationProp, invitationCode);
826
820
  return baseUrl.toString();
827
821
  };
828
822
  return {
829
823
  id: Capability.getModuleTag(OperationResolver),
830
- activatesOn: Common12.ActivationEvent.SetupOperationResolver,
824
+ activatesOn: ActivationEvents.SetupOperationResolver,
831
825
  activate: () => OperationResolver({
832
826
  createInvitationUrl,
833
827
  observability: false