@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,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/AwaitingObject.tsx", "../../../src/components/CreateDialog/CreateObjectDialog.tsx", "../../../src/components/CreateDialog/CreateObjectPanel.tsx", "../../../src/components/CreateDialog/CreateSpaceDialog.tsx", "../../../src/components/CollectionSection.tsx", "../../../src/components/JoinDialog/JoinDialog.tsx", "../../../src/components/MembersContainer/MembersContainer.tsx", "../../../src/components/MenuFooter.tsx", "../../../src/components/ObjectRenamePopover/ObjectRenamePopover.tsx", "../../../src/components/SchemaContainer.tsx", "../../../src/components/SpacePluginSettings.tsx", "../../../src/components/SpacePresence/SpacePresence.tsx", "../../../src/capabilities/index.ts", "../../../src/components/SpaceRenamePopover/SpaceRenamePopover.tsx", "../../../src/components/SpaceSettings/SpaceSettingsContainer.tsx", "../../../src/components/SyncStatus/InlineSyncStatus.tsx", "../../../src/components/SyncStatus/SyncStatus.tsx", "../../../src/components/SyncStatus/save-tracker.ts", "../../../src/components/SyncStatus/status.ts", "../../../src/helpers/query.ts", "../../../src/components/ViewEditor.tsx", "../../../src/components/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { LayoutAction, createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher, useLayout } from '@dxos/app-framework/react';\nimport { Obj } from '@dxos/echo';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, useQuery } from '@dxos/react-client/echo';\nimport { Button, Icon, Toast, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../meta';\nimport { SpaceAction } from '../types';\n\nconst WAIT_FOR_OBJECT_TIMEOUT = 3 * 60 * 1_000;\nconst TOAST_TIMEOUT = 4 * 60 * 1_000;\n\nexport const AwaitingObject = ({ id }: { id: string }) => {\n const { t } = useTranslation(meta.id);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const [open, setOpen] = useState(true);\n const [waiting, setWaiting] = useState(true);\n const [found, setFound] = useState(false);\n const layout = useLayout();\n\n const client = useClient();\n const objects = useQuery(client.spaces, Filter.everything());\n\n useEffect(() => {\n if (!id) {\n return;\n }\n\n const timeout = setTimeout(() => setWaiting(false), WAIT_FOR_OBJECT_TIMEOUT);\n return () => clearTimeout(timeout);\n }, [id]);\n\n useEffect(() => {\n if (objects.findIndex((object) => Obj.getDXN(object).toString() === id) > -1) {\n setFound(true);\n if (layout.active.includes(id)) {\n setOpen(false);\n }\n }\n }, [id, objects, layout]);\n\n const handleClose = useCallback(\n async () => dispatch(createIntent(SpaceAction.WaitForObject, { id: undefined })),\n [dispatch],\n );\n\n const handleNavigate = useCallback(() => {\n void dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [id] }));\n void handleClose();\n }, [id, handleClose, dispatch]);\n\n return (\n <Toast.Root open={open} duration={TOAST_TIMEOUT} onOpenChange={setOpen}>\n <Toast.Body>\n <Toast.Title classNames='flex items-center gap-2'>\n {found ? (\n <>\n <Icon icon='ph--check-circle--regular' size={5} />\n <span>{t('found object label')}</span>\n </>\n ) : waiting ? (\n <>\n <Icon icon='ph--circle-notch--regular' size={5} classNames='animate-spin' />\n <span>{t('waiting for object label')}</span>\n </>\n ) : (\n <>\n <Icon icon='ph--circle-dashed--regular' size={5} />\n <span>{t('object not found label')}</span>\n </>\n )}\n </Toast.Title>\n <Toast.Description>\n {t(\n found\n ? 'found object description'\n : waiting\n ? 'waiting for object description'\n : 'object not found description',\n )}\n </Toast.Description>\n </Toast.Body>\n <Toast.Actions>\n {found ? (\n <>\n <Toast.Action altText={t('go to object alt')} asChild>\n <Button variant='primary' onClick={handleNavigate}>\n {t('go to object label')}\n </Button>\n </Toast.Action>\n <Toast.Close asChild>\n <Button onClick={handleClose}>{t('close label', { ns: 'appkit' })}</Button>\n </Toast.Close>\n </>\n ) : (\n <Toast.Close asChild>\n <Button onClick={handleClose}>{t(waiting ? 'close label' : 'confirm label', { ns: 'appkit' })}</Button>\n </Toast.Close>\n )}\n </Toast.Actions>\n </Toast.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Capabilities, LayoutAction, chain, createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher, usePluginManager } from '@dxos/app-framework/react';\nimport { Obj, Type } from '@dxos/echo';\nimport { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { type Space, getSpace, isLiveObject, isSpace, useSpaces } from '@dxos/react-client/echo';\nimport { Dialog, IconButton, useTranslation } from '@dxos/react-ui';\nimport { cardDialogContent, cardDialogHeader } from '@dxos/react-ui-stack';\nimport { type Collection } from '@dxos/schema';\n\nimport { meta } from '../../meta';\nimport { SpaceAction } from '../../types';\n\nimport { CreateObjectPanel, type CreateObjectPanelProps, type Metadata } from './CreateObjectPanel';\n\nexport const CREATE_OBJECT_DIALOG = `${meta.id}/CreateObjectDialog`;\n\nexport type CreateObjectDialogProps = Pick<\n CreateObjectPanelProps,\n 'target' | 'views' | 'typename' | 'initialFormValues'\n> & {\n onCreateObject?: (object: Obj.Any) => void;\n shouldNavigate?: (object: Obj.Any) => boolean;\n};\n\nexport const CreateObjectDialog = ({\n target: initialTarget,\n typename: initialTypename,\n views,\n initialFormValues,\n onCreateObject,\n shouldNavigate: _shouldNavigate,\n}: CreateObjectDialogProps) => {\n const manager = usePluginManager();\n const { t } = useTranslation(meta.id);\n const { dispatch } = useIntentDispatcher();\n const [target, setTarget] = useState<Space | Collection.Collection | undefined>(initialTarget);\n const [typename, setTypename] = useState<string | undefined>(initialTypename);\n const client = useClient();\n const spaces = useSpaces();\n const closeRef = useRef<HTMLButtonElement | null>(null);\n\n const resolve = useCallback<NonNullable<CreateObjectPanelProps['resolve']>>(\n (typename) => {\n const metadata = manager.context\n .getCapabilities(Capabilities.Metadata)\n .find(({ id }) => id === typename)?.metadata;\n return metadata?.createObjectIntent ? (metadata as Metadata) : undefined;\n },\n [manager],\n );\n\n const space = isSpace(target) ? target : getSpace(target);\n // TODO(wittjosiah): Support database schemas.\n const schemas = space?.db.schemaRegistry.query({ location: ['runtime'] }).runSync();\n const userSchemas = useMemo(\n () =>\n schemas\n ?.filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation)\n .filter((schema) => !!resolve(Type.getTypename(schema)))\n .filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false))) ?? [],\n [schemas],\n );\n\n const handleCreateObject = useCallback<NonNullable<CreateObjectPanelProps['onCreateObject']>>(\n ({ metadata, data = {} }) =>\n Effect.gen(function* () {\n if (!target) {\n // TODO(wittjosiah): UI feedback.\n return;\n }\n\n // NOTE: Must close before navigating or attention won't follow object.\n closeRef.current?.click();\n\n const space = isSpace(target) ? target : getSpace(target);\n invariant(space, 'Missing space');\n const { object } = yield* dispatch(metadata.createObjectIntent(data, { space }));\n if (isLiveObject(object) && !Obj.instanceOf(Type.PersistentType, object)) {\n // TODO(wittjosiah): Selection in navtree isn't working as expected when hidden typenames evals to true.\n const hidden = !metadata.addToCollectionOnCreate;\n const addObjectIntent = createIntent(SpaceAction.AddObject, {\n target,\n object,\n hidden,\n });\n const shouldNavigate = _shouldNavigate ?? (() => true);\n if (shouldNavigate(object)) {\n yield* dispatch(Function.pipe(addObjectIntent, chain(LayoutAction.Open, { part: 'main' })));\n } else {\n yield* dispatch(addObjectIntent);\n }\n\n onCreateObject?.(object);\n }\n }).pipe(Effect.runPromise),\n [dispatch, target, resolve, _shouldNavigate],\n );\n\n return (\n // TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.\n // Consider factoring it out to the tabs package.\n <Dialog.Content classNames={cardDialogContent}>\n <div role='none' className={cardDialogHeader}>\n <Dialog.Title>\n {t('create object dialog title', {\n object: t('typename label', {\n ns: typename,\n defaultValue: views ? 'View' : 'Object',\n }),\n })}\n </Dialog.Title>\n <Dialog.Close asChild>\n <IconButton\n ref={closeRef}\n icon='ph--x--regular'\n size={4}\n label='Close'\n iconOnly\n density='fine'\n variant='ghost'\n autoFocus\n />\n </Dialog.Close>\n </div>\n\n <CreateObjectPanel\n schemas={userSchemas}\n spaces={spaces}\n target={target}\n views={views}\n typename={typename}\n initialFormValues={initialFormValues}\n defaultSpaceId={client.spaces.default.id}\n resolve={resolve}\n onTargetChange={setTarget}\n onTypenameChange={setTypename}\n onCreateObject={handleCreateObject}\n />\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport React, { useCallback } from 'react';\n\nimport { type AnyProperties, type TypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';\nimport { type Space, type SpaceId } from '@dxos/react-client/echo';\nimport { Icon, toLocalizedString, useDefaultValue, useTranslation } from '@dxos/react-ui';\nimport { Form, omitId } from '@dxos/react-ui-form';\nimport { SearchList } from '@dxos/react-ui-searchlist';\nimport { cardDialogOverflow, cardDialogPaddedOverflow, cardDialogSearchListRoot } from '@dxos/react-ui-stack';\nimport { type Collection, ViewAnnotation } from '@dxos/schema';\nimport { type MaybePromise, isNonNullable } from '@dxos/util';\n\nimport { useInputSurfaceLookup } from '../../hooks';\nimport { meta } from '../../meta';\nimport { type CreateObjectIntent } from '../../types';\nimport { getSpaceDisplayName } from '../../util';\n\nexport type Metadata = {\n createObjectIntent: CreateObjectIntent;\n inputSchema?: Schema.Schema.AnyNoContext;\n addToCollectionOnCreate?: boolean;\n icon?: string;\n};\n\nexport type CreateObjectPanelProps = {\n schemas: Schema.Schema.AnyNoContext[];\n spaces: Space[];\n typename?: string;\n target?: Space | Collection.Collection;\n views?: boolean;\n initialFormValues?: Partial<AnyProperties>;\n defaultSpaceId?: SpaceId;\n resolve?: (typename: string) => Metadata | undefined;\n onTargetChange?: (target: Space) => void;\n onTypenameChange?: (typename: string) => void;\n onCreateObject?: (params: { metadata: Metadata; data?: Record<string, any> }) => MaybePromise<void>;\n};\n\nexport const CreateObjectPanel = ({\n schemas,\n spaces,\n typename,\n target,\n views,\n initialFormValues: _initialFormValues,\n defaultSpaceId,\n resolve,\n onTargetChange,\n onTypenameChange,\n onCreateObject,\n}: CreateObjectPanelProps) => {\n const { t } = useTranslation(meta.id);\n const initialFormValues = useDefaultValue(_initialFormValues, () => ({}));\n const metadata = typename && resolve?.(typename);\n const options: TypeAnnotation[] = schemas\n .filter((schema) => {\n if (views == null) {\n return true;\n } else {\n return views === ViewAnnotation.get(schema).pipe(Option.getOrElse(() => false));\n }\n })\n .map((schema) => getTypeAnnotation(schema))\n .filter(isNonNullable)\n .sort((a, b) => {\n const nameA = t('typename label', { ns: a.typename, defaultValue: a.typename });\n const nameB = t('typename label', { ns: b.typename, defaultValue: b.typename });\n return nameA.localeCompare(nameB);\n });\n\n const handleCreateObject = useCallback(\n async (props: Record<string, any>) => {\n if (!metadata) {\n return;\n }\n await onCreateObject?.({ metadata, data: props });\n },\n [onCreateObject, metadata],\n );\n\n const handleSetTypename = useCallback(\n async (typename: string) => {\n const metadata = resolve?.(typename);\n if (metadata && !metadata.inputSchema) {\n await onCreateObject?.({ metadata });\n } else {\n onTypenameChange?.(typename);\n }\n },\n [resolve, onCreateObject],\n );\n\n const inputSurfaceLookup = useInputSurfaceLookup({ target });\n\n // TODO(wittjosiah): These inputs should be rolled into a `Form` once it supports the necessary variants.\n return !metadata ? (\n <SelectSchema options={options} resolve={resolve} onChange={handleSetTypename} />\n ) : !target ? (\n <SelectSpace spaces={spaces} defaultSpaceId={defaultSpaceId} onChange={onTargetChange} />\n ) : metadata.inputSchema ? (\n <Form.Root\n testId='create-object-form'\n autoFocus\n schema={omitId(metadata.inputSchema)}\n values={initialFormValues}\n fieldProvider={inputSurfaceLookup}\n onSave={handleCreateObject}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n <Form.Submit />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n ) : null;\n};\n\nconst SelectSpace = ({\n spaces,\n defaultSpaceId,\n onChange,\n}: { onChange?: (space: Space) => void } & Pick<CreateObjectPanelProps, 'spaces' | 'defaultSpaceId'>) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <SearchList.Root label={t('space input label')} classNames={cardDialogSearchListRoot}>\n <SearchList.Input\n autoFocus\n data-testid='create-object-form.space-input'\n placeholder={t('space input placeholder')}\n />\n <SearchList.Content classNames={[cardDialogOverflow, 'plb-cardSpacingBlock']}>\n {spaces\n .sort((a, b) => {\n const aName = toLocalizedString(getSpaceDisplayName(a, { personal: a.id === defaultSpaceId }), t);\n const bName = toLocalizedString(getSpaceDisplayName(b, { personal: b.id === defaultSpaceId }), t);\n return aName.localeCompare(bName);\n })\n .map((space) => (\n <SearchList.Item\n key={space.id}\n value={toLocalizedString(getSpaceDisplayName(space, { personal: space.id === defaultSpaceId }), t)}\n onSelect={() => onChange?.(space)}\n classNames='flex items-center gap-2'\n >\n <span className='grow truncate'>\n {toLocalizedString(getSpaceDisplayName(space, { personal: space.id === defaultSpaceId }), t)}\n </span>\n </SearchList.Item>\n ))}\n </SearchList.Content>\n </SearchList.Root>\n );\n};\n\nconst SelectSchema = ({\n options,\n resolve,\n onChange,\n}: {\n options: TypeAnnotation[];\n onChange: (type: string) => void;\n} & Pick<CreateObjectPanelProps, 'resolve'>) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <SearchList.Root label={t('schema input label')} classNames={cardDialogSearchListRoot}>\n <SearchList.Input\n autoFocus\n data-testid='create-object-form.schema-input'\n placeholder={t('schema input placeholder')}\n />\n <SearchList.Content classNames={cardDialogPaddedOverflow}>\n {options.map((option) => (\n <SearchList.Item\n key={option.typename}\n value={t('typename label', { ns: option.typename, defaultValue: option.typename })}\n onSelect={() => onChange(option.typename)}\n classNames='flex items-center gap-2'\n >\n <span className='flex gap-2 items-center grow truncate'>\n <Icon icon={resolve?.(option.typename)?.icon ?? 'ph--placeholder--regular'} size={5} />\n {t('typename label', { ns: option.typename, defaultValue: option.typename })}\n </span>\n </SearchList.Item>\n ))}\n </SearchList.Content>\n </SearchList.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport type * as Schema from 'effect/Schema';\nimport React, { useCallback, useRef } from 'react';\n\nimport { LayoutAction, createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { Dialog, IconButton, useTranslation } from '@dxos/react-ui';\nimport { Form } from '@dxos/react-ui-form';\nimport { cardDialogContent, cardDialogHeader } from '@dxos/react-ui-stack';\n\nimport { useInputSurfaceLookup } from '../../hooks';\nimport { meta } from '../../meta';\nimport { SpaceAction, SpaceForm } from '../../types';\n\nexport const CREATE_SPACE_DIALOG = `${meta.id}/CreateSpaceDialog`;\n\ntype FormValues = Schema.Schema.Type<typeof SpaceForm>;\nconst initialValues: FormValues = { edgeReplication: true };\n\nexport const CreateSpaceDialog = () => {\n const closeRef = useRef<HTMLButtonElement | null>(null);\n const { t } = useTranslation(meta.id);\n const { dispatch } = useIntentDispatcher();\n\n const inputSurfaceLookup = useInputSurfaceLookup();\n\n const handleCreateSpace = useCallback(\n async (data: FormValues) => {\n const program = Effect.gen(function* () {\n const { space } = yield* dispatch(createIntent(SpaceAction.Create, data));\n yield* dispatch(\n createIntent(LayoutAction.SwitchWorkspace, {\n part: 'workspace',\n subject: space.id,\n }),\n );\n yield* dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n options: { state: false },\n }),\n );\n });\n await Effect.runPromise(program);\n },\n [dispatch],\n );\n\n return (\n // TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.\n // Consider factoring it out to the tabs package.\n <Dialog.Content classNames={cardDialogContent}>\n <div role='none' className={cardDialogHeader}>\n <Dialog.Title>{t('create space dialog title')}</Dialog.Title>\n <Dialog.Close asChild>\n <IconButton\n ref={closeRef}\n icon='ph--x--regular'\n size={4}\n label='Close'\n iconOnly\n density='fine'\n variant='ghost'\n autoFocus\n />\n </Dialog.Close>\n </div>\n <Form.Root\n testId='create-space-form'\n autoFocus\n schema={SpaceForm}\n values={initialValues}\n fieldProvider={inputSurfaceLookup}\n onSave={handleCreateSpace}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n <Form.Submit />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-framework/react';\nimport { useTranslation } from '@dxos/react-ui';\nimport { type Collection } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\nexport const CollectionSection = ({ role, subject }: SurfaceComponentProps<Collection.Collection>) => {\n const { t } = useTranslation(meta.id);\n\n // TODO(wittjosiah): Better placeholder.\n return (\n <div role={role} className='min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center'>\n <span className='truncate'>{subject.name ?? t('unnamed collection label')}</span>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, createIntent } from '@dxos/app-framework';\nimport { useAppGraph, useIntentDispatcher } from '@dxos/app-framework/react';\nimport { Trigger } from '@dxos/async';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { type InvitationResult } from '@dxos/react-client/invitations';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { JoinPanel, type JoinPanelProps } from '@dxos/shell/react';\n\nimport { meta } from '../../meta';\n\nexport const JOIN_DIALOG = `${meta.id}/JoinDialog`;\n\nexport type JoinDialogProps = JoinPanelProps & {\n navigableCollections?: boolean;\n};\n\nexport const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialogProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const { graph } = useAppGraph();\n const { t } = useTranslation(meta.id);\n\n const handleDone = useCallback(\n async (result: InvitationResult | null) => {\n const spaceKey = result?.spaceKey;\n if (!spaceKey) {\n return;\n }\n\n await Promise.all([\n dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${meta.id}/join-success`,\n duration: 5_000,\n title: ['join success label', { ns: meta.id }],\n closeLabel: ['dismiss label', { ns: meta.id }],\n },\n }),\n ),\n dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n options: {\n state: false,\n },\n }),\n ),\n ]);\n\n let space = client.spaces.get(spaceKey);\n if (!space) {\n // TODO(wittjosiah): Add api to wait for a space.\n const trigger = new Trigger<Space>();\n client.spaces.subscribe(() => {\n const space = client.spaces.get(spaceKey);\n if (space) {\n trigger.wake(space);\n }\n });\n space = await trigger.wait();\n }\n\n await dispatch(\n createIntent(LayoutAction.SwitchWorkspace, {\n part: 'workspace',\n subject: space.id,\n }),\n );\n\n // TODO(wittjosiah): If navigableCollections is false and there's no target,\n // should try to navigate to the first object of the space replicates.\n // Potentially this could also be done on the inviters side to ensure there's always a target.\n const target = result?.target || (navigableCollections ? space?.id : undefined);\n if (target) {\n // Wait before navigating to the target node.\n // If the target has not yet replicated, this will trigger a loading toast.\n await graph.waitForPath({ target }).catch(() => {});\n await Promise.all([\n dispatch(\n createIntent(LayoutAction.Open, {\n part: 'main',\n subject: [target],\n }),\n ),\n dispatch(\n createIntent(LayoutAction.Expose, {\n part: 'navigation',\n subject: target,\n }),\n ),\n ]);\n }\n\n await onDone?.(result);\n\n if (space) {\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'space.join',\n properties: {\n spaceId: space.id,\n },\n }),\n );\n }\n },\n [dispatch, client, graph],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Title classNames='sr-only'>{t('join space label', { ns: 'os' })}</Dialog.Title>\n <JoinPanel\n {...props}\n exitActionParent={<Dialog.Close asChild />}\n doneActionParent={<Dialog.Close asChild />}\n onDone={handleDone}\n />\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type Dispatch, type SetStateAction, useCallback, useMemo, useState } from 'react';\nimport { QR } from 'react-qr-rounded';\n\nimport { createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { useConfig } from '@dxos/react-client';\nimport { type Space, useSpaceInvitations } from '@dxos/react-client/echo';\nimport { type CancellableInvitationObservable, Invitation, InvitationEncoder } from '@dxos/react-client/invitations';\nimport { Button, Clipboard, Icon, Input, useId, useTranslation } from '@dxos/react-ui';\nimport { ControlFrame, ControlFrameItem, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { Collection } from '@dxos/schema';\nimport {\n type ActionMenuItem,\n AuthCode,\n BifurcatedAction,\n Centered,\n Emoji,\n InvitationList,\n SpaceMemberList,\n Viewport,\n} from '@dxos/shell/react';\nimport { hexToEmoji } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { SpaceAction } from '../../types';\nimport { COMPOSER_SPACE_LOCK } from '../../util';\n\n// TODO(wittjosiah): Copied from Shell.\nconst activeActionKey = 'dxos:react-shell/space-manager/active-action';\n\nconst handleInvitationEvent = (invitation: Invitation, subscription: ZenObservable.Subscription) => {\n const invitationCode = InvitationEncoder.encode(invitation);\n if (invitation.state === Invitation.State.CONNECTING) {\n log.info(JSON.stringify({ invitationCode, authCode: invitation.authCode }));\n subscription.unsubscribe();\n }\n};\n\nexport type MembersContainerProps = {\n space: Space;\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport const MembersContainer = ({ space, createInvitationUrl }: MembersContainerProps) => {\n const { t } = useTranslation(meta.id);\n const config = useConfig();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const invitations = useSpaceInvitations(space.key);\n const visibleInvitations = invitations?.filter(\n (invitation) => ![Invitation.State.CANCELLED].includes(invitation.get().state),\n );\n\n const [activeAction, setInternalActiveAction] = useState(localStorage.getItem(activeActionKey) ?? 'inviteMany');\n\n const setActiveAction = (nextAction: string) => {\n setInternalActiveAction(nextAction);\n localStorage.setItem(activeActionKey, nextAction);\n };\n\n // TODO(wittjosiah): Track which was the most recently viewed object.\n const target = space.properties[Collection.Collection.typename]?.target?.objects[0]?.target;\n\n const locked = space.properties[COMPOSER_SPACE_LOCK];\n const handleChangeLocked = useCallback(() => {\n space.properties[COMPOSER_SPACE_LOCK] = !locked;\n }, [locked, space]);\n\n const inviteActions = useMemo(\n (): Record<string, ActionMenuItem> => ({\n inviteOne: {\n label: t('invite one label', { ns: 'os' }),\n description: t('invite one description', { ns: 'os' }),\n icon: 'ph--user-plus--regular',\n testId: 'membersContainer.inviteOne',\n onClick: async () => {\n const { data: invitation } = await dispatch(\n createIntent(SpaceAction.Share, {\n space,\n type: Invitation.Type.INTERACTIVE,\n authMethod: Invitation.AuthMethod.SHARED_SECRET,\n multiUse: false,\n target: target && Obj.getDXN(target).toString(),\n }),\n );\n if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {\n const subscription: ZenObservable.Subscription = invitation.subscribe((invitation) =>\n handleInvitationEvent(invitation, subscription),\n );\n }\n },\n },\n inviteMany: {\n label: t('invite many label', { ns: 'os' }),\n description: t('invite many description', { ns: 'os' }),\n icon: 'ph--users-three--regular',\n testId: 'membersContainer.inviteMany',\n onClick: async () => {\n const { data: invitation } = await dispatch(\n createIntent(SpaceAction.Share, {\n space,\n type: Invitation.Type.DELEGATED,\n authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,\n multiUse: true,\n target: target && Obj.getDXN(target).toString(),\n }),\n );\n if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {\n const subscription: ZenObservable.Subscription = invitation.subscribe((invitation) =>\n handleInvitationEvent(invitation, subscription),\n );\n }\n },\n },\n }),\n [t, space, target],\n );\n\n const [selectedInvitation, setSelectedInvitation] = useState<CancellableInvitationObservable | null>(null);\n const handleSend = (event: { type: 'selectInvitation'; invitation: CancellableInvitationObservable }) => {\n setSelectedInvitation(event.invitation);\n };\n const handleBack = () => {\n setSelectedInvitation(null);\n };\n\n return (\n <Clipboard.Provider>\n <StackItem.Content scrollable>\n <ControlPage>\n <ControlSection title={t('members verbose label')} description={t('members description')}>\n <ControlFrame>\n <ControlFrameItem title={t('members label')}>\n <SpaceMemberList spaceKey={space.key} includeSelf />\n </ControlFrameItem>\n {locked && (\n <ControlFrameItem title={t('invitations label')}>\n <p className='text-description mbe-2'>{t('locked space description')}</p>\n </ControlFrameItem>\n )}\n {!locked && (\n <ControlFrameItem title={t('invitations label')}>\n {selectedInvitation && <InvitationSection {...selectedInvitation} onBack={handleBack} />}\n {!selectedInvitation && (\n <>\n <p className='text-description mbe-2'>{t('space invitation description')}</p>\n <InvitationList\n className='mb-2'\n send={handleSend}\n invitations={visibleInvitations ?? []}\n onClickRemove={(invitation) => invitation.cancel()}\n createInvitationUrl={createInvitationUrl}\n />\n <BifurcatedAction\n actions={inviteActions}\n activeAction={activeAction}\n onChangeActiveAction={setActiveAction as Dispatch<SetStateAction<string>>}\n data-testid='membersContainer.createInvitation'\n />\n </>\n )}\n </ControlFrameItem>\n )}\n </ControlFrame>\n {/* TODO(wittjosiah): Make ControlItemInput & ControlFrame compatible. */}\n <div className='justify-center p-0 mbs-4 container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]'>\n <ControlItemInput title={t('space locked label')} description={t('space locked description')}>\n <Input.Switch checked={locked} onCheckedChange={handleChangeLocked} classNames='justify-self-end' />\n </ControlItemInput>\n </div>\n </ControlSection>\n </ControlPage>\n </StackItem.Content>\n </Clipboard.Provider>\n );\n};\n\n// TODO(wittjosiah): Reconcile the below components with DevicesContainer in @dxos/plugin-client.\n\ntype InvitationComponentProps = Partial<\n Pick<Invitation, 'authCode' | 'invitationId'> & {\n state: Invitation.State;\n url: string;\n onBack: () => void;\n }\n>;\n\nconst InvitationSection = ({\n state = Invitation.State.INIT,\n authCode,\n invitationId = 'never',\n url = 'never',\n onBack,\n}: InvitationComponentProps) => {\n const activeView =\n state < 0\n ? 'init'\n : state >= Invitation.State.CANCELLED\n ? 'complete'\n : state >= Invitation.State.READY_FOR_AUTHENTICATION && authCode\n ? 'auth-code'\n : 'qr-code';\n return (\n <Viewport.Root activeView={activeView}>\n <Viewport.Views>\n <Viewport.View id='init'>\n {/* This view intentionally left blank while conditionally rendering the viewport. */}\n </Viewport.View>\n <Viewport.View id='complete'>\n <InvitationComplete statusValue={state} />\n </Viewport.View>\n <Viewport.View id='auth-code'>\n <InvitationAuthCode id={invitationId} code={authCode ?? 'never'} onCancel={onBack} />\n </Viewport.View>\n <Viewport.View id='qr-code'>\n <InvitationQR id={invitationId} url={url} onCancel={onBack} />\n </Viewport.View>\n </Viewport.Views>\n </Viewport.Root>\n );\n};\n\nconst InvitationQR = ({ id, url, onCancel }: { id: string; url: string; onCancel?: () => void }) => {\n const { t } = useTranslation('os');\n const qrLabel = useId('members-container__qr-code');\n const emoji = hexToEmoji(id);\n return (\n <>\n <p className='text-description'>{t('qr code description', { ns: meta.id })}</p>\n <div role='group' className='grid grid-cols-[1fr_min-content] mlb-2 gap-2'>\n <div role='none' className='is-full aspect-square relative text-description'>\n <QR\n rounding={100}\n backgroundColor='transparent'\n color='currentColor'\n aria-labelledby={qrLabel}\n errorCorrectionLevel='Q'\n cutout={true}\n >\n {url ?? 'never'}\n </QR>\n <Centered>\n <Emoji text={emoji} />\n </Centered>\n </div>\n <span id={qrLabel} className='sr-only'>\n {t('qr label')}\n </span>\n <Clipboard.Button value={url ?? 'never'} />\n </div>\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </>\n );\n};\n\nconst InvitationAuthCode = ({ id, code, onCancel }: { id: string; code: string; onCancel?: () => void }) => {\n const { t } = useTranslation('os');\n const emoji = hexToEmoji(id);\n\n return (\n <>\n <p className='text-description'>{t('auth other device emoji message')}</p>\n {emoji && <Emoji text={emoji} className='mli-auto mlb-2 text-center' />}\n <p className='text-description'>{t('auth code message')}</p>\n <AuthCode code={code} large classNames='mli-auto mlb-2 text-center grow' />\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </>\n );\n};\n\nconst InvitationComplete = ({ statusValue }: { statusValue: number }) => {\n return statusValue > 0 ? (\n <Icon icon='ph--check--regular' size={6} classNames='m-1.5' />\n ) : (\n <Icon icon='ph--x--regular' size={6} classNames='m-1.5' />\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { getSpace } from '@dxos/client/echo';\nimport { type Obj } from '@dxos/echo';\nimport { useClient } from '@dxos/react-client';\nimport { DropdownMenu, Icon, toLocalizedString, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../meta';\nimport { getSpaceDisplayName } from '../util';\n\nexport const MenuFooter = ({ object }: { object: Obj.Any }) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const space = getSpace(object);\n const spaceName = space ? getSpaceDisplayName(space, { personal: client.spaces.default === space }) : '';\n return space ? (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.GroupLabel>{t('menu footer label')}</DropdownMenu.GroupLabel>\n <dl className='pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2'>\n <dt className='uppercase text-[.75em] tracking-wide font-medium mbs-px self-start'>{t('location label')}</dt>\n <dd className='line-clamp-3'>\n <Icon icon='ph--planet--regular' classNames='inline-block mie-1' />\n {toLocalizedString(spaceName, t)}\n </dd>\n </dl>\n </>\n ) : null;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { LayoutAction, createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { Button, Input, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../../meta';\n\nexport const OBJECT_RENAME_POPOVER = `${meta.id}/ObjectRenamePopover`;\n\nexport const ObjectRenamePopover = ({ object }: { object: Obj.Any }) => {\n const { t } = useTranslation(meta.id);\n const doneButton = useRef<HTMLButtonElement>(null);\n const [name, setName] = useState(Obj.getLabel(object));\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleDone = useCallback(() => {\n try {\n name && Obj.setLabel(object, name);\n } catch (err) {\n log.error('Failed to rename object', { err });\n }\n void dispatch(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n options: { variant: 'react', anchorId: '', state: false },\n }),\n );\n }, [object, name]);\n\n return (\n <div role='none' className='p-2 flex gap-2'>\n <div role='none' className='flex-1'>\n <Input.Root>\n <Input.Label srOnly>{t('object name label')}</Input.Label>\n <Input.TextInput\n placeholder={t('object placeholder')}\n value={name}\n data-testid='spacePlugin.renameObject.input'\n onChange={({ target: { value } }) => setName(value)}\n onKeyDown={({ key }) => key === 'Enter' && doneButton.current?.click()}\n />\n </Input.Root>\n </div>\n <Button ref={doneButton} classNames='self-stretch' onClick={handleDone}>\n {t('done label', { ns: 'os' })}\n </Button>\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { type Type } from '@dxos/echo';\nimport { type Space } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { ControlPage, ControlSection, controlItemClasses } from '@dxos/react-ui-form';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { meta } from '../meta';\n\ntype SchemaPanelProps = { space: Space };\n\nexport const SchemaContainer = ({ space }: SchemaPanelProps) => {\n const { t } = useTranslation(meta.id);\n const schemas = useQuerySpaceSchemas(space);\n\n // TODO(ZaymonFC): Support deleting Schema (DangerZone section).\n return (\n <StackItem.Content scrollable>\n <ControlPage>\n <ControlSection title={t('schema verbose label')} description={t('schema description')}>\n <div role='none' className={controlItemClasses}>\n {schemas.length === 0 && <div className='text-center plb-4'>{t('no schemas found message')}</div>}\n {schemas.map((schema) => (\n <div role='none' key={schema.id}>\n {schema.typename}\n </div>\n ))}\n </div>\n </ControlSection>\n </ControlPage>\n </StackItem.Content>\n );\n};\n\n/**\n * Subscribe to and retrieve all schemas from a space's schema registry.\n */\nexport const useQuerySpaceSchemas = (space: Space): Type.RuntimeType[] => {\n const [schemas, setSchemas] = useState<Type.RuntimeType[]>([]);\n\n useEffect(() => {\n const query = space.db.schemaRegistry.query();\n const initialResults = query.runSync();\n setSchemas(initialResults);\n\n const unsubscribe = query.subscribe(() => setSchemas(query.results));\n return () => unsubscribe();\n }, [space]);\n\n return schemas;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { useClient } from '@dxos/react-client';\nimport { useSpaces } from '@dxos/react-client/echo';\nimport { IconButton, Input, List, ListItem, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection, controlItemClasses } from '@dxos/react-ui-form';\n\nimport { meta } from '../meta';\nimport { SpaceAction, type SpaceSettingsProps } from '../types';\nimport { getSpaceDisplayName } from '../util';\n\nexport const SpacePluginSettings = ({ settings }: { settings: SpaceSettingsProps }) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const spaces = useSpaces({ all: settings.showHidden });\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n return (\n <ControlPage>\n <ControlSection title={t('space settings label')} description={t('space settings description')}>\n <ControlGroup>\n <ControlItemInput title={t('show hidden spaces label')}>\n <Input.Switch\n checked={settings.showHidden}\n onCheckedChange={(checked) => (settings.showHidden = !!checked)}\n />\n </ControlItemInput>\n </ControlGroup>\n <List classNames={[controlItemClasses, 'flex flex-col gap-trimSm']}>\n {spaces.map((space) => (\n <ListItem.Root key={space.id} classNames='is-full items-center'>\n {/* TODO(burdon): Should auto center and truncate; NOTE truncate doesn't work with flex grow. */}\n <ListItem.Heading classNames='grow truncate !min-bs-0'>\n {toLocalizedString(\n getSpaceDisplayName(space, {\n personal: space === client.spaces.default,\n }),\n t,\n )}\n </ListItem.Heading>\n <IconButton\n icon='ph--faders--regular'\n onClick={() => dispatch(createIntent(SpaceAction.OpenSettings, { space }))}\n label={t('open space settings label')}\n />\n </ListItem.Root>\n ))}\n </List>\n </ControlSection>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport React, { forwardRef, useCallback, useEffect, useState } from 'react';\n\nimport { useAppGraph, useCapability } from '@dxos/app-framework/react';\nimport { generateName } from '@dxos/display-name';\nimport { Obj } from '@dxos/echo';\nimport { PublicKey, useClient } from '@dxos/react-client';\nimport { type SpaceMember, getSpace, useMembers } from '@dxos/react-client/echo';\nimport { type Identity, useIdentity } from '@dxos/react-client/halo';\nimport {\n Avatar,\n type AvatarContentProps,\n type DxAvatar,\n List,\n ListItem,\n Popover,\n type Size,\n type ThemedClassName,\n Tooltip,\n useDefaultValue,\n useTranslation,\n} from '@dxos/react-ui';\nimport { AttentionGlyph, type AttentionGlyphProps, useAttended, useAttention } from '@dxos/react-ui-attention';\nimport { ComplexMap, keyToFallback } from '@dxos/util';\n\nimport { SpaceCapabilities } from '../../capabilities';\nimport { usePath } from '../../hooks';\nimport { meta } from '../../meta';\nimport { type ObjectViewerProps } from '../../types';\n\n// TODO(thure): Get/derive these values from protocol\nconst REFRESH_INTERVAL = 5000;\nconst ACTIVITY_DURATION = 30_000;\n\n// TODO(thure): This is chiefly meant to satisfy TS & provide an empty map after `deepSignal` interactions.\nconst noViewers = new ComplexMap<PublicKey, ObjectViewerProps>(PublicKey.hash);\n\n// TODO(wittjosiah): Factor out?\nconst getName = (identity: Identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());\n\nexport type SpacePresenceProps = {\n object: Obj.Any;\n spaceKey?: PublicKey;\n};\n\nexport const SpacePresence = ({ object, spaceKey }: SpacePresenceProps) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const spaceState = useCapability(SpaceCapabilities.MutableState);\n const client = useClient();\n const identity = useIdentity();\n const space = spaceKey ? client.spaces.get(spaceKey) : getSpace(object);\n const spaceMembers = useMembers(space?.key);\n\n const [_moment, setMoment] = useState(Date.now());\n\n // NOTE(thure): This is necessary so Presence updates without any underlying data updating.\n useEffect(() => {\n const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);\n return () => clearInterval(interval);\n }, []);\n\n const memberOnline = useCallback((member: SpaceMember) => member.presence === 1, []);\n const memberIsNotSelf = useCallback(\n (member: SpaceMember) => !identity?.identityKey.equals(member.identity.identityKey),\n [identity?.identityKey],\n );\n\n // TODO(thure): Could it be a smell to return early when there are interactions with `deepSignal` later, since it\n // prevents reactivity?\n if (!identity || !spaceState || !space) {\n return null;\n }\n\n const currentObjectViewers = spaceState.viewersByObject[Obj.getDXN(object).toString()] ?? noViewers;\n\n const membersForObject = spaceMembers\n .filter((member) => memberOnline(member) && memberIsNotSelf(member))\n .filter((member) => currentObjectViewers.has(member.identity.identityKey))\n .map((member) => {\n const objectView = currentObjectViewers.get(member.identity.identityKey);\n const lastSeen = objectView?.lastSeen ?? -Infinity;\n const currentlyAttended = objectView?.currentlyAttended ?? false;\n\n return {\n ...member,\n currentlyAttended,\n lastSeen,\n };\n })\n .toSorted((a, b) => a.lastSeen - b.lastSeen);\n\n return <FullPresence members={membersForObject} />;\n};\n\nexport type Member = SpaceMember & {\n /**\n * Last time a member was seen on this object.\n */\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type MemberPresenceProps = ThemedClassName<{\n size?: Size;\n members?: Member[];\n showCount?: boolean;\n onMemberClick?: (member: Member) => void;\n}>;\n\nexport const FullPresence = (props: MemberPresenceProps) => {\n const { size = 9, onMemberClick } = props;\n const members = useDefaultValue(props.members, () => []);\n\n if (members.length === 0) {\n return null;\n }\n\n return (\n <div className='dx-avatar-group' data-testid='spacePlugin.presence'>\n {members.slice(0, 3).map((member, i) => (\n <Tooltip.Trigger\n key={member.identity.identityKey.toHex()}\n side='bottom'\n content={getName(member.identity)}\n className='grid focus:outline-none'\n >\n <PresenceAvatar\n identity={member.identity}\n match={member.currentlyAttended} // TODO(Zan): Match always true now we're showing 'members viewing current object'.\n index={members.length - i}\n onClick={() => onMemberClick?.(member)}\n size={size}\n />\n </Tooltip.Trigger>\n ))}\n\n {members.length > 3 && (\n <Popover.Root>\n <Popover.Trigger className='grid focus:outline-none'>\n <Avatar.Root>\n {/* TODO(wittjosiah): Make text fit. */}\n <Avatar.Content\n status='inactive'\n style={{ zIndex: members.length - 4 }}\n fallback={`+${members.length - 3}`}\n size={size}\n />\n </Avatar.Root>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content side='bottom'>\n <Popover.Arrow />\n <Popover.Viewport classNames='max-bs-56'>\n <List>\n {members.map((member) => (\n <ListItem.Root\n key={member.identity.identityKey.toHex()}\n classNames='flex gap-2 items-center cursor-pointer mbe-2'\n onClick={() => onMemberClick?.(member)}\n data-testid='identity-list-item'\n >\n {/* TODO(Zan): Match always true now we're showing 'members viewing current object'. */}\n <PresenceAvatar\n identity={member.identity}\n size={size}\n showName\n match={member.currentlyAttended}\n />\n </ListItem.Root>\n ))}\n </List>\n </Popover.Viewport>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )}\n </div>\n );\n};\n\ntype PresenceAvatarProps = Pick<AvatarContentProps, 'size'> & {\n identity: Identity;\n showName?: boolean;\n match?: boolean;\n index?: number;\n onClick?: () => void;\n};\n\nconst PresenceAvatar = forwardRef<DxAvatar, PresenceAvatarProps>(\n ({ identity, showName, match, index, onClick, size }, forwardedRef) => {\n const status = match ? 'current' : 'active';\n const fallbackValue = keyToFallback(identity.identityKey);\n return (\n <Avatar.Root>\n <Avatar.Content\n status={status}\n hue={identity.profile?.data?.hue || fallbackValue.hue}\n data-testid='spacePlugin.presence.member'\n data-status={status}\n size={size}\n {...(index ? { style: { zIndex: index } } : {})}\n onClick={onClick}\n fallback={identity.profile?.data?.emoji || fallbackValue.emoji}\n ref={forwardedRef}\n />\n <Avatar.Label classNames={showName ? 'text-sm truncate pli-2' : 'sr-only'}>{getName(identity)}</Avatar.Label>\n </Avatar.Root>\n );\n },\n);\n\nexport type SmallPresenceLiveProps = {\n id?: string;\n open?: boolean;\n viewers?: ComplexMap<PublicKey, ObjectViewerProps>;\n};\n\nexport const SmallPresenceLive = ({ id, open, viewers }: SmallPresenceLiveProps) => {\n const { hasAttention, isAncestor, isRelated } = useAttention(id);\n const isAttended = hasAttention || isAncestor || isRelated;\n\n // TODO(wittjosiah): If the attended node is deep in the graph and the graph is not fully loaded\n // this will result in an empty path until the graph is connected.\n // TODO(wittjosiah): Consider using this indicator for all open nodes instead of just attended.\n const { graph } = useAppGraph();\n const attended = useAttended();\n const startOfAttention = attended.at(-1);\n const path = usePath(graph, startOfAttention);\n const containsAttended = !open && !isAttended && id && Option.isSome(path) ? path.value.includes(id) : false;\n\n const getActiveViewers = (viewers: ComplexMap<PublicKey, ObjectViewerProps>): ObjectViewerProps[] => {\n const moment = Date.now();\n return Array.from<ObjectViewerProps>(viewers.values()).filter(\n (viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION,\n );\n };\n\n const [activeViewers, setActiveViewers] = useState(viewers ? getActiveViewers(viewers) : []);\n\n useEffect(() => {\n if (viewers) {\n setActiveViewers(getActiveViewers(viewers));\n const interval = setInterval(() => {\n setActiveViewers(getActiveViewers(viewers));\n }, REFRESH_INTERVAL);\n return () => clearInterval(interval);\n }\n }, [viewers]);\n\n return <SmallPresence count={activeViewers.length} attended={isAttended} containsAttended={containsAttended} />;\n};\n\nexport type SmallPresenceProps = {\n count?: number;\n} & Pick<AttentionGlyphProps, 'attended' | 'containsAttended'>;\n\nexport const SmallPresence = ({ count = 0, attended, containsAttended }: SmallPresenceProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <Tooltip.Trigger asChild content={t('presence label', { count })} side='bottom'>\n <AttentionGlyph\n attended={attended}\n containsAttended={containsAttended}\n presence={count > 1 ? 'many' : count === 1 ? 'one' : 'none'}\n classNames='self-center mie-1'\n />\n </Tooltip.Trigger>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const AppGraphSerializer = lazy(() => import('./app-graph-serializer'));\nexport const IdentityCreated = lazy(() => import('./identity-created'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactRoot = lazy(() => import('./react-root'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const Repair = lazy(() => import('./repair'));\nexport const SpaceSettings = lazy(() => import('./settings'));\nexport const SpaceState = lazy(() => import('./state'));\nexport const SpacesReady = lazy(() => import('./spaces-ready'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { LayoutAction, createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { type Space } from '@dxos/client/echo';\nimport { Button, Input, Popover, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../../meta';\n\nexport const SPACE_RENAME_POPOVER = `${meta.id}/SpaceRenamePopover`;\n\nexport const SpaceRenamePopover = ({ space }: { space: Space }) => {\n const { t } = useTranslation(meta.id);\n const doneButton = useRef<HTMLButtonElement>(null);\n const [name, setName] = useState(space.properties.name ?? '');\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const handleDone = useCallback(() => {\n space.properties.name = name;\n void dispatch(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n options: { variant: 'react', anchorId: '', state: false },\n }),\n );\n }, [space, name]);\n\n // TODO(thure): Why does the input value need to be uncontrolled to work?\n return (\n <div role='none' className='p-2 flex gap-2'>\n <div role='none' className='flex-1'>\n <Input.Root>\n <Input.Label srOnly>{t('space name label')}</Input.Label>\n <Input.TextInput\n defaultValue={space.properties.name ?? ''}\n placeholder={t('unnamed space label')}\n onChange={({ target: { value } }) => setName(value)}\n // TODO(wittjosiah): Ideally this should access the popover context to close the popover.\n // Currently this is not possible because Radix does not expose the popover context.\n onKeyDown={({ key }) => key === 'Enter' && doneButton.current?.click()}\n />\n </Input.Root>\n </div>\n <Popover.Close asChild>\n <Button ref={doneButton} classNames='self-stretch' onClick={handleDone}>\n {t('done label', { ns: 'os' })}\n </Button>\n </Popover.Close>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport * as Schema from 'effect/Schema';\nimport React, { type ChangeEvent, forwardRef, useCallback, useMemo, useState } from 'react';\n\nimport { LayoutAction, chain, createIntent } from '@dxos/app-framework';\nimport { useCapabilities, useIntentDispatcher } from '@dxos/app-framework/react';\nimport { log } from '@dxos/log';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { useClient } from '@dxos/react-client';\nimport { type Space, SpaceState } from '@dxos/react-client/echo';\nimport { Button, Input, useFileDownload, useMulticastObservable, useTranslation } from '@dxos/react-ui';\nimport {\n ControlItem,\n ControlItemInput,\n ControlPage,\n ControlSection,\n Form,\n type FormFieldMap,\n} from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { SpaceCapabilities } from '../../capabilities';\nimport { meta } from '../../meta';\nimport { SpaceAction, SpaceForm } from '../../types';\n\nconst SpaceFormSchema = SpaceForm.pipe(\n Schema.extend(\n Schema.Struct({\n archived: Schema.Boolean.annotations({ title: 'Archive Space' }),\n }),\n ),\n);\n\nexport type SpaceSettingsContainerProps = {\n space: Space;\n};\n\n// TODO(wittjosiah): Handle space migrations here?\nexport const SpaceSettingsContainer = forwardRef<HTMLDivElement, SpaceSettingsContainerProps>(\n ({ space }, forwardedRef) => {\n const { t } = useTranslation(meta.id);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const archived = useMulticastObservable(space.state) === SpaceState.SPACE_INACTIVE;\n const [edgeReplication, setEdgeReplication] = useState(\n space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED,\n );\n const toggleEdgeReplication = useCallback(\n async (next: boolean) => {\n setEdgeReplication(next);\n await space?.internal\n .setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED)\n .catch((err: unknown) => {\n log.catch(err);\n setEdgeReplication(!next);\n });\n },\n [space],\n );\n\n const handleSave = useCallback(\n (properties: Schema.Schema.Type<typeof SpaceFormSchema>) => {\n void toggleEdgeReplication(properties.edgeReplication ?? false);\n if (properties.name !== space.properties.name) {\n space.properties.name = properties.name;\n }\n if (properties.icon !== space.properties.icon) {\n space.properties.icon = properties.icon;\n }\n if (properties.hue !== space.properties.hue) {\n space.properties.hue = properties.hue;\n }\n if (properties.archived && !archived) {\n void dispatch(\n Function.pipe(\n createIntent(SpaceAction.Close, { space }),\n chain(LayoutAction.SwitchWorkspace, {\n part: 'workspace',\n subject: client.spaces.default.id,\n }),\n ),\n );\n } else if (!properties.archived && archived) {\n void dispatch(createIntent(SpaceAction.Open, { space }));\n }\n },\n [space, toggleEdgeReplication, archived],\n );\n\n const values = useMemo(\n () => ({\n name: space.properties.name,\n icon: space.properties.icon,\n hue: space.properties.hue,\n edgeReplication,\n archived,\n }),\n [space.properties.name, space.properties.icon, space.properties.hue, edgeReplication, archived],\n );\n\n const fieldMap = useMemo<FormFieldMap>(\n () => ({\n name: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(\n ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onValueChange(type, value),\n [onValueChange, type],\n );\n return (\n <ControlItemInput title={label} description={t('display name description')}>\n <Input.TextInput\n value={getValue()}\n onChange={handleChange}\n placeholder={t('display name input placeholder')}\n classNames='min-is-64'\n />\n </ControlItemInput>\n );\n },\n icon: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((icon: string) => onValueChange(type, icon), [onValueChange, type]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);\n return (\n <ControlItem title={label} description={t('icon description')}>\n <IconPicker\n value={getValue()}\n onChange={handleChange}\n onReset={handleReset}\n classNames='justify-self-end'\n />\n </ControlItem>\n );\n },\n hue: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange, type]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);\n return (\n <ControlItem title={label} description={t('hue description')}>\n <HuePicker\n value={getValue()}\n onChange={handleChange}\n onReset={handleReset}\n classNames='justify-self-end'\n />\n </ControlItem>\n );\n },\n edgeReplication: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((checked: boolean) => onValueChange(type, checked), [onValueChange, type]);\n return (\n <ControlItemInput title={label} description={t('edge replication description')}>\n <Input.Switch checked={getValue()} onCheckedChange={handleChange} classNames='justify-self-end' />\n </ControlItemInput>\n );\n },\n archived: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(() => onValueChange(type, !getValue()), [onValueChange, type, getValue]);\n return (\n <ControlItemInput title={label} description={t('archive space description')}>\n <Button\n disabled={space === client.spaces.default}\n variant={getValue() ? 'default' : 'destructive'}\n onClick={handleChange}\n >\n {getValue() ? t('unarchive space label') : t('archive space label')}\n </Button>\n </ControlItemInput>\n );\n },\n }),\n [t, space],\n );\n\n const download = useFileDownload();\n const handleBackup = useCallback(async () => {\n const archive = await space.internal.export();\n download(new Blob([archive.contents as Uint8Array<ArrayBuffer>]), archive.filename);\n }, [space, download]);\n\n const repairs = useCapabilities(SpaceCapabilities.Repair);\n const handleRepair = useCallback(async () => {\n await Promise.all(repairs.map((repair) => repair({ space, isDefault: client.spaces.default === space })));\n }, [client, space, repairs]);\n\n return (\n <StackItem.Content scrollable ref={forwardedRef}>\n <ControlPage>\n <ControlSection\n title={t('space properties settings verbose label')}\n description={t('space properties settings description', {\n ns: meta.id,\n })}\n >\n <Form.Root fieldMap={fieldMap} schema={SpaceFormSchema} values={values} autoSave onSave={handleSave}>\n <Form.FieldSet />\n </Form.Root>\n </ControlSection>\n\n <ControlSection title={t('space controls title')} description={t('space controls description')}>\n <div role='none' className='container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]'>\n <ControlItemInput title={t('backup space title')} description={t('backup space description')}>\n <Button onClick={handleBackup}>{t('download backup label')}</Button>\n </ControlItemInput>\n <ControlItemInput title={t('repair space title')} description={t('repair space description')}>\n <Button onClick={handleRepair}>{t('repair space label')}</Button>\n </ControlItemInput>\n </div>\n </ControlSection>\n </ControlPage>\n </StackItem.Content>\n );\n },\n);\n\nSpaceSettingsContainer.displayName = 'SpaceSettingsContainer';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport React, { useEffect, useState } from 'react';\n\nimport { useAppGraph } from '@dxos/app-framework/react';\nimport { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { useClient } from '@dxos/react-client';\nimport { type Space, useSpaceSyncState } from '@dxos/react-client/echo';\nimport { Tooltip, useTranslation } from '@dxos/react-ui';\nimport { AttentionGlyph, useAttended, useAttention } from '@dxos/react-ui-attention';\n\nimport { usePath } from '../../hooks';\nimport { meta } from '../../meta';\n\nconst useEdgeStatus = (): EdgeStatus.ConnectionState => {\n const [status, setStatus] = useState(EdgeStatus.ConnectionState.NOT_CONNECTED);\n const client = useClient();\n useEffect(() => {\n client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status }) => {\n setStatus(status.state);\n });\n }, [client]);\n\n return status;\n};\n\nexport const InlineSyncStatus = ({ space, open }: { space: Space; open?: boolean }) => {\n const { t } = useTranslation(meta.id);\n const id = space.id;\n const { hasAttention, isAncestor, isRelated } = useAttention(id);\n const isAttended = hasAttention || isAncestor || isRelated;\n\n // TODO(wittjosiah): If the attended node is deep in the graph and the graph is not fully loaded\n // this will result in an empty path until the graph is connected.\n // TODO(wittjosiah): Consider using this indicator for all open nodes instead of just attended.\n const { graph } = useAppGraph();\n const attended = useAttended();\n const startOfAttention = attended.at(-1);\n const path = usePath(graph, startOfAttention);\n const containsAttended = !open && !isAttended && id && Option.isSome(path) ? path.value.includes(id) : false;\n\n const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;\n // TODO(wittjosiah): This is not reactive.\n const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED;\n const syncState = useSpaceSyncState(space);\n const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;\n\n return (\n <Tooltip.Trigger asChild content={t('syncing label')} side='bottom'>\n <AttentionGlyph\n syncing={syncing}\n attended={isAttended}\n containsAttended={containsAttended}\n classNames='self-center mie-1'\n />\n </Tooltip.Trigger>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { StatusBar } from '@dxos/plugin-status-bar';\nimport { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';\nimport { type QueryEdgeStatusResponse } from '@dxos/protocols/proto/dxos/client/services';\nimport { useClient } from '@dxos/react-client';\nimport { useStream } from '@dxos/react-client/devtools';\nimport { type SpaceSyncStateMap, getSyncSummary, useSyncState } from '@dxos/react-client/echo';\nimport { Icon, Popover, useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\nimport { Unit, type UnitFormat } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nimport { createClientSaveTracker } from './save-tracker';\nimport { getIcon, getStatus } from './status';\n\nconst SYNC_STALLED_TIMEOUT = 5_000;\n\nexport const SyncStatus = () => {\n const client = useClient();\n const state = useSyncState();\n const [saved, setSaved] = useState(true);\n useEffect(() => createClientSaveTracker(client, (state) => setSaved(state === 'saved')), []);\n\n return <SyncStatusIndicator state={state} saved={saved} />;\n};\n\nexport const SyncStatusIndicator = ({ state, saved }: { state: SpaceSyncStateMap; saved: boolean }) => {\n const { t } = useTranslation(meta.id);\n const summary = getSyncSummary(state);\n const offline = Object.values(state).length === 0;\n const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;\n const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;\n const status = getStatus({ offline, saved, needsToUpload, needsToDownload });\n\n const [classNames, setClassNames] = useState<string>();\n useEffect(() => {\n setClassNames(undefined);\n if (offline || (!needsToUpload && !needsToDownload)) {\n return;\n }\n\n const t = setTimeout(() => {\n // TODO(wittjosiah): Use semantic color tokens.\n setClassNames('text-orange-500');\n }, SYNC_STALLED_TIMEOUT);\n return () => clearTimeout(t);\n }, [offline, needsToUpload, needsToDownload]);\n\n const title = t(`${status} label`);\n const icon = <Icon icon={getIcon(status)} classNames={classNames} />;\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <StatusBar.Item title={title}>{icon}</StatusBar.Item>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content>\n <EdgeConnectionPopover />\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n\nconst useEdgeStatus = (): EdgeStatus | undefined => {\n const client = useClient();\n const { status } = useStream(\n () => client.services.services.EdgeAgentService!.queryEdgeStatus(),\n {} as QueryEdgeStatusResponse,\n );\n return status;\n};\n\nconst EdgeConnectionPopover = () => {\n const status = useEdgeStatus();\n const { t } = useTranslation(meta.id);\n\n const isConnected = status?.state === EdgeStatus.ConnectionState.CONNECTED;\n\n return (\n <div className='min-is-[240px] p-2'>\n {/* Connection Status Header */}\n <div className='flex items-center gap-2 mbe-2'>\n <Icon\n icon={isConnected ? 'ph--check-circle--regular' : 'ph--warning-circle--regular'}\n classNames={mx(isConnected ? 'text-successText' : 'text-errorText animate-pulse')}\n />\n <span className='font-medium text-sm'>\n {isConnected ? t('sync edge connected label') : t('sync edge disconnected label')}\n </span>\n </div>\n\n {/* Connection Details */}\n {status?.state === EdgeStatus.ConnectionState.NOT_CONNECTED && (\n <div className='flex items-center gap-2 text-sm text-description'>\n <Icon icon='ph--cloud-x--regular' />\n <span>{t('sync no connection label')}</span>\n </div>\n )}\n\n {status?.state === EdgeStatus.ConnectionState.CONNECTED && (\n <div className='space-y-2'>\n {/* Latency */}\n <div className='flex items-center justify-between text-sm'>\n <div className='flex items-center gap-2 text-description'>\n <Icon icon='ph--timer--regular' />\n <span>{t('sync latency label')}</span>\n </div>\n <UnitValue value={status.rtt} format={Unit.Millisecond} />\n </div>\n\n {/* Upload Speed */}\n <div className='flex items-center justify-between text-sm'>\n <div className='flex items-center gap-2 text-description'>\n <Icon icon='ph--arrow-up--regular' />\n <span>{t('sync upload label')}</span>\n </div>\n <UnitValue value={status.rateBytesUp} format={Unit.Kilobyte} suffix='/s' />\n </div>\n\n {/* Download Speed */}\n <div className='flex items-center justify-between text-sm'>\n <div className='flex items-center gap-2 text-sm text-description'>\n <Icon icon='ph--arrow-down--regular' />\n <span>{t('sync download label')}</span>\n </div>\n <UnitValue value={status.rateBytesDown} format={Unit.Kilobyte} suffix='/s' />\n </div>\n </div>\n )}\n </div>\n );\n};\n\n// TODO(burdon): Factor out.\nconst UnitValue = ({ value: input, format, suffix }: { value: number; format: UnitFormat; suffix?: string }) => {\n const { formattedValue, unit } = format(input);\n return (\n <span className='font-mono'>\n {formattedValue}\n <span className='mis-1 text-subdued'>\n {unit.symbol}\n {suffix}\n </span>\n </span>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type CleanupFn } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space, type SpaceId } from '@dxos/client/echo';\nimport { Context } from '@dxos/context';\n\nexport const createClientSaveTracker = (client: Client, cb: (state: 'saved' | 'saving') => void) => {\n const CleanupFns: Record<SpaceId, CleanupFn> = {};\n const state: Record<SpaceId, 'saved' | 'saving'> = {};\n\n const install = (spaces: Space[]) => {\n for (const space of spaces) {\n if (state[space.id]) {\n continue;\n }\n\n state[space.id] = 'saved';\n CleanupFns[space.id] = createSpaceSaveTracker(space, (s) => {\n state[space.id] = s;\n cb(Object.values(state).some((s) => s === 'saving') ? 'saving' : 'saved');\n });\n }\n };\n client.spaces.subscribe((spaces) => {\n install(spaces);\n });\n install(client.spaces.get());\n\n return () => {\n for (const unsubscribe of Object.values(CleanupFns)) {\n unsubscribe();\n }\n };\n};\n\nconst createSpaceSaveTracker = (space: Space, cb: (state: 'saved' | 'saving') => void): CleanupFn => {\n const ctx = new Context();\n\n void space.waitUntilReady().then(() => {\n if (ctx.disposed) {\n return;\n }\n\n let hasUnsavedChanges = false;\n let lastFlushPromise: Promise<void> | undefined;\n space.db.saveStateChanged.on(ctx, ({ unsavedDocuments }) => {\n hasUnsavedChanges = unsavedDocuments.length > 0;\n });\n space.db.saveStateChanged.debounce(500).on(ctx, () => {\n if (hasUnsavedChanges) {\n lastFlushPromise = undefined;\n cb('saving');\n } else {\n const flushPromise = space.db.flush();\n lastFlushPromise = flushPromise;\n void flushPromise.then(() => {\n if (lastFlushPromise === flushPromise) {\n cb('saved');\n }\n });\n }\n });\n });\n\n return () => {\n void ctx.dispose();\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport type Status = 'saving locally' | 'downloading' | 'uploading' | 'offline persisted' | 'remote synced';\n\nexport const getStatus = ({\n offline,\n saved,\n needsToUpload,\n needsToDownload,\n}: {\n offline: boolean;\n saved: boolean;\n needsToUpload: boolean;\n needsToDownload: boolean;\n}): Status => {\n if (!saved) {\n return 'saving locally';\n } else if (!offline && needsToDownload) {\n return 'downloading';\n } else if (!offline && needsToUpload) {\n return 'uploading';\n } else if (offline && !needsToUpload && !needsToDownload) {\n return 'offline persisted';\n } else {\n return 'remote synced';\n }\n};\n\nexport const getIcon = (status: Status) => {\n switch (status) {\n case 'saving locally':\n return 'ph--download--regular';\n case 'downloading':\n return 'ph--cloud-arrow-down--regular';\n case 'uploading':\n return 'ph--cloud-arrow-up--regular';\n case 'offline persisted':\n return 'ph--check-circle--regular';\n case 'remote synced':\n return 'ph--cloud-check--regular';\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as EffectFunction from 'effect/Function';\nimport * as Match from 'effect/Match';\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { DXN, Filter, Query, type QueryAST } from '@dxos/echo';\nimport {\n ReferenceAnnotationId,\n type ReferenceAnnotationValue,\n getTypeAnnotation,\n unwrapOptional,\n} from '@dxos/echo/internal';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\nimport { Person } from '@dxos/types';\n\n// TODO(wittjosiah): Factor out and add tests.\n// TODO(wittjosiah): Support arbitrary type imports.\nexport const evalQuery = (queryString: string): Query.Any => {\n const globals = { Query, Filter, Person };\n try {\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n return new Function(...Object.keys(globals), `return ${queryString}`)(...Object.values(globals));\n } catch (err) {\n log.catch(err);\n return Query.select(Filter.nothing());\n }\n};\n\nexport const resolveSchemaWithClientAndSpace = (space: Space, query: QueryAST.Query) => {\n const resolve = Effect.fn(function* (dxn: string) {\n const typename = DXN.parse(dxn).asTypeDXN()?.type;\n if (!typename) {\n return Option.none();\n }\n\n const query = space.db.schemaRegistry.query({ typename, location: ['database', 'runtime'] });\n const schemas = yield* Effect.promise(() => query.run());\n return Array.head(schemas);\n });\n\n return resolveSchema(query, resolve).pipe(\n Effect.map((schema) => Option.getOrUndefined(schema)),\n Effect.runPromise,\n );\n};\n\nconst resolveSchema = (\n query: QueryAST.Query,\n resolve: (dxn: string) => Effect.Effect<Option.Option<Schema.Schema.AnyNoContext>>,\n): Effect.Effect<Option.Option<Schema.Schema.AnyNoContext>> => {\n return Match.value(query).pipe(\n Match.withReturnType<Effect.Effect<Option.Option<Schema.Schema.AnyNoContext>>>(),\n // TODO(wittjosiah): Reconcile with filter match?\n Match.when({ type: 'select' }, ({ filter }) =>\n typenameFromFilter(filter).pipe(\n Option.map((typename) => resolve(typename)),\n Option.getOrElse(() => Effect.succeed(Option.none<Schema.Schema.AnyNoContext>())),\n ),\n ),\n Match.when({ type: 'filter' }, ({ filter }) =>\n typenameFromFilter(filter).pipe(\n Option.map((typename) => resolve(typename)),\n Option.getOrElse(() => Effect.succeed(Option.none<Schema.Schema.AnyNoContext>())),\n ),\n ),\n Match.when({ type: 'reference-traversal' }, ({ anchor, property }) =>\n resolveSchema(anchor, resolve).pipe(\n Effect.map((base) =>\n base.pipe(\n Option.map((schema) => SchemaAST.getPropertySignatures(schema.ast)),\n Option.flatMap((properties) => Array.findFirst(properties, (p) => p.name === property)),\n Option.flatMap((property) =>\n SchemaAST.getAnnotation<ReferenceAnnotationValue>(ReferenceAnnotationId)(unwrapOptional(property)),\n ),\n Option.map((annotation) => annotation.typename),\n ),\n ),\n Effect.flatMap(\n Option.match({\n onNone: () => Effect.succeed(Option.none()),\n onSome: (typename) => resolve(DXN.fromTypename(typename).toString()),\n }),\n ),\n ),\n ),\n Match.when({ type: 'relation', filter: Match.defined }, ({ filter }) =>\n typenameFromFilter(filter).pipe(\n Option.map((typename) => resolve(typename)),\n Option.getOrElse(() => Effect.succeed(Option.none<Schema.Schema.AnyNoContext>())),\n ),\n ),\n Match.when({ type: 'relation-traversal' }, ({ anchor, direction }) =>\n resolveSchema(anchor, resolve).pipe(\n Effect.map((base) =>\n base.pipe(\n Option.map((schema) => getTypeAnnotation(schema)),\n Option.flatMap((annotation) =>\n Option.fromNullable(direction === 'source' ? annotation?.sourceSchema : annotation?.targetSchema),\n ),\n ),\n ),\n Effect.flatMap(\n Option.match({\n onNone: () => Effect.succeed(Option.none()),\n onSome: (typename) => resolve(typename),\n }),\n ),\n ),\n ),\n Match.when({ type: 'options' }, ({ query }) => resolveSchema(query, resolve)),\n Match.orElse((_q) => {\n // TODO(wittjosiah): Implement other cases.\n return Effect.succeed(Option.none());\n }),\n );\n};\n\nconst typenameFromFilter = (filter: QueryAST.Filter): Option.Option<string> =>\n Match.value(filter).pipe(\n Match.withReturnType<Option.Option<string>>(),\n Match.when({ type: 'object' }, ({ typename }) => Option.fromNullable(typename)),\n Match.when({ type: 'and' }, ({ filters }) =>\n EffectFunction.pipe(filters, Array.map(typenameFromFilter), Array.findFirst(Option.isSome), Option.flatten),\n ),\n Match.when({ type: 'or' }, ({ filters }) =>\n EffectFunction.pipe(filters, Array.map(typenameFromFilter), Array.findFirst(Option.isSome), Option.flatten),\n ),\n Match.orElse(() => Option.none()),\n );\n\n// TODO(wittjosiah): Currently assumes options is at the top-level of the ast.\nexport const getQueryTarget = (query: QueryAST.Query, space?: Space) => {\n return Match.value(query).pipe(\n Match.when({ type: 'options' }, ({ options }) => {\n return Option.fromNullable(options.queues).pipe(\n Option.flatMap((queues) => Array.head(queues)),\n Option.flatMap((queueDxn) => Option.fromNullable(DXN.tryParse(queueDxn))),\n Option.flatMap((queueDxn) => Option.fromNullable(space?.queues.get(queueDxn))),\n Option.getOrElse(() => space),\n );\n }),\n Match.orElse(() => space),\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useState } from 'react';\n\nimport { createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { DXN, Filter, Obj, Query, type QueryAST, Tag, Type } from '@dxos/echo';\nimport { useClient } from '@dxos/react-client';\nimport { getSpace, useQuery } from '@dxos/react-client/echo';\nimport { useAsyncEffect } from '@dxos/react-ui';\nimport { ViewEditor as NaturalViewEditor } from '@dxos/react-ui-form';\nimport { View } from '@dxos/schema';\n\nimport { resolveSchemaWithClientAndSpace } from '../helpers';\nimport { useTypeOptions } from '../hooks';\nimport { SpaceAction } from '../types';\n\nexport type ViewEditorProps = { view: View.View };\n\nexport const ViewEditor = ({ view }: ViewEditorProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const space = getSpace(view);\n const [schema, setSchema] = useState<Schema.Schema.AnyNoContext>(() => Schema.Struct({}));\n const tags = useQuery(space, Filter.type(Tag.Tag));\n const types = useTypeOptions({\n space,\n annotation: {\n location: ['database', 'runtime'],\n kind: ['user'],\n registered: ['registered'],\n },\n });\n\n useAsyncEffect(async () => {\n if (!view?.query || !space) {\n return;\n }\n\n const foundSchema = await resolveSchemaWithClientAndSpace(space, view.query.ast);\n if (foundSchema && foundSchema !== schema) {\n setSchema(() => foundSchema);\n }\n }, [client, space, view, schema]);\n\n const handleQueryChanged = useCallback(\n async (newQuery: QueryAST.Query, target?: string) => {\n if (!view || !space) {\n return;\n }\n\n const queue = target && DXN.tryParse(target) ? target : undefined;\n const query = queue ? Query.fromAst(newQuery).options({ queues: [queue] }) : Query.fromAst(newQuery);\n view.query.ast = query.ast;\n const newSchema = await resolveSchemaWithClientAndSpace(space, query.ast);\n if (!newSchema) {\n return;\n }\n\n const newView = View.make({\n query,\n jsonSchema: Type.toJsonSchema(newSchema),\n });\n view.projection = Obj.getSnapshot(newView).projection;\n\n setSchema(() => newSchema);\n },\n [view, schema],\n );\n\n const handleDelete = useCallback(\n (fieldId: string) => {\n void dispatch(createIntent(SpaceAction.DeleteField, { view, fieldId }));\n },\n [dispatch, view],\n );\n\n if (!space || !schema) {\n return null;\n }\n\n return (\n <NaturalViewEditor\n registry={space.db.schemaRegistry}\n schema={schema}\n view={view}\n mode='tag'\n tags={tags}\n types={types}\n onQueryChanged={handleQueryChanged}\n onDelete={Type.isMutable(schema) ? handleDelete : undefined}\n />\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AwaitingObject';\nexport * from './CreateDialog';\nexport * from './CollectionSection';\nexport * from './JoinDialog';\nexport * from './MembersContainer';\nexport * from './MenuFooter';\nexport * from './ObjectRenamePopover';\nexport * from './SchemaContainer';\nexport * from './SpacePluginSettings';\nexport * from './SpacePresence';\nexport * from './SpaceRenamePopover';\nexport * from './SpaceSettings';\nexport * from './SyncStatus';\nexport * from './ViewEditor';\n\nexport const CollectionArticle = lazy(() => import('./CollectionArticle'));\nexport const ObjectCardStack = lazy(() => import('./ObjectCardStack'));\nexport const ObjectDetails = lazy(() => import('./ObjectDetails'));\nexport const RecordArticle = lazy(() => import('./RecordArticle'));\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useEffect", "useState", "LayoutAction", "createIntent", "useIntentDispatcher", "useLayout", "Obj", "useClient", "Filter", "useQuery", "Button", "Icon", "Toast", "useTranslation", "WAIT_FOR_OBJECT_TIMEOUT", "TOAST_TIMEOUT", "AwaitingObject", "id", "t", "useTranslation", "meta", "dispatchPromise", "dispatch", "useIntentDispatcher", "open", "setOpen", "useState", "waiting", "setWaiting", "found", "setFound", "layout", "useLayout", "client", "useClient", "objects", "useQuery", "spaces", "Filter", "everything", "useEffect", "timeout", "setTimeout", "clearTimeout", "findIndex", "object", "Obj", "getDXN", "toString", "active", "includes", "handleClose", "useCallback", "createIntent", "SpaceAction", "WaitForObject", "undefined", "handleNavigate", "LayoutAction", "Open", "part", "subject", "Toast", "Root", "duration", "onOpenChange", "Body", "Title", "classNames", "Icon", "icon", "size", "span", "Description", "Actions", "Action", "altText", "asChild", "Button", "variant", "onClick", "Close", "ns", "Effect", "Function", "Option", "React", "useCallback", "useMemo", "useRef", "useState", "Capabilities", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "usePluginManager", "Obj", "Type", "EntityKind", "SystemTypeAnnotation", "getTypeAnnotation", "invariant", "useClient", "getSpace", "isLiveObject", "isSpace", "useSpaces", "Dialog", "IconButton", "useTranslation", "cardDialogContent", "cardDialogHeader", "Option", "React", "useCallback", "getTypeAnnotation", "Icon", "toLocalizedString", "useDefaultValue", "useTranslation", "Form", "omitId", "SearchList", "cardDialogOverflow", "cardDialogPaddedOverflow", "cardDialogSearchListRoot", "ViewAnnotation", "isNonNullable", "CreateObjectPanel", "schemas", "spaces", "typename", "target", "views", "initialFormValues", "_initialFormValues", "defaultSpaceId", "resolve", "onTargetChange", "onTypenameChange", "onCreateObject", "t", "useTranslation", "meta", "id", "useDefaultValue", "metadata", "options", "filter", "schema", "ViewAnnotation", "get", "pipe", "getOrElse", "map", "getTypeAnnotation", "isNonNullable", "sort", "a", "b", "nameA", "ns", "defaultValue", "nameB", "localeCompare", "handleCreateObject", "useCallback", "props", "data", "handleSetTypename", "inputSchema", "inputSurfaceLookup", "useInputSurfaceLookup", "React", "SelectSchema", "onChange", "SelectSpace", "Form", "Root", "testId", "autoFocus", "omitId", "values", "fieldProvider", "onSave", "Viewport", "Content", "FieldSet", "Submit", "SearchList", "label", "classNames", "cardDialogSearchListRoot", "Input", "data-testid", "placeholder", "cardDialogOverflow", "aName", "toLocalizedString", "getSpaceDisplayName", "personal", "bName", "space", "Item", "key", "value", "onSelect", "span", "className", "cardDialogPaddedOverflow", "option", "Icon", "icon", "size", "CREATE_OBJECT_DIALOG", "meta", "id", "CreateObjectDialog", "target", "initialTarget", "typename", "initialTypename", "views", "initialFormValues", "onCreateObject", "shouldNavigate", "_shouldNavigate", "manager", "usePluginManager", "t", "useTranslation", "dispatch", "useIntentDispatcher", "setTarget", "useState", "setTypename", "client", "useClient", "spaces", "useSpaces", "closeRef", "useRef", "resolve", "useCallback", "metadata", "context", "getCapabilities", "Capabilities", "Metadata", "find", "createObjectIntent", "undefined", "space", "isSpace", "getSpace", "schemas", "db", "schemaRegistry", "query", "location", "runSync", "userSchemas", "useMemo", "filter", "schema", "getTypeAnnotation", "kind", "EntityKind", "Relation", "Type", "getTypename", "SystemTypeAnnotation", "get", "pipe", "getOrElse", "handleCreateObject", "data", "gen", "current", "click", "invariant", "object", "isLiveObject", "Obj", "instanceOf", "PersistentType", "hidden", "addToCollectionOnCreate", "addObjectIntent", "createIntent", "SpaceAction", "AddObject", "chain", "LayoutAction", "Open", "part", "runPromise", "React", "Dialog", "Content", "classNames", "cardDialogContent", "div", "role", "className", "cardDialogHeader", "Title", "ns", "defaultValue", "Close", "asChild", "IconButton", "ref", "icon", "size", "label", "iconOnly", "density", "variant", "autoFocus", "CreateObjectPanel", "defaultSpaceId", "default", "onTargetChange", "onTypenameChange", "Effect", "React", "useCallback", "useRef", "LayoutAction", "createIntent", "useIntentDispatcher", "Dialog", "IconButton", "useTranslation", "Form", "cardDialogContent", "cardDialogHeader", "CREATE_SPACE_DIALOG", "meta", "id", "initialValues", "edgeReplication", "CreateSpaceDialog", "closeRef", "useRef", "t", "useTranslation", "dispatch", "useIntentDispatcher", "inputSurfaceLookup", "useInputSurfaceLookup", "handleCreateSpace", "useCallback", "data", "program", "gen", "space", "createIntent", "SpaceAction", "Create", "LayoutAction", "SwitchWorkspace", "part", "subject", "UpdateDialog", "options", "state", "runPromise", "React", "Dialog", "Content", "classNames", "cardDialogContent", "div", "role", "className", "cardDialogHeader", "Title", "Close", "asChild", "IconButton", "ref", "icon", "size", "label", "iconOnly", "density", "variant", "autoFocus", "Form", "Root", "testId", "schema", "SpaceForm", "values", "fieldProvider", "onSave", "Viewport", "FieldSet", "Submit", "React", "useTranslation", "CollectionSection", "role", "subject", "t", "useTranslation", "meta", "id", "React", "div", "className", "span", "name", "React", "useCallback", "LayoutAction", "createIntent", "useAppGraph", "useIntentDispatcher", "Trigger", "ObservabilityAction", "useClient", "Dialog", "useTranslation", "JoinPanel", "JOIN_DIALOG", "meta", "id", "JoinDialog", "navigableCollections", "onDone", "props", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "graph", "useAppGraph", "t", "useTranslation", "handleDone", "useCallback", "result", "spaceKey", "Promise", "all", "createIntent", "LayoutAction", "AddToast", "part", "subject", "duration", "title", "ns", "closeLabel", "UpdateDialog", "options", "state", "space", "spaces", "get", "trigger", "Trigger", "subscribe", "wake", "wait", "SwitchWorkspace", "target", "undefined", "waitForPath", "catch", "Open", "Expose", "ObservabilityAction", "SendEvent", "name", "properties", "spaceId", "React", "Dialog", "Content", "Title", "classNames", "JoinPanel", "exitActionParent", "Close", "asChild", "doneActionParent", "React", "useCallback", "useMemo", "useState", "QR", "createIntent", "useIntentDispatcher", "Obj", "log", "useConfig", "useSpaceInvitations", "Invitation", "InvitationEncoder", "Button", "Clipboard", "Icon", "Input", "useId", "useTranslation", "ControlFrame", "ControlFrameItem", "ControlItemInput", "ControlPage", "ControlSection", "StackItem", "Collection", "AuthCode", "BifurcatedAction", "Centered", "Emoji", "InvitationList", "SpaceMemberList", "Viewport", "hexToEmoji", "activeActionKey", "handleInvitationEvent", "invitation", "subscription", "invitationCode", "InvitationEncoder", "encode", "state", "Invitation", "State", "CONNECTING", "log", "info", "JSON", "stringify", "authCode", "unsubscribe", "MembersContainer", "space", "createInvitationUrl", "t", "useTranslation", "meta", "id", "config", "useConfig", "dispatchPromise", "dispatch", "useIntentDispatcher", "invitations", "useSpaceInvitations", "key", "visibleInvitations", "filter", "CANCELLED", "includes", "get", "activeAction", "setInternalActiveAction", "useState", "localStorage", "getItem", "setActiveAction", "nextAction", "setItem", "target", "properties", "Collection", "typename", "objects", "locked", "COMPOSER_SPACE_LOCK", "handleChangeLocked", "useCallback", "inviteActions", "useMemo", "inviteOne", "label", "ns", "description", "icon", "testId", "onClick", "data", "createIntent", "SpaceAction", "Share", "type", "Type", "INTERACTIVE", "authMethod", "AuthMethod", "SHARED_SECRET", "multiUse", "Obj", "getDXN", "toString", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "subscribe", "inviteMany", "DELEGATED", "KNOWN_PUBLIC_KEY", "selectedInvitation", "setSelectedInvitation", "handleSend", "event", "handleBack", "React", "Clipboard", "Provider", "StackItem", "Content", "scrollable", "ControlPage", "ControlSection", "title", "ControlFrame", "ControlFrameItem", "SpaceMemberList", "spaceKey", "includeSelf", "p", "className", "InvitationSection", "onBack", "InvitationList", "send", "onClickRemove", "cancel", "BifurcatedAction", "actions", "onChangeActiveAction", "data-testid", "div", "ControlItemInput", "Input", "Switch", "checked", "onCheckedChange", "classNames", "INIT", "invitationId", "url", "activeView", "READY_FOR_AUTHENTICATION", "Viewport", "Root", "Views", "View", "InvitationComplete", "statusValue", "InvitationAuthCode", "code", "onCancel", "InvitationQR", "qrLabel", "useId", "emoji", "hexToEmoji", "role", "QR", "rounding", "backgroundColor", "color", "aria-labelledby", "errorCorrectionLevel", "cutout", "Centered", "Emoji", "text", "span", "Button", "value", "variant", "AuthCode", "large", "Icon", "size", "React", "getSpace", "useClient", "DropdownMenu", "Icon", "toLocalizedString", "useTranslation", "MenuFooter", "object", "t", "useTranslation", "meta", "id", "client", "useClient", "space", "getSpace", "spaceName", "getSpaceDisplayName", "personal", "spaces", "default", "React", "DropdownMenu", "Separator", "GroupLabel", "dl", "className", "dt", "dd", "Icon", "icon", "classNames", "toLocalizedString", "React", "useCallback", "useRef", "useState", "LayoutAction", "createIntent", "useIntentDispatcher", "Obj", "log", "Button", "Input", "useTranslation", "OBJECT_RENAME_POPOVER", "meta", "id", "ObjectRenamePopover", "object", "t", "useTranslation", "doneButton", "useRef", "name", "setName", "useState", "Obj", "getLabel", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleDone", "useCallback", "setLabel", "err", "log", "error", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "variant", "anchorId", "state", "React", "div", "role", "className", "Input", "Root", "Label", "srOnly", "TextInput", "placeholder", "value", "data-testid", "onChange", "target", "onKeyDown", "key", "current", "click", "Button", "ref", "classNames", "onClick", "ns", "React", "useEffect", "useState", "useTranslation", "ControlPage", "ControlSection", "controlItemClasses", "StackItem", "SchemaContainer", "space", "t", "useTranslation", "meta", "id", "schemas", "useQuerySpaceSchemas", "React", "StackItem", "Content", "scrollable", "ControlPage", "ControlSection", "title", "description", "div", "role", "className", "controlItemClasses", "length", "map", "schema", "key", "typename", "setSchemas", "useState", "useEffect", "query", "db", "schemaRegistry", "initialResults", "runSync", "unsubscribe", "subscribe", "results", "React", "createIntent", "useIntentDispatcher", "useClient", "useSpaces", "IconButton", "Input", "List", "ListItem", "toLocalizedString", "useTranslation", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "controlItemClasses", "SpacePluginSettings", "settings", "t", "useTranslation", "meta", "id", "client", "useClient", "spaces", "useSpaces", "all", "showHidden", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "ControlPage", "ControlSection", "title", "description", "ControlGroup", "ControlItemInput", "Input", "Switch", "checked", "onCheckedChange", "List", "classNames", "controlItemClasses", "map", "space", "ListItem", "Root", "key", "Heading", "toLocalizedString", "getSpaceDisplayName", "personal", "default", "IconButton", "icon", "onClick", "createIntent", "SpaceAction", "OpenSettings", "label", "Option", "React", "forwardRef", "useCallback", "useEffect", "useState", "useAppGraph", "useCapability", "generateName", "Obj", "PublicKey", "useClient", "getSpace", "useMembers", "useIdentity", "Avatar", "List", "ListItem", "Popover", "Tooltip", "useDefaultValue", "useTranslation", "AttentionGlyph", "useAttended", "useAttention", "ComplexMap", "keyToFallback", "lazy", "AppGraphBuilder", "lazy", "AppGraphSerializer", "IdentityCreated", "IntentResolver", "ReactRoot", "ReactSurface", "Repair", "SpaceSettings", "SpaceState", "SpacesReady", "REFRESH_INTERVAL", "ACTIVITY_DURATION", "noViewers", "ComplexMap", "PublicKey", "hash", "getName", "identity", "profile", "displayName", "generateName", "identityKey", "toHex", "SpacePresence", "object", "spaceKey", "spaceState", "useCapability", "SpaceCapabilities", "MutableState", "client", "useClient", "useIdentity", "space", "spaces", "get", "getSpace", "spaceMembers", "useMembers", "key", "_moment", "setMoment", "useState", "Date", "now", "useEffect", "interval", "setInterval", "clearInterval", "memberOnline", "useCallback", "member", "presence", "memberIsNotSelf", "equals", "currentObjectViewers", "viewersByObject", "Obj", "getDXN", "toString", "membersForObject", "filter", "has", "map", "objectView", "lastSeen", "currentlyAttended", "toSorted", "a", "b", "React", "FullPresence", "members", "props", "size", "onMemberClick", "useDefaultValue", "length", "div", "className", "data-testid", "slice", "i", "Tooltip", "Trigger", "side", "content", "PresenceAvatar", "match", "index", "onClick", "Popover", "Root", "Avatar", "Content", "status", "style", "zIndex", "fallback", "Portal", "Arrow", "Viewport", "classNames", "List", "ListItem", "showName", "forwardRef", "forwardedRef", "fallbackValue", "keyToFallback", "hue", "data", "data-status", "emoji", "ref", "Label", "SmallPresenceLive", "id", "open", "viewers", "hasAttention", "isAncestor", "isRelated", "useAttention", "isAttended", "graph", "useAppGraph", "attended", "useAttended", "startOfAttention", "at", "path", "usePath", "containsAttended", "isSome", "value", "includes", "getActiveViewers", "moment", "Array", "from", "values", "viewer", "activeViewers", "setActiveViewers", "SmallPresence", "count", "t", "useTranslation", "meta", "asChild", "AttentionGlyph", "React", "useCallback", "useRef", "useState", "LayoutAction", "createIntent", "useIntentDispatcher", "Button", "Input", "Popover", "useTranslation", "SPACE_RENAME_POPOVER", "meta", "id", "SpaceRenamePopover", "space", "t", "useTranslation", "doneButton", "useRef", "name", "setName", "useState", "properties", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleDone", "useCallback", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "variant", "anchorId", "state", "React", "div", "role", "className", "Input", "Root", "Label", "srOnly", "TextInput", "defaultValue", "placeholder", "onChange", "target", "value", "onKeyDown", "key", "current", "click", "Popover", "Close", "asChild", "Button", "ref", "classNames", "onClick", "ns", "Function", "Schema", "React", "forwardRef", "useCallback", "useMemo", "useState", "LayoutAction", "chain", "createIntent", "useCapabilities", "useIntentDispatcher", "log", "EdgeReplicationSetting", "useClient", "SpaceState", "Button", "Input", "useFileDownload", "useMulticastObservable", "useTranslation", "ControlItem", "ControlItemInput", "ControlPage", "ControlSection", "Form", "HuePicker", "IconPicker", "StackItem", "SpaceFormSchema", "SpaceForm", "pipe", "extend", "Struct", "archived", "Boolean", "annotations", "title", "SpaceSettingsContainer", "forwardRef", "space", "forwardedRef", "t", "useTranslation", "meta", "id", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "useMulticastObservable", "state", "SpaceState", "SPACE_INACTIVE", "edgeReplication", "setEdgeReplication", "useState", "internal", "data", "EdgeReplicationSetting", "ENABLED", "toggleEdgeReplication", "useCallback", "next", "setEdgeReplicationPreference", "DISABLED", "catch", "err", "log", "handleSave", "properties", "name", "icon", "hue", "createIntent", "SpaceAction", "Close", "chain", "LayoutAction", "SwitchWorkspace", "part", "subject", "spaces", "default", "Open", "values", "useMemo", "fieldMap", "type", "label", "getValue", "onValueChange", "handleChange", "target", "value", "React", "ControlItemInput", "description", "Input", "TextInput", "onChange", "placeholder", "classNames", "handleReset", "undefined", "ControlItem", "IconPicker", "onReset", "nextHue", "HuePicker", "checked", "Switch", "onCheckedChange", "Button", "disabled", "variant", "onClick", "download", "useFileDownload", "handleBackup", "archive", "export", "Blob", "contents", "filename", "repairs", "useCapabilities", "SpaceCapabilities", "Repair", "handleRepair", "Promise", "all", "map", "repair", "isDefault", "StackItem", "Content", "scrollable", "ref", "ControlPage", "ControlSection", "ns", "Form", "Root", "schema", "autoSave", "onSave", "FieldSet", "div", "role", "className", "displayName", "Option", "React", "useEffect", "useState", "useAppGraph", "EdgeStatus", "EdgeReplicationSetting", "useClient", "useSpaceSyncState", "Tooltip", "useTranslation", "AttentionGlyph", "useAttended", "useAttention", "useEdgeStatus", "status", "setStatus", "useState", "EdgeStatus", "ConnectionState", "NOT_CONNECTED", "client", "useClient", "useEffect", "services", "EdgeAgentService", "queryEdgeStatus", "subscribe", "state", "InlineSyncStatus", "space", "open", "t", "useTranslation", "meta", "id", "hasAttention", "isAncestor", "isRelated", "useAttention", "isAttended", "graph", "useAppGraph", "attended", "useAttended", "startOfAttention", "at", "path", "usePath", "containsAttended", "isSome", "value", "includes", "connectedToEdge", "CONNECTED", "edgeSyncEnabled", "internal", "data", "edgeReplication", "EdgeReplicationSetting", "ENABLED", "syncState", "useSpaceSyncState", "syncing", "missingOnLocal", "React", "Tooltip", "Trigger", "asChild", "content", "side", "AttentionGlyph", "classNames", "React", "useEffect", "useState", "StatusBar", "EdgeStatus", "useClient", "useStream", "getSyncSummary", "useSyncState", "Icon", "Popover", "useTranslation", "mx", "Unit", "Context", "createClientSaveTracker", "client", "cb", "CleanupFns", "state", "install", "spaces", "space", "id", "createSpaceSaveTracker", "s", "Object", "values", "some", "subscribe", "get", "unsubscribe", "ctx", "waitUntilReady", "then", "disposed", "hasUnsavedChanges", "lastFlushPromise", "db", "saveStateChanged", "on", "unsavedDocuments", "length", "debounce", "undefined", "flushPromise", "flush", "dispose", "getStatus", "offline", "saved", "needsToUpload", "needsToDownload", "getIcon", "status", "SYNC_STALLED_TIMEOUT", "SyncStatus", "client", "useClient", "state", "useSyncState", "saved", "setSaved", "useState", "useEffect", "createClientSaveTracker", "React", "SyncStatusIndicator", "t", "useTranslation", "meta", "id", "summary", "getSyncSummary", "offline", "Object", "values", "length", "needsToUpload", "differentDocuments", "missingOnRemote", "needsToDownload", "missingOnLocal", "status", "getStatus", "classNames", "setClassNames", "undefined", "setTimeout", "clearTimeout", "title", "icon", "Icon", "getIcon", "Popover", "Root", "Trigger", "asChild", "StatusBar", "Item", "Portal", "Content", "EdgeConnectionPopover", "Arrow", "useEdgeStatus", "useStream", "services", "EdgeAgentService", "queryEdgeStatus", "isConnected", "EdgeStatus", "ConnectionState", "CONNECTED", "div", "className", "mx", "span", "NOT_CONNECTED", "UnitValue", "value", "rtt", "format", "Unit", "Millisecond", "rateBytesUp", "Kilobyte", "suffix", "rateBytesDown", "input", "formattedValue", "unit", "symbol", "Array", "Effect", "EffectFunction", "Match", "Option", "SchemaAST", "DXN", "Filter", "Query", "ReferenceAnnotationId", "getTypeAnnotation", "unwrapOptional", "log", "Person", "evalQuery", "queryString", "globals", "Function", "Object", "keys", "values", "err", "catch", "select", "nothing", "resolveSchemaWithClientAndSpace", "space", "query", "resolve", "fn", "dxn", "typename", "parse", "asTypeDXN", "type", "none", "db", "schemaRegistry", "location", "schemas", "promise", "run", "head", "resolveSchema", "pipe", "map", "schema", "getOrUndefined", "runPromise", "value", "withReturnType", "when", "filter", "typenameFromFilter", "getOrElse", "succeed", "anchor", "property", "base", "getPropertySignatures", "ast", "flatMap", "properties", "findFirst", "p", "name", "getAnnotation", "annotation", "match", "onNone", "onSome", "fromTypename", "toString", "defined", "direction", "fromNullable", "sourceSchema", "targetSchema", "orElse", "_q", "filters", "isSome", "flatten", "getQueryTarget", "options", "queues", "queueDxn", "tryParse", "get", "Schema", "React", "useCallback", "useState", "createIntent", "useIntentDispatcher", "DXN", "Filter", "Obj", "Query", "Tag", "Type", "useClient", "getSpace", "useQuery", "useAsyncEffect", "ViewEditor", "NaturalViewEditor", "View", "ViewEditor", "view", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "space", "getSpace", "schema", "setSchema", "useState", "Struct", "tags", "useQuery", "Filter", "type", "Tag", "types", "useTypeOptions", "annotation", "location", "kind", "registered", "useAsyncEffect", "query", "foundSchema", "resolveSchemaWithClientAndSpace", "ast", "handleQueryChanged", "useCallback", "newQuery", "target", "queue", "DXN", "tryParse", "undefined", "Query", "fromAst", "options", "queues", "newSchema", "newView", "View", "make", "jsonSchema", "Type", "toJsonSchema", "projection", "Obj", "getSnapshot", "handleDelete", "fieldId", "createIntent", "SpaceAction", "DeleteField", "React", "NaturalViewEditor", "registry", "db", "schemaRegistry", "mode", "onQueryChanged", "onDelete", "isMutable", "lazy", "CollectionArticle", "lazy", "ObjectCardStack", "ObjectDetails", "RecordArticle"]
7
+ }
@@ -1,25 +1,25 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
3
  // src/capabilities/identity-created.ts
4
- import { contributes, Capabilities } from "@dxos/app-framework";
4
+ import { Capabilities, contributes } from "@dxos/app-framework";
5
5
  import { Obj, Ref } from "@dxos/echo";
6
6
  import { Migrations } from "@dxos/migrations";
7
7
  import { ClientCapabilities } from "@dxos/plugin-client";
8
- import { DataType } from "@dxos/schema";
9
- var identity_created_default = async (context) => {
8
+ import { Collection } from "@dxos/schema";
9
+ var identity_created_default = (async (context) => {
10
10
  const client = context.getCapability(ClientCapabilities.Client);
11
11
  await client.spaces.waitUntilReady();
12
12
  const defaultSpace = client.spaces.default;
13
13
  await defaultSpace.waitUntilReady();
14
- defaultSpace.properties[DataType.Collection.typename] = Ref.make(Obj.make(DataType.Collection, {
14
+ defaultSpace.properties[Collection.Collection.typename] = Ref.make(Obj.make(Collection.Collection, {
15
15
  objects: []
16
16
  }));
17
17
  if (Migrations.versionProperty) {
18
18
  defaultSpace.properties[Migrations.versionProperty] = Migrations.targetVersion;
19
19
  }
20
20
  return contributes(Capabilities.Null, null);
21
- };
21
+ });
22
22
  export {
23
23
  identity_created_default as default
24
24
  };
25
- //# sourceMappingURL=identity-created-IJQO6GCR.mjs.map
25
+ //# sourceMappingURL=identity-created-OXLKCJE3.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/identity-created.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { Obj, Ref } from '@dxos/echo';\nimport { Migrations } from '@dxos/migrations';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { Collection } from '@dxos/schema';\n\nexport default async (context: PluginContext) => {\n const client = context.getCapability(ClientCapabilities.Client);\n await client.spaces.waitUntilReady();\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n // Create root collection structure.\n defaultSpace.properties[Collection.Collection.typename] = Ref.make(Obj.make(Collection.Collection, { objects: [] }));\n if (Migrations.versionProperty) {\n defaultSpace.properties[Migrations.versionProperty] = Migrations.targetVersion;\n }\n\n return contributes(Capabilities.Null, null);\n};\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAkCC,mBAAmB;AAC9D,SAASC,KAAKC,WAAW;AACzB,SAASC,kBAAkB;AAC3B,SAASC,0BAA0B;AACnC,SAASC,kBAAkB;AAE3B,IAAA,4BAAe,OAAOC,YAAAA;AACpB,QAAMC,SAASD,QAAQE,cAAcC,mBAAmBC,MAAM;AAC9D,QAAMH,OAAOI,OAAOC,eAAc;AAElC,QAAMC,eAAeN,OAAOI,OAAOG;AACnC,QAAMD,aAAaD,eAAc;AAGjCC,eAAaE,WAAWC,WAAWA,WAAWC,QAAQ,IAAIC,IAAIC,KAAKC,IAAID,KAAKH,WAAWA,YAAY;IAAEK,SAAS,CAAA;EAAG,CAAA,CAAA;AACjH,MAAIC,WAAWC,iBAAiB;AAC9BV,iBAAaE,WAAWO,WAAWC,eAAe,IAAID,WAAWE;EACnE;AAEA,SAAOC,YAAYC,aAAaC,MAAM,IAAA;AACxC;",
6
+ "names": ["Capabilities", "contributes", "Obj", "Ref", "Migrations", "ClientCapabilities", "Collection", "context", "client", "getCapability", "ClientCapabilities", "Client", "spaces", "waitUntilReady", "defaultSpace", "default", "properties", "Collection", "typename", "Ref", "make", "Obj", "objects", "Migrations", "versionProperty", "targetVersion", "contributes", "Capabilities", "Null"]
7
+ }