@dxos/plugin-space 0.8.4-main.67995b8 → 0.8.4-main.a4bbb77

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 (263) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionMain-AX7KKXWP.mjs} +4 -4
  2. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +7 -0
  3. package/dist/lib/browser/{ObjectDetailsPanel-YPTDQKMG.mjs → ObjectDetailsPanel-ETI5YBTH.mjs} +10 -8
  4. package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs.map +7 -0
  5. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +68 -0
  6. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-builder-V3MP3CDK.mjs → app-graph-builder-W7RVDAUA.mjs} +80 -43
  8. package/dist/lib/browser/app-graph-builder-W7RVDAUA.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-VLHVTDX4.mjs} +14 -14
  10. package/dist/lib/browser/app-graph-serializer-VLHVTDX4.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-FBJEXW54.mjs → chunk-2BFVC5K6.mjs} +139 -150
  12. package/dist/lib/browser/chunk-2BFVC5K6.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-E2I747A7.mjs +20 -0
  14. package/dist/lib/browser/chunk-E2I747A7.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-EIXZABXD.mjs +19 -0
  16. package/dist/lib/browser/chunk-EIXZABXD.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-ELJDGQTO.mjs} +3 -3
  18. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs.map → chunk-ELJDGQTO.mjs.map} +3 -3
  19. package/dist/lib/browser/chunk-IRKDREHY.mjs +11 -0
  20. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-SGTQ52SU.mjs → chunk-JCHSUOPF.mjs} +14 -8
  22. package/dist/lib/browser/chunk-JCHSUOPF.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-PN27K4I7.mjs} +93 -41
  24. package/dist/lib/browser/chunk-PN27K4I7.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-ZIZ2JLW6.mjs} +10 -9
  26. package/dist/lib/browser/chunk-ZIZ2JLW6.mjs.map +7 -0
  27. package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-PW2BA46S.mjs} +4 -4
  28. package/dist/lib/browser/{identity-created-23XJJV2N.mjs.map → identity-created-PW2BA46S.mjs.map} +3 -3
  29. package/dist/lib/browser/index.mjs +19 -39
  30. package/dist/lib/browser/index.mjs.map +3 -3
  31. package/dist/lib/browser/{intent-resolver-XHGD73WZ.mjs → intent-resolver-HA7DPAUE.mjs} +46 -41
  32. package/dist/lib/browser/intent-resolver-HA7DPAUE.mjs.map +7 -0
  33. package/dist/lib/browser/meta.json +1 -1
  34. package/dist/lib/browser/{react-root-CMWOGJG5.mjs → react-root-YQUJU64P.mjs} +11 -11
  35. package/dist/lib/browser/react-root-YQUJU64P.mjs.map +7 -0
  36. package/dist/lib/browser/{react-surface-YWZZQF7H.mjs → react-surface-HTXYMRSW.mjs} +50 -40
  37. package/dist/lib/browser/react-surface-HTXYMRSW.mjs.map +7 -0
  38. package/dist/lib/browser/{schema-defs-Z6FC4AHC.mjs → schema-defs-R56ZDBZ7.mjs} +5 -5
  39. package/dist/lib/browser/schema-defs-R56ZDBZ7.mjs.map +7 -0
  40. package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-5XPQMSPO.mjs} +5 -5
  41. package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-5XPQMSPO.mjs.map} +1 -1
  42. package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-YY77ANIF.mjs} +17 -15
  43. package/dist/lib/browser/spaces-ready-YY77ANIF.mjs.map +7 -0
  44. package/dist/lib/browser/{state-QYZAB45H.mjs → state-Y4RVCG4A.mjs} +7 -7
  45. package/dist/lib/browser/state-Y4RVCG4A.mjs.map +7 -0
  46. package/dist/lib/browser/types/index.mjs +2 -2
  47. package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionMain-EU57SRYK.mjs} +4 -4
  48. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +7 -0
  49. package/dist/lib/node-esm/{ObjectDetailsPanel-QKZEDSZK.mjs → ObjectDetailsPanel-TQ5GN4QJ.mjs} +10 -8
  50. package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs.map +7 -0
  51. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +70 -0
  52. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +7 -0
  53. package/dist/lib/node-esm/{app-graph-builder-SG4VECBB.mjs → app-graph-builder-5ZJJUMQI.mjs} +80 -43
  54. package/dist/lib/node-esm/app-graph-builder-5ZJJUMQI.mjs.map +7 -0
  55. package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-EZJSGJUT.mjs} +14 -14
  56. package/dist/lib/node-esm/app-graph-serializer-EZJSGJUT.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-5XRYHWL7.mjs} +10 -9
  58. package/dist/lib/node-esm/chunk-5XRYHWL7.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-JH6F4C3I.mjs → chunk-6WNZW6KT.mjs} +14 -8
  60. package/dist/lib/node-esm/chunk-6WNZW6KT.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-2A3VBXBP.mjs → chunk-BLPXWPLB.mjs} +139 -150
  62. package/dist/lib/node-esm/chunk-BLPXWPLB.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-IJVBBVCL.mjs +21 -0
  64. package/dist/lib/node-esm/chunk-IJVBBVCL.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-HWNG4MEU.mjs → chunk-MWNATOXL.mjs} +2 -4
  66. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-Q6AAQLQG.mjs} +3 -3
  68. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs.map → chunk-Q6AAQLQG.mjs.map} +3 -3
  69. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs +20 -0
  70. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-XDQXUZMK.mjs} +93 -41
  72. package/dist/lib/node-esm/chunk-XDQXUZMK.mjs.map +7 -0
  73. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-MWTLGQRU.mjs} +4 -4
  74. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs.map → identity-created-MWTLGQRU.mjs.map} +3 -3
  75. package/dist/lib/node-esm/index.mjs +19 -39
  76. package/dist/lib/node-esm/index.mjs.map +3 -3
  77. package/dist/lib/node-esm/{intent-resolver-LEANKSKZ.mjs → intent-resolver-LQNHMPIX.mjs} +46 -41
  78. package/dist/lib/node-esm/intent-resolver-LQNHMPIX.mjs.map +7 -0
  79. package/dist/lib/node-esm/meta.json +1 -1
  80. package/dist/lib/node-esm/{react-root-5Y7LJRX6.mjs → react-root-UTLJEIKE.mjs} +11 -11
  81. package/dist/lib/node-esm/react-root-UTLJEIKE.mjs.map +7 -0
  82. package/dist/lib/node-esm/{react-surface-YQFNIKYT.mjs → react-surface-LYDYON3U.mjs} +50 -40
  83. package/dist/lib/node-esm/react-surface-LYDYON3U.mjs.map +7 -0
  84. package/dist/lib/node-esm/{schema-defs-WHJM7UZE.mjs → schema-defs-7IMJPIWS.mjs} +5 -5
  85. package/dist/lib/node-esm/schema-defs-7IMJPIWS.mjs.map +7 -0
  86. package/dist/lib/node-esm/{settings-SAOBPND3.mjs → settings-XBSK5KHH.mjs} +5 -5
  87. package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-XBSK5KHH.mjs.map} +1 -1
  88. package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-YX4IHT4P.mjs} +17 -15
  89. package/dist/lib/node-esm/spaces-ready-YX4IHT4P.mjs.map +7 -0
  90. package/dist/lib/node-esm/{state-ZVEHQ4BJ.mjs → state-HOHAVPUO.mjs} +7 -7
  91. package/dist/lib/node-esm/state-HOHAVPUO.mjs.map +7 -0
  92. package/dist/lib/node-esm/types/index.mjs +2 -2
  93. package/dist/types/src/SpacePlugin.d.ts +1 -1
  94. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  96. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  98. package/dist/types/src/capabilities/capabilities.d.ts +3 -3
  99. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/identity-created.d.ts +1 -1
  101. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/index.d.ts +11 -12
  103. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  105. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  107. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  109. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  111. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/settings.d.ts +1 -1
  113. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  114. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/state.d.ts +1 -1
  116. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  117. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -3
  118. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  119. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1584 -4
  120. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  121. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -3
  122. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  123. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  124. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  125. package/dist/types/src/components/JoinDialog.d.ts +1 -1
  126. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  127. package/dist/types/src/components/MembersContainer.d.ts +3 -2
  128. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  129. package/dist/types/src/components/MembersContainer.stories.d.ts +1584 -5
  130. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +1 -1
  132. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  133. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  134. package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
  135. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  136. package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -1
  137. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  138. package/dist/types/src/components/RecordMain.d.ts +7 -0
  139. package/dist/types/src/components/RecordMain.d.ts.map +1 -0
  140. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  141. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  142. package/dist/types/src/components/SpacePresence.stories.d.ts +1412 -4
  143. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  144. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  145. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1417 -4
  146. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  147. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  148. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1418 -5
  149. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  150. package/dist/types/src/components/ViewEditor.d.ts +1 -1
  151. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  152. package/dist/types/src/components/index.d.ts +8 -2
  153. package/dist/types/src/components/index.d.ts.map +1 -1
  154. package/dist/types/src/events.d.ts.map +1 -1
  155. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  156. package/dist/types/src/meta.d.ts +0 -1
  157. package/dist/types/src/meta.d.ts.map +1 -1
  158. package/dist/types/src/translations.d.ts +1216 -26
  159. package/dist/types/src/translations.d.ts.map +1 -1
  160. package/dist/types/src/types/types.d.ts +73 -93
  161. package/dist/types/src/types/types.d.ts.map +1 -1
  162. package/dist/types/src/util.d.ts +8 -6
  163. package/dist/types/src/util.d.ts.map +1 -1
  164. package/dist/types/tsconfig.tsbuildinfo +1 -1
  165. package/package.json +63 -62
  166. package/src/SpacePlugin.ts +203 -218
  167. package/src/capabilities/app-graph-builder.ts +100 -53
  168. package/src/capabilities/app-graph-serializer.ts +7 -7
  169. package/src/capabilities/capabilities.ts +11 -10
  170. package/src/capabilities/identity-created.ts +1 -1
  171. package/src/capabilities/index.ts +0 -1
  172. package/src/capabilities/intent-resolver.ts +36 -24
  173. package/src/capabilities/react-root.tsx +4 -3
  174. package/src/capabilities/react-surface.tsx +45 -36
  175. package/src/capabilities/schema-defs.ts +3 -2
  176. package/src/capabilities/spaces-ready.ts +10 -7
  177. package/src/capabilities/state.ts +5 -4
  178. package/src/components/AwaitingObject.tsx +3 -3
  179. package/src/components/CollectionMain.tsx +2 -2
  180. package/src/components/CollectionSection.tsx +2 -2
  181. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -10
  182. package/src/components/CreateDialog/CreateObjectDialog.tsx +21 -11
  183. package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
  184. package/src/components/CreateDialog/CreateSpaceDialog.tsx +4 -4
  185. package/src/components/JoinDialog.tsx +7 -7
  186. package/src/components/MembersContainer.stories.tsx +36 -10
  187. package/src/components/MembersContainer.tsx +12 -13
  188. package/src/components/MenuFooter.tsx +2 -2
  189. package/src/components/ObjectDetailsPanel.tsx +6 -4
  190. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -2
  191. package/src/components/ObjectSettings/ForeignKeys.tsx +2 -2
  192. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -2
  193. package/src/components/PersistenceStatus.tsx +2 -2
  194. package/src/components/PopoverRenameObject.tsx +9 -15
  195. package/src/components/PopoverRenameSpace.tsx +4 -4
  196. package/src/components/RecordMain.tsx +43 -0
  197. package/src/components/SchemaContainer.tsx +4 -4
  198. package/src/components/SpacePluginSettings.tsx +8 -9
  199. package/src/components/SpacePresence.stories.tsx +23 -22
  200. package/src/components/SpacePresence.tsx +9 -9
  201. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
  202. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +17 -17
  203. package/src/components/SyncStatus/InlineSyncStatus.tsx +2 -2
  204. package/src/components/SyncStatus/SyncStatus.stories.tsx +6 -7
  205. package/src/components/SyncStatus/SyncStatus.tsx +4 -3
  206. package/src/components/ViewEditor.tsx +13 -18
  207. package/src/components/index.ts +1 -0
  208. package/src/events.ts +7 -7
  209. package/src/hooks/useActiveSpace.ts +2 -2
  210. package/src/hooks/useInputSurfaceLookup.tsx +1 -1
  211. package/src/meta.ts +1 -3
  212. package/src/translations.ts +8 -7
  213. package/src/types/types.ts +15 -10
  214. package/src/util.tsx +86 -37
  215. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  216. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
  217. package/dist/lib/browser/app-graph-builder-V3MP3CDK.mjs.map +0 -7
  218. package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
  219. package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
  220. package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
  221. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  222. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  223. package/dist/lib/browser/chunk-FBJEXW54.mjs.map +0 -7
  224. package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
  225. package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
  227. package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
  229. package/dist/lib/browser/intent-resolver-XHGD73WZ.mjs.map +0 -7
  230. package/dist/lib/browser/react-root-CMWOGJG5.mjs.map +0 -7
  231. package/dist/lib/browser/react-surface-YWZZQF7H.mjs.map +0 -7
  232. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
  233. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  234. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  235. package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
  236. package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
  237. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  238. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
  239. package/dist/lib/node-esm/app-graph-builder-SG4VECBB.mjs.map +0 -7
  240. package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
  241. package/dist/lib/node-esm/chunk-2A3VBXBP.mjs.map +0 -7
  242. package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
  243. package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
  244. package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
  245. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
  246. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
  247. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  248. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
  249. package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
  250. package/dist/lib/node-esm/intent-resolver-LEANKSKZ.mjs.map +0 -7
  251. package/dist/lib/node-esm/react-root-5Y7LJRX6.mjs.map +0 -7
  252. package/dist/lib/node-esm/react-surface-YQFNIKYT.mjs.map +0 -7
  253. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
  254. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  255. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  256. package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
  257. package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
  258. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  259. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  260. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  261. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  262. package/src/capabilities/schema-tool.test.ts +0 -44
  263. package/src/capabilities/schema-tools.ts +0 -125
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SpaceCapabilities
3
- } from "./chunk-CEFHNVU7.mjs";
3
+ } from "./chunk-E2I747A7.mjs";
4
4
  import {
5
- SPACE_PLUGIN
6
- } from "./chunk-FBCGT5YY.mjs";
5
+ meta
6
+ } from "./chunk-IRKDREHY.mjs";
7
7
 
8
8
  // src/capabilities/state.ts
9
9
  import { effect } from "@preact/signals-core";
@@ -11,8 +11,8 @@ import { Capabilities, contributes } from "@dxos/app-framework";
11
11
  import { PublicKey } from "@dxos/keys";
12
12
  import { LocalStorageStore } from "@dxos/local-storage";
13
13
  import { ComplexMap } from "@dxos/util";
14
- var state_default = (context) => {
15
- const state = new LocalStorageStore(SPACE_PLUGIN, {
14
+ var state_default = ((context) => {
15
+ const state = new LocalStorageStore(meta.id, {
16
16
  awaiting: void 0,
17
17
  spaceNames: {},
18
18
  viewersByObject: {},
@@ -40,8 +40,8 @@ var state_default = (context) => {
40
40
  unsubscribe();
41
41
  state.close();
42
42
  });
43
- };
43
+ });
44
44
  export {
45
45
  state_default as default
46
46
  };
47
- //# sourceMappingURL=state-QYZAB45H.mjs.map
47
+ //# sourceMappingURL=state-Y4RVCG4A.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/state.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { PublicKey } from '@dxos/keys';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { ComplexMap } from '@dxos/util';\n\nimport { meta } from '../meta';\nimport { type PluginState } from '../types';\n\nimport { SpaceCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n const state = new LocalStorageStore<PluginState>(meta.id, {\n awaiting: undefined,\n spaceNames: {},\n viewersByObject: {},\n // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n viewersByIdentity: new ComplexMap(PublicKey.hash),\n sdkMigrationRunning: {},\n navigableCollections: false,\n enabledEdgeReplication: false,\n });\n\n state\n .prop({ key: 'spaceNames', type: LocalStorageStore.json<Record<string, string>>() })\n .prop({ key: 'enabledEdgeReplication', type: LocalStorageStore.bool() });\n\n const manager = context.getCapability(Capabilities.PluginManager);\n const unsubscribe = effect(() => {\n // TODO(wittjosiah): Find a way to make this capability-based.\n const enabled = manager.enabled.includes('dxos.org/plugin/stack');\n if (enabled !== state.values.navigableCollections) {\n state.values.navigableCollections = enabled;\n }\n });\n\n return contributes(SpaceCapabilities.State, state.values, () => {\n unsubscribe();\n state.close();\n });\n};\n"],
5
+ "mappings": ";;;;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,iBAAiB;AAC1B,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAO3B,IAAA,iBAAe,CAACC,YAAAA;AACd,QAAMC,QAAQ,IAAIC,kBAA+BC,KAAKC,IAAI;IACxDC,UAAUC;IACVC,YAAY,CAAC;IACbC,iBAAiB,CAAC;;IAElBC,mBAAmB,IAAIC,WAAWC,UAAUC,IAAI;IAChDC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,wBAAwB;EAC1B,CAAA;AAEAd,QACGe,KAAK;IAAEC,KAAK;IAAcC,MAAMhB,kBAAkBiB,KAAI;EAA2B,CAAA,EACjFH,KAAK;IAAEC,KAAK;IAA0BC,MAAMhB,kBAAkBkB,KAAI;EAAG,CAAA;AAExE,QAAMC,UAAUrB,QAAQsB,cAAcC,aAAaC,aAAa;AAChE,QAAMC,cAAcC,OAAO,MAAA;AAEzB,UAAMC,UAAUN,QAAQM,QAAQC,SAAS,uBAAA;AACzC,QAAID,YAAY1B,MAAM4B,OAAOf,sBAAsB;AACjDb,YAAM4B,OAAOf,uBAAuBa;IACtC;EACF,CAAA;AAEA,SAAOG,YAAYC,kBAAkBC,OAAO/B,MAAM4B,QAAQ,MAAA;AACxDJ,gBAAAA;AACAxB,UAAMgC,MAAK;EACb,CAAA;AACF;",
6
+ "names": ["effect", "Capabilities", "contributes", "PublicKey", "LocalStorageStore", "ComplexMap", "context", "state", "LocalStorageStore", "meta", "id", "awaiting", "undefined", "spaceNames", "viewersByObject", "viewersByIdentity", "ComplexMap", "PublicKey", "hash", "sdkMigrationRunning", "navigableCollections", "enabledEdgeReplication", "prop", "key", "type", "json", "bool", "manager", "getCapability", "Capabilities", "PluginManager", "unsubscribe", "effect", "enabled", "includes", "values", "contributes", "SpaceCapabilities", "State", "close"]
7
+ }
@@ -9,8 +9,8 @@ import {
9
9
  SpaceForm,
10
10
  SpaceSettingsSchema,
11
11
  defineObjectForm
12
- } from "../chunk-SGTQ52SU.mjs";
13
- import "../chunk-FBCGT5YY.mjs";
12
+ } from "../chunk-JCHSUOPF.mjs";
13
+ import "../chunk-IRKDREHY.mjs";
14
14
  export {
15
15
  CollectionAction,
16
16
  HueAnnotationId,
@@ -1,7 +1,7 @@
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-MWNATOXL.mjs";
5
5
 
6
6
  // src/components/CollectionMain.tsx
7
7
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
@@ -11,7 +11,7 @@ import { baseSurface, descriptionMessage, mx } from "@dxos/react-ui-theme";
11
11
  var CollectionMain = ({ collection }) => {
12
12
  var _effect = _useSignals();
13
13
  try {
14
- const { t } = useTranslation(SPACE_PLUGIN);
14
+ const { t } = useTranslation(meta.id);
15
15
  return /* @__PURE__ */ React.createElement("div", {
16
16
  role: "none",
17
17
  className: mx(baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
@@ -29,4 +29,4 @@ export {
29
29
  CollectionMain,
30
30
  CollectionMain_default as default
31
31
  };
32
- //# sourceMappingURL=CollectionMain-ZJIFCWKZ.mjs.map
32
+ //# sourceMappingURL=CollectionMain-EU57SRYK.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/CollectionMain.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { baseSurface, descriptionMessage, mx } from '@dxos/react-ui-theme';\nimport { type DataType } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\nexport const CollectionMain = ({ collection }: { collection: DataType.Collection }) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <div\n role='none'\n className={mx(baseSurface, 'min-bs-screen is-full flex items-center justify-center p-8')}\n data-testid='composer.firstRunMessage'\n >\n <p\n role='alert'\n className={mx(descriptionMessage, 'rounded-md p-8 font-normal text-lg max-is-[24rem] break-words')}\n >\n {collection.name ?? t('unnamed collection label')}\n </p>\n </div>\n );\n};\n\nexport default CollectionMain;\n"],
5
+ "mappings": ";;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,sBAAsB;AAC/B,SAASC,aAAaC,oBAAoBC,UAAU;AAK7C,IAAMC,iBAAiB,CAAC,EAAEC,WAAU,MAAuC;;;AAChF,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,WACE,sBAAA,cAACC,OAAAA;MACCC,MAAK;MACLC,WAAWC,GAAGC,aAAa,4DAAA;MAC3BC,eAAY;OAEZ,sBAAA,cAACC,KAAAA;MACCL,MAAK;MACLC,WAAWC,GAAGI,oBAAoB,+DAAA;OAEjCZ,WAAWa,QAAQZ,EAAE,0BAAA,CAAA,CAAA;;;;AAI9B;AAEA,IAAA,yBAAeF;",
6
+ "names": ["React", "useTranslation", "baseSurface", "descriptionMessage", "mx", "CollectionMain", "collection", "t", "useTranslation", "meta", "id", "div", "role", "className", "mx", "baseSurface", "data-testid", "p", "descriptionMessage", "name"]
7
+ }
@@ -1,7 +1,7 @@
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-MWNATOXL.mjs";
5
5
 
6
6
  // src/components/ObjectDetailsPanel.tsx
7
7
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
@@ -9,19 +9,21 @@ import React, { useCallback } from "react";
9
9
  import { setValue } from "@dxos/echo-schema";
10
10
  import { invariant } from "@dxos/invariant";
11
11
  import { useClient } from "@dxos/react-client";
12
- import { getSpace, Filter, useQuery, useSchema } from "@dxos/react-client/echo";
12
+ import { Filter, getSpace, useQuery, useSchema } from "@dxos/react-client/echo";
13
13
  import { Callout, useTranslation } from "@dxos/react-ui";
14
14
  import { useSelected } from "@dxos/react-ui-attention";
15
15
  import { Form, useRefQueryLookupHandler } from "@dxos/react-ui-form";
16
+ import { typenameFromQuery } from "@dxos/schema";
16
17
  import { isNonNullable } from "@dxos/util";
17
18
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ObjectDetailsPanel.tsx";
18
19
  var ObjectDetailsPanel = ({ objectId, view }) => {
19
20
  var _effect = _useSignals();
20
21
  try {
21
- const { t } = useTranslation(SPACE_PLUGIN);
22
+ const { t } = useTranslation(meta.id);
22
23
  const client = useClient();
23
24
  const space = getSpace(view);
24
- const schema = useSchema(client, space, view.query?.typename);
25
+ const typename = view.query ? typenameFromQuery(view.query.ast) : void 0;
26
+ const schema = useSchema(client, space, typename);
25
27
  const queriedObjects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());
26
28
  const selectedRows = useSelected(objectId, "multi");
27
29
  const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);
@@ -32,7 +34,7 @@ var ObjectDetailsPanel = ({ objectId, view }) => {
32
34
  const id = values.id;
33
35
  invariant(typeof id === "string", void 0, {
34
36
  F: __dxlog_file,
35
- L: 36,
37
+ L: 38,
36
38
  S: void 0,
37
39
  A: [
38
40
  "typeof id === 'string'",
@@ -42,7 +44,7 @@ var ObjectDetailsPanel = ({ objectId, view }) => {
42
44
  const object = queriedObjects.find((obj) => obj.id === id);
43
45
  invariant(object, void 0, {
44
46
  F: __dxlog_file,
45
- L: 38,
47
+ L: 40,
46
48
  S: void 0,
47
49
  A: [
48
50
  "object",
@@ -86,4 +88,4 @@ var ObjectDetailsPanel_default = ObjectDetailsPanel;
86
88
  export {
87
89
  ObjectDetailsPanel_default as default
88
90
  };
89
- //# sourceMappingURL=ObjectDetailsPanel-QKZEDSZK.mjs.map
91
+ //# sourceMappingURL=ObjectDetailsPanel-TQ5GN4QJ.mjs.map
@@ -0,0 +1,7 @@
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 { typenameFromQuery } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '../meta';\n\ntype RowDetailsPanelProps = { objectId: string; view: DataType.View };\n\nconst ObjectDetailsPanel = ({ objectId, view }: RowDetailsPanelProps) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const space = getSpace(view);\n const typename = view.query ? typenameFromQuery(view.query.ast) : undefined;\n const schema = useSchema(client, space, 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,yBAAyB;AAClC,SAASC,qBAAqB;;AAM9B,IAAMC,qBAAqB,CAAC,EAAEC,UAAUC,KAAI,MAAwB;;;AAClE,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,SAASC,UAAAA;AACf,UAAMC,QAAQC,SAASR,IAAAA;AACvB,UAAMS,WAAWT,KAAKU,QAAQC,kBAAkBX,KAAKU,MAAME,GAAG,IAAIC;AAClE,UAAMC,SAASC,UAAUV,QAAQE,OAAOE,QAAAA;AAExC,UAAMO,iBAAiBC,SAASV,OAAOO,SAASI,OAAOC,KAAKL,MAAAA,IAAUI,OAAOE,QAAO,CAAA;AACpF,UAAMC,eAAeC,YAAYvB,UAAU,OAAA;AAC3C,UAAMwB,kBAAkBF,aAAaG,IAAI,CAACpB,OAAOY,eAAeS,KAAK,CAACC,QAAQA,IAAItB,OAAOA,EAAAA,CAAAA,EAAKuB,OAAOC,aAAAA;AAErG,UAAMC,uBAAuBC,yBAAyB;MAAEvB;IAAM,CAAA;AAE9D,UAAMwB,aAAaC,YACjB,CAACC,QAAa,EAAEC,QAAO,MAA0C;AAC/D,YAAM9B,KAAK6B,OAAO7B;AAClB+B,gBAAU,OAAO/B,OAAO,UAAA,QAAA;;;;;;;;;AACxB,YAAMgC,SAASpB,eAAeS,KAAK,CAACC,QAAQA,IAAItB,OAAOA,EAAAA;AACvD+B,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;MAACzB;KAAe;AAGlB,QAAIO,gBAAgBoB,WAAW,GAAG;AAChC,aACE,sBAAA,cAACC,OAAAA;QAAIC,MAAK;QAAOC,WAAU;SACzB,sBAAA,cAACC,QAAQC,MAAI;QAACC,YAAW;SACvB,sBAAA,cAACF,QAAQG,OAAK,MAAEjD,EAAE,gCAAA,CAAA,CAAA,CAAA;IAI1B;AAEA,WACE,sBAAA,cAAC2C,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACxBhC,UACCS,gBAAgBC,IAAI,CAACY,WACnB,sBAAA,cAACQ,OAAAA;MAAIO,KAAKf,OAAOhC;MAAI0C,WAAU;OAC7B,sBAAA,cAACM,MAAAA;MACCC,UAAAA;MACAvC;MACAmB,QAAQG;MACRkB,QAAQvB;MACRwB,mBAAmB1B;;;;;AAMjC;AAEA,IAAA,6BAAe/B;",
6
+ "names": ["React", "useCallback", "setValue", "invariant", "useClient", "Filter", "getSpace", "useQuery", "useSchema", "Callout", "useTranslation", "useSelected", "Form", "useRefQueryLookupHandler", "typenameFromQuery", "isNonNullable", "ObjectDetailsPanel", "objectId", "view", "t", "useTranslation", "meta", "id", "client", "useClient", "space", "getSpace", "typename", "query", "typenameFromQuery", "ast", "undefined", "schema", "useSchema", "queriedObjects", "useQuery", "Filter", "type", "nothing", "selectedRows", "useSelected", "selectedObjects", "map", "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
+ }
@@ -0,0 +1,70 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/components/RecordMain.tsx
4
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
5
+ import React, { useCallback } from "react";
6
+ import { Obj } from "@dxos/echo";
7
+ import { setValue } from "@dxos/echo-schema";
8
+ import { invariant } from "@dxos/invariant";
9
+ import { getSpace } from "@dxos/react-client/echo";
10
+ import { Form, useRefQueryLookupHandler } from "@dxos/react-ui-form";
11
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/RecordMain.tsx";
12
+ var RecordMain = ({ record }) => {
13
+ var _effect = _useSignals();
14
+ try {
15
+ const space = getSpace(record);
16
+ const schema = Obj.getSchema(record);
17
+ invariant(schema, "Record has no schema.", {
18
+ F: __dxlog_file,
19
+ L: 16,
20
+ S: void 0,
21
+ A: [
22
+ "schema",
23
+ "'Record has no schema.'"
24
+ ]
25
+ });
26
+ const handleRefQueryLookup = useRefQueryLookupHandler({
27
+ space
28
+ });
29
+ const handleSave = useCallback((values, { changed }) => {
30
+ const id = values.id;
31
+ invariant(typeof id === "string", void 0, {
32
+ F: __dxlog_file,
33
+ L: 23,
34
+ S: void 0,
35
+ A: [
36
+ "typeof id === 'string'",
37
+ ""
38
+ ]
39
+ });
40
+ const changedPaths = Object.keys(changed).filter((path) => changed[path]);
41
+ for (const path of changedPaths) {
42
+ const value = values[path];
43
+ setValue(record, path, value);
44
+ }
45
+ }, [
46
+ record
47
+ ]);
48
+ return /* @__PURE__ */ React.createElement("div", {
49
+ role: "none",
50
+ className: "container-max-width flex flex-col p-2 gap-1 overflow-y-auto"
51
+ }, /* @__PURE__ */ React.createElement("div", {
52
+ key: record.id,
53
+ className: "border border-separator rounded"
54
+ }, /* @__PURE__ */ React.createElement(Form, {
55
+ autoSave: true,
56
+ schema,
57
+ values: record,
58
+ onSave: handleSave,
59
+ onQueryRefOptions: handleRefQueryLookup
60
+ })));
61
+ } finally {
62
+ _effect.f();
63
+ }
64
+ };
65
+ var RecordMain_default = RecordMain;
66
+ export {
67
+ RecordMain,
68
+ RecordMain_default as default
69
+ };
70
+ //# sourceMappingURL=RecordMain-WLYJMYER.mjs.map
@@ -0,0 +1,7 @@
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,10 +1,10 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  getActiveSpace
4
- } from "./chunk-SSLBYZEY.mjs";
4
+ } from "./chunk-Q6AAQLQG.mjs";
5
5
  import {
6
6
  SpaceCapabilities
7
- } from "./chunk-5T3ZH23B.mjs";
7
+ } from "./chunk-IJVBBVCL.mjs";
8
8
  import {
9
9
  SHARED,
10
10
  SPACES,
@@ -15,29 +15,29 @@ import {
15
15
  createStaticSchemaActions,
16
16
  createStaticSchemaNode,
17
17
  rxFromQuery
18
- } from "./chunk-4AOMYKDE.mjs";
18
+ } from "./chunk-XDQXUZMK.mjs";
19
19
  import {
20
20
  SPACE_TYPE,
21
21
  SpaceAction
22
- } from "./chunk-JH6F4C3I.mjs";
22
+ } from "./chunk-6WNZW6KT.mjs";
23
23
  import {
24
- SPACE_PLUGIN
25
- } from "./chunk-HWNG4MEU.mjs";
24
+ meta
25
+ } from "./chunk-MWNATOXL.mjs";
26
26
 
27
27
  // src/capabilities/app-graph-builder.ts
28
28
  import { Rx } from "@effect-rx/rx-react";
29
- import { Array, Option, pipe, Schema } from "effect";
29
+ import { Array, Option, Schema, pipe } from "effect";
30
30
  import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
31
- import { getSpace, SpaceState, isSpace } from "@dxos/client/echo";
31
+ import { SpaceState, getSpace, isSpace, parseId } from "@dxos/client/echo";
32
32
  import { Filter, Obj, Query, Type } from "@dxos/echo";
33
33
  import { log } from "@dxos/log";
34
34
  import { ClientCapabilities } from "@dxos/plugin-client";
35
- import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from "@dxos/plugin-deck/types";
36
- import { createExtension, rxFromObservable, ROOT_ID, rxFromSignal } from "@dxos/plugin-graph";
37
- import { DataType } from "@dxos/schema";
35
+ import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
36
+ import { ROOT_ID, createExtension, rxFromObservable, rxFromSignal } from "@dxos/plugin-graph";
37
+ import { DataType, typenameFromQuery } from "@dxos/schema";
38
38
  import { isNonNullable } from "@dxos/util";
39
39
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/capabilities/app-graph-builder.ts";
40
- var app_graph_builder_default = (context) => {
40
+ var app_graph_builder_default = ((context) => {
41
41
  const resolve = (typename) => context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
42
42
  const spacesNode = {
43
43
  id: SPACES,
@@ -50,7 +50,7 @@ var app_graph_builder_default = (context) => {
50
50
  label: [
51
51
  "spaces label",
52
52
  {
53
- ns: SPACE_PLUGIN
53
+ ns: meta.id
54
54
  }
55
55
  ],
56
56
  icon: "ph--planet--regular",
@@ -71,7 +71,7 @@ var app_graph_builder_default = (context) => {
71
71
  } else {
72
72
  log.warn("spaces order object not found", void 0, {
73
73
  F: __dxlog_file,
74
- L: 70,
74
+ L: 71,
75
75
  S: void 0,
76
76
  C: (f, a) => f(...a)
77
77
  });
@@ -82,7 +82,7 @@ var app_graph_builder_default = (context) => {
82
82
  return contributes(Capabilities.AppGraphBuilder, [
83
83
  // Primary actions.
84
84
  createExtension({
85
- id: `${SPACE_PLUGIN}/primary-actions`,
85
+ id: `${meta.id}/primary-actions`,
86
86
  position: "hoist",
87
87
  actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
88
88
  {
@@ -95,7 +95,7 @@ var app_graph_builder_default = (context) => {
95
95
  label: [
96
96
  "create space label",
97
97
  {
98
- ns: SPACE_PLUGIN
98
+ ns: meta.id
99
99
  }
100
100
  ],
101
101
  icon: "ph--plus--regular",
@@ -113,7 +113,7 @@ var app_graph_builder_default = (context) => {
113
113
  label: [
114
114
  "join space label",
115
115
  {
116
- ns: SPACE_PLUGIN
116
+ ns: meta.id
117
117
  }
118
118
  ],
119
119
  icon: "ph--sign-in--regular",
@@ -135,7 +135,7 @@ var app_graph_builder_default = (context) => {
135
135
  label: [
136
136
  "share space label",
137
137
  {
138
- ns: SPACE_PLUGIN
138
+ ns: meta.id
139
139
  }
140
140
  ],
141
141
  icon: "ph--users--regular",
@@ -160,7 +160,7 @@ var app_graph_builder_default = (context) => {
160
160
  label: [
161
161
  "open current space settings label",
162
162
  {
163
- ns: SPACE_PLUGIN
163
+ ns: meta.id
164
164
  }
165
165
  ],
166
166
  icon: "ph--faders--regular",
@@ -174,7 +174,7 @@ var app_graph_builder_default = (context) => {
174
174
  }),
175
175
  // Create spaces group node.
176
176
  createExtension({
177
- id: `${SPACE_PLUGIN}/root`,
177
+ id: `${meta.id}/root`,
178
178
  position: "hoist",
179
179
  connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
180
180
  spacesNode
@@ -195,7 +195,7 @@ var app_graph_builder_default = (context) => {
195
195
  if (!spaces || !isReady) {
196
196
  return [];
197
197
  }
198
- const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore(SPACE_PLUGIN)?.value;
198
+ const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore(meta.id)?.value;
199
199
  try {
200
200
  if (!query) {
201
201
  query = client.spaces.default.db.query(Filter.type(Type.Expando, {
@@ -228,7 +228,7 @@ var app_graph_builder_default = (context) => {
228
228
  }),
229
229
  // Create space actions.
230
230
  createExtension({
231
- id: `${SPACE_PLUGIN}/actions`,
231
+ id: `${meta.id}/actions`,
232
232
  actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.type === SPACE_TYPE && isSpace(node2.data) ? Option.some(node2.data) : Option.none()), Option.flatMap((space) => {
233
233
  const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
234
234
  const [client] = get(context.capabilities(ClientCapabilities.Client));
@@ -247,7 +247,7 @@ var app_graph_builder_default = (context) => {
247
247
  }),
248
248
  // Create nodes for objects in the root collection of a space.
249
249
  createExtension({
250
- id: `${SPACE_PLUGIN}/root-collection`,
250
+ id: `${meta.id}/root-collection`,
251
251
  connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.type === SPACE_TYPE && isSpace(node2.data) ? Option.some(node2.data) : Option.none()), Option.map((space) => {
252
252
  const state = context.getCapability(SpaceCapabilities.State);
253
253
  const spaceState = get(rxFromObservable(space.state));
@@ -268,7 +268,7 @@ var app_graph_builder_default = (context) => {
268
268
  }),
269
269
  // Create nodes for objects in a collection or by its fully qualified id.
270
270
  createExtension({
271
- id: `${SPACE_PLUGIN}/objects`,
271
+ id: `${meta.id}/objects`,
272
272
  connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.Collection, node2.data) ? Option.some(node2.data) : Option.none()), Option.map((collection) => {
273
273
  const state = context.getCapability(SpaceCapabilities.State);
274
274
  const space = getSpace(collection);
@@ -282,13 +282,14 @@ var app_graph_builder_default = (context) => {
282
282
  }),
283
283
  // Create nodes for objects in a query collection.
284
284
  createExtension({
285
- id: `${SPACE_PLUGIN}/query-collection-objects`,
285
+ id: `${meta.id}/query-collection-objects`,
286
286
  connector: (node) => {
287
287
  let query;
288
288
  return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.QueryCollection, node2.data) ? Option.some(node2.data) : Option.none()), Option.flatMap((collection) => {
289
289
  const space = getSpace(collection);
290
- return collection.query.typename && space ? Option.some({
291
- typename: collection.query.typename,
290
+ const typename = typenameFromQuery(collection.query);
291
+ return typename && space ? Option.some({
292
+ typename,
292
293
  space
293
294
  }) : Option.none();
294
295
  }), Option.map(({ typename, space }) => {
@@ -302,7 +303,7 @@ var app_graph_builder_default = (context) => {
302
303
  Query.select(Filter.typename(typename)).referencedBy(DataType.Collection, "objects").reference("objects")
303
304
  ));
304
305
  }
305
- return get(rxFromQuery(query)).map((object) => get(rxFromSignal(() => createObjectNode({
306
+ return get(rxFromQuery(query)).toSorted((a, b) => a.id.localeCompare(b.id)).map((object) => get(rxFromSignal(() => createObjectNode({
306
307
  object,
307
308
  space,
308
309
  resolve,
@@ -314,10 +315,10 @@ var app_graph_builder_default = (context) => {
314
315
  }),
315
316
  // Static schema records.
316
317
  createExtension({
317
- id: `${SPACE_PLUGIN}/static-schemas`,
318
+ id: `${meta.id}/static-schemas`,
318
319
  connector: (node) => {
319
320
  const client = context.getCapability(ClientCapabilities.Client);
320
- return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.QueryCollection, node2.data) && node2.data.query.typename === DataType.StoredSchema.typename ? Option.some(node2.data) : Option.none()), Option.flatMap((collection) => {
321
+ return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.QueryCollection, node2.data) && typenameFromQuery(node2.data.query) === DataType.StoredSchema.typename ? Option.some(node2.data) : Option.none()), Option.flatMap((collection) => {
321
322
  const space = getSpace(collection);
322
323
  return space?.properties.staticRecords ? Option.some(space) : Option.none();
323
324
  }), Option.map((space) => {
@@ -330,7 +331,7 @@ var app_graph_builder_default = (context) => {
330
331
  }),
331
332
  // Create static schema actions.
332
333
  createExtension({
333
- id: `${SPACE_PLUGIN}/static-schema-actions`,
334
+ id: `${meta.id}/static-schema-actions`,
334
335
  actions: (node) => {
335
336
  let query;
336
337
  return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
@@ -346,12 +347,17 @@ var app_graph_builder_default = (context) => {
346
347
  const views = get(rxFromQuery(query));
347
348
  const filteredViews = get(rxFromSignal(() => (
348
349
  // TODO(wittjosiah): Remove cast.
349
- views.filter((view) => view.query.typename === Type.getTypename(schema))
350
+ views.filter((view) => typenameFromQuery(view.query.ast) === Type.getTypename(schema))
350
351
  )));
351
352
  const deletable = filteredViews.length === 0;
353
+ const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
354
+ if (!dispatcher) {
355
+ return [];
356
+ }
352
357
  return createStaticSchemaActions({
353
358
  schema,
354
359
  space,
360
+ dispatch: dispatcher.dispatchPromise,
355
361
  deletable
356
362
  });
357
363
  }), Option.getOrElse(() => [])));
@@ -359,7 +365,7 @@ var app_graph_builder_default = (context) => {
359
365
  }),
360
366
  // Create nodes for schema views.
361
367
  createExtension({
362
- id: `${SPACE_PLUGIN}/schema-views`,
368
+ id: `${meta.id}/schema-views`,
363
369
  connector: (node) => {
364
370
  let query;
365
371
  return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
@@ -373,7 +379,7 @@ var app_graph_builder_default = (context) => {
373
379
  query = space.db.query(Filter.type(DataType.View));
374
380
  }
375
381
  const typename = Schema.isSchema(schema) ? Type.getTypename(schema) : schema.typename;
376
- return get(rxFromQuery(query)).filter((view) => view.query.typename === typename).map((view) => get(rxFromSignal(() => createObjectNode({
382
+ return get(rxFromQuery(query)).filter((view) => typenameFromQuery(view.query.ast) === typename).map((view) => get(rxFromSignal(() => createObjectNode({
377
383
  object: view,
378
384
  space,
379
385
  resolve,
@@ -382,9 +388,40 @@ var app_graph_builder_default = (context) => {
382
388
  }), Option.getOrElse(() => [])));
383
389
  }
384
390
  }),
391
+ // Create record nodes.
392
+ createExtension({
393
+ id: `${meta.id}/records`,
394
+ resolver: (id) => {
395
+ let query;
396
+ return Rx.make((get) => {
397
+ const client = context.getCapability(ClientCapabilities.Client);
398
+ const { spaceId, objectId } = parseId(id);
399
+ if (!spaceId || !objectId) {
400
+ return null;
401
+ }
402
+ const space = client.spaces.get(spaceId);
403
+ if (!space) {
404
+ return null;
405
+ }
406
+ if (!query) {
407
+ query = space.db.query(Filter.ids(objectId));
408
+ }
409
+ const object = get(rxFromQuery(query)).at(0);
410
+ if (!object) {
411
+ return null;
412
+ }
413
+ return createObjectNode({
414
+ object,
415
+ space,
416
+ resolve,
417
+ disposition: "hidden"
418
+ });
419
+ });
420
+ }
421
+ }),
385
422
  // Create collection actions and action groups.
386
423
  createExtension({
387
- id: `${SPACE_PLUGIN}/object-actions`,
424
+ id: `${meta.id}/object-actions`,
388
425
  actions: (node) => {
389
426
  let query;
390
427
  return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
@@ -399,10 +436,10 @@ var app_graph_builder_default = (context) => {
399
436
  query = space.db.query(Filter.type(DataType.View));
400
437
  }
401
438
  let deletable = !isSchema && // Don't allow the Records smart collection to be deleted.
402
- !(Obj.instanceOf(DataType.QueryCollection, object) && object.query.typename === DataType.StoredSchema.typename);
439
+ !(Obj.instanceOf(DataType.QueryCollection, object) && typenameFromQuery(object.query) === DataType.StoredSchema.typename);
403
440
  if (isSchema && query) {
404
441
  const views = get(rxFromQuery(query));
405
- const filteredViews = get(rxFromSignal(() => views.filter((view) => view.query.typename === object.typename)));
442
+ const filteredViews = get(rxFromSignal(() => views.filter((view) => typenameFromQuery(view.query.ast) === object.typename)));
406
443
  deletable = filteredViews.length === 0;
407
444
  }
408
445
  const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
@@ -426,7 +463,7 @@ var app_graph_builder_default = (context) => {
426
463
  }),
427
464
  // View selected objects.
428
465
  createExtension({
429
- id: `${SPACE_PLUGIN}/selected-objects`,
466
+ id: `${meta.id}/selected-objects`,
430
467
  connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.View, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
431
468
  {
432
469
  id: [
@@ -439,7 +476,7 @@ var app_graph_builder_default = (context) => {
439
476
  label: [
440
477
  "companion selected objects label",
441
478
  {
442
- ns: SPACE_PLUGIN
479
+ ns: meta.id
443
480
  }
444
481
  ],
445
482
  icon: "ph--tree-view--regular",
@@ -450,7 +487,7 @@ var app_graph_builder_default = (context) => {
450
487
  }),
451
488
  // Object settings plank companion.
452
489
  createExtension({
453
- id: `${SPACE_PLUGIN}/settings`,
490
+ id: `${meta.id}/settings`,
454
491
  connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.isObject(node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
455
492
  {
456
493
  id: [
@@ -463,7 +500,7 @@ var app_graph_builder_default = (context) => {
463
500
  label: [
464
501
  "object settings label",
465
502
  {
466
- ns: SPACE_PLUGIN
503
+ ns: meta.id
467
504
  }
468
505
  ],
469
506
  icon: "ph--sliders--regular",
@@ -474,8 +511,8 @@ var app_graph_builder_default = (context) => {
474
511
  ]), Option.getOrElse(() => [])))
475
512
  })
476
513
  ]);
477
- };
514
+ });
478
515
  export {
479
516
  app_graph_builder_default as default
480
517
  };
481
- //# sourceMappingURL=app-graph-builder-SG4VECBB.mjs.map
518
+ //# sourceMappingURL=app-graph-builder-5ZJJUMQI.mjs.map