@dxos/plugin-space 0.8.4-main.2e9d522 → 0.8.4-main.3c1ae3b

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 (389) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionArticle-WTHWY4YS.mjs} +10 -10
  2. package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectCardStack-TE7AWPMH.mjs +144 -0
  4. package/dist/lib/browser/ObjectCardStack-TE7AWPMH.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectDetails-666IBRHE.mjs +144 -0
  6. package/dist/lib/browser/ObjectDetails-666IBRHE.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs +116 -0
  8. package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs.map +7 -0
  9. package/dist/lib/browser/app-graph-builder-USKWFIDK.mjs +551 -0
  10. package/dist/lib/browser/app-graph-builder-USKWFIDK.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-SXIQ425K.mjs} +19 -19
  12. package/dist/lib/browser/app-graph-serializer-SXIQ425K.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-5CSSKOWR.mjs} +42 -16
  14. package/dist/lib/browser/chunk-5CSSKOWR.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-C6DAPIFF.mjs +20 -0
  16. package/dist/lib/browser/chunk-C6DAPIFF.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-E4BEMEZ3.mjs +399 -0
  18. package/dist/lib/browser/chunk-E4BEMEZ3.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-IJCMB5B5.mjs} +269 -145
  20. package/dist/lib/browser/chunk-IJCMB5B5.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-POFUXISV.mjs} +69 -62
  22. package/dist/lib/browser/chunk-POFUXISV.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
  24. package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-WJXU4GKV.mjs +19 -0
  26. package/dist/lib/browser/chunk-WJXU4GKV.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-V7MJSSBQ.mjs → chunk-XKQCDLXX.mjs} +734 -615
  28. package/dist/lib/browser/chunk-XKQCDLXX.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 +92 -139
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-TIXVDYN7.mjs → intent-resolver-QEIM7NQT.mjs} +118 -109
  34. package/dist/lib/browser/intent-resolver-QEIM7NQT.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/react-root-T6ZETLD2.mjs +30 -0
  37. package/dist/lib/browser/react-root-T6ZETLD2.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-TPNLWJJH.mjs → react-surface-MLN5BZ2G.mjs} +120 -120
  39. package/dist/lib/browser/react-surface-MLN5BZ2G.mjs.map +7 -0
  40. package/dist/lib/browser/repair-CNLE35NF.mjs +44 -0
  41. package/dist/lib/browser/repair-CNLE35NF.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-EGTCHS7U.mjs} +5 -5
  43. package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-EGTCHS7U.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-YS4BBZXW.mjs} +29 -20
  45. package/dist/lib/browser/spaces-ready-YS4BBZXW.mjs.map +7 -0
  46. package/dist/lib/browser/{state-QYZAB45H.mjs → state-C7N6EDDZ.mjs} +7 -7
  47. package/dist/lib/browser/state-C7N6EDDZ.mjs.map +7 -0
  48. package/dist/lib/browser/types/index.mjs +10 -4
  49. package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionArticle-KHXYT3SH.mjs} +10 -10
  50. package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
  51. package/dist/lib/node-esm/ObjectCardStack-AAKMAQ6T.mjs +145 -0
  52. package/dist/lib/node-esm/ObjectCardStack-AAKMAQ6T.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectDetails-TZ5YKXGN.mjs +145 -0
  54. package/dist/lib/node-esm/ObjectDetails-TZ5YKXGN.mjs.map +7 -0
  55. package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs +117 -0
  56. package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs.map +7 -0
  57. package/dist/lib/node-esm/app-graph-builder-QRQ5EQLB.mjs +552 -0
  58. package/dist/lib/node-esm/app-graph-builder-QRQ5EQLB.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-P2X4W7LI.mjs} +19 -19
  60. package/dist/lib/node-esm/app-graph-serializer-P2X4W7LI.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-3D4NGZPW.mjs} +269 -145
  62. package/dist/lib/node-esm/chunk-3D4NGZPW.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-AX3UGL5D.mjs} +69 -62
  64. package/dist/lib/node-esm/chunk-AX3UGL5D.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
  66. package/dist/lib/node-esm/chunk-BDEFTL6K.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-QQQE2ZCX.mjs +400 -0
  70. package/dist/lib/node-esm/chunk-QQQE2ZCX.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-UMZ7G6G4.mjs} +41 -16
  72. package/dist/lib/node-esm/chunk-UMZ7G6G4.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-WWGV5FJM.mjs +21 -0
  74. package/dist/lib/node-esm/chunk-WWGV5FJM.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-6X5DLJM5.mjs → chunk-XD532BVR.mjs} +734 -615
  76. package/dist/lib/node-esm/chunk-XD532BVR.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 +92 -139
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-MHGHRGDT.mjs → intent-resolver-ZWCBVABN.mjs} +118 -109
  82. package/dist/lib/node-esm/intent-resolver-ZWCBVABN.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-SKB4UJ4K.mjs} +13 -12
  85. package/dist/lib/node-esm/react-root-SKB4UJ4K.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-UUIUUD6P.mjs → react-surface-BVZGNSBB.mjs} +120 -120
  87. package/dist/lib/node-esm/react-surface-BVZGNSBB.mjs.map +7 -0
  88. package/dist/lib/node-esm/repair-EHZS6MFY.mjs +45 -0
  89. package/dist/lib/node-esm/repair-EHZS6MFY.mjs.map +7 -0
  90. package/dist/lib/node-esm/{settings-SAOBPND3.mjs → settings-N3F6JCIR.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-N3F6JCIR.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-U2K5P4LB.mjs} +29 -20
  93. package/dist/lib/node-esm/spaces-ready-U2K5P4LB.mjs.map +7 -0
  94. package/dist/lib/node-esm/{state-ZVEHQ4BJ.mjs → state-45TXZQJ6.mjs} +7 -7
  95. package/dist/lib/node-esm/state-45TXZQJ6.mjs.map +7 -0
  96. package/dist/lib/node-esm/types/index.mjs +10 -4
  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 +14 -8
  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/repair.d.ts +4 -0
  115. package/dist/types/src/capabilities/repair.d.ts.map +1 -0
  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 +1588 -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 +18 -9
  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 +1591 -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/ObjectCardStack/ObjectCardStack.d.ts +8 -0
  145. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
  146. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts +9 -0
  147. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +1 -0
  148. package/dist/types/src/components/ObjectCardStack/index.d.ts +3 -0
  149. package/dist/types/src/components/ObjectCardStack/index.d.ts.map +1 -0
  150. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.d.ts +2 -2
  151. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -0
  152. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +1424 -0
  153. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -0
  154. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts +8 -0
  155. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts.map +1 -0
  156. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts +8 -0
  157. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +1 -0
  158. package/dist/types/src/components/ObjectDetails/index.d.ts +3 -0
  159. package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -0
  160. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  161. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  162. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  163. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  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 +1591 -0
  167. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  168. package/dist/types/src/components/SchemaContainer.d.ts +2 -2
  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} +6 -5
  172. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  173. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +1421 -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 +1 -1
  182. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  183. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1421 -4
  184. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  185. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  186. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1422 -5
  187. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  188. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  189. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  190. package/dist/types/src/components/index.d.ts +10 -12
  191. package/dist/types/src/components/index.d.ts.map +1 -1
  192. package/dist/types/src/events.d.ts.map +1 -1
  193. package/dist/types/src/helpers/index.d.ts +2 -0
  194. package/dist/types/src/helpers/index.d.ts.map +1 -0
  195. package/dist/types/src/helpers/query.d.ts +7 -0
  196. package/dist/types/src/helpers/query.d.ts.map +1 -0
  197. package/dist/types/src/helpers/query.test.d.ts +2 -0
  198. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  199. package/dist/types/src/hooks/index.d.ts +1 -0
  200. package/dist/types/src/hooks/index.d.ts.map +1 -1
  201. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  202. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -8
  203. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  204. package/dist/types/src/hooks/usePath.d.ts +1 -1
  205. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  206. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  207. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  208. package/dist/types/src/index.d.ts +1 -0
  209. package/dist/types/src/index.d.ts.map +1 -1
  210. package/dist/types/src/meta.d.ts +0 -1
  211. package/dist/types/src/meta.d.ts.map +1 -1
  212. package/dist/types/src/translations.d.ts +1261 -67
  213. package/dist/types/src/translations.d.ts.map +1 -1
  214. package/dist/types/src/types/form.d.ts +22 -0
  215. package/dist/types/src/types/form.d.ts.map +1 -0
  216. package/dist/types/src/types/index.d.ts +1 -0
  217. package/dist/types/src/types/index.d.ts.map +1 -1
  218. package/dist/types/src/types/types.d.ts +96 -157
  219. package/dist/types/src/types/types.d.ts.map +1 -1
  220. package/dist/types/src/util.d.ts +25 -36
  221. package/dist/types/src/util.d.ts.map +1 -1
  222. package/dist/types/tsconfig.tsbuildinfo +1 -1
  223. package/package.json +70 -59
  224. package/src/SpacePlugin.ts +182 -222
  225. package/src/capabilities/app-graph-builder.ts +271 -246
  226. package/src/capabilities/app-graph-serializer.ts +12 -12
  227. package/src/capabilities/capabilities.ts +28 -17
  228. package/src/capabilities/identity-created.ts +3 -3
  229. package/src/capabilities/index.ts +1 -2
  230. package/src/capabilities/intent-resolver.ts +92 -81
  231. package/src/capabilities/react-root.tsx +6 -4
  232. package/src/capabilities/react-surface.tsx +127 -155
  233. package/src/capabilities/repair.ts +57 -0
  234. package/src/capabilities/spaces-ready.ts +38 -17
  235. package/src/capabilities/state.ts +5 -4
  236. package/src/components/AwaitingObject.tsx +12 -14
  237. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
  238. package/src/components/CollectionSection.tsx +8 -6
  239. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +17 -16
  240. package/src/components/CreateDialog/CreateObjectDialog.tsx +74 -46
  241. package/src/components/CreateDialog/CreateObjectPanel.tsx +65 -43
  242. package/src/components/CreateDialog/CreateSpaceDialog.tsx +45 -22
  243. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
  244. package/src/components/JoinDialog/index.ts +5 -0
  245. package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
  246. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +22 -21
  247. package/src/components/MembersContainer/index.ts +5 -0
  248. package/src/components/MenuFooter.tsx +2 -2
  249. package/src/components/ObjectCardStack/ObjectCardStack.tsx +64 -0
  250. package/src/components/ObjectCardStack/ObjectForm.tsx +90 -0
  251. package/src/components/ObjectCardStack/index.ts +7 -0
  252. package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +63 -0
  253. package/src/components/ObjectDetails/BaseObjectSettings.tsx +118 -0
  254. package/src/components/{ObjectSettings → ObjectDetails}/ForeignKeys.tsx +8 -8
  255. package/src/components/ObjectDetails/ObjectDetails.tsx +35 -0
  256. package/src/components/ObjectDetails/index.ts +7 -0
  257. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +10 -16
  258. package/src/components/ObjectRenamePopover/index.ts +5 -0
  259. package/src/components/RecordArticle.stories.tsx +115 -0
  260. package/src/components/RecordArticle.tsx +114 -0
  261. package/src/components/SchemaContainer.tsx +26 -29
  262. package/src/components/SpacePluginSettings.tsx +16 -11
  263. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +24 -23
  264. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +22 -17
  265. package/src/components/SpacePresence/index.ts +5 -0
  266. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
  267. package/src/components/SpaceRenamePopover/index.ts +5 -0
  268. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
  269. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +190 -155
  270. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  271. package/src/components/SyncStatus/SyncStatus.stories.tsx +9 -9
  272. package/src/components/SyncStatus/SyncStatus.tsx +109 -12
  273. package/src/components/ViewEditor.tsx +56 -23
  274. package/src/components/index.ts +7 -7
  275. package/src/events.ts +7 -7
  276. package/src/helpers/index.ts +5 -0
  277. package/src/helpers/query.test.ts +24 -0
  278. package/src/helpers/query.ts +152 -0
  279. package/src/hooks/index.ts +1 -0
  280. package/src/hooks/useActiveSpace.ts +3 -2
  281. package/src/hooks/useInputSurfaceLookup.tsx +9 -13
  282. package/src/hooks/usePath.ts +1 -1
  283. package/src/hooks/useTypeOptions.ts +25 -0
  284. package/src/index.ts +1 -0
  285. package/src/meta.ts +6 -3
  286. package/src/translations.ts +68 -58
  287. package/src/types/form.ts +69 -0
  288. package/src/types/index.ts +1 -0
  289. package/src/types/types.ts +51 -52
  290. package/src/util.tsx +269 -147
  291. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  292. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs +0 -88
  293. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
  294. package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs +0 -479
  295. package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs.map +0 -7
  296. package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
  297. package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
  298. package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  300. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  301. package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
  302. package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
  303. package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
  304. package/dist/lib/browser/chunk-SGTQ52SU.mjs +0 -338
  305. package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
  306. package/dist/lib/browser/chunk-V7MJSSBQ.mjs.map +0 -7
  307. package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
  308. package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
  309. package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +0 -7
  310. package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs.map +0 -7
  311. package/dist/lib/browser/react-root-N2J7TDRX.mjs +0 -29
  312. package/dist/lib/browser/react-root-N2J7TDRX.mjs.map +0 -7
  313. package/dist/lib/browser/react-surface-TPNLWJJH.mjs.map +0 -7
  314. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs +0 -26
  315. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
  316. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  317. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  318. package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
  319. package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
  320. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  321. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs +0 -89
  322. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
  323. package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs +0 -480
  324. package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs.map +0 -7
  325. package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
  326. package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
  327. package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
  328. package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
  329. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
  330. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
  331. package/dist/lib/node-esm/chunk-6X5DLJM5.mjs.map +0 -7
  332. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  333. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  334. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs +0 -339
  335. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
  336. package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
  337. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
  338. package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +0 -7
  339. package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs.map +0 -7
  340. package/dist/lib/node-esm/react-root-KW3TGJGY.mjs.map +0 -7
  341. package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs.map +0 -7
  342. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs +0 -27
  343. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
  344. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  345. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  346. package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
  347. package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
  348. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  349. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  350. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  351. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  352. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  353. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  354. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  355. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  356. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  357. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  358. package/dist/types/src/components/MembersContainer.stories.d.ts +0 -8
  359. package/dist/types/src/components/MembersContainer.stories.d.ts.map +0 -1
  360. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  361. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  362. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +0 -7
  363. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  364. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
  365. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +0 -8
  366. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
  367. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +0 -8
  368. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
  369. package/dist/types/src/components/ObjectSettings/index.d.ts +0 -2
  370. package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
  371. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  372. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  373. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  374. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  375. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  376. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  377. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  378. package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
  379. package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
  380. package/src/capabilities/schema-defs.ts +0 -30
  381. package/src/capabilities/schema-tool.test.ts +0 -44
  382. package/src/capabilities/schema-tools.ts +0 -125
  383. package/src/components/MembersContainer.stories.tsx +0 -30
  384. package/src/components/ObjectDetailsPanel.tsx +0 -77
  385. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +0 -80
  386. package/src/components/ObjectSettings/BaseObjectSettings.tsx +0 -47
  387. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +0 -36
  388. package/src/components/ObjectSettings/index.ts +0 -5
  389. package/src/components/PersistenceStatus.tsx +0 -83
@@ -0,0 +1,30 @@
1
+ import {
2
+ AwaitingObject
3
+ } from "./chunk-XKQCDLXX.mjs";
4
+ import "./chunk-5CSSKOWR.mjs";
5
+ import {
6
+ SpaceCapabilities
7
+ } from "./chunk-C6DAPIFF.mjs";
8
+ import "./chunk-IJCMB5B5.mjs";
9
+ import "./chunk-E4BEMEZ3.mjs";
10
+ import {
11
+ meta
12
+ } from "./chunk-VZBIIYFM.mjs";
13
+
14
+ // src/capabilities/react-root.tsx
15
+ import React from "react";
16
+ import { Capabilities, contributes } from "@dxos/app-framework";
17
+ import { useCapability } from "@dxos/app-framework/react";
18
+ var react_root_default = (() => contributes(Capabilities.ReactRoot, {
19
+ id: meta.id,
20
+ root: () => {
21
+ const state = useCapability(SpaceCapabilities.State);
22
+ return state.awaiting ? /* @__PURE__ */ React.createElement(AwaitingObject, {
23
+ id: state.awaiting
24
+ }) : null;
25
+ }
26
+ }));
27
+ export {
28
+ react_root_default as default
29
+ };
30
+ //# sourceMappingURL=react-root-T6ZETLD2.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-root.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { useCapability } from '@dxos/app-framework/react';\n\nimport { AwaitingObject } from '../components';\nimport { meta } from '../meta';\n\nimport { SpaceCapabilities } from './capabilities';\n\nexport default () =>\n contributes(Capabilities.ReactRoot, {\n id: meta.id,\n root: () => {\n const state = useCapability(SpaceCapabilities.State);\n return state.awaiting ? <AwaitingObject id={state.awaiting} /> : null;\n },\n });\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,mBAAmB;AAC1C,SAASC,qBAAqB;AAO9B,IAAA,sBAAe,MACbC,YAAYC,aAAaC,WAAW;EAClCC,IAAIC,KAAKD;EACTE,MAAM,MAAA;AACJ,UAAMC,QAAQC,cAAcC,kBAAkBC,KAAK;AACnD,WAAOH,MAAMI,WAAW,sBAAA,cAACC,gBAAAA;MAAeR,IAAIG,MAAMI;SAAe;EACnE;AACF,CAAA;",
6
+ "names": ["React", "Capabilities", "contributes", "useCapability", "contributes", "Capabilities", "ReactRoot", "id", "meta", "root", "state", "useCapability", "SpaceCapabilities", "State", "awaiting", "AwaitingObject"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CREATE_OBJECT_DIALOG,
3
3
  CREATE_SPACE_DIALOG,
4
- CollectionMain,
4
+ CollectionArticle,
5
5
  CollectionSection,
6
6
  CreateObjectDialog,
7
7
  CreateSpaceDialog,
@@ -10,53 +10,53 @@ import {
10
10
  JoinDialog,
11
11
  MembersContainer,
12
12
  MenuFooter,
13
- ObjectDetailsPanel,
14
- ObjectSettingsContainer,
15
- POPOVER_RENAME_OBJECT,
16
- POPOVER_RENAME_SPACE,
17
- PopoverRenameObject,
18
- PopoverRenameSpace,
13
+ OBJECT_RENAME_POPOVER,
14
+ ObjectCardStack,
15
+ ObjectDetails,
16
+ ObjectRenamePopover,
17
+ RecordArticle,
18
+ SPACE_RENAME_POPOVER,
19
19
  SchemaContainer,
20
20
  SmallPresenceLive,
21
21
  SpacePluginSettings,
22
22
  SpacePresence,
23
+ SpaceRenamePopover,
23
24
  SpaceSettingsContainer,
24
25
  SyncStatus,
25
26
  ViewEditor
26
- } from "./chunk-V7MJSSBQ.mjs";
27
- import "./chunk-VLBRSGJ2.mjs";
27
+ } from "./chunk-XKQCDLXX.mjs";
28
+ import {
29
+ useTypeOptions
30
+ } from "./chunk-5CSSKOWR.mjs";
28
31
  import {
29
32
  SpaceCapabilities
30
- } from "./chunk-CEFHNVU7.mjs";
31
- import "./chunk-XUYKJUU7.mjs";
33
+ } from "./chunk-C6DAPIFF.mjs";
34
+ import "./chunk-IJCMB5B5.mjs";
32
35
  import {
33
36
  HueAnnotationId,
34
- IconAnnotationId
35
- } from "./chunk-SGTQ52SU.mjs";
37
+ IconAnnotationId,
38
+ TypeInputOptionsAnnotationId
39
+ } from "./chunk-E4BEMEZ3.mjs";
36
40
  import {
37
- SPACE_PLUGIN
38
- } from "./chunk-FBCGT5YY.mjs";
41
+ meta
42
+ } from "./chunk-VZBIIYFM.mjs";
39
43
 
40
44
  // src/capabilities/react-surface.tsx
41
- import React, { useCallback, useMemo } from "react";
42
- import { Capabilities, contributes, createSurface, Surface, useCapabilities, useCapability, useLayout } from "@dxos/app-framework";
43
- import { Obj, Type } from "@dxos/echo";
45
+ import * as Option from "effect/Option";
46
+ import React, { useCallback } from "react";
47
+ import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
48
+ import { Surface, useCapability, useLayout } from "@dxos/app-framework/react";
49
+ import { Obj } from "@dxos/echo";
44
50
  import { findAnnotation } from "@dxos/effect";
45
51
  import { SettingsStore } from "@dxos/local-storage";
46
- import { ClientCapabilities } from "@dxos/plugin-client";
47
- import { useClient } from "@dxos/react-client";
48
- import { fullyQualifiedId, getSpace, isLiveObject, isSpace, parseId, SpaceState, useSpace } from "@dxos/react-client/echo";
49
- import { Input, useTranslation } from "@dxos/react-ui";
50
- import { SelectInput } from "@dxos/react-ui-form";
52
+ import { SpaceState, getSpace, isLiveObject, isSpace, parseId, useSpace } from "@dxos/react-client/echo";
53
+ import { Input } from "@dxos/react-ui";
54
+ import { SelectField } from "@dxos/react-ui-form";
51
55
  import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
52
- import { DataType, TypenameAnnotationId } from "@dxos/schema";
53
- var OMIT = [
54
- DataType.Collection.typename,
55
- DataType.QueryCollection.typename
56
- ];
57
- var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilities.ReactSurface, [
56
+ import { Collection, ViewAnnotation } from "@dxos/schema";
57
+ var react_surface_default = (({ createInvitationUrl }) => contributes(Capabilities.ReactSurface, [
58
58
  createSurface({
59
- id: `${SPACE_PLUGIN}/article`,
59
+ id: `${meta.id}/article`,
60
60
  role: "article",
61
61
  filter: (data) => (
62
62
  // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.
@@ -65,43 +65,53 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
65
65
  component: ({ data, role, ...rest }) => /* @__PURE__ */ React.createElement(Surface, {
66
66
  data: {
67
67
  id: data.subject.id,
68
- subject: data.subject.properties[DataType.Collection.typename]?.target
68
+ subject: data.subject.properties[Collection.Collection.typename]?.target
69
69
  },
70
70
  role,
71
71
  ...rest
72
72
  })
73
73
  }),
74
74
  createSurface({
75
- id: `${SPACE_PLUGIN}/collection-fallback`,
75
+ id: `${meta.id}/record-article`,
76
+ role: "article",
77
+ position: "fallback",
78
+ filter: (data) => Obj.isObject(data.subject),
79
+ component: ({ data }) => /* @__PURE__ */ React.createElement(RecordArticle, {
80
+ subject: data.subject
81
+ })
82
+ }),
83
+ createSurface({
84
+ id: `${meta.id}/collection-fallback`,
76
85
  role: "article",
77
86
  position: "fallback",
78
- filter: (data) => Obj.instanceOf(DataType.Collection, data.subject),
79
- component: ({ data }) => /* @__PURE__ */ React.createElement(CollectionMain, {
80
- collection: data.subject
87
+ filter: (data) => Obj.instanceOf(Collection.Collection, data.subject),
88
+ component: ({ data }) => /* @__PURE__ */ React.createElement(CollectionArticle, {
89
+ subject: data.subject
81
90
  })
82
91
  }),
83
92
  createSurface({
84
- id: `${SPACE_PLUGIN}/plugin-settings`,
93
+ id: `${meta.id}/plugin-settings`,
85
94
  role: "article",
86
- filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === SPACE_PLUGIN,
95
+ filter: (data) => data.subject instanceof SettingsStore && data.subject.prefix === meta.id,
87
96
  component: ({ data: { subject } }) => /* @__PURE__ */ React.createElement(SpacePluginSettings, {
88
97
  settings: subject.value
89
98
  })
90
99
  }),
91
100
  createSurface({
92
- id: `${SPACE_PLUGIN}/companion/object-settings`,
101
+ id: `${meta.id}/companion/object-settings`,
93
102
  role: "article",
94
103
  filter: (data) => Obj.isObject(data.companionTo) && data.subject === "settings",
95
- component: ({ data, role }) => /* @__PURE__ */ React.createElement(ObjectSettingsContainer, {
104
+ component: ({ ref, data, role }) => /* @__PURE__ */ React.createElement(ObjectDetails, {
96
105
  object: data.companionTo,
97
- role
106
+ role,
107
+ ref
98
108
  })
99
109
  }),
100
110
  createSurface({
101
- id: `${SPACE_PLUGIN}/space-settings-properties`,
111
+ id: `${meta.id}/space-settings-properties`,
102
112
  role: "article",
103
- filter: (data) => data.subject === `${SPACE_PLUGIN}/properties`,
104
- component: () => {
113
+ filter: (data) => data.subject === `${meta.id}/properties`,
114
+ component: ({ ref }) => {
105
115
  const layout = useLayout();
106
116
  const { spaceId } = parseId(layout.workspace);
107
117
  const space = useSpace(spaceId);
@@ -109,15 +119,16 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
109
119
  return null;
110
120
  }
111
121
  return /* @__PURE__ */ React.createElement(SpaceSettingsContainer, {
112
- space
122
+ space,
123
+ ref
113
124
  });
114
125
  }
115
126
  }),
116
127
  createSurface({
117
- id: `${SPACE_PLUGIN}/space-settings-members`,
128
+ id: `${meta.id}/space-settings-members`,
118
129
  role: "article",
119
130
  position: "hoist",
120
- filter: (data) => data.subject === `${SPACE_PLUGIN}/members`,
131
+ filter: (data) => data.subject === `${meta.id}/members`,
121
132
  component: () => {
122
133
  const layout = useLayout();
123
134
  const { spaceId } = parseId(layout.workspace);
@@ -132,9 +143,9 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
132
143
  }
133
144
  }),
134
145
  createSurface({
135
- id: `${SPACE_PLUGIN}/space-settings-schema`,
146
+ id: `${meta.id}/space-settings-schema`,
136
147
  role: "article",
137
- filter: (data) => data.subject === `${SPACE_PLUGIN}/schema`,
148
+ filter: (data) => data.subject === `${meta.id}/schema`,
138
149
  component: () => {
139
150
  const layout = useLayout();
140
151
  const { spaceId } = parseId(layout.workspace);
@@ -148,13 +159,20 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
148
159
  }
149
160
  }),
150
161
  createSurface({
151
- id: `${SPACE_PLUGIN}/selected-objects`,
162
+ id: `${meta.id}/selected-objects`,
152
163
  role: "article",
153
- filter: (data) => Obj.instanceOf(DataType.View, data.companionTo) && data.subject === "selected-objects",
154
- component: ({ data }) => /* @__PURE__ */ React.createElement(ObjectDetailsPanel, {
155
- key: fullyQualifiedId(data.companionTo),
156
- objectId: fullyQualifiedId(data.companionTo),
157
- view: data.companionTo
164
+ filter: (data) => {
165
+ if (data.subject !== "selected-objects" || !Obj.isObject(data.companionTo)) {
166
+ return false;
167
+ }
168
+ const schema = Obj.getSchema(data.companionTo);
169
+ return Option.fromNullable(schema).pipe(Option.flatMap((schema2) => ViewAnnotation.get(schema2)), Option.getOrElse(() => false));
170
+ },
171
+ component: ({ data, ref }) => /* @__PURE__ */ React.createElement(ObjectCardStack, {
172
+ key: Obj.getDXN(data.companionTo).toString(),
173
+ objectId: Obj.getDXN(data.companionTo).toString(),
174
+ view: data.companionTo.view.target,
175
+ ref
158
176
  })
159
177
  }),
160
178
  createSurface({
@@ -176,14 +194,14 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
176
194
  component: ({ data }) => /* @__PURE__ */ React.createElement(CreateObjectDialog, data.props)
177
195
  }),
178
196
  createSurface({
179
- id: `${SPACE_PLUGIN}/create-initial-space-form-[hue]`,
197
+ id: `${meta.id}/create-initial-space-form-[hue]`,
180
198
  role: "form-input",
181
199
  filter: (data) => {
182
200
  const annotation = findAnnotation(data.schema.ast, HueAnnotationId);
183
201
  return !!annotation;
184
202
  },
185
203
  component: ({ data: _, ...inputProps }) => {
186
- const { label, disabled, type, getValue, onValueChange } = inputProps;
204
+ const { label, readonly, type, getValue, onValueChange } = inputProps;
187
205
  const handleChange = useCallback((nextHue) => onValueChange(type, nextHue), [
188
206
  onValueChange
189
207
  ]);
@@ -191,7 +209,7 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
191
209
  onValueChange
192
210
  ]);
193
211
  return /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Label, null, label), /* @__PURE__ */ React.createElement(HuePicker, {
194
- disabled,
212
+ disabled: !!readonly,
195
213
  value: getValue() ?? "",
196
214
  onChange: handleChange,
197
215
  onReset: handleReset
@@ -199,14 +217,14 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
199
217
  }
200
218
  }),
201
219
  createSurface({
202
- id: `${SPACE_PLUGIN}/create-initial-space-form-[icon]`,
220
+ id: `${meta.id}/create-initial-space-form-[icon]`,
203
221
  role: "form-input",
204
222
  filter: (data) => {
205
223
  const annotation = findAnnotation(data.schema.ast, IconAnnotationId);
206
224
  return !!annotation;
207
225
  },
208
226
  component: ({ data: _, ...inputProps }) => {
209
- const { label, disabled, type, getValue, onValueChange } = inputProps;
227
+ const { label, readonly, type, getValue, onValueChange } = inputProps;
210
228
  const handleChange = useCallback((nextIcon) => onValueChange(type, nextIcon), [
211
229
  onValueChange
212
230
  ]);
@@ -214,7 +232,7 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
214
232
  onValueChange
215
233
  ]);
216
234
  return /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Label, null, label), /* @__PURE__ */ React.createElement(IconPicker, {
217
- disabled,
235
+ disabled: !!readonly,
218
236
  value: getValue() ?? "",
219
237
  onChange: handleChange,
220
238
  onReset: handleReset
@@ -222,85 +240,67 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
222
240
  }
223
241
  }),
224
242
  createSurface({
225
- id: `${SPACE_PLUGIN}/typename-form-input`,
243
+ id: `${meta.id}/typename-form-input`,
226
244
  role: "form-input",
227
245
  filter: (data) => {
228
246
  if (data.prop !== "typename") {
229
247
  return false;
230
248
  }
231
- const annotation = findAnnotation(data.schema.ast, TypenameAnnotationId);
249
+ const annotation = findAnnotation(data.schema.ast, TypeInputOptionsAnnotationId);
232
250
  return !!annotation;
233
251
  },
234
252
  component: ({ data: { schema, target }, ...inputProps }) => {
235
- const { t } = useTranslation();
236
- const client = useClient();
237
253
  const props = inputProps;
238
254
  const space = isSpace(target) ? target : getSpace(target);
239
- if (!space) {
240
- return null;
241
- }
242
- const annotation = findAnnotation(schema.ast, TypenameAnnotationId);
243
- const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);
244
- const whitelistedTypenames = useMemo(() => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => Type.getTypename(type)))), [
245
- schemaWhitelists
246
- ]);
247
- const objectForms = useCapabilities(SpaceCapabilities.ObjectForm);
248
- const objectFormTypenames = useMemo(() => new Set(objectForms.map((form) => Type.getTypename(form.objectSchema)).filter((typename) => !OMIT.includes(typename) && !typename.endsWith("View"))), [
249
- objectForms
250
- ]);
251
- const fixed = client.graph.schemaRegistry.schemas.filter((schema2) => {
252
- const limitedStatic = annotation.includes("limited-static") && whitelistedTypenames.has(Type.getTypename(schema2));
253
- const unusedStatic = annotation.includes("unused-static") && whitelistedTypenames.has(Type.getTypename(schema2)) && !space.properties.staticRecords?.includes(Type.getTypename(schema2));
254
- const objectForm = annotation.includes("object-form") && objectFormTypenames.has(Type.getTypename(schema2));
255
- return annotation.includes("static") || limitedStatic || unusedStatic || objectForm;
255
+ const annotation = findAnnotation(schema.ast, TypeInputOptionsAnnotationId);
256
+ const options = useTypeOptions({
257
+ space,
258
+ annotation
256
259
  });
257
- const dynamic = space?.db.schemaRegistry.query().runSync();
258
- const typenames = Array.from(/* @__PURE__ */ new Set([
259
- ...annotation.includes("limited-static") || annotation.includes("unused-static") || annotation.includes("static") || annotation.includes("object-form") ? fixed.map((schema2) => Type.getTypename(schema2)) : [],
260
- ...annotation.includes("dynamic") ? dynamic.map((schema2) => schema2.typename) : []
261
- ])).sort();
262
- const options = useMemo(() => typenames.map((typename) => ({
263
- value: typename,
264
- label: t("typename label", {
265
- ns: typename,
266
- defaultValue: typename
267
- })
268
- })).toSorted((a, b) => a.label.localeCompare(b.label)), [
269
- t,
270
- typenames
271
- ]);
272
- return /* @__PURE__ */ React.createElement(SelectInput, {
260
+ return /* @__PURE__ */ React.createElement(SelectField, {
273
261
  ...props,
274
262
  options
275
263
  });
276
264
  }
277
265
  }),
278
266
  createSurface({
279
- id: `${SPACE_PLUGIN}/object-settings`,
267
+ id: `${meta.id}/object-settings`,
280
268
  role: "object-settings",
281
- filter: (data) => Obj.instanceOf(DataType.View, data.subject),
282
- component: ({ data }) => /* @__PURE__ */ React.createElement(ViewEditor, {
283
- view: data.subject
284
- })
269
+ filter: (data) => {
270
+ if (!Obj.isObject(data.subject)) {
271
+ return false;
272
+ }
273
+ const schema = Obj.getSchema(data.subject);
274
+ return Option.fromNullable(schema).pipe(Option.flatMap((schema2) => ViewAnnotation.get(schema2)), Option.getOrElse(() => false));
275
+ },
276
+ component: ({ data }) => {
277
+ const view = data.subject.view.target;
278
+ if (!view) {
279
+ return null;
280
+ }
281
+ return /* @__PURE__ */ React.createElement(ViewEditor, {
282
+ view
283
+ });
284
+ }
285
285
  }),
286
286
  createSurface({
287
- id: POPOVER_RENAME_SPACE,
287
+ id: SPACE_RENAME_POPOVER,
288
288
  role: "card--popover",
289
- filter: (data) => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),
290
- component: ({ data }) => /* @__PURE__ */ React.createElement(PopoverRenameSpace, {
289
+ filter: (data) => data.component === SPACE_RENAME_POPOVER && isSpace(data.props),
290
+ component: ({ data }) => /* @__PURE__ */ React.createElement(SpaceRenamePopover, {
291
291
  space: data.props
292
292
  })
293
293
  }),
294
294
  createSurface({
295
- id: POPOVER_RENAME_OBJECT,
295
+ id: OBJECT_RENAME_POPOVER,
296
296
  role: "card--popover",
297
- filter: (data) => data.component === POPOVER_RENAME_OBJECT && isLiveObject(data.props),
298
- component: ({ data }) => /* @__PURE__ */ React.createElement(PopoverRenameObject, {
297
+ filter: (data) => data.component === OBJECT_RENAME_POPOVER && isLiveObject(data.props),
298
+ component: ({ data }) => /* @__PURE__ */ React.createElement(ObjectRenamePopover, {
299
299
  object: data.props
300
300
  })
301
301
  }),
302
302
  createSurface({
303
- id: `${SPACE_PLUGIN}/menu-footer`,
303
+ id: `${meta.id}/menu-footer`,
304
304
  role: "menu-footer",
305
305
  filter: (data) => Obj.isObject(data.subject),
306
306
  component: ({ data }) => /* @__PURE__ */ React.createElement(MenuFooter, {
@@ -308,7 +308,7 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
308
308
  })
309
309
  }),
310
310
  createSurface({
311
- id: `${SPACE_PLUGIN}/navtree-presence`,
311
+ id: `${meta.id}/navtree-presence`,
312
312
  role: "navtree-item-end",
313
313
  filter: (data) => typeof data.id === "string" && Obj.isObject(data.subject),
314
314
  component: ({ data }) => {
@@ -322,7 +322,7 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
322
322
  }),
323
323
  // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.
324
324
  createSurface({
325
- id: `${SPACE_PLUGIN}/navtree-presence-fallback`,
325
+ id: `${meta.id}/navtree-presence-fallback`,
326
326
  role: "navtree-item-end",
327
327
  position: "fallback",
328
328
  filter: (data) => typeof data.id === "string",
@@ -333,7 +333,7 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
333
333
  }),
334
334
  // TODO(wittjosiah): Broken?
335
335
  createSurface({
336
- id: `${SPACE_PLUGIN}/navtree-sync-status`,
336
+ id: `${meta.id}/navtree-sync-status`,
337
337
  role: "navtree-item-end",
338
338
  filter: (data) => isSpace(data.subject),
339
339
  component: ({ data }) => /* @__PURE__ */ React.createElement(InlineSyncStatus, {
@@ -342,33 +342,33 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
342
342
  })
343
343
  }),
344
344
  createSurface({
345
- id: `${SPACE_PLUGIN}/navbar-presence`,
345
+ id: `${meta.id}/navbar-presence`,
346
346
  role: "navbar-end",
347
347
  position: "hoist",
348
348
  filter: (data) => isSpace(data.subject) || Obj.isObject(data.subject),
349
349
  component: ({ data }) => {
350
350
  const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);
351
- const object = isSpace(data.subject) ? data.subject.state.get() === SpaceState.SPACE_READY ? space?.properties[DataType.Collection.typename]?.target : void 0 : data.subject;
351
+ const object = isSpace(data.subject) ? data.subject.state.get() === SpaceState.SPACE_READY ? space?.properties[Collection.Collection.typename]?.target : void 0 : data.subject;
352
352
  return object ? /* @__PURE__ */ React.createElement(SpacePresence, {
353
353
  object
354
354
  }) : null;
355
355
  }
356
356
  }),
357
357
  createSurface({
358
- id: `${SPACE_PLUGIN}/collection-section`,
358
+ id: `${meta.id}/collection-section`,
359
359
  role: "section",
360
- filter: (data) => Obj.instanceOf(DataType.Collection, data.subject),
360
+ filter: (data) => Obj.instanceOf(Collection.Collection, data.subject),
361
361
  component: ({ data }) => /* @__PURE__ */ React.createElement(CollectionSection, {
362
- collection: data.subject
362
+ subject: data.subject
363
363
  })
364
364
  }),
365
365
  createSurface({
366
- id: `${SPACE_PLUGIN}/status`,
366
+ id: `${meta.id}/status`,
367
367
  role: "status",
368
368
  component: () => /* @__PURE__ */ React.createElement(SyncStatus, null)
369
369
  })
370
- ]);
370
+ ]));
371
371
  export {
372
372
  react_surface_default as default
373
373
  };
374
- //# sourceMappingURL=react-surface-TPNLWJJH.mjs.map
374
+ //# sourceMappingURL=react-surface-MLN5BZ2G.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport React, { useCallback } from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { Surface, useCapability, useLayout } from '@dxos/app-framework/react';\nimport { Obj, type Ref } from '@dxos/echo';\nimport { findAnnotation } from '@dxos/effect';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { type Space, SpaceState, getSpace, isLiveObject, isSpace, parseId, useSpace } from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { type FormFieldComponentProps, SelectField } from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\nimport { Collection, type View, ViewAnnotation } from '@dxos/schema';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport {\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n CollectionArticle,\n CollectionSection,\n CreateObjectDialog,\n type CreateObjectDialogProps,\n CreateSpaceDialog,\n InlineSyncStatus,\n JOIN_DIALOG,\n JoinDialog,\n MembersContainer,\n MenuFooter,\n OBJECT_RENAME_POPOVER,\n ObjectCardStack,\n ObjectDetails,\n ObjectRenamePopover,\n RecordArticle,\n SPACE_RENAME_POPOVER,\n SchemaContainer,\n SmallPresenceLive,\n SpacePluginSettings,\n SpacePresence,\n SpaceRenamePopover,\n SpaceSettingsContainer,\n SyncStatus,\n ViewEditor,\n} from '../components';\nimport { useTypeOptions } from '../hooks';\nimport { meta } from '../meta';\nimport {\n HueAnnotationId,\n IconAnnotationId,\n type SpaceSettingsProps,\n type TypeInputOptions,\n TypeInputOptionsAnnotationId,\n} from '../types';\n\nimport { SpaceCapabilities } from './capabilities';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${meta.id}/article`,\n role: 'article',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data, role, ...rest }) => (\n <Surface\n data={{\n id: data.subject.id,\n subject: data.subject.properties[Collection.Collection.typename]?.target,\n }}\n role={role}\n {...rest}\n />\n ),\n }),\n createSurface({\n id: `${meta.id}/record-article`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: Obj.Any } => Obj.isObject(data.subject),\n component: ({ data }) => <RecordArticle subject={data.subject} />,\n }),\n createSurface({\n id: `${meta.id}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: Collection.Collection } => Obj.instanceOf(Collection.Collection, data.subject),\n component: ({ data }) => <CollectionArticle subject={data.subject} />,\n }),\n createSurface({\n id: `${meta.id}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<SpaceSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => <SpacePluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${meta.id}/companion/object-settings`,\n role: 'article',\n filter: (data): data is { companionTo: Obj.Any } => Obj.isObject(data.companionTo) && data.subject === 'settings',\n component: ({ ref, data, role }) => <ObjectDetails object={data.companionTo} role={role} ref={ref} />,\n }),\n createSurface({\n id: `${meta.id}/space-settings-properties`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}/properties`,\n component: ({ ref }) => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SpaceSettingsContainer space={space} ref={ref} />;\n },\n }),\n createSurface({\n id: `${meta.id}/space-settings-members`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}/members`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <MembersContainer space={space} createInvitationUrl={createInvitationUrl} />;\n },\n }),\n createSurface({\n id: `${meta.id}/space-settings-schema`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}/schema`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SchemaContainer space={space} />;\n },\n }),\n createSurface({\n id: `${meta.id}/selected-objects`,\n role: 'article',\n filter: (data): data is { companionTo: Obj.Obj<{ view: Ref.Ref<View.View> }>; subject: 'selected-objects' } => {\n if (data.subject !== 'selected-objects' || !Obj.isObject(data.companionTo)) {\n return false;\n }\n\n // TODO(burdon): Check companionTo.view.target is valid.\n const schema = Obj.getSchema(data.companionTo);\n return Option.fromNullable(schema).pipe(\n Option.flatMap((schema) => ViewAnnotation.get(schema)),\n Option.getOrElse(() => false),\n );\n },\n component: ({ data, ref }) => (\n <ObjectCardStack\n key={Obj.getDXN(data.companionTo).toString()}\n objectId={Obj.getDXN(data.companionTo).toString()}\n view={data.companionTo.view.target!}\n ref={ref}\n />\n ),\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n createSurface({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n createSurface({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: CreateObjectDialogProps } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => <CreateObjectDialog {...data.props} />,\n }),\n createSurface({\n id: `${meta.id}/create-initial-space-form-[hue]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, HueAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, readonly, type, getValue, onValueChange } = inputProps as any as FormFieldComponentProps;\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <HuePicker disabled={!!readonly} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\n }),\n createSurface({\n id: `${meta.id}/create-initial-space-form-[icon]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, IconAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, readonly, type, getValue, onValueChange } = inputProps as any as FormFieldComponentProps;\n const handleChange = useCallback((nextIcon: string) => onValueChange(type, nextIcon), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <IconPicker disabled={!!readonly} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\n }),\n createSurface({\n id: `${meta.id}/typename-form-input`,\n role: 'form-input',\n filter: (\n data,\n ): data is {\n prop: string;\n schema: Schema.Schema.Any;\n target: Space | Collection.Collection | undefined;\n } => {\n if (data.prop !== 'typename') {\n return false;\n }\n\n const annotation = findAnnotation((data.schema as Schema.Schema.All).ast, TypeInputOptionsAnnotationId);\n return !!annotation;\n },\n component: ({ data: { schema, target }, ...inputProps }) => {\n const props = inputProps as any as FormFieldComponentProps;\n const space = isSpace(target) ? target : getSpace(target);\n const annotation = findAnnotation<TypeInputOptions>(schema.ast, TypeInputOptionsAnnotationId)!;\n const options = useTypeOptions({ space, annotation });\n\n return <SelectField {...props} options={options} />;\n },\n }),\n createSurface({\n id: `${meta.id}/object-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: { view: Ref.Ref<View.View> } } => {\n if (!Obj.isObject(data.subject)) {\n return false;\n }\n\n const schema = Obj.getSchema(data.subject);\n return Option.fromNullable(schema).pipe(\n Option.flatMap((schema) => ViewAnnotation.get(schema)),\n Option.getOrElse(() => false),\n );\n },\n component: ({ data }) => {\n const view = data.subject.view.target;\n if (!view) {\n return null;\n }\n\n return <ViewEditor view={view} />;\n },\n }),\n createSurface({\n id: SPACE_RENAME_POPOVER,\n role: 'card--popover',\n filter: (data): data is { props: Space } => data.component === SPACE_RENAME_POPOVER && isSpace(data.props),\n component: ({ data }) => <SpaceRenamePopover space={data.props} />,\n }),\n createSurface({\n id: OBJECT_RENAME_POPOVER,\n role: 'card--popover',\n filter: (data): data is { props: Obj.Any } =>\n data.component === OBJECT_RENAME_POPOVER && isLiveObject(data.props),\n component: ({ data }) => <ObjectRenamePopover object={data.props} />,\n }),\n createSurface({\n id: `${meta.id}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: Obj.Any } => Obj.isObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n createSurface({\n id: `${meta.id}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: Obj.Any; open?: boolean } =>\n typeof data.id === 'string' && Obj.isObject(data.subject),\n component: ({ data }) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const state = useCapability(SpaceCapabilities.MutableState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={state.viewersByObject[data.id]} />;\n },\n }),\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n createSurface({\n id: `${meta.id}/navtree-presence-fallback`,\n role: 'navtree-item-end',\n position: 'fallback',\n filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',\n component: ({ data }) => <SmallPresenceLive id={data.id} open={data.open} />,\n }),\n // TODO(wittjosiah): Broken?\n createSurface({\n id: `${meta.id}/navtree-sync-status`,\n role: 'navtree-item-end',\n filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),\n component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,\n }),\n createSurface({\n id: `${meta.id}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | Obj.Any } => isSpace(data.subject) || Obj.isObject(data.subject),\n component: ({ data }) => {\n const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);\n const object = isSpace(data.subject)\n ? data.subject.state.get() === SpaceState.SPACE_READY\n ? (space?.properties[Collection.Collection.typename]?.target as Collection.Collection)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n createSurface({\n id: `${meta.id}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: Collection.Collection } => Obj.instanceOf(Collection.Collection, data.subject),\n component: ({ data }) => <CollectionSection subject={data.subject} />,\n }),\n createSurface({\n id: `${meta.id}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["Option", "React", "useCallback", "Capabilities", "contributes", "createSurface", "Surface", "useCapability", "useLayout", "Obj", "findAnnotation", "SettingsStore", "SpaceState", "getSpace", "isLiveObject", "isSpace", "parseId", "useSpace", "Input", "SelectField", "HuePicker", "IconPicker", "Collection", "ViewAnnotation", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "meta", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "Surface", "properties", "Collection", "typename", "target", "position", "Obj", "isObject", "RecordArticle", "instanceOf", "CollectionArticle", "SettingsStore", "prefix", "SpacePluginSettings", "settings", "value", "companionTo", "ref", "ObjectDetails", "object", "layout", "useLayout", "spaceId", "parseId", "workspace", "space", "useSpace", "SpaceSettingsContainer", "MembersContainer", "SchemaContainer", "schema", "getSchema", "fromNullable", "pipe", "flatMap", "ViewAnnotation", "getOrElse", "ObjectCardStack", "key", "getDXN", "toString", "objectId", "view", "JOIN_DIALOG", "JoinDialog", "props", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "annotation", "findAnnotation", "ast", "HueAnnotationId", "_", "inputProps", "label", "readonly", "type", "getValue", "onValueChange", "handleChange", "useCallback", "nextHue", "handleReset", "undefined", "Input", "Root", "Label", "HuePicker", "disabled", "onChange", "onReset", "IconAnnotationId", "nextIcon", "IconPicker", "prop", "TypeInputOptionsAnnotationId", "getSpace", "options", "useTypeOptions", "SelectField", "ViewEditor", "SPACE_RENAME_POPOVER", "SpaceRenamePopover", "OBJECT_RENAME_POPOVER", "isLiveObject", "ObjectRenamePopover", "MenuFooter", "useCapability", "SpaceCapabilities", "MutableState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "SpacePresence", "CollectionSection", "SyncStatus"]
7
+ }
@@ -0,0 +1,44 @@
1
+ import {
2
+ SpaceCapabilities
3
+ } from "./chunk-C6DAPIFF.mjs";
4
+ import "./chunk-VZBIIYFM.mjs";
5
+
6
+ // src/capabilities/repair.ts
7
+ import { contributes } from "@dxos/app-framework";
8
+ import { Obj, Ref, Type } from "@dxos/echo";
9
+ import { Collection } from "@dxos/schema";
10
+ var repair_default = (() => contributes(SpaceCapabilities.Repair, async ({ space }) => {
11
+ await removeQueryCollections(space);
12
+ await ensureSystemCollection(space);
13
+ }));
14
+ var removeQueryCollections = async (space) => {
15
+ const rootCollection = await space.properties[Collection.Collection.typename]?.load();
16
+ if (!rootCollection) {
17
+ return;
18
+ }
19
+ const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
20
+ const queryCollections = objects.filter((object) => Obj.getTypename(object) === "dxos.org/type/QueryCollection");
21
+ if (queryCollections.length === 0) {
22
+ return;
23
+ }
24
+ rootCollection.objects = objects.filter((object) => Obj.getTypename(object) !== "dxos.org/type/QueryCollection").map((object) => Ref.make(object));
25
+ queryCollections.forEach((object) => space.db.remove(object));
26
+ };
27
+ var ensureSystemCollection = async (space) => {
28
+ const rootCollection = await space.properties[Collection.Collection.typename]?.load();
29
+ if (!rootCollection) {
30
+ return;
31
+ }
32
+ const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
33
+ const records = objects.find((object) => Obj.instanceOf(Collection.Managed, object) && object.key === Type.getTypename(Type.PersistentType));
34
+ if (records) {
35
+ return;
36
+ }
37
+ rootCollection.objects.push(Ref.make(Collection.makeManaged({
38
+ key: Type.getTypename(Type.PersistentType)
39
+ })));
40
+ };
41
+ export {
42
+ repair_default as default
43
+ };
44
+ //# sourceMappingURL=repair-CNLE35NF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/repair.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes } from '@dxos/app-framework';\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { type Space } from '@dxos/react-client/echo';\nimport { Collection } from '@dxos/schema';\n\nimport { SpaceCapabilities } from './capabilities';\n\nexport default () =>\n contributes(SpaceCapabilities.Repair, async ({ space }) => {\n await removeQueryCollections(space);\n await ensureSystemCollection(space);\n });\n\n/**\n * Remove all existing query collections from the root collection.\n */\nconst removeQueryCollections = async (space: Space) => {\n const rootCollection: Collection.Collection = await space.properties[Collection.Collection.typename]?.load();\n if (!rootCollection) {\n return;\n }\n\n const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));\n const queryCollections = objects.filter((object) => Obj.getTypename(object) === 'dxos.org/type/QueryCollection');\n if (queryCollections.length === 0) {\n return;\n }\n\n rootCollection.objects = objects\n .filter((object) => Obj.getTypename(object) !== 'dxos.org/type/QueryCollection')\n .map((object) => Ref.make(object));\n queryCollections.forEach((object) => space.db.remove(object));\n};\n\n/**\n * Ensure the root collection has a system collection for StoredSchema.\n */\nconst ensureSystemCollection = async (space: Space) => {\n const rootCollection: Collection.Collection = await space.properties[Collection.Collection.typename]?.load();\n if (!rootCollection) {\n return;\n }\n\n const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));\n const records = objects.find(\n (object) => Obj.instanceOf(Collection.Managed, object) && object.key === Type.getTypename(Type.PersistentType),\n );\n if (records) {\n return;\n }\n\n rootCollection.objects.push(Ref.make(Collection.makeManaged({ key: Type.getTypename(Type.PersistentType) })));\n};\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,mBAAmB;AAC5B,SAASC,KAAKC,KAAKC,YAAY;AAE/B,SAASC,kBAAkB;AAI3B,IAAA,kBAAe,MACbC,YAAYC,kBAAkBC,QAAQ,OAAO,EAAEC,MAAK,MAAE;AACpD,QAAMC,uBAAuBD,KAAAA;AAC7B,QAAME,uBAAuBF,KAAAA;AAC/B,CAAA;AAKF,IAAMC,yBAAyB,OAAOD,UAAAA;AACpC,QAAMG,iBAAwC,MAAMH,MAAMI,WAAWC,WAAWA,WAAWC,QAAQ,GAAGC,KAAAA;AACtG,MAAI,CAACJ,gBAAgB;AACnB;EACF;AAEA,QAAMK,UAAU,MAAMC,QAAQC,IAAIP,eAAeK,QAAQG,IAAI,CAACC,QAAQA,IAAIL,KAAI,CAAA,CAAA;AAC9E,QAAMM,mBAAmBL,QAAQM,OAAO,CAACC,WAAWC,IAAIC,YAAYF,MAAAA,MAAY,+BAAA;AAChF,MAAIF,iBAAiBK,WAAW,GAAG;AACjC;EACF;AAEAf,iBAAeK,UAAUA,QACtBM,OAAO,CAACC,WAAWC,IAAIC,YAAYF,MAAAA,MAAY,+BAAA,EAC/CJ,IAAI,CAACI,WAAWI,IAAIC,KAAKL,MAAAA,CAAAA;AAC5BF,mBAAiBQ,QAAQ,CAACN,WAAWf,MAAMsB,GAAGC,OAAOR,MAAAA,CAAAA;AACvD;AAKA,IAAMb,yBAAyB,OAAOF,UAAAA;AACpC,QAAMG,iBAAwC,MAAMH,MAAMI,WAAWC,WAAWA,WAAWC,QAAQ,GAAGC,KAAAA;AACtG,MAAI,CAACJ,gBAAgB;AACnB;EACF;AAEA,QAAMK,UAAU,MAAMC,QAAQC,IAAIP,eAAeK,QAAQG,IAAI,CAACC,QAAQA,IAAIL,KAAI,CAAA,CAAA;AAC9E,QAAMiB,UAAUhB,QAAQiB,KACtB,CAACV,WAAWC,IAAIU,WAAWrB,WAAWsB,SAASZ,MAAAA,KAAWA,OAAOa,QAAQC,KAAKZ,YAAYY,KAAKC,cAAc,CAAA;AAE/G,MAAIN,SAAS;AACX;EACF;AAEArB,iBAAeK,QAAQuB,KAAKZ,IAAIC,KAAKf,WAAW2B,YAAY;IAAEJ,KAAKC,KAAKZ,YAAYY,KAAKC,cAAc;EAAE,CAAA,CAAA,CAAA;AAC3G;",
6
+ "names": ["contributes", "Obj", "Ref", "Type", "Collection", "contributes", "SpaceCapabilities", "Repair", "space", "removeQueryCollections", "ensureSystemCollection", "rootCollection", "properties", "Collection", "typename", "load", "objects", "Promise", "all", "map", "ref", "queryCollections", "filter", "object", "Obj", "getTypename", "length", "Ref", "make", "forEach", "db", "remove", "records", "find", "instanceOf", "Managed", "key", "Type", "PersistentType", "push", "makeManaged"]
7
+ }
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  SpaceSettingsSchema
3
- } from "./chunk-SGTQ52SU.mjs";
3
+ } from "./chunk-E4BEMEZ3.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-FBCGT5YY.mjs";
6
+ } from "./chunk-VZBIIYFM.mjs";
7
7
 
8
8
  // src/capabilities/settings.ts
9
9
  import { Capabilities, contributes } from "@dxos/app-framework";
10
10
  import { live } from "@dxos/live-object";
11
- var settings_default = () => {
11
+ var settings_default = (() => {
12
12
  const settings = live({
13
13
  showHidden: false
14
14
  });
@@ -17,8 +17,8 @@ var settings_default = () => {
17
17
  schema: SpaceSettingsSchema,
18
18
  value: settings
19
19
  });
20
- };
20
+ });
21
21
  export {
22
22
  settings_default as default
23
23
  };
24
- //# sourceMappingURL=settings-4IMP5RYT.mjs.map
24
+ //# sourceMappingURL=settings-EGTCHS7U.mjs.map