@dxos/plugin-space 0.8.1-main.ba2dec9 → 0.8.1-staging.31c3ee1

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 (256) hide show
  1. package/dist/lib/browser/{app-graph-builder-MGK5HWPZ.mjs → app-graph-builder-GMFCSOLG.mjs} +33 -6
  2. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs → app-graph-serializer-DSF2U3A5.mjs} +7 -7
  4. package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs.map → app-graph-serializer-DSF2U3A5.mjs.map} +2 -2
  5. package/dist/lib/browser/{chunk-UDWHTKB5.mjs → chunk-5BDV575R.mjs} +22 -16
  6. package/dist/lib/browser/chunk-5BDV575R.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-ULA2UQJ4.mjs → chunk-AYW4IDRT.mjs} +15 -65
  8. package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-PCEP3KQY.mjs → chunk-DVZEJGCK.mjs} +854 -587
  10. package/dist/lib/browser/chunk-DVZEJGCK.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-NU7WDVGN.mjs → chunk-KVRYWFZU.mjs} +3 -3
  12. package/dist/lib/browser/chunk-KVRYWFZU.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-23RVI5FZ.mjs → chunk-LO5UL6RU.mjs} +49 -16
  14. package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-PQXZCNAU.mjs → chunk-PTKYMZWO.mjs} +1 -1
  16. package/dist/lib/browser/chunk-PTKYMZWO.mjs.map +7 -0
  17. package/dist/lib/browser/{identity-created-FYGS6TBH.mjs → identity-created-JR7BNXFH.mjs} +3 -3
  18. package/dist/lib/browser/index.mjs +40 -45
  19. package/dist/lib/browser/index.mjs.map +3 -3
  20. package/dist/lib/browser/{intent-resolver-GPNAQ2SG.mjs → intent-resolver-OG62I5IL.mjs} +69 -44
  21. package/dist/lib/browser/intent-resolver-OG62I5IL.mjs.map +7 -0
  22. package/dist/lib/browser/meta.json +1 -1
  23. package/dist/lib/browser/{react-root-4CCSD7TZ.mjs → react-root-VPSIJ6EU.mjs} +6 -6
  24. package/dist/lib/browser/{react-surface-FKMRI3WV.mjs → react-surface-KOSYP574.mjs} +39 -38
  25. package/dist/lib/browser/react-surface-KOSYP574.mjs.map +7 -0
  26. package/dist/lib/browser/{schema-5W3DSY2E.mjs → schema-FHTA26SW.mjs} +3 -3
  27. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs +123 -0
  28. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +7 -0
  29. package/dist/lib/browser/{settings-PHPCXX33.mjs → settings-PJPTJUPE.mjs} +3 -3
  30. package/dist/lib/browser/{spaces-ready-K47RR7N2.mjs → spaces-ready-BSSP7HHG.mjs} +8 -8
  31. package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +7 -0
  32. package/dist/lib/browser/{state-INJ63O57.mjs → state-X7VLCC6E.mjs} +5 -3
  33. package/dist/lib/browser/state-X7VLCC6E.mjs.map +7 -0
  34. package/dist/lib/browser/types/index.mjs +2 -10
  35. package/dist/lib/node/{app-graph-builder-ZIUBXRPA.cjs → app-graph-builder-DPY7AUZE.cjs} +73 -46
  36. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +7 -0
  37. package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs → app-graph-serializer-JELGJUAY.cjs} +21 -21
  38. package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs.map → app-graph-serializer-JELGJUAY.cjs.map} +2 -2
  39. package/dist/lib/node/{chunk-WZR6OAN3.cjs → chunk-6P2DB4QQ.cjs} +4 -4
  40. package/dist/lib/node/{chunk-WZR6OAN3.cjs.map → chunk-6P2DB4QQ.cjs.map} +2 -2
  41. package/dist/lib/node/{chunk-QE4GVR6C.cjs → chunk-APYLLIMY.cjs} +919 -657
  42. package/dist/lib/node/chunk-APYLLIMY.cjs.map +7 -0
  43. package/dist/lib/node/{chunk-YZKNRFHU.cjs → chunk-IKIDS6XF.cjs} +10 -10
  44. package/dist/lib/node/chunk-IKIDS6XF.cjs.map +7 -0
  45. package/dist/lib/node/{chunk-U6DYXAR3.cjs → chunk-PU2EYH4E.cjs} +27 -21
  46. package/dist/lib/node/chunk-PU2EYH4E.cjs.map +7 -0
  47. package/dist/lib/node/{chunk-OVGKWJOC.cjs → chunk-TUZWEPGX.cjs} +99 -66
  48. package/dist/lib/node/chunk-TUZWEPGX.cjs.map +7 -0
  49. package/dist/lib/node/{chunk-WAJKBO3J.cjs → chunk-WDEIFDTX.cjs} +19 -73
  50. package/dist/lib/node/chunk-WDEIFDTX.cjs.map +7 -0
  51. package/dist/lib/node/{identity-created-AXI64BLE.cjs → identity-created-XU4HFV2T.cjs} +7 -7
  52. package/dist/lib/node/index.cjs +105 -111
  53. package/dist/lib/node/index.cjs.map +3 -3
  54. package/dist/lib/node/{intent-resolver-ICHHI6I6.cjs → intent-resolver-UMF6MLOH.cjs} +133 -107
  55. package/dist/lib/node/intent-resolver-UMF6MLOH.cjs.map +7 -0
  56. package/dist/lib/node/meta.json +1 -1
  57. package/dist/lib/node/{react-root-TCBTUOOJ.cjs → react-root-ZRFHMM7R.cjs} +12 -12
  58. package/dist/lib/node/{react-surface-JSCCIZS5.cjs → react-surface-72U57CIU.cjs} +78 -76
  59. package/dist/lib/node/react-surface-72U57CIU.cjs.map +7 -0
  60. package/dist/lib/node/{schema-YN7WVFRX.cjs → schema-PPJ5BZ3A.cjs} +7 -7
  61. package/dist/lib/node/schema-tools-BLIMOZYY.cjs +146 -0
  62. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +7 -0
  63. package/dist/lib/node/{settings-5QYFWNH7.cjs → settings-WVFP2UEP.cjs} +8 -8
  64. package/dist/lib/node/{spaces-ready-FQNAKR7G.cjs → spaces-ready-7DNZSUOG.cjs} +16 -16
  65. package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +7 -0
  66. package/dist/lib/node/{state-57UE3DYE.cjs → state-5KX6WBJH.cjs} +10 -8
  67. package/dist/lib/node/state-5KX6WBJH.cjs.map +7 -0
  68. package/dist/lib/node/types/index.cjs +13 -21
  69. package/dist/lib/node/types/index.cjs.map +2 -2
  70. package/dist/lib/node-esm/{app-graph-builder-TERVM2SL.mjs → app-graph-builder-42IGWRPL.mjs} +33 -6
  71. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +7 -0
  72. package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs → app-graph-serializer-FXONFKOE.mjs} +7 -7
  73. package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs.map → app-graph-serializer-FXONFKOE.mjs.map} +2 -2
  74. package/dist/lib/node-esm/{chunk-2TQ2AJEZ.mjs → chunk-3ZOUV4DF.mjs} +22 -16
  75. package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-TRNZQEEN.mjs → chunk-FC4UHDPL.mjs} +15 -65
  77. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-HJCEJNW3.mjs → chunk-HMCIZ7G7.mjs} +854 -587
  79. package/dist/lib/node-esm/chunk-HMCIZ7G7.mjs.map +7 -0
  80. package/dist/lib/node-esm/{chunk-ICCM4YRJ.mjs → chunk-MSWEFAPD.mjs} +1 -1
  81. package/dist/lib/node-esm/chunk-MSWEFAPD.mjs.map +7 -0
  82. package/dist/lib/node-esm/{chunk-6RSVVEPS.mjs → chunk-PIYAWT5N.mjs} +3 -3
  83. package/dist/lib/node-esm/chunk-PIYAWT5N.mjs.map +7 -0
  84. package/dist/lib/node-esm/{chunk-PGH5L7MV.mjs → chunk-ZGLK25WQ.mjs} +49 -16
  85. package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +7 -0
  86. package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs → identity-created-WJKAS2PV.mjs} +3 -3
  87. package/dist/lib/node-esm/index.mjs +40 -45
  88. package/dist/lib/node-esm/index.mjs.map +3 -3
  89. package/dist/lib/node-esm/{intent-resolver-VR42K5GE.mjs → intent-resolver-67C5MOIE.mjs} +69 -44
  90. package/dist/lib/node-esm/intent-resolver-67C5MOIE.mjs.map +7 -0
  91. package/dist/lib/node-esm/meta.json +1 -1
  92. package/dist/lib/node-esm/{react-root-THJBSTQS.mjs → react-root-XPRWMZGT.mjs} +6 -6
  93. package/dist/lib/node-esm/{react-surface-Z3BBQ5HX.mjs → react-surface-MUE6M34Y.mjs} +39 -38
  94. package/dist/lib/node-esm/react-surface-MUE6M34Y.mjs.map +7 -0
  95. package/dist/lib/node-esm/{schema-LOR2EVGY.mjs → schema-OUZKVYM5.mjs} +3 -3
  96. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs +125 -0
  97. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +7 -0
  98. package/dist/lib/node-esm/{settings-H6MXTEQM.mjs → settings-FJZPC2TV.mjs} +3 -3
  99. package/dist/lib/node-esm/{spaces-ready-HKAQG5SA.mjs → spaces-ready-7X5PGB2V.mjs} +8 -8
  100. package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +7 -0
  101. package/dist/lib/node-esm/{state-VYA6OFHD.mjs → state-Z6E2YTNC.mjs} +5 -3
  102. package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +7 -0
  103. package/dist/lib/node-esm/types/index.mjs +2 -10
  104. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/capabilities.d.ts +4 -3
  107. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/index.d.ts +1 -1
  109. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -2
  111. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/schema-tool.test.d.ts +2 -0
  114. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/schema-tools.d.ts +13 -0
  116. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  118. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  119. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  120. package/dist/types/src/components/MembersContainer.d.ts +7 -0
  121. package/dist/types/src/components/MembersContainer.d.ts.map +1 -0
  122. package/dist/types/src/components/MembersContainer.stories.d.ts +8 -0
  123. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -0
  124. package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +1 -0
  125. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts +8 -0
  126. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +1 -0
  127. package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +1 -0
  128. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts +8 -0
  129. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +1 -0
  130. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts +2 -0
  131. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +1 -0
  132. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  133. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +7 -0
  134. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +1 -0
  135. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +7 -0
  136. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +1 -0
  137. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +9 -0
  138. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -0
  139. package/dist/types/src/components/SpaceSettings/index.d.ts +2 -2
  140. package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
  141. package/dist/types/src/components/index.d.ts +2 -2
  142. package/dist/types/src/components/index.d.ts.map +1 -1
  143. package/dist/types/src/events.d.ts +1 -1
  144. package/dist/types/src/events.d.ts.map +1 -1
  145. package/dist/types/src/meta.d.ts +2 -5
  146. package/dist/types/src/meta.d.ts.map +1 -1
  147. package/dist/types/src/translations.d.ts +53 -36
  148. package/dist/types/src/translations.d.ts.map +1 -1
  149. package/dist/types/src/types/thread.d.ts +92 -197
  150. package/dist/types/src/types/thread.d.ts.map +1 -1
  151. package/dist/types/src/types/types.d.ts +10 -0
  152. package/dist/types/src/types/types.d.ts.map +1 -1
  153. package/dist/types/src/util.d.ts +12 -0
  154. package/dist/types/src/util.d.ts.map +1 -1
  155. package/package.json +44 -39
  156. package/src/SpacePlugin.tsx +12 -11
  157. package/src/capabilities/app-graph-builder.ts +20 -0
  158. package/src/capabilities/app-graph-serializer.ts +2 -2
  159. package/src/capabilities/capabilities.ts +3 -3
  160. package/src/capabilities/index.ts +1 -0
  161. package/src/capabilities/intent-resolver.ts +66 -38
  162. package/src/capabilities/react-surface.tsx +30 -28
  163. package/src/capabilities/schema-tool.test.ts +45 -0
  164. package/src/capabilities/schema-tools.ts +124 -0
  165. package/src/capabilities/spaces-ready.ts +3 -3
  166. package/src/capabilities/state.ts +2 -0
  167. package/src/components/CreateDialog/CreateObjectDialog.tsx +3 -6
  168. package/src/components/CreateDialog/CreateObjectPanel.tsx +6 -6
  169. package/src/components/JoinDialog.tsx +43 -27
  170. package/src/components/MembersContainer.stories.tsx +34 -0
  171. package/src/components/MembersContainer.tsx +255 -0
  172. package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.tsx +2 -2
  173. package/src/components/ObjectSettingsContainer/BaseObjectSettings.tsx +47 -0
  174. package/src/components/ObjectSettingsContainer/ObjectSettingsContainer.tsx +36 -0
  175. package/src/components/ObjectSettingsContainer/index.ts +5 -0
  176. package/src/components/PopoverRenameObject.tsx +1 -1
  177. package/src/components/SpacePresence.tsx +25 -23
  178. package/src/components/SpaceSettings/{SpaceSettingsPanel.stories.tsx → SpacePropertiesForm.stories.tsx} +6 -6
  179. package/src/components/SpaceSettings/SpacePropertiesForm.tsx +136 -0
  180. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +63 -0
  181. package/src/components/SpaceSettings/index.ts +2 -2
  182. package/src/components/SyncStatus/SyncStatus.tsx +1 -1
  183. package/src/components/SyncStatus/save-tracker.ts +5 -5
  184. package/src/components/index.ts +2 -2
  185. package/src/events.ts +2 -2
  186. package/src/meta.ts +2 -2
  187. package/src/translations.ts +21 -12
  188. package/src/types/thread.ts +2 -56
  189. package/src/types/types.ts +15 -6
  190. package/src/util.tsx +30 -9
  191. package/dist/lib/browser/app-graph-builder-MGK5HWPZ.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-23RVI5FZ.mjs.map +0 -7
  193. package/dist/lib/browser/chunk-NU7WDVGN.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-PCEP3KQY.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-PQXZCNAU.mjs.map +0 -7
  196. package/dist/lib/browser/chunk-UDWHTKB5.mjs.map +0 -7
  197. package/dist/lib/browser/chunk-ULA2UQJ4.mjs.map +0 -7
  198. package/dist/lib/browser/intent-resolver-GPNAQ2SG.mjs.map +0 -7
  199. package/dist/lib/browser/react-surface-FKMRI3WV.mjs.map +0 -7
  200. package/dist/lib/browser/spaces-ready-K47RR7N2.mjs.map +0 -7
  201. package/dist/lib/browser/state-INJ63O57.mjs.map +0 -7
  202. package/dist/lib/node/app-graph-builder-ZIUBXRPA.cjs.map +0 -7
  203. package/dist/lib/node/chunk-OVGKWJOC.cjs.map +0 -7
  204. package/dist/lib/node/chunk-QE4GVR6C.cjs.map +0 -7
  205. package/dist/lib/node/chunk-U6DYXAR3.cjs.map +0 -7
  206. package/dist/lib/node/chunk-WAJKBO3J.cjs.map +0 -7
  207. package/dist/lib/node/chunk-YZKNRFHU.cjs.map +0 -7
  208. package/dist/lib/node/intent-resolver-ICHHI6I6.cjs.map +0 -7
  209. package/dist/lib/node/react-surface-JSCCIZS5.cjs.map +0 -7
  210. package/dist/lib/node/spaces-ready-FQNAKR7G.cjs.map +0 -7
  211. package/dist/lib/node/state-57UE3DYE.cjs.map +0 -7
  212. package/dist/lib/node-esm/app-graph-builder-TERVM2SL.mjs.map +0 -7
  213. package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs.map +0 -7
  214. package/dist/lib/node-esm/chunk-6RSVVEPS.mjs.map +0 -7
  215. package/dist/lib/node-esm/chunk-HJCEJNW3.mjs.map +0 -7
  216. package/dist/lib/node-esm/chunk-ICCM4YRJ.mjs.map +0 -7
  217. package/dist/lib/node-esm/chunk-PGH5L7MV.mjs.map +0 -7
  218. package/dist/lib/node-esm/chunk-TRNZQEEN.mjs.map +0 -7
  219. package/dist/lib/node-esm/intent-resolver-VR42K5GE.mjs.map +0 -7
  220. package/dist/lib/node-esm/react-surface-Z3BBQ5HX.mjs.map +0 -7
  221. package/dist/lib/node-esm/spaces-ready-HKAQG5SA.mjs.map +0 -7
  222. package/dist/lib/node-esm/state-VYA6OFHD.mjs.map +0 -7
  223. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  224. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +0 -1
  225. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts +0 -2
  226. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts.map +0 -1
  227. package/dist/types/src/components/BaseObjectSettings.d.ts +0 -7
  228. package/dist/types/src/components/BaseObjectSettings.d.ts.map +0 -1
  229. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +0 -11
  230. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +0 -1
  231. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts +0 -7
  232. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts.map +0 -1
  233. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +0 -7
  234. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +0 -1
  235. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts +0 -7
  236. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +0 -1
  237. package/src/components/AdvancedObjectSettings/index.ts +0 -5
  238. package/src/components/BaseObjectSettings.tsx +0 -40
  239. package/src/components/SpaceSettings/SpaceSettingsDialog.stories.tsx +0 -43
  240. package/src/components/SpaceSettings/SpaceSettingsDialog.tsx +0 -120
  241. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +0 -83
  242. /package/dist/lib/browser/{identity-created-FYGS6TBH.mjs.map → identity-created-JR7BNXFH.mjs.map} +0 -0
  243. /package/dist/lib/browser/{react-root-4CCSD7TZ.mjs.map → react-root-VPSIJ6EU.mjs.map} +0 -0
  244. /package/dist/lib/browser/{schema-5W3DSY2E.mjs.map → schema-FHTA26SW.mjs.map} +0 -0
  245. /package/dist/lib/browser/{settings-PHPCXX33.mjs.map → settings-PJPTJUPE.mjs.map} +0 -0
  246. /package/dist/lib/node/{identity-created-AXI64BLE.cjs.map → identity-created-XU4HFV2T.cjs.map} +0 -0
  247. /package/dist/lib/node/{react-root-TCBTUOOJ.cjs.map → react-root-ZRFHMM7R.cjs.map} +0 -0
  248. /package/dist/lib/node/{schema-YN7WVFRX.cjs.map → schema-PPJ5BZ3A.cjs.map} +0 -0
  249. /package/dist/lib/node/{settings-5QYFWNH7.cjs.map → settings-WVFP2UEP.cjs.map} +0 -0
  250. /package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs.map → identity-created-WJKAS2PV.mjs.map} +0 -0
  251. /package/dist/lib/node-esm/{react-root-THJBSTQS.mjs.map → react-root-XPRWMZGT.mjs.map} +0 -0
  252. /package/dist/lib/node-esm/{schema-LOR2EVGY.mjs.map → schema-OUZKVYM5.mjs.map} +0 -0
  253. /package/dist/lib/node-esm/{settings-H6MXTEQM.mjs.map → settings-FJZPC2TV.mjs.map} +0 -0
  254. /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.d.ts +0 -0
  255. /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.d.ts +0 -0
  256. /package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.tsx +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/util.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createIntent, type PromiseIntentDispatcher, LayoutAction } from '@dxos/app-framework';\nimport { EXPANDO_TYPENAME, getObjectAnnotation, getTypename, type Expando } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { getSchema, isReactiveObject, makeRef } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n cleanup,\n getGraph,\n memoize,\n type ActionData,\n type Graph,\n type InvokeParams,\n type Node,\n type NodeArg,\n} from '@dxos/plugin-graph';\nimport {\n Filter,\n fullyQualifiedId,\n getSpace,\n isEchoObject,\n isSpace,\n SpaceState,\n type Echo,\n type FilterSource,\n type Query,\n type QueryOptions,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { CollectionType, SpaceAction } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const SPACE_TYPE = 'dxos.org/type/Space';\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\nconst EMPTY_ARRAY: never[] = [];\n\n/**\n *\n * @param spaceOrEcho\n * @param filter\n * @param options\n * @returns\n */\nexport const memoizeQuery = <T extends ReactiveEchoObject<any>>(\n spaceOrEcho?: Space | Echo,\n filter?: FilterSource<T>,\n options?: QueryOptions,\n): T[] => {\n const key = JSON.stringify({\n space: isSpace(spaceOrEcho) ? spaceOrEcho.id : undefined,\n filter: Filter.from(filter).toProto(),\n });\n\n const query = memoize(\n () =>\n isSpace(spaceOrEcho)\n ? spaceOrEcho.db.query(filter, options)\n : (spaceOrEcho?.query(filter, options) as Query<T> | undefined),\n key,\n );\n const unsubscribe = memoize(() => query?.subscribe(), key);\n cleanup(() => unsubscribe?.());\n\n return query?.objects ?? EMPTY_ARRAY;\n};\n\n// TODO(wittjosiah): Factor out? Expose via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): string | [string, { ns: string }] => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? ['personal space label', { ns: SPACE_PLUGIN }]\n : ['unnamed space label', { ns: SPACE_PLUGIN }];\n};\n\nconst getCollectionGraphNodePartials = ({\n navigable,\n collection,\n space,\n resolve,\n}: {\n navigable: boolean;\n collection: CollectionType;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n disabled: !navigable,\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n onRearrangeChildren: (nextOrder: unknown[]) => {\n // Change on disk.\n collection.objects = nextOrder.filter(isEchoObject).map(makeRef);\n },\n onTransferStart: (child: Node<ReactiveEchoObject<any>>, index?: number) => {\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // if (space && childSpace && !childSpace.key.equals(space.key)) {\n // // Create clone of child and add to destination space.\n // const newObject = clone(child.data, {\n // // TODO(wittjosiah): This needs to be generalized and not hardcoded here.\n // additional: [\n // child.data.content,\n // ...(child.data.objects ?? []),\n // ...(child.data.objects ?? []).map((object: TypedObject) => object.content),\n // ],\n // });\n // space.db.add(newObject);\n // collection.objects.push(newObject);\n // } else {\n\n // Add child to destination collection.\n // TODO(dmaretskyi): Compare by id.\n if (!collection.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(child.data));\n } else {\n collection.objects.push(makeRef(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<ReactiveEchoObject<any>>, destination: Node) => {\n // Remove child from origin collection.\n const index = collection.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n collection.objects.splice(index, 1);\n }\n\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // const destinationSpace =\n // destination.data instanceof SpaceProxy ? destination.data : getSpace(destination.data);\n // if (destinationSpace && childSpace && !childSpace.key.equals(destinationSpace.key)) {\n // // Mark child as deleted in origin space.\n // childSpace.db.remove(child.data);\n // }\n },\n onCopy: async (child: Node<ReactiveEchoObject<any>>, index?: number) => {\n // Create clone of child and add to destination space.\n const newObject = await cloneObject(child.data, resolve, space);\n space.db.add(newObject);\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(newObject));\n } else {\n collection.objects.push(makeRef(newObject));\n }\n },\n };\n};\n\nconst checkPendingMigration = (space: Space) => {\n return (\n space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||\n (space.state.get() === SpaceState.SPACE_READY &&\n !!Migrations.versionProperty &&\n space.properties[Migrations.versionProperty] !== Migrations.targetVersion)\n );\n};\n\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[CollectionType.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && collection instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection, space, resolve, navigable })\n : {};\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: ['label', 'icon', 'role'],\n data: space,\n properties: {\n ...partials,\n label: getSpaceDisplayName(space, { personal, namesCache }),\n description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,\n hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,\n icon:\n space.state.get() === SpaceState.SPACE_READY && space.properties.icon\n ? `ph--${space.properties.icon}--regular`\n : undefined,\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n testId: 'spacePlugin.space',\n },\n };\n};\n\nexport const constructSpaceActions = ({\n space,\n dispatch,\n personal,\n migrating,\n}: {\n space: Space;\n dispatch: PromiseIntentDispatcher;\n personal?: boolean;\n migrating?: boolean;\n}) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: NodeArg<ActionData>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Migrate._tag),\n type: ACTION_GROUP_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n },\n properties: {\n label: ['migrate space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--database--regular',\n disposition: 'toolbar',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n const locked = space.properties[COMPOSER_SPACE_LOCK];\n actions.push(\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));\n },\n properties: {\n label: ['create object in space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'item',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceAction.Share._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n return;\n }\n await dispatch(createIntent(SpaceAction.Share, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n disabled: locked,\n disposition: 'toolbar',\n iconOnly: false,\n variant: 'default',\n testId: 'spacePlugin.shareSpace',\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: locked ? getId(SpaceAction.Unlock._tag) : getId(SpaceAction.Lock._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n await dispatch(createIntent(SpaceAction.Unlock, { space }));\n } else {\n await dispatch(createIntent(SpaceAction.Lock, { space }));\n }\n },\n properties: {\n label: [locked ? 'unlock space label' : 'lock space label', { ns: SPACE_PLUGIN }],\n icon: locked ? 'ph--lock-simple-open--regular' : 'ph--lock-simple--regular',\n },\n },\n {\n id: getId(SpaceAction.Rename._tag),\n type: ACTION_TYPE,\n data: async (params: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.Rename, { space, caller: params.caller }));\n },\n properties: {\n label: ['rename space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n {\n id: getId(SpaceAction.OpenSettings._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--gear--regular',\n },\n },\n );\n }\n\n // TODO(wittjosiah): Consider moving close space into the space settings dialog.\n if (state !== SpaceState.SPACE_INACTIVE && !hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Close._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Close, { space }));\n },\n properties: {\n label: ['close space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--x--regular',\n disabled: personal,\n },\n });\n }\n\n if (state === SpaceState.SPACE_INACTIVE) {\n actions.push({\n id: getId(SpaceAction.Open._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Open, { space }));\n },\n properties: {\n label: ['open space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--clock-counter-clockwise--regular',\n disposition: 'toolbar',\n },\n });\n }\n\n return actions;\n};\n\nexport const createObjectNode = ({\n object,\n space,\n navigable = false,\n resolve,\n}: {\n object: ReactiveEchoObject<any>;\n space: Space;\n navigable?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = getTypename(object);\n if (!type) {\n return undefined;\n }\n\n const metadata = resolve(type);\n if (Object.keys(metadata).length === 0) {\n return undefined;\n }\n\n const partials =\n object instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection: object, space, resolve, navigable })\n : metadata.graphProps;\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n ...partials,\n label: metadata.label?.(object) ||\n object.name ||\n metadata.placeholder || ['unnamed object label', { ns: SPACE_PLUGIN }],\n icon: metadata.icon ?? 'ph--placeholder--regular',\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n },\n };\n};\n\nexport const constructObjectActions = ({\n node,\n dispatch,\n navigable = false,\n}: {\n node: Node<ReactiveEchoObject<any>>;\n dispatch: PromiseIntentDispatcher;\n navigable?: boolean;\n}) => {\n const object = node.data;\n const space = getSpace(object);\n invariant(space, 'Space not found');\n const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;\n const actions: NodeArg<ActionData>[] = [\n ...(object instanceof CollectionType\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));\n },\n properties: {\n label: ['create object in collection label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'toolbar',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params.caller }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'rename collection label' : 'rename object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--pencil-simple-line--regular',\n // TODO(wittjosiah): Doesn't work.\n // keyBinding: 'shift+F6',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const graph = getGraph(node);\n const collection = graph\n .nodes(node, { relation: 'inbound' })\n .find(({ data }) => data instanceof CollectionType)?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'delete collection label' : 'delete object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--trash--regular',\n keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ...(navigable || !(object instanceof CollectionType)\n ? [\n {\n id: getId('copy-link'),\n type: ACTION_TYPE,\n data: async () => {\n const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;\n await navigator.clipboard.writeText(url);\n },\n properties: {\n label: ['copy link label', { ns: SPACE_PLUGIN }],\n icon: 'ph--link--regular',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: getId(LayoutAction.Expose._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: fullyQualifiedId(object) }));\n },\n properties: {\n label: ['expose object label', { ns: SPACE_PLUGIN }],\n icon: 'ph--eye--regular',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * @deprecated\n */\nexport const getActiveSpace = (graph: Graph, active?: string) => {\n if (!active) {\n return;\n }\n\n const node = graph.findNode(active);\n if (!node || !isReactiveObject(node.data)) {\n return;\n }\n\n return getSpace(node.data);\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: ReactiveEchoObject<any>,\n resolve: (typename: string) => Record<string, any>,\n): Promise<ReactiveEchoObject<any>[]> => {\n const type = getTypename(object);\n if (!type) {\n return [];\n }\n\n const metadata = resolve(type);\n const loadReferences = metadata?.loadReferences;\n if (typeof loadReferences !== 'function') {\n return [];\n }\n\n const objects: ReactiveEchoObject<any>[] = await loadReferences(object);\n const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));\n return [...objects, ...nested.flat()];\n};\n\n/**\n * @deprecated Workaround for ECHO not supporting clone.\n */\n// TODO(burdon): Remove.\nexport const cloneObject = async (\n object: Expando,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Expando> => {\n const schema = getSchema(object);\n const typename = schema ? getObjectAnnotation(schema)?.typename ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;\n const metadata = resolve(typename);\n const serializer = metadata.serializer;\n invariant(serializer, `No serializer for type: ${typename}`);\n const content = await serializer.serialize({ object });\n return serializer.deserialize({ content, space: newSpace, newId: true });\n};\n"],
5
- "mappings": "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",
6
- "names": ["createIntent", "LayoutAction", "EXPANDO_TYPENAME", "getObjectAnnotation", "getTypename", "invariant", "getSchema", "isReactiveObject", "makeRef", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "cleanup", "getGraph", "memoize", "Filter", "fullyQualifiedId", "getSpace", "isEchoObject", "isSpace", "SpaceState", "SPACES", "SPACE_PLUGIN", "SPACE_TYPE", "COMPOSER_SPACE_LOCK", "SHARED", "EMPTY_ARRAY", "memoizeQuery", "spaceOrEcho", "filter", "options", "key", "JSON", "stringify", "space", "isSpace", "id", "undefined", "Filter", "from", "toProto", "query", "memoize", "db", "unsubscribe", "subscribe", "cleanup", "objects", "getSpaceDisplayName", "personal", "namesCache", "state", "get", "SpaceState", "SPACE_READY", "properties", "name", "length", "ns", "getCollectionGraphNodePartials", "navigable", "collection", "resolve", "disabled", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "isEchoObject", "map", "makeRef", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "add", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "hasPendingMigration", "CollectionType", "typename", "partials", "type", "cacheable", "label", "description", "hue", "icon", "testId", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "disposition", "running", "locked", "OpenCreateObject", "ACTION_TYPE", "Share", "iconOnly", "variant", "keyBinding", "macos", "windows", "Unlock", "Lock", "Rename", "params", "caller", "OpenSettings", "SPACE_INACTIVE", "Close", "Open", "createObjectNode", "getTypename", "metadata", "Object", "keys", "graphProps", "fullyQualifiedId", "placeholder", "persistenceClass", "persistenceKey", "constructObjectActions", "node", "getSpace", "invariant", "RenameObject", "RemoveObjects", "graph", "getGraph", "nodes", "relation", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "LayoutAction", "Expose", "part", "subject", "getActiveSpace", "active", "findNode", "isReactiveObject", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "schema", "getSchema", "getObjectAnnotation", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/collection.ts", "../../../src/types/thread.ts", "../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Expando, Ref, S, TypedObject } from '@dxos/echo-schema';\n\nexport class CollectionType extends TypedObject({ typename: 'dxos.org/type/Collection', version: '0.1.0' })({\n name: S.optional(S.String),\n objects: S.mutable(S.Array(Ref(Expando))),\n // Key is schema typename and value is reference to a view object of the associated schema.\n // Having collection reference the views rather than vice versa ensures that the state converges to a single view per key (i.e. type).\n // This also leaves open a future where this key could be changed to allow for multiple stack views per section.\n // TODO(wittjosiah): Any way to make this more type safe?\n // TODO(wittjosiah): Should the views be separate objects or just be schemas for view data in this record?\n views: S.mutable(S.Record({ key: S.String, value: Ref(Expando) })),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Expando, Ref, S, TypedObject } from '@dxos/echo-schema';\n\n// TODO(wittjosiah): These types were placed here rather than in @dxos/plugin-thread\n// in order to avoid a circular dependency between threads and other objects that use threads.\n\n// TODO(wittjosiah): Factor out to halo?\nexport class ContactType extends TypedObject({ typename: 'dxos.org/type/Contact', version: '0.1.0' })({\n name: S.optional(S.String),\n identifiers: S.mutable(\n S.Array(\n S.Struct({\n type: S.String,\n value: S.String,\n }),\n ),\n ),\n}) {}\n\nexport const ActorSchema = S.mutable(\n S.Struct({\n contact: S.optional(Ref(ContactType)),\n // TODO(wittjosiah): Should the below fields just be the contact schema?\n // i.e. it should either be a reference to an existing contact or an inline contact schema.\n identityKey: S.optional(S.String),\n // TODO(burdon): Generalize to handle/identifier?\n email: S.optional(S.String),\n name: S.optional(S.String),\n }),\n);\n\nexport type ActorType = S.Schema.Type<typeof ActorSchema>;\n\nexport enum MessageState {\n NONE = 0,\n ARCHIVED = 1,\n DELETED = 2,\n SPAM = 3,\n}\n\nexport class MessageType extends TypedObject({ typename: 'dxos.org/type/Message', version: '0.1.0' })({\n /** ISO date string when the message was sent. */\n timestamp: S.String,\n /** Message state. */\n state: S.optional(S.Enums(MessageState)),\n /** Identity of the message sender. */\n sender: ActorSchema,\n /** Text content of the message. */\n text: S.String,\n /** Non-text content sent with a message (e.g., files, polls, etc.) */\n parts: S.optional(S.mutable(S.Array(Ref(Expando)))),\n /** Custom properties for specific message types (e.g. email subject or cc fields). */\n properties: S.optional(S.mutable(S.Record({ key: S.String, value: S.Any }))),\n // TODO(wittjosiah): Add read status:\n // - Read receipts need to be per space member.\n // - Read receipts don't need to be added to schema until they being implemented.\n /** Context of the application when message was created. */\n // TODO(burdon): Evolve \"attention object\" to be current UX state? E.g., of Deck?\n context: S.optional(Ref(Expando)),\n}) {}\n\nexport const ThreadStatus = S.Union(S.Literal('staged'), S.Literal('active'), S.Literal('resolved'));\n\nexport class ThreadType extends TypedObject({ typename: 'dxos.org/type/Thread', version: '0.1.0' })({\n name: S.optional(S.String),\n /** AM cursor-range: 'from:to'. */\n anchor: S.optional(S.String),\n status: S.optional(ThreadStatus),\n messages: S.mutable(S.Array(Ref(MessageType))),\n}) {}\n\nexport class ChannelType extends TypedObject({ typename: 'dxos.org/type/Channel', version: '0.1.0' })({\n name: S.optional(S.String),\n threads: S.mutable(S.Array(Ref(ThreadType))),\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type AnyIntentChain } from '@dxos/app-framework';\nimport { AST, S, type Expando, type BaseObject, type TypedObject } from '@dxos/echo-schema';\nimport { type PublicKey } from '@dxos/react-client';\n// TODO(wittjosiah): This pulls in full client.\nimport { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';\nimport { type ComplexMap } from '@dxos/util';\n\nimport { CollectionType } from './collection';\nimport { SPACE_PLUGIN } from '../meta';\n\nexport const SPACE_DIRECTORY_HANDLE = 'dxos.org/plugin/space/directory';\n\nexport type ObjectViewerProps = {\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type ObjectId = string;\n\nexport type PluginState = {\n /**\n * Which objects are currently being viewed by which peers.\n */\n viewersByObject: Record<ObjectId, ComplexMap<PublicKey, ObjectViewerProps>>;\n\n /**\n * Which peers are currently viewing which objects.\n */\n viewersByIdentity: ComplexMap<PublicKey, Set<ObjectId>>;\n\n /**\n * Object that was linked to directly but not found and is being awaited.\n */\n awaiting: string | undefined;\n\n /**\n * Cached space names, used when spaces are closed or loading.\n */\n spaceNames: Record<string, string>;\n\n /**\n * Which spaces have an SDK migration running currently.\n */\n // TODO(wittjosiah): Factor out to sdk. Migration running should probably be a space state.\n sdkMigrationRunning: Record<string, boolean>;\n\n /**\n * Whether or not the user can navigate to collections in the graph.\n * Determined by whether or not there is an available plugin that can render a collection.\n */\n navigableCollections: boolean;\n\n /**\n * Tracks whether setting edge replication as default has been run on spaces.\n */\n // TODO(wittjosiah): Systematic way to handle migrations of state outside of spaces.\n enabledEdgeReplication: boolean;\n};\n\nexport const SpaceSettingsSchema = S.mutable(\n S.Struct({\n /**\n * Show closed spaces.\n */\n showHidden: S.Boolean,\n }),\n);\n\nexport type SpaceSettingsProps = S.Schema.Type<typeof SpaceSettingsSchema>;\n\n// TODO(wittjosiah): Reconcile with graph export serializers.\n\nexport type SerializerMap = Record<string, TypedObjectSerializer>;\n\nexport interface TypedObjectSerializer<T extends Expando = Expando> {\n serialize(params: { object: T }): Promise<string>;\n\n /**\n * @param params.content\n * @param params.space Space to use for deserializing schema references.\n * @param params.newId Generate new ID for deserialized object.\n */\n deserialize(params: { content: string; space: Space; newId?: boolean }): Promise<T>;\n}\n\nexport const SpaceForm = S.Struct({\n name: S.optional(S.String.annotations({ [AST.TitleAnnotationId]: 'Name' })),\n // TODO(wittjosiah): Make optional with default value.\n edgeReplication: S.Boolean.annotations({ [AST.TitleAnnotationId]: 'Enable EDGE Replication' }),\n});\n\nexport type ObjectForm<T extends BaseObject = BaseObject> = {\n objectSchema: TypedObject;\n formSchema?: S.Schema<T, any>;\n getIntent: (props: T, options: { space: Space }) => AnyIntentChain;\n};\n\nexport const defineObjectForm = <T extends BaseObject>(form: ObjectForm<T>) => form;\n\nexport const SPACE_ACTION = `${SPACE_PLUGIN}/action`;\n\nexport namespace SpaceAction {\n export class OpenCreateSpace extends S.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {\n input: S.Void,\n output: S.Void,\n }) {}\n\n export class Create extends S.TaggedClass<Create>()(`${SPACE_ACTION}/create`, {\n input: SpaceForm,\n output: S.Struct({\n id: S.String,\n subject: S.Array(S.String),\n space: SpaceSchema,\n }),\n }) {}\n\n export class Join extends S.TaggedClass<Join>()(`${SPACE_ACTION}/join`, {\n input: S.Struct({\n invitationCode: S.optional(S.String),\n onDone: S.optional(S.Any),\n }),\n output: S.Void,\n }) {}\n\n export class Share extends S.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Lock extends S.TaggedClass<Lock>()(`${SPACE_ACTION}/lock`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Unlock extends S.TaggedClass<Unlock>()(`${SPACE_ACTION}/unlock`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Rename extends S.TaggedClass<Rename>()(`${SPACE_ACTION}/rename`, {\n input: S.Struct({\n space: SpaceSchema,\n caller: S.optional(S.String),\n }),\n output: S.Void,\n }) {}\n\n export class AddSpace extends S.TaggedClass<AddSpace>()(`${SPACE_ACTION}/add-space`, {\n input: S.Void,\n output: S.Void,\n }) {}\n\n export class AddSpaceMenuGroup extends S.TaggedClass<AddSpaceMenuGroup>()(`${SPACE_ACTION}/add-space-menu-group`, {\n input: S.Void,\n output: S.Void,\n }) {}\n\n export class OpenSettings extends S.TaggedClass<OpenSettings>()(`${SPACE_ACTION}/open-settings`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Open extends S.TaggedClass<Open>()(`${SPACE_ACTION}/open`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Close extends S.TaggedClass<Close>()(`${SPACE_ACTION}/close`, {\n input: S.Struct({\n space: SpaceSchema,\n }),\n output: S.Void,\n }) {}\n\n export class Migrate extends S.TaggedClass<Migrate>()(`${SPACE_ACTION}/migrate`, {\n input: S.Struct({\n space: SpaceSchema,\n version: S.optional(S.String),\n }),\n output: S.Boolean,\n }) {}\n\n export class OpenCreateObject extends S.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {\n input: S.Struct({\n target: S.Union(SpaceSchema, CollectionType),\n navigable: S.optional(S.Boolean),\n }),\n output: S.Void,\n }) {}\n\n export class AddObject extends S.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {\n input: S.Struct({\n object: ReactiveObjectSchema,\n target: S.Union(SpaceSchema, CollectionType),\n }),\n output: S.Struct({\n id: S.String,\n subject: S.Array(S.String),\n object: EchoObjectSchema,\n }),\n }) {}\n\n export const DeletionData = S.Struct({\n objects: S.Array(EchoObjectSchema),\n parentCollection: CollectionType,\n indices: S.Array(S.Number),\n nestedObjectsList: S.Array(S.Array(EchoObjectSchema)),\n wasActive: S.Array(S.String),\n });\n\n export type DeletionData = S.Schema.Type<typeof DeletionData>;\n\n export class RemoveObjects extends S.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {\n input: S.Struct({\n objects: S.Array(EchoObjectSchema),\n target: S.optional(CollectionType),\n deletionData: S.optional(DeletionData),\n }),\n output: S.Void,\n }) {}\n\n export class RenameObject extends S.TaggedClass<RenameObject>()(`${SPACE_ACTION}/rename-object`, {\n input: S.Struct({\n object: EchoObjectSchema,\n caller: S.optional(S.String),\n }),\n output: S.Void,\n }) {}\n\n export class DuplicateObject extends S.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {\n input: S.Struct({\n object: EchoObjectSchema,\n target: S.Union(SpaceSchema, CollectionType),\n }),\n output: S.Void,\n }) {}\n\n export class WaitForObject extends S.TaggedClass<WaitForObject>()(`${SPACE_ACTION}/wait-for-object`, {\n input: S.Struct({\n id: S.optional(S.String),\n }),\n output: S.Void,\n }) {}\n}\n\nexport namespace CollectionAction {\n export class Create extends S.TaggedClass<Create>()('dxos.org/plugin/collection/action/create', {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: CollectionType,\n }),\n }) {}\n}\n"],
5
- "mappings": "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",
6
- "names": ["Expando", "Ref", "S", "TypedObject", "CollectionType", "TypedObject", "typename", "version", "name", "S", "optional", "String", "objects", "mutable", "Array", "Ref", "Expando", "views", "Record", "key", "value", "Expando", "Ref", "S", "TypedObject", "ContactType", "TypedObject", "typename", "version", "name", "S", "optional", "String", "identifiers", "mutable", "Array", "Struct", "type", "value", "ActorSchema", "contact", "Ref", "identityKey", "email", "MessageState", "MessageType", "timestamp", "state", "Enums", "sender", "text", "parts", "Expando", "properties", "Record", "key", "Any", "context", "ThreadStatus", "Union", "Literal", "ThreadType", "anchor", "status", "messages", "ChannelType", "threads", "AST", "S", "EchoObjectSchema", "ReactiveObjectSchema", "SpaceSchema", "SPACE_DIRECTORY_HANDLE", "SpaceSettingsSchema", "S", "mutable", "Struct", "showHidden", "Boolean", "SpaceForm", "name", "optional", "String", "annotations", "AST", "TitleAnnotationId", "edgeReplication", "defineObjectForm", "form", "SPACE_ACTION", "SPACE_PLUGIN", "SpaceAction", "OpenCreateSpace", "TaggedClass", "input", "Void", "output", "Create", "id", "subject", "Array", "space", "SpaceSchema", "Join", "invitationCode", "onDone", "Any", "Share", "Lock", "Unlock", "Rename", "caller", "AddSpace", "AddSpaceMenuGroup", "OpenSettings", "Open", "Close", "Migrate", "version", "OpenCreateObject", "target", "Union", "CollectionType", "navigable", "AddObject", "object", "ReactiveObjectSchema", "EchoObjectSchema", "DeletionData", "objects", "parentCollection", "indices", "Number", "nestedObjectsList", "wasActive", "RemoveObjects", "deletionData", "RenameObject", "DuplicateObject", "WaitForObject", "CollectionAction"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { type Expando, getTypename, type HasId } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { create, makeRef, type ReactiveObject } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { isSpace, getSpace, SpaceState, type Space, fullyQualifiedId, isEchoObject } from '@dxos/react-client/echo';\n\nimport { SpaceCapabilities } from './capabilities';\nimport {\n CREATE_SPACE_DIALOG,\n JOIN_DIALOG,\n SPACE_SETTINGS_DIALOG,\n type SpaceSettingsDialogProps,\n type JoinDialogProps,\n POPOVER_RENAME_SPACE,\n CREATE_OBJECT_DIALOG,\n type CreateObjectDialogProps,\n POPOVER_RENAME_OBJECT,\n POPOVER_ADD_SPACE,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionAction, CollectionType, SpaceAction } from '../types';\nimport { cloneObject, COMPOSER_SPACE_LOCK, getNestedObjects } from '../util';\n\n// TODO(wittjosiah): Remove.\nconst SPACE_MAX_OBJECTS = 500;\n\ntype IntentResolverOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n context: PluginsContext;\n observability?: boolean;\n};\n\nexport default ({ createInvitationUrl, context, observability }: IntentResolverOptions) => {\n const resolve = (typename: string) =>\n context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n return contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: SpaceAction.OpenCreateSpace,\n resolve: () => ({\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: CREATE_SPACE_DIALOG,\n options: {\n blockAlign: 'start',\n },\n }),\n ],\n }),\n }),\n createResolver({\n intent: SpaceAction.Create,\n resolve: async ({ name, edgeReplication }) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const space = await client.spaces.create({ name });\n if (edgeReplication) {\n await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);\n }\n await space.waitUntilReady();\n const collection = create(CollectionType, { objects: [], views: {} });\n space.properties[CollectionType.typename] = makeRef(collection);\n\n if (Migrations.versionProperty) {\n space.properties[Migrations.versionProperty] = Migrations.targetVersion;\n }\n\n return {\n data: {\n id: space.id,\n subject: [space.id],\n space,\n },\n intents: [\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.create',\n properties: {\n spaceId: space.id,\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.Join,\n resolve: ({ invitationCode }) => ({\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: JOIN_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n initialInvitationCode: invitationCode,\n } satisfies Partial<JoinDialogProps>,\n },\n }),\n ],\n }),\n }),\n createResolver({\n intent: SpaceAction.Share,\n filter: (data): data is { space: Space } => !data.space.properties[COMPOSER_SPACE_LOCK],\n resolve: ({ space }) => {\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const current = attention.current.at(-1);\n const target = current?.startsWith(space.id) ? current : undefined;\n\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: SPACE_SETTINGS_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n space,\n target,\n initialTab: 'members',\n createInvitationUrl,\n } satisfies Partial<SpaceSettingsDialogProps>,\n },\n }),\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.share',\n properties: {\n space: space.id,\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.Lock,\n resolve: ({ space }) => {\n space.properties[COMPOSER_SPACE_LOCK] = true;\n return {\n intents: [\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.lock',\n properties: {\n spaceId: space.id,\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.Unlock,\n resolve: ({ space }) => {\n space.properties[COMPOSER_SPACE_LOCK] = false;\n return {\n intents: [\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.unlock',\n properties: {\n spaceId: space.id,\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.Rename,\n resolve: ({ caller, space }) => {\n return {\n intents: [\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: POPOVER_RENAME_SPACE,\n options: {\n anchorId: `dxos.org/ui/${caller}/${space.id}`,\n props: space,\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.AddSpace,\n resolve: () => {\n return {\n intents: [\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: POPOVER_ADD_SPACE,\n options: {\n anchorId: SpaceAction.AddSpace._tag,\n side: 'right',\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.OpenSettings,\n resolve: ({ space }) => {\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: SPACE_SETTINGS_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n space,\n initialTab: 'settings',\n createInvitationUrl,\n } satisfies Partial<SpaceSettingsDialogProps>,\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.Open,\n resolve: async ({ space }) => {\n await space.open();\n },\n }),\n createResolver({\n intent: SpaceAction.Close,\n resolve: async ({ space }) => {\n await space.close();\n },\n }),\n createResolver({\n intent: SpaceAction.Migrate,\n resolve: async ({ space, version }) => {\n const state = context.requestCapability(SpaceCapabilities.MutableState);\n\n if (space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n state.sdkMigrationRunning[space.id] = true;\n await space.internal.migrate();\n state.sdkMigrationRunning[space.id] = false;\n }\n const result = await Migrations.migrate(space, version);\n return {\n data: result,\n intents: [\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.migrate',\n properties: {\n spaceId: space.id,\n version,\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.OpenCreateObject,\n resolve: ({ target, navigable = true }) => {\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return {\n intents: [\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: CREATE_OBJECT_DIALOG,\n options: {\n blockAlign: 'start',\n props: {\n target,\n shouldNavigate: navigable\n ? (object: ReactiveObject<any>) => !(object instanceof CollectionType) || state.navigableCollections\n : () => false,\n } satisfies Partial<CreateObjectDialogProps>,\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.AddObject,\n resolve: async ({ target, object }) => {\n const space = isSpace(target) ? target : getSpace(target);\n invariant(space, 'Space not found.');\n\n if (space.db.coreDatabase.getAllObjectIds().length >= SPACE_MAX_OBJECTS) {\n return {\n error: new Error('Space limit reached.'),\n intents: [\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${SPACE_PLUGIN}/space-limit`,\n title: ['space limit label', { ns: SPACE_PLUGIN }],\n description: ['space limit description', { ns: SPACE_PLUGIN }],\n duration: 5_000,\n icon: 'ph--warning--regular',\n actionLabel: ['remove deleted objects label', { ns: SPACE_PLUGIN }],\n actionAlt: ['remove deleted objects alt', { ns: SPACE_PLUGIN }],\n closeLabel: ['close label', { ns: 'os' }],\n onAction: () => space.db.coreDatabase.unlinkDeletedObjects(),\n },\n }),\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.limit',\n properties: {\n spaceId: space.id,\n },\n }),\n ]\n : []),\n ],\n };\n }\n\n if (target instanceof CollectionType) {\n target.objects.push(makeRef(object as HasId));\n } else if (isSpace(target)) {\n const collection = space.properties[CollectionType.typename]?.target;\n if (collection instanceof CollectionType) {\n collection.objects.push(makeRef(object as HasId));\n } else {\n // TODO(wittjosiah): Can't add non-echo objects by including in a collection because of types.\n const collection = create(CollectionType, { objects: [makeRef(object as HasId)], views: {} });\n space.properties[CollectionType.typename] = makeRef(collection);\n }\n }\n\n return {\n data: {\n id: fullyQualifiedId(object),\n subject: [fullyQualifiedId(object)],\n object: object as HasId,\n },\n intents: [\n ...(observability\n ? [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.object.add',\n properties: {\n spaceId: space.id,\n objectId: object.id,\n typename: getTypename(object),\n },\n }),\n ]\n : []),\n ],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.RemoveObjects,\n resolve: async ({ objects, target, deletionData }, undo) => {\n const layout = context.requestCapability(Capabilities.Layout);\n\n // All objects must be a member of the same space.\n const space = getSpace(objects[0]);\n invariant(space && objects.every((obj) => isEchoObject(obj) && getSpace(obj) === space));\n const openObjectIds = new Set<string>(layout.active);\n\n if (!undo) {\n const parentCollection: CollectionType = target ?? space.properties[CollectionType.typename]?.target;\n const nestedObjectsList = await Promise.all(objects.map((obj) => getNestedObjects(obj, resolve)));\n\n const deletionData = {\n objects,\n parentCollection,\n indices: objects.map((obj) =>\n parentCollection instanceof CollectionType\n ? parentCollection.objects.findIndex((object) => object.target === obj)\n : -1,\n ),\n nestedObjectsList,\n wasActive: objects\n .flatMap((obj, i) => [obj, ...nestedObjectsList[i]])\n .map((obj) => fullyQualifiedId(obj))\n .filter((id) => openObjectIds.has(id)),\n } satisfies SpaceAction.DeletionData;\n\n if (deletionData.parentCollection instanceof CollectionType) {\n [...deletionData.indices]\n .sort((a, b) => b - a)\n .forEach((index: number) => {\n if (index !== -1) {\n deletionData.parentCollection.objects.splice(index, 1);\n }\n });\n }\n\n deletionData.nestedObjectsList.flat().forEach((obj) => {\n space.db.remove(obj);\n });\n objects.forEach((obj) => space.db.remove(obj));\n\n const undoMessageKey = objects.some((obj) => obj instanceof CollectionType)\n ? 'collection deleted label'\n : objects.length > 1\n ? 'objects deleted label'\n : 'object deleted label';\n\n return {\n undoable: {\n // TODO(ZaymonFC): Pluralize if more than one object.\n message: [undoMessageKey, { ns: SPACE_PLUGIN }],\n data: { deletionData },\n },\n intents:\n deletionData.wasActive.length > 0\n ? [\n createIntent(LayoutAction.Close, {\n part: 'main',\n subject: deletionData.wasActive,\n options: { state: false },\n }),\n ]\n : undefined,\n };\n } else {\n if (\n deletionData?.objects?.length &&\n deletionData.objects.every(isEchoObject) &&\n deletionData.parentCollection instanceof CollectionType\n ) {\n // Restore the object to the space.\n const restoredObjects = deletionData.objects.map((obj: Expando) => space.db.add(obj));\n\n // Restore nested objects to the space.\n deletionData.nestedObjectsList.flat().forEach((obj: Expando) => {\n space.db.add(obj);\n });\n\n deletionData.indices.forEach((index: number, i: number) => {\n if (index !== -1) {\n deletionData.parentCollection.objects.splice(index, 0, makeRef(restoredObjects[i] as Expando));\n }\n });\n\n return {\n intents:\n deletionData.wasActive.length > 0\n ? [\n createIntent(LayoutAction.Open, {\n part: 'main',\n subject: deletionData.wasActive,\n }),\n ]\n : undefined,\n };\n }\n }\n },\n }),\n createResolver({\n intent: SpaceAction.RenameObject,\n resolve: async ({ object, caller }) => ({\n intents: [\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: POPOVER_RENAME_OBJECT,\n options: {\n anchorId: `dxos.org/ui/${caller}/${fullyQualifiedId(object)}`,\n props: object,\n },\n }),\n ],\n }),\n }),\n createResolver({\n intent: SpaceAction.DuplicateObject,\n resolve: async ({ object, target }) => {\n const space = isSpace(target) ? target : getSpace(target);\n invariant(space, 'Space not found.');\n\n const newObject = await cloneObject(object, resolve, space);\n return {\n intents: [createIntent(SpaceAction.AddObject, { object: newObject, target })],\n };\n },\n }),\n createResolver({\n intent: SpaceAction.WaitForObject,\n resolve: async ({ id }) => {\n const state = context.requestCapability(SpaceCapabilities.MutableState);\n state.awaiting = id;\n },\n }),\n createResolver({\n intent: CollectionAction.Create,\n resolve: async ({ name }) => ({\n data: { object: create(CollectionType, { name, objects: [], views: {} }) },\n }),\n }),\n ]);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Capabilities", "contributes", "createIntent", "createResolver", "LayoutAction", "getTypename", "invariant", "create", "makeRef", "Migrations", "AttentionCapabilities", "ClientCapabilities", "ObservabilityAction", "EdgeReplicationSetting", "isSpace", "getSpace", "SpaceState", "fullyQualifiedId", "isEchoObject", "SPACE_MAX_OBJECTS", "createInvitationUrl", "context", "observability", "resolve", "typename", "requestCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "contributes", "IntentResolver", "createResolver", "intent", "SpaceAction", "OpenCreateSpace", "intents", "createIntent", "LayoutAction", "UpdateDialog", "part", "subject", "CREATE_SPACE_DIALOG", "options", "blockAlign", "Create", "name", "edgeReplication", "client", "requestCapability", "ClientCapabilities", "Client", "space", "spaces", "create", "internal", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "waitUntilReady", "collection", "CollectionType", "objects", "views", "properties", "makeRef", "Migrations", "versionProperty", "targetVersion", "data", "ObservabilityAction", "SendEvent", "spaceId", "Join", "invitationCode", "JOIN_DIALOG", "props", "initialInvitationCode", "Share", "filter", "COMPOSER_SPACE_LOCK", "attention", "AttentionCapabilities", "Attention", "current", "at", "target", "startsWith", "undefined", "SPACE_SETTINGS_DIALOG", "initialTab", "Lock", "Unlock", "Rename", "caller", "UpdatePopover", "POPOVER_RENAME_SPACE", "anchorId", "AddSpace", "POPOVER_ADD_SPACE", "_tag", "side", "OpenSettings", "Open", "open", "Close", "close", "Migrate", "version", "state", "SpaceCapabilities", "MutableState", "get", "SpaceState", "SPACE_REQUIRES_MIGRATION", "sdkMigrationRunning", "migrate", "result", "OpenCreateObject", "navigable", "State", "CREATE_OBJECT_DIALOG", "shouldNavigate", "object", "navigableCollections", "AddObject", "isSpace", "getSpace", "invariant", "db", "coreDatabase", "getAllObjectIds", "length", "error", "Error", "AddToast", "SPACE_PLUGIN", "title", "ns", "description", "duration", "icon", "actionLabel", "actionAlt", "closeLabel", "onAction", "unlinkDeletedObjects", "push", "fullyQualifiedId", "objectId", "getTypename", "RemoveObjects", "deletionData", "undo", "layout", "Layout", "every", "obj", "isEchoObject", "openObjectIds", "Set", "active", "parentCollection", "nestedObjectsList", "Promise", "all", "map", "getNestedObjects", "indices", "findIndex", "wasActive", "flatMap", "i", "has", "sort", "a", "b", "forEach", "index", "splice", "flat", "remove", "undoMessageKey", "some", "undoable", "message", "restoredObjects", "add", "RenameObject", "POPOVER_RENAME_OBJECT", "DuplicateObject", "newObject", "cloneObject", "WaitForObject", "awaiting", "CollectionAction"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, Surface, useCapability } from '@dxos/app-framework';\nimport { SettingsStore } from '@dxos/local-storage';\nimport {\n getSpace,\n isEchoObject,\n isReactiveObject,\n isSpace,\n SpaceState,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport { SpaceCapabilities } from './capabilities';\nimport {\n AdvancedObjectSettings,\n BaseObjectSettings,\n CollectionMain,\n CollectionSection,\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n CreateObjectDialog,\n CreateSpaceDialog,\n InlineSyncStatus,\n JOIN_DIALOG,\n JoinDialog,\n MenuFooter,\n POPOVER_RENAME_OBJECT,\n POPOVER_RENAME_SPACE,\n PopoverRenameObject,\n PopoverRenameSpace,\n SmallPresenceLive,\n SPACE_SETTINGS_DIALOG,\n SpacePluginSettings,\n SpacePresence,\n SpaceSettingsDialog,\n SpaceSettingsPanel,\n SyncStatus,\n type CreateObjectDialogProps,\n type SpaceSettingsDialogProps,\n POPOVER_ADD_SPACE,\n PopoverAddSpace,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, type SpaceSettingsProps } from '../types';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SPACE_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data, role, ...rest }) => (\n <Surface\n data={{ id: data.subject.id, subject: data.subject.properties[CollectionType.typename]?.target }}\n role={role}\n {...rest}\n />\n ),\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: CollectionType } => data.subject instanceof CollectionType,\n component: ({ data }) => <CollectionMain collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/settings-panel`,\n // TODO(burdon): Add role name syntax to minimal plugin docs.\n role: 'complementary--settings',\n filter: (data): data is { subject: Space } => isSpace(data.subject),\n component: ({ data }) => <SpaceSettingsPanel space={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/object-settings-base-panel`,\n role: 'complementary--settings',\n position: 'hoist',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <BaseObjectSettings object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/object-settings-advanced-panel`,\n role: 'complementary--settings',\n position: 'fallback',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <AdvancedObjectSettings object={data.subject} />,\n }),\n createSurface({\n id: SPACE_SETTINGS_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: SpaceSettingsDialogProps } => data.component === SPACE_SETTINGS_DIALOG,\n component: ({ data }) => <SpaceSettingsDialog {...data.props} createInvitationUrl={createInvitationUrl} />,\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n createSurface({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n createSurface({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: CreateObjectDialogProps } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => <CreateObjectDialog {...data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_SPACE,\n role: 'popover',\n filter: (data): data is { props: Space } => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),\n component: ({ data }) => <PopoverRenameSpace space={data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_OBJECT,\n role: 'popover',\n filter: (data): data is { props: ReactiveEchoObject<any> } =>\n data.component === POPOVER_RENAME_OBJECT && isReactiveObject(data.props),\n component: ({ data }) => <PopoverRenameObject object={data.props} />,\n }),\n createSurface({\n id: POPOVER_ADD_SPACE,\n role: 'popover',\n filter: (data): data is any => data.component === POPOVER_ADD_SPACE,\n component: () => <PopoverAddSpace />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: ReactiveEchoObject<any>; open?: boolean } =>\n typeof data.id === 'string' && isEchoObject(data.subject),\n component: ({ data }) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const state = useCapability(SpaceCapabilities.MutableState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={state.viewersByObject[data.id]} />;\n },\n }),\n createSurface({\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n id: `${SPACE_PLUGIN}/navtree-presence-fallback`,\n role: 'navtree-item-end',\n position: 'fallback',\n filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',\n component: ({ data }) => <SmallPresenceLive id={data.id} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-sync-status`,\n role: 'navtree-item-end',\n filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),\n component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | ReactiveEchoObject<any> } =>\n isSpace(data.subject) || isEchoObject(data.subject),\n component: ({ data }) => {\n const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);\n const object = isSpace(data.subject)\n ? data.subject.state.get() === SpaceState.SPACE_READY\n ? (space?.properties[CollectionType.typename]?.target as CollectionType)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: CollectionType } => data.subject instanceof CollectionType,\n component: ({ data }) => <CollectionSection collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<SpaceSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SPACE_PLUGIN,\n component: ({ data: { subject } }) => <SpacePluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n"],
5
- "mappings": "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",
6
- "names": ["React", "Capabilities", "contributes", "createSurface", "Surface", "useCapability", "SettingsStore", "getSpace", "isEchoObject", "isReactiveObject", "isSpace", "SpaceState", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SPACE_PLUGIN", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "Surface", "properties", "CollectionType", "typename", "target", "position", "CollectionMain", "collection", "SpaceSettingsPanel", "space", "isEchoObject", "BaseObjectSettings", "object", "AdvancedObjectSettings", "SPACE_SETTINGS_DIALOG", "SpaceSettingsDialog", "props", "JOIN_DIALOG", "JoinDialog", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "POPOVER_RENAME_SPACE", "PopoverRenameSpace", "POPOVER_RENAME_OBJECT", "isReactiveObject", "PopoverRenameObject", "POPOVER_ADD_SPACE", "PopoverAddSpace", "useCapability", "SpaceCapabilities", "MutableState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "undefined", "SpacePresence", "CollectionSection", "SettingsStore", "prefix", "SpacePluginSettings", "settings", "value", "MenuFooter", "SyncStatus"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/spaces-ready.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, createIntent, type PluginsContext, Capabilities, LayoutAction } from '@dxos/app-framework';\nimport { EventSubscriptions } from '@dxos/async';\nimport { Expando } from '@dxos/echo-schema';\nimport { scheduledEffect } from '@dxos/echo-signals/core';\nimport { create } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DeckCapabilities } from '@dxos/plugin-deck';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { PublicKey } from '@dxos/react-client';\nimport { Filter, FQ_ID_LENGTH, parseFullyQualifiedId, SpaceState } from '@dxos/react-client/echo';\nimport { ComplexMap, reduceGroupBy } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SpaceAction } from '../types';\nimport { COMPOSER_SPACE_LOCK, SHARED } from '../util';\n\nconst ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;\nconst WAIT_FOR_OBJECT_TIMEOUT = 1000;\n\nexport default async (context: PluginsContext) => {\n const subscriptions = new EventSubscriptions();\n const spaceSubscriptions = new EventSubscriptions();\n\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const layout = context.requestCapability(Capabilities.Layout);\n const deck = context.requestCapability(DeckCapabilities.DeckState);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const state = context.requestCapability(SpaceCapabilities.MutableState);\n const client = context.requestCapability(ClientCapabilities.Client);\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n if (deck.activeDeck === 'default') {\n await dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: defaultSpace.id }));\n }\n\n // Initialize space sharing lock in default space.\n if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== 'boolean') {\n defaultSpace.properties[COMPOSER_SPACE_LOCK] = true;\n }\n\n const {\n objects: [spacesOrder],\n } = await defaultSpace.db.query(Filter.schema(Expando, { key: SHARED })).run();\n if (!spacesOrder) {\n // TODO(wittjosiah): Cannot be a Folder because Spaces are not TypedObjects so can't be saved in the database.\n // Instead, we store order as an array of space ids.\n defaultSpace.db.add(create({ key: SHARED, order: [] }));\n }\n\n // Await missing objects.\n subscriptions.add(\n scheduledEffect(\n () => ({ active: layout.active }),\n ({ active }) => {\n if (active.length !== 1) {\n return;\n }\n\n const node = graph.findNode(active[0]);\n if (!node && active[0].length === FQ_ID_LENGTH) {\n const timeout = setTimeout(async () => {\n const node = graph.findNode(active[0]);\n if (!node) {\n await dispatch(createIntent(SpaceAction.WaitForObject, { id: active[0] }));\n }\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n return () => clearTimeout(timeout);\n }\n },\n ),\n );\n\n // Cache space names.\n subscriptions.add(\n client.spaces.subscribe(async (spaces) => {\n // TODO(wittjosiah): Remove. This is a hack to be able to migrate the default space properties.\n if (defaultSpace.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n await defaultSpace.internal.migrate();\n }\n\n spaces\n .filter((space) => space.state.get() === SpaceState.SPACE_READY)\n .forEach((space) => {\n subscriptions.add(\n scheduledEffect(\n () => ({ name: space.properties.name }),\n ({ name }) => (state.spaceNames[space.id] = name),\n ),\n );\n });\n }).unsubscribe,\n );\n\n // Broadcast active node to other peers in the space.\n subscriptions.add(\n scheduledEffect(\n () => ({ current: attention.current, active: layout.active, inactive: layout.inactive }),\n ({ current, active, inactive }) => {\n const send = () => {\n const spaces = client.spaces.get();\n const identity = client.halo.identity.get();\n if (identity) {\n // Group parts by space for efficient messaging.\n const idsBySpace = reduceGroupBy(active, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(inactive, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n // NOTE: Ensure all spaces are included so that we send the correct `removed` object arrays.\n for (const space of spaces) {\n if (!idsBySpace.has(space.id)) {\n idsBySpace.set(space.id, []);\n }\n }\n\n for (const [spaceId, added] of idsBySpace) {\n const removed = removedBySpace.get(spaceId) ?? [];\n const space = spaces.find((space) => space.id === spaceId);\n if (!space) {\n continue;\n }\n\n void space\n .postMessage('viewing', {\n identityKey: identity.identityKey.toHex(),\n attended: current,\n added,\n removed,\n })\n // TODO(burdon): This seems defensive; why would this fail? Backoff interval.\n .catch((err) => {\n log.warn('Failed to broadcast active node for presence.', { err: err.message });\n });\n }\n }\n };\n\n send();\n // Send at interval to allow peers to expire entries if they become disconnected.\n const interval = setInterval(() => send(), ACTIVE_NODE_BROADCAST_INTERVAL);\n return () => clearInterval(interval);\n },\n ),\n );\n\n // Listen for active nodes from other peers in the space.\n subscriptions.add(\n client.spaces.subscribe((spaces) => {\n spaceSubscriptions.clear();\n spaces.forEach((space) => {\n spaceSubscriptions.add(\n space.listen('viewing', (message) => {\n const { added, removed, attended } = message.payload;\n\n const identityKey = PublicKey.safeFrom(message.payload.identityKey);\n const currentIdentity = client.halo.identity.get();\n if (\n identityKey &&\n !currentIdentity?.identityKey.equals(identityKey) &&\n Array.isArray(added) &&\n Array.isArray(removed)\n ) {\n added.forEach((id) => {\n if (typeof id === 'string') {\n if (!(id in state.viewersByObject)) {\n state.viewersByObject[id] = new ComplexMap(PublicKey.hash);\n }\n state.viewersByObject[id]!.set(identityKey, {\n lastSeen: Date.now(),\n currentlyAttended: new Set(attended).has(id),\n });\n if (!state.viewersByIdentity.has(identityKey)) {\n state.viewersByIdentity.set(identityKey, new Set());\n }\n state.viewersByIdentity.get(identityKey)!.add(id);\n }\n });\n\n removed.forEach((id) => {\n if (typeof id === 'string') {\n state.viewersByObject[id]?.delete(identityKey);\n state.viewersByIdentity.get(identityKey)?.delete(id);\n // It’s okay for these to be empty sets/maps, reduces churn.\n }\n });\n }\n }),\n );\n });\n }).unsubscribe,\n );\n\n // Enable edge replication for all spaces.\n try {\n await Promise.all(\n client.spaces.get().map((space) => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED)),\n );\n state.enabledEdgeReplication = true;\n } catch (err) {\n log.catch(err);\n }\n\n return contributes(Capabilities.Null, null, () => {\n spaceSubscriptions.clear();\n subscriptions.clear();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAIA,SAASA,aAAaC,cAAmCC,cAAcC,oBAAoB;AAC3F,SAASC,0BAA0B;AACnC,SAASC,eAAe;AACxB,SAASC,uBAAuB;AAChC,SAASC,cAAc;AACvB,SAASC,WAAW;AACpB,SAASC,6BAA6B;AACtC,SAASC,0BAA0B;AACnC,SAASC,wBAAwB;AACjC,SAASC,8BAA8B;AACvC,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,cAAcC,uBAAuBC,kBAAkB;AACxE,SAASC,YAAYC,qBAAqB;;AAM1C,IAAMC,iCAAiC;AACvC,IAAMC,0BAA0B;AAEhC,IAAA,uBAAe,OAAOC,YAAAA;AACpB,QAAMC,gBAAgB,IAAIC,mBAAAA;AAC1B,QAAMC,qBAAqB,IAAID,mBAAAA;AAE/B,QAAM,EAAEE,iBAAiBC,SAAQ,IAAKL,QAAQM,kBAAkBC,aAAaC,gBAAgB;AAC7F,QAAM,EAAEC,MAAK,IAAKT,QAAQM,kBAAkBC,aAAaG,QAAQ;AACjE,QAAMC,SAASX,QAAQM,kBAAkBC,aAAaK,MAAM;AAC5D,QAAMC,OAAOb,QAAQM,kBAAkBQ,iBAAiBC,SAAS;AACjE,QAAMC,YAAYhB,QAAQM,kBAAkBW,sBAAsBC,SAAS;AAC3E,QAAMC,QAAQnB,QAAQM,kBAAkBc,kBAAkBC,YAAY;AACtE,QAAMC,SAAStB,QAAQM,kBAAkBiB,mBAAmBC,MAAM;AAElE,QAAMC,eAAeH,OAAOI,OAAOC;AACnC,QAAMF,aAAaG,eAAc;AAEjC,MAAIf,KAAKgB,eAAe,WAAW;AACjC,UAAMxB,SAASyB,aAAaC,aAAaC,iBAAiB;MAAEC,MAAM;MAAaC,SAAST,aAAaU;IAAG,CAAA,CAAA;EAC1G;AAGA,MAAI,OAAOV,aAAaW,WAAWC,mBAAAA,MAAyB,WAAW;AACrEZ,iBAAaW,WAAWC,mBAAAA,IAAuB;EACjD;AAEA,QAAM,EACJC,SAAS,CAACC,WAAAA,EAAY,IACpB,MAAMd,aAAae,GAAGC,MAAMC,OAAOC,OAAOC,SAAS;IAAEC,KAAKC;EAAO,CAAA,CAAA,EAAIC,IAAG;AAC5E,MAAI,CAACR,aAAa;AAGhBd,iBAAae,GAAGQ,IAAIC,OAAO;MAAEJ,KAAKC;MAAQI,OAAO,CAAA;IAAG,CAAA,CAAA;EACtD;AAGAjD,gBAAc+C,IACZG,gBACE,OAAO;IAAEC,QAAQzC,OAAOyC;EAAO,IAC/B,CAAC,EAAEA,OAAM,MAAE;AACT,QAAIA,OAAOC,WAAW,GAAG;AACvB;IACF;AAEA,UAAMC,OAAO7C,MAAM8C,SAASH,OAAO,CAAA,CAAE;AACrC,QAAI,CAACE,QAAQF,OAAO,CAAA,EAAGC,WAAWG,cAAc;AAC9C,YAAMC,UAAUC,WAAW,YAAA;AACzB,cAAMJ,QAAO7C,MAAM8C,SAASH,OAAO,CAAA,CAAE;AACrC,YAAI,CAACE,OAAM;AACT,gBAAMjD,SAASyB,aAAa6B,YAAYC,eAAe;YAAEzB,IAAIiB,OAAO,CAAA;UAAG,CAAA,CAAA;QACzE;MACF,GAAGrD,uBAAAA;AAEH,aAAO,MAAM8D,aAAaJ,OAAAA;IAC5B;EACF,CAAA,CAAA;AAKJxD,gBAAc+C,IACZ1B,OAAOI,OAAOoC,UAAU,OAAOpC,WAAAA;AAE7B,QAAID,aAAaN,MAAM4C,IAAG,MAAOC,WAAWC,0BAA0B;AACpE,YAAMxC,aAAayC,SAASC,QAAO;IACrC;AAEAzC,WACG0C,OAAO,CAACC,UAAUA,MAAMlD,MAAM4C,IAAG,MAAOC,WAAWM,WAAW,EAC9DC,QAAQ,CAACF,UAAAA;AACRpE,oBAAc+C,IACZG,gBACE,OAAO;QAAEqB,MAAMH,MAAMjC,WAAWoC;MAAK,IACrC,CAAC,EAAEA,KAAI,MAAQrD,MAAMsD,WAAWJ,MAAMlC,EAAE,IAAIqC,IAAAA,CAAAA;IAGlD,CAAA;EACJ,CAAA,EAAGE,WAAW;AAIhBzE,gBAAc+C,IACZG,gBACE,OAAO;IAAEwB,SAAS3D,UAAU2D;IAASvB,QAAQzC,OAAOyC;IAAQwB,UAAUjE,OAAOiE;EAAS,IACtF,CAAC,EAAED,SAASvB,QAAQwB,SAAQ,MAAE;AAC5B,UAAMC,OAAO,MAAA;AACX,YAAMnD,SAASJ,OAAOI,OAAOqC,IAAG;AAChC,YAAMe,WAAWxD,OAAOyD,KAAKD,SAASf,IAAG;AACzC,UAAIe,UAAU;AAEZ,cAAME,aAAaC,cAAc7B,QAAQ,CAACjB,OAAAA;AACxC,cAAI;AACF,kBAAM,CAAC+C,OAAAA,IAAWC,sBAAsBhD,EAAAA;AACxC,mBAAO+C;UACT,QAAQ;AACN,mBAAO;UACT;QACF,CAAA;AAEA,cAAME,iBAAiBH,cAAcL,UAAU,CAACzC,OAAAA;AAC9C,cAAI;AACF,kBAAM,CAAC+C,OAAAA,IAAWC,sBAAsBhD,EAAAA;AACxC,mBAAO+C;UACT,QAAQ;AACN,mBAAO;UACT;QACF,CAAA;AAGA,mBAAWb,SAAS3C,QAAQ;AAC1B,cAAI,CAACsD,WAAWK,IAAIhB,MAAMlC,EAAE,GAAG;AAC7B6C,uBAAWM,IAAIjB,MAAMlC,IAAI,CAAA,CAAE;UAC7B;QACF;AAEA,mBAAW,CAAC+C,SAASK,KAAAA,KAAUP,YAAY;AACzC,gBAAMQ,UAAUJ,eAAerB,IAAImB,OAAAA,KAAY,CAAA;AAC/C,gBAAMb,QAAQ3C,OAAO+D,KAAK,CAACpB,WAAUA,OAAMlC,OAAO+C,OAAAA;AAClD,cAAI,CAACb,OAAO;AACV;UACF;AAEA,eAAKA,MACFqB,YAAY,WAAW;YACtBC,aAAab,SAASa,YAAYC,MAAK;YACvCC,UAAUlB;YACVY;YACAC;UACF,CAAA,EAECM,MAAM,CAACC,QAAAA;AACNC,gBAAIC,KAAK,iDAAiD;cAAEF,KAAKA,IAAIG;YAAQ,GAAA;;;;;;UAC/E,CAAA;QACJ;MACF;IACF;AAEArB,SAAAA;AAEA,UAAMsB,WAAWC,YAAY,MAAMvB,KAAAA,GAAQ/E,8BAAAA;AAC3C,WAAO,MAAMuG,cAAcF,QAAAA;EAC7B,CAAA,CAAA;AAKJlG,gBAAc+C,IACZ1B,OAAOI,OAAOoC,UAAU,CAACpC,WAAAA;AACvBvB,uBAAmBmG,MAAK;AACxB5E,WAAO6C,QAAQ,CAACF,UAAAA;AACdlE,yBAAmB6C,IACjBqB,MAAMkC,OAAO,WAAW,CAACL,YAAAA;AACvB,cAAM,EAAEX,OAAOC,SAASK,SAAQ,IAAKK,QAAQM;AAE7C,cAAMb,cAAcc,UAAUC,SAASR,QAAQM,QAAQb,WAAW;AAClE,cAAMgB,kBAAkBrF,OAAOyD,KAAKD,SAASf,IAAG;AAChD,YACE4B,eACA,CAACgB,iBAAiBhB,YAAYiB,OAAOjB,WAAAA,KACrCkB,MAAMC,QAAQvB,KAAAA,KACdsB,MAAMC,QAAQtB,OAAAA,GACd;AACAD,gBAAMhB,QAAQ,CAACpC,OAAAA;AACb,gBAAI,OAAOA,OAAO,UAAU;AAC1B,kBAAI,EAAEA,MAAMhB,MAAM4F,kBAAkB;AAClC5F,sBAAM4F,gBAAgB5E,EAAAA,IAAM,IAAI6E,WAAWP,UAAUQ,IAAI;cAC3D;AACA9F,oBAAM4F,gBAAgB5E,EAAAA,EAAKmD,IAAIK,aAAa;gBAC1CuB,UAAUC,KAAKC,IAAG;gBAClBC,mBAAmB,IAAIC,IAAIzB,QAAAA,EAAUR,IAAIlD,EAAAA;cAC3C,CAAA;AACA,kBAAI,CAAChB,MAAMoG,kBAAkBlC,IAAIM,WAAAA,GAAc;AAC7CxE,sBAAMoG,kBAAkBjC,IAAIK,aAAa,oBAAI2B,IAAAA,CAAAA;cAC/C;AACAnG,oBAAMoG,kBAAkBxD,IAAI4B,WAAAA,EAAc3C,IAAIb,EAAAA;YAChD;UACF,CAAA;AAEAqD,kBAAQjB,QAAQ,CAACpC,OAAAA;AACf,gBAAI,OAAOA,OAAO,UAAU;AAC1BhB,oBAAM4F,gBAAgB5E,EAAAA,GAAKqF,OAAO7B,WAAAA;AAClCxE,oBAAMoG,kBAAkBxD,IAAI4B,WAAAA,GAAc6B,OAAOrF,EAAAA;YAEnD;UACF,CAAA;QACF;MACF,CAAA,CAAA;IAEJ,CAAA;EACF,CAAA,EAAGuC,WAAW;AAIhB,MAAI;AACF,UAAM+C,QAAQC,IACZpG,OAAOI,OAAOqC,IAAG,EAAG4D,IAAI,CAACtD,UAAUA,MAAMH,SAAS0D,6BAA6BC,uBAAuBC,OAAO,CAAA,CAAA;AAE/G3G,UAAM4G,yBAAyB;EACjC,SAAShC,KAAK;AACZC,QAAIF,MAAMC,KAAAA,QAAAA;;;;;;EACZ;AAEA,SAAOiC,YAAYzH,aAAa0H,MAAM,MAAM,MAAA;AAC1C9H,uBAAmBmG,MAAK;AACxBrG,kBAAcqG,MAAK;EACrB,CAAA;AACF;",
6
- "names": ["contributes", "createIntent", "Capabilities", "LayoutAction", "EventSubscriptions", "Expando", "scheduledEffect", "create", "log", "AttentionCapabilities", "ClientCapabilities", "DeckCapabilities", "EdgeReplicationSetting", "PublicKey", "Filter", "FQ_ID_LENGTH", "parseFullyQualifiedId", "SpaceState", "ComplexMap", "reduceGroupBy", "ACTIVE_NODE_BROADCAST_INTERVAL", "WAIT_FOR_OBJECT_TIMEOUT", "context", "subscriptions", "EventSubscriptions", "spaceSubscriptions", "dispatchPromise", "dispatch", "requestCapability", "Capabilities", "IntentDispatcher", "graph", "AppGraph", "layout", "Layout", "deck", "DeckCapabilities", "DeckState", "attention", "AttentionCapabilities", "Attention", "state", "SpaceCapabilities", "MutableState", "client", "ClientCapabilities", "Client", "defaultSpace", "spaces", "default", "waitUntilReady", "activeDeck", "createIntent", "LayoutAction", "SwitchWorkspace", "part", "subject", "id", "properties", "COMPOSER_SPACE_LOCK", "objects", "spacesOrder", "db", "query", "Filter", "schema", "Expando", "key", "SHARED", "run", "add", "create", "order", "scheduledEffect", "active", "length", "node", "findNode", "FQ_ID_LENGTH", "timeout", "setTimeout", "SpaceAction", "WaitForObject", "clearTimeout", "subscribe", "get", "SpaceState", "SPACE_REQUIRES_MIGRATION", "internal", "migrate", "filter", "space", "SPACE_READY", "forEach", "name", "spaceNames", "unsubscribe", "current", "inactive", "send", "identity", "halo", "idsBySpace", "reduceGroupBy", "spaceId", "parseFullyQualifiedId", "removedBySpace", "has", "set", "added", "removed", "find", "postMessage", "identityKey", "toHex", "attended", "catch", "err", "log", "warn", "message", "interval", "setInterval", "clearInterval", "clear", "listen", "payload", "PublicKey", "safeFrom", "currentIdentity", "equals", "Array", "isArray", "viewersByObject", "ComplexMap", "hash", "lastSeen", "Date", "now", "currentlyAttended", "Set", "viewersByIdentity", "delete", "Promise", "all", "map", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "enabledEdgeReplication", "contributes", "Null"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/state.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { PublicKey } from '@dxos/keys';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { ComplexMap } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SPACE_PLUGIN } from '../meta';\nimport { type PluginState } from '../types';\n\nexport default (context: PluginsContext) => {\n const state = new LocalStorageStore<PluginState>(SPACE_PLUGIN, {\n awaiting: undefined,\n spaceNames: {},\n viewersByObject: {},\n // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n viewersByIdentity: new ComplexMap(PublicKey.hash),\n sdkMigrationRunning: {},\n navigableCollections: false,\n enabledEdgeReplication: false,\n });\n\n state\n .prop({ key: 'spaceNames', type: LocalStorageStore.json<Record<string, string>>() })\n .prop({ key: 'enabledEdgeReplication', type: LocalStorageStore.bool() });\n\n const manager = context.requestCapability(Capabilities.PluginManager);\n const unsubscribe = effect(() => {\n // TODO(wittjosiah): Find a way to make this capability-based.\n const enabled = manager.enabled.includes('dxos.org/plugin/stack');\n if (enabled !== state.values.navigableCollections) {\n state.values.navigableCollections = enabled;\n }\n });\n\n return contributes(SpaceCapabilities.State, state.values, () => {\n unsubscribe();\n state.close();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,cAAcC,mBAAwC;AAC/D,SAASC,iBAAiB;AAC1B,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAM3B,IAAA,gBAAe,CAACC,YAAAA;AACd,QAAMC,QAAQ,IAAIC,kBAA+BC,cAAc;IAC7DC,UAAUC;IACVC,YAAY,CAAC;IACbC,iBAAiB,CAAC;;IAElBC,mBAAmB,IAAIC,WAAWC,UAAUC,IAAI;IAChDC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,wBAAwB;EAC1B,CAAA;AAEAb,QACGc,KAAK;IAAEC,KAAK;IAAcC,MAAMf,kBAAkBgB,KAAI;EAA2B,CAAA,EACjFH,KAAK;IAAEC,KAAK;IAA0BC,MAAMf,kBAAkBiB,KAAI;EAAG,CAAA;AAExE,QAAMC,UAAUpB,QAAQqB,kBAAkBC,aAAaC,aAAa;AACpE,QAAMC,cAAcC,OAAO,MAAA;AAEzB,UAAMC,UAAUN,QAAQM,QAAQC,SAAS,uBAAA;AACzC,QAAID,YAAYzB,MAAM2B,OAAOf,sBAAsB;AACjDZ,YAAM2B,OAAOf,uBAAuBa;IACtC;EACF,CAAA;AAEA,SAAOG,YAAYC,kBAAkBC,OAAO9B,MAAM2B,QAAQ,MAAA;AACxDJ,gBAAAA;AACAvB,UAAM+B,MAAK;EACb,CAAA;AACF;",
6
- "names": ["effect", "Capabilities", "contributes", "PublicKey", "LocalStorageStore", "ComplexMap", "context", "state", "LocalStorageStore", "SPACE_PLUGIN", "awaiting", "undefined", "spaceNames", "viewersByObject", "viewersByIdentity", "ComplexMap", "PublicKey", "hash", "sdkMigrationRunning", "navigableCollections", "enabledEdgeReplication", "prop", "key", "type", "json", "bool", "manager", "requestCapability", "Capabilities", "PluginManager", "unsubscribe", "effect", "enabled", "includes", "values", "contributes", "SpaceCapabilities", "State", "close"]
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"AdvancedObjectSettings.d.ts","sourceRoot":"","sources":["../../../../../src/components/AdvancedObjectSettings/AdvancedObjectSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAW,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAY3E,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,eAAgB,2BAA2B,sBAgD7E,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ForeignKeys.d.ts","sourceRoot":"","sources":["../../../../../src/components/AdvancedObjectSettings/ForeignKeys.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC,CAAC;AAGF,eAAO,MAAM,WAAW,uBAAwB,gBAAgB,sBAQ/D,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './AdvancedObjectSettings';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/AdvancedObjectSettings/index.ts"],"names":[],"mappings":"AAIA,cAAc,0BAA0B,CAAC"}
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import { type ReactiveEchoObject } from '@dxos/react-client/echo';
3
- export type BaseObjectSettingsProps = {
4
- object: ReactiveEchoObject<any>;
5
- };
6
- export declare const BaseObjectSettings: ({ object }: BaseObjectSettingsProps) => React.JSX.Element;
7
- //# sourceMappingURL=BaseObjectSettings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseObjectSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/BaseObjectSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAKlE,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,eAAgB,uBAAuB,sBAwBrE,CAAC"}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { type SpacePanelProps } from '@dxos/shell/react';
3
- import { type SpaceSettingsPanelProps } from './SpaceSettingsPanel';
4
- export declare const SPACE_SETTINGS_DIALOG = "dxos.org/plugin/space/SpaceSettingsDialog";
5
- export type SpaceSettingsTab = 'members' | 'settings';
6
- export type SpaceSettingsDialogProps = {
7
- initialTab?: SpaceSettingsTab;
8
- namesCache?: Record<string, string>;
9
- } & SpaceSettingsPanelProps & Pick<SpacePanelProps, 'createInvitationUrl' | 'target'>;
10
- export declare const SpaceSettingsDialog: ({ space, target, createInvitationUrl, initialTab, namesCache, }: SpaceSettingsDialogProps) => React.JSX.Element;
11
- //# sourceMappingURL=SpaceSettingsDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpaceSettingsDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/SpaceSettings/SpaceSettingsDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAsB,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAKxF,eAAO,MAAM,qBAAqB,8CAAwC,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,GAAG,uBAAuB,GACzB,IAAI,CAAC,eAAe,EAAE,qBAAqB,GAAG,QAAQ,CAAC,CAAC;AAE1D,eAAO,MAAM,mBAAmB,oEAM7B,wBAAwB,sBAsF1B,CAAC"}
@@ -1,7 +0,0 @@
1
- import '@dxos-theme';
2
- import { type Meta, type StoryObj } from '@storybook/react';
3
- import { SpaceSettingsDialog } from './SpaceSettingsDialog';
4
- declare const meta: Meta;
5
- export default meta;
6
- export declare const Default: StoryObj<typeof SpaceSettingsDialog>;
7
- //# sourceMappingURL=SpaceSettingsDialog.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpaceSettingsDialog.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SpaceSettings/SpaceSettingsDialog.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,OAAO,EAAE,mBAAmB,EAAiC,MAAM,uBAAuB,CAAC;AAc3F,QAAA,MAAM,IAAI,EAAE,IAUX,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,OAAO,mBAAmB,CAAM,CAAC"}
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import { type Space } from '@dxos/react-client/echo';
3
- export type SpaceSettingsPanelProps = {
4
- space: Space;
5
- };
6
- export declare const SpaceSettingsPanel: ({ space }: SpaceSettingsPanelProps) => React.JSX.Element;
7
- //# sourceMappingURL=SpaceSettingsPanel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpaceSettingsPanel.d.ts","sourceRoot":"","sources":["../../../../../src/components/SpaceSettings/SpaceSettingsPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAKrD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAOrD,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,kBAAkB,cAAe,uBAAuB,sBA8DpE,CAAC"}
@@ -1,7 +0,0 @@
1
- import '@dxos-theme';
2
- import { type Meta, type StoryObj } from '@storybook/react';
3
- import { SpaceSettingsPanel } from './SpaceSettingsPanel';
4
- declare const meta: Meta;
5
- export default meta;
6
- export declare const Default: StoryObj<typeof SpaceSettingsPanel>;
7
- //# sourceMappingURL=SpaceSettingsPanel.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpaceSettingsPanel.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SpaceSettings/SpaceSettingsPanel.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5D,OAAO,EAAE,kBAAkB,EAAgC,MAAM,sBAAsB,CAAC;AAYxF,QAAA,MAAM,IAAI,EAAE,IASX,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,OAAO,kBAAkB,CAAM,CAAC"}
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './AdvancedObjectSettings';
@@ -1,40 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { type ReactiveEchoObject } from '@dxos/react-client/echo';
8
- import { Input, useTranslation } from '@dxos/react-ui';
9
-
10
- import { SPACE_PLUGIN } from '../meta';
11
-
12
- export type BaseObjectSettingsProps = {
13
- object: ReactiveEchoObject<any>;
14
- };
15
-
16
- export const BaseObjectSettings = ({ object }: BaseObjectSettingsProps) => {
17
- const { t } = useTranslation(SPACE_PLUGIN);
18
- const inputRef = React.useRef<HTMLInputElement>(null);
19
- // TODO(burdon): Standardize forms.
20
- return (
21
- <div role='form' className='flex flex-col w-full p-2 gap-1'>
22
- <Input.Root>
23
- <Input.Label>{t('name label')}</Input.Label>
24
- <Input.TextInput
25
- ref={inputRef}
26
- placeholder={t('name placeholder')}
27
- value={object.name ?? ''}
28
- onChange={(event) => {
29
- object.name = event.target.value;
30
- }}
31
- onKeyDown={(event) => {
32
- if (event.key === 'Enter') {
33
- inputRef.current?.blur();
34
- }
35
- }}
36
- />
37
- </Input.Root>
38
- </div>
39
- );
40
- };
@@ -1,43 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type Meta, type StoryObj } from '@storybook/react';
8
- import React from 'react';
9
-
10
- import { useClientProvider, withClientProvider } from '@dxos/react-client/testing';
11
- import { Dialog } from '@dxos/react-ui';
12
- import { osTranslations } from '@dxos/shell/react';
13
- import { withLayout, withTheme } from '@dxos/storybook-utils';
14
-
15
- import { SpaceSettingsDialog, type SpaceSettingsDialogProps } from './SpaceSettingsDialog';
16
- import translations from '../../translations';
17
-
18
- const Story = (args: Partial<SpaceSettingsDialogProps>) => {
19
- const { space } = useClientProvider();
20
- return (
21
- <Dialog.Root open>
22
- <Dialog.Overlay blockAlign='start'>
23
- <SpaceSettingsDialog {...args} space={space!} />
24
- </Dialog.Overlay>
25
- </Dialog.Root>
26
- );
27
- };
28
-
29
- const meta: Meta = {
30
- title: 'plugins/plugin-space/SpaceSettingsDialog',
31
- component: SpaceSettingsDialog,
32
- render: Story,
33
- decorators: [
34
- withClientProvider({ createIdentity: true, createSpace: true }),
35
- withTheme,
36
- withLayout({ tooltips: true }),
37
- ],
38
- parameters: { translations: [...translations, osTranslations] },
39
- };
40
-
41
- export default meta;
42
-
43
- export const Default: StoryObj<typeof SpaceSettingsDialog> = {};