@dxos/plugin-space 0.8.4-main.3f58842 → 0.8.4-main.548089c

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 (363) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionArticle-ABGFK4VO.mjs} +10 -10
  2. package/dist/lib/browser/CollectionArticle-ABGFK4VO.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-G4BCSFFA.mjs +116 -0
  8. package/dist/lib/browser/RecordArticle-G4BCSFFA.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-7CZZJS3S.mjs → app-graph-builder-FFPJHWFB.mjs} +124 -75
  10. package/dist/lib/browser/app-graph-builder-FFPJHWFB.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-QMWE2YE4.mjs} +19 -19
  12. package/dist/lib/browser/app-graph-serializer-QMWE2YE4.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-I4W2BHA2.mjs} +122 -61
  14. package/dist/lib/browser/chunk-I4W2BHA2.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-K5J7ZB5P.mjs +20 -0
  16. package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-K6TOP4E6.mjs +167 -0
  18. package/dist/lib/browser/chunk-K6TOP4E6.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-SGTQ52SU.mjs → chunk-M2Z6D4ZI.mjs} +32 -21
  20. package/dist/lib/browser/chunk-M2Z6D4ZI.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-V7MJSSBQ.mjs → chunk-MHXNG2X2.mjs} +587 -513
  22. package/dist/lib/browser/chunk-MHXNG2X2.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-OLBBSOVI.mjs} +30 -17
  24. package/dist/lib/browser/chunk-OLBBSOVI.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-23XJJV2N.mjs → identity-created-NAXTPQXE.mjs} +6 -6
  30. package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +88 -88
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-TIXVDYN7.mjs → intent-resolver-WLFWCHDH.mjs} +87 -85
  34. package/dist/lib/browser/intent-resolver-WLFWCHDH.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/react-root-BPPTUFLV.mjs +30 -0
  37. package/dist/lib/browser/react-root-BPPTUFLV.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-TPNLWJJH.mjs → react-surface-3KTOA5PM.mjs} +81 -104
  39. package/dist/lib/browser/react-surface-3KTOA5PM.mjs.map +7 -0
  40. package/dist/lib/browser/{schema-defs-Z6FC4AHC.mjs → schema-defs-XCNOO2WT.mjs} +5 -5
  41. package/dist/lib/browser/schema-defs-XCNOO2WT.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-WKLGKUHQ.mjs} +5 -5
  43. package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-WKLGKUHQ.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-XVW7I5MQ.mjs} +21 -18
  45. package/dist/lib/browser/spaces-ready-XVW7I5MQ.mjs.map +7 -0
  46. package/dist/lib/browser/{state-QYZAB45H.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-G3V4QXPI.mjs} +10 -10
  50. package/dist/lib/node-esm/CollectionArticle-G3V4QXPI.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-PBMLYY5K.mjs +117 -0
  56. package/dist/lib/node-esm/RecordArticle-PBMLYY5K.mjs.map +7 -0
  57. package/dist/lib/node-esm/{app-graph-builder-KGIGWC72.mjs → app-graph-builder-3BTVV7LE.mjs} +124 -75
  58. package/dist/lib/node-esm/app-graph-builder-3BTVV7LE.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-BU7KO2G5.mjs} +19 -19
  60. package/dist/lib/node-esm/app-graph-serializer-BU7KO2G5.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-JH6F4C3I.mjs → chunk-2PN7QNGV.mjs} +32 -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-FAWIRIP4.mjs +168 -0
  66. package/dist/lib/node-esm/chunk-FAWIRIP4.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-H4JILUJK.mjs +20 -0
  68. package/dist/lib/node-esm/chunk-H4JILUJK.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-HQMFTMJE.mjs} +122 -61
  70. package/dist/lib/node-esm/chunk-HQMFTMJE.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-6X5DLJM5.mjs → chunk-MI4A5XUX.mjs} +587 -513
  72. package/dist/lib/node-esm/chunk-MI4A5XUX.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-WC4VBFMA.mjs} +30 -17
  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-IJQO6GCR.mjs → identity-created-OXLKCJE3.mjs} +6 -6
  78. package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +88 -88
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-MHGHRGDT.mjs → intent-resolver-QHH5SXLC.mjs} +87 -85
  82. package/dist/lib/node-esm/intent-resolver-QHH5SXLC.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/{react-root-KW3TGJGY.mjs → react-root-QRONKFKI.mjs} +13 -12
  85. package/dist/lib/node-esm/react-root-QRONKFKI.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-UUIUUD6P.mjs → react-surface-OZBWNTW2.mjs} +81 -104
  87. package/dist/lib/node-esm/react-surface-OZBWNTW2.mjs.map +7 -0
  88. package/dist/lib/node-esm/{schema-defs-WHJM7UZE.mjs → schema-defs-5TDB7T5J.mjs} +5 -5
  89. package/dist/lib/node-esm/schema-defs-5TDB7T5J.mjs.map +7 -0
  90. package/dist/lib/node-esm/{settings-SAOBPND3.mjs → settings-RBB5633M.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-RBB5633M.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-J6RWPI2X.mjs} +21 -18
  93. package/dist/lib/node-esm/spaces-ready-J6RWPI2X.mjs.map +7 -0
  94. package/dist/lib/node-esm/{state-ZVEHQ4BJ.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 +1 -1
  100. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  102. package/dist/types/src/capabilities/capabilities.d.ts +7 -6
  103. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/identity-created.d.ts +1 -1
  105. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/index.d.ts +11 -12
  107. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  109. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  111. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  113. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  115. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/settings.d.ts +1 -1
  117. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  118. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  119. package/dist/types/src/capabilities/state.d.ts +1 -1
  120. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  121. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  122. package/dist/types/src/components/CollectionArticle.d.ts +6 -0
  123. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  124. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  125. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  126. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -3
  127. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  128. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1694 -4
  129. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  130. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +7 -5
  131. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  132. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  133. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  134. package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
  135. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  136. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  137. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  138. package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
  139. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  140. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1697 -0
  141. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -0
  142. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  143. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  144. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  145. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  146. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  147. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  148. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  149. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  150. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  151. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  152. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  153. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  154. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  155. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  156. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  157. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1530 -0
  158. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  159. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  160. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  161. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  162. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  163. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  164. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  165. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  166. package/dist/types/src/components/RecordArticle.stories.d.ts +1697 -0
  167. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  168. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  169. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  170. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  171. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +4 -3
  172. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  173. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +1527 -0
  174. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
  175. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  176. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  177. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  178. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  179. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  180. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  181. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  182. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1527 -4
  183. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  184. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  185. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1528 -5
  186. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  187. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  188. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  189. package/dist/types/src/components/index.d.ts +10 -11
  190. package/dist/types/src/components/index.d.ts.map +1 -1
  191. package/dist/types/src/events.d.ts.map +1 -1
  192. package/dist/types/src/helpers/index.d.ts +2 -0
  193. package/dist/types/src/helpers/index.d.ts.map +1 -0
  194. package/dist/types/src/helpers/query.d.ts +8 -0
  195. package/dist/types/src/helpers/query.d.ts.map +1 -0
  196. package/dist/types/src/helpers/query.test.d.ts +2 -0
  197. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  198. package/dist/types/src/hooks/index.d.ts +1 -0
  199. package/dist/types/src/hooks/index.d.ts.map +1 -1
  200. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  201. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  202. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  203. package/dist/types/src/hooks/usePath.d.ts +1 -1
  204. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  205. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  206. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  207. package/dist/types/src/index.d.ts +1 -0
  208. package/dist/types/src/index.d.ts.map +1 -1
  209. package/dist/types/src/meta.d.ts +0 -1
  210. package/dist/types/src/meta.d.ts.map +1 -1
  211. package/dist/types/src/translations.d.ts +1326 -26
  212. package/dist/types/src/translations.d.ts.map +1 -1
  213. package/dist/types/src/types/types.d.ts +78 -96
  214. package/dist/types/src/types/types.d.ts.map +1 -1
  215. package/dist/types/src/util.d.ts +16 -11
  216. package/dist/types/src/util.d.ts.map +1 -1
  217. package/dist/types/tsconfig.tsbuildinfo +1 -1
  218. package/package.json +66 -59
  219. package/src/SpacePlugin.ts +230 -220
  220. package/src/capabilities/app-graph-builder.ts +201 -117
  221. package/src/capabilities/app-graph-serializer.ts +12 -12
  222. package/src/capabilities/capabilities.ts +19 -13
  223. package/src/capabilities/identity-created.ts +3 -3
  224. package/src/capabilities/index.ts +0 -1
  225. package/src/capabilities/intent-resolver.ts +81 -64
  226. package/src/capabilities/react-root.tsx +6 -4
  227. package/src/capabilities/react-surface.tsx +78 -140
  228. package/src/capabilities/schema-defs.ts +3 -2
  229. package/src/capabilities/spaces-ready.ts +16 -10
  230. package/src/capabilities/state.ts +5 -4
  231. package/src/components/AwaitingObject.tsx +12 -14
  232. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
  233. package/src/components/CollectionSection.tsx +8 -6
  234. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +17 -16
  235. package/src/components/CreateDialog/CreateObjectDialog.tsx +51 -33
  236. package/src/components/CreateDialog/CreateObjectPanel.tsx +24 -13
  237. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -11
  238. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
  239. package/src/components/JoinDialog/index.ts +5 -0
  240. package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
  241. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +22 -21
  242. package/src/components/MembersContainer/index.ts +5 -0
  243. package/src/components/MenuFooter.tsx +2 -2
  244. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +51 -0
  245. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
  246. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  247. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +10 -16
  248. package/src/components/ObjectRenamePopover/index.ts +5 -0
  249. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -3
  250. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  251. package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
  252. package/src/components/ObjectSettings/ForeignKeys.tsx +4 -4
  253. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +4 -3
  254. package/src/components/ObjectSettings/index.ts +3 -1
  255. package/src/components/RecordArticle.stories.tsx +115 -0
  256. package/src/components/RecordArticle.tsx +114 -0
  257. package/src/components/SchemaContainer.tsx +25 -28
  258. package/src/components/SpacePluginSettings.tsx +16 -11
  259. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +24 -23
  260. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +22 -17
  261. package/src/components/SpacePresence/index.ts +5 -0
  262. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
  263. package/src/components/SpaceRenamePopover/index.ts +5 -0
  264. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
  265. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +49 -28
  266. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  267. package/src/components/SyncStatus/SyncStatus.stories.tsx +9 -9
  268. package/src/components/SyncStatus/SyncStatus.tsx +109 -12
  269. package/src/components/ViewEditor.tsx +51 -23
  270. package/src/components/index.ts +7 -7
  271. package/src/events.ts +7 -7
  272. package/src/helpers/index.ts +5 -0
  273. package/src/helpers/query.test.ts +24 -0
  274. package/src/helpers/query.ts +158 -0
  275. package/src/hooks/index.ts +1 -0
  276. package/src/hooks/useActiveSpace.ts +3 -2
  277. package/src/hooks/useInputSurfaceLookup.tsx +8 -3
  278. package/src/hooks/usePath.ts +1 -1
  279. package/src/hooks/useTypeOptions.ts +59 -0
  280. package/src/index.ts +1 -0
  281. package/src/meta.ts +6 -3
  282. package/src/translations.ts +29 -14
  283. package/src/types/types.ts +31 -22
  284. package/src/util.tsx +131 -66
  285. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  286. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs +0 -88
  287. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
  288. package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs.map +0 -7
  289. package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
  290. package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
  291. package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
  292. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  293. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  294. package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
  295. package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
  296. package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
  297. package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
  298. package/dist/lib/browser/chunk-V7MJSSBQ.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-VLBRSGJ2.mjs +0 -94
  300. package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
  301. package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
  302. package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +0 -7
  303. package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs.map +0 -7
  304. package/dist/lib/browser/react-root-N2J7TDRX.mjs +0 -29
  305. package/dist/lib/browser/react-root-N2J7TDRX.mjs.map +0 -7
  306. package/dist/lib/browser/react-surface-TPNLWJJH.mjs.map +0 -7
  307. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
  308. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  309. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  310. package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
  311. package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
  312. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  313. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs +0 -89
  314. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
  315. package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs.map +0 -7
  316. package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
  317. package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
  318. package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
  319. package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
  320. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
  321. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
  322. package/dist/lib/node-esm/chunk-6X5DLJM5.mjs.map +0 -7
  323. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  324. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  325. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
  326. package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
  327. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs +0 -96
  328. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
  329. package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +0 -7
  330. package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs.map +0 -7
  331. package/dist/lib/node-esm/react-root-KW3TGJGY.mjs.map +0 -7
  332. package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs.map +0 -7
  333. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
  334. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  335. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  336. package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
  337. package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
  338. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  339. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  340. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  341. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  342. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  343. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  344. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  345. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  346. package/dist/types/src/components/MembersContainer.stories.d.ts +0 -8
  347. package/dist/types/src/components/MembersContainer.stories.d.ts.map +0 -1
  348. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  349. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  350. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  351. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  352. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  353. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  354. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  355. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  356. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  357. package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
  358. package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
  359. package/src/capabilities/schema-tool.test.ts +0 -44
  360. package/src/capabilities/schema-tools.ts +0 -125
  361. package/src/components/MembersContainer.stories.tsx +0 -30
  362. package/src/components/ObjectDetailsPanel.tsx +0 -77
  363. package/src/components/PersistenceStatus.tsx +0 -83
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Array from 'effect/Array';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\n\nimport { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { type QueryResult, type Space, SpaceState, getSpace, isSpace } from '@dxos/client/echo';\nimport { DXN, 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 { Collection, StoredSchema, View, getTypenameFromQuery } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { getActiveSpace } from '../hooks';\nimport { meta } 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 const resolve = (get: Atom.Context) => (typename: string) =>\n get(context.capabilities(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: meta.id }],\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: `${meta.id}/primary-actions`,\n position: 'hoist',\n actions: (node) =>\n Atom.make((get) =>\n Function.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: meta.id }],\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: meta.id }],\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: meta.id }],\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: meta.id }],\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: `${meta.id}/root`,\n position: 'hoist',\n connector: (node) =>\n Atom.make((get) =>\n Function.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 Atom.make((get) =>\n Function.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 meta.id,\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: resolve(get),\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: `${meta.id}/actions`,\n actions: (node) =>\n Atom.make((get) =>\n Function.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: `${meta.id}/root-collection`,\n connector: (node) =>\n Atom.make((get) =>\n Function.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[Collection.Collection.typename]?.target as Collection.Collection | undefined,\n ),\n );\n if (!collection) {\n return [];\n }\n\n return get(\n rxFromSignal(() =>\n Function.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: resolve(get),\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: `${meta.id}/objects`,\n connector: (node) =>\n Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) =>\n Obj.instanceOf(Collection.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 Function.pipe(\n collection.objects,\n Array.map((object) => object.target),\n Array.filter(isNonNullable),\n Array.map(\n (object) =>\n space &&\n createObjectNode({\n object,\n space,\n resolve: resolve(get),\n navigable: state.navigableCollections,\n }),\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: `${meta.id}/query-collection-objects`,\n connector: (node) => {\n let query: QueryResult<Type.Expando> | undefined;\n return Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) =>\n Obj.instanceOf(Collection.QueryCollection, node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.flatMap((collection) => {\n const space = getSpace(collection);\n const typename = getTypenameFromQuery(collection.query);\n return typename && space ? Option.some({ typename, space }) : 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(Collection.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: resolve(get),\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: `${meta.id}/static-schemas`,\n connector: (node) => {\n const client = context.getCapability(ClientCapabilities.Client);\n return Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) =>\n Obj.instanceOf(Collection.QueryCollection, node.data) &&\n getTypenameFromQuery(node.data.query) === 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: `${meta.id}/static-schema-actions`,\n actions: (node) => {\n let query: QueryResult<View.View> | undefined;\n return Atom.make((get) =>\n Function.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(View.View));\n }\n\n const views = get(rxFromQuery(query));\n const filteredViews = get(\n rxFromSignal(() =>\n // TODO(wittjosiah): Remove cast.\n views.filter(\n (view) => getTypenameFromQuery(view.query.ast) === Type.getTypename(schema as Type.Obj.Any),\n ),\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: `${meta.id}/schema-views`,\n connector: (node) => {\n let query: QueryResult<View.View> | undefined;\n return Atom.make((get) =>\n Function.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(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(View.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 (\n get(rxFromQuery(query))\n .filter((view) => getTypenameFromQuery(view.query.ast) === typename)\n // Filter out Collection views from Projects.\n .filter((view) =>\n get(\n rxFromSignal(() => {\n const presentation = view.presentation.target;\n if (presentation) {\n const typename = Obj.getTypename(presentation);\n return typename !== Collection.Collection.typename;\n } else {\n return false;\n }\n }),\n ),\n )\n .map((view) =>\n get(\n rxFromSignal(() =>\n createObjectNode({\n object: view,\n space,\n resolve: resolve(get),\n droppable: false,\n }),\n ),\n ),\n )\n .filter(isNonNullable)\n );\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // Create record nodes.\n createExtension({\n id: `${meta.id}/records`,\n resolver: (id) => {\n let query: QueryResult<Type.Expando> | undefined;\n return Atom.make((get) => {\n const client = context.getCapability(ClientCapabilities.Client);\n const dxn = DXN.tryParse(id)?.asEchoDXN();\n if (!dxn || !dxn.spaceId) {\n return null;\n }\n\n const space = client.spaces.get(dxn.spaceId);\n if (!space) {\n return null;\n }\n\n if (!query) {\n query = space.db.query(Filter.ids(dxn.echoId));\n }\n\n const object = get(rxFromQuery(query)).at(0);\n if (!object) {\n return null;\n }\n\n return createObjectNode({\n object,\n space,\n resolve: resolve(get),\n disposition: 'hidden',\n });\n });\n },\n }),\n\n // Create collection actions and action groups.\n createExtension({\n id: `${meta.id}/object-actions`,\n actions: (node) => {\n let query: QueryResult<View.View> | undefined;\n return Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => {\n const space = getSpace(node.data);\n return space && Obj.isObject(node.data) && Obj.getTypename(node.data) === node.type\n ? Option.some({ space, object: node.data })\n : Option.none();\n }),\n Option.flatMap(({ space, object }) => {\n const isSchema = Obj.instanceOf(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(View.View));\n }\n\n let deletable =\n !isSchema &&\n // Don't allow the Records smart collection to be deleted.\n !(\n Obj.instanceOf(Collection.QueryCollection, object) &&\n getTypenameFromQuery(object.query) === StoredSchema.typename\n );\n if (isSchema && query) {\n const views = get(rxFromQuery(query));\n const filteredViews = get(\n rxFromSignal(() => views.filter((view) => getTypenameFromQuery(view.query.ast) === 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: `${meta.id}/selected-objects`,\n connector: (node) =>\n Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(View.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: meta.id }],\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: `${meta.id}/settings`,\n connector: (node) =>\n Atom.make((get) =>\n Function.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: meta.id }],\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": ["Atom", "Array", "Function", "Option", "Schema", "Capabilities", "contributes", "createIntent", "SpaceState", "getSpace", "isSpace", "DXN", "Filter", "Obj", "Query", "Type", "log", "ClientCapabilities", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "ROOT_ID", "createExtension", "rxFromObservable", "rxFromSignal", "Collection", "StoredSchema", "View", "getTypenameFromQuery", "isNonNullable", "context", "resolve", "get", "typename", "capabilities", "Capabilities", "Metadata", "find", "id", "metadata", "spacesNode", "SPACES", "type", "cacheable", "properties", "label", "ns", "meta", "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", "Atom", "make", "pipe", "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", "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", "Collection", "target", "object", "isNonNullable", "createObjectNode", "Obj", "instanceOf", "getSpace", "QueryCollection", "getTypenameFromQuery", "Query", "without", "select", "referencedBy", "reference", "toSorted", "localeCompare", "droppable", "StoredSchema", "staticRecords", "schemaRegistry", "schemas", "schema", "getTypename", "createStaticSchemaNode", "undefined", "isSchema", "View", "views", "filteredViews", "view", "ast", "deletable", "length", "createStaticSchemaActions", "presentation", "resolver", "dxn", "DXN", "tryParse", "asEchoDXN", "spaceId", "ids", "echoId", "at", "isObject", "appGraph", "objectForms", "ObjectForm", "constructObjectActions", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE"]
7
+ }
@@ -1,32 +1,32 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  translations
4
- } from "./chunk-P442DOQ3.mjs";
4
+ } from "./chunk-WC4VBFMA.mjs";
5
5
  import {
6
6
  SPACES
7
- } from "./chunk-4AOMYKDE.mjs";
7
+ } from "./chunk-HQMFTMJE.mjs";
8
8
  import {
9
9
  SPACE_TYPE,
10
10
  SpaceAction
11
- } from "./chunk-JH6F4C3I.mjs";
11
+ } from "./chunk-2PN7QNGV.mjs";
12
12
  import {
13
- SPACE_PLUGIN
14
- } from "./chunk-HWNG4MEU.mjs";
13
+ meta
14
+ } from "./chunk-BDEFTL6K.mjs";
15
15
 
16
16
  // src/capabilities/app-graph-serializer.ts
17
17
  import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
18
18
  import { isSpace } from "@dxos/client/echo";
19
- import { Obj, Type } from "@dxos/echo";
20
- import { DataType } from "@dxos/schema";
21
- var COLLECTION_TYPE = Type.getTypename(DataType.Collection);
19
+ import { Obj } from "@dxos/echo";
20
+ import { Collection } from "@dxos/schema";
21
+ var COLLECTION_TYPE = Collection.Collection.typename;
22
22
  var DIRECTORY_TYPE = "text/directory";
23
- var app_graph_serializer_default = (context) => contributes(Capabilities.AppGraphSerializer, [
23
+ var app_graph_serializer_default = ((context) => contributes(Capabilities.AppGraphSerializer, [
24
24
  {
25
25
  inputType: SPACES,
26
26
  outputType: DIRECTORY_TYPE,
27
27
  serialize: (node) => ({
28
- name: translations[0]["en-US"][SPACE_PLUGIN]["spaces label"] ?? "Spaces",
29
- data: translations[0]["en-US"][SPACE_PLUGIN]["spaces label"] ?? "Spaces",
28
+ name: translations[0]["en-US"][meta.id]["spaces label"] ?? "Spaces",
29
+ data: translations[0]["en-US"][meta.id]["spaces label"] ?? "Spaces",
30
30
  type: DIRECTORY_TYPE
31
31
  }),
32
32
  deserialize: () => {
@@ -36,8 +36,8 @@ var app_graph_serializer_default = (context) => contributes(Capabilities.AppGrap
36
36
  inputType: SPACE_TYPE,
37
37
  outputType: DIRECTORY_TYPE,
38
38
  serialize: (node) => ({
39
- name: node.data.properties.name ?? translations[0]["en-US"][SPACE_PLUGIN]["unnamed space label"],
40
- data: node.data.properties.name ?? translations[0]["en-US"][SPACE_PLUGIN]["unnamed space label"],
39
+ name: node.data.properties.name ?? translations[0]["en-US"][meta.id]["unnamed space label"],
40
+ data: node.data.properties.name ?? translations[0]["en-US"][meta.id]["unnamed space label"],
41
41
  type: DIRECTORY_TYPE
42
42
  }),
43
43
  deserialize: async (data) => {
@@ -53,20 +53,20 @@ var app_graph_serializer_default = (context) => contributes(Capabilities.AppGrap
53
53
  inputType: COLLECTION_TYPE,
54
54
  outputType: DIRECTORY_TYPE,
55
55
  serialize: (node) => ({
56
- name: node.data.name ?? translations[0]["en-US"][SPACE_PLUGIN]["object name placeholder"],
57
- data: node.data.name ?? translations[0]["en-US"][SPACE_PLUGIN]["object name placeholder"],
56
+ name: node.data.name ?? translations[0]["en-US"][meta.id]["object name placeholder"],
57
+ data: node.data.name ?? translations[0]["en-US"][meta.id]["object name placeholder"],
58
58
  type: DIRECTORY_TYPE
59
59
  }),
60
60
  deserialize: async (data, ancestors) => {
61
61
  const space = ancestors.find(isSpace);
62
- const collection = ancestors.findLast((ancestor) => Obj.instanceOf(DataType.Collection, ancestor)) ?? space?.properties[COLLECTION_TYPE]?.target;
62
+ const collection = ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ?? space?.properties[COLLECTION_TYPE]?.target;
63
63
  if (!space || !collection) {
64
64
  return;
65
65
  }
66
66
  const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
67
67
  const result = await dispatch(createIntent(SpaceAction.AddObject, {
68
68
  target: collection,
69
- object: Obj.make(DataType.Collection, {
69
+ object: Obj.make(Collection.Collection, {
70
70
  name: data.name,
71
71
  objects: []
72
72
  })
@@ -74,8 +74,8 @@ var app_graph_serializer_default = (context) => contributes(Capabilities.AppGrap
74
74
  return result.data?.object;
75
75
  }
76
76
  }
77
- ]);
77
+ ]));
78
78
  export {
79
79
  app_graph_serializer_default as default
80
80
  };
81
- //# sourceMappingURL=app-graph-serializer-2ICUGQQT.mjs.map
81
+ //# sourceMappingURL=app-graph-serializer-BU7KO2G5.mjs.map
@@ -0,0 +1,7 @@
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 } from '@dxos/echo';\nimport { Collection } from '@dxos/schema';\n\nimport { meta } from '../meta';\nimport { translations } from '../translations';\nimport { SPACE_TYPE, SpaceAction } from '../types';\nimport { SPACES } from '../util';\n\nconst COLLECTION_TYPE = Collection.Collection.typename;\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'][meta.id]['spaces label'] ?? 'Spaces',\n data: translations[0]['en-US'][meta.id]['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'][meta.id]['unnamed space label'],\n data: node.data.properties.name ?? translations[0]['en-US'][meta.id]['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'][meta.id]['object name placeholder'],\n data: node.data.name ?? translations[0]['en-US'][meta.id]['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(Collection.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(Collection.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,WAAW;AACpB,SAASC,kBAAkB;AAO3B,IAAMC,kBAAkBC,WAAWA,WAAWC;AAG9C,IAAMC,iBAAiB;AAEvB,IAAA,gCAAe,CAACC,YACdC,YAAYC,aAAaC,oBAAoB;EAC3C;IACEC,WAAWC;IACXC,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMC,aAAa,CAAA,EAAG,OAAA,EAASC,KAAKC,EAAE,EAAE,cAAA,KAAmB;MAC3DC,MAAMH,aAAa,CAAA,EAAG,OAAA,EAASC,KAAKC,EAAE,EAAE,cAAA,KAAmB;MAC3DE,MAAMf;IACR;IACAgB,aAAa,MAAA;IAEb;EACF;EACA;IACEX,WAAWY;IACXV,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKK,KAAKI,WAAWR,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,KAAKC,EAAE,EAAE,qBAAA;MACrEC,MAAML,KAAKK,KAAKI,WAAWR,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,KAAKC,EAAE,EAAE,qBAAA;MACrEE,MAAMf;IACR;IACAgB,aAAa,OAAOF,SAAAA;AAClB,YAAM,EAAEK,iBAAiBC,SAAQ,IAAKnB,QAAQoB,cAAclB,aAAamB,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SAASI,aAAaC,YAAYC,QAAQ;QAAEhB,MAAMI,KAAKJ;QAAMiB,iBAAiB;MAAK,CAAA,CAAA;AACxG,aAAOJ,OAAOT,MAAMc;IACtB;EACF;EACA;IACEvB,WAAWR;IACXU,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKK,KAAKJ,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,KAAKC,EAAE,EAAE,yBAAA;MAC1DC,MAAML,KAAKK,KAAKJ,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,KAAKC,EAAE,EAAE,yBAAA;MAC1DE,MAAMf;IACR;IACAgB,aAAa,OAAOF,MAAMe,cAAAA;AACxB,YAAMD,QAAQC,UAAUC,KAAKC,OAAAA;AAC7B,YAAMC,aACJH,UAAUI,SAAS,CAACC,aAAaC,IAAIC,WAAWtC,WAAWA,YAAYoC,QAAAA,CAAAA,KACvEN,OAAOV,WAAWrB,eAAAA,GAAkBwC;AACtC,UAAI,CAACT,SAAS,CAACI,YAAY;AACzB;MACF;AAEA,YAAM,EAAEb,iBAAiBC,SAAQ,IAAKnB,QAAQoB,cAAclB,aAAamB,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SACnBI,aAAaC,YAAYa,WAAW;QAClCD,QAAQL;QACRO,QAAQJ,IAAIK,KAAK1C,WAAWA,YAAY;UAAEY,MAAMI,KAAKJ;UAAM+B,SAAS,CAAA;QAAG,CAAA;MACzE,CAAA,CAAA;AAGF,aAAOlB,OAAOT,MAAMyB;IACtB;EACF;CACD;",
6
+ "names": ["Capabilities", "contributes", "createIntent", "isSpace", "Obj", "Collection", "COLLECTION_TYPE", "Collection", "typename", "DIRECTORY_TYPE", "context", "contributes", "Capabilities", "AppGraphSerializer", "inputType", "SPACES", "outputType", "serialize", "node", "name", "translations", "meta", "id", "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,16 +1,16 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- SPACE_PLUGIN
4
- } from "./chunk-HWNG4MEU.mjs";
3
+ meta
4
+ } from "./chunk-BDEFTL6K.mjs";
5
5
 
6
6
  // src/types/types.ts
7
- import { Schema } from "effect";
7
+ import * as Schema from "effect/Schema";
8
8
  import { Type } from "@dxos/echo";
9
- import { EchoSchema, StoredSchema } from "@dxos/echo-schema";
9
+ import { EchoSchema, StoredSchema } from "@dxos/echo/internal";
10
10
  import { EchoObjectSchema, ReactiveObjectSchema, SpaceSchema } from "@dxos/react-client/echo";
11
11
  import { CancellableInvitationObservable, Invitation } from "@dxos/react-client/invitations";
12
- import { DataType, FieldSchema, TypenameAnnotationId } from "@dxos/schema";
13
- var SPACE_DIRECTORY_HANDLE = "dxos.org/plugin/space/directory";
12
+ import { Collection, FieldSchema, TypenameAnnotationId, View } from "@dxos/schema";
13
+ var SPACE_DIRECTORY_HANDLE = `${meta.id}/directory`;
14
14
  var SPACE_TYPE = "dxos.org/type/Space";
15
15
  var SpaceSettingsSchema = Schema.mutable(Schema.Struct({
16
16
  /**
@@ -38,7 +38,7 @@ var SpaceForm = Schema.Struct({
38
38
  })
39
39
  });
40
40
  var defineObjectForm = (form) => form;
41
- var SPACE_ACTION = `${SPACE_PLUGIN}/action`;
41
+ var SPACE_ACTION = `${meta.id}/action`;
42
42
  (function(SpaceAction2) {
43
43
  class OpenCreateSpace extends Schema.TaggedClass()(`${SPACE_ACTION}/open-create-space`, {
44
44
  input: Schema.Void,
@@ -164,7 +164,9 @@ var SPACE_ACTION = `${SPACE_PLUGIN}/action`;
164
164
  class UseStaticSchema extends Schema.TaggedClass()(`${SPACE_ACTION}/use-static-schema`, {
165
165
  input: Schema.Struct({
166
166
  space: SpaceSchema,
167
- typename: Schema.String
167
+ typename: Schema.String,
168
+ // TODO(wittjosiah): This is leaky.
169
+ show: Schema.optional(Schema.Boolean)
168
170
  }),
169
171
  output: Schema.Struct({})
170
172
  }) {
@@ -174,8 +176,13 @@ var SPACE_ACTION = `${SPACE_PLUGIN}/action`;
174
176
  input: Schema.Struct({
175
177
  space: SpaceSchema,
176
178
  name: Schema.optional(Schema.String),
179
+ typename: Schema.optional(Schema.String),
180
+ // TODO(wittjosiah): Semantic version format.
181
+ version: Schema.optional(Schema.String),
177
182
  // TODO(wittjosiah): Schema for schema?
178
- schema: Schema.Any
183
+ schema: Schema.Any,
184
+ // TODO(wittjosiah): This is leaky.
185
+ show: Schema.optional(Schema.Boolean)
179
186
  }),
180
187
  output: Schema.Struct({
181
188
  // TODO(wittjosiah): ObjectId.
@@ -188,7 +195,7 @@ var SPACE_ACTION = `${SPACE_PLUGIN}/action`;
188
195
  SpaceAction2.AddSchema = AddSchema;
189
196
  class DeleteField extends Schema.TaggedClass()(`${SPACE_ACTION}/delete-field`, {
190
197
  input: Schema.Struct({
191
- view: DataType.View,
198
+ view: View.View,
192
199
  fieldId: Schema.String,
193
200
  // TODO(wittjosiah): Separate fields for undo data?
194
201
  deletionData: Schema.optional(Schema.Struct({
@@ -205,8 +212,10 @@ var SPACE_ACTION = `${SPACE_PLUGIN}/action`;
205
212
  SpaceAction2.DeleteField = DeleteField;
206
213
  class OpenCreateObject extends Schema.TaggedClass()(`${SPACE_ACTION}/open-create-object`, {
207
214
  input: Schema.Struct({
208
- target: Schema.Union(SpaceSchema, DataType.Collection),
215
+ target: Schema.Union(SpaceSchema, Collection.Collection),
216
+ views: Schema.optional(Schema.Boolean),
209
217
  typename: Schema.optional(Schema.String),
218
+ initialFormValues: Schema.optional(Schema.Any),
210
219
  navigable: Schema.optional(Schema.Boolean),
211
220
  // TODO(wittjosiah): This is a function, is there a better way to handle this?
212
221
  onCreateObject: Schema.optional(Schema.Any)
@@ -218,7 +227,7 @@ var SPACE_ACTION = `${SPACE_PLUGIN}/action`;
218
227
  class AddObject extends Schema.TaggedClass()(`${SPACE_ACTION}/add-object`, {
219
228
  input: Schema.Struct({
220
229
  object: ReactiveObjectSchema,
221
- target: Schema.Union(SpaceSchema, DataType.Collection),
230
+ target: Schema.Union(SpaceSchema, Collection.Collection),
222
231
  hidden: Schema.optional(Schema.Boolean)
223
232
  }),
224
233
  output: Schema.Struct({
@@ -251,15 +260,16 @@ var SPACE_ACTION = `${SPACE_PLUGIN}/action`;
251
260
  SpaceAction2.AddRelation = AddRelation;
252
261
  SpaceAction2.DeletionData = Schema.Struct({
253
262
  objects: Schema.Array(EchoObjectSchema),
254
- parentCollection: DataType.Collection,
263
+ parentCollection: Collection.Collection,
255
264
  indices: Schema.Array(Schema.Number),
256
265
  nestedObjectsList: Schema.Array(Schema.Array(EchoObjectSchema)),
257
266
  wasActive: Schema.Array(Schema.String)
258
267
  });
259
268
  class RemoveObjects extends Schema.TaggedClass()(`${SPACE_ACTION}/remove-objects`, {
260
269
  input: Schema.Struct({
261
- objects: Schema.Array(EchoObjectSchema),
262
- target: Schema.optional(DataType.Collection),
270
+ // TODO(wittjosiah): Should be Schema.Union(Type.Obj, Type.Relation).
271
+ objects: Schema.Array(ReactiveObjectSchema),
272
+ target: Schema.optional(Collection.Collection),
263
273
  deletionData: Schema.optional(SpaceAction2.DeletionData)
264
274
  }),
265
275
  output: Schema.Void
@@ -278,7 +288,7 @@ var SPACE_ACTION = `${SPACE_PLUGIN}/action`;
278
288
  class DuplicateObject extends Schema.TaggedClass()(`${SPACE_ACTION}/duplicate-object`, {
279
289
  input: Schema.Struct({
280
290
  object: EchoObjectSchema,
281
- target: Schema.Union(SpaceSchema, DataType.Collection)
291
+ target: Schema.Union(SpaceSchema, Collection.Collection)
282
292
  }),
283
293
  output: Schema.Void
284
294
  }) {
@@ -299,23 +309,24 @@ var SPACE_ACTION = `${SPACE_PLUGIN}/action`;
299
309
  name: Schema.optional(Schema.String)
300
310
  }),
301
311
  output: Schema.Struct({
302
- object: DataType.Collection
312
+ object: Collection.Collection
303
313
  })
304
314
  }) {
305
315
  }
306
316
  CollectionAction2.Create = Create;
307
317
  CollectionAction2.QueryCollectionForm = Schema.Struct({
308
318
  name: Schema.optional(Schema.String),
309
- typename: Schema.optional(Schema.String.annotations({
319
+ typename: Schema.String.annotations({
310
320
  [TypenameAnnotationId]: [
311
321
  "object-form"
312
322
  ]
313
- }))
323
+ })
314
324
  });
315
325
  class CreateQueryCollection extends Schema.TaggedClass()("dxos.org/plugin/collection/action/create-query-collection", {
316
326
  input: CollectionAction2.QueryCollectionForm,
317
327
  output: Schema.Struct({
318
- object: DataType.QueryCollection
328
+ // TODO(wittjosiah): Remove cast.
329
+ object: EchoObjectSchema
319
330
  })
320
331
  }) {
321
332
  }
@@ -336,4 +347,4 @@ export {
336
347
  SpaceAction,
337
348
  CollectionAction
338
349
  };
339
- //# sourceMappingURL=chunk-JH6F4C3I.mjs.map
350
+ //# sourceMappingURL=chunk-2PN7QNGV.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { type AnyIntentChain } from '@dxos/app-framework';\nimport { type Obj, Type } from '@dxos/echo';\nimport { type BaseObject, EchoSchema, StoredSchema } from '@dxos/echo/internal';\nimport { type PublicKey } from '@dxos/react-client';\n// TODO(wittjosiah): This pulls in full client.\nimport { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';\nimport { CancellableInvitationObservable, Invitation } from '@dxos/react-client/invitations';\nimport { Collection, FieldSchema, TypenameAnnotationId, View } from '@dxos/schema';\nimport { type ComplexMap } from '@dxos/util';\n\nimport { meta } from '../meta';\n\nexport const SPACE_DIRECTORY_HANDLE = `${meta.id}/directory`;\n\nexport const SPACE_TYPE = 'dxos.org/type/Space';\n\nexport type ObjectViewerProps = {\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type ObjectId = string;\n\nexport type PluginState = {\n /**\n * Which objects are currently being viewed by which peers.\n */\n viewersByObject: Record<ObjectId, ComplexMap<PublicKey, ObjectViewerProps>>;\n\n /**\n * Which peers are currently viewing which objects.\n */\n viewersByIdentity: ComplexMap<PublicKey, Set<ObjectId>>;\n\n /**\n * Object that was linked to directly but not found and is being awaited.\n */\n awaiting: string | undefined;\n\n /**\n * Cached space names, used when spaces are closed or loading.\n */\n spaceNames: Record<string, string>;\n\n /**\n * Which spaces have an SDK migration running currently.\n */\n // TODO(wittjosiah): Factor out to sdk. Migration running should probably be a space state.\n sdkMigrationRunning: Record<string, boolean>;\n\n /**\n * Whether or not the user can navigate to collections in the graph.\n * Determined by whether or not there is an available plugin that can render a collection.\n */\n navigableCollections: boolean;\n\n /**\n * Tracks whether setting edge replication as default has been run on spaces.\n */\n // TODO(wittjosiah): Systematic way to handle migrations of state outside of spaces.\n enabledEdgeReplication: boolean;\n};\n\nexport const SpaceSettingsSchema = Schema.mutable(\n Schema.Struct({\n /**\n * Show closed spaces.\n */\n showHidden: Schema.Boolean,\n }),\n);\n\nexport type SpaceSettingsProps = Schema.Schema.Type<typeof SpaceSettingsSchema>;\n\n// TODO(wittjosiah): Reconcile with graph export serializers.\n\nexport type SerializerMap = Record<string, TypedObjectSerializer>;\n\nexport interface TypedObjectSerializer<T extends Obj.Any = Type.Expando> {\n serialize(params: { object: T }): Promise<string>;\n\n /**\n * @param params.content\n * @param params.space Space to use for deserializing schema references.\n * @param params.newId Generate new ID for deserialized object.\n */\n deserialize(params: { content: string; space: Space; newId?: boolean }): Promise<T>;\n}\n\n// TODO(burdon): Move to FormatEnum or SDK.\nexport const IconAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Icon');\nexport const HueAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Hue');\n\nexport const SpaceForm = Schema.Struct({\n name: Schema.optional(Schema.String.annotations({ title: 'Name' })),\n icon: Schema.optional(Schema.String.annotations({ title: 'Icon', [IconAnnotationId]: true })),\n hue: Schema.optional(Schema.String.annotations({ title: 'Color', [HueAnnotationId]: true })),\n // TODO(wittjosiah): Make optional with default value.\n edgeReplication: Schema.Boolean.annotations({ title: 'Enable EDGE Replication' }),\n});\n\nexport type ObjectForm<T extends BaseObject = BaseObject> = {\n objectSchema: Schema.Schema.AnyNoContext;\n formSchema?: Schema.Schema<T, any>;\n hidden?: boolean;\n getIntent: (props: T, options: { space: Space }) => AnyIntentChain;\n};\n\nexport const defineObjectForm = <T extends BaseObject>(form: ObjectForm<T>) => form;\n\nexport const SPACE_ACTION = `${meta.id}/action`;\n\nexport namespace SpaceAction {\n export class OpenCreateSpace extends Schema.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class Create extends Schema.TaggedClass<Create>()(`${SPACE_ACTION}/create`, {\n input: SpaceForm,\n output: Schema.Struct({\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n space: SpaceSchema,\n }),\n }) {}\n\n export class Join extends Schema.TaggedClass<Join>()(`${SPACE_ACTION}/join`, {\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n onDone: Schema.optional(Schema.Any),\n }),\n output: Schema.Void,\n }) {}\n\n export class OpenMembers extends Schema.TaggedClass<OpenMembers>()(`${SPACE_ACTION}/open-members`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Share extends Schema.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {\n input: Schema.Struct({\n space: SpaceSchema,\n type: Schema.Enums(Invitation.Type),\n authMethod: Schema.Enums(Invitation.AuthMethod),\n multiUse: Schema.Boolean,\n target: Schema.optional(Schema.String),\n }),\n output: Schema.instanceOf(CancellableInvitationObservable),\n }) {}\n\n export class GetShareLink extends Schema.TaggedClass<GetShareLink>()(`${SPACE_ACTION}/get-share-link`, {\n input: Schema.Struct({\n space: SpaceSchema,\n target: Schema.optional(Schema.String),\n copyToClipboard: Schema.optional(Schema.Boolean),\n }),\n output: Schema.String,\n }) {}\n\n export class Lock extends Schema.TaggedClass<Lock>()(`${SPACE_ACTION}/lock`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Unlock extends Schema.TaggedClass<Unlock>()(`${SPACE_ACTION}/unlock`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Rename extends Schema.TaggedClass<Rename>()(`${SPACE_ACTION}/rename`, {\n input: Schema.Struct({\n space: SpaceSchema,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n // TODO(wittjosiah): Handle scrolling to section.\n // This maybe motivates making the space settings its own deck?\n export class OpenSettings extends Schema.TaggedClass<OpenSettings>()(`${SPACE_ACTION}/open-settings`, {\n input: Schema.Struct({ space: SpaceSchema }),\n output: Schema.Void,\n }) {}\n\n export class Open extends Schema.TaggedClass<Open>()(`${SPACE_ACTION}/open`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Close extends Schema.TaggedClass<Close>()(`${SPACE_ACTION}/close`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Migrate extends Schema.TaggedClass<Migrate>()(`${SPACE_ACTION}/migrate`, {\n input: Schema.Struct({\n space: SpaceSchema,\n version: Schema.optional(Schema.String),\n }),\n output: Schema.Boolean,\n }) {}\n\n export const StoredSchemaForm = Schema.Struct({\n name: Schema.optional(Schema.String),\n typename: Schema.optional(\n Schema.String.annotations({\n [TypenameAnnotationId]: ['unused-static'],\n }),\n ),\n });\n\n export class UseStaticSchema extends Schema.TaggedClass<UseStaticSchema>()(`${SPACE_ACTION}/use-static-schema`, {\n input: Schema.Struct({\n space: SpaceSchema,\n typename: Schema.String,\n // TODO(wittjosiah): This is leaky.\n show: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({}),\n }) {}\n\n export class AddSchema extends Schema.TaggedClass<AddSchema>()(`${SPACE_ACTION}/add-schema`, {\n input: Schema.Struct({\n space: SpaceSchema,\n name: Schema.optional(Schema.String),\n typename: Schema.optional(Schema.String),\n // TODO(wittjosiah): Semantic version format.\n version: Schema.optional(Schema.String),\n // TODO(wittjosiah): Schema for schema?\n schema: Schema.Any,\n // TODO(wittjosiah): This is leaky.\n show: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n // TODO(wittjosiah): ObjectId.\n id: Schema.String,\n object: StoredSchema,\n schema: Schema.instanceOf(EchoSchema),\n }),\n }) {}\n\n export class DeleteField extends Schema.TaggedClass<DeleteField>()(`${SPACE_ACTION}/delete-field`, {\n input: Schema.Struct({\n view: View.View,\n fieldId: Schema.String,\n // TODO(wittjosiah): Separate fields for undo data?\n deletionData: Schema.optional(\n Schema.Struct({\n field: FieldSchema,\n // TODO(wittjosiah): This creates a type error.\n // props: PropertySchema,\n props: Schema.Any,\n index: Schema.Number,\n }),\n ),\n }),\n output: Schema.Void,\n }) {}\n\n export class OpenCreateObject extends Schema.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {\n input: Schema.Struct({\n target: Schema.Union(SpaceSchema, Collection.Collection),\n views: Schema.optional(Schema.Boolean),\n typename: Schema.optional(Schema.String),\n initialFormValues: Schema.optional(Schema.Any),\n navigable: Schema.optional(Schema.Boolean),\n // TODO(wittjosiah): This is a function, is there a better way to handle this?\n onCreateObject: Schema.optional(Schema.Any),\n }),\n output: Schema.Void,\n }) {}\n\n export class AddObject extends Schema.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {\n input: Schema.Struct({\n object: ReactiveObjectSchema,\n target: Schema.Union(SpaceSchema, Collection.Collection),\n hidden: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n // TODO(wittjosiah): ObjectId.\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n object: EchoObjectSchema,\n }),\n }) {}\n\n export class AddRelation extends Schema.TaggedClass<AddRelation>()(`${SPACE_ACTION}/add-relation`, {\n input: Schema.Struct({\n space: SpaceSchema,\n // TODO(wittjosiah): Relation schema.\n schema: Schema.Any,\n source: Type.Expando,\n target: Type.Expando,\n // TODO(wittjosiah): Type based on relation schema.\n fields: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n output: Schema.Struct({\n relation: Schema.Any,\n }),\n }) {}\n\n export const DeletionData = Schema.Struct({\n objects: Schema.Array(EchoObjectSchema),\n parentCollection: Collection.Collection,\n indices: Schema.Array(Schema.Number),\n nestedObjectsList: Schema.Array(Schema.Array(EchoObjectSchema)),\n wasActive: Schema.Array(Schema.String),\n });\n\n export type DeletionData = Schema.Schema.Type<typeof DeletionData>;\n\n export class RemoveObjects extends Schema.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {\n input: Schema.Struct({\n // TODO(wittjosiah): Should be Schema.Union(Type.Obj, Type.Relation).\n objects: Schema.Array(ReactiveObjectSchema),\n target: Schema.optional(Collection.Collection),\n deletionData: Schema.optional(DeletionData),\n }),\n output: Schema.Void,\n }) {}\n\n export class RenameObject extends Schema.TaggedClass<RenameObject>()(`${SPACE_ACTION}/rename-object`, {\n input: Schema.Struct({\n object: EchoObjectSchema,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class DuplicateObject extends Schema.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {\n input: Schema.Struct({\n object: EchoObjectSchema,\n target: Schema.Union(SpaceSchema, Collection.Collection),\n }),\n output: Schema.Void,\n }) {}\n\n export class WaitForObject extends Schema.TaggedClass<WaitForObject>()(`${SPACE_ACTION}/wait-for-object`, {\n input: Schema.Struct({\n id: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n}\n\nexport namespace CollectionAction {\n export class Create extends Schema.TaggedClass<Create>()('dxos.org/plugin/collection/action/create', {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Collection.Collection,\n }),\n }) {}\n\n export const QueryCollectionForm = Schema.Struct({\n name: Schema.optional(Schema.String),\n typename: Schema.String.annotations({\n [TypenameAnnotationId]: ['object-form'],\n }),\n });\n\n export class CreateQueryCollection extends Schema.TaggedClass<CreateQueryCollection>()(\n 'dxos.org/plugin/collection/action/create-query-collection',\n {\n input: QueryCollectionForm,\n output: Schema.Struct({\n // TODO(wittjosiah): Remove cast.\n object: EchoObjectSchema, // Collection.QueryCollection,\n }),\n },\n ) {}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "Type", "EchoSchema", "StoredSchema", "EchoObjectSchema", "ReactiveObjectSchema", "SpaceSchema", "CancellableInvitationObservable", "Invitation", "Collection", "FieldSchema", "TypenameAnnotationId", "View", "SPACE_DIRECTORY_HANDLE", "meta", "id", "SPACE_TYPE", "SpaceSettingsSchema", "mutable", "Struct", "showHidden", "Boolean", "IconAnnotationId", "Symbol", "for", "HueAnnotationId", "SpaceForm", "name", "optional", "String", "annotations", "title", "icon", "hue", "edgeReplication", "defineObjectForm", "form", "SPACE_ACTION", "SpaceAction", "OpenCreateSpace", "TaggedClass", "input", "Void", "output", "Create", "subject", "Array", "space", "SpaceSchema", "Join", "invitationCode", "onDone", "Any", "OpenMembers", "Share", "type", "Enums", "Invitation", "Type", "authMethod", "AuthMethod", "multiUse", "target", "instanceOf", "CancellableInvitationObservable", "GetShareLink", "copyToClipboard", "Lock", "Unlock", "Rename", "caller", "OpenSettings", "Open", "Close", "Migrate", "version", "StoredSchemaForm", "typename", "TypenameAnnotationId", "UseStaticSchema", "show", "AddSchema", "schema", "object", "StoredSchema", "EchoSchema", "DeleteField", "view", "View", "fieldId", "deletionData", "field", "FieldSchema", "props", "index", "Number", "OpenCreateObject", "Union", "Collection", "views", "initialFormValues", "navigable", "onCreateObject", "AddObject", "ReactiveObjectSchema", "hidden", "EchoObjectSchema", "AddRelation", "source", "Expando", "fields", "Record", "key", "value", "relation", "DeletionData", "objects", "parentCollection", "indices", "nestedObjectsList", "wasActive", "RemoveObjects", "RenameObject", "DuplicateObject", "WaitForObject", "CollectionAction", "QueryCollectionForm", "CreateQueryCollection"]
7
+ }
@@ -0,0 +1,18 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/meta.ts
4
+ import { trim } from "@dxos/util";
5
+ var meta = {
6
+ id: "dxos.org/plugin/space",
7
+ name: "Spaces",
8
+ description: trim`
9
+ Core workspace container system for organizing and sharing collaborative environments.
10
+ Create, manage, and share spaces with granular access control and invitation management.
11
+ `,
12
+ icon: "ph--planet--regular"
13
+ };
14
+
15
+ export {
16
+ meta
17
+ };
18
+ //# sourceMappingURL=chunk-BDEFTL6K.mjs.map
@@ -0,0 +1,7 @@
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';\nimport { trim } from '@dxos/util';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/space',\n name: 'Spaces',\n description: trim`\n Core workspace container system for organizing and sharing collaborative environments.\n Create, manage, and share spaces with granular access control and invitation management.\n `,\n icon: 'ph--planet--regular',\n};\n"],
5
+ "mappings": ";;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;AACR;",
6
+ "names": ["trim", "meta", "id", "name", "description", "trim", "icon"]
7
+ }
@@ -0,0 +1,168 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ SpaceCapabilities
4
+ } from "./chunk-Z7BB6HC2.mjs";
5
+
6
+ // src/hooks/useActiveSpace.ts
7
+ import { Capabilities } from "@dxos/app-framework";
8
+ import { useLayout } from "@dxos/app-framework/react";
9
+ import { ClientCapabilities } from "@dxos/plugin-client";
10
+ import { parseId, useSpace } from "@dxos/react-client/echo";
11
+ var getActiveSpace = (context) => {
12
+ const client = context.getCapability(ClientCapabilities.Client);
13
+ const layout = context.getCapability(Capabilities.Layout);
14
+ const { spaceId } = parseId(layout.workspace);
15
+ return spaceId ? client.spaces.get(spaceId) : void 0;
16
+ };
17
+ var useActiveSpace = () => {
18
+ const layout = useLayout();
19
+ const { spaceId } = parseId(layout.workspace);
20
+ return useSpace(spaceId);
21
+ };
22
+
23
+ // src/hooks/useInputSurfaceLookup.tsx
24
+ import React, { useCallback } from "react";
25
+ import { Surface, isSurfaceAvailable, usePluginManager } from "@dxos/app-framework/react";
26
+ var useInputSurfaceLookup = (baseData) => {
27
+ const pluginManager = usePluginManager();
28
+ return useCallback(({ prop, schema, inputProps }) => {
29
+ const composedData = {
30
+ prop,
31
+ schema,
32
+ ...baseData
33
+ };
34
+ if (!isSurfaceAvailable(pluginManager.context, {
35
+ role: "form-input",
36
+ data: composedData
37
+ })) {
38
+ return void 0;
39
+ }
40
+ return /* @__PURE__ */ React.createElement(Surface, {
41
+ role: "form-input",
42
+ data: composedData,
43
+ ...inputProps
44
+ });
45
+ }, [
46
+ pluginManager,
47
+ baseData
48
+ ]);
49
+ };
50
+
51
+ // src/hooks/usePath.ts
52
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
53
+ import * as Option from "effect/Option";
54
+ import { useEffect, useState } from "react";
55
+ var usePath = (graph, id, timeout) => {
56
+ var _effect = _useSignals();
57
+ try {
58
+ const [pathState, setPathState] = useState(id ? graph.getPath({
59
+ target: id
60
+ }) : Option.none());
61
+ useEffect(() => {
62
+ if (!id && pathState) {
63
+ setPathState(Option.none());
64
+ }
65
+ if (Option.isSome(pathState) && pathState.value.at(-1) === id || !id) {
66
+ return;
67
+ }
68
+ const frame = requestAnimationFrame(async () => {
69
+ try {
70
+ const path = await graph.waitForPath({
71
+ target: id
72
+ }, {
73
+ timeout
74
+ });
75
+ if (path) {
76
+ setPathState(Option.some(path));
77
+ }
78
+ } catch {
79
+ }
80
+ });
81
+ return () => cancelAnimationFrame(frame);
82
+ }, [
83
+ graph,
84
+ id,
85
+ timeout,
86
+ pathState
87
+ ]);
88
+ return pathState;
89
+ } finally {
90
+ _effect.f();
91
+ }
92
+ };
93
+
94
+ // src/hooks/useTypeOptions.ts
95
+ import { useMemo } from "react";
96
+ import { useCapabilities } from "@dxos/app-framework/react";
97
+ import { Type } from "@dxos/echo";
98
+ import { ClientCapabilities as ClientCapabilities2 } from "@dxos/plugin-client";
99
+ import { useClient } from "@dxos/react-client";
100
+ import { useTranslation } from "@dxos/react-ui";
101
+ import { Collection, getTypenames } from "@dxos/schema";
102
+
103
+ // src/capabilities/index.ts
104
+ import { lazy } from "@dxos/app-framework";
105
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-3BTVV7LE.mjs"));
106
+ var AppGraphSerializer = lazy(() => import("./app-graph-serializer-BU7KO2G5.mjs"));
107
+ var IdentityCreated = lazy(() => import("./identity-created-OXLKCJE3.mjs"));
108
+ var IntentResolver = lazy(() => import("./intent-resolver-QHH5SXLC.mjs"));
109
+ var ReactRoot = lazy(() => import("./react-root-QRONKFKI.mjs"));
110
+ var ReactSurface = lazy(() => import("./react-surface-OZBWNTW2.mjs"));
111
+ var SchemaDefs = lazy(() => import("./schema-defs-5TDB7T5J.mjs"));
112
+ var SpaceSettings = lazy(() => import("./settings-RBB5633M.mjs"));
113
+ var SpaceState = lazy(() => import("./state-362I5BMK.mjs"));
114
+ var SpacesReady = lazy(() => import("./spaces-ready-J6RWPI2X.mjs"));
115
+
116
+ // src/hooks/useTypeOptions.ts
117
+ var OMIT = [
118
+ Collection.Collection.typename,
119
+ Type.getTypename(Collection.QueryCollection)
120
+ ];
121
+ var useTypeOptions = ({ space, annotation }) => {
122
+ const { t } = useTranslation();
123
+ const client = useClient();
124
+ const schemaWhitelists = useCapabilities(ClientCapabilities2.SchemaWhiteList);
125
+ const whitelistedTypenames = useMemo(() => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => Type.getTypename(type)))), [
126
+ schemaWhitelists
127
+ ]);
128
+ const objectForms = useCapabilities(SpaceCapabilities.ObjectForm);
129
+ const objectFormTypenames = useMemo(() => new Set(objectForms.map((form) => Type.getTypename(form.objectSchema)).filter((typename) => !OMIT.includes(typename) && !typename.endsWith("View"))), [
130
+ objectForms
131
+ ]);
132
+ const typenames = getTypenames({
133
+ annotation,
134
+ whitelistedTypenames,
135
+ objectFormTypenames,
136
+ space,
137
+ client
138
+ });
139
+ return useMemo(() => typenames.map((typename) => ({
140
+ value: typename,
141
+ label: t("typename label", {
142
+ ns: typename,
143
+ defaultValue: typename
144
+ })
145
+ })).toSorted((a, b) => a.label.localeCompare(b.label)), [
146
+ t,
147
+ typenames
148
+ ]);
149
+ };
150
+
151
+ export {
152
+ getActiveSpace,
153
+ useActiveSpace,
154
+ useInputSurfaceLookup,
155
+ usePath,
156
+ useTypeOptions,
157
+ AppGraphBuilder,
158
+ AppGraphSerializer,
159
+ IdentityCreated,
160
+ IntentResolver,
161
+ ReactRoot,
162
+ ReactSurface,
163
+ SchemaDefs,
164
+ SpaceSettings,
165
+ SpaceState,
166
+ SpacesReady
167
+ };
168
+ //# sourceMappingURL=chunk-FAWIRIP4.mjs.map