@dxos/plugin-space 0.8.4-main.fd6878d → 0.8.4-main.fffef41

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 (366) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionArticle-WTHWY4YS.mjs} +10 -10
  2. package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs +141 -0
  4. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs +144 -0
  6. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs +116 -0
  8. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-VZW75QPJ.mjs → app-graph-builder-DTM7BJ6D.mjs} +114 -97
  10. package/dist/lib/browser/app-graph-builder-DTM7BJ6D.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-YPHYVZAP.mjs → app-graph-serializer-TIKXF43P.mjs} +19 -19
  12. package/dist/lib/browser/app-graph-serializer-TIKXF43P.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-AFUOMLX6.mjs +167 -0
  14. package/dist/lib/browser/chunk-AFUOMLX6.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-PSIBVBTA.mjs → chunk-CKACGS7T.mjs} +576 -500
  16. package/dist/lib/browser/chunk-CKACGS7T.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-K5J7ZB5P.mjs +20 -0
  18. package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-SMB4DGYO.mjs → chunk-KFUMADZF.mjs} +184 -60
  20. package/dist/lib/browser/chunk-KFUMADZF.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-WAXS2ZVX.mjs → chunk-VGKOXAPE.mjs} +27 -13
  22. package/dist/lib/browser/chunk-VGKOXAPE.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-3UFG6LQQ.mjs → chunk-ZQMSGD5J.mjs} +44 -22
  28. package/dist/lib/browser/chunk-ZQMSGD5J.mjs.map +7 -0
  29. package/dist/lib/browser/{identity-created-T6ZNVE7S.mjs → identity-created-NAXTPQXE.mjs} +5 -5
  30. package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +89 -91
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-TS6CCKST.mjs → intent-resolver-3FNTO3VW.mjs} +103 -85
  34. package/dist/lib/browser/intent-resolver-3FNTO3VW.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/react-root-Q7VBWBES.mjs +30 -0
  37. package/dist/lib/browser/react-root-Q7VBWBES.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-V3ARS2BP.mjs → react-surface-TTHS332A.mjs} +75 -109
  39. package/dist/lib/browser/react-surface-TTHS332A.mjs.map +7 -0
  40. package/dist/lib/browser/{schema-defs-5LBA43X5.mjs → schema-defs-QPI2JU3X.mjs} +6 -6
  41. package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-FLLBP5KI.mjs → settings-45PGPO2V.mjs} +5 -5
  43. package/dist/lib/browser/{settings-FLLBP5KI.mjs.map → settings-45PGPO2V.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-FXEP6XEW.mjs → spaces-ready-QCND4DVY.mjs} +15 -14
  45. package/dist/lib/browser/spaces-ready-QCND4DVY.mjs.map +7 -0
  46. package/dist/lib/browser/{state-K3UBPKYP.mjs → state-Q7YRE5KG.mjs} +7 -7
  47. package/dist/lib/browser/state-Q7YRE5KG.mjs.map +7 -0
  48. package/dist/lib/browser/types/index.mjs +2 -2
  49. package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionArticle-KHXYT3SH.mjs} +10 -10
  50. package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
  51. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs +142 -0
  52. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs +145 -0
  54. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs.map +7 -0
  55. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs +117 -0
  56. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs.map +7 -0
  57. package/dist/lib/node-esm/{app-graph-builder-XNVQOJLE.mjs → app-graph-builder-FBJFWI4H.mjs} +114 -97
  58. package/dist/lib/node-esm/app-graph-builder-FBJFWI4H.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-PKVLWV6V.mjs → app-graph-serializer-BESQZAYU.mjs} +19 -19
  60. package/dist/lib/node-esm/app-graph-serializer-BESQZAYU.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-S7MKRQHY.mjs → chunk-6VEONPNZ.mjs} +44 -22
  62. package/dist/lib/node-esm/chunk-6VEONPNZ.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-6ZQGZBEP.mjs +168 -0
  64. package/dist/lib/node-esm/chunk-6ZQGZBEP.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-CTQMR7E3.mjs → chunk-OK2L7N2F.mjs} +184 -60
  70. package/dist/lib/node-esm/chunk-OK2L7N2F.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-HYIZVPOA.mjs → chunk-QBRPYAEL.mjs} +27 -13
  72. package/dist/lib/node-esm/chunk-QBRPYAEL.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-KYUHPPRN.mjs → chunk-XGAMJC5C.mjs} +576 -500
  74. package/dist/lib/node-esm/chunk-XGAMJC5C.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs +21 -0
  76. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +7 -0
  77. package/dist/lib/node-esm/{identity-created-AL7NNCKH.mjs → identity-created-OXLKCJE3.mjs} +5 -5
  78. package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +89 -91
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-W6P27SCF.mjs → intent-resolver-6O5FSB7Z.mjs} +103 -85
  82. package/dist/lib/node-esm/intent-resolver-6O5FSB7Z.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/{react-root-N27KETKT.mjs → react-root-K66W3FMA.mjs} +13 -12
  85. package/dist/lib/node-esm/react-root-K66W3FMA.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-TNPAUQCM.mjs → react-surface-Y7FTEIDF.mjs} +75 -109
  87. package/dist/lib/node-esm/react-surface-Y7FTEIDF.mjs.map +7 -0
  88. package/dist/lib/node-esm/{schema-defs-TPWZPDCR.mjs → schema-defs-ZS2D47XW.mjs} +6 -6
  89. package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs.map +7 -0
  90. package/dist/lib/node-esm/{settings-WKUWY3P6.mjs → settings-6FO65BA6.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-WKUWY3P6.mjs.map → settings-6FO65BA6.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-PQLLIO5W.mjs → spaces-ready-P7CKVXBE.mjs} +15 -14
  93. package/dist/lib/node-esm/spaces-ready-P7CKVXBE.mjs.map +7 -0
  94. package/dist/lib/node-esm/{state-4M5A6OSB.mjs → state-362I5BMK.mjs} +7 -7
  95. package/dist/lib/node-esm/state-362I5BMK.mjs.map +7 -0
  96. package/dist/lib/node-esm/types/index.mjs +2 -2
  97. package/dist/types/src/SpacePlugin.d.ts +1 -1
  98. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  100. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  102. package/dist/types/src/capabilities/capabilities.d.ts +6 -5
  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/index.d.ts +11 -12
  106. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  108. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  110. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  112. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  114. package/dist/types/src/capabilities/settings.d.ts +1 -1
  115. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  116. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/state.d.ts +1 -1
  118. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  119. package/dist/types/src/components/CollectionArticle.d.ts +6 -0
  120. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  121. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  122. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  123. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -3
  124. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  125. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1704 -4
  126. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  127. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +6 -4
  128. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  129. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  130. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  131. package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
  132. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  133. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  134. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  135. package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
  136. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  137. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1707 -0
  138. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -0
  139. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  140. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  141. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  142. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  143. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  144. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  145. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  146. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  147. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  148. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  149. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  150. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  151. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  152. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  153. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1540 -0
  154. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  155. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  156. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  157. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  158. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  159. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  160. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  161. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  162. package/dist/types/src/components/RecordArticle.stories.d.ts +1707 -0
  163. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  164. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  165. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  166. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  167. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +4 -3
  168. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  169. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +1537 -0
  170. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
  171. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  172. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  173. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  174. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  175. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  176. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  177. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  178. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1537 -4
  179. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  180. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  181. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1538 -5
  182. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  183. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  184. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  185. package/dist/types/src/components/index.d.ts +10 -14
  186. package/dist/types/src/components/index.d.ts.map +1 -1
  187. package/dist/types/src/events.d.ts.map +1 -1
  188. package/dist/types/src/helpers/index.d.ts +2 -0
  189. package/dist/types/src/helpers/index.d.ts.map +1 -0
  190. package/dist/types/src/helpers/query.d.ts +8 -0
  191. package/dist/types/src/helpers/query.d.ts.map +1 -0
  192. package/dist/types/src/helpers/query.test.d.ts +2 -0
  193. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  194. package/dist/types/src/hooks/index.d.ts +1 -0
  195. package/dist/types/src/hooks/index.d.ts.map +1 -1
  196. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  197. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  198. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  199. package/dist/types/src/hooks/usePath.d.ts +1 -1
  200. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  201. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  202. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  203. package/dist/types/src/index.d.ts +1 -0
  204. package/dist/types/src/index.d.ts.map +1 -1
  205. package/dist/types/src/meta.d.ts +0 -1
  206. package/dist/types/src/meta.d.ts.map +1 -1
  207. package/dist/types/src/translations.d.ts +1332 -22
  208. package/dist/types/src/translations.d.ts.map +1 -1
  209. package/dist/types/src/types/types.d.ts +92 -97
  210. package/dist/types/src/types/types.d.ts.map +1 -1
  211. package/dist/types/src/util.d.ts +12 -8
  212. package/dist/types/src/util.d.ts.map +1 -1
  213. package/dist/types/tsconfig.tsbuildinfo +1 -1
  214. package/package.json +65 -59
  215. package/src/SpacePlugin.ts +228 -218
  216. package/src/capabilities/app-graph-builder.ts +184 -135
  217. package/src/capabilities/app-graph-serializer.ts +12 -12
  218. package/src/capabilities/capabilities.ts +17 -11
  219. package/src/capabilities/identity-created.ts +2 -2
  220. package/src/capabilities/index.ts +0 -1
  221. package/src/capabilities/intent-resolver.ts +89 -62
  222. package/src/capabilities/react-root.tsx +4 -3
  223. package/src/capabilities/react-surface.tsx +69 -145
  224. package/src/capabilities/schema-defs.ts +1 -1
  225. package/src/capabilities/spaces-ready.ts +8 -5
  226. package/src/capabilities/state.ts +2 -2
  227. package/src/components/AwaitingObject.tsx +12 -14
  228. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
  229. package/src/components/CollectionSection.tsx +8 -6
  230. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +15 -15
  231. package/src/components/CreateDialog/CreateObjectDialog.tsx +48 -31
  232. package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
  233. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -11
  234. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
  235. package/src/components/JoinDialog/index.ts +5 -0
  236. package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
  237. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +21 -20
  238. package/src/components/MembersContainer/index.ts +5 -0
  239. package/src/components/MenuFooter.tsx +2 -2
  240. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +51 -0
  241. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
  242. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  243. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +6 -6
  244. package/src/components/ObjectRenamePopover/index.ts +5 -0
  245. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -3
  246. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  247. package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
  248. package/src/components/ObjectSettings/ForeignKeys.tsx +4 -4
  249. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +4 -3
  250. package/src/components/ObjectSettings/index.ts +3 -1
  251. package/src/components/RecordArticle.stories.tsx +115 -0
  252. package/src/components/RecordArticle.tsx +114 -0
  253. package/src/components/SchemaContainer.tsx +23 -26
  254. package/src/components/SpacePluginSettings.tsx +15 -10
  255. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +22 -22
  256. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +16 -11
  257. package/src/components/SpacePresence/index.ts +5 -0
  258. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
  259. package/src/components/SpaceRenamePopover/index.ts +5 -0
  260. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +15 -8
  261. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +45 -24
  262. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  263. package/src/components/SyncStatus/SyncStatus.stories.tsx +7 -8
  264. package/src/components/SyncStatus/SyncStatus.tsx +107 -11
  265. package/src/components/ViewEditor.tsx +51 -23
  266. package/src/components/index.ts +7 -8
  267. package/src/events.ts +6 -6
  268. package/src/helpers/index.ts +5 -0
  269. package/src/helpers/query.test.ts +24 -0
  270. package/src/helpers/query.ts +158 -0
  271. package/src/hooks/index.ts +1 -0
  272. package/src/hooks/useActiveSpace.ts +3 -2
  273. package/src/hooks/useInputSurfaceLookup.tsx +8 -3
  274. package/src/hooks/usePath.ts +1 -1
  275. package/src/hooks/useTypeOptions.ts +59 -0
  276. package/src/index.ts +1 -0
  277. package/src/meta.ts +6 -3
  278. package/src/translations.ts +26 -10
  279. package/src/types/types.ts +42 -23
  280. package/src/util.tsx +183 -62
  281. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  282. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs +0 -88
  283. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs.map +0 -7
  284. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +0 -68
  285. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +0 -7
  286. package/dist/lib/browser/app-graph-builder-VZW75QPJ.mjs.map +0 -7
  287. package/dist/lib/browser/app-graph-serializer-YPHYVZAP.mjs.map +0 -7
  288. package/dist/lib/browser/chunk-3UFG6LQQ.mjs.map +0 -7
  289. package/dist/lib/browser/chunk-CBYL62HG.mjs +0 -19
  290. package/dist/lib/browser/chunk-CBYL62HG.mjs.map +0 -7
  291. package/dist/lib/browser/chunk-DYKFFVN6.mjs +0 -94
  292. package/dist/lib/browser/chunk-DYKFFVN6.mjs.map +0 -7
  293. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  294. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  295. package/dist/lib/browser/chunk-PSIBVBTA.mjs.map +0 -7
  296. package/dist/lib/browser/chunk-Q5EEPP3S.mjs +0 -20
  297. package/dist/lib/browser/chunk-Q5EEPP3S.mjs.map +0 -7
  298. package/dist/lib/browser/chunk-SMB4DGYO.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-WAXS2ZVX.mjs.map +0 -7
  300. package/dist/lib/browser/identity-created-T6ZNVE7S.mjs.map +0 -7
  301. package/dist/lib/browser/intent-resolver-TS6CCKST.mjs.map +0 -7
  302. package/dist/lib/browser/react-root-RQGTZ2ZO.mjs +0 -29
  303. package/dist/lib/browser/react-root-RQGTZ2ZO.mjs.map +0 -7
  304. package/dist/lib/browser/react-surface-V3ARS2BP.mjs.map +0 -7
  305. package/dist/lib/browser/schema-defs-5LBA43X5.mjs.map +0 -7
  306. package/dist/lib/browser/schema-tools-LPL35WOJ.mjs +0 -124
  307. package/dist/lib/browser/schema-tools-LPL35WOJ.mjs.map +0 -7
  308. package/dist/lib/browser/spaces-ready-FXEP6XEW.mjs.map +0 -7
  309. package/dist/lib/browser/state-K3UBPKYP.mjs.map +0 -7
  310. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  311. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs +0 -89
  312. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs.map +0 -7
  313. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +0 -70
  314. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +0 -7
  315. package/dist/lib/node-esm/app-graph-builder-XNVQOJLE.mjs.map +0 -7
  316. package/dist/lib/node-esm/app-graph-serializer-PKVLWV6V.mjs.map +0 -7
  317. package/dist/lib/node-esm/chunk-7MZ3J3LI.mjs +0 -21
  318. package/dist/lib/node-esm/chunk-7MZ3J3LI.mjs.map +0 -7
  319. package/dist/lib/node-esm/chunk-CTQMR7E3.mjs.map +0 -7
  320. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs +0 -20
  321. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs.map +0 -7
  322. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  323. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  324. package/dist/lib/node-esm/chunk-HYIZVPOA.mjs.map +0 -7
  325. package/dist/lib/node-esm/chunk-KLG4Y4GY.mjs +0 -96
  326. package/dist/lib/node-esm/chunk-KLG4Y4GY.mjs.map +0 -7
  327. package/dist/lib/node-esm/chunk-KYUHPPRN.mjs.map +0 -7
  328. package/dist/lib/node-esm/chunk-S7MKRQHY.mjs.map +0 -7
  329. package/dist/lib/node-esm/identity-created-AL7NNCKH.mjs.map +0 -7
  330. package/dist/lib/node-esm/intent-resolver-W6P27SCF.mjs.map +0 -7
  331. package/dist/lib/node-esm/react-root-N27KETKT.mjs.map +0 -7
  332. package/dist/lib/node-esm/react-surface-TNPAUQCM.mjs.map +0 -7
  333. package/dist/lib/node-esm/schema-defs-TPWZPDCR.mjs.map +0 -7
  334. package/dist/lib/node-esm/schema-tools-PJE2FKWH.mjs +0 -126
  335. package/dist/lib/node-esm/schema-tools-PJE2FKWH.mjs.map +0 -7
  336. package/dist/lib/node-esm/spaces-ready-PQLLIO5W.mjs.map +0 -7
  337. package/dist/lib/node-esm/state-4M5A6OSB.mjs.map +0 -7
  338. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  339. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  340. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  341. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  342. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  343. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  344. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  345. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  346. package/dist/types/src/components/MembersContainer.stories.d.ts +0 -8
  347. package/dist/types/src/components/MembersContainer.stories.d.ts.map +0 -1
  348. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  349. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  350. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  351. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  352. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  353. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  354. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  355. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  356. package/dist/types/src/components/RecordMain.d.ts +0 -7
  357. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  358. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  359. package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
  360. package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
  361. package/src/capabilities/schema-tool.test.ts +0 -44
  362. package/src/capabilities/schema-tools.ts +0 -125
  363. package/src/components/MembersContainer.stories.tsx +0 -31
  364. package/src/components/ObjectDetailsPanel.tsx +0 -77
  365. package/src/components/PersistenceStatus.tsx +0 -83
  366. package/src/components/RecordMain.tsx +0 -43
@@ -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/SpaceRenamePopover/SpaceRenamePopover.tsx", "../../../src/components/SchemaContainer.tsx", "../../../src/components/SpacePresence/SpacePresence.tsx", "../../../src/components/SpacePluginSettings.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 React, { useCallback, useRef, useState } from 'react';\n\nimport { Capabilities, LayoutAction, chain, createIntent } from '@dxos/app-framework';\nimport { useCapabilities, useIntentDispatcher, usePluginManager } from '@dxos/app-framework/react';\nimport { Obj, Query, Type } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { type Space, getSpace, isLiveObject, isSpace, useQuery, useSpaces } from '@dxos/react-client/echo';\nimport { Dialog, IconButton, useTranslation } from '@dxos/react-ui';\nimport { cardDialogContent, cardDialogHeader } from '@dxos/react-ui-stack';\nimport { Collection, StoredSchema, getTypenameFromQuery } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SpaceCapabilities } from '../../capabilities';\nimport { meta } from '../../meta';\nimport { SpaceAction } from '../../types';\n\nimport { CreateObjectPanel, type CreateObjectPanelProps } 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 forms = useCapabilities(SpaceCapabilities.ObjectForm);\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 space = isSpace(target) ? target : getSpace(target);\n const queryCollections = useQuery(space, Query.type(Collection.QueryCollection));\n const hiddenTypenames = queryCollections\n .map((collection) => getTypenameFromQuery(collection.query))\n .filter(isNonNullable);\n const closeRef = useRef<HTMLButtonElement | null>(null);\n\n const resolve = useCallback<NonNullable<CreateObjectPanelProps['resolve']>>(\n (typename) =>\n manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},\n [manager],\n );\n\n const handleCreateObject = useCallback<NonNullable<CreateObjectPanelProps['onCreateObject']>>(\n ({ form, 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(form.getIntent(data, { space }));\n if (isLiveObject(object) && !Obj.instanceOf(StoredSchema, object)) {\n // TODO(wittjosiah): Selection in navtree isn't working as expected when hidden typenames evals to true.\n const hidden = form.hidden || hiddenTypenames.includes(Type.getTypename(form.objectSchema));\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, hiddenTypenames, _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' : 'Item',\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 forms={forms}\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 React, { useCallback } from 'react';\n\nimport { Type } from '@dxos/echo';\nimport { type BaseObject, type TypeAnnotation, ViewAnnotation, 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 } from '@dxos/react-ui-form';\nimport { SearchList } from '@dxos/react-ui-searchlist';\nimport { cardDialogOverflow, cardDialogPaddedOverflow, cardDialogSearchListRoot } from '@dxos/react-ui-stack';\nimport { type Collection } from '@dxos/schema';\nimport { type MaybePromise, isNonNullable } from '@dxos/util';\n\nimport { useInputSurfaceLookup } from '../../hooks';\nimport { meta } from '../../meta';\nimport { type ObjectForm } from '../../types';\nimport { getSpaceDisplayName } from '../../util';\n\nexport type CreateObjectPanelProps = {\n forms: ObjectForm[];\n spaces: Space[];\n typename?: string;\n target?: Space | Collection.Collection;\n views?: boolean;\n initialFormValues?: Partial<BaseObject>;\n defaultSpaceId?: SpaceId;\n resolve?: (typename: string) => Record<string, any>;\n onTargetChange?: (target: Space) => void;\n onTypenameChange?: (typename: string) => void;\n onCreateObject?: (params: { form: ObjectForm; data?: Record<string, any> }) => MaybePromise<void>;\n};\n\nexport const CreateObjectPanel = ({\n forms,\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 form = forms.find((form) => Type.getTypename(form.objectSchema) === typename);\n const options: TypeAnnotation[] = forms\n .filter((form) => {\n if (views == null) {\n return true;\n } else {\n return views === ViewAnnotation.get(form.objectSchema).pipe(Option.getOrElse(() => false));\n }\n })\n .map((form) => getTypeAnnotation(form.objectSchema))\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 (!form) {\n return;\n }\n await onCreateObject?.({ form, data: props });\n },\n [onCreateObject, form],\n );\n\n const handleSetTypename = useCallback(\n async (typename: string) => {\n const form = forms.find((form) => getTypeAnnotation(form.objectSchema)?.typename === typename);\n if (form && !form.formSchema) {\n await onCreateObject?.({ form });\n } else {\n onTypenameChange?.(typename);\n }\n },\n [forms, 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 !form ? (\n <SelectSchema options={options} resolve={resolve} onChange={handleSetTypename} />\n ) : !target ? (\n <SelectSpace spaces={spaces} defaultSpaceId={defaultSpaceId} onChange={onTargetChange} />\n ) : form.formSchema ? (\n <div role='none' className={cardDialogOverflow}>\n <Form\n autoFocus\n values={initialFormValues}\n schema={form.formSchema}\n testId='create-object-form'\n onSave={handleCreateObject}\n lookupComponent={inputSurfaceLookup}\n outerSpacing='blockStart-0'\n />\n </div>\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 <div role='none' className='contents'>\n <Form\n testId='create-space-form'\n autoFocus\n values={initialValues}\n schema={SpaceForm}\n lookupComponent={inputSurfaceLookup}\n onSave={handleCreateSpace}\n outerSpacing='scroll-fields'\n />\n </div>\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 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 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.Schema[] => {\n const [schemas, setSchemas] = useState<Type.Schema[]>([]);\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 * 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, type Type } 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: Type.Expando;\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 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 2024 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport * as Schema from 'effect/Schema';\nimport React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';\n\nimport { LayoutAction, chain, createIntent } from '@dxos/app-framework';\nimport { 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 InputComponent,\n} from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { meta } from '../../meta';\nimport { SpaceAction, SpaceForm } from '../../types';\n\nconst FormSchema = 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 = ({ space }: SpaceSettingsContainerProps) => {\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 FormSchema>) => {\n void toggleEdgeReplication(properties.edgeReplication);\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 customElements: Partial<Record<string, InputComponent>> = useMemo(\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 value={getValue()} onChange={handleChange} onReset={handleReset} classNames='justify-self-end' />\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 return (\n <StackItem.Content scrollable>\n <ControlPage>\n <ControlSection\n title={t('space properties settings verbose label', { ns: meta.id })}\n description={t('space properties settings description', {\n ns: meta.id,\n })}\n >\n <Form\n schema={FormSchema}\n values={values}\n autoSave\n onSave={handleSave}\n Custom={customElements}\n outerSpacing={false}\n classNames='container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]'\n />\n </ControlSection>\n <ControlItemInput\n title={t('backup space label', { ns: meta.id })}\n description={t('backup space description', { ns: meta.id })}\n >\n <Button onClick={handleBackup}>{t('download backup')}</Button>\n </ControlItemInput>\n </ControlPage>\n </StackItem.Content>\n );\n};\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 Client } from '@dxos/react-client';\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 = (client: Client, 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 staticSchema = client.graph.schemaRegistry.getSchema(typename);\n if (staticSchema) {\n return Option.some(staticSchema);\n }\n\n const query = space.db.schemaRegistry.query({ typename });\n const schemas = yield* Effect.promise(() => query.run());\n return Array.head(schemas).pipe(Option.map((schema) => schema.snapshot));\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({ space, annotation: ['dynamic', 'limited-static', 'object-form'] });\n\n useAsyncEffect(async () => {\n if (!view?.query || !space) {\n return;\n }\n\n const foundSchema = await resolveSchemaWithClientAndSpace(client, 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(client, space, query.ast);\n if (!newSchema) {\n return;\n }\n\n const newView = View.make({\n query,\n jsonSchema: Type.toJsonSchema(newSchema),\n presentation: Obj.make(Type.Expando, {}),\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='query'\n outerSpacing={false}\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 { type ComponentType, 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 './SpaceRenamePopover';\nexport * from './SchemaContainer';\nexport * from './SpacePresence';\nexport * from './SpacePluginSettings';\nexport * from './SpaceSettings';\nexport * from './SyncStatus';\nexport * from './ViewEditor';\n\nexport const CollectionArticle = lazy(() => import('./CollectionArticle'));\nexport const ObjectDetailsPanel: ComponentType<any> = lazy(() => import('./ObjectDetailsPanel'));\nexport const ObjectSettingsContainer = lazy(() => import('./ObjectSettings'));\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", "React", "useCallback", "useRef", "useState", "Capabilities", "LayoutAction", "chain", "createIntent", "useCapabilities", "useIntentDispatcher", "usePluginManager", "Obj", "Query", "Type", "invariant", "useClient", "getSpace", "isLiveObject", "isSpace", "useQuery", "useSpaces", "Dialog", "IconButton", "useTranslation", "cardDialogContent", "cardDialogHeader", "Collection", "StoredSchema", "getTypenameFromQuery", "isNonNullable", "Option", "React", "useCallback", "Type", "ViewAnnotation", "getTypeAnnotation", "Icon", "toLocalizedString", "useDefaultValue", "useTranslation", "Form", "SearchList", "cardDialogOverflow", "cardDialogPaddedOverflow", "cardDialogSearchListRoot", "isNonNullable", "CreateObjectPanel", "forms", "spaces", "typename", "target", "views", "initialFormValues", "_initialFormValues", "defaultSpaceId", "resolve", "onTargetChange", "onTypenameChange", "onCreateObject", "t", "useTranslation", "meta", "id", "useDefaultValue", "form", "find", "Type", "getTypename", "objectSchema", "options", "filter", "ViewAnnotation", "get", "pipe", "getOrElse", "map", "getTypeAnnotation", "isNonNullable", "sort", "a", "b", "nameA", "ns", "defaultValue", "nameB", "localeCompare", "handleCreateObject", "useCallback", "props", "data", "handleSetTypename", "formSchema", "inputSurfaceLookup", "useInputSurfaceLookup", "React", "SelectSchema", "onChange", "SelectSpace", "div", "role", "className", "cardDialogOverflow", "Form", "autoFocus", "values", "schema", "testId", "onSave", "lookupComponent", "outerSpacing", "SearchList", "Root", "label", "classNames", "cardDialogSearchListRoot", "Input", "data-testid", "placeholder", "Content", "aName", "toLocalizedString", "getSpaceDisplayName", "personal", "bName", "space", "Item", "key", "value", "onSelect", "span", "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", "forms", "useCapabilities", "SpaceCapabilities", "ObjectForm", "setTarget", "useState", "setTypename", "client", "useClient", "spaces", "useSpaces", "space", "isSpace", "getSpace", "queryCollections", "useQuery", "Query", "type", "Collection", "QueryCollection", "hiddenTypenames", "map", "collection", "getTypenameFromQuery", "query", "filter", "isNonNullable", "closeRef", "useRef", "resolve", "useCallback", "context", "getCapabilities", "Capabilities", "Metadata", "find", "metadata", "handleCreateObject", "form", "data", "gen", "current", "click", "invariant", "object", "getIntent", "isLiveObject", "Obj", "instanceOf", "StoredSchema", "hidden", "includes", "Type", "getTypename", "objectSchema", "addObjectIntent", "createIntent", "SpaceAction", "AddObject", "pipe", "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", "testId", "values", "schema", "SpaceForm", "lookupComponent", "onSave", "outerSpacing", "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", "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", "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", "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", "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", "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", "Function", "Schema", "React", "useCallback", "useMemo", "useState", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "log", "EdgeReplicationSetting", "useClient", "SpaceState", "Button", "Input", "useFileDownload", "useMulticastObservable", "useTranslation", "ControlItem", "ControlItemInput", "ControlPage", "ControlSection", "Form", "HuePicker", "IconPicker", "StackItem", "FormSchema", "SpaceForm", "pipe", "extend", "Struct", "archived", "Boolean", "annotations", "title", "SpaceSettingsContainer", "space", "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", "customElements", "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", "StackItem", "Content", "scrollable", "ControlPage", "ControlSection", "ns", "Form", "schema", "autoSave", "onSave", "Custom", "outerSpacing", "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", "client", "space", "query", "resolve", "fn", "dxn", "typename", "parse", "asTypeDXN", "type", "none", "staticSchema", "graph", "schemaRegistry", "getSchema", "some", "db", "schemas", "promise", "run", "head", "pipe", "map", "schema", "snapshot", "resolveSchema", "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", "useAsyncEffect", "query", "foundSchema", "resolveSchemaWithClientAndSpace", "ast", "handleQueryChanged", "useCallback", "newQuery", "target", "queue", "DXN", "tryParse", "undefined", "Query", "fromAst", "options", "queues", "newSchema", "newView", "View", "make", "jsonSchema", "Type", "toJsonSchema", "presentation", "Obj", "Expando", "projection", "getSnapshot", "handleDelete", "fieldId", "createIntent", "SpaceAction", "DeleteField", "React", "NaturalViewEditor", "registry", "db", "schemaRegistry", "mode", "outerSpacing", "onQueryChanged", "onDelete", "isMutable", "lazy", "CollectionArticle", "lazy", "ObjectDetailsPanel", "ObjectSettingsContainer", "RecordArticle"]
7
+ }
@@ -0,0 +1,20 @@
1
+ import {
2
+ meta
3
+ } from "./chunk-VZBIIYFM.mjs";
4
+
5
+ // src/capabilities/capabilities.ts
6
+ import { defineCapability } from "@dxos/app-framework";
7
+ (function(SpaceCapabilities2) {
8
+ SpaceCapabilities2.State = defineCapability(`${meta.id}/capability/state`);
9
+ SpaceCapabilities2.MutableState = defineCapability(`${meta.id}/capability/state`);
10
+ SpaceCapabilities2.SettingsSection = defineCapability(`${meta.id}/capability/settings-section`);
11
+ SpaceCapabilities2.onCreateSpace = defineCapability(`${meta.id}/capability/on-space-created`);
12
+ SpaceCapabilities2.OnSchemaAdded = defineCapability(`${meta.id}/capability/on-schema-added`);
13
+ SpaceCapabilities2.ObjectForm = defineCapability(`${meta.id}/capability/object-form`);
14
+ })(SpaceCapabilities || (SpaceCapabilities = {}));
15
+ var SpaceCapabilities;
16
+
17
+ export {
18
+ SpaceCapabilities
19
+ };
20
+ //# sourceMappingURL=chunk-K5J7ZB5P.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/capabilities.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\n\nimport { type AnyIntentChain, type Label, defineCapability } from '@dxos/app-framework';\nimport { type Space } from '@dxos/react-client/echo';\nimport { type Collection } from '@dxos/schema';\nimport { type DeepReadonly, type Position } from '@dxos/util';\n\nimport { meta } from '../meta';\nimport { type ObjectForm, type PluginState } from '../types';\n\nexport namespace SpaceCapabilities {\n export const State = defineCapability<DeepReadonly<PluginState>>(`${meta.id}/capability/state`);\n export const MutableState = defineCapability<PluginState>(`${meta.id}/capability/state`);\n\n export type SettingsSection = { id: string; label: Label; position?: Position };\n export const SettingsSection = defineCapability<SettingsSection>(`${meta.id}/capability/settings-section`);\n\n export type onCreateSpace = (params: { space: Space; rootCollection: Collection.Collection }) => AnyIntentChain;\n export const onCreateSpace = defineCapability<onCreateSpace>(`${meta.id}/capability/on-space-created`);\n\n export type OnSchemaAdded = (params: {\n space: Space;\n schema: Schema.Schema.AnyNoContext;\n // TODO(wittjosiah): This is leaky.\n show?: boolean;\n }) => AnyIntentChain;\n export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${meta.id}/capability/on-schema-added`);\n\n // TODO(burdon): Should this be view? Forms are UI concepts? (associated with a View/schema).\n export const ObjectForm = defineCapability<ObjectForm<any>>(`${meta.id}/capability/object-form`);\n}\n"],
5
+ "mappings": ";;;;;AAMA,SAA0CA,wBAAwB;UAQjDC,oBAAAA;qBACFC,QAAQC,iBAA4C,GAAGC,KAAKC,EAAE,mBAAmB;qBACjFC,eAAeH,iBAA8B,GAAGC,KAAKC,EAAE,mBAAmB;qBAG1EE,kBAAkBJ,iBAAkC,GAAGC,KAAKC,EAAE,8BAA8B;qBAG5FG,gBAAgBL,iBAAgC,GAAGC,KAAKC,EAAE,8BAA8B;qBAQxFI,gBAAgBN,iBAAgC,GAAGC,KAAKC,EAAE,6BAA6B;qBAGvFK,aAAaP,iBAAkC,GAAGC,KAAKC,EAAE,yBAAyB;AACjG,GApBiBJ,sBAAAA,oBAAAA,CAAAA,EAAAA;;",
6
+ "names": ["defineCapability", "SpaceCapabilities", "State", "defineCapability", "meta", "id", "MutableState", "SettingsSection", "onCreateSpace", "OnSchemaAdded", "ObjectForm"]
7
+ }