@dxos/plugin-space 0.8.4-main.3f58842 → 0.8.4-main.406dc2a

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 (305) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionMain-AX7KKXWP.mjs} +4 -4
  2. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs +145 -0
  4. package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs +151 -0
  6. package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs.map +7 -0
  7. package/dist/lib/browser/RecordMain-H4DVHICS.mjs +116 -0
  8. package/dist/lib/browser/RecordMain-H4DVHICS.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-7CZZJS3S.mjs → app-graph-builder-3R5GGT46.mjs} +102 -61
  10. package/dist/lib/browser/app-graph-builder-3R5GGT46.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-25Z5BG22.mjs} +14 -14
  12. package/dist/lib/browser/app-graph-serializer-25Z5BG22.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-V7MJSSBQ.mjs → chunk-522KZGQF.mjs} +310 -342
  14. package/dist/lib/browser/chunk-522KZGQF.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-7XOTWRZ3.mjs +166 -0
  16. package/dist/lib/browser/chunk-7XOTWRZ3.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-EIXZABXD.mjs +19 -0
  18. package/dist/lib/browser/chunk-EIXZABXD.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-IRKDREHY.mjs +11 -0
  20. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-OV6D543A.mjs} +99 -44
  22. package/dist/lib/browser/chunk-OV6D543A.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-PTGRQQ6J.mjs} +13 -10
  24. package/dist/lib/browser/chunk-PTGRQQ6J.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-RLI2IAHK.mjs +20 -0
  26. package/dist/lib/browser/chunk-RLI2IAHK.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-SGTQ52SU.mjs → chunk-WS2PJDES.mjs} +22 -12
  28. package/dist/lib/browser/chunk-WS2PJDES.mjs.map +7 -0
  29. package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-PW2BA46S.mjs} +4 -4
  30. package/dist/lib/browser/{identity-created-23XJJV2N.mjs.map → identity-created-PW2BA46S.mjs.map} +3 -3
  31. package/dist/lib/browser/index.mjs +36 -53
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-TIXVDYN7.mjs → intent-resolver-ICGUSVH6.mjs} +52 -45
  34. package/dist/lib/browser/intent-resolver-ICGUSVH6.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/{react-root-N2J7TDRX.mjs → react-root-H56QN474.mjs} +11 -11
  37. package/dist/lib/browser/react-root-H56QN474.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-TPNLWJJH.mjs → react-surface-VOE2ILKO.mjs} +57 -77
  39. package/dist/lib/browser/react-surface-VOE2ILKO.mjs.map +7 -0
  40. package/dist/lib/browser/{schema-defs-Z6FC4AHC.mjs → schema-defs-7R7RKCAE.mjs} +5 -5
  41. package/dist/lib/browser/schema-defs-7R7RKCAE.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-OBFJ67ZG.mjs} +5 -5
  43. package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-OBFJ67ZG.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-MFIVK6I6.mjs} +18 -16
  45. package/dist/lib/browser/spaces-ready-MFIVK6I6.mjs.map +7 -0
  46. package/dist/lib/browser/{state-QYZAB45H.mjs → state-LSPRFIRO.mjs} +7 -7
  47. package/dist/lib/browser/state-LSPRFIRO.mjs.map +7 -0
  48. package/dist/lib/browser/types/index.mjs +2 -2
  49. package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionMain-EU57SRYK.mjs} +4 -4
  50. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +7 -0
  51. package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs +146 -0
  52. package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs +152 -0
  54. package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs.map +7 -0
  55. package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs +117 -0
  56. package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs.map +7 -0
  57. package/dist/lib/node-esm/{app-graph-builder-KGIGWC72.mjs → app-graph-builder-VGRMD5TP.mjs} +102 -61
  58. package/dist/lib/node-esm/app-graph-builder-VGRMD5TP.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-U4GHXWRG.mjs} +14 -14
  60. package/dist/lib/node-esm/app-graph-serializer-U4GHXWRG.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-JH6F4C3I.mjs → chunk-4F25JKVT.mjs} +22 -12
  62. package/dist/lib/node-esm/chunk-4F25JKVT.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-6X5DLJM5.mjs → chunk-DG5YEEPZ.mjs} +310 -342
  64. package/dist/lib/node-esm/chunk-DG5YEEPZ.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-H5UPFRRH.mjs +21 -0
  66. package/dist/lib/node-esm/chunk-H5UPFRRH.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-HAKW2RFD.mjs} +13 -10
  68. package/dist/lib/node-esm/chunk-HAKW2RFD.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-HWNG4MEU.mjs → chunk-MWNATOXL.mjs} +2 -4
  70. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs +167 -0
  72. package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs +20 -0
  74. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-TNUWML33.mjs} +99 -44
  76. package/dist/lib/node-esm/chunk-TNUWML33.mjs.map +7 -0
  77. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-MWTLGQRU.mjs} +4 -4
  78. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs.map → identity-created-MWTLGQRU.mjs.map} +3 -3
  79. package/dist/lib/node-esm/index.mjs +36 -53
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-MHGHRGDT.mjs → intent-resolver-KVB2A4YC.mjs} +52 -45
  82. package/dist/lib/node-esm/intent-resolver-KVB2A4YC.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/{react-root-KW3TGJGY.mjs → react-root-56PGW5PH.mjs} +11 -11
  85. package/dist/lib/node-esm/react-root-56PGW5PH.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-UUIUUD6P.mjs → react-surface-NYEQ23A4.mjs} +57 -77
  87. package/dist/lib/node-esm/react-surface-NYEQ23A4.mjs.map +7 -0
  88. package/dist/lib/node-esm/{schema-defs-WHJM7UZE.mjs → schema-defs-RYG5DSUE.mjs} +5 -5
  89. package/dist/lib/node-esm/schema-defs-RYG5DSUE.mjs.map +7 -0
  90. package/dist/lib/node-esm/{settings-SAOBPND3.mjs → settings-QGWWNMMZ.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-QGWWNMMZ.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-TC27M7MP.mjs} +18 -16
  93. package/dist/lib/node-esm/spaces-ready-TC27M7MP.mjs.map +7 -0
  94. package/dist/lib/node-esm/{state-ZVEHQ4BJ.mjs → state-TCGOPLRO.mjs} +7 -7
  95. package/dist/lib/node-esm/state-TCGOPLRO.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 +5 -4
  103. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/identity-created.d.ts +1 -1
  105. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/index.d.ts +11 -12
  107. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  109. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  111. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  113. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  115. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/settings.d.ts +1 -1
  117. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  118. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  119. package/dist/types/src/capabilities/state.d.ts +1 -1
  120. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  121. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -3
  122. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  123. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1604 -4
  124. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -3
  126. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  127. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  128. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  129. package/dist/types/src/components/JoinDialog.d.ts +1 -1
  130. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  131. package/dist/types/src/components/MembersContainer.d.ts +3 -2
  132. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  133. package/dist/types/src/components/MembersContainer.stories.d.ts +1604 -5
  134. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  135. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  136. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  137. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  138. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  139. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  140. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  141. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  142. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +1 -1
  143. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  144. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1440 -0
  145. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  146. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  147. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  148. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  149. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  150. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  151. package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
  152. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  153. package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -1
  154. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  155. package/dist/types/src/components/RecordMain.d.ts +7 -0
  156. package/dist/types/src/components/RecordMain.d.ts.map +1 -0
  157. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  158. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  159. package/dist/types/src/components/SpacePresence.stories.d.ts +1432 -4
  160. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  161. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  162. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1437 -4
  163. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  164. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  165. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1438 -5
  166. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  167. package/dist/types/src/components/ViewEditor.d.ts +1 -1
  168. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  169. package/dist/types/src/components/index.d.ts +9 -3
  170. package/dist/types/src/components/index.d.ts.map +1 -1
  171. package/dist/types/src/events.d.ts.map +1 -1
  172. package/dist/types/src/hooks/index.d.ts +1 -0
  173. package/dist/types/src/hooks/index.d.ts.map +1 -1
  174. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  175. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  176. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  177. package/dist/types/src/hooks/usePath.d.ts +1 -1
  178. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  179. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  180. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  181. package/dist/types/src/meta.d.ts +0 -1
  182. package/dist/types/src/meta.d.ts.map +1 -1
  183. package/dist/types/src/translations.d.ts +1236 -26
  184. package/dist/types/src/translations.d.ts.map +1 -1
  185. package/dist/types/src/types/types.d.ts +78 -96
  186. package/dist/types/src/types/types.d.ts.map +1 -1
  187. package/dist/types/src/util.d.ts +10 -7
  188. package/dist/types/src/util.d.ts.map +1 -1
  189. package/dist/types/tsconfig.tsbuildinfo +1 -1
  190. package/package.json +63 -58
  191. package/src/SpacePlugin.ts +206 -220
  192. package/src/capabilities/app-graph-builder.ts +127 -69
  193. package/src/capabilities/app-graph-serializer.ts +7 -7
  194. package/src/capabilities/capabilities.ts +18 -12
  195. package/src/capabilities/identity-created.ts +1 -1
  196. package/src/capabilities/index.ts +0 -1
  197. package/src/capabilities/intent-resolver.ts +40 -28
  198. package/src/capabilities/react-root.tsx +4 -3
  199. package/src/capabilities/react-surface.tsx +50 -107
  200. package/src/capabilities/schema-defs.ts +3 -2
  201. package/src/capabilities/spaces-ready.ts +11 -8
  202. package/src/capabilities/state.ts +5 -4
  203. package/src/components/AwaitingObject.tsx +3 -3
  204. package/src/components/CollectionMain.tsx +2 -2
  205. package/src/components/CollectionSection.tsx +2 -2
  206. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -10
  207. package/src/components/CreateDialog/CreateObjectDialog.tsx +24 -13
  208. package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
  209. package/src/components/CreateDialog/CreateSpaceDialog.tsx +6 -5
  210. package/src/components/JoinDialog.tsx +7 -7
  211. package/src/components/MembersContainer.stories.tsx +36 -10
  212. package/src/components/MembersContainer.tsx +13 -14
  213. package/src/components/MenuFooter.tsx +2 -2
  214. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +52 -0
  215. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +75 -0
  216. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  217. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -3
  218. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  219. package/src/components/ObjectSettings/BaseObjectSettings.tsx +96 -26
  220. package/src/components/ObjectSettings/ForeignKeys.tsx +3 -3
  221. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -2
  222. package/src/components/ObjectSettings/index.ts +3 -1
  223. package/src/components/PersistenceStatus.tsx +2 -2
  224. package/src/components/PopoverRenameObject.tsx +9 -15
  225. package/src/components/PopoverRenameSpace.tsx +4 -4
  226. package/src/components/RecordMain.tsx +87 -0
  227. package/src/components/SchemaContainer.tsx +5 -5
  228. package/src/components/SpacePluginSettings.tsx +8 -9
  229. package/src/components/SpacePresence.stories.tsx +23 -22
  230. package/src/components/SpacePresence.tsx +10 -10
  231. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
  232. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +19 -18
  233. package/src/components/SyncStatus/InlineSyncStatus.tsx +7 -7
  234. package/src/components/SyncStatus/SyncStatus.stories.tsx +6 -7
  235. package/src/components/SyncStatus/SyncStatus.tsx +93 -5
  236. package/src/components/ViewEditor.tsx +14 -20
  237. package/src/components/index.ts +2 -1
  238. package/src/events.ts +7 -7
  239. package/src/hooks/index.ts +1 -0
  240. package/src/hooks/useActiveSpace.ts +2 -2
  241. package/src/hooks/useInputSurfaceLookup.tsx +2 -2
  242. package/src/hooks/usePath.ts +1 -1
  243. package/src/hooks/useTypeOptions.ts +59 -0
  244. package/src/meta.ts +1 -3
  245. package/src/translations.ts +11 -8
  246. package/src/types/types.ts +21 -13
  247. package/src/util.tsx +97 -40
  248. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  249. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs +0 -88
  250. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
  251. package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs.map +0 -7
  252. package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
  254. package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
  255. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  256. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  257. package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
  258. package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
  259. package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
  260. package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
  261. package/dist/lib/browser/chunk-V7MJSSBQ.mjs.map +0 -7
  262. package/dist/lib/browser/chunk-VLBRSGJ2.mjs +0 -94
  263. package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
  264. package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
  265. package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs.map +0 -7
  266. package/dist/lib/browser/react-root-N2J7TDRX.mjs.map +0 -7
  267. package/dist/lib/browser/react-surface-TPNLWJJH.mjs.map +0 -7
  268. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
  269. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  270. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  271. package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
  272. package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
  273. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  274. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs +0 -89
  275. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
  276. package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs.map +0 -7
  277. package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
  278. package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
  279. package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
  280. package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
  281. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
  282. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
  283. package/dist/lib/node-esm/chunk-6X5DLJM5.mjs.map +0 -7
  284. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  285. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
  286. package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
  287. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs +0 -96
  288. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
  289. package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs.map +0 -7
  290. package/dist/lib/node-esm/react-root-KW3TGJGY.mjs.map +0 -7
  291. package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs.map +0 -7
  292. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
  293. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  294. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  295. package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
  296. package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
  297. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  298. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  299. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  300. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  301. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  302. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  303. package/src/capabilities/schema-tool.test.ts +0 -44
  304. package/src/capabilities/schema-tools.ts +0 -125
  305. package/src/components/ObjectDetailsPanel.tsx +0 -77
@@ -2,27 +2,26 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  useInputSurfaceLookup,
4
4
  usePath
5
- } from "./chunk-SSLBYZEY.mjs";
5
+ } from "./chunk-PAAWJ4RE.mjs";
6
6
  import {
7
7
  SpaceCapabilities
8
- } from "./chunk-5T3ZH23B.mjs";
8
+ } from "./chunk-H5UPFRRH.mjs";
9
9
  import {
10
10
  COMPOSER_SPACE_LOCK,
11
11
  getSpaceDisplayName
12
- } from "./chunk-4AOMYKDE.mjs";
12
+ } from "./chunk-TNUWML33.mjs";
13
13
  import {
14
14
  SpaceAction,
15
15
  SpaceForm
16
- } from "./chunk-JH6F4C3I.mjs";
16
+ } from "./chunk-4F25JKVT.mjs";
17
17
  import {
18
- SPACE_PLUGIN,
19
18
  meta
20
- } from "./chunk-HWNG4MEU.mjs";
19
+ } from "./chunk-MWNATOXL.mjs";
21
20
 
22
21
  // src/components/AwaitingObject.tsx
23
22
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
24
23
  import React, { useCallback, useEffect, useState } from "react";
25
- import { createIntent, LayoutAction, useIntentDispatcher, useLayout } from "@dxos/app-framework";
24
+ import { LayoutAction, createIntent, useIntentDispatcher, useLayout } from "@dxos/app-framework";
26
25
  import { useClient } from "@dxos/react-client";
27
26
  import { Filter, fullyQualifiedId, useQuery } from "@dxos/react-client/echo";
28
27
  import { Button, Icon, Toast, useTranslation } from "@dxos/react-ui";
@@ -34,7 +33,7 @@ var AwaitingObject = ({ id }) => {
34
33
  const [open, setOpen] = useState(true);
35
34
  const [waiting, setWaiting] = useState(true);
36
35
  const [found, setFound] = useState(false);
37
- const { t } = useTranslation(SPACE_PLUGIN);
36
+ const { t } = useTranslation(meta.id);
38
37
  const { dispatchPromise: dispatch } = useIntentDispatcher();
39
38
  const layout = useLayout();
40
39
  const client = useClient();
@@ -122,7 +121,8 @@ var AwaitingObject = ({ id }) => {
122
121
 
123
122
  // src/components/CreateDialog/CreateObjectDialog.tsx
124
123
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
125
- import { Effect, pipe } from "effect";
124
+ import * as Effect from "effect/Effect";
125
+ import * as Function from "effect/Function";
126
126
  import React3, { useCallback as useCallback3, useRef, useState as useState2 } from "react";
127
127
  import { Capabilities, LayoutAction as LayoutAction2, chain, createIntent as createIntent2, useCapabilities, useIntentDispatcher as useIntentDispatcher2, usePluginManager } from "@dxos/app-framework";
128
128
  import { Obj, Query, Type as Type2 } from "@dxos/echo";
@@ -131,25 +131,33 @@ import { useClient as useClient2 } from "@dxos/react-client";
131
131
  import { getSpace, isLiveObject, isSpace, useQuery as useQuery2, useSpaces } from "@dxos/react-client/echo";
132
132
  import { Button as Button2, Dialog, Icon as Icon3, useTranslation as useTranslation3 } from "@dxos/react-ui";
133
133
  import { cardDialogContent, cardDialogHeader } from "@dxos/react-ui-stack";
134
- import { DataType } from "@dxos/schema";
134
+ import { DataType, getTypenameFromQuery } from "@dxos/schema";
135
135
  import { isNonNullable as isNonNullable2 } from "@dxos/util";
136
136
 
137
137
  // src/components/CreateDialog/CreateObjectPanel.tsx
138
138
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
139
+ import * as Option from "effect/Option";
139
140
  import React2, { useCallback as useCallback2 } from "react";
140
141
  import { Type } from "@dxos/echo";
141
- import { getTypeAnnotation } from "@dxos/echo-schema";
142
- import { Icon as Icon2, toLocalizedString, useTranslation as useTranslation2 } from "@dxos/react-ui";
142
+ import { ViewAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
143
+ import { Icon as Icon2, toLocalizedString, useDefaultValue, useTranslation as useTranslation2 } from "@dxos/react-ui";
143
144
  import { Form } from "@dxos/react-ui-form";
144
145
  import { SearchList } from "@dxos/react-ui-searchlist";
145
146
  import { cardDialogOverflow, cardDialogPaddedOverflow, cardDialogSearchListRoot } from "@dxos/react-ui-stack";
146
147
  import { isNonNullable } from "@dxos/util";
147
- var CreateObjectPanel = ({ forms, spaces, typename, target, name: initialName, defaultSpaceId, resolve, onTargetChange, onTypenameChange, onCreateObject }) => {
148
+ var CreateObjectPanel = ({ forms, spaces, typename, target, views, initialFormValues: _initialFormValues, defaultSpaceId, resolve, onTargetChange, onTypenameChange, onCreateObject }) => {
148
149
  var _effect = _useSignals2();
149
150
  try {
150
- const { t } = useTranslation2(SPACE_PLUGIN);
151
+ const { t } = useTranslation2(meta.id);
152
+ const initialFormValues = useDefaultValue(_initialFormValues, () => ({}));
151
153
  const form = forms.find((form2) => Type.getTypename(form2.objectSchema) === typename);
152
- const options = forms.map((form2) => getTypeAnnotation(form2.objectSchema)).filter(isNonNullable).sort((a, b) => {
154
+ const options = forms.filter((form2) => {
155
+ if (views == null) {
156
+ return true;
157
+ } else {
158
+ return views === ViewAnnotation.get(form2.objectSchema).pipe(Option.getOrElse(() => false));
159
+ }
160
+ }).map((form2) => getTypeAnnotation(form2.objectSchema)).filter(isNonNullable).sort((a, b) => {
153
161
  const nameA = t("typename label", {
154
162
  ns: a.typename,
155
163
  defaultValue: a.typename
@@ -201,9 +209,7 @@ var CreateObjectPanel = ({ forms, spaces, typename, target, name: initialName, d
201
209
  className: cardDialogOverflow
202
210
  }, /* @__PURE__ */ React2.createElement(Form, {
203
211
  autoFocus: true,
204
- values: {
205
- name: initialName
206
- },
212
+ values: initialFormValues,
207
213
  schema: form.formSchema,
208
214
  testId: "create-object-form",
209
215
  onSave: handleCreateObject,
@@ -217,7 +223,7 @@ var CreateObjectPanel = ({ forms, spaces, typename, target, name: initialName, d
217
223
  var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
218
224
  var _effect = _useSignals2();
219
225
  try {
220
- const { t } = useTranslation2(SPACE_PLUGIN);
226
+ const { t } = useTranslation2(meta.id);
221
227
  return /* @__PURE__ */ React2.createElement(SearchList.Root, {
222
228
  label: t("space input label"),
223
229
  classNames: cardDialogSearchListRoot
@@ -257,7 +263,7 @@ var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
257
263
  var SelectSchema = ({ options, resolve, onChange }) => {
258
264
  var _effect = _useSignals2();
259
265
  try {
260
- const { t } = useTranslation2(SPACE_PLUGIN);
266
+ const { t } = useTranslation2(meta.id);
261
267
  return /* @__PURE__ */ React2.createElement(SearchList.Root, {
262
268
  label: t("schema input label"),
263
269
  classNames: cardDialogSearchListRoot
@@ -289,29 +295,15 @@ var SelectSchema = ({ options, resolve, onChange }) => {
289
295
  }
290
296
  };
291
297
 
292
- // src/capabilities/index.ts
293
- import { lazy } from "@dxos/app-framework";
294
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-KGIGWC72.mjs"));
295
- var AppGraphSerializer = lazy(() => import("./app-graph-serializer-2ICUGQQT.mjs"));
296
- var IdentityCreated = lazy(() => import("./identity-created-IJQO6GCR.mjs"));
297
- var IntentResolver = lazy(() => import("./intent-resolver-MHGHRGDT.mjs"));
298
- var ReactRoot = lazy(() => import("./react-root-KW3TGJGY.mjs"));
299
- var ReactSurface = lazy(() => import("./react-surface-UUIUUD6P.mjs"));
300
- var SchemaDefs = lazy(() => import("./schema-defs-WHJM7UZE.mjs"));
301
- var SchemaTools = lazy(() => import("./schema-tools-KWW5PTML.mjs"));
302
- var SpaceSettings = lazy(() => import("./settings-SAOBPND3.mjs"));
303
- var SpaceState = lazy(() => import("./state-ZVEHQ4BJ.mjs"));
304
- var SpacesReady = lazy(() => import("./spaces-ready-HIUKNDZK.mjs"));
305
-
306
298
  // src/components/CreateDialog/CreateObjectDialog.tsx
307
299
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
308
- var CREATE_OBJECT_DIALOG = `${SPACE_PLUGIN}/CreateObjectDialog`;
309
- var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, name, onCreateObject, shouldNavigate: _shouldNavigate }) => {
300
+ var CREATE_OBJECT_DIALOG = `${meta.id}/CreateObjectDialog`;
301
+ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, views, initialFormValues, onCreateObject, shouldNavigate: _shouldNavigate }) => {
310
302
  var _effect = _useSignals3();
311
303
  try {
312
304
  const closeRef = useRef(null);
313
305
  const manager = usePluginManager();
314
- const { t } = useTranslation3(SPACE_PLUGIN);
306
+ const { t } = useTranslation3(meta.id);
315
307
  const client = useClient2();
316
308
  const spaces = useSpaces();
317
309
  const { dispatch } = useIntentDispatcher2();
@@ -320,7 +312,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
320
312
  const [typename, setTypename] = useState2(initialTypename);
321
313
  const space = isSpace(target) ? target : getSpace(target);
322
314
  const queryCollections = useQuery2(space, Query.type(DataType.QueryCollection));
323
- const hiddenTypenames = queryCollections.map((collection) => collection.query.typename).filter(isNonNullable2);
315
+ const hiddenTypenames = queryCollections.map((collection) => getTypenameFromQuery(collection.query)).filter(isNonNullable2);
324
316
  const resolve = useCallback3((typename2) => manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
325
317
  manager
326
318
  ]);
@@ -332,7 +324,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
332
324
  const space2 = isSpace(target) ? target : getSpace(target);
333
325
  invariant(space2, "Missing space", {
334
326
  F: __dxlog_file,
335
- L: 76,
327
+ L: 84,
336
328
  S: this,
337
329
  A: [
338
330
  "space",
@@ -351,7 +343,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
351
343
  });
352
344
  const shouldNavigate = _shouldNavigate ?? (() => true);
353
345
  if (shouldNavigate(object)) {
354
- yield* dispatch(pipe(addObjectIntent, chain(LayoutAction2.Open, {
346
+ yield* dispatch(Function.pipe(addObjectIntent, chain(LayoutAction2.Open, {
355
347
  part: "main"
356
348
  })));
357
349
  } else {
@@ -377,7 +369,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
377
369
  }, /* @__PURE__ */ React3.createElement(Dialog.Title, null, t("create object dialog title", {
378
370
  object: t("typename label", {
379
371
  ns: typename,
380
- defaultValue: "Item"
372
+ defaultValue: views ? "View" : "Item"
381
373
  })
382
374
  })), /* @__PURE__ */ React3.createElement(Dialog.Close, {
383
375
  asChild: true
@@ -393,8 +385,9 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
393
385
  forms,
394
386
  spaces,
395
387
  target,
388
+ views,
396
389
  typename,
397
- name,
390
+ initialFormValues,
398
391
  defaultSpaceId: client.spaces.default.id,
399
392
  resolve,
400
393
  onTargetChange: setTarget,
@@ -409,13 +402,13 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
409
402
 
410
403
  // src/components/CreateDialog/CreateSpaceDialog.tsx
411
404
  import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
412
- import { Effect as Effect2 } from "effect";
405
+ import * as Effect2 from "effect/Effect";
413
406
  import React4, { useCallback as useCallback4, useRef as useRef2 } from "react";
414
- import { createIntent as createIntent3, LayoutAction as LayoutAction3, useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework";
407
+ import { LayoutAction as LayoutAction3, createIntent as createIntent3, useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework";
415
408
  import { Button as Button3, Dialog as Dialog2, Icon as Icon4, useTranslation as useTranslation4 } from "@dxos/react-ui";
416
409
  import { Form as Form2 } from "@dxos/react-ui-form";
417
410
  import { cardDialogContent as cardDialogContent2, cardDialogHeader as cardDialogHeader2 } from "@dxos/react-ui-stack";
418
- var CREATE_SPACE_DIALOG = `${SPACE_PLUGIN}/CreateSpaceDialog`;
411
+ var CREATE_SPACE_DIALOG = `${meta.id}/CreateSpaceDialog`;
419
412
  var initialValues = {
420
413
  edgeReplication: true
421
414
  };
@@ -423,7 +416,7 @@ var CreateSpaceDialog = () => {
423
416
  var _effect = _useSignals4();
424
417
  try {
425
418
  const closeRef = useRef2(null);
426
- const { t } = useTranslation4(SPACE_PLUGIN);
419
+ const { t } = useTranslation4(meta.id);
427
420
  const { dispatch } = useIntentDispatcher3();
428
421
  const inputSurfaceLookup = useInputSurfaceLookup();
429
422
  const handleCreateSpace = useCallback4(async (data) => {
@@ -487,7 +480,7 @@ import { useTranslation as useTranslation5 } from "@dxos/react-ui";
487
480
  var CollectionSection = ({ collection }) => {
488
481
  var _effect = _useSignals5();
489
482
  try {
490
- const { t } = useTranslation5(SPACE_PLUGIN);
483
+ const { t } = useTranslation5(meta.id);
491
484
  return /* @__PURE__ */ React5.createElement("div", {
492
485
  className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
493
486
  }, /* @__PURE__ */ React5.createElement("span", {
@@ -501,20 +494,20 @@ var CollectionSection = ({ collection }) => {
501
494
  // src/components/JoinDialog.tsx
502
495
  import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
503
496
  import React6, { useCallback as useCallback5 } from "react";
504
- import { createIntent as createIntent4, LayoutAction as LayoutAction4, useAppGraph, useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework";
497
+ import { LayoutAction as LayoutAction4, createIntent as createIntent4, useAppGraph, useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework";
505
498
  import { Trigger } from "@dxos/async";
506
499
  import { ObservabilityAction } from "@dxos/plugin-observability/types";
507
500
  import { useClient as useClient3 } from "@dxos/react-client";
508
501
  import { Dialog as Dialog3, useTranslation as useTranslation6 } from "@dxos/react-ui";
509
502
  import { JoinPanel } from "@dxos/shell/react";
510
- var JOIN_DIALOG = `${SPACE_PLUGIN}/JoinDialog`;
503
+ var JOIN_DIALOG = `${meta.id}/JoinDialog`;
511
504
  var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
512
505
  var _effect = _useSignals6();
513
506
  try {
514
507
  const { dispatchPromise: dispatch } = useIntentDispatcher4();
515
508
  const client = useClient3();
516
509
  const { graph } = useAppGraph();
517
- const { t } = useTranslation6(SPACE_PLUGIN);
510
+ const { t } = useTranslation6(meta.id);
518
511
  const handleDone = useCallback5(async (result) => {
519
512
  const spaceKey = result?.spaceKey;
520
513
  if (!spaceKey) {
@@ -524,18 +517,18 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
524
517
  dispatch(createIntent4(LayoutAction4.AddToast, {
525
518
  part: "toast",
526
519
  subject: {
527
- id: `${SPACE_PLUGIN}/join-success`,
520
+ id: `${meta.id}/join-success`,
528
521
  duration: 5e3,
529
522
  title: [
530
523
  "join success label",
531
524
  {
532
- ns: SPACE_PLUGIN
525
+ ns: meta.id
533
526
  }
534
527
  ],
535
528
  closeLabel: [
536
529
  "dismiss label",
537
530
  {
538
- ns: SPACE_PLUGIN
531
+ ns: meta.id
539
532
  }
540
533
  ]
541
534
  }
@@ -624,7 +617,7 @@ import { useConfig } from "@dxos/react-client";
624
617
  import { fullyQualifiedId as fullyQualifiedId2, useSpaceInvitations } from "@dxos/react-client/echo";
625
618
  import { Invitation, InvitationEncoder } from "@dxos/react-client/invitations";
626
619
  import { Button as Button4, Clipboard, Icon as Icon5, Input, useId, useTranslation as useTranslation7 } from "@dxos/react-ui";
627
- import { ControlPage, ControlSection, ControlFrame, ControlFrameItem, ControlItemInput } from "@dxos/react-ui-form";
620
+ import { ControlFrame, ControlFrameItem, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
628
621
  import { StackItem } from "@dxos/react-ui-stack";
629
622
  import { DataType as DataType2 } from "@dxos/schema";
630
623
  import { AuthCode, BifurcatedAction, Centered, Emoji, InvitationList, SpaceMemberList, Viewport } from "@dxos/shell/react";
@@ -649,7 +642,7 @@ var handleInvitationEvent = (invitation, subscription) => {
649
642
  var MembersContainer = ({ space, createInvitationUrl }) => {
650
643
  var _effect = _useSignals7();
651
644
  try {
652
- const { t } = useTranslation7(SPACE_PLUGIN);
645
+ const { t } = useTranslation7(meta.id);
653
646
  const config = useConfig();
654
647
  const { dispatchPromise: dispatch } = useIntentDispatcher5();
655
648
  const invitations = useSpaceInvitations(space.key);
@@ -677,10 +670,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
677
670
  description: t("invite one description", {
678
671
  ns: "os"
679
672
  }),
680
- icon: () => /* @__PURE__ */ React7.createElement(Icon5, {
681
- icon: "ph--user-plus--regular",
682
- size: 5
683
- }),
673
+ icon: "ph--user-plus--regular",
684
674
  testId: "membersContainer.inviteOne",
685
675
  onClick: async () => {
686
676
  const { data: invitation } = await dispatch(createIntent5(SpaceAction.Share, {
@@ -702,10 +692,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
702
692
  description: t("invite many description", {
703
693
  ns: "os"
704
694
  }),
705
- icon: () => /* @__PURE__ */ React7.createElement(Icon5, {
706
- icon: "ph--users-three--regular",
707
- size: 5
708
- }),
695
+ icon: "ph--users-three--regular",
709
696
  testId: "membersContainer.inviteMany",
710
697
  onClick: async () => {
711
698
  const { data: invitation } = await dispatch(createIntent5(SpaceAction.Share, {
@@ -733,7 +720,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
733
720
  setSelectedInvitation(null);
734
721
  };
735
722
  return /* @__PURE__ */ React7.createElement(Clipboard.Provider, null, /* @__PURE__ */ React7.createElement(StackItem.Content, {
736
- classNames: "block overflow-y-auto"
723
+ scrollable: true
737
724
  }, /* @__PURE__ */ React7.createElement(ControlPage, null, /* @__PURE__ */ React7.createElement(ControlSection, {
738
725
  title: t("members verbose label"),
739
726
  description: t("members description")
@@ -765,7 +752,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
765
752
  onChangeActiveAction: setActiveAction,
766
753
  "data-testid": "membersContainer.createInvitation"
767
754
  })))), /* @__PURE__ */ React7.createElement("div", {
768
- className: "justify-center gap-4 p-0 mbs-4 container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
755
+ className: "justify-center p-0 mbs-4 container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
769
756
  }, /* @__PURE__ */ React7.createElement(ControlItemInput, {
770
757
  title: t("space locked label"),
771
758
  description: t("space locked description")
@@ -816,7 +803,7 @@ var InvitationQR = ({ id, url, onCancel }) => {
816
803
  return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement("p", {
817
804
  className: "text-description"
818
805
  }, t("qr code description", {
819
- ns: SPACE_PLUGIN
806
+ ns: meta.id
820
807
  })), /* @__PURE__ */ React7.createElement("div", {
821
808
  role: "group",
822
809
  className: "grid grid-cols-[1fr_min-content] mlb-2 gap-2"
@@ -895,7 +882,7 @@ import { DropdownMenu, Icon as Icon6, toLocalizedString as toLocalizedString2, u
895
882
  var MenuFooter = ({ object }) => {
896
883
  var _effect = _useSignals8();
897
884
  try {
898
- const { t } = useTranslation8(SPACE_PLUGIN);
885
+ const { t } = useTranslation8(meta.id);
899
886
  const client = useClient4();
900
887
  const space = getSpace2(object);
901
888
  const spaceName = space ? getSpaceDisplayName(space, {
@@ -916,79 +903,16 @@ var MenuFooter = ({ object }) => {
916
903
  }
917
904
  };
918
905
 
919
- // src/components/ObjectSettings/ObjectSettingsContainer.tsx
920
- import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
921
- import React10, { useMemo as useMemo2 } from "react";
922
- import { Surface } from "@dxos/app-framework";
923
- import { Clipboard as Clipboard2 } from "@dxos/react-ui";
924
- import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
925
-
926
- // src/components/ObjectSettings/BaseObjectSettings.tsx
927
- import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
928
- import React9, { useRef as useRef3 } from "react";
929
- import { Input as Input2, useTranslation as useTranslation9 } from "@dxos/react-ui";
930
- var BaseObjectSettings = ({ classNames, children, object }) => {
931
- var _effect = _useSignals9();
932
- try {
933
- const { t } = useTranslation9(meta.id);
934
- const inputRef = useRef3(null);
935
- return /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(Input2.Root, null, /* @__PURE__ */ React9.createElement(Input2.Label, null, t("name label")), /* @__PURE__ */ React9.createElement(Input2.TextInput, {
936
- ref: inputRef,
937
- placeholder: t("name placeholder"),
938
- // TODO(burdon): Use annotation to get the name field.
939
- value: object.name ?? "",
940
- onChange: (event) => {
941
- object.name = event.target.value;
942
- },
943
- onKeyDown: (event) => {
944
- if (event.key === "Enter") {
945
- inputRef.current?.blur();
946
- }
947
- }
948
- })), children);
949
- } finally {
950
- _effect.f();
951
- }
952
- };
953
-
954
- // src/components/ObjectSettings/ObjectSettingsContainer.tsx
955
- var ObjectSettingsContainer = ({ object, role }) => {
956
- var _effect = _useSignals10();
957
- try {
958
- const data = useMemo2(() => ({
959
- subject: object
960
- }), [
961
- object
962
- ]);
963
- return /* @__PURE__ */ React10.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React10.createElement(StackItem2.Content, {
964
- toolbar: false
965
- }, /* @__PURE__ */ React10.createElement("div", {
966
- role: "none",
967
- className: "overflow-y-auto pli-cardSpacingInline plb-cardSpacingBlock"
968
- }, /* @__PURE__ */ React10.createElement(BaseObjectSettings, {
969
- object
970
- }, /* @__PURE__ */ React10.createElement(Surface, {
971
- role: "base-object-settings",
972
- data
973
- })), /* @__PURE__ */ React10.createElement(Surface, {
974
- role: "object-settings",
975
- data
976
- }))));
977
- } finally {
978
- _effect.f();
979
- }
980
- };
981
-
982
906
  // src/components/PersistenceStatus.tsx
983
- import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
984
- import React11, { useEffect as useEffect2, useState as useState4 } from "react";
907
+ import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
908
+ import React9, { useEffect as useEffect2, useState as useState4 } from "react";
985
909
  import { debounce } from "@dxos/async";
986
- import { Icon as Icon7, Tooltip, useTranslation as useTranslation10 } from "@dxos/react-ui";
910
+ import { Icon as Icon7, Tooltip, useTranslation as useTranslation9 } from "@dxos/react-ui";
987
911
  import { mx, staticPlaceholderText, warningText } from "@dxos/react-ui-theme";
988
912
  var PersistenceStatus = ({ db }) => {
989
- var _effect = _useSignals11();
913
+ var _effect = _useSignals9();
990
914
  try {
991
- const { t } = useTranslation10(SPACE_PLUGIN);
915
+ const { t } = useTranslation9(meta.id);
992
916
  const [displayMessage, setDisplayMessage] = useState4(false);
993
917
  const [status, naturalSetStatus] = useState4(0);
994
918
  const [prevStatus, setPrevStatus] = useState4(0);
@@ -1005,37 +929,37 @@ var PersistenceStatus = ({ db }) => {
1005
929
  ]);
1006
930
  switch (status) {
1007
931
  case 2:
1008
- return /* @__PURE__ */ React11.createElement("div", {
932
+ return /* @__PURE__ */ React9.createElement("div", {
1009
933
  className: "flex items-center"
1010
- }, /* @__PURE__ */ React11.createElement(Icon7, {
934
+ }, /* @__PURE__ */ React9.createElement(Icon7, {
1011
935
  icon: "ph--warning--regular",
1012
936
  size: 4,
1013
937
  classNames: "me-1"
1014
- }), /* @__PURE__ */ React11.createElement("span", {
938
+ }), /* @__PURE__ */ React9.createElement("span", {
1015
939
  className: mx("text-sm", warningText)
1016
940
  }, t("persistence error label")));
1017
941
  case 1:
1018
- return /* @__PURE__ */ React11.createElement("div", {
942
+ return /* @__PURE__ */ React9.createElement("div", {
1019
943
  className: "flex items-center"
1020
- }, /* @__PURE__ */ React11.createElement(Icon7, {
944
+ }, /* @__PURE__ */ React9.createElement(Icon7, {
1021
945
  icon: "ph--arrows-counter-clockwise--regular",
1022
946
  size: 4,
1023
947
  classNames: "me-1"
1024
- }), /* @__PURE__ */ React11.createElement("span", {
948
+ }), /* @__PURE__ */ React9.createElement("span", {
1025
949
  className: mx("text-sm", staticPlaceholderText)
1026
950
  }, t("persistence pending label")));
1027
951
  case 0:
1028
952
  default:
1029
- return /* @__PURE__ */ React11.createElement(Tooltip.Trigger, {
953
+ return /* @__PURE__ */ React9.createElement(Tooltip.Trigger, {
1030
954
  delayDuration: 400,
1031
955
  role: "status",
1032
956
  content: t("persisted locally message"),
1033
957
  className: "flex items-center"
1034
- }, /* @__PURE__ */ React11.createElement(Icon7, {
958
+ }, /* @__PURE__ */ React9.createElement(Icon7, {
1035
959
  icon: "ph--check-circle--regular",
1036
960
  size: 4,
1037
961
  classNames: "me-1"
1038
- }), displayMessage && /* @__PURE__ */ React11.createElement("span", {
962
+ }), displayMessage && /* @__PURE__ */ React9.createElement("span", {
1039
963
  className: mx("text-sm", staticPlaceholderText)
1040
964
  }, t("persisted locally label")));
1041
965
  }
@@ -1045,37 +969,33 @@ var PersistenceStatus = ({ db }) => {
1045
969
  };
1046
970
 
1047
971
  // src/components/PopoverRenameObject.tsx
1048
- import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
1049
- import React12, { useCallback as useCallback7, useRef as useRef4, useState as useState5 } from "react";
1050
- import { createIntent as createIntent6, LayoutAction as LayoutAction5, useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework";
972
+ import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
973
+ import React10, { useCallback as useCallback7, useRef as useRef3, useState as useState5 } from "react";
974
+ import { LayoutAction as LayoutAction5, createIntent as createIntent6, useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework";
975
+ import { Obj as Obj2 } from "@dxos/echo";
1051
976
  import { log as log2 } from "@dxos/log";
1052
- import { Button as Button5, Input as Input3, useTranslation as useTranslation11 } from "@dxos/react-ui";
977
+ import { Button as Button5, Input as Input2, useTranslation as useTranslation10 } from "@dxos/react-ui";
1053
978
  var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
1054
- var POPOVER_RENAME_OBJECT = `${SPACE_PLUGIN}/PopoverRenameObject`;
1055
- var PopoverRenameObject = ({ object: obj }) => {
1056
- var _effect = _useSignals12();
979
+ var POPOVER_RENAME_OBJECT = `${meta.id}/PopoverRenameObject`;
980
+ var PopoverRenameObject = ({ object }) => {
981
+ var _effect = _useSignals10();
1057
982
  try {
1058
- const { t } = useTranslation11(SPACE_PLUGIN);
1059
- const doneButton = useRef4(null);
1060
- const object = obj;
1061
- const [name, setName] = useState5(object.name || object.title || "");
983
+ const { t } = useTranslation10(meta.id);
984
+ const doneButton = useRef3(null);
985
+ const [name, setName] = useState5(Obj2.getLabel(object));
1062
986
  const { dispatchPromise: dispatch } = useIntentDispatcher6();
1063
987
  const handleDone = useCallback7(() => {
1064
988
  try {
1065
- object.name = name;
989
+ name && Obj2.setLabel(object, name);
1066
990
  } catch (err) {
1067
- try {
1068
- object.title = name;
1069
- } catch {
1070
- log2.error("Failed to rename object", {
1071
- err
1072
- }, {
1073
- F: __dxlog_file3,
1074
- L: 32,
1075
- S: void 0,
1076
- C: (f, a) => f(...a)
1077
- });
1078
- }
991
+ log2.error("Failed to rename object", {
992
+ err
993
+ }, {
994
+ F: __dxlog_file3,
995
+ L: 27,
996
+ S: void 0,
997
+ C: (f, a) => f(...a)
998
+ });
1079
999
  }
1080
1000
  void dispatch(createIntent6(LayoutAction5.UpdatePopover, {
1081
1001
  part: "popover",
@@ -1089,21 +1009,21 @@ var PopoverRenameObject = ({ object: obj }) => {
1089
1009
  object,
1090
1010
  name
1091
1011
  ]);
1092
- return /* @__PURE__ */ React12.createElement("div", {
1012
+ return /* @__PURE__ */ React10.createElement("div", {
1093
1013
  role: "none",
1094
1014
  className: "p-2 flex gap-2"
1095
- }, /* @__PURE__ */ React12.createElement("div", {
1015
+ }, /* @__PURE__ */ React10.createElement("div", {
1096
1016
  role: "none",
1097
1017
  className: "flex-1"
1098
- }, /* @__PURE__ */ React12.createElement(Input3.Root, null, /* @__PURE__ */ React12.createElement(Input3.Label, {
1018
+ }, /* @__PURE__ */ React10.createElement(Input2.Root, null, /* @__PURE__ */ React10.createElement(Input2.Label, {
1099
1019
  srOnly: true
1100
- }, t("object name label")), /* @__PURE__ */ React12.createElement(Input3.TextInput, {
1020
+ }, t("object name label")), /* @__PURE__ */ React10.createElement(Input2.TextInput, {
1101
1021
  placeholder: t("object placeholder"),
1102
1022
  value: name,
1103
1023
  "data-testid": "spacePlugin.renameObject.input",
1104
1024
  onChange: ({ target: { value } }) => setName(value),
1105
1025
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1106
- }))), /* @__PURE__ */ React12.createElement(Button5, {
1026
+ }))), /* @__PURE__ */ React10.createElement(Button5, {
1107
1027
  ref: doneButton,
1108
1028
  classNames: "self-stretch",
1109
1029
  onClick: handleDone
@@ -1116,16 +1036,16 @@ var PopoverRenameObject = ({ object: obj }) => {
1116
1036
  };
1117
1037
 
1118
1038
  // src/components/PopoverRenameSpace.tsx
1119
- import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
1120
- import React13, { useCallback as useCallback8, useRef as useRef5, useState as useState6 } from "react";
1121
- import { createIntent as createIntent7, LayoutAction as LayoutAction6, useIntentDispatcher as useIntentDispatcher7 } from "@dxos/app-framework";
1122
- import { Button as Button6, Input as Input4, Popover, useTranslation as useTranslation12 } from "@dxos/react-ui";
1123
- var POPOVER_RENAME_SPACE = `${SPACE_PLUGIN}/PopoverRenameSpace`;
1039
+ import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
1040
+ import React11, { useCallback as useCallback8, useRef as useRef4, useState as useState6 } from "react";
1041
+ import { LayoutAction as LayoutAction6, createIntent as createIntent7, useIntentDispatcher as useIntentDispatcher7 } from "@dxos/app-framework";
1042
+ import { Button as Button6, Input as Input3, Popover, useTranslation as useTranslation11 } from "@dxos/react-ui";
1043
+ var POPOVER_RENAME_SPACE = `${meta.id}/PopoverRenameSpace`;
1124
1044
  var PopoverRenameSpace = ({ space }) => {
1125
- var _effect = _useSignals13();
1045
+ var _effect = _useSignals11();
1126
1046
  try {
1127
- const { t } = useTranslation12(SPACE_PLUGIN);
1128
- const doneButton = useRef5(null);
1047
+ const { t } = useTranslation11(meta.id);
1048
+ const doneButton = useRef4(null);
1129
1049
  const [name, setName] = useState6(space.properties.name ?? "");
1130
1050
  const { dispatchPromise: dispatch } = useIntentDispatcher7();
1131
1051
  const handleDone = useCallback8(() => {
@@ -1142,24 +1062,24 @@ var PopoverRenameSpace = ({ space }) => {
1142
1062
  space,
1143
1063
  name
1144
1064
  ]);
1145
- return /* @__PURE__ */ React13.createElement("div", {
1065
+ return /* @__PURE__ */ React11.createElement("div", {
1146
1066
  role: "none",
1147
1067
  className: "p-2 flex gap-2"
1148
- }, /* @__PURE__ */ React13.createElement("div", {
1068
+ }, /* @__PURE__ */ React11.createElement("div", {
1149
1069
  role: "none",
1150
1070
  className: "flex-1"
1151
- }, /* @__PURE__ */ React13.createElement(Input4.Root, null, /* @__PURE__ */ React13.createElement(Input4.Label, {
1071
+ }, /* @__PURE__ */ React11.createElement(Input3.Root, null, /* @__PURE__ */ React11.createElement(Input3.Label, {
1152
1072
  srOnly: true
1153
- }, t("space name label")), /* @__PURE__ */ React13.createElement(Input4.TextInput, {
1073
+ }, t("space name label")), /* @__PURE__ */ React11.createElement(Input3.TextInput, {
1154
1074
  defaultValue: space.properties.name ?? "",
1155
1075
  placeholder: t("unnamed space label"),
1156
1076
  onChange: ({ target: { value } }) => setName(value),
1157
1077
  // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
1158
1078
  // Currently this is not possible because Radix does not expose the popover context.
1159
1079
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1160
- }))), /* @__PURE__ */ React13.createElement(Popover.Close, {
1080
+ }))), /* @__PURE__ */ React11.createElement(Popover.Close, {
1161
1081
  asChild: true
1162
- }, /* @__PURE__ */ React13.createElement(Button6, {
1082
+ }, /* @__PURE__ */ React11.createElement(Button6, {
1163
1083
  ref: doneButton,
1164
1084
  classNames: "self-stretch",
1165
1085
  onClick: handleDone
@@ -1172,11 +1092,11 @@ var PopoverRenameSpace = ({ space }) => {
1172
1092
  };
1173
1093
 
1174
1094
  // src/components/SchemaContainer.tsx
1175
- import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
1176
- import React14, { useState as useState7, useEffect as useEffect3 } from "react";
1177
- import { useTranslation as useTranslation13 } from "@dxos/react-ui";
1178
- import { controlItemClasses, ControlPage as ControlPage2, ControlSection as ControlSection2 } from "@dxos/react-ui-form";
1179
- import { StackItem as StackItem3 } from "@dxos/react-ui-stack";
1095
+ import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
1096
+ import React12, { useEffect as useEffect3, useState as useState7 } from "react";
1097
+ import { useTranslation as useTranslation12 } from "@dxos/react-ui";
1098
+ import { ControlPage as ControlPage2, ControlSection as ControlSection2, controlItemClasses } from "@dxos/react-ui-form";
1099
+ import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
1180
1100
  var useQuerySpaceSchemas = (space) => {
1181
1101
  const [schemas, setSchemas] = useState7([]);
1182
1102
  useEffect3(() => {
@@ -1191,38 +1111,38 @@ var useQuerySpaceSchemas = (space) => {
1191
1111
  return schemas;
1192
1112
  };
1193
1113
  var SchemaContainer = ({ space }) => {
1194
- var _effect = _useSignals14();
1114
+ var _effect = _useSignals12();
1195
1115
  try {
1196
- const { t } = useTranslation13(SPACE_PLUGIN);
1116
+ const { t } = useTranslation12(meta.id);
1197
1117
  const schemas = useQuerySpaceSchemas(space);
1198
- return /* @__PURE__ */ React14.createElement(StackItem3.Content, {
1199
- classNames: "block overflow-y-auto"
1200
- }, /* @__PURE__ */ React14.createElement(ControlPage2, null, /* @__PURE__ */ React14.createElement(ControlSection2, {
1118
+ return /* @__PURE__ */ React12.createElement(StackItem2.Content, {
1119
+ scrollable: true
1120
+ }, /* @__PURE__ */ React12.createElement(ControlPage2, null, /* @__PURE__ */ React12.createElement(ControlSection2, {
1201
1121
  title: t("schema verbose label"),
1202
1122
  description: t("schema description")
1203
- }, /* @__PURE__ */ React14.createElement("div", {
1123
+ }, /* @__PURE__ */ React12.createElement("div", {
1204
1124
  role: "none",
1205
1125
  className: controlItemClasses
1206
- }, schemas.length === 0 && /* @__PURE__ */ React14.createElement("div", {
1126
+ }, schemas.length === 0 && /* @__PURE__ */ React12.createElement("div", {
1207
1127
  className: "text-center plb-4"
1208
- }, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ React14.createElement("div", {
1128
+ }, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ React12.createElement("div", {
1209
1129
  key: schema.id
1210
- }, /* @__PURE__ */ React14.createElement("div", null, schema.typename)))))));
1130
+ }, /* @__PURE__ */ React12.createElement("div", null, schema.typename)))))));
1211
1131
  } finally {
1212
1132
  _effect.f();
1213
1133
  }
1214
1134
  };
1215
1135
 
1216
1136
  // src/components/SpacePresence.tsx
1217
- import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
1218
- import { Option } from "effect";
1219
- import React15, { forwardRef, useCallback as useCallback9, useEffect as useEffect4, useState as useState8 } from "react";
1137
+ import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
1138
+ import * as Option2 from "effect/Option";
1139
+ import React13, { forwardRef, useCallback as useCallback9, useEffect as useEffect4, useState as useState8 } from "react";
1220
1140
  import { useAppGraph as useAppGraph2, useCapability } from "@dxos/app-framework";
1221
1141
  import { generateName } from "@dxos/display-name";
1222
1142
  import { PublicKey, useClient as useClient5 } from "@dxos/react-client";
1223
- import { getSpace as getSpace3, useMembers, fullyQualifiedId as fullyQualifiedId3 } from "@dxos/react-client/echo";
1143
+ import { fullyQualifiedId as fullyQualifiedId3, getSpace as getSpace3, useMembers } from "@dxos/react-client/echo";
1224
1144
  import { useIdentity } from "@dxos/react-client/halo";
1225
- import { Avatar, Tooltip as Tooltip2, Popover as Popover2, useTranslation as useTranslation14, List, ListItem, useDefaultValue } from "@dxos/react-ui";
1145
+ import { Avatar, List, ListItem, Popover as Popover2, Tooltip as Tooltip2, useDefaultValue as useDefaultValue2, useTranslation as useTranslation13 } from "@dxos/react-ui";
1226
1146
  import { AttentionGlyph, useAttended, useAttention } from "@dxos/react-ui-attention";
1227
1147
  import { ComplexMap, keyToFallback } from "@dxos/util";
1228
1148
  var REFRESH_INTERVAL = 5e3;
@@ -1230,7 +1150,7 @@ var ACTIVITY_DURATION = 3e4;
1230
1150
  var noViewers = new ComplexMap(PublicKey.hash);
1231
1151
  var getName = (identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());
1232
1152
  var SpacePresence = ({ object, spaceKey }) => {
1233
- var _effect = _useSignals15();
1153
+ var _effect = _useSignals13();
1234
1154
  try {
1235
1155
  const spaceState = useCapability(SpaceCapabilities.MutableState);
1236
1156
  const client = useClient5();
@@ -1260,7 +1180,7 @@ var SpacePresence = ({ object, spaceKey }) => {
1260
1180
  lastSeen
1261
1181
  };
1262
1182
  }).toSorted((a, b) => a.lastSeen - b.lastSeen);
1263
- return /* @__PURE__ */ React15.createElement(FullPresence, {
1183
+ return /* @__PURE__ */ React13.createElement(FullPresence, {
1264
1184
  members: membersForObject
1265
1185
  });
1266
1186
  } finally {
@@ -1268,46 +1188,46 @@ var SpacePresence = ({ object, spaceKey }) => {
1268
1188
  }
1269
1189
  };
1270
1190
  var FullPresence = (props) => {
1271
- var _effect = _useSignals15();
1191
+ var _effect = _useSignals13();
1272
1192
  try {
1273
1193
  const { size = 9, onMemberClick } = props;
1274
- const members = useDefaultValue(props.members, () => []);
1194
+ const members = useDefaultValue2(props.members, () => []);
1275
1195
  if (members.length === 0) {
1276
1196
  return null;
1277
1197
  }
1278
- return /* @__PURE__ */ React15.createElement("div", {
1198
+ return /* @__PURE__ */ React13.createElement("div", {
1279
1199
  className: "dx-avatar-group",
1280
1200
  "data-testid": "spacePlugin.presence"
1281
- }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React15.createElement(Tooltip2.Trigger, {
1201
+ }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React13.createElement(Tooltip2.Trigger, {
1282
1202
  key: member.identity.identityKey.toHex(),
1283
1203
  side: "bottom",
1284
1204
  content: getName(member.identity),
1285
1205
  className: "grid focus:outline-none"
1286
- }, /* @__PURE__ */ React15.createElement(PresenceAvatar, {
1206
+ }, /* @__PURE__ */ React13.createElement(PresenceAvatar, {
1287
1207
  identity: member.identity,
1288
1208
  match: member.currentlyAttended,
1289
1209
  index: members.length - i,
1290
1210
  onClick: () => onMemberClick?.(member),
1291
1211
  size
1292
- }))), members.length > 3 && /* @__PURE__ */ React15.createElement(Popover2.Root, null, /* @__PURE__ */ React15.createElement(Popover2.Trigger, {
1212
+ }))), members.length > 3 && /* @__PURE__ */ React13.createElement(Popover2.Root, null, /* @__PURE__ */ React13.createElement(Popover2.Trigger, {
1293
1213
  className: "grid focus:outline-none"
1294
- }, /* @__PURE__ */ React15.createElement(Avatar.Root, null, /* @__PURE__ */ React15.createElement(Avatar.Content, {
1214
+ }, /* @__PURE__ */ React13.createElement(Avatar.Root, null, /* @__PURE__ */ React13.createElement(Avatar.Content, {
1295
1215
  status: "inactive",
1296
1216
  style: {
1297
1217
  zIndex: members.length - 4
1298
1218
  },
1299
1219
  fallback: `+${members.length - 3}`,
1300
1220
  size
1301
- }))), /* @__PURE__ */ React15.createElement(Popover2.Portal, null, /* @__PURE__ */ React15.createElement(Popover2.Content, {
1221
+ }))), /* @__PURE__ */ React13.createElement(Popover2.Portal, null, /* @__PURE__ */ React13.createElement(Popover2.Content, {
1302
1222
  side: "bottom"
1303
- }, /* @__PURE__ */ React15.createElement(Popover2.Arrow, null), /* @__PURE__ */ React15.createElement(Popover2.Viewport, {
1223
+ }, /* @__PURE__ */ React13.createElement(Popover2.Arrow, null), /* @__PURE__ */ React13.createElement(Popover2.Viewport, {
1304
1224
  classNames: "max-bs-56"
1305
- }, /* @__PURE__ */ React15.createElement(List, null, members.map((member) => /* @__PURE__ */ React15.createElement(ListItem.Root, {
1225
+ }, /* @__PURE__ */ React13.createElement(List, null, members.map((member) => /* @__PURE__ */ React13.createElement(ListItem.Root, {
1306
1226
  key: member.identity.identityKey.toHex(),
1307
1227
  classNames: "flex gap-2 items-center cursor-pointer mbe-2",
1308
1228
  onClick: () => onMemberClick?.(member),
1309
1229
  "data-testid": "identity-list-item"
1310
- }, /* @__PURE__ */ React15.createElement(PresenceAvatar, {
1230
+ }, /* @__PURE__ */ React13.createElement(PresenceAvatar, {
1311
1231
  identity: member.identity,
1312
1232
  size,
1313
1233
  showName: true,
@@ -1318,11 +1238,11 @@ var FullPresence = (props) => {
1318
1238
  }
1319
1239
  };
1320
1240
  var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, index, onClick, size }, forwardedRef) => {
1321
- var _effect = _useSignals15();
1241
+ var _effect = _useSignals13();
1322
1242
  try {
1323
1243
  const status = match ? "current" : "active";
1324
1244
  const fallbackValue = keyToFallback(identity.identityKey);
1325
- return /* @__PURE__ */ React15.createElement(Avatar.Root, null, /* @__PURE__ */ React15.createElement(Avatar.Content, {
1245
+ return /* @__PURE__ */ React13.createElement(Avatar.Root, null, /* @__PURE__ */ React13.createElement(Avatar.Content, {
1326
1246
  status,
1327
1247
  hue: identity.profile?.data?.hue || fallbackValue.hue,
1328
1248
  "data-testid": "spacePlugin.presence.member",
@@ -1336,7 +1256,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
1336
1256
  onClick,
1337
1257
  fallback: identity.profile?.data?.emoji || fallbackValue.emoji,
1338
1258
  ref: forwardedRef
1339
- }), /* @__PURE__ */ React15.createElement(Avatar.Label, {
1259
+ }), /* @__PURE__ */ React13.createElement(Avatar.Label, {
1340
1260
  classNames: showName ? "text-sm truncate pli-2" : "sr-only"
1341
1261
  }, getName(identity)));
1342
1262
  } finally {
@@ -1344,7 +1264,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
1344
1264
  }
1345
1265
  });
1346
1266
  var SmallPresenceLive = ({ id, open, viewers }) => {
1347
- var _effect = _useSignals15();
1267
+ var _effect = _useSignals13();
1348
1268
  try {
1349
1269
  const { hasAttention, isAncestor, isRelated } = useAttention(id);
1350
1270
  const isAttended = hasAttention || isAncestor || isRelated;
@@ -1352,7 +1272,7 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1352
1272
  const attended = useAttended();
1353
1273
  const startOfAttention = attended.at(-1);
1354
1274
  const path = usePath(graph, startOfAttention);
1355
- const containsAttended = !open && !isAttended && id && Option.isSome(path) ? path.value.includes(id) : false;
1275
+ const containsAttended = !open && !isAttended && id && Option2.isSome(path) ? path.value.includes(id) : false;
1356
1276
  const getActiveViewers = (viewers2) => {
1357
1277
  const moment = Date.now();
1358
1278
  return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
@@ -1369,7 +1289,7 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1369
1289
  }, [
1370
1290
  viewers
1371
1291
  ]);
1372
- return /* @__PURE__ */ React15.createElement(SmallPresence, {
1292
+ return /* @__PURE__ */ React13.createElement(SmallPresence, {
1373
1293
  count: activeViewers.length,
1374
1294
  attended: isAttended,
1375
1295
  containsAttended
@@ -1379,16 +1299,16 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1379
1299
  }
1380
1300
  };
1381
1301
  var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1382
- var _effect = _useSignals15();
1302
+ var _effect = _useSignals13();
1383
1303
  try {
1384
- const { t } = useTranslation14(SPACE_PLUGIN);
1385
- return /* @__PURE__ */ React15.createElement(Tooltip2.Trigger, {
1304
+ const { t } = useTranslation13(meta.id);
1305
+ return /* @__PURE__ */ React13.createElement(Tooltip2.Trigger, {
1386
1306
  asChild: true,
1387
1307
  content: t("presence label", {
1388
1308
  count
1389
1309
  }),
1390
1310
  side: "bottom"
1391
- }, /* @__PURE__ */ React15.createElement(AttentionGlyph, {
1311
+ }, /* @__PURE__ */ React13.createElement(AttentionGlyph, {
1392
1312
  attended,
1393
1313
  containsAttended,
1394
1314
  presence: count > 1 ? "many" : count === 1 ? "one" : "none",
@@ -1400,45 +1320,43 @@ var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1400
1320
  };
1401
1321
 
1402
1322
  // src/components/SpacePluginSettings.tsx
1403
- import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
1404
- import React16 from "react";
1323
+ import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
1324
+ import React14 from "react";
1405
1325
  import { createIntent as createIntent8, useIntentDispatcher as useIntentDispatcher8 } from "@dxos/app-framework";
1406
1326
  import { useClient as useClient6 } from "@dxos/react-client";
1407
1327
  import { useSpaces as useSpaces2 } from "@dxos/react-client/echo";
1408
- import { Input as Input5, toLocalizedString as toLocalizedString3, useTranslation as useTranslation15, List as List2, ListItem as ListItem2, IconButton } from "@dxos/react-ui";
1409
- import { controlItemClasses as controlItemClasses2, ControlPage as ControlPage3, ControlSection as ControlSection3, DeprecatedFormInput } from "@dxos/react-ui-form";
1328
+ import { IconButton, Input as Input4, List as List2, ListItem as ListItem2, toLocalizedString as toLocalizedString3, useTranslation as useTranslation14 } from "@dxos/react-ui";
1329
+ import { ControlGroup, ControlItemInput as ControlItemInput2, ControlPage as ControlPage3, ControlSection as ControlSection3, controlItemClasses as controlItemClasses2 } from "@dxos/react-ui-form";
1410
1330
  var SpacePluginSettings = ({ settings }) => {
1411
- var _effect = _useSignals16();
1331
+ var _effect = _useSignals14();
1412
1332
  try {
1413
- const { t } = useTranslation15(SPACE_PLUGIN);
1333
+ const { t } = useTranslation14(meta.id);
1414
1334
  const client = useClient6();
1415
1335
  const spaces = useSpaces2({
1416
1336
  all: settings.showHidden
1417
1337
  });
1418
1338
  const { dispatchPromise: dispatch } = useIntentDispatcher8();
1419
- return /* @__PURE__ */ React16.createElement(ControlPage3, null, /* @__PURE__ */ React16.createElement(ControlSection3, {
1339
+ return /* @__PURE__ */ React14.createElement(ControlPage3, null, /* @__PURE__ */ React14.createElement(ControlSection3, {
1420
1340
  title: t("space settings label"),
1421
1341
  description: t("space settings description")
1422
- }, /* @__PURE__ */ React16.createElement("div", {
1423
- className: "pli-trimMd container-max-width"
1424
- }, /* @__PURE__ */ React16.createElement(DeprecatedFormInput, {
1425
- label: t("show hidden spaces label")
1426
- }, /* @__PURE__ */ React16.createElement(Input5.Switch, {
1342
+ }, /* @__PURE__ */ React14.createElement(ControlGroup, null, /* @__PURE__ */ React14.createElement(ControlItemInput2, {
1343
+ title: t("show hidden spaces label")
1344
+ }, /* @__PURE__ */ React14.createElement(Input4.Switch, {
1427
1345
  checked: settings.showHidden,
1428
1346
  onCheckedChange: (checked) => settings.showHidden = !!checked
1429
- }))), /* @__PURE__ */ React16.createElement(List2, {
1347
+ }))), /* @__PURE__ */ React14.createElement(List2, {
1430
1348
  classNames: [
1431
1349
  controlItemClasses2,
1432
1350
  "flex flex-col gap-trimSm"
1433
1351
  ]
1434
- }, spaces.map((space) => /* @__PURE__ */ React16.createElement(ListItem2.Root, {
1352
+ }, spaces.map((space) => /* @__PURE__ */ React14.createElement(ListItem2.Root, {
1435
1353
  key: space.id,
1436
1354
  classNames: "is-full items-center"
1437
- }, /* @__PURE__ */ React16.createElement(ListItem2.Heading, {
1355
+ }, /* @__PURE__ */ React14.createElement(ListItem2.Heading, {
1438
1356
  classNames: "grow truncate !min-bs-0"
1439
1357
  }, toLocalizedString3(getSpaceDisplayName(space, {
1440
1358
  personal: space === client.spaces.default
1441
- }), t)), /* @__PURE__ */ React16.createElement(IconButton, {
1359
+ }), t)), /* @__PURE__ */ React14.createElement(IconButton, {
1442
1360
  icon: "ph--faders--regular",
1443
1361
  onClick: () => dispatch(createIntent8(SpaceAction.OpenSettings, {
1444
1362
  space
@@ -1451,18 +1369,19 @@ var SpacePluginSettings = ({ settings }) => {
1451
1369
  };
1452
1370
 
1453
1371
  // src/components/SpaceSettings/SpaceSettingsContainer.tsx
1454
- import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
1455
- import { pipe as pipe2, Schema } from "effect";
1456
- import React17, { useCallback as useCallback10, useMemo as useMemo3, useState as useState9 } from "react";
1457
- import { chain as chain2, createIntent as createIntent9, LayoutAction as LayoutAction7, useIntentDispatcher as useIntentDispatcher9 } from "@dxos/app-framework";
1372
+ import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
1373
+ import * as Function2 from "effect/Function";
1374
+ import * as Schema from "effect/Schema";
1375
+ import React15, { useCallback as useCallback10, useMemo as useMemo2, useState as useState9 } from "react";
1376
+ import { LayoutAction as LayoutAction7, chain as chain2, createIntent as createIntent9, useIntentDispatcher as useIntentDispatcher9 } from "@dxos/app-framework";
1458
1377
  import { log as log3 } from "@dxos/log";
1459
1378
  import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
1460
1379
  import { useClient as useClient7 } from "@dxos/react-client";
1461
- import { SpaceState as SpaceState2 } from "@dxos/react-client/echo";
1462
- import { Button as Button7, Input as Input6, useMulticastObservable, useTranslation as useTranslation16 } from "@dxos/react-ui";
1463
- import { Form as Form3, ControlItem, ControlItemInput as ControlItemInput2, ControlSection as ControlSection4, ControlPage as ControlPage4 } from "@dxos/react-ui-form";
1380
+ import { SpaceState } from "@dxos/react-client/echo";
1381
+ import { Button as Button7, Input as Input5, useMulticastObservable, useTranslation as useTranslation15 } from "@dxos/react-ui";
1382
+ import { ControlItem, ControlItemInput as ControlItemInput3, ControlPage as ControlPage4, ControlSection as ControlSection4, Form as Form3 } from "@dxos/react-ui-form";
1464
1383
  import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
1465
- import { StackItem as StackItem4 } from "@dxos/react-ui-stack";
1384
+ import { StackItem as StackItem3 } from "@dxos/react-ui-stack";
1466
1385
  var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsContainer.tsx";
1467
1386
  var FormSchema = SpaceForm.pipe(Schema.extend(Schema.Struct({
1468
1387
  archived: Schema.Boolean.annotations({
@@ -1470,19 +1389,19 @@ var FormSchema = SpaceForm.pipe(Schema.extend(Schema.Struct({
1470
1389
  })
1471
1390
  })));
1472
1391
  var SpaceSettingsContainer = ({ space }) => {
1473
- var _effect = _useSignals17();
1392
+ var _effect = _useSignals15();
1474
1393
  try {
1475
- const { t } = useTranslation16(SPACE_PLUGIN);
1394
+ const { t } = useTranslation15(meta.id);
1476
1395
  const { dispatchPromise: dispatch } = useIntentDispatcher9();
1477
1396
  const client = useClient7();
1478
- const archived = useMulticastObservable(space.state) === SpaceState2.SPACE_INACTIVE;
1397
+ const archived = useMulticastObservable(space.state) === SpaceState.SPACE_INACTIVE;
1479
1398
  const [edgeReplication, setEdgeReplication] = useState9(space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED);
1480
1399
  const toggleEdgeReplication = useCallback10(async (next) => {
1481
1400
  setEdgeReplication(next);
1482
1401
  await space?.internal.setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED).catch((err) => {
1483
1402
  log3.catch(err, void 0, {
1484
1403
  F: __dxlog_file4,
1485
- L: 51,
1404
+ L: 52,
1486
1405
  S: void 0,
1487
1406
  C: (f, a) => f(...a)
1488
1407
  });
@@ -1503,7 +1422,7 @@ var SpaceSettingsContainer = ({ space }) => {
1503
1422
  space.properties.hue = properties.hue;
1504
1423
  }
1505
1424
  if (properties.archived && !archived) {
1506
- void dispatch(pipe2(createIntent9(SpaceAction.Close, {
1425
+ void dispatch(Function2.pipe(createIntent9(SpaceAction.Close, {
1507
1426
  space
1508
1427
  }), chain2(LayoutAction7.SwitchWorkspace, {
1509
1428
  part: "workspace",
@@ -1519,7 +1438,7 @@ var SpaceSettingsContainer = ({ space }) => {
1519
1438
  toggleEdgeReplication,
1520
1439
  archived
1521
1440
  ]);
1522
- const values = useMemo3(() => ({
1441
+ const values = useMemo2(() => ({
1523
1442
  name: space.properties.name,
1524
1443
  icon: space.properties.icon,
1525
1444
  hue: space.properties.hue,
@@ -1532,16 +1451,16 @@ var SpaceSettingsContainer = ({ space }) => {
1532
1451
  edgeReplication,
1533
1452
  archived
1534
1453
  ]);
1535
- const customElements = useMemo3(() => ({
1454
+ const customElements = useMemo2(() => ({
1536
1455
  name: ({ type, label, getValue, onValueChange }) => {
1537
1456
  const handleChange = useCallback10(({ target: { value } }) => onValueChange(type, value), [
1538
1457
  onValueChange,
1539
1458
  type
1540
1459
  ]);
1541
- return /* @__PURE__ */ React17.createElement(ControlItemInput2, {
1460
+ return /* @__PURE__ */ React15.createElement(ControlItemInput3, {
1542
1461
  title: label,
1543
1462
  description: t("display name description")
1544
- }, /* @__PURE__ */ React17.createElement(Input6.TextInput, {
1463
+ }, /* @__PURE__ */ React15.createElement(Input5.TextInput, {
1545
1464
  value: getValue(),
1546
1465
  onChange: handleChange,
1547
1466
  placeholder: t("display name input placeholder"),
@@ -1549,21 +1468,21 @@ var SpaceSettingsContainer = ({ space }) => {
1549
1468
  }));
1550
1469
  },
1551
1470
  icon: ({ type, label, getValue, onValueChange }) => {
1552
- const handleChange = useCallback10((nextEmoji) => onValueChange(type, nextEmoji), [
1471
+ const handleChange = useCallback10((icon) => onValueChange(type, icon), [
1553
1472
  onValueChange,
1554
1473
  type
1555
1474
  ]);
1556
- const handleEmojiReset = useCallback10(() => onValueChange(type, void 0), [
1475
+ const handleReset = useCallback10(() => onValueChange(type, void 0), [
1557
1476
  onValueChange,
1558
1477
  type
1559
1478
  ]);
1560
- return /* @__PURE__ */ React17.createElement(ControlItem, {
1479
+ return /* @__PURE__ */ React15.createElement(ControlItem, {
1561
1480
  title: label,
1562
1481
  description: t("icon description")
1563
- }, /* @__PURE__ */ React17.createElement(IconPicker, {
1482
+ }, /* @__PURE__ */ React15.createElement(IconPicker, {
1564
1483
  value: getValue(),
1565
1484
  onChange: handleChange,
1566
- onReset: handleEmojiReset,
1485
+ onReset: handleReset,
1567
1486
  classNames: "justify-self-end",
1568
1487
  iconSize: 5
1569
1488
  }));
@@ -1573,17 +1492,17 @@ var SpaceSettingsContainer = ({ space }) => {
1573
1492
  onValueChange,
1574
1493
  type
1575
1494
  ]);
1576
- const handleHueReset = useCallback10(() => onValueChange(type, void 0), [
1495
+ const handleReset = useCallback10(() => onValueChange(type, void 0), [
1577
1496
  onValueChange,
1578
1497
  type
1579
1498
  ]);
1580
- return /* @__PURE__ */ React17.createElement(ControlItem, {
1499
+ return /* @__PURE__ */ React15.createElement(ControlItem, {
1581
1500
  title: label,
1582
1501
  description: t("hue description")
1583
- }, /* @__PURE__ */ React17.createElement(HuePicker, {
1502
+ }, /* @__PURE__ */ React15.createElement(HuePicker, {
1584
1503
  value: getValue(),
1585
1504
  onChange: handleChange,
1586
- onReset: handleHueReset,
1505
+ onReset: handleReset,
1587
1506
  classNames: "[--hue-preview-size:1.25rem] justify-self-end"
1588
1507
  }));
1589
1508
  },
@@ -1592,10 +1511,10 @@ var SpaceSettingsContainer = ({ space }) => {
1592
1511
  onValueChange,
1593
1512
  type
1594
1513
  ]);
1595
- return /* @__PURE__ */ React17.createElement(ControlItemInput2, {
1514
+ return /* @__PURE__ */ React15.createElement(ControlItemInput3, {
1596
1515
  title: label,
1597
1516
  description: t("edge replication description")
1598
- }, /* @__PURE__ */ React17.createElement(Input6.Switch, {
1517
+ }, /* @__PURE__ */ React15.createElement(Input5.Switch, {
1599
1518
  checked: getValue(),
1600
1519
  onCheckedChange: handleChange,
1601
1520
  classNames: "justify-self-end"
@@ -1607,10 +1526,10 @@ var SpaceSettingsContainer = ({ space }) => {
1607
1526
  type,
1608
1527
  getValue
1609
1528
  ]);
1610
- return /* @__PURE__ */ React17.createElement(ControlItemInput2, {
1529
+ return /* @__PURE__ */ React15.createElement(ControlItemInput3, {
1611
1530
  title: label,
1612
1531
  description: t("archive space description")
1613
- }, /* @__PURE__ */ React17.createElement(Button7, {
1532
+ }, /* @__PURE__ */ React15.createElement(Button7, {
1614
1533
  disabled: space === client.spaces.default,
1615
1534
  onClick: handleChange
1616
1535
  }, getValue() ? t("unarchive space label") : t("archive space label")));
@@ -1619,23 +1538,23 @@ var SpaceSettingsContainer = ({ space }) => {
1619
1538
  t,
1620
1539
  space
1621
1540
  ]);
1622
- return /* @__PURE__ */ React17.createElement(StackItem4.Content, {
1623
- classNames: "block overflow-y-auto pli-2"
1624
- }, /* @__PURE__ */ React17.createElement(ControlPage4, null, /* @__PURE__ */ React17.createElement(ControlSection4, {
1541
+ return /* @__PURE__ */ React15.createElement(StackItem3.Content, {
1542
+ scrollable: true
1543
+ }, /* @__PURE__ */ React15.createElement(ControlPage4, null, /* @__PURE__ */ React15.createElement(ControlSection4, {
1625
1544
  title: t("space properties settings verbose label", {
1626
- ns: SPACE_PLUGIN
1545
+ ns: meta.id
1627
1546
  }),
1628
1547
  description: t("space properties settings description", {
1629
- ns: SPACE_PLUGIN
1548
+ ns: meta.id
1630
1549
  })
1631
- }, /* @__PURE__ */ React17.createElement(Form3, {
1550
+ }, /* @__PURE__ */ React15.createElement(Form3, {
1632
1551
  schema: FormSchema,
1633
1552
  values,
1634
1553
  autoSave: true,
1635
1554
  onSave: handleSave,
1636
1555
  Custom: customElements,
1637
1556
  outerSpacing: false,
1638
- classNames: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content] gap-4"
1557
+ classNames: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
1639
1558
  }))));
1640
1559
  } finally {
1641
1560
  _effect.f();
@@ -1643,22 +1562,22 @@ var SpaceSettingsContainer = ({ space }) => {
1643
1562
  };
1644
1563
 
1645
1564
  // src/components/SyncStatus/InlineSyncStatus.tsx
1646
- import { useSignals as _useSignals18 } from "@preact-signals/safe-react/tracking";
1647
- import { Option as Option2 } from "effect";
1648
- import React18, { useEffect as useEffect5, useState as useState10 } from "react";
1565
+ import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
1566
+ import * as Option3 from "effect/Option";
1567
+ import React16, { useEffect as useEffect5, useState as useState10 } from "react";
1649
1568
  import { useAppGraph as useAppGraph3 } from "@dxos/app-framework";
1650
1569
  import { EdgeStatus } from "@dxos/protocols/proto/dxos/client/services";
1651
1570
  import { EdgeReplicationSetting as EdgeReplicationSetting2 } from "@dxos/protocols/proto/dxos/echo/metadata";
1652
1571
  import { useClient as useClient8 } from "@dxos/react-client";
1653
1572
  import { useSpaceSyncState } from "@dxos/react-client/echo";
1654
- import { Tooltip as Tooltip3, useTranslation as useTranslation17 } from "@dxos/react-ui";
1573
+ import { Tooltip as Tooltip3, useTranslation as useTranslation16 } from "@dxos/react-ui";
1655
1574
  import { AttentionGlyph as AttentionGlyph2, useAttended as useAttended2, useAttention as useAttention2 } from "@dxos/react-ui-attention";
1656
1575
  var useEdgeStatus = () => {
1657
- const [status, setStatus] = useState10(EdgeStatus.NOT_CONNECTED);
1576
+ const [status, setStatus] = useState10(EdgeStatus.ConnectionState.NOT_CONNECTED);
1658
1577
  const client = useClient8();
1659
1578
  useEffect5(() => {
1660
1579
  client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
1661
- setStatus(status2);
1580
+ setStatus(status2.state);
1662
1581
  });
1663
1582
  }, [
1664
1583
  client
@@ -1666,9 +1585,9 @@ var useEdgeStatus = () => {
1666
1585
  return status;
1667
1586
  };
1668
1587
  var InlineSyncStatus = ({ space, open }) => {
1669
- var _effect = _useSignals18();
1588
+ var _effect = _useSignals16();
1670
1589
  try {
1671
- const { t } = useTranslation17(SPACE_PLUGIN);
1590
+ const { t } = useTranslation16(meta.id);
1672
1591
  const id = space.id;
1673
1592
  const { hasAttention, isAncestor, isRelated } = useAttention2(id);
1674
1593
  const isAttended = hasAttention || isAncestor || isRelated;
@@ -1676,16 +1595,16 @@ var InlineSyncStatus = ({ space, open }) => {
1676
1595
  const attended = useAttended2();
1677
1596
  const startOfAttention = attended.at(-1);
1678
1597
  const path = usePath(graph, startOfAttention);
1679
- const containsAttended = !open && !isAttended && id && Option2.isSome(path) ? path.value.includes(id) : false;
1680
- const connectedToEdge = useEdgeStatus() === EdgeStatus.CONNECTED;
1598
+ const containsAttended = !open && !isAttended && id && Option3.isSome(path) ? path.value.includes(id) : false;
1599
+ const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;
1681
1600
  const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting2.ENABLED;
1682
1601
  const syncState = useSpaceSyncState(space);
1683
1602
  const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
1684
- return /* @__PURE__ */ React18.createElement(Tooltip3.Trigger, {
1603
+ return /* @__PURE__ */ React16.createElement(Tooltip3.Trigger, {
1685
1604
  asChild: true,
1686
1605
  content: t("syncing label"),
1687
1606
  side: "bottom"
1688
- }, /* @__PURE__ */ React18.createElement(AttentionGlyph2, {
1607
+ }, /* @__PURE__ */ React16.createElement(AttentionGlyph2, {
1689
1608
  syncing,
1690
1609
  attended: isAttended,
1691
1610
  containsAttended,
@@ -1697,12 +1616,15 @@ var InlineSyncStatus = ({ space, open }) => {
1697
1616
  };
1698
1617
 
1699
1618
  // src/components/SyncStatus/SyncStatus.tsx
1700
- import { useSignals as _useSignals19 } from "@preact-signals/safe-react/tracking";
1701
- import React19, { useEffect as useEffect6, useState as useState11 } from "react";
1619
+ import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
1620
+ import React17, { useEffect as useEffect6, useState as useState11 } from "react";
1702
1621
  import { StatusBar } from "@dxos/plugin-status-bar";
1622
+ import { EdgeStatus as EdgeStatus2 } from "@dxos/protocols/proto/dxos/client/services";
1703
1623
  import { useClient as useClient9 } from "@dxos/react-client";
1624
+ import { useStream } from "@dxos/react-client/devtools";
1704
1625
  import { getSyncSummary, useSyncState } from "@dxos/react-client/echo";
1705
- import { Icon as Icon8, useTranslation as useTranslation18 } from "@dxos/react-ui";
1626
+ import { Icon as Icon8, Popover as Popover3, useTranslation as useTranslation17 } from "@dxos/react-ui";
1627
+ import { Unit } from "@dxos/util";
1706
1628
 
1707
1629
  // src/components/SyncStatus/save-tracker.ts
1708
1630
  import { Context } from "@dxos/context";
@@ -1798,7 +1720,7 @@ var getIcon = (status) => {
1798
1720
  // src/components/SyncStatus/SyncStatus.tsx
1799
1721
  var SYNC_STALLED_TIMEOUT = 5e3;
1800
1722
  var SyncStatus = () => {
1801
- var _effect = _useSignals19();
1723
+ var _effect = _useSignals17();
1802
1724
  try {
1803
1725
  const client = useClient9();
1804
1726
  const state = useSyncState();
@@ -1808,7 +1730,7 @@ var SyncStatus = () => {
1808
1730
  setSaved(state2 === "saved");
1809
1731
  });
1810
1732
  }, []);
1811
- return /* @__PURE__ */ React19.createElement(SyncStatusIndicator, {
1733
+ return /* @__PURE__ */ React17.createElement(SyncStatusIndicator, {
1812
1734
  state,
1813
1735
  saved
1814
1736
  });
@@ -1817,9 +1739,9 @@ var SyncStatus = () => {
1817
1739
  }
1818
1740
  };
1819
1741
  var SyncStatusIndicator = ({ state, saved }) => {
1820
- var _effect = _useSignals19();
1742
+ var _effect = _useSignals17();
1821
1743
  try {
1822
- const { t } = useTranslation18(SPACE_PLUGIN);
1744
+ const { t } = useTranslation17(meta.id);
1823
1745
  const summary = getSyncSummary(state);
1824
1746
  const offline = Object.values(state).length === 0;
1825
1747
  const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
@@ -1846,45 +1768,102 @@ var SyncStatusIndicator = ({ state, saved }) => {
1846
1768
  needsToDownload
1847
1769
  ]);
1848
1770
  const title = t(`${status} label`);
1849
- const icon = /* @__PURE__ */ React19.createElement(Icon8, {
1771
+ const icon = /* @__PURE__ */ React17.createElement(Icon8, {
1850
1772
  icon: getIcon(status),
1851
1773
  size: 4,
1852
1774
  classNames
1853
1775
  });
1854
- return /* @__PURE__ */ React19.createElement(StatusBar.Item, {
1776
+ return /* @__PURE__ */ React17.createElement(Popover3.Root, null, /* @__PURE__ */ React17.createElement(Popover3.Trigger, {
1777
+ asChild: true
1778
+ }, /* @__PURE__ */ React17.createElement(StatusBar.Item, {
1855
1779
  title
1856
- }, icon);
1780
+ }, icon)), /* @__PURE__ */ React17.createElement(Popover3.Portal, null, /* @__PURE__ */ React17.createElement(Popover3.Content, null, /* @__PURE__ */ React17.createElement(EdgeConnectionPopover, null), /* @__PURE__ */ React17.createElement(Popover3.Arrow, null))));
1781
+ } finally {
1782
+ _effect.f();
1783
+ }
1784
+ };
1785
+ var useEdgeStatus2 = () => {
1786
+ const client = useClient9();
1787
+ const { status } = useStream(() => client.services.services.EdgeAgentService.queryEdgeStatus(), {});
1788
+ return status;
1789
+ };
1790
+ var EdgeConnectionPopover = () => {
1791
+ var _effect = _useSignals17();
1792
+ try {
1793
+ const status = useEdgeStatus2();
1794
+ const { t } = useTranslation17(meta.id);
1795
+ const isConnected = status?.state === EdgeStatus2.ConnectionState.CONNECTED;
1796
+ return /* @__PURE__ */ React17.createElement("div", {
1797
+ className: "p-3 min-w-[240px]"
1798
+ }, /* @__PURE__ */ React17.createElement("div", {
1799
+ className: "flex items-center gap-2 mb-3 pb-2 border-b border-neutral-100 dark:border-neutral-800"
1800
+ }, /* @__PURE__ */ React17.createElement("div", {
1801
+ className: `w-2 h-2 rounded-full ${isConnected ? "bg-success-500 animate-pulse" : "bg-error-500"}`
1802
+ }), /* @__PURE__ */ React17.createElement("span", {
1803
+ className: "font-medium text-sm text-neutral-900 dark:text-neutral-100"
1804
+ }, isConnected ? t("Edge connected") : t("Edge disconnected"))), status?.state === EdgeStatus2.ConnectionState.NOT_CONNECTED && /* @__PURE__ */ React17.createElement("div", {
1805
+ className: "flex items-center gap-2 text-sm text-neutral-600 dark:text-neutral-400"
1806
+ }, /* @__PURE__ */ React17.createElement(Icon8, {
1807
+ icon: "ph--cloud-x--regular",
1808
+ size: 4
1809
+ }), /* @__PURE__ */ React17.createElement("span", null, t("No connection to edge service"))), status?.state === EdgeStatus2.ConnectionState.CONNECTED && /* @__PURE__ */ React17.createElement("div", {
1810
+ className: "space-y-2"
1811
+ }, /* @__PURE__ */ React17.createElement("div", {
1812
+ className: "flex items-center justify-between"
1813
+ }, /* @__PURE__ */ React17.createElement("div", {
1814
+ className: "flex items-center gap-2 text-sm text-neutral-600 dark:text-neutral-400"
1815
+ }, /* @__PURE__ */ React17.createElement(Icon8, {
1816
+ icon: "ph--timer--regular",
1817
+ size: 4
1818
+ }), /* @__PURE__ */ React17.createElement("span", null, t("Latency"))), /* @__PURE__ */ React17.createElement("span", {
1819
+ className: "text-sm font-mono text-neutral-900 dark:text-neutral-100"
1820
+ }, status.rtt.toFixed(0), " ms")), /* @__PURE__ */ React17.createElement("div", {
1821
+ className: "flex items-center justify-between"
1822
+ }, /* @__PURE__ */ React17.createElement("div", {
1823
+ className: "flex items-center gap-2 text-sm text-neutral-600 dark:text-neutral-400"
1824
+ }, /* @__PURE__ */ React17.createElement(Icon8, {
1825
+ icon: "ph--arrow-up--regular",
1826
+ size: 4
1827
+ }), /* @__PURE__ */ React17.createElement("span", null, t("Upload"))), /* @__PURE__ */ React17.createElement("span", {
1828
+ className: "text-sm font-mono text-neutral-900 dark:text-neutral-100"
1829
+ }, Unit.Kilobyte(status.rateBytesUp, 0), "/s")), /* @__PURE__ */ React17.createElement("div", {
1830
+ className: "flex items-center justify-between"
1831
+ }, /* @__PURE__ */ React17.createElement("div", {
1832
+ className: "flex items-center gap-2 text-sm text-neutral-600 dark:text-neutral-400"
1833
+ }, /* @__PURE__ */ React17.createElement(Icon8, {
1834
+ icon: "ph--arrow-down--regular",
1835
+ size: 4
1836
+ }), /* @__PURE__ */ React17.createElement("span", null, t("Download"))), /* @__PURE__ */ React17.createElement("span", {
1837
+ className: "text-sm font-mono text-neutral-900 dark:text-neutral-100"
1838
+ }, Unit.Kilobyte(status.rateBytesDown, 0), "/s"))));
1857
1839
  } finally {
1858
1840
  _effect.f();
1859
1841
  }
1860
1842
  };
1861
1843
 
1862
1844
  // src/components/ViewEditor.tsx
1863
- import { useSignals as _useSignals20 } from "@preact-signals/safe-react/tracking";
1864
- import React20, { useCallback as useCallback11, useMemo as useMemo4 } from "react";
1845
+ import { useSignals as _useSignals18 } from "@preact-signals/safe-react/tracking";
1846
+ import React18, { useCallback as useCallback11 } from "react";
1865
1847
  import { createIntent as createIntent10, useIntentDispatcher as useIntentDispatcher10 } from "@dxos/app-framework";
1866
1848
  import { Type as Type3 } from "@dxos/echo";
1867
1849
  import { invariant as invariant2 } from "@dxos/invariant";
1868
1850
  import { useClient as useClient10 } from "@dxos/react-client";
1869
- import { Filter as Filter2, getSpace as getSpace4, useQuery as useQuery3, useSchema } from "@dxos/react-client/echo";
1870
- import { ViewEditor as NativeViewEditor } from "@dxos/react-ui-form";
1871
- import { DataType as DataType3 } from "@dxos/schema";
1851
+ import { getSpace as getSpace4, useSchema } from "@dxos/react-client/echo";
1852
+ import { ViewEditor as NaturalViewEditor } from "@dxos/react-ui-form";
1853
+ import { getTypenameFromQuery as getTypenameFromQuery2 } from "@dxos/schema";
1872
1854
  var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ViewEditor.tsx";
1873
1855
  var ViewEditor = ({ view }) => {
1874
- var _effect = _useSignals20();
1856
+ var _effect = _useSignals18();
1875
1857
  try {
1876
1858
  const { dispatchPromise: dispatch } = useIntentDispatcher10();
1877
1859
  const client = useClient10();
1878
1860
  const space = getSpace4(view);
1879
- const schema = useSchema(client, space, view.query.typename);
1880
- const views = useQuery3(space, Filter2.type(DataType3.View));
1881
- const currentTypename = useMemo4(() => view.query?.typename, [
1882
- view.query?.typename
1883
- ]);
1884
- const handleUpdateTypename = useCallback11((typename) => {
1861
+ const typename = view.query ? getTypenameFromQuery2(view.query.ast) : void 0;
1862
+ const schema = useSchema(client, space, typename);
1863
+ const handleUpdateQuery = useCallback11((newQuery) => {
1885
1864
  invariant2(schema, void 0, {
1886
1865
  F: __dxlog_file6,
1887
- L: 30,
1866
+ L: 28,
1888
1867
  S: void 0,
1889
1868
  A: [
1890
1869
  "schema",
@@ -1893,20 +1872,17 @@ var ViewEditor = ({ view }) => {
1893
1872
  });
1894
1873
  invariant2(Type3.isMutable(schema), void 0, {
1895
1874
  F: __dxlog_file6,
1896
- L: 31,
1875
+ L: 29,
1897
1876
  S: void 0,
1898
1877
  A: [
1899
1878
  "Type.isMutable(schema)",
1900
1879
  ""
1901
1880
  ]
1902
1881
  });
1903
- const matchingViews = views.filter((view2) => view2.query.typename === currentTypename);
1904
- for (const view2 of matchingViews) {
1905
- view2.query.typename = typename;
1906
- }
1907
- schema.updateTypename(typename);
1882
+ view.query.ast = newQuery;
1883
+ schema.updateTypename(getTypenameFromQuery2(newQuery));
1908
1884
  }, [
1909
- views,
1885
+ view,
1910
1886
  schema
1911
1887
  ]);
1912
1888
  const handleDelete = useCallback11((fieldId) => {
@@ -1921,11 +1897,11 @@ var ViewEditor = ({ view }) => {
1921
1897
  if (!space || !schema) {
1922
1898
  return null;
1923
1899
  }
1924
- return /* @__PURE__ */ React20.createElement(NativeViewEditor, {
1900
+ return /* @__PURE__ */ React18.createElement(NaturalViewEditor, {
1925
1901
  registry: space.db.schemaRegistry,
1926
1902
  schema,
1927
1903
  view,
1928
- onTypenameChanged: Type3.isMutable(schema) ? handleUpdateTypename : void 0,
1904
+ onQueryChanged: Type3.isMutable(schema) ? handleUpdateQuery : void 0,
1929
1905
  onDelete: Type3.isMutable(schema) ? handleDelete : void 0,
1930
1906
  outerSpacing: false
1931
1907
  });
@@ -1935,9 +1911,11 @@ var ViewEditor = ({ view }) => {
1935
1911
  };
1936
1912
 
1937
1913
  // src/components/index.ts
1938
- import { lazy as lazy2 } from "react";
1939
- var CollectionMain = lazy2(() => import("./CollectionMain-ZJIFCWKZ.mjs"));
1940
- var ObjectDetailsPanel = lazy2(() => import("./ObjectDetailsPanel-QKZEDSZK.mjs"));
1914
+ import { lazy } from "react";
1915
+ var CollectionMain = lazy(() => import("./CollectionMain-EU57SRYK.mjs"));
1916
+ var ObjectDetailsPanel = lazy(() => import("./ObjectDetailsPanel-NABA2S56.mjs"));
1917
+ var ObjectSettingsContainer = lazy(() => import("./ObjectSettings-GXGTITF5.mjs"));
1918
+ var RecordMain = lazy(() => import("./RecordMain-MYFTAQ2U.mjs"));
1941
1919
 
1942
1920
  export {
1943
1921
  AwaitingObject,
@@ -1950,7 +1928,6 @@ export {
1950
1928
  JoinDialog,
1951
1929
  MembersContainer,
1952
1930
  MenuFooter,
1953
- ObjectSettingsContainer,
1954
1931
  PersistenceStatus,
1955
1932
  POPOVER_RENAME_OBJECT,
1956
1933
  PopoverRenameObject,
@@ -1970,16 +1947,7 @@ export {
1970
1947
  ViewEditor,
1971
1948
  CollectionMain,
1972
1949
  ObjectDetailsPanel,
1973
- AppGraphBuilder,
1974
- AppGraphSerializer,
1975
- IdentityCreated,
1976
- IntentResolver,
1977
- ReactRoot,
1978
- ReactSurface,
1979
- SchemaDefs,
1980
- SchemaTools,
1981
- SpaceSettings,
1982
- SpaceState,
1983
- SpacesReady
1950
+ ObjectSettingsContainer,
1951
+ RecordMain
1984
1952
  };
1985
- //# sourceMappingURL=chunk-6X5DLJM5.mjs.map
1953
+ //# sourceMappingURL=chunk-DG5YEEPZ.mjs.map