@dxos/plugin-space 0.8.4-main.5ea62a8 → 0.8.4-main.72ec0f3

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 (338) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionArticle-WTHWY4YS.mjs} +10 -10
  2. package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs +141 -0
  4. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs +144 -0
  6. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs +116 -0
  8. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-FLF7XMQO.mjs → app-graph-builder-VQAB3GCQ.mjs} +109 -97
  10. package/dist/lib/browser/app-graph-builder-VQAB3GCQ.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-3A6KBYWT.mjs → app-graph-serializer-KSLKMEPP.mjs} +19 -19
  12. package/dist/lib/browser/app-graph-serializer-KSLKMEPP.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-DCY3W36E.mjs → chunk-ERQMHU7L.mjs} +71 -61
  14. package/dist/lib/browser/chunk-ERQMHU7L.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-J6YZG77T.mjs → chunk-J2BUK5E6.mjs} +554 -481
  16. package/dist/lib/browser/chunk-J2BUK5E6.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-K5J7ZB5P.mjs +20 -0
  18. package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-RQVV4XVF.mjs → chunk-M2Z6D4ZI.mjs} +27 -21
  20. package/dist/lib/browser/chunk-M2Z6D4ZI.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-WAXS2ZVX.mjs → chunk-OLBBSOVI.mjs} +26 -13
  22. package/dist/lib/browser/chunk-OLBBSOVI.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-PU5IOFMG.mjs +167 -0
  24. package/dist/lib/browser/chunk-PU5IOFMG.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
  26. package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-WJXU4GKV.mjs +19 -0
  28. package/dist/lib/browser/chunk-WJXU4GKV.mjs.map +7 -0
  29. package/dist/lib/browser/{identity-created-T6ZNVE7S.mjs → identity-created-NAXTPQXE.mjs} +5 -5
  30. package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +89 -85
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-7E3IZIJS.mjs → intent-resolver-Q2XWHAVA.mjs} +78 -84
  34. package/dist/lib/browser/intent-resolver-Q2XWHAVA.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/react-root-MM4HADPE.mjs +30 -0
  37. package/dist/lib/browser/react-root-MM4HADPE.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-GL4CE2F4.mjs → react-surface-SGZC3Y4U.mjs} +71 -105
  39. package/dist/lib/browser/react-surface-SGZC3Y4U.mjs.map +7 -0
  40. package/dist/lib/browser/{schema-defs-YDPFZELA.mjs → schema-defs-QPI2JU3X.mjs} +6 -6
  41. package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-B6MMHLPS.mjs → settings-WKLGKUHQ.mjs} +5 -5
  43. package/dist/lib/browser/{settings-B6MMHLPS.mjs.map → settings-WKLGKUHQ.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-QVABOCO3.mjs → spaces-ready-C5QC2UFL.mjs} +15 -14
  45. package/dist/lib/browser/spaces-ready-C5QC2UFL.mjs.map +7 -0
  46. package/dist/lib/browser/{state-2RGW7FQG.mjs → state-Q7YRE5KG.mjs} +7 -7
  47. package/dist/lib/browser/state-Q7YRE5KG.mjs.map +7 -0
  48. package/dist/lib/browser/types/index.mjs +2 -2
  49. package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionArticle-KHXYT3SH.mjs} +10 -10
  50. package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
  51. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs +142 -0
  52. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs +145 -0
  54. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs.map +7 -0
  55. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs +117 -0
  56. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs.map +7 -0
  57. package/dist/lib/node-esm/{app-graph-builder-D5YPOJS5.mjs → app-graph-builder-24JCLJPX.mjs} +109 -97
  58. package/dist/lib/node-esm/app-graph-builder-24JCLJPX.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-M45TH5LR.mjs → app-graph-serializer-R723K764.mjs} +19 -19
  60. package/dist/lib/node-esm/app-graph-serializer-R723K764.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-WKQTO37U.mjs → chunk-2PN7QNGV.mjs} +27 -21
  62. package/dist/lib/node-esm/chunk-2PN7QNGV.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
  64. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-H4JILUJK.mjs +20 -0
  66. package/dist/lib/node-esm/chunk-H4JILUJK.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-ZCEH2VYE.mjs → chunk-ITQFSFQ3.mjs} +554 -481
  68. package/dist/lib/node-esm/chunk-ITQFSFQ3.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-TJPQDQNI.mjs +168 -0
  70. package/dist/lib/node-esm/chunk-TJPQDQNI.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-AUQ3SKL2.mjs → chunk-VH2EBZEV.mjs} +71 -61
  72. package/dist/lib/node-esm/chunk-VH2EBZEV.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-HYIZVPOA.mjs → chunk-WC4VBFMA.mjs} +26 -13
  74. package/dist/lib/node-esm/chunk-WC4VBFMA.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs +21 -0
  76. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +7 -0
  77. package/dist/lib/node-esm/{identity-created-AL7NNCKH.mjs → identity-created-OXLKCJE3.mjs} +5 -5
  78. package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +89 -85
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-UVO4MKWX.mjs → intent-resolver-YK4ESSET.mjs} +78 -84
  82. package/dist/lib/node-esm/intent-resolver-YK4ESSET.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/{react-root-5EKYI66P.mjs → react-root-5ANDLQMX.mjs} +13 -12
  85. package/dist/lib/node-esm/react-root-5ANDLQMX.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-IOC6YSVQ.mjs → react-surface-V7J2QB44.mjs} +71 -105
  87. package/dist/lib/node-esm/react-surface-V7J2QB44.mjs.map +7 -0
  88. package/dist/lib/node-esm/{schema-defs-OYBCWKAS.mjs → schema-defs-ZS2D47XW.mjs} +6 -6
  89. package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs.map +7 -0
  90. package/dist/lib/node-esm/{settings-IOFU6EAS.mjs → settings-RBB5633M.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-IOFU6EAS.mjs.map → settings-RBB5633M.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-MS6GHPFR.mjs → spaces-ready-SJCXV6YH.mjs} +15 -14
  93. package/dist/lib/node-esm/spaces-ready-SJCXV6YH.mjs.map +7 -0
  94. package/dist/lib/node-esm/{state-7VBVBGNS.mjs → state-362I5BMK.mjs} +7 -7
  95. package/dist/lib/node-esm/state-362I5BMK.mjs.map +7 -0
  96. package/dist/lib/node-esm/types/index.mjs +2 -2
  97. package/dist/types/src/SpacePlugin.d.ts +1 -1
  98. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/capabilities.d.ts +6 -5
  101. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  106. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  107. package/dist/types/src/components/CollectionArticle.d.ts +6 -0
  108. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  109. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  110. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  111. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +1 -1
  112. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  113. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +110 -1
  114. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +3 -3
  116. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  117. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  118. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  119. package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
  120. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  121. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  122. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  123. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  124. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1697 -0
  125. package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
  126. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  127. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  128. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  129. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  130. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  131. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  132. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  133. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  134. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  135. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  136. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  137. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  138. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  139. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  140. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1530 -0
  141. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  142. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  143. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  144. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  145. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  146. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  147. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  148. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  149. package/dist/types/src/components/{MembersContainer.stories.d.ts → RecordArticle.stories.d.ts} +111 -2
  150. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  151. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  152. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  153. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  154. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +4 -3
  155. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  156. package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +112 -3
  157. package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
  158. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  159. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  160. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  161. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  162. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  163. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  164. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  165. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +110 -1
  166. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  167. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  168. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +111 -2
  169. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  170. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  171. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  172. package/dist/types/src/components/index.d.ts +10 -17
  173. package/dist/types/src/components/index.d.ts.map +1 -1
  174. package/dist/types/src/events.d.ts.map +1 -1
  175. package/dist/types/src/helpers/index.d.ts +2 -0
  176. package/dist/types/src/helpers/index.d.ts.map +1 -0
  177. package/dist/types/src/helpers/query.d.ts +8 -0
  178. package/dist/types/src/helpers/query.d.ts.map +1 -0
  179. package/dist/types/src/helpers/query.test.d.ts +2 -0
  180. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  181. package/dist/types/src/hooks/index.d.ts +1 -0
  182. package/dist/types/src/hooks/index.d.ts.map +1 -1
  183. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  184. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  185. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  186. package/dist/types/src/hooks/usePath.d.ts +1 -1
  187. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  188. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  189. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  190. package/dist/types/src/index.d.ts +1 -0
  191. package/dist/types/src/index.d.ts.map +1 -1
  192. package/dist/types/src/meta.d.ts +0 -1
  193. package/dist/types/src/meta.d.ts.map +1 -1
  194. package/dist/types/src/translations.d.ts +1322 -22
  195. package/dist/types/src/translations.d.ts.map +1 -1
  196. package/dist/types/src/types/types.d.ts +59 -76
  197. package/dist/types/src/types/types.d.ts.map +1 -1
  198. package/dist/types/src/util.d.ts +10 -7
  199. package/dist/types/src/util.d.ts.map +1 -1
  200. package/dist/types/tsconfig.tsbuildinfo +1 -1
  201. package/package.json +64 -59
  202. package/src/SpacePlugin.ts +228 -212
  203. package/src/capabilities/app-graph-builder.ts +158 -123
  204. package/src/capabilities/app-graph-serializer.ts +12 -12
  205. package/src/capabilities/capabilities.ts +16 -11
  206. package/src/capabilities/identity-created.ts +2 -2
  207. package/src/capabilities/intent-resolver.ts +68 -61
  208. package/src/capabilities/react-root.tsx +4 -3
  209. package/src/capabilities/react-surface.tsx +65 -141
  210. package/src/capabilities/schema-defs.ts +1 -1
  211. package/src/capabilities/spaces-ready.ts +8 -5
  212. package/src/capabilities/state.ts +2 -2
  213. package/src/components/AwaitingObject.tsx +12 -14
  214. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
  215. package/src/components/CollectionSection.tsx +8 -6
  216. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -11
  217. package/src/components/CreateDialog/CreateObjectDialog.tsx +38 -28
  218. package/src/components/CreateDialog/CreateObjectPanel.tsx +8 -8
  219. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -11
  220. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
  221. package/src/components/JoinDialog/index.ts +5 -0
  222. package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +7 -6
  223. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +16 -14
  224. package/src/components/MembersContainer/index.ts +5 -0
  225. package/src/components/MenuFooter.tsx +2 -2
  226. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +51 -0
  227. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
  228. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  229. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +6 -6
  230. package/src/components/ObjectRenamePopover/index.ts +5 -0
  231. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -3
  232. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  233. package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
  234. package/src/components/ObjectSettings/ForeignKeys.tsx +4 -4
  235. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +4 -3
  236. package/src/components/ObjectSettings/index.ts +3 -1
  237. package/src/components/RecordArticle.stories.tsx +115 -0
  238. package/src/components/RecordArticle.tsx +114 -0
  239. package/src/components/SchemaContainer.tsx +23 -26
  240. package/src/components/SpacePluginSettings.tsx +10 -4
  241. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +23 -25
  242. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +16 -11
  243. package/src/components/SpacePresence/index.ts +5 -0
  244. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
  245. package/src/components/SpaceRenamePopover/index.ts +5 -0
  246. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +9 -4
  247. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +44 -23
  248. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  249. package/src/components/SyncStatus/SyncStatus.stories.tsx +4 -5
  250. package/src/components/SyncStatus/SyncStatus.tsx +107 -11
  251. package/src/components/ViewEditor.tsx +51 -23
  252. package/src/components/index.ts +7 -8
  253. package/src/events.ts +6 -6
  254. package/src/helpers/index.ts +5 -0
  255. package/src/helpers/query.test.ts +24 -0
  256. package/src/helpers/query.ts +158 -0
  257. package/src/hooks/index.ts +1 -0
  258. package/src/hooks/useActiveSpace.ts +2 -1
  259. package/src/hooks/useInputSurfaceLookup.tsx +8 -3
  260. package/src/hooks/usePath.ts +1 -1
  261. package/src/hooks/useTypeOptions.ts +59 -0
  262. package/src/index.ts +1 -0
  263. package/src/meta.ts +6 -3
  264. package/src/translations.ts +25 -10
  265. package/src/types/types.ts +26 -22
  266. package/src/util.tsx +79 -64
  267. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  268. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs +0 -88
  269. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs.map +0 -7
  270. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +0 -68
  271. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +0 -7
  272. package/dist/lib/browser/app-graph-builder-FLF7XMQO.mjs.map +0 -7
  273. package/dist/lib/browser/app-graph-serializer-3A6KBYWT.mjs.map +0 -7
  274. package/dist/lib/browser/chunk-CBYL62HG.mjs +0 -19
  275. package/dist/lib/browser/chunk-CBYL62HG.mjs.map +0 -7
  276. package/dist/lib/browser/chunk-DCY3W36E.mjs.map +0 -7
  277. package/dist/lib/browser/chunk-ELJDGQTO.mjs +0 -94
  278. package/dist/lib/browser/chunk-ELJDGQTO.mjs.map +0 -7
  279. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  280. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  281. package/dist/lib/browser/chunk-J6YZG77T.mjs.map +0 -7
  282. package/dist/lib/browser/chunk-RQVV4XVF.mjs.map +0 -7
  283. package/dist/lib/browser/chunk-TUQZO5P4.mjs +0 -20
  284. package/dist/lib/browser/chunk-TUQZO5P4.mjs.map +0 -7
  285. package/dist/lib/browser/chunk-WAXS2ZVX.mjs.map +0 -7
  286. package/dist/lib/browser/identity-created-T6ZNVE7S.mjs.map +0 -7
  287. package/dist/lib/browser/intent-resolver-7E3IZIJS.mjs.map +0 -7
  288. package/dist/lib/browser/react-root-RWMT2RCK.mjs +0 -29
  289. package/dist/lib/browser/react-root-RWMT2RCK.mjs.map +0 -7
  290. package/dist/lib/browser/react-surface-GL4CE2F4.mjs.map +0 -7
  291. package/dist/lib/browser/schema-defs-YDPFZELA.mjs.map +0 -7
  292. package/dist/lib/browser/spaces-ready-QVABOCO3.mjs.map +0 -7
  293. package/dist/lib/browser/state-2RGW7FQG.mjs.map +0 -7
  294. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  295. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs +0 -89
  296. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs.map +0 -7
  297. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +0 -70
  298. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +0 -7
  299. package/dist/lib/node-esm/app-graph-builder-D5YPOJS5.mjs.map +0 -7
  300. package/dist/lib/node-esm/app-graph-serializer-M45TH5LR.mjs.map +0 -7
  301. package/dist/lib/node-esm/chunk-AUQ3SKL2.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs +0 -20
  303. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs.map +0 -7
  304. package/dist/lib/node-esm/chunk-HC677WUJ.mjs +0 -21
  305. package/dist/lib/node-esm/chunk-HC677WUJ.mjs.map +0 -7
  306. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  307. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  308. package/dist/lib/node-esm/chunk-HYIZVPOA.mjs.map +0 -7
  309. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs +0 -96
  310. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs.map +0 -7
  311. package/dist/lib/node-esm/chunk-WKQTO37U.mjs.map +0 -7
  312. package/dist/lib/node-esm/chunk-ZCEH2VYE.mjs.map +0 -7
  313. package/dist/lib/node-esm/identity-created-AL7NNCKH.mjs.map +0 -7
  314. package/dist/lib/node-esm/intent-resolver-UVO4MKWX.mjs.map +0 -7
  315. package/dist/lib/node-esm/react-root-5EKYI66P.mjs.map +0 -7
  316. package/dist/lib/node-esm/react-surface-IOC6YSVQ.mjs.map +0 -7
  317. package/dist/lib/node-esm/schema-defs-OYBCWKAS.mjs.map +0 -7
  318. package/dist/lib/node-esm/spaces-ready-MS6GHPFR.mjs.map +0 -7
  319. package/dist/lib/node-esm/state-7VBVBGNS.mjs.map +0 -7
  320. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  321. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  322. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  323. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  324. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  325. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  326. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  327. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  328. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  329. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  330. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  331. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  332. package/dist/types/src/components/RecordMain.d.ts +0 -7
  333. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  334. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  335. package/src/components/ObjectDetailsPanel.tsx +0 -77
  336. package/src/components/PersistenceStatus.tsx +0 -83
  337. package/src/components/RecordMain.tsx +0 -43
  338. /package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ObjectDetailsPanel.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type JsonPath, setValue } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, getSpace, useQuery, useSchema } from '@dxos/react-client/echo';\nimport { Callout, useTranslation } from '@dxos/react-ui';\nimport { useSelected } from '@dxos/react-ui-attention';\nimport { Form, useRefQueryLookupHandler } from '@dxos/react-ui-form';\nimport { type DataType } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SPACE_PLUGIN } from '../meta';\n\ntype RowDetailsPanelProps = { objectId: string; view: DataType.View };\n\nconst ObjectDetailsPanel = ({ objectId, view }: RowDetailsPanelProps) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const client = useClient();\n const space = getSpace(view);\n const schema = useSchema(client, space, view.query?.typename);\n\n const queriedObjects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());\n const selectedRows = useSelected(objectId, 'multi');\n const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);\n\n const handleRefQueryLookup = useRefQueryLookupHandler({ space });\n\n const handleSave = useCallback(\n (values: any, { changed }: { changed: Record<JsonPath, boolean> }) => {\n const id = values.id;\n invariant(typeof id === 'string');\n const object = queriedObjects.find((obj) => obj.id === id);\n invariant(object);\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n for (const path of changedPaths) {\n const value = values[path];\n setValue(object, path, value);\n }\n },\n [queriedObjects],\n );\n\n if (selectedObjects.length === 0) {\n return (\n <div role='none' className='plb-cardSpacingBlock pli-cardSpacingInline'>\n <Callout.Root classNames='is-full'>\n <Callout.Title>{t('row details no selection label')}</Callout.Title>\n </Callout.Root>\n </div>\n );\n }\n\n return (\n <div role='none' className='bs-full is-full flex flex-col p-2 gap-1 overflow-y-auto'>\n {schema &&\n selectedObjects.map((object) => (\n <div key={object.id} className='border border-separator rounded'>\n <Form\n autoSave\n schema={schema}\n values={object}\n onSave={handleSave}\n onQueryRefOptions={handleRefQueryLookup}\n />\n </div>\n ))}\n </div>\n );\n};\n\nexport default ObjectDetailsPanel;\n"],
5
- "mappings": ";;;;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAAwBC,gBAAgB;AACxC,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,UAAUC,UAAUC,iBAAiB;AACtD,SAASC,SAASC,sBAAsB;AACxC,SAASC,mBAAmB;AAC5B,SAASC,MAAMC,gCAAgC;AAE/C,SAASC,qBAAqB;;AAM9B,IAAMC,qBAAqB,CAAC,EAAEC,UAAUC,KAAI,MAAwB;;;AAClE,UAAM,EAAEC,EAAC,IAAKC,eAAeC,YAAAA;AAC7B,UAAMC,SAASC,UAAAA;AACf,UAAMC,QAAQC,SAASP,IAAAA;AACvB,UAAMQ,SAASC,UAAUL,QAAQE,OAAON,KAAKU,OAAOC,QAAAA;AAEpD,UAAMC,iBAAiBC,SAASP,OAAOE,SAASM,OAAOC,KAAKP,MAAAA,IAAUM,OAAOE,QAAO,CAAA;AACpF,UAAMC,eAAeC,YAAYnB,UAAU,OAAA;AAC3C,UAAMoB,kBAAkBF,aAAaG,IAAI,CAACC,OAAOT,eAAeU,KAAK,CAACC,QAAQA,IAAIF,OAAOA,EAAAA,CAAAA,EAAKG,OAAOC,aAAAA;AAErG,UAAMC,uBAAuBC,yBAAyB;MAAErB;IAAM,CAAA;AAE9D,UAAMsB,aAAaC,YACjB,CAACC,QAAa,EAAEC,QAAO,MAA0C;AAC/D,YAAMV,KAAKS,OAAOT;AAClBW,gBAAU,OAAOX,OAAO,UAAA,QAAA;;;;;;;;;AACxB,YAAMY,SAASrB,eAAeU,KAAK,CAACC,QAAQA,IAAIF,OAAOA,EAAAA;AACvDW,gBAAUC,QAAAA,QAAAA;;;;;;;;;AAEV,YAAMC,eAAeC,OAAOC,KAAKL,OAAAA,EAASP,OAAO,CAACa,SAASN,QAAQM,IAAAA,CAAiB;AACpF,iBAAWA,QAAQH,cAAc;AAC/B,cAAMI,QAAQR,OAAOO,IAAAA;AACrBE,iBAASN,QAAQI,MAAMC,KAAAA;MACzB;IACF,GACA;MAAC1B;KAAe;AAGlB,QAAIO,gBAAgBqB,WAAW,GAAG;AAChC,aACE,sBAAA,cAACC,OAAAA;QAAIC,MAAK;QAAOC,WAAU;SACzB,sBAAA,cAACC,QAAQC,MAAI;QAACC,YAAW;SACvB,sBAAA,cAACF,QAAQG,OAAK,MAAE9C,EAAE,gCAAA,CAAA,CAAA,CAAA;IAI1B;AAEA,WACE,sBAAA,cAACwC,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACxBnC,UACCW,gBAAgBC,IAAI,CAACa,WACnB,sBAAA,cAACQ,OAAAA;MAAIO,KAAKf,OAAOZ;MAAIsB,WAAU;OAC7B,sBAAA,cAACM,MAAAA;MACCC,UAAAA;MACA1C;MACAsB,QAAQG;MACRkB,QAAQvB;MACRwB,mBAAmB1B;;;;;AAMjC;AAEA,IAAA,6BAAe5B;",
6
- "names": ["React", "useCallback", "setValue", "invariant", "useClient", "Filter", "getSpace", "useQuery", "useSchema", "Callout", "useTranslation", "useSelected", "Form", "useRefQueryLookupHandler", "isNonNullable", "ObjectDetailsPanel", "objectId", "view", "t", "useTranslation", "SPACE_PLUGIN", "client", "useClient", "space", "getSpace", "schema", "useSchema", "query", "typename", "queriedObjects", "useQuery", "Filter", "type", "nothing", "selectedRows", "useSelected", "selectedObjects", "map", "id", "find", "obj", "filter", "isNonNullable", "handleRefQueryLookup", "useRefQueryLookupHandler", "handleSave", "useCallback", "values", "changed", "invariant", "object", "changedPaths", "Object", "keys", "path", "value", "setValue", "length", "div", "role", "className", "Callout", "Root", "classNames", "Title", "key", "Form", "autoSave", "onSave", "onQueryRefOptions"]
7
- }
@@ -1,68 +0,0 @@
1
- // src/components/RecordMain.tsx
2
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
3
- import React, { useCallback } from "react";
4
- import { Obj } from "@dxos/echo";
5
- import { setValue } from "@dxos/echo-schema";
6
- import { invariant } from "@dxos/invariant";
7
- import { getSpace } from "@dxos/react-client/echo";
8
- import { Form, useRefQueryLookupHandler } from "@dxos/react-ui-form";
9
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/RecordMain.tsx";
10
- var RecordMain = ({ record }) => {
11
- var _effect = _useSignals();
12
- try {
13
- const space = getSpace(record);
14
- const schema = Obj.getSchema(record);
15
- invariant(schema, "Record has no schema.", {
16
- F: __dxlog_file,
17
- L: 16,
18
- S: void 0,
19
- A: [
20
- "schema",
21
- "'Record has no schema.'"
22
- ]
23
- });
24
- const handleRefQueryLookup = useRefQueryLookupHandler({
25
- space
26
- });
27
- const handleSave = useCallback((values, { changed }) => {
28
- const id = values.id;
29
- invariant(typeof id === "string", void 0, {
30
- F: __dxlog_file,
31
- L: 23,
32
- S: void 0,
33
- A: [
34
- "typeof id === 'string'",
35
- ""
36
- ]
37
- });
38
- const changedPaths = Object.keys(changed).filter((path) => changed[path]);
39
- for (const path of changedPaths) {
40
- const value = values[path];
41
- setValue(record, path, value);
42
- }
43
- }, [
44
- record
45
- ]);
46
- return /* @__PURE__ */ React.createElement("div", {
47
- role: "none",
48
- className: "container-max-width flex flex-col p-2 gap-1 overflow-y-auto"
49
- }, /* @__PURE__ */ React.createElement("div", {
50
- key: record.id,
51
- className: "border border-separator rounded"
52
- }, /* @__PURE__ */ React.createElement(Form, {
53
- autoSave: true,
54
- schema,
55
- values: record,
56
- onSave: handleSave,
57
- onQueryRefOptions: handleRefQueryLookup
58
- })));
59
- } finally {
60
- _effect.f();
61
- }
62
- };
63
- var RecordMain_default = RecordMain;
64
- export {
65
- RecordMain,
66
- RecordMain_default as default
67
- };
68
- //# sourceMappingURL=RecordMain-TEBGAVSL.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/RecordMain.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { type JsonPath, setValue } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Form, useRefQueryLookupHandler } from '@dxos/react-ui-form';\n\nexport const RecordMain = ({ record }: { record: Obj.Any }) => {\n const space = getSpace(record);\n const schema = Obj.getSchema(record);\n invariant(schema, 'Record has no schema.');\n\n const handleRefQueryLookup = useRefQueryLookupHandler({ space });\n\n const handleSave = useCallback(\n (values: any, { changed }: { changed: Record<JsonPath, boolean> }) => {\n const id = values.id;\n invariant(typeof id === 'string');\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n for (const path of changedPaths) {\n const value = values[path];\n setValue(record, path, value);\n }\n },\n [record],\n );\n\n return (\n <div role='none' className='container-max-width flex flex-col p-2 gap-1 overflow-y-auto'>\n <div key={record.id} className='border border-separator rounded'>\n <Form autoSave schema={schema} values={record} onSave={handleSave} onQueryRefOptions={handleRefQueryLookup} />\n </div>\n </div>\n );\n};\n\nexport default RecordMain;\n"],
5
- "mappings": ";;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAASC,WAAW;AACpB,SAAwBC,gBAAgB;AACxC,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,MAAMC,gCAAgC;;AAExC,IAAMC,aAAa,CAAC,EAAEC,OAAM,MAAuB;;;AACxD,UAAMC,QAAQL,SAASI,MAAAA;AACvB,UAAME,SAAST,IAAIU,UAAUH,MAAAA;AAC7BL,cAAUO,QAAQ,yBAAA;;;;;;;;;AAElB,UAAME,uBAAuBN,yBAAyB;MAAEG;IAAM,CAAA;AAE9D,UAAMI,aAAab,YACjB,CAACc,QAAa,EAAEC,QAAO,MAA0C;AAC/D,YAAMC,KAAKF,OAAOE;AAClBb,gBAAU,OAAOa,OAAO,UAAA,QAAA;;;;;;;;;AAExB,YAAMC,eAAeC,OAAOC,KAAKJ,OAAAA,EAASK,OAAO,CAACC,SAASN,QAAQM,IAAAA,CAAiB;AACpF,iBAAWA,QAAQJ,cAAc;AAC/B,cAAMK,QAAQR,OAAOO,IAAAA;AACrBnB,iBAASM,QAAQa,MAAMC,KAAAA;MACzB;IACF,GACA;MAACd;KAAO;AAGV,WACE,sBAAA,cAACe,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACzB,sBAAA,cAACF,OAAAA;MAAIG,KAAKlB,OAAOQ;MAAIS,WAAU;OAC7B,sBAAA,cAACpB,MAAAA;MAAKsB,UAAAA;MAASjB;MAAgBI,QAAQN;MAAQoB,QAAQf;MAAYgB,mBAAmBjB;;;;;AAI9F;AAEA,IAAA,qBAAeL;",
6
- "names": ["React", "useCallback", "Obj", "setValue", "invariant", "getSpace", "Form", "useRefQueryLookupHandler", "RecordMain", "record", "space", "schema", "getSchema", "handleRefQueryLookup", "handleSave", "values", "changed", "id", "changedPaths", "Object", "keys", "filter", "path", "value", "div", "role", "className", "key", "autoSave", "onSave", "onQueryRefOptions"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Array, Option, Schema, pipe } from 'effect';\n\nimport { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { type QueryResult, type Space, SpaceState, getSpace, isSpace, parseId } from '@dxos/client/echo';\nimport { Filter, Obj, Query, Type } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { ROOT_ID, createExtension, rxFromObservable, rxFromSignal } from '@dxos/plugin-graph';\nimport { DataType } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { getActiveSpace } from '../hooks';\nimport { SPACE_PLUGIN } from '../meta';\nimport { SPACE_TYPE, SpaceAction, type SpaceSettingsProps } from '../types';\nimport {\n SHARED,\n SPACES,\n constructObjectActions,\n constructSpaceActions,\n constructSpaceNode,\n createObjectNode,\n createStaticSchemaActions,\n createStaticSchemaNode,\n rxFromQuery,\n} from '../util';\n\nimport { SpaceCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n // TODO(wittjosiah): Make reactive.\n const resolve = (typename: string) =>\n context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n const spacesNode = {\n id: SPACES,\n type: SPACES,\n cacheable: ['label', 'role'],\n properties: {\n label: ['spaces label', { ns: SPACE_PLUGIN }],\n icon: 'ph--planet--regular',\n testId: 'spacePlugin.spaces',\n role: 'branch',\n disposition: 'collection',\n disabled: true,\n childrenPersistenceClass: 'echo',\n onRearrangeChildren: async (nextOrder: Space[]) => {\n const { graph } = context.getCapability(Capabilities.AppGraph);\n const client = context.getCapability(ClientCapabilities.Client);\n\n // NOTE: This is needed to ensure order is updated by next animation frame.\n // TODO(wittjosiah): Is there a better way to do this?\n // If not, graph should be passed as an argument to the extension.\n graph.sortEdges(\n SPACES,\n 'outbound',\n nextOrder.map(({ id }) => id),\n );\n\n const {\n objects: [spacesOrder],\n } = await client.spaces.default.db.query(Filter.type(Type.Expando, { key: SHARED })).run();\n if (spacesOrder) {\n spacesOrder.order = nextOrder.map(({ id }) => id);\n } else {\n log.warn('spaces order object not found');\n }\n },\n },\n };\n\n return contributes(Capabilities.AppGraphBuilder, [\n // Primary actions.\n createExtension({\n id: `${SPACE_PLUGIN}/primary-actions`,\n position: 'hoist',\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: SpaceAction.OpenCreateSpace._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.OpenCreateSpace));\n },\n properties: {\n label: ['create space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n testId: 'spacePlugin.createSpace',\n disposition: 'menu',\n },\n },\n {\n id: SpaceAction.Join._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.Join));\n },\n properties: {\n label: ['join space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sign-in--regular',\n testId: 'spacePlugin.joinSpace',\n disposition: 'menu',\n },\n },\n {\n id: SpaceAction.OpenMembers._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const space = getActiveSpace(context) ?? client.spaces.default;\n await dispatch(createIntent(SpaceAction.OpenMembers, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n testId: 'spacePlugin.shareSpace',\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: SpaceAction.OpenSettings._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const space = getActiveSpace(context) ?? client.spaces.default;\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open current space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--faders--regular',\n keyBinding: {\n macos: 'meta+shift+,',\n windows: 'ctrl+shift+,',\n },\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create spaces group node.\n createExtension({\n id: `${SPACE_PLUGIN}/root`,\n position: 'hoist',\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [spacesNode]),\n Option.getOrElse(() => []),\n ),\n ),\n // resolver: ({ id }) => (id === SPACES ? spacesNode : undefined),\n }),\n\n // Create space nodes.\n createExtension({\n id: SPACES,\n connector: (node) => {\n let query: QueryResult<Type.Expando> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === SPACES ? Option.some(node) : Option.none())),\n Option.map(() => {\n const state = context.getCapability(SpaceCapabilities.State);\n const client = context.getCapability(ClientCapabilities.Client);\n const spacesRx = rxFromObservable(client.spaces);\n const isReadyRx = rxFromObservable(client.spaces.isReady);\n\n const spaces = get(spacesRx);\n const isReady = get(isReadyRx);\n\n if (!spaces || !isReady) {\n return [];\n }\n\n const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore<SpaceSettingsProps>(\n SPACE_PLUGIN,\n )?.value;\n\n // TODO(wittjosiah): During client reset, accessing default space throws.\n try {\n if (!query) {\n query = client.spaces.default.db.query(Filter.type(Type.Expando, { key: SHARED }));\n }\n const [spacesOrder] = get(rxFromQuery(query));\n return get(\n rxFromSignal(() => {\n const order: string[] = spacesOrder?.order ?? [];\n const orderMap = new Map(order.map((id, index) => [id, index]));\n return [\n ...spaces\n .filter((space) => orderMap.has(space.id))\n .sort((a, b) => orderMap.get(a.id)! - orderMap.get(b.id)!),\n ...spaces.filter((space) => !orderMap.has(space.id)),\n ]\n .filter((space) =>\n settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE,\n )\n .map((space) =>\n constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n }),\n );\n }),\n );\n } catch {\n return [];\n }\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n // resolver: ({ id }) => {\n // if (id.length !== SPACE_ID_LENGTH) {\n // return;\n // }\n\n // const client = context.requestCapability(ClientCapabilities.Client);\n // const spaces = toSignal(\n // (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n // () => client.spaces.get(),\n // );\n\n // const isReady = toSignal(\n // (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n // () => client.spaces.isReady.get(),\n // );\n\n // if (!spaces || !isReady) {\n // return;\n // }\n\n // const space = spaces.find((space) => space.id === id);\n // if (!space) {\n // return;\n // }\n\n // if (space.state.get() === SpaceState.SPACE_INACTIVE) {\n // return false;\n // } else if (space.state.get() !== SpaceState.SPACE_READY) {\n // return undefined;\n // } else {\n // const state = context.requestCapability(SpaceCapabilities.State);\n // return constructSpaceNode({\n // space,\n // navigable: state.navigableCollections,\n // personal: space === client.spaces.default,\n // namesCache: state.spaceNames,\n // resolve,\n // });\n // }\n // },\n }),\n\n // Create space actions.\n createExtension({\n id: `${SPACE_PLUGIN}/actions`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.flatMap((space) => {\n const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));\n const [client] = get(context.capabilities(ClientCapabilities.Client));\n const [state] = get(context.capabilities(SpaceCapabilities.State));\n\n if (!dispatcher || !client || !state) {\n return Option.none();\n } else {\n return Option.some({\n space,\n dispatch: dispatcher.dispatchPromise,\n personal: space === client.spaces.default,\n migrating: state.sdkMigrationRunning[space.id],\n });\n }\n }),\n Option.map((params) => constructSpaceActions(params)),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create nodes for objects in the root collection of a space.\n createExtension({\n id: `${SPACE_PLUGIN}/root-collection`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.map((space) => {\n const state = context.getCapability(SpaceCapabilities.State);\n const spaceState = get(rxFromObservable(space.state));\n if (spaceState !== SpaceState.SPACE_READY) {\n return [];\n }\n\n const collection = get(\n rxFromSignal(\n () => space.properties[DataType.Collection.typename]?.target as DataType.Collection | undefined,\n ),\n );\n if (!collection) {\n return [];\n }\n\n return get(\n rxFromSignal(() =>\n pipe(\n collection.objects,\n Array.map((object) => object.target),\n Array.filter(isNonNullable),\n Array.map((object) =>\n createObjectNode({\n space,\n object,\n resolve,\n navigable: state.navigableCollections,\n }),\n ),\n Array.filter(isNonNullable),\n ),\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create nodes for objects in a collection or by its fully qualified id.\n createExtension({\n id: `${SPACE_PLUGIN}/objects`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n Obj.instanceOf(DataType.Collection, node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.map((collection) => {\n const state = context.getCapability(SpaceCapabilities.State);\n const space = getSpace(collection);\n\n return get(\n rxFromSignal(() =>\n pipe(\n collection.objects,\n Array.map((object) => object.target),\n Array.filter(isNonNullable),\n Array.map(\n (object) =>\n space && createObjectNode({ object, space, resolve, navigable: state.navigableCollections }),\n ),\n Array.filter(isNonNullable),\n ),\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n // resolver: ({ id }) => {\n // if (id.length !== FQ_ID_LENGTH) {\n // return;\n // }\n\n // const [spaceId, objectId] = id.split(':');\n // if (spaceId.length !== SPACE_ID_LENGTH && objectId.length !== OBJECT_ID_LENGTH) {\n // return;\n // }\n\n // const client = context.requestCapability(ClientCapabilities.Client);\n // const space = client.spaces.get().find((space) => space.id === spaceId);\n // if (!space) {\n // return;\n // }\n\n // const spaceState = toSignal(\n // (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n // () => space.state.get(),\n // space.id,\n // );\n // if (spaceState !== SpaceState.SPACE_READY) {\n // return;\n // }\n\n // const [object] = memoizeQuery(space, Query.select(Filter.ids(objectId)));\n // if (!object) {\n // return;\n // }\n\n // if (isDeleted(object)) {\n // return false;\n // } else {\n // const state = context.requestCapability(SpaceCapabilities.State);\n // return createObjectNode({ object, space, resolve, navigable: state.navigableCollections });\n // }\n // },\n }),\n\n // Create nodes for objects in a query collection.\n createExtension({\n id: `${SPACE_PLUGIN}/query-collection-objects`,\n connector: (node) => {\n let query: QueryResult<Type.Expando> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n Obj.instanceOf(DataType.QueryCollection, node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.flatMap((collection) => {\n const space = getSpace(collection);\n return collection.query.typename && space\n ? Option.some({ typename: collection.query.typename, space })\n : Option.none();\n }),\n Option.map(({ typename, space }) => {\n const state = context.getCapability(SpaceCapabilities.State);\n if (!query) {\n query = space.db.query(\n Query.without(\n Query.select(Filter.typename(typename)),\n // TODO(wittjosiah): This query is broader than it should be.\n // It will return all objects in the collection, not just the ones of the given type.\n // However this works fine for now because this query is only used for exclusions.\n Query.select(Filter.typename(typename))\n .referencedBy(DataType.Collection, 'objects')\n .reference('objects'),\n ),\n );\n }\n return (\n get(rxFromQuery(query))\n // TODO(wittjosiah): This should be the default sort order.\n .toSorted((a, b) => a.id.localeCompare(b.id))\n .map((object) =>\n get(\n rxFromSignal(() =>\n createObjectNode({\n object,\n space,\n resolve,\n droppable: false, // Cannot rearrange query collections.\n navigable: state.navigableCollections,\n }),\n ),\n ),\n )\n .filter(isNonNullable)\n );\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // Static schema records.\n createExtension({\n id: `${SPACE_PLUGIN}/static-schemas`,\n connector: (node) => {\n const client = context.getCapability(ClientCapabilities.Client);\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n Obj.instanceOf(DataType.QueryCollection, node.data) &&\n node.data.query.typename === DataType.StoredSchema.typename\n ? Option.some(node.data)\n : Option.none(),\n ),\n Option.flatMap((collection) => {\n const space = getSpace(collection);\n return space?.properties.staticRecords ? Option.some(space) : Option.none();\n }),\n Option.map((space) => {\n return get(rxFromSignal(() => (space.properties.staticRecords ?? []) as string[]))\n .map((typename) =>\n client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename),\n )\n .filter(isNonNullable)\n .map((schema) => createStaticSchemaNode({ schema, space }));\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // Create static schema actions.\n createExtension({\n id: `${SPACE_PLUGIN}/static-schema-actions`,\n actions: (node) => {\n let query: QueryResult<DataType.View> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => {\n const space = isSpace(node.properties.space) ? node.properties.space : undefined;\n return space && Schema.isSchema(node.data) ? Option.some({ space, schema: node.data }) : Option.none();\n }),\n Option.map(({ space, schema }) => {\n if (!query) {\n // TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).\n query = space.db.query(Filter.type(DataType.View));\n }\n\n const views = get(rxFromQuery(query));\n const filteredViews = get(\n rxFromSignal(() =>\n // TODO(wittjosiah): Remove cast.\n views.filter((view) => view.query.typename === Type.getTypename(schema as Type.Obj.Any)),\n ),\n );\n const deletable = filteredViews.length === 0;\n\n const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));\n if (!dispatcher) {\n return [];\n }\n\n // TODO(wittjosiah): Remove cast.\n return createStaticSchemaActions({\n schema: schema as Type.Obj.Any,\n space,\n dispatch: dispatcher.dispatchPromise,\n deletable,\n });\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // Create nodes for schema views.\n createExtension({\n id: `${SPACE_PLUGIN}/schema-views`,\n connector: (node) => {\n let query: QueryResult<DataType.View> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => {\n const space = getSpace(node.data) ?? (isSpace(node.properties.space) ? node.properties.space : undefined);\n return space && (Obj.instanceOf(DataType.StoredSchema, node.data) || Schema.isSchema(node.data))\n ? Option.some({ space, schema: node.data })\n : Option.none();\n }),\n Option.map(({ space, schema }) => {\n if (!query) {\n // TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).\n query = space.db.query(Filter.type(DataType.View));\n }\n\n // TODO(wittjosiah): Remove cast.\n const typename = Schema.isSchema(schema) ? Type.getTypename(schema as Type.Obj.Any) : schema.typename;\n return get(rxFromQuery(query))\n .filter((view) => view.query.typename === typename)\n .map((view) =>\n get(\n rxFromSignal(() =>\n createObjectNode({\n object: view,\n space,\n resolve,\n droppable: false,\n }),\n ),\n ),\n )\n .filter(isNonNullable);\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // Create record nodes.\n createExtension({\n id: `${SPACE_PLUGIN}/records`,\n resolver: (id) => {\n let query: QueryResult<Type.Expando> | undefined;\n return Rx.make((get) => {\n const client = context.getCapability(ClientCapabilities.Client);\n const { spaceId, objectId } = parseId(id);\n if (!spaceId || !objectId) {\n return null;\n }\n\n const space = client.spaces.get(spaceId);\n if (!space) {\n return null;\n }\n\n if (!query) {\n query = space.db.query(Filter.ids(objectId));\n }\n\n const object = get(rxFromQuery(query)).at(0);\n if (!object) {\n return null;\n }\n\n return createObjectNode({ object, space, resolve, disposition: 'hidden' });\n });\n },\n }),\n\n // Create collection actions and action groups.\n createExtension({\n id: `${SPACE_PLUGIN}/object-actions`,\n actions: (node) => {\n let query: QueryResult<DataType.View> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => {\n const space = getSpace(node.data);\n return space && Obj.isObject(node.data) ? Option.some({ space, object: node.data }) : Option.none();\n }),\n Option.flatMap(({ space, object }) => {\n const isSchema = Obj.instanceOf(DataType.StoredSchema, object);\n if (!query && isSchema) {\n // TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).\n query = space.db.query(Filter.type(DataType.View));\n }\n\n let deletable =\n !isSchema &&\n // Don't allow the Records smart collection to be deleted.\n !(\n Obj.instanceOf(DataType.QueryCollection, object) &&\n object.query.typename === DataType.StoredSchema.typename\n );\n if (isSchema && query) {\n const views = get(rxFromQuery(query));\n const filteredViews = get(\n rxFromSignal(() => views.filter((view) => view.query.typename === object.typename)),\n );\n deletable = filteredViews.length === 0;\n }\n\n const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));\n const [appGraph] = get(context.capabilities(Capabilities.AppGraph));\n const [state] = get(context.capabilities(SpaceCapabilities.State));\n const objectForms = get(context.capabilities(SpaceCapabilities.ObjectForm));\n\n if (!dispatcher || !appGraph || !state) {\n return Option.none();\n } else {\n return Option.some({\n object,\n graph: appGraph.graph,\n dispatch: dispatcher.dispatchPromise,\n objectForms,\n deletable,\n navigable: get(rxFromSignal(() => state.navigableCollections)),\n });\n }\n }),\n Option.map((params) => constructObjectActions(params)),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // View selected objects.\n createExtension({\n id: `${SPACE_PLUGIN}/selected-objects`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(DataType.View, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'selected-objects'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'selected-objects',\n properties: {\n label: ['companion selected objects label', { ns: SPACE_PLUGIN }],\n icon: 'ph--tree-view--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Object settings plank companion.\n createExtension({\n id: `${SPACE_PLUGIN}/settings`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (Obj.isObject(node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'settings'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'settings',\n properties: {\n label: ['object settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n disposition: 'hidden',\n position: 'fallback',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Rx", "Array", "Option", "Schema", "pipe", "Capabilities", "contributes", "createIntent", "SpaceState", "getSpace", "isSpace", "parseId", "Filter", "Obj", "Query", "Type", "log", "ClientCapabilities", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "ROOT_ID", "createExtension", "rxFromObservable", "rxFromSignal", "DataType", "isNonNullable", "context", "resolve", "typename", "getCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "spacesNode", "SPACES", "type", "cacheable", "properties", "label", "ns", "SPACE_PLUGIN", "icon", "testId", "role", "disposition", "disabled", "childrenPersistenceClass", "onRearrangeChildren", "nextOrder", "graph", "getCapability", "AppGraph", "client", "ClientCapabilities", "Client", "sortEdges", "map", "objects", "spacesOrder", "spaces", "default", "db", "query", "Filter", "Type", "Expando", "key", "SHARED", "run", "order", "log", "warn", "contributes", "AppGraphBuilder", "createExtension", "position", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "SpaceAction", "OpenCreateSpace", "_tag", "data", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "Join", "OpenMembers", "space", "getActiveSpace", "keyBinding", "macos", "windows", "OpenSettings", "getOrElse", "connector", "state", "SpaceCapabilities", "State", "spacesRx", "rxFromObservable", "isReadyRx", "isReady", "settings", "capabilities", "SettingsStore", "getStore", "value", "rxFromQuery", "rxFromSignal", "orderMap", "Map", "index", "filter", "has", "sort", "a", "b", "showHidden", "SpaceState", "SPACE_INACTIVE", "constructSpaceNode", "navigable", "navigableCollections", "personal", "namesCache", "spaceNames", "SPACE_TYPE", "isSpace", "dispatcher", "migrating", "sdkMigrationRunning", "params", "constructSpaceActions", "spaceState", "SPACE_READY", "collection", "DataType", "Collection", "target", "Array", "object", "isNonNullable", "createObjectNode", "Obj", "instanceOf", "getSpace", "QueryCollection", "Query", "without", "select", "referencedBy", "reference", "toSorted", "localeCompare", "droppable", "StoredSchema", "staticRecords", "schemaRegistry", "schemas", "schema", "getTypename", "createStaticSchemaNode", "undefined", "Schema", "isSchema", "View", "views", "filteredViews", "view", "deletable", "length", "createStaticSchemaActions", "resolver", "spaceId", "objectId", "parseId", "ids", "at", "isObject", "appGraph", "objectForms", "ObjectForm", "constructObjectActions", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-serializer.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { isSpace } from '@dxos/client/echo';\nimport { Obj, Type } from '@dxos/echo';\nimport { DataType } from '@dxos/schema';\n\nimport { SPACE_PLUGIN } from '../meta';\nimport { translations } from '../translations';\nimport { SPACE_TYPE, SpaceAction } from '../types';\nimport { SPACES } from '../util';\n\nconst COLLECTION_TYPE = Type.getTypename(DataType.Collection);\n\n// https://stackoverflow.com/a/19016910\nconst DIRECTORY_TYPE = 'text/directory';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphSerializer, [\n {\n inputType: SPACES,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'] ?? 'Spaces',\n data: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'] ?? 'Spaces',\n type: DIRECTORY_TYPE,\n }),\n deserialize: () => {\n // No-op.\n },\n },\n {\n inputType: SPACE_TYPE,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],\n data: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: async (data) => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(createIntent(SpaceAction.Create, { name: data.name, edgeReplication: true }));\n return result.data?.space;\n },\n },\n {\n inputType: COLLECTION_TYPE,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['object name placeholder'],\n data: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['object name placeholder'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const collection =\n ancestors.findLast((ancestor) => Obj.instanceOf(DataType.Collection, ancestor)) ??\n space?.properties[COLLECTION_TYPE]?.target;\n if (!space || !collection) {\n return;\n }\n\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(\n createIntent(SpaceAction.AddObject, {\n target: collection,\n object: Obj.make(DataType.Collection, { name: data.name, objects: [] }),\n }),\n );\n\n return result.data?.object;\n },\n },\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;AAIA,SAASA,cAAkCC,aAAaC,oBAAoB;AAC5E,SAASC,eAAe;AACxB,SAASC,KAAKC,YAAY;AAC1B,SAASC,gBAAgB;AAOzB,IAAMC,kBAAkBC,KAAKC,YAAYC,SAASC,UAAU;AAG5D,IAAMC,iBAAiB;AAEvB,IAAA,+BAAe,CAACC,YACdC,YAAYC,aAAaC,oBAAoB;EAC3C;IACEC,WAAWC;IACXC,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMC,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,cAAA,KAAmB;MAChEC,MAAMF,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,cAAA,KAAmB;MAChEE,MAAMd;IACR;IACAe,aAAa,MAAA;IAEb;EACF;EACA;IACEV,WAAWW;IACXT,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKI,KAAKI,WAAWP,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,qBAAA;MAC1EC,MAAMJ,KAAKI,KAAKI,WAAWP,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,qBAAA;MAC1EE,MAAMd;IACR;IACAe,aAAa,OAAOF,SAAAA;AAClB,YAAM,EAAEK,iBAAiBC,SAAQ,IAAKlB,QAAQmB,cAAcjB,aAAakB,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SAASI,aAAaC,YAAYC,QAAQ;QAAEf,MAAMG,KAAKH;QAAMgB,iBAAiB;MAAK,CAAA,CAAA;AACxG,aAAOJ,OAAOT,MAAMc;IACtB;EACF;EACA;IACEtB,WAAWV;IACXY,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKI,KAAKH,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,yBAAA;MAC/DC,MAAMJ,KAAKI,KAAKH,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,yBAAA;MAC/DE,MAAMd;IACR;IACAe,aAAa,OAAOF,MAAMe,cAAAA;AACxB,YAAMD,QAAQC,UAAUC,KAAKC,OAAAA;AAC7B,YAAMC,aACJH,UAAUI,SAAS,CAACC,aAAaC,IAAIC,WAAWrC,SAASC,YAAYkC,QAAAA,CAAAA,KACrEN,OAAOV,WAAWtB,eAAAA,GAAkByC;AACtC,UAAI,CAACT,SAAS,CAACI,YAAY;AACzB;MACF;AAEA,YAAM,EAAEb,iBAAiBC,SAAQ,IAAKlB,QAAQmB,cAAcjB,aAAakB,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SACnBI,aAAaC,YAAYa,WAAW;QAClCD,QAAQL;QACRO,QAAQJ,IAAIK,KAAKzC,SAASC,YAAY;UAAEW,MAAMG,KAAKH;UAAM8B,SAAS,CAAA;QAAG,CAAA;MACvE,CAAA,CAAA;AAGF,aAAOlB,OAAOT,MAAMyB;IACtB;EACF;CACD;",
6
- "names": ["Capabilities", "contributes", "createIntent", "isSpace", "Obj", "Type", "DataType", "COLLECTION_TYPE", "Type", "getTypename", "DataType", "Collection", "DIRECTORY_TYPE", "context", "contributes", "Capabilities", "AppGraphSerializer", "inputType", "SPACES", "outputType", "serialize", "node", "name", "translations", "SPACE_PLUGIN", "data", "type", "deserialize", "SPACE_TYPE", "properties", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "result", "createIntent", "SpaceAction", "Create", "edgeReplication", "space", "ancestors", "find", "isSpace", "collection", "findLast", "ancestor", "Obj", "instanceOf", "target", "AddObject", "object", "make", "objects"]
7
- }
@@ -1,19 +0,0 @@
1
- import {
2
- SPACE_PLUGIN
3
- } from "./chunk-FBCGT5YY.mjs";
4
-
5
- // src/events.ts
6
- import { Events, defineEvent } from "@dxos/app-framework";
7
- (function(SpaceEvents2) {
8
- SpaceEvents2.StateReady = Events.createStateEvent(`${SPACE_PLUGIN}/event/state-ready`);
9
- SpaceEvents2.SetupSettingsPanel = defineEvent(`${SPACE_PLUGIN}/event/setup-settings-panel`);
10
- SpaceEvents2.DefaultSpaceReady = defineEvent(`${SPACE_PLUGIN}/event/default-space-ready`);
11
- SpaceEvents2.SpaceCreated = defineEvent(`${SPACE_PLUGIN}/event/space-created`);
12
- SpaceEvents2.SchemaAdded = defineEvent(`${SPACE_PLUGIN}/event/schema-added`);
13
- })(SpaceEvents || (SpaceEvents = {}));
14
- var SpaceEvents;
15
-
16
- export {
17
- SpaceEvents
18
- };
19
- //# sourceMappingURL=chunk-CBYL62HG.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/events.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events, defineEvent } from '@dxos/app-framework';\n\nimport { SPACE_PLUGIN } from './meta';\n\nexport namespace SpaceEvents {\n export const StateReady = Events.createStateEvent(`${SPACE_PLUGIN}/event/state-ready`);\n export const SetupSettingsPanel = defineEvent(`${SPACE_PLUGIN}/event/setup-settings-panel`);\n export const DefaultSpaceReady = defineEvent(`${SPACE_PLUGIN}/event/default-space-ready`);\n export const SpaceCreated = defineEvent(`${SPACE_PLUGIN}/event/space-created`);\n export const SchemaAdded = defineEvent(`${SPACE_PLUGIN}/event/schema-added`);\n}\n"],
5
- "mappings": ";;;;;AAIA,SAASA,QAAQC,mBAAmB;UAInBC,cAAAA;eACFC,aAAaC,OAAOC,iBAAiB,GAAGC,YAAAA,oBAAgC;eACxEC,qBAAqBC,YAAY,GAAGF,YAAAA,6BAAyC;eAC7EG,oBAAoBD,YAAY,GAAGF,YAAAA,4BAAwC;eAC3EI,eAAeF,YAAY,GAAGF,YAAAA,sBAAkC;eAChEK,cAAcH,YAAY,GAAGF,YAAAA,qBAAiC;AAC7E,GANiBJ,gBAAAA,cAAAA,CAAAA,EAAAA;;",
6
- "names": ["Events", "defineEvent", "SpaceEvents", "StateReady", "Events", "createStateEvent", "SPACE_PLUGIN", "SetupSettingsPanel", "defineEvent", "DefaultSpaceReady", "SpaceCreated", "SchemaAdded"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/util.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { pipe } from 'effect';\n\nimport { LayoutAction, type PromiseIntentDispatcher, chain, createIntent } from '@dxos/app-framework';\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { type AnyEchoObject, EXPANDO_TYPENAME } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n type ActionData,\n type InvokeParams,\n type Node,\n type NodeArg,\n type ReadableGraph,\n isGraphNode,\n} from '@dxos/plugin-graph';\nimport { type QueryResult, type Space, SpaceState, fullyQualifiedId, getSpace, isSpace } from '@dxos/react-client/echo';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';\nimport { type TreeData } from '@dxos/react-ui-list';\nimport { DataType } from '@dxos/schema';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { type ObjectForm, SPACE_TYPE, SpaceAction } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\n/**\n * Convert a query result to an Rx value of the objects.\n */\nexport const rxFromQuery = <T extends AnyEchoObject>(query: QueryResult<T>): Rx.Rx<T[]> => {\n return Rx.make((get) => {\n const unsubscribe = query.subscribe((result) => {\n get.setSelf(result.objects);\n });\n\n get.addFinalizer(() => unsubscribe());\n return query.objects;\n });\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 collection,\n space,\n resolve,\n}: {\n collection: DataType.Collection;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\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(Obj.isObject).map(Ref.make);\n },\n onTransferStart: (child: Node<Obj.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, Ref.make(child.data));\n } else {\n collection.objects.push(Ref.make(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<Obj.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<Obj.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, Ref.make(newObject));\n } else {\n collection.objects.push(Ref.make(newObject));\n }\n },\n };\n};\n\nconst getQueryCollectionNodePartials = ({\n collection,\n space,\n resolve,\n}: {\n collection: DataType.QueryCollection;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n icon: collection.query.typename && resolve(collection.query.typename)?.icon,\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n canDrop: (source: TreeData) => {\n return (\n isGraphNode(source.item) &&\n Obj.isObject(source.item.data) &&\n Obj.getTypename(source.item.data) === collection.query.typename\n );\n },\n onTransferStart: (child: Node<Obj.Any>, index?: number) => {\n // No-op. Objects are moved into query collections by being removed from their original collection.\n },\n onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {\n // No-op. Objects are moved out of query collections by being added to another collection.\n },\n };\n};\n\nconst getSchemaGraphNodePartials = () => {\n return {\n role: 'branch',\n canDrop: () => false,\n };\n};\n\nconst getViewGraphNodePartials = ({\n view,\n resolve,\n}: {\n view: DataType.View;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const presentation = view.presentation.target;\n const typename = presentation ? Obj.getTypename(presentation) : undefined;\n const metadata = typename ? resolve(typename) : {};\n\n return {\n label: view.name || ['object name placeholder', { ns: typename, default: 'New view' }],\n icon: metadata.icon,\n canDrop: () => false,\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 =\n space.state.get() === SpaceState.SPACE_READY && space.properties[DataType.Collection.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(DataType.Collection, collection)\n ? getCollectionGraphNodePartials({ collection, space, resolve })\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 canDrop: (source: TreeData) => {\n // TODO(wittjosiah): Find a way to only allow space as source for rearranging.\n return Obj.isObject(source.item.data) || isSpace(source.item.data);\n },\n },\n nodes: [\n {\n id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/settings`,\n data: null,\n properties: {\n label: ['settings panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--faders--regular',\n disposition: 'alternate-tree',\n },\n nodes: [\n {\n id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/properties`,\n data: `${SPACE_PLUGIN}/properties`,\n properties: {\n label: ['space settings properties label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n position: 'hoist',\n },\n },\n {\n id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/members`,\n data: `${SPACE_PLUGIN}/members`,\n properties: {\n label: ['members panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n position: 'hoist',\n },\n },\n {\n id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/schema`,\n data: `${SPACE_PLUGIN}/schema`,\n properties: {\n label: ['space settings schema label', { ns: SPACE_PLUGIN }],\n icon: 'ph--shapes--regular',\n },\n },\n ],\n },\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: 'list-item-primary',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\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.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 }\n\n return actions;\n};\n\nexport const createStaticSchemaNode = ({ schema, space }: { schema: Type.Obj.Any; space: Space }) => {\n return {\n id: `${space.id}/${Type.getTypename(schema)}`,\n type: `${SPACE_PLUGIN}/static-schema`,\n data: schema,\n properties: {\n label: ['typename label', { ns: Type.getTypename(schema), default: Type.getTypename(schema) }],\n icon: 'ph--database--regular',\n role: 'branch',\n canDrop: () => false,\n space,\n },\n };\n};\n\nexport const createStaticSchemaActions = ({\n schema,\n space,\n dispatch,\n deletable,\n}: {\n schema: Type.Obj.Any;\n space: Space;\n dispatch: PromiseIntentDispatcher;\n deletable: boolean;\n}) => {\n const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;\n\n const actions: NodeArg<ActionData>[] = [\n {\n id: getId(SpaceAction.AddObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(\n createIntent(SpaceAction.OpenCreateObject, {\n target: space,\n views: true,\n initialFormValues: { typename: Type.getTypename(schema) },\n }),\n );\n },\n properties: {\n label: ['add view to schema label', { ns: Type.getTypename(DataType.StoredSchema) }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.addViewToSchema',\n },\n },\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n throw new Error('Not implemented');\n },\n properties: {\n label: ['rename object label', { ns: Type.getTypename(DataType.StoredSchema) }],\n icon: 'ph--pencil-simple-line--regular',\n disabled: true,\n disposition: 'list-item',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const index = space.properties.staticRecords.findIndex(\n (typename: string) => typename === Type.getTypename(schema),\n );\n if (index > -1) {\n space.properties.staticRecords.splice(index, 1);\n }\n },\n properties: {\n label: ['delete object label', { ns: Type.getTypename(DataType.StoredSchema) }],\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n testId: 'spacePlugin.deleteObject',\n },\n },\n ];\n\n return actions;\n};\n\nexport const createObjectNode = ({\n space,\n object,\n disposition,\n droppable = true,\n navigable = false,\n resolve,\n}: {\n space: Space;\n object: Obj.Any;\n disposition?: string;\n droppable?: boolean;\n navigable?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = Obj.getTypename(object);\n if (!type) {\n return null;\n }\n\n const metadata = resolve(type);\n const partials = Obj.instanceOf(DataType.Collection, object)\n ? getCollectionGraphNodePartials({ collection: object, space, resolve })\n : Obj.instanceOf(DataType.QueryCollection, object)\n ? getQueryCollectionNodePartials({ collection: object, space, resolve })\n : Obj.instanceOf(DataType.StoredSchema, object)\n ? getSchemaGraphNodePartials()\n : Obj.instanceOf(DataType.View, object)\n ? getViewGraphNodePartials({ view: object, resolve })\n : metadata.graphProps;\n\n // TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.\n // e.g., create new collection with no name and rename it.\n const label = (object as any).name ||\n Obj.getLabel(object) ||\n // TODO(wittjosiah): Remove metadata labels.\n metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New item' }];\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n label,\n icon: metadata.icon ?? 'ph--placeholder--regular',\n disposition,\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n canDrop: (source: TreeData) => {\n return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);\n },\n ...partials,\n },\n };\n};\n\nexport const constructObjectActions = ({\n object,\n graph,\n dispatch,\n objectForms,\n deletable = true,\n navigable = false,\n}: {\n object: Obj.Any;\n graph: ReadableGraph;\n dispatch: PromiseIntentDispatcher;\n objectForms: ObjectForm<any>[];\n deletable?: boolean;\n navigable?: boolean;\n}) => {\n const space = getSpace(object);\n invariant(space, 'Space not found');\n const typename = Obj.getTypename(object);\n invariant(typename, 'Object has no typename');\n\n const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;\n\n const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : undefined;\n const matchingObjectForm = queryCollection\n ? objectForms.find((form) => Type.getTypename(form.objectSchema) === queryCollection.query.typename)\n : undefined;\n\n const actions: NodeArg<ActionData>[] = [\n ...(Obj.instanceOf(DataType.Collection, object)\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: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n ...(Obj.instanceOf(DataType.StoredSchema, object)\n ? [\n {\n id: getId(SpaceAction.AddObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(\n createIntent(SpaceAction.OpenCreateObject, {\n target: space,\n views: true,\n initialFormValues: { typename: object.typename },\n }),\n );\n },\n properties: {\n label: ['add view to schema label', { ns: Type.getTypename(DataType.StoredSchema) }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.addViewToSchema',\n },\n },\n ]\n : []),\n ...(matchingObjectForm\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (matchingObjectForm.formSchema) {\n await dispatch(\n createIntent(SpaceAction.OpenCreateObject, {\n target: space,\n typename: queryCollection?.query.typename,\n }),\n );\n } else {\n await dispatch(\n pipe(\n matchingObjectForm.getIntent({}, { space }),\n chain(SpaceAction.AddObject, { target: space, hidden: true }),\n chain(LayoutAction.Open, { part: 'main' }),\n ),\n );\n }\n },\n properties: {\n label: ['create object in smart collection label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\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: ['rename object label', { ns: typename }],\n icon: 'ph--pencil-simple-line--regular',\n disposition: 'list-item',\n // TODO(wittjosiah): Not working.\n // keyBinding: {\n // macos: 'shift+F6',\n // },\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const collection = graph\n .getConnections(fullyQualifiedId(object), 'inbound')\n .find(({ data }) => Obj.instanceOf(DataType.Collection, data))?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: ['delete object label', { ns: typename }],\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n // TODO(wittjosiah): This is a browser shortcut.\n // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ...(navigable ||\n (!Obj.instanceOf(DataType.Collection, object) &&\n !Obj.instanceOf(DataType.QueryCollection, object) &&\n !Obj.instanceOf(DataType.StoredSchema, object))\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 disposition: 'list-item',\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 disposition: 'heading-list-item',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: Obj.Any,\n resolve: (typename: string) => Record<string, any>,\n): Promise<Obj.Any[]> => {\n const type = Obj.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: Obj.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: Type.Expando,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Type.Expando> => {\n const schema = Obj.getSchema(object);\n const typename = schema ? (Type.getTypename(schema) ?? 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": ["Rx", "pipe", "LayoutAction", "chain", "createIntent", "Obj", "Ref", "Type", "EXPANDO_TYPENAME", "invariant", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "isGraphNode", "SpaceState", "fullyQualifiedId", "getSpace", "isSpace", "ATTENDABLE_PATH_SEPARATOR", "DataType", "SPACES", "SPACE_PLUGIN", "COMPOSER_SPACE_LOCK", "SHARED", "rxFromQuery", "query", "Rx", "make", "get", "unsubscribe", "subscribe", "result", "setSelf", "objects", "addFinalizer", "getSpaceDisplayName", "space", "personal", "namesCache", "state", "SpaceState", "SPACE_READY", "properties", "name", "length", "id", "ns", "getCollectionGraphNodePartials", "collection", "resolve", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "filter", "Obj", "isObject", "map", "Ref", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "db", "add", "getQueryCollectionNodePartials", "icon", "typename", "canDrop", "source", "isGraphNode", "item", "getTypename", "getSchemaGraphNodePartials", "getViewGraphNodePartials", "view", "presentation", "undefined", "metadata", "label", "default", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "navigable", "hasPendingMigration", "DataType", "Collection", "partials", "instanceOf", "type", "SPACE_TYPE", "cacheable", "description", "hue", "disabled", "testId", "isSpace", "nodes", "ATTENDABLE_PATH_SEPARATOR", "disposition", "position", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "running", "OpenCreateObject", "ACTION_TYPE", "Rename", "params", "caller", "keyBinding", "macos", "windows", "createStaticSchemaNode", "schema", "Type", "createStaticSchemaActions", "deletable", "AddObject", "views", "initialFormValues", "StoredSchema", "RenameObject", "Error", "RemoveObjects", "staticRecords", "createObjectNode", "droppable", "QueryCollection", "View", "graphProps", "getLabel", "fullyQualifiedId", "persistenceClass", "persistenceKey", "constructObjectActions", "graph", "objectForms", "getSpace", "invariant", "queryCollection", "matchingObjectForm", "form", "objectSchema", "formSchema", "pipe", "getIntent", "chain", "hidden", "LayoutAction", "Open", "part", "getConnections", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "Expose", "subject", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "getSchema", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
7
- }
@@ -1,94 +0,0 @@
1
- // src/hooks/useActiveSpace.ts
2
- import { Capabilities, useLayout } from "@dxos/app-framework";
3
- import { ClientCapabilities } from "@dxos/plugin-client";
4
- import { parseId, useSpace } from "@dxos/react-client/echo";
5
- var getActiveSpace = (context) => {
6
- const client = context.getCapability(ClientCapabilities.Client);
7
- const layout = context.getCapability(Capabilities.Layout);
8
- const { spaceId } = parseId(layout.workspace);
9
- return spaceId ? client.spaces.get(spaceId) : void 0;
10
- };
11
- var useActiveSpace = () => {
12
- const layout = useLayout();
13
- const { spaceId } = parseId(layout.workspace);
14
- return useSpace(spaceId);
15
- };
16
-
17
- // src/hooks/useInputSurfaceLookup.tsx
18
- import React, { useCallback } from "react";
19
- import { Surface, isSurfaceAvailable, usePluginManager } from "@dxos/app-framework";
20
- var useInputSurfaceLookup = (baseData) => {
21
- const pluginManager = usePluginManager();
22
- return useCallback(({ prop, schema, inputProps }) => {
23
- const composedData = {
24
- prop,
25
- schema,
26
- ...baseData
27
- };
28
- if (!isSurfaceAvailable(pluginManager.context, {
29
- role: "form-input",
30
- data: composedData
31
- })) {
32
- return void 0;
33
- }
34
- return /* @__PURE__ */ React.createElement(Surface, {
35
- role: "form-input",
36
- data: composedData,
37
- ...inputProps
38
- });
39
- }, [
40
- pluginManager,
41
- baseData
42
- ]);
43
- };
44
-
45
- // src/hooks/usePath.ts
46
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
47
- import { Option } from "effect";
48
- import { useEffect, useState } from "react";
49
- var usePath = (graph, id, timeout) => {
50
- var _effect = _useSignals();
51
- try {
52
- const [pathState, setPathState] = useState(id ? graph.getPath({
53
- target: id
54
- }) : Option.none());
55
- useEffect(() => {
56
- if (!id && pathState) {
57
- setPathState(Option.none());
58
- }
59
- if (Option.isSome(pathState) && pathState.value.at(-1) === id || !id) {
60
- return;
61
- }
62
- const frame = requestAnimationFrame(async () => {
63
- try {
64
- const path = await graph.waitForPath({
65
- target: id
66
- }, {
67
- timeout
68
- });
69
- if (path) {
70
- setPathState(Option.some(path));
71
- }
72
- } catch {
73
- }
74
- });
75
- return () => cancelAnimationFrame(frame);
76
- }, [
77
- graph,
78
- id,
79
- timeout,
80
- pathState
81
- ]);
82
- return pathState;
83
- } finally {
84
- _effect.f();
85
- }
86
- };
87
-
88
- export {
89
- getActiveSpace,
90
- useActiveSpace,
91
- useInputSurfaceLookup,
92
- usePath
93
- };
94
- //# sourceMappingURL=chunk-ELJDGQTO.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/hooks/useActiveSpace.ts", "../../../src/hooks/useInputSurfaceLookup.tsx", "../../../src/hooks/usePath.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type PluginContext, useLayout } from '@dxos/app-framework';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { parseId, useSpace } from '@dxos/react-client/echo';\n\nexport const getActiveSpace = (context: PluginContext) => {\n const client = context.getCapability(ClientCapabilities.Client);\n const layout = context.getCapability(Capabilities.Layout);\n const { spaceId } = parseId(layout.workspace);\n return spaceId ? client.spaces.get(spaceId) : undefined;\n};\n\nexport const useActiveSpace = () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n return useSpace(spaceId);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Schema } from 'effect';\nimport React, { useCallback } from 'react';\n\nimport { Surface, isSurfaceAvailable, usePluginManager } from '@dxos/app-framework';\nimport { type InputProps } from '@dxos/react-ui-form';\n\n// TODO(ZaymonFC): Move this if you find yourself needing it elsewhere.\n/**\n * Creates a surface input component based on plugin context.\n * @param baseData Additional data that will be merged with form data and passed to the surface.\n * This allows providing more context to the surface than what's available from the form itself.\n */\nexport const useInputSurfaceLookup = (baseData?: Record<string, any>) => {\n const pluginManager = usePluginManager();\n\n return useCallback(\n ({ prop, schema, inputProps }: { prop: string; schema: Schema.Schema<any>; inputProps: InputProps }) => {\n const composedData = { prop, schema, ...baseData };\n if (!isSurfaceAvailable(pluginManager.context, { role: 'form-input', data: composedData })) {\n return undefined;\n }\n\n return <Surface role='form-input' data={composedData} {...inputProps} />;\n },\n [pluginManager, baseData],\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Option } from 'effect';\nimport { useEffect, useState } from 'react';\n\nimport { type ReadableGraph } from '@dxos/plugin-graph';\n\n/**\n * React hook to get a path from the graph.\n *\n * @param graph Graph to find the node in.\n * @param id Id of the node to find a path to.\n * @param timeout Optional timeout in milliseconds to wait for the node to be found.\n * @returns Path if found, undefined otherwise.\n */\n// TODO(wittjosiah): Factor out.\nexport const usePath = (graph: ReadableGraph, id?: string, timeout?: number): Option.Option<string[]> => {\n const [pathState, setPathState] = useState<Option.Option<string[]>>(\n id ? graph.getPath({ target: id }) : Option.none(),\n );\n\n useEffect(() => {\n if (!id && pathState) {\n setPathState(Option.none());\n }\n\n if ((Option.isSome(pathState) && pathState.value.at(-1) === id) || !id) {\n return;\n }\n\n // Set timeout did not seem to effectively not block the UI thread.\n const frame = requestAnimationFrame(async () => {\n try {\n const path = await graph.waitForPath({ target: id }, { timeout });\n if (path) {\n setPathState(Option.some(path));\n }\n } catch {}\n });\n\n return () => cancelAnimationFrame(frame);\n }, [graph, id, timeout, pathState]);\n\n return pathState;\n};\n"],
5
- "mappings": ";AAIA,SAASA,cAAkCC,iBAAiB;AAC5D,SAASC,0BAA0B;AACnC,SAASC,SAASC,gBAAgB;AAE3B,IAAMC,iBAAiB,CAACC,YAAAA;AAC7B,QAAMC,SAASD,QAAQE,cAAcC,mBAAmBC,MAAM;AAC9D,QAAMC,SAASL,QAAQE,cAAcI,aAAaC,MAAM;AACxD,QAAM,EAAEC,QAAO,IAAKC,QAAQJ,OAAOK,SAAS;AAC5C,SAAOF,UAAUP,OAAOU,OAAOC,IAAIJ,OAAAA,IAAWK;AAChD;AAEO,IAAMC,iBAAiB,MAAA;AAC5B,QAAMT,SAASU,UAAAA;AACf,QAAM,EAAEP,QAAO,IAAKC,QAAQJ,OAAOK,SAAS;AAC5C,SAAOM,SAASR,OAAAA;AAClB;;;ACdA,OAAOS,SAASC,mBAAmB;AAEnC,SAASC,SAASC,oBAAoBC,wBAAwB;AASvD,IAAMC,wBAAwB,CAACC,aAAAA;AACpC,QAAMC,gBAAgBC,iBAAAA;AAEtB,SAAOC,YACL,CAAC,EAAEC,MAAMC,QAAQC,WAAU,MAAwE;AACjG,UAAMC,eAAe;MAAEH;MAAMC;MAAQ,GAAGL;IAAS;AACjD,QAAI,CAACQ,mBAAmBP,cAAcQ,SAAS;MAAEC,MAAM;MAAcC,MAAMJ;IAAa,CAAA,GAAI;AAC1F,aAAOK;IACT;AAEA,WAAO,sBAAA,cAACC,SAAAA;MAAQH,MAAK;MAAaC,MAAMJ;MAAe,GAAGD;;EAC5D,GACA;IAACL;IAAeD;GAAS;AAE7B;;;;AC1BA,SAASc,cAAc;AACvB,SAASC,WAAWC,gBAAgB;AAa7B,IAAMC,UAAU,CAACC,OAAsBC,IAAaC,YAAAA;;;AACzD,UAAM,CAACC,WAAWC,YAAAA,IAAgBC,SAChCJ,KAAKD,MAAMM,QAAQ;MAAEC,QAAQN;IAAG,CAAA,IAAKO,OAAOC,KAAI,CAAA;AAGlDC,cAAU,MAAA;AACR,UAAI,CAACT,MAAME,WAAW;AACpBC,qBAAaI,OAAOC,KAAI,CAAA;MAC1B;AAEA,UAAKD,OAAOG,OAAOR,SAAAA,KAAcA,UAAUS,MAAMC,GAAG,EAAC,MAAOZ,MAAO,CAACA,IAAI;AACtE;MACF;AAGA,YAAMa,QAAQC,sBAAsB,YAAA;AAClC,YAAI;AACF,gBAAMC,OAAO,MAAMhB,MAAMiB,YAAY;YAAEV,QAAQN;UAAG,GAAG;YAAEC;UAAQ,CAAA;AAC/D,cAAIc,MAAM;AACRZ,yBAAaI,OAAOU,KAAKF,IAAAA,CAAAA;UAC3B;QACF,QAAQ;QAAC;MACX,CAAA;AAEA,aAAO,MAAMG,qBAAqBL,KAAAA;IACpC,GAAG;MAACd;MAAOC;MAAIC;MAASC;KAAU;AAElC,WAAOA;;;;AACT;",
6
- "names": ["Capabilities", "useLayout", "ClientCapabilities", "parseId", "useSpace", "getActiveSpace", "context", "client", "getCapability", "ClientCapabilities", "Client", "layout", "Capabilities", "Layout", "spaceId", "parseId", "workspace", "spaces", "get", "undefined", "useActiveSpace", "useLayout", "useSpace", "React", "useCallback", "Surface", "isSurfaceAvailable", "usePluginManager", "useInputSurfaceLookup", "baseData", "pluginManager", "usePluginManager", "useCallback", "prop", "schema", "inputProps", "composedData", "isSurfaceAvailable", "context", "role", "data", "undefined", "Surface", "Option", "useEffect", "useState", "usePath", "graph", "id", "timeout", "pathState", "setPathState", "useState", "getPath", "target", "Option", "none", "useEffect", "isSome", "value", "at", "frame", "requestAnimationFrame", "path", "waitForPath", "some", "cancelAnimationFrame"]
7
- }
@@ -1,13 +0,0 @@
1
- // src/meta.ts
2
- var SPACE_PLUGIN = "dxos.org/plugin/space";
3
- var meta = {
4
- id: SPACE_PLUGIN,
5
- name: "Spaces",
6
- icon: "ph--planet--regular"
7
- };
8
-
9
- export {
10
- SPACE_PLUGIN,
11
- meta
12
- };
13
- //# sourceMappingURL=chunk-FBCGT5YY.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const SPACE_PLUGIN = 'dxos.org/plugin/space';\n\nexport const meta: PluginMeta = {\n id: SPACE_PLUGIN,\n name: 'Spaces',\n icon: 'ph--planet--regular',\n};\n"],
5
- "mappings": ";AAMO,IAAMA,eAAe;AAErB,IAAMC,OAAmB;EAC9BC,IAAIF;EACJG,MAAM;EACNC,MAAM;AACR;",
6
- "names": ["SPACE_PLUGIN", "meta", "id", "name", "icon"]
7
- }