@dxos/plugin-space 0.8.4-main.a4bbb77 → 0.8.4-main.ae835ea

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 (224) hide show
  1. package/dist/lib/browser/{CollectionMain-AX7KKXWP.mjs → CollectionMain-HTKSZCRR.mjs} +2 -2
  2. package/dist/lib/browser/ObjectDetailsPanel-5B45G744.mjs +145 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-5B45G744.mjs.map +7 -0
  4. package/dist/lib/browser/ObjectSettings-UFTKBP7B.mjs +146 -0
  5. package/dist/lib/browser/ObjectSettings-UFTKBP7B.mjs.map +7 -0
  6. package/dist/lib/browser/RecordMain-BCSXTSEB.mjs +99 -0
  7. package/dist/lib/browser/RecordMain-BCSXTSEB.mjs.map +7 -0
  8. package/dist/lib/browser/{app-graph-builder-W7RVDAUA.mjs → app-graph-builder-QJFO4ANM.mjs} +37 -34
  9. package/dist/lib/browser/app-graph-builder-QJFO4ANM.mjs.map +7 -0
  10. package/dist/lib/browser/{app-graph-serializer-VLHVTDX4.mjs → app-graph-serializer-3R5NVV7U.mjs} +5 -5
  11. package/dist/lib/browser/{chunk-E2I747A7.mjs → chunk-2NS3VPSY.mjs} +2 -2
  12. package/dist/lib/browser/chunk-2NS3VPSY.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-ZIZ2JLW6.mjs → chunk-4V4JNJ33.mjs} +12 -4
  14. package/dist/lib/browser/chunk-4V4JNJ33.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-2BFVC5K6.mjs → chunk-ENBBJSNE.mjs} +230 -254
  16. package/dist/lib/browser/chunk-ENBBJSNE.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-HS2VD6DN.mjs +166 -0
  18. package/dist/lib/browser/chunk-HS2VD6DN.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-PN27K4I7.mjs → chunk-OWNBEI5J.mjs} +23 -14
  20. package/dist/lib/browser/chunk-OWNBEI5J.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-JCHSUOPF.mjs → chunk-SLDQWMQ2.mjs} +12 -7
  22. package/dist/lib/browser/chunk-SLDQWMQ2.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
  24. package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-EIXZABXD.mjs → chunk-WJXU4GKV.mjs} +2 -2
  26. package/dist/lib/browser/index.mjs +31 -31
  27. package/dist/lib/browser/index.mjs.map +3 -3
  28. package/dist/lib/browser/{intent-resolver-HA7DPAUE.mjs → intent-resolver-MBVOLXFQ.mjs} +30 -23
  29. package/dist/lib/browser/intent-resolver-MBVOLXFQ.mjs.map +7 -0
  30. package/dist/lib/browser/meta.json +1 -1
  31. package/dist/lib/browser/{react-root-YQUJU64P.mjs → react-root-NKEKCEYM.mjs} +7 -7
  32. package/dist/lib/browser/{react-surface-HTXYMRSW.mjs → react-surface-PYSN2MBY.mjs} +15 -46
  33. package/dist/lib/browser/react-surface-PYSN2MBY.mjs.map +7 -0
  34. package/dist/lib/browser/{schema-defs-R56ZDBZ7.mjs → schema-defs-DWYK7TYW.mjs} +3 -3
  35. package/dist/lib/browser/{settings-5XPQMSPO.mjs → settings-ZUCC3ZLB.mjs} +3 -3
  36. package/dist/lib/browser/{spaces-ready-YY77ANIF.mjs → spaces-ready-HTWWJHLR.mjs} +6 -6
  37. package/dist/lib/browser/spaces-ready-HTWWJHLR.mjs.map +7 -0
  38. package/dist/lib/browser/{state-Y4RVCG4A.mjs → state-ISVAKMO7.mjs} +3 -3
  39. package/dist/lib/browser/types/index.mjs +2 -2
  40. package/dist/lib/node-esm/{CollectionMain-EU57SRYK.mjs → CollectionMain-OUHGG6OC.mjs} +2 -2
  41. package/dist/lib/node-esm/ObjectDetailsPanel-4SDHQVQU.mjs +146 -0
  42. package/dist/lib/node-esm/ObjectDetailsPanel-4SDHQVQU.mjs.map +7 -0
  43. package/dist/lib/node-esm/ObjectSettings-EU6F43RP.mjs +147 -0
  44. package/dist/lib/node-esm/ObjectSettings-EU6F43RP.mjs.map +7 -0
  45. package/dist/lib/node-esm/RecordMain-SD76DGOR.mjs +100 -0
  46. package/dist/lib/node-esm/RecordMain-SD76DGOR.mjs.map +7 -0
  47. package/dist/lib/node-esm/{app-graph-builder-5ZJJUMQI.mjs → app-graph-builder-B23W62HY.mjs} +37 -34
  48. package/dist/lib/node-esm/app-graph-builder-B23W62HY.mjs.map +7 -0
  49. package/dist/lib/node-esm/{app-graph-serializer-EZJSGJUT.mjs → app-graph-serializer-3Z3EXEEF.mjs} +5 -5
  50. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
  51. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
  52. package/dist/lib/node-esm/{chunk-5XRYHWL7.mjs → chunk-G4PDWB7G.mjs} +12 -4
  53. package/dist/lib/node-esm/chunk-G4PDWB7G.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs → chunk-H4JILUJK.mjs} +2 -2
  55. package/dist/lib/node-esm/{chunk-BLPXWPLB.mjs → chunk-KKPCCA5O.mjs} +230 -254
  56. package/dist/lib/node-esm/chunk-KKPCCA5O.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-PM4ZIGKC.mjs +167 -0
  58. package/dist/lib/node-esm/chunk-PM4ZIGKC.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-XDQXUZMK.mjs → chunk-XEVIWD3O.mjs} +23 -14
  60. package/dist/lib/node-esm/chunk-XEVIWD3O.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-6WNZW6KT.mjs → chunk-YFQXFQGT.mjs} +12 -7
  62. package/dist/lib/node-esm/chunk-YFQXFQGT.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-IJVBBVCL.mjs → chunk-ZLMFLI7G.mjs} +2 -2
  64. package/dist/lib/node-esm/chunk-ZLMFLI7G.mjs.map +7 -0
  65. package/dist/lib/node-esm/index.mjs +31 -31
  66. package/dist/lib/node-esm/index.mjs.map +3 -3
  67. package/dist/lib/node-esm/{intent-resolver-LQNHMPIX.mjs → intent-resolver-IWI47NTW.mjs} +30 -23
  68. package/dist/lib/node-esm/intent-resolver-IWI47NTW.mjs.map +7 -0
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/{react-root-UTLJEIKE.mjs → react-root-LX7SIG6M.mjs} +7 -7
  71. package/dist/lib/node-esm/{react-surface-LYDYON3U.mjs → react-surface-6SVGOZNJ.mjs} +15 -46
  72. package/dist/lib/node-esm/react-surface-6SVGOZNJ.mjs.map +7 -0
  73. package/dist/lib/node-esm/{schema-defs-7IMJPIWS.mjs → schema-defs-EOG2UPJU.mjs} +3 -3
  74. package/dist/lib/node-esm/{settings-XBSK5KHH.mjs → settings-ZDJNLFGW.mjs} +3 -3
  75. package/dist/lib/node-esm/{spaces-ready-YX4IHT4P.mjs → spaces-ready-VUGYPF4L.mjs} +6 -6
  76. package/dist/lib/node-esm/spaces-ready-VUGYPF4L.mjs.map +7 -0
  77. package/dist/lib/node-esm/{state-HOHAVPUO.mjs → state-QZ4Q6ZRL.mjs} +3 -3
  78. package/dist/lib/node-esm/types/index.mjs +2 -2
  79. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/capabilities.d.ts +2 -1
  82. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  85. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  86. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +80 -0
  87. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  88. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +1 -1
  89. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  90. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  91. package/dist/types/src/components/MembersContainer.stories.d.ts +80 -0
  92. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  93. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  94. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  95. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  96. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  97. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  98. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  99. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  100. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  101. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1500 -0
  102. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  103. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  104. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  105. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  106. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  107. package/dist/types/src/components/RecordMain.d.ts +4 -3
  108. package/dist/types/src/components/RecordMain.d.ts.map +1 -1
  109. package/dist/types/src/components/RecordMain.stories.d.ts +1667 -0
  110. package/dist/types/src/components/RecordMain.stories.d.ts.map +1 -0
  111. package/dist/types/src/components/SpacePresence.stories.d.ts +80 -0
  112. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  114. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +80 -0
  115. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  117. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +81 -1
  118. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  119. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  120. package/dist/types/src/components/index.d.ts +4 -6
  121. package/dist/types/src/components/index.d.ts.map +1 -1
  122. package/dist/types/src/hooks/index.d.ts +1 -0
  123. package/dist/types/src/hooks/index.d.ts.map +1 -1
  124. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  125. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  126. package/dist/types/src/hooks/usePath.d.ts +1 -1
  127. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  128. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  129. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  130. package/dist/types/src/meta.d.ts.map +1 -1
  131. package/dist/types/src/translations.d.ts +80 -0
  132. package/dist/types/src/translations.d.ts.map +1 -1
  133. package/dist/types/src/types/types.d.ts +6 -4
  134. package/dist/types/src/types/types.d.ts.map +1 -1
  135. package/dist/types/src/util.d.ts +4 -1
  136. package/dist/types/src/util.d.ts.map +1 -1
  137. package/dist/types/tsconfig.tsbuildinfo +1 -1
  138. package/package.json +50 -48
  139. package/src/SpacePlugin.ts +7 -13
  140. package/src/capabilities/app-graph-builder.ts +29 -24
  141. package/src/capabilities/capabilities.ts +7 -2
  142. package/src/capabilities/intent-resolver.ts +13 -8
  143. package/src/capabilities/react-surface.tsx +6 -77
  144. package/src/capabilities/spaces-ready.ts +1 -1
  145. package/src/components/CreateDialog/CreateObjectDialog.tsx +5 -4
  146. package/src/components/CreateDialog/CreateObjectPanel.tsx +2 -2
  147. package/src/components/CreateDialog/CreateSpaceDialog.tsx +2 -1
  148. package/src/components/MembersContainer.tsx +1 -1
  149. package/src/components/{ObjectDetailsPanel.tsx → ObjectDetailsPanel/ObjectDetailsPanel.tsx} +8 -35
  150. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +75 -0
  151. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  152. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +1 -1
  153. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  154. package/src/components/ObjectSettings/BaseObjectSettings.tsx +86 -26
  155. package/src/components/ObjectSettings/ForeignKeys.tsx +1 -1
  156. package/src/components/ObjectSettings/index.ts +3 -1
  157. package/src/components/RecordMain.stories.tsx +116 -0
  158. package/src/components/RecordMain.tsx +69 -29
  159. package/src/components/SchemaContainer.tsx +1 -1
  160. package/src/components/SpacePresence.tsx +1 -1
  161. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +4 -3
  162. package/src/components/SyncStatus/InlineSyncStatus.tsx +5 -5
  163. package/src/components/SyncStatus/SyncStatus.stories.tsx +3 -2
  164. package/src/components/SyncStatus/SyncStatus.tsx +93 -3
  165. package/src/components/ViewEditor.tsx +6 -7
  166. package/src/components/index.ts +1 -1
  167. package/src/hooks/index.ts +1 -0
  168. package/src/hooks/useInputSurfaceLookup.tsx +1 -1
  169. package/src/hooks/usePath.ts +1 -1
  170. package/src/hooks/useTypeOptions.ts +59 -0
  171. package/src/meta.ts +5 -0
  172. package/src/translations.ts +10 -1
  173. package/src/types/types.ts +9 -5
  174. package/src/util.tsx +22 -8
  175. package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs +0 -90
  176. package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs.map +0 -7
  177. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +0 -68
  178. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +0 -7
  179. package/dist/lib/browser/app-graph-builder-W7RVDAUA.mjs.map +0 -7
  180. package/dist/lib/browser/chunk-2BFVC5K6.mjs.map +0 -7
  181. package/dist/lib/browser/chunk-E2I747A7.mjs.map +0 -7
  182. package/dist/lib/browser/chunk-ELJDGQTO.mjs +0 -94
  183. package/dist/lib/browser/chunk-ELJDGQTO.mjs.map +0 -7
  184. package/dist/lib/browser/chunk-IRKDREHY.mjs +0 -11
  185. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-JCHSUOPF.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-PN27K4I7.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-ZIZ2JLW6.mjs.map +0 -7
  189. package/dist/lib/browser/intent-resolver-HA7DPAUE.mjs.map +0 -7
  190. package/dist/lib/browser/react-surface-HTXYMRSW.mjs.map +0 -7
  191. package/dist/lib/browser/spaces-ready-YY77ANIF.mjs.map +0 -7
  192. package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs +0 -91
  193. package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs.map +0 -7
  194. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +0 -70
  195. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +0 -7
  196. package/dist/lib/node-esm/app-graph-builder-5ZJJUMQI.mjs.map +0 -7
  197. package/dist/lib/node-esm/chunk-5XRYHWL7.mjs.map +0 -7
  198. package/dist/lib/node-esm/chunk-6WNZW6KT.mjs.map +0 -7
  199. package/dist/lib/node-esm/chunk-BLPXWPLB.mjs.map +0 -7
  200. package/dist/lib/node-esm/chunk-IJVBBVCL.mjs.map +0 -7
  201. package/dist/lib/node-esm/chunk-MWNATOXL.mjs +0 -13
  202. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs +0 -96
  204. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs.map +0 -7
  205. package/dist/lib/node-esm/chunk-XDQXUZMK.mjs.map +0 -7
  206. package/dist/lib/node-esm/intent-resolver-LQNHMPIX.mjs.map +0 -7
  207. package/dist/lib/node-esm/react-surface-LYDYON3U.mjs.map +0 -7
  208. package/dist/lib/node-esm/spaces-ready-YX4IHT4P.mjs.map +0 -7
  209. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  210. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  211. /package/dist/lib/browser/{CollectionMain-AX7KKXWP.mjs.map → CollectionMain-HTKSZCRR.mjs.map} +0 -0
  212. /package/dist/lib/browser/{app-graph-serializer-VLHVTDX4.mjs.map → app-graph-serializer-3R5NVV7U.mjs.map} +0 -0
  213. /package/dist/lib/browser/{chunk-EIXZABXD.mjs.map → chunk-WJXU4GKV.mjs.map} +0 -0
  214. /package/dist/lib/browser/{react-root-YQUJU64P.mjs.map → react-root-NKEKCEYM.mjs.map} +0 -0
  215. /package/dist/lib/browser/{schema-defs-R56ZDBZ7.mjs.map → schema-defs-DWYK7TYW.mjs.map} +0 -0
  216. /package/dist/lib/browser/{settings-5XPQMSPO.mjs.map → settings-ZUCC3ZLB.mjs.map} +0 -0
  217. /package/dist/lib/browser/{state-Y4RVCG4A.mjs.map → state-ISVAKMO7.mjs.map} +0 -0
  218. /package/dist/lib/node-esm/{CollectionMain-EU57SRYK.mjs.map → CollectionMain-OUHGG6OC.mjs.map} +0 -0
  219. /package/dist/lib/node-esm/{app-graph-serializer-EZJSGJUT.mjs.map → app-graph-serializer-3Z3EXEEF.mjs.map} +0 -0
  220. /package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs.map → chunk-H4JILUJK.mjs.map} +0 -0
  221. /package/dist/lib/node-esm/{react-root-UTLJEIKE.mjs.map → react-root-LX7SIG6M.mjs.map} +0 -0
  222. /package/dist/lib/node-esm/{schema-defs-7IMJPIWS.mjs.map → schema-defs-EOG2UPJU.mjs.map} +0 -0
  223. /package/dist/lib/node-esm/{settings-XBSK5KHH.mjs.map → settings-ZDJNLFGW.mjs.map} +0 -0
  224. /package/dist/lib/node-esm/{state-HOHAVPUO.mjs.map → state-QZ4Q6ZRL.mjs.map} +0 -0
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  useInputSurfaceLookup,
3
3
  usePath
4
- } from "./chunk-ELJDGQTO.mjs";
4
+ } from "./chunk-HS2VD6DN.mjs";
5
5
  import {
6
6
  SpaceCapabilities
7
- } from "./chunk-E2I747A7.mjs";
7
+ } from "./chunk-2NS3VPSY.mjs";
8
8
  import {
9
9
  COMPOSER_SPACE_LOCK,
10
10
  getSpaceDisplayName
11
- } from "./chunk-PN27K4I7.mjs";
11
+ } from "./chunk-OWNBEI5J.mjs";
12
12
  import {
13
13
  SpaceAction,
14
14
  SpaceForm
15
- } from "./chunk-JCHSUOPF.mjs";
15
+ } from "./chunk-SLDQWMQ2.mjs";
16
16
  import {
17
17
  meta
18
- } from "./chunk-IRKDREHY.mjs";
18
+ } from "./chunk-VZBIIYFM.mjs";
19
19
 
20
20
  // src/components/AwaitingObject.tsx
21
21
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
@@ -120,7 +120,8 @@ var AwaitingObject = ({ id }) => {
120
120
 
121
121
  // src/components/CreateDialog/CreateObjectDialog.tsx
122
122
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
123
- import { Effect, pipe } from "effect";
123
+ import * as Effect from "effect/Effect";
124
+ import * as Function from "effect/Function";
124
125
  import React3, { useCallback as useCallback3, useRef, useState as useState2 } from "react";
125
126
  import { Capabilities, LayoutAction as LayoutAction2, chain, createIntent as createIntent2, useCapabilities, useIntentDispatcher as useIntentDispatcher2, usePluginManager } from "@dxos/app-framework";
126
127
  import { Obj, Query, Type as Type2 } from "@dxos/echo";
@@ -129,28 +130,15 @@ import { useClient as useClient2 } from "@dxos/react-client";
129
130
  import { getSpace, isLiveObject, isSpace, useQuery as useQuery2, useSpaces } from "@dxos/react-client/echo";
130
131
  import { Button as Button2, Dialog, Icon as Icon3, useTranslation as useTranslation3 } from "@dxos/react-ui";
131
132
  import { cardDialogContent, cardDialogHeader } from "@dxos/react-ui-stack";
132
- import { DataType, typenameFromQuery } from "@dxos/schema";
133
+ import { DataType, getTypenameFromQuery } from "@dxos/schema";
133
134
  import { isNonNullable as isNonNullable2 } from "@dxos/util";
134
135
 
135
- // src/capabilities/index.ts
136
- import { lazy } from "@dxos/app-framework";
137
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-W7RVDAUA.mjs"));
138
- var AppGraphSerializer = lazy(() => import("./app-graph-serializer-VLHVTDX4.mjs"));
139
- var IdentityCreated = lazy(() => import("./identity-created-PW2BA46S.mjs"));
140
- var IntentResolver = lazy(() => import("./intent-resolver-HA7DPAUE.mjs"));
141
- var ReactRoot = lazy(() => import("./react-root-YQUJU64P.mjs"));
142
- var ReactSurface = lazy(() => import("./react-surface-HTXYMRSW.mjs"));
143
- var SchemaDefs = lazy(() => import("./schema-defs-R56ZDBZ7.mjs"));
144
- var SpaceSettings = lazy(() => import("./settings-5XPQMSPO.mjs"));
145
- var SpaceState = lazy(() => import("./state-Y4RVCG4A.mjs"));
146
- var SpacesReady = lazy(() => import("./spaces-ready-YY77ANIF.mjs"));
147
-
148
136
  // src/components/CreateDialog/CreateObjectPanel.tsx
149
137
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
150
- import { Option } from "effect";
138
+ import * as Option from "effect/Option";
151
139
  import React2, { useCallback as useCallback2 } from "react";
152
140
  import { Type } from "@dxos/echo";
153
- import { ViewAnnotation, getTypeAnnotation } from "@dxos/echo-schema";
141
+ import { ViewAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
154
142
  import { Icon as Icon2, toLocalizedString, useDefaultValue, useTranslation as useTranslation2 } from "@dxos/react-ui";
155
143
  import { Form } from "@dxos/react-ui-form";
156
144
  import { SearchList } from "@dxos/react-ui-searchlist";
@@ -323,7 +311,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
323
311
  const [typename, setTypename] = useState2(initialTypename);
324
312
  const space = isSpace(target) ? target : getSpace(target);
325
313
  const queryCollections = useQuery2(space, Query.type(DataType.QueryCollection));
326
- const hiddenTypenames = queryCollections.map((collection) => typenameFromQuery(collection.query)).filter(isNonNullable2);
314
+ const hiddenTypenames = queryCollections.map((collection) => getTypenameFromQuery(collection.query)).filter(isNonNullable2);
327
315
  const resolve = useCallback3((typename2) => manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
328
316
  manager
329
317
  ]);
@@ -335,7 +323,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
335
323
  const space2 = isSpace(target) ? target : getSpace(target);
336
324
  invariant(space2, "Missing space", {
337
325
  F: __dxlog_file,
338
- L: 83,
326
+ L: 84,
339
327
  S: this,
340
328
  A: [
341
329
  "space",
@@ -354,7 +342,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
354
342
  });
355
343
  const shouldNavigate = _shouldNavigate ?? (() => true);
356
344
  if (shouldNavigate(object)) {
357
- yield* dispatch(pipe(addObjectIntent, chain(LayoutAction2.Open, {
345
+ yield* dispatch(Function.pipe(addObjectIntent, chain(LayoutAction2.Open, {
358
346
  part: "main"
359
347
  })));
360
348
  } else {
@@ -413,7 +401,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
413
401
 
414
402
  // src/components/CreateDialog/CreateSpaceDialog.tsx
415
403
  import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
416
- import { Effect as Effect2 } from "effect";
404
+ import * as Effect2 from "effect/Effect";
417
405
  import React4, { useCallback as useCallback4, useRef as useRef2 } from "react";
418
406
  import { LayoutAction as LayoutAction3, createIntent as createIntent3, useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework";
419
407
  import { Button as Button3, Dialog as Dialog2, Icon as Icon4, useTranslation as useTranslation4 } from "@dxos/react-ui";
@@ -731,7 +719,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
731
719
  setSelectedInvitation(null);
732
720
  };
733
721
  return /* @__PURE__ */ React7.createElement(Clipboard.Provider, null, /* @__PURE__ */ React7.createElement(StackItem.Content, {
734
- classNames: "block overflow-y-auto"
722
+ scrollable: true
735
723
  }, /* @__PURE__ */ React7.createElement(ControlPage, null, /* @__PURE__ */ React7.createElement(ControlSection, {
736
724
  title: t("members verbose label"),
737
725
  description: t("members description")
@@ -914,79 +902,16 @@ var MenuFooter = ({ object }) => {
914
902
  }
915
903
  };
916
904
 
917
- // src/components/ObjectSettings/ObjectSettingsContainer.tsx
918
- import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
919
- import React10, { useMemo as useMemo2 } from "react";
920
- import { Surface } from "@dxos/app-framework";
921
- import { Clipboard as Clipboard2, Toolbar } from "@dxos/react-ui";
922
- import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
923
-
924
- // src/components/ObjectSettings/BaseObjectSettings.tsx
925
- import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
926
- import React9, { useRef as useRef3 } from "react";
927
- import { Input as Input2, useTranslation as useTranslation9 } from "@dxos/react-ui";
928
- var BaseObjectSettings = ({ classNames, children, object }) => {
929
- var _effect = _useSignals9();
930
- try {
931
- const { t } = useTranslation9(meta.id);
932
- const inputRef = useRef3(null);
933
- 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, {
934
- ref: inputRef,
935
- placeholder: t("name placeholder"),
936
- // TODO(burdon): Use annotation to get the name field.
937
- value: object.name ?? "",
938
- onChange: (event) => {
939
- object.name = event.target.value;
940
- },
941
- onKeyDown: (event) => {
942
- if (event.key === "Enter") {
943
- inputRef.current?.blur();
944
- }
945
- }
946
- })), children);
947
- } finally {
948
- _effect.f();
949
- }
950
- };
951
-
952
- // src/components/ObjectSettings/ObjectSettingsContainer.tsx
953
- var ObjectSettingsContainer = ({ object, role }) => {
954
- var _effect = _useSignals10();
955
- try {
956
- const data = useMemo2(() => ({
957
- subject: object
958
- }), [
959
- object
960
- ]);
961
- return /* @__PURE__ */ React10.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React10.createElement(StackItem2.Content, {
962
- toolbar: true
963
- }, /* @__PURE__ */ React10.createElement(Toolbar.Root, null), /* @__PURE__ */ React10.createElement("div", {
964
- role: "none",
965
- className: "overflow-y-auto pli-cardSpacingInline plb-cardSpacingBlock"
966
- }, /* @__PURE__ */ React10.createElement(BaseObjectSettings, {
967
- object
968
- }, /* @__PURE__ */ React10.createElement(Surface, {
969
- role: "base-object-settings",
970
- data
971
- })), /* @__PURE__ */ React10.createElement(Surface, {
972
- role: "object-settings",
973
- data
974
- }))));
975
- } finally {
976
- _effect.f();
977
- }
978
- };
979
-
980
905
  // src/components/PersistenceStatus.tsx
981
- import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
982
- import React11, { useEffect as useEffect2, useState as useState4 } from "react";
906
+ import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
907
+ import React9, { useEffect as useEffect2, useState as useState4 } from "react";
983
908
  import { debounce } from "@dxos/async";
984
- import { Icon as Icon7, Tooltip, useTranslation as useTranslation10 } from "@dxos/react-ui";
909
+ import { Icon as Icon7, Tooltip, useTranslation as useTranslation9 } from "@dxos/react-ui";
985
910
  import { mx, staticPlaceholderText, warningText } from "@dxos/react-ui-theme";
986
911
  var PersistenceStatus = ({ db }) => {
987
- var _effect = _useSignals11();
912
+ var _effect = _useSignals9();
988
913
  try {
989
- const { t } = useTranslation10(meta.id);
914
+ const { t } = useTranslation9(meta.id);
990
915
  const [displayMessage, setDisplayMessage] = useState4(false);
991
916
  const [status, naturalSetStatus] = useState4(0);
992
917
  const [prevStatus, setPrevStatus] = useState4(0);
@@ -1003,37 +928,37 @@ var PersistenceStatus = ({ db }) => {
1003
928
  ]);
1004
929
  switch (status) {
1005
930
  case 2:
1006
- return /* @__PURE__ */ React11.createElement("div", {
931
+ return /* @__PURE__ */ React9.createElement("div", {
1007
932
  className: "flex items-center"
1008
- }, /* @__PURE__ */ React11.createElement(Icon7, {
933
+ }, /* @__PURE__ */ React9.createElement(Icon7, {
1009
934
  icon: "ph--warning--regular",
1010
935
  size: 4,
1011
936
  classNames: "me-1"
1012
- }), /* @__PURE__ */ React11.createElement("span", {
937
+ }), /* @__PURE__ */ React9.createElement("span", {
1013
938
  className: mx("text-sm", warningText)
1014
939
  }, t("persistence error label")));
1015
940
  case 1:
1016
- return /* @__PURE__ */ React11.createElement("div", {
941
+ return /* @__PURE__ */ React9.createElement("div", {
1017
942
  className: "flex items-center"
1018
- }, /* @__PURE__ */ React11.createElement(Icon7, {
943
+ }, /* @__PURE__ */ React9.createElement(Icon7, {
1019
944
  icon: "ph--arrows-counter-clockwise--regular",
1020
945
  size: 4,
1021
946
  classNames: "me-1"
1022
- }), /* @__PURE__ */ React11.createElement("span", {
947
+ }), /* @__PURE__ */ React9.createElement("span", {
1023
948
  className: mx("text-sm", staticPlaceholderText)
1024
949
  }, t("persistence pending label")));
1025
950
  case 0:
1026
951
  default:
1027
- return /* @__PURE__ */ React11.createElement(Tooltip.Trigger, {
952
+ return /* @__PURE__ */ React9.createElement(Tooltip.Trigger, {
1028
953
  delayDuration: 400,
1029
954
  role: "status",
1030
955
  content: t("persisted locally message"),
1031
956
  className: "flex items-center"
1032
- }, /* @__PURE__ */ React11.createElement(Icon7, {
957
+ }, /* @__PURE__ */ React9.createElement(Icon7, {
1033
958
  icon: "ph--check-circle--regular",
1034
959
  size: 4,
1035
960
  classNames: "me-1"
1036
- }), displayMessage && /* @__PURE__ */ React11.createElement("span", {
961
+ }), displayMessage && /* @__PURE__ */ React9.createElement("span", {
1037
962
  className: mx("text-sm", staticPlaceholderText)
1038
963
  }, t("persisted locally label")));
1039
964
  }
@@ -1043,19 +968,19 @@ var PersistenceStatus = ({ db }) => {
1043
968
  };
1044
969
 
1045
970
  // src/components/PopoverRenameObject.tsx
1046
- import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
1047
- import React12, { useCallback as useCallback7, useRef as useRef4, useState as useState5 } from "react";
971
+ import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
972
+ import React10, { useCallback as useCallback7, useRef as useRef3, useState as useState5 } from "react";
1048
973
  import { LayoutAction as LayoutAction5, createIntent as createIntent6, useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework";
1049
974
  import { Obj as Obj2 } from "@dxos/echo";
1050
975
  import { log as log2 } from "@dxos/log";
1051
- import { Button as Button5, Input as Input3, useTranslation as useTranslation11 } from "@dxos/react-ui";
976
+ import { Button as Button5, Input as Input2, useTranslation as useTranslation10 } from "@dxos/react-ui";
1052
977
  var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
1053
978
  var POPOVER_RENAME_OBJECT = `${meta.id}/PopoverRenameObject`;
1054
979
  var PopoverRenameObject = ({ object }) => {
1055
- var _effect = _useSignals12();
980
+ var _effect = _useSignals10();
1056
981
  try {
1057
- const { t } = useTranslation11(meta.id);
1058
- const doneButton = useRef4(null);
982
+ const { t } = useTranslation10(meta.id);
983
+ const doneButton = useRef3(null);
1059
984
  const [name, setName] = useState5(Obj2.getLabel(object));
1060
985
  const { dispatchPromise: dispatch } = useIntentDispatcher6();
1061
986
  const handleDone = useCallback7(() => {
@@ -1083,21 +1008,21 @@ var PopoverRenameObject = ({ object }) => {
1083
1008
  object,
1084
1009
  name
1085
1010
  ]);
1086
- return /* @__PURE__ */ React12.createElement("div", {
1011
+ return /* @__PURE__ */ React10.createElement("div", {
1087
1012
  role: "none",
1088
1013
  className: "p-2 flex gap-2"
1089
- }, /* @__PURE__ */ React12.createElement("div", {
1014
+ }, /* @__PURE__ */ React10.createElement("div", {
1090
1015
  role: "none",
1091
1016
  className: "flex-1"
1092
- }, /* @__PURE__ */ React12.createElement(Input3.Root, null, /* @__PURE__ */ React12.createElement(Input3.Label, {
1017
+ }, /* @__PURE__ */ React10.createElement(Input2.Root, null, /* @__PURE__ */ React10.createElement(Input2.Label, {
1093
1018
  srOnly: true
1094
- }, t("object name label")), /* @__PURE__ */ React12.createElement(Input3.TextInput, {
1019
+ }, t("object name label")), /* @__PURE__ */ React10.createElement(Input2.TextInput, {
1095
1020
  placeholder: t("object placeholder"),
1096
1021
  value: name,
1097
1022
  "data-testid": "spacePlugin.renameObject.input",
1098
1023
  onChange: ({ target: { value } }) => setName(value),
1099
1024
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1100
- }))), /* @__PURE__ */ React12.createElement(Button5, {
1025
+ }))), /* @__PURE__ */ React10.createElement(Button5, {
1101
1026
  ref: doneButton,
1102
1027
  classNames: "self-stretch",
1103
1028
  onClick: handleDone
@@ -1110,16 +1035,16 @@ var PopoverRenameObject = ({ object }) => {
1110
1035
  };
1111
1036
 
1112
1037
  // src/components/PopoverRenameSpace.tsx
1113
- import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
1114
- import React13, { useCallback as useCallback8, useRef as useRef5, useState as useState6 } from "react";
1038
+ import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
1039
+ import React11, { useCallback as useCallback8, useRef as useRef4, useState as useState6 } from "react";
1115
1040
  import { LayoutAction as LayoutAction6, createIntent as createIntent7, useIntentDispatcher as useIntentDispatcher7 } from "@dxos/app-framework";
1116
- import { Button as Button6, Input as Input4, Popover, useTranslation as useTranslation12 } from "@dxos/react-ui";
1041
+ import { Button as Button6, Input as Input3, Popover, useTranslation as useTranslation11 } from "@dxos/react-ui";
1117
1042
  var POPOVER_RENAME_SPACE = `${meta.id}/PopoverRenameSpace`;
1118
1043
  var PopoverRenameSpace = ({ space }) => {
1119
- var _effect = _useSignals13();
1044
+ var _effect = _useSignals11();
1120
1045
  try {
1121
- const { t } = useTranslation12(meta.id);
1122
- const doneButton = useRef5(null);
1046
+ const { t } = useTranslation11(meta.id);
1047
+ const doneButton = useRef4(null);
1123
1048
  const [name, setName] = useState6(space.properties.name ?? "");
1124
1049
  const { dispatchPromise: dispatch } = useIntentDispatcher7();
1125
1050
  const handleDone = useCallback8(() => {
@@ -1136,24 +1061,24 @@ var PopoverRenameSpace = ({ space }) => {
1136
1061
  space,
1137
1062
  name
1138
1063
  ]);
1139
- return /* @__PURE__ */ React13.createElement("div", {
1064
+ return /* @__PURE__ */ React11.createElement("div", {
1140
1065
  role: "none",
1141
1066
  className: "p-2 flex gap-2"
1142
- }, /* @__PURE__ */ React13.createElement("div", {
1067
+ }, /* @__PURE__ */ React11.createElement("div", {
1143
1068
  role: "none",
1144
1069
  className: "flex-1"
1145
- }, /* @__PURE__ */ React13.createElement(Input4.Root, null, /* @__PURE__ */ React13.createElement(Input4.Label, {
1070
+ }, /* @__PURE__ */ React11.createElement(Input3.Root, null, /* @__PURE__ */ React11.createElement(Input3.Label, {
1146
1071
  srOnly: true
1147
- }, t("space name label")), /* @__PURE__ */ React13.createElement(Input4.TextInput, {
1072
+ }, t("space name label")), /* @__PURE__ */ React11.createElement(Input3.TextInput, {
1148
1073
  defaultValue: space.properties.name ?? "",
1149
1074
  placeholder: t("unnamed space label"),
1150
1075
  onChange: ({ target: { value } }) => setName(value),
1151
1076
  // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
1152
1077
  // Currently this is not possible because Radix does not expose the popover context.
1153
1078
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1154
- }))), /* @__PURE__ */ React13.createElement(Popover.Close, {
1079
+ }))), /* @__PURE__ */ React11.createElement(Popover.Close, {
1155
1080
  asChild: true
1156
- }, /* @__PURE__ */ React13.createElement(Button6, {
1081
+ }, /* @__PURE__ */ React11.createElement(Button6, {
1157
1082
  ref: doneButton,
1158
1083
  classNames: "self-stretch",
1159
1084
  onClick: handleDone
@@ -1166,11 +1091,11 @@ var PopoverRenameSpace = ({ space }) => {
1166
1091
  };
1167
1092
 
1168
1093
  // src/components/SchemaContainer.tsx
1169
- import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
1170
- import React14, { useEffect as useEffect3, useState as useState7 } from "react";
1171
- import { useTranslation as useTranslation13 } from "@dxos/react-ui";
1094
+ import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
1095
+ import React12, { useEffect as useEffect3, useState as useState7 } from "react";
1096
+ import { useTranslation as useTranslation12 } from "@dxos/react-ui";
1172
1097
  import { ControlPage as ControlPage2, ControlSection as ControlSection2, controlItemClasses } from "@dxos/react-ui-form";
1173
- import { StackItem as StackItem3 } from "@dxos/react-ui-stack";
1098
+ import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
1174
1099
  var useQuerySpaceSchemas = (space) => {
1175
1100
  const [schemas, setSchemas] = useState7([]);
1176
1101
  useEffect3(() => {
@@ -1185,38 +1110,38 @@ var useQuerySpaceSchemas = (space) => {
1185
1110
  return schemas;
1186
1111
  };
1187
1112
  var SchemaContainer = ({ space }) => {
1188
- var _effect = _useSignals14();
1113
+ var _effect = _useSignals12();
1189
1114
  try {
1190
- const { t } = useTranslation13(meta.id);
1115
+ const { t } = useTranslation12(meta.id);
1191
1116
  const schemas = useQuerySpaceSchemas(space);
1192
- return /* @__PURE__ */ React14.createElement(StackItem3.Content, {
1193
- classNames: "block overflow-y-auto"
1194
- }, /* @__PURE__ */ React14.createElement(ControlPage2, null, /* @__PURE__ */ React14.createElement(ControlSection2, {
1117
+ return /* @__PURE__ */ React12.createElement(StackItem2.Content, {
1118
+ scrollable: true
1119
+ }, /* @__PURE__ */ React12.createElement(ControlPage2, null, /* @__PURE__ */ React12.createElement(ControlSection2, {
1195
1120
  title: t("schema verbose label"),
1196
1121
  description: t("schema description")
1197
- }, /* @__PURE__ */ React14.createElement("div", {
1122
+ }, /* @__PURE__ */ React12.createElement("div", {
1198
1123
  role: "none",
1199
1124
  className: controlItemClasses
1200
- }, schemas.length === 0 && /* @__PURE__ */ React14.createElement("div", {
1125
+ }, schemas.length === 0 && /* @__PURE__ */ React12.createElement("div", {
1201
1126
  className: "text-center plb-4"
1202
- }, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ React14.createElement("div", {
1127
+ }, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ React12.createElement("div", {
1203
1128
  key: schema.id
1204
- }, /* @__PURE__ */ React14.createElement("div", null, schema.typename)))))));
1129
+ }, /* @__PURE__ */ React12.createElement("div", null, schema.typename)))))));
1205
1130
  } finally {
1206
1131
  _effect.f();
1207
1132
  }
1208
1133
  };
1209
1134
 
1210
1135
  // src/components/SpacePresence.tsx
1211
- import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
1212
- import { Option as Option2 } from "effect";
1213
- import React15, { forwardRef, useCallback as useCallback9, useEffect as useEffect4, useState as useState8 } from "react";
1136
+ import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
1137
+ import * as Option2 from "effect/Option";
1138
+ import React13, { forwardRef, useCallback as useCallback9, useEffect as useEffect4, useState as useState8 } from "react";
1214
1139
  import { useAppGraph as useAppGraph2, useCapability } from "@dxos/app-framework";
1215
1140
  import { generateName } from "@dxos/display-name";
1216
1141
  import { PublicKey, useClient as useClient5 } from "@dxos/react-client";
1217
1142
  import { fullyQualifiedId as fullyQualifiedId3, getSpace as getSpace3, useMembers } from "@dxos/react-client/echo";
1218
1143
  import { useIdentity } from "@dxos/react-client/halo";
1219
- import { Avatar, List, ListItem, Popover as Popover2, Tooltip as Tooltip2, useDefaultValue as useDefaultValue2, useTranslation as useTranslation14 } from "@dxos/react-ui";
1144
+ import { Avatar, List, ListItem, Popover as Popover2, Tooltip as Tooltip2, useDefaultValue as useDefaultValue2, useTranslation as useTranslation13 } from "@dxos/react-ui";
1220
1145
  import { AttentionGlyph, useAttended, useAttention } from "@dxos/react-ui-attention";
1221
1146
  import { ComplexMap, keyToFallback } from "@dxos/util";
1222
1147
  var REFRESH_INTERVAL = 5e3;
@@ -1224,7 +1149,7 @@ var ACTIVITY_DURATION = 3e4;
1224
1149
  var noViewers = new ComplexMap(PublicKey.hash);
1225
1150
  var getName = (identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());
1226
1151
  var SpacePresence = ({ object, spaceKey }) => {
1227
- var _effect = _useSignals15();
1152
+ var _effect = _useSignals13();
1228
1153
  try {
1229
1154
  const spaceState = useCapability(SpaceCapabilities.MutableState);
1230
1155
  const client = useClient5();
@@ -1254,7 +1179,7 @@ var SpacePresence = ({ object, spaceKey }) => {
1254
1179
  lastSeen
1255
1180
  };
1256
1181
  }).toSorted((a, b) => a.lastSeen - b.lastSeen);
1257
- return /* @__PURE__ */ React15.createElement(FullPresence, {
1182
+ return /* @__PURE__ */ React13.createElement(FullPresence, {
1258
1183
  members: membersForObject
1259
1184
  });
1260
1185
  } finally {
@@ -1262,46 +1187,46 @@ var SpacePresence = ({ object, spaceKey }) => {
1262
1187
  }
1263
1188
  };
1264
1189
  var FullPresence = (props) => {
1265
- var _effect = _useSignals15();
1190
+ var _effect = _useSignals13();
1266
1191
  try {
1267
1192
  const { size = 9, onMemberClick } = props;
1268
1193
  const members = useDefaultValue2(props.members, () => []);
1269
1194
  if (members.length === 0) {
1270
1195
  return null;
1271
1196
  }
1272
- return /* @__PURE__ */ React15.createElement("div", {
1197
+ return /* @__PURE__ */ React13.createElement("div", {
1273
1198
  className: "dx-avatar-group",
1274
1199
  "data-testid": "spacePlugin.presence"
1275
- }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React15.createElement(Tooltip2.Trigger, {
1200
+ }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React13.createElement(Tooltip2.Trigger, {
1276
1201
  key: member.identity.identityKey.toHex(),
1277
1202
  side: "bottom",
1278
1203
  content: getName(member.identity),
1279
1204
  className: "grid focus:outline-none"
1280
- }, /* @__PURE__ */ React15.createElement(PresenceAvatar, {
1205
+ }, /* @__PURE__ */ React13.createElement(PresenceAvatar, {
1281
1206
  identity: member.identity,
1282
1207
  match: member.currentlyAttended,
1283
1208
  index: members.length - i,
1284
1209
  onClick: () => onMemberClick?.(member),
1285
1210
  size
1286
- }))), members.length > 3 && /* @__PURE__ */ React15.createElement(Popover2.Root, null, /* @__PURE__ */ React15.createElement(Popover2.Trigger, {
1211
+ }))), members.length > 3 && /* @__PURE__ */ React13.createElement(Popover2.Root, null, /* @__PURE__ */ React13.createElement(Popover2.Trigger, {
1287
1212
  className: "grid focus:outline-none"
1288
- }, /* @__PURE__ */ React15.createElement(Avatar.Root, null, /* @__PURE__ */ React15.createElement(Avatar.Content, {
1213
+ }, /* @__PURE__ */ React13.createElement(Avatar.Root, null, /* @__PURE__ */ React13.createElement(Avatar.Content, {
1289
1214
  status: "inactive",
1290
1215
  style: {
1291
1216
  zIndex: members.length - 4
1292
1217
  },
1293
1218
  fallback: `+${members.length - 3}`,
1294
1219
  size
1295
- }))), /* @__PURE__ */ React15.createElement(Popover2.Portal, null, /* @__PURE__ */ React15.createElement(Popover2.Content, {
1220
+ }))), /* @__PURE__ */ React13.createElement(Popover2.Portal, null, /* @__PURE__ */ React13.createElement(Popover2.Content, {
1296
1221
  side: "bottom"
1297
- }, /* @__PURE__ */ React15.createElement(Popover2.Arrow, null), /* @__PURE__ */ React15.createElement(Popover2.Viewport, {
1222
+ }, /* @__PURE__ */ React13.createElement(Popover2.Arrow, null), /* @__PURE__ */ React13.createElement(Popover2.Viewport, {
1298
1223
  classNames: "max-bs-56"
1299
- }, /* @__PURE__ */ React15.createElement(List, null, members.map((member) => /* @__PURE__ */ React15.createElement(ListItem.Root, {
1224
+ }, /* @__PURE__ */ React13.createElement(List, null, members.map((member) => /* @__PURE__ */ React13.createElement(ListItem.Root, {
1300
1225
  key: member.identity.identityKey.toHex(),
1301
1226
  classNames: "flex gap-2 items-center cursor-pointer mbe-2",
1302
1227
  onClick: () => onMemberClick?.(member),
1303
1228
  "data-testid": "identity-list-item"
1304
- }, /* @__PURE__ */ React15.createElement(PresenceAvatar, {
1229
+ }, /* @__PURE__ */ React13.createElement(PresenceAvatar, {
1305
1230
  identity: member.identity,
1306
1231
  size,
1307
1232
  showName: true,
@@ -1312,11 +1237,11 @@ var FullPresence = (props) => {
1312
1237
  }
1313
1238
  };
1314
1239
  var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, index, onClick, size }, forwardedRef) => {
1315
- var _effect = _useSignals15();
1240
+ var _effect = _useSignals13();
1316
1241
  try {
1317
1242
  const status = match ? "current" : "active";
1318
1243
  const fallbackValue = keyToFallback(identity.identityKey);
1319
- return /* @__PURE__ */ React15.createElement(Avatar.Root, null, /* @__PURE__ */ React15.createElement(Avatar.Content, {
1244
+ return /* @__PURE__ */ React13.createElement(Avatar.Root, null, /* @__PURE__ */ React13.createElement(Avatar.Content, {
1320
1245
  status,
1321
1246
  hue: identity.profile?.data?.hue || fallbackValue.hue,
1322
1247
  "data-testid": "spacePlugin.presence.member",
@@ -1330,7 +1255,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
1330
1255
  onClick,
1331
1256
  fallback: identity.profile?.data?.emoji || fallbackValue.emoji,
1332
1257
  ref: forwardedRef
1333
- }), /* @__PURE__ */ React15.createElement(Avatar.Label, {
1258
+ }), /* @__PURE__ */ React13.createElement(Avatar.Label, {
1334
1259
  classNames: showName ? "text-sm truncate pli-2" : "sr-only"
1335
1260
  }, getName(identity)));
1336
1261
  } finally {
@@ -1338,7 +1263,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
1338
1263
  }
1339
1264
  });
1340
1265
  var SmallPresenceLive = ({ id, open, viewers }) => {
1341
- var _effect = _useSignals15();
1266
+ var _effect = _useSignals13();
1342
1267
  try {
1343
1268
  const { hasAttention, isAncestor, isRelated } = useAttention(id);
1344
1269
  const isAttended = hasAttention || isAncestor || isRelated;
@@ -1363,7 +1288,7 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1363
1288
  }, [
1364
1289
  viewers
1365
1290
  ]);
1366
- return /* @__PURE__ */ React15.createElement(SmallPresence, {
1291
+ return /* @__PURE__ */ React13.createElement(SmallPresence, {
1367
1292
  count: activeViewers.length,
1368
1293
  attended: isAttended,
1369
1294
  containsAttended
@@ -1373,16 +1298,16 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1373
1298
  }
1374
1299
  };
1375
1300
  var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1376
- var _effect = _useSignals15();
1301
+ var _effect = _useSignals13();
1377
1302
  try {
1378
- const { t } = useTranslation14(meta.id);
1379
- return /* @__PURE__ */ React15.createElement(Tooltip2.Trigger, {
1303
+ const { t } = useTranslation13(meta.id);
1304
+ return /* @__PURE__ */ React13.createElement(Tooltip2.Trigger, {
1380
1305
  asChild: true,
1381
1306
  content: t("presence label", {
1382
1307
  count
1383
1308
  }),
1384
1309
  side: "bottom"
1385
- }, /* @__PURE__ */ React15.createElement(AttentionGlyph, {
1310
+ }, /* @__PURE__ */ React13.createElement(AttentionGlyph, {
1386
1311
  attended,
1387
1312
  containsAttended,
1388
1313
  presence: count > 1 ? "many" : count === 1 ? "one" : "none",
@@ -1394,43 +1319,43 @@ var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1394
1319
  };
1395
1320
 
1396
1321
  // src/components/SpacePluginSettings.tsx
1397
- import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
1398
- import React16 from "react";
1322
+ import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
1323
+ import React14 from "react";
1399
1324
  import { createIntent as createIntent8, useIntentDispatcher as useIntentDispatcher8 } from "@dxos/app-framework";
1400
1325
  import { useClient as useClient6 } from "@dxos/react-client";
1401
1326
  import { useSpaces as useSpaces2 } from "@dxos/react-client/echo";
1402
- import { IconButton, Input as Input5, List as List2, ListItem as ListItem2, toLocalizedString as toLocalizedString3, useTranslation as useTranslation15 } from "@dxos/react-ui";
1327
+ import { IconButton, Input as Input4, List as List2, ListItem as ListItem2, toLocalizedString as toLocalizedString3, useTranslation as useTranslation14 } from "@dxos/react-ui";
1403
1328
  import { ControlGroup, ControlItemInput as ControlItemInput2, ControlPage as ControlPage3, ControlSection as ControlSection3, controlItemClasses as controlItemClasses2 } from "@dxos/react-ui-form";
1404
1329
  var SpacePluginSettings = ({ settings }) => {
1405
- var _effect = _useSignals16();
1330
+ var _effect = _useSignals14();
1406
1331
  try {
1407
- const { t } = useTranslation15(meta.id);
1332
+ const { t } = useTranslation14(meta.id);
1408
1333
  const client = useClient6();
1409
1334
  const spaces = useSpaces2({
1410
1335
  all: settings.showHidden
1411
1336
  });
1412
1337
  const { dispatchPromise: dispatch } = useIntentDispatcher8();
1413
- return /* @__PURE__ */ React16.createElement(ControlPage3, null, /* @__PURE__ */ React16.createElement(ControlSection3, {
1338
+ return /* @__PURE__ */ React14.createElement(ControlPage3, null, /* @__PURE__ */ React14.createElement(ControlSection3, {
1414
1339
  title: t("space settings label"),
1415
1340
  description: t("space settings description")
1416
- }, /* @__PURE__ */ React16.createElement(ControlGroup, null, /* @__PURE__ */ React16.createElement(ControlItemInput2, {
1341
+ }, /* @__PURE__ */ React14.createElement(ControlGroup, null, /* @__PURE__ */ React14.createElement(ControlItemInput2, {
1417
1342
  title: t("show hidden spaces label")
1418
- }, /* @__PURE__ */ React16.createElement(Input5.Switch, {
1343
+ }, /* @__PURE__ */ React14.createElement(Input4.Switch, {
1419
1344
  checked: settings.showHidden,
1420
1345
  onCheckedChange: (checked) => settings.showHidden = !!checked
1421
- }))), /* @__PURE__ */ React16.createElement(List2, {
1346
+ }))), /* @__PURE__ */ React14.createElement(List2, {
1422
1347
  classNames: [
1423
1348
  controlItemClasses2,
1424
1349
  "flex flex-col gap-trimSm"
1425
1350
  ]
1426
- }, spaces.map((space) => /* @__PURE__ */ React16.createElement(ListItem2.Root, {
1351
+ }, spaces.map((space) => /* @__PURE__ */ React14.createElement(ListItem2.Root, {
1427
1352
  key: space.id,
1428
1353
  classNames: "is-full items-center"
1429
- }, /* @__PURE__ */ React16.createElement(ListItem2.Heading, {
1354
+ }, /* @__PURE__ */ React14.createElement(ListItem2.Heading, {
1430
1355
  classNames: "grow truncate !min-bs-0"
1431
1356
  }, toLocalizedString3(getSpaceDisplayName(space, {
1432
1357
  personal: space === client.spaces.default
1433
- }), t)), /* @__PURE__ */ React16.createElement(IconButton, {
1358
+ }), t)), /* @__PURE__ */ React14.createElement(IconButton, {
1434
1359
  icon: "ph--faders--regular",
1435
1360
  onClick: () => dispatch(createIntent8(SpaceAction.OpenSettings, {
1436
1361
  space
@@ -1443,18 +1368,19 @@ var SpacePluginSettings = ({ settings }) => {
1443
1368
  };
1444
1369
 
1445
1370
  // src/components/SpaceSettings/SpaceSettingsContainer.tsx
1446
- import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
1447
- import { Schema, pipe as pipe2 } from "effect";
1448
- import React17, { useCallback as useCallback10, useMemo as useMemo3, useState as useState9 } from "react";
1371
+ import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
1372
+ import * as Function2 from "effect/Function";
1373
+ import * as Schema from "effect/Schema";
1374
+ import React15, { useCallback as useCallback10, useMemo as useMemo2, useState as useState9 } from "react";
1449
1375
  import { LayoutAction as LayoutAction7, chain as chain2, createIntent as createIntent9, useIntentDispatcher as useIntentDispatcher9 } from "@dxos/app-framework";
1450
1376
  import { log as log3 } from "@dxos/log";
1451
1377
  import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
1452
1378
  import { useClient as useClient7 } from "@dxos/react-client";
1453
- import { SpaceState as SpaceState2 } from "@dxos/react-client/echo";
1454
- import { Button as Button7, Input as Input6, useMulticastObservable, useTranslation as useTranslation16 } from "@dxos/react-ui";
1379
+ import { SpaceState } from "@dxos/react-client/echo";
1380
+ import { Button as Button7, Input as Input5, useMulticastObservable, useTranslation as useTranslation15 } from "@dxos/react-ui";
1455
1381
  import { ControlItem, ControlItemInput as ControlItemInput3, ControlPage as ControlPage4, ControlSection as ControlSection4, Form as Form3 } from "@dxos/react-ui-form";
1456
1382
  import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
1457
- import { StackItem as StackItem4 } from "@dxos/react-ui-stack";
1383
+ import { StackItem as StackItem3 } from "@dxos/react-ui-stack";
1458
1384
  var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsContainer.tsx";
1459
1385
  var FormSchema = SpaceForm.pipe(Schema.extend(Schema.Struct({
1460
1386
  archived: Schema.Boolean.annotations({
@@ -1462,19 +1388,19 @@ var FormSchema = SpaceForm.pipe(Schema.extend(Schema.Struct({
1462
1388
  })
1463
1389
  })));
1464
1390
  var SpaceSettingsContainer = ({ space }) => {
1465
- var _effect = _useSignals17();
1391
+ var _effect = _useSignals15();
1466
1392
  try {
1467
- const { t } = useTranslation16(meta.id);
1393
+ const { t } = useTranslation15(meta.id);
1468
1394
  const { dispatchPromise: dispatch } = useIntentDispatcher9();
1469
1395
  const client = useClient7();
1470
- const archived = useMulticastObservable(space.state) === SpaceState2.SPACE_INACTIVE;
1396
+ const archived = useMulticastObservable(space.state) === SpaceState.SPACE_INACTIVE;
1471
1397
  const [edgeReplication, setEdgeReplication] = useState9(space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED);
1472
1398
  const toggleEdgeReplication = useCallback10(async (next) => {
1473
1399
  setEdgeReplication(next);
1474
1400
  await space?.internal.setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED).catch((err) => {
1475
1401
  log3.catch(err, void 0, {
1476
1402
  F: __dxlog_file4,
1477
- L: 51,
1403
+ L: 52,
1478
1404
  S: void 0,
1479
1405
  C: (f, a) => f(...a)
1480
1406
  });
@@ -1495,7 +1421,7 @@ var SpaceSettingsContainer = ({ space }) => {
1495
1421
  space.properties.hue = properties.hue;
1496
1422
  }
1497
1423
  if (properties.archived && !archived) {
1498
- void dispatch(pipe2(createIntent9(SpaceAction.Close, {
1424
+ void dispatch(Function2.pipe(createIntent9(SpaceAction.Close, {
1499
1425
  space
1500
1426
  }), chain2(LayoutAction7.SwitchWorkspace, {
1501
1427
  part: "workspace",
@@ -1511,7 +1437,7 @@ var SpaceSettingsContainer = ({ space }) => {
1511
1437
  toggleEdgeReplication,
1512
1438
  archived
1513
1439
  ]);
1514
- const values = useMemo3(() => ({
1440
+ const values = useMemo2(() => ({
1515
1441
  name: space.properties.name,
1516
1442
  icon: space.properties.icon,
1517
1443
  hue: space.properties.hue,
@@ -1524,16 +1450,16 @@ var SpaceSettingsContainer = ({ space }) => {
1524
1450
  edgeReplication,
1525
1451
  archived
1526
1452
  ]);
1527
- const customElements = useMemo3(() => ({
1453
+ const customElements = useMemo2(() => ({
1528
1454
  name: ({ type, label, getValue, onValueChange }) => {
1529
1455
  const handleChange = useCallback10(({ target: { value } }) => onValueChange(type, value), [
1530
1456
  onValueChange,
1531
1457
  type
1532
1458
  ]);
1533
- return /* @__PURE__ */ React17.createElement(ControlItemInput3, {
1459
+ return /* @__PURE__ */ React15.createElement(ControlItemInput3, {
1534
1460
  title: label,
1535
1461
  description: t("display name description")
1536
- }, /* @__PURE__ */ React17.createElement(Input6.TextInput, {
1462
+ }, /* @__PURE__ */ React15.createElement(Input5.TextInput, {
1537
1463
  value: getValue(),
1538
1464
  onChange: handleChange,
1539
1465
  placeholder: t("display name input placeholder"),
@@ -1549,10 +1475,10 @@ var SpaceSettingsContainer = ({ space }) => {
1549
1475
  onValueChange,
1550
1476
  type
1551
1477
  ]);
1552
- return /* @__PURE__ */ React17.createElement(ControlItem, {
1478
+ return /* @__PURE__ */ React15.createElement(ControlItem, {
1553
1479
  title: label,
1554
1480
  description: t("icon description")
1555
- }, /* @__PURE__ */ React17.createElement(IconPicker, {
1481
+ }, /* @__PURE__ */ React15.createElement(IconPicker, {
1556
1482
  value: getValue(),
1557
1483
  onChange: handleChange,
1558
1484
  onReset: handleReset,
@@ -1569,10 +1495,10 @@ var SpaceSettingsContainer = ({ space }) => {
1569
1495
  onValueChange,
1570
1496
  type
1571
1497
  ]);
1572
- return /* @__PURE__ */ React17.createElement(ControlItem, {
1498
+ return /* @__PURE__ */ React15.createElement(ControlItem, {
1573
1499
  title: label,
1574
1500
  description: t("hue description")
1575
- }, /* @__PURE__ */ React17.createElement(HuePicker, {
1501
+ }, /* @__PURE__ */ React15.createElement(HuePicker, {
1576
1502
  value: getValue(),
1577
1503
  onChange: handleChange,
1578
1504
  onReset: handleReset,
@@ -1584,10 +1510,10 @@ var SpaceSettingsContainer = ({ space }) => {
1584
1510
  onValueChange,
1585
1511
  type
1586
1512
  ]);
1587
- return /* @__PURE__ */ React17.createElement(ControlItemInput3, {
1513
+ return /* @__PURE__ */ React15.createElement(ControlItemInput3, {
1588
1514
  title: label,
1589
1515
  description: t("edge replication description")
1590
- }, /* @__PURE__ */ React17.createElement(Input6.Switch, {
1516
+ }, /* @__PURE__ */ React15.createElement(Input5.Switch, {
1591
1517
  checked: getValue(),
1592
1518
  onCheckedChange: handleChange,
1593
1519
  classNames: "justify-self-end"
@@ -1599,10 +1525,10 @@ var SpaceSettingsContainer = ({ space }) => {
1599
1525
  type,
1600
1526
  getValue
1601
1527
  ]);
1602
- return /* @__PURE__ */ React17.createElement(ControlItemInput3, {
1528
+ return /* @__PURE__ */ React15.createElement(ControlItemInput3, {
1603
1529
  title: label,
1604
1530
  description: t("archive space description")
1605
- }, /* @__PURE__ */ React17.createElement(Button7, {
1531
+ }, /* @__PURE__ */ React15.createElement(Button7, {
1606
1532
  disabled: space === client.spaces.default,
1607
1533
  onClick: handleChange
1608
1534
  }, getValue() ? t("unarchive space label") : t("archive space label")));
@@ -1611,16 +1537,16 @@ var SpaceSettingsContainer = ({ space }) => {
1611
1537
  t,
1612
1538
  space
1613
1539
  ]);
1614
- return /* @__PURE__ */ React17.createElement(StackItem4.Content, {
1615
- classNames: "block overflow-y-auto"
1616
- }, /* @__PURE__ */ React17.createElement(ControlPage4, null, /* @__PURE__ */ React17.createElement(ControlSection4, {
1540
+ return /* @__PURE__ */ React15.createElement(StackItem3.Content, {
1541
+ scrollable: true
1542
+ }, /* @__PURE__ */ React15.createElement(ControlPage4, null, /* @__PURE__ */ React15.createElement(ControlSection4, {
1617
1543
  title: t("space properties settings verbose label", {
1618
1544
  ns: meta.id
1619
1545
  }),
1620
1546
  description: t("space properties settings description", {
1621
1547
  ns: meta.id
1622
1548
  })
1623
- }, /* @__PURE__ */ React17.createElement(Form3, {
1549
+ }, /* @__PURE__ */ React15.createElement(Form3, {
1624
1550
  schema: FormSchema,
1625
1551
  values,
1626
1552
  autoSave: true,
@@ -1635,22 +1561,22 @@ var SpaceSettingsContainer = ({ space }) => {
1635
1561
  };
1636
1562
 
1637
1563
  // src/components/SyncStatus/InlineSyncStatus.tsx
1638
- import { useSignals as _useSignals18 } from "@preact-signals/safe-react/tracking";
1639
- import { Option as Option3 } from "effect";
1640
- import React18, { useEffect as useEffect5, useState as useState10 } from "react";
1564
+ import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
1565
+ import * as Option3 from "effect/Option";
1566
+ import React16, { useEffect as useEffect5, useState as useState10 } from "react";
1641
1567
  import { useAppGraph as useAppGraph3 } from "@dxos/app-framework";
1642
1568
  import { EdgeStatus } from "@dxos/protocols/proto/dxos/client/services";
1643
1569
  import { EdgeReplicationSetting as EdgeReplicationSetting2 } from "@dxos/protocols/proto/dxos/echo/metadata";
1644
1570
  import { useClient as useClient8 } from "@dxos/react-client";
1645
1571
  import { useSpaceSyncState } from "@dxos/react-client/echo";
1646
- import { Tooltip as Tooltip3, useTranslation as useTranslation17 } from "@dxos/react-ui";
1572
+ import { Tooltip as Tooltip3, useTranslation as useTranslation16 } from "@dxos/react-ui";
1647
1573
  import { AttentionGlyph as AttentionGlyph2, useAttended as useAttended2, useAttention as useAttention2 } from "@dxos/react-ui-attention";
1648
1574
  var useEdgeStatus = () => {
1649
- const [status, setStatus] = useState10(EdgeStatus.NOT_CONNECTED);
1575
+ const [status, setStatus] = useState10(EdgeStatus.ConnectionState.NOT_CONNECTED);
1650
1576
  const client = useClient8();
1651
1577
  useEffect5(() => {
1652
1578
  client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
1653
- setStatus(status2);
1579
+ setStatus(status2.state);
1654
1580
  });
1655
1581
  }, [
1656
1582
  client
@@ -1658,9 +1584,9 @@ var useEdgeStatus = () => {
1658
1584
  return status;
1659
1585
  };
1660
1586
  var InlineSyncStatus = ({ space, open }) => {
1661
- var _effect = _useSignals18();
1587
+ var _effect = _useSignals16();
1662
1588
  try {
1663
- const { t } = useTranslation17(meta.id);
1589
+ const { t } = useTranslation16(meta.id);
1664
1590
  const id = space.id;
1665
1591
  const { hasAttention, isAncestor, isRelated } = useAttention2(id);
1666
1592
  const isAttended = hasAttention || isAncestor || isRelated;
@@ -1669,15 +1595,15 @@ var InlineSyncStatus = ({ space, open }) => {
1669
1595
  const startOfAttention = attended.at(-1);
1670
1596
  const path = usePath(graph, startOfAttention);
1671
1597
  const containsAttended = !open && !isAttended && id && Option3.isSome(path) ? path.value.includes(id) : false;
1672
- const connectedToEdge = useEdgeStatus() === EdgeStatus.CONNECTED;
1598
+ const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;
1673
1599
  const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting2.ENABLED;
1674
1600
  const syncState = useSpaceSyncState(space);
1675
1601
  const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
1676
- return /* @__PURE__ */ React18.createElement(Tooltip3.Trigger, {
1602
+ return /* @__PURE__ */ React16.createElement(Tooltip3.Trigger, {
1677
1603
  asChild: true,
1678
1604
  content: t("syncing label"),
1679
1605
  side: "bottom"
1680
- }, /* @__PURE__ */ React18.createElement(AttentionGlyph2, {
1606
+ }, /* @__PURE__ */ React16.createElement(AttentionGlyph2, {
1681
1607
  syncing,
1682
1608
  attended: isAttended,
1683
1609
  containsAttended,
@@ -1689,12 +1615,16 @@ var InlineSyncStatus = ({ space, open }) => {
1689
1615
  };
1690
1616
 
1691
1617
  // src/components/SyncStatus/SyncStatus.tsx
1692
- import { useSignals as _useSignals19 } from "@preact-signals/safe-react/tracking";
1693
- import React19, { useEffect as useEffect6, useState as useState11 } from "react";
1618
+ import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
1619
+ import React17, { useEffect as useEffect6, useState as useState11 } from "react";
1694
1620
  import { StatusBar } from "@dxos/plugin-status-bar";
1621
+ import { EdgeStatus as EdgeStatus2 } from "@dxos/protocols/proto/dxos/client/services";
1695
1622
  import { useClient as useClient9 } from "@dxos/react-client";
1623
+ import { useStream } from "@dxos/react-client/devtools";
1696
1624
  import { getSyncSummary, useSyncState } from "@dxos/react-client/echo";
1697
- import { Icon as Icon8, useTranslation as useTranslation18 } from "@dxos/react-ui";
1625
+ import { Icon as Icon8, Popover as Popover3, useTranslation as useTranslation17 } from "@dxos/react-ui";
1626
+ import { mx as mx2 } from "@dxos/react-ui-theme";
1627
+ import { Unit } from "@dxos/util";
1698
1628
 
1699
1629
  // src/components/SyncStatus/save-tracker.ts
1700
1630
  import { Context } from "@dxos/context";
@@ -1790,7 +1720,7 @@ var getIcon = (status) => {
1790
1720
  // src/components/SyncStatus/SyncStatus.tsx
1791
1721
  var SYNC_STALLED_TIMEOUT = 5e3;
1792
1722
  var SyncStatus = () => {
1793
- var _effect = _useSignals19();
1723
+ var _effect = _useSignals17();
1794
1724
  try {
1795
1725
  const client = useClient9();
1796
1726
  const state = useSyncState();
@@ -1800,7 +1730,7 @@ var SyncStatus = () => {
1800
1730
  setSaved(state2 === "saved");
1801
1731
  });
1802
1732
  }, []);
1803
- return /* @__PURE__ */ React19.createElement(SyncStatusIndicator, {
1733
+ return /* @__PURE__ */ React17.createElement(SyncStatusIndicator, {
1804
1734
  state,
1805
1735
  saved
1806
1736
  });
@@ -1809,9 +1739,9 @@ var SyncStatus = () => {
1809
1739
  }
1810
1740
  };
1811
1741
  var SyncStatusIndicator = ({ state, saved }) => {
1812
- var _effect = _useSignals19();
1742
+ var _effect = _useSignals17();
1813
1743
  try {
1814
- const { t } = useTranslation18(meta.id);
1744
+ const { t } = useTranslation17(meta.id);
1815
1745
  const summary = getSyncSummary(state);
1816
1746
  const offline = Object.values(state).length === 0;
1817
1747
  const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
@@ -1838,39 +1768,95 @@ var SyncStatusIndicator = ({ state, saved }) => {
1838
1768
  needsToDownload
1839
1769
  ]);
1840
1770
  const title = t(`${status} label`);
1841
- const icon = /* @__PURE__ */ React19.createElement(Icon8, {
1771
+ const icon = /* @__PURE__ */ React17.createElement(Icon8, {
1842
1772
  icon: getIcon(status),
1843
- size: 4,
1844
1773
  classNames
1845
1774
  });
1846
- return /* @__PURE__ */ React19.createElement(StatusBar.Item, {
1775
+ return /* @__PURE__ */ React17.createElement(Popover3.Root, null, /* @__PURE__ */ React17.createElement(Popover3.Trigger, {
1776
+ asChild: true
1777
+ }, /* @__PURE__ */ React17.createElement(StatusBar.Item, {
1847
1778
  title
1848
- }, icon);
1779
+ }, icon)), /* @__PURE__ */ React17.createElement(Popover3.Portal, null, /* @__PURE__ */ React17.createElement(Popover3.Content, null, /* @__PURE__ */ React17.createElement(EdgeConnectionPopover, null), /* @__PURE__ */ React17.createElement(Popover3.Arrow, null))));
1780
+ } finally {
1781
+ _effect.f();
1782
+ }
1783
+ };
1784
+ var useEdgeStatus2 = () => {
1785
+ const client = useClient9();
1786
+ const { status } = useStream(() => client.services.services.EdgeAgentService.queryEdgeStatus(), {});
1787
+ return status;
1788
+ };
1789
+ var EdgeConnectionPopover = () => {
1790
+ var _effect = _useSignals17();
1791
+ try {
1792
+ const status = useEdgeStatus2();
1793
+ const { t } = useTranslation17(meta.id);
1794
+ const isConnected = status?.state === EdgeStatus2.ConnectionState.CONNECTED;
1795
+ return /* @__PURE__ */ React17.createElement("div", {
1796
+ className: "min-is-[240px] p-2"
1797
+ }, /* @__PURE__ */ React17.createElement("div", {
1798
+ className: "flex items-center gap-2 mbe-2"
1799
+ }, /* @__PURE__ */ React17.createElement(Icon8, {
1800
+ icon: isConnected ? "ph--check-circle--regular" : "ph--warning-circle--regular",
1801
+ classNames: mx2(isConnected ? "text-successText" : "text-errorText animate-pulse")
1802
+ }), /* @__PURE__ */ React17.createElement("span", {
1803
+ className: "font-medium text-sm"
1804
+ }, isConnected ? t("sync edge connected label") : t("sync edge disconnected label"))), status?.state === EdgeStatus2.ConnectionState.NOT_CONNECTED && /* @__PURE__ */ React17.createElement("div", {
1805
+ className: "flex items-center gap-2 text-sm text-description"
1806
+ }, /* @__PURE__ */ React17.createElement(Icon8, {
1807
+ icon: "ph--cloud-x--regular"
1808
+ }), /* @__PURE__ */ React17.createElement("span", null, t("sync no connection label"))), status?.state === EdgeStatus2.ConnectionState.CONNECTED && /* @__PURE__ */ React17.createElement("div", {
1809
+ className: "space-y-2"
1810
+ }, /* @__PURE__ */ React17.createElement("div", {
1811
+ className: "flex items-center justify-between"
1812
+ }, /* @__PURE__ */ React17.createElement("div", {
1813
+ className: "flex items-center gap-2 text-sm text-description"
1814
+ }, /* @__PURE__ */ React17.createElement(Icon8, {
1815
+ icon: "ph--timer--regular"
1816
+ }), /* @__PURE__ */ React17.createElement("span", null, t("sync latency label"))), /* @__PURE__ */ React17.createElement("span", {
1817
+ className: "text-sm font-mono text-subdued"
1818
+ }, status.rtt.toFixed(0), "ms")), /* @__PURE__ */ React17.createElement("div", {
1819
+ className: "flex items-center justify-between"
1820
+ }, /* @__PURE__ */ React17.createElement("div", {
1821
+ className: "flex items-center gap-2 text-sm text-description"
1822
+ }, /* @__PURE__ */ React17.createElement(Icon8, {
1823
+ icon: "ph--arrow-up--regular"
1824
+ }), /* @__PURE__ */ React17.createElement("span", null, t("sync upload label"))), /* @__PURE__ */ React17.createElement("span", {
1825
+ className: "text-sm font-mono text-subdued"
1826
+ }, Unit.Kilobyte(status.rateBytesUp, 0), "/s")), /* @__PURE__ */ React17.createElement("div", {
1827
+ className: "flex items-center justify-between"
1828
+ }, /* @__PURE__ */ React17.createElement("div", {
1829
+ className: "flex items-center gap-2 text-sm text-description"
1830
+ }, /* @__PURE__ */ React17.createElement(Icon8, {
1831
+ icon: "ph--arrow-down--regular"
1832
+ }), /* @__PURE__ */ React17.createElement("span", null, t("sync download label"))), /* @__PURE__ */ React17.createElement("span", {
1833
+ className: "text-sm font-mono text-subdued"
1834
+ }, Unit.Kilobyte(status.rateBytesDown, 0), "/s"))));
1849
1835
  } finally {
1850
1836
  _effect.f();
1851
1837
  }
1852
1838
  };
1853
1839
 
1854
1840
  // src/components/ViewEditor.tsx
1855
- import { useSignals as _useSignals20 } from "@preact-signals/safe-react/tracking";
1856
- import React20, { useCallback as useCallback11 } from "react";
1841
+ import { useSignals as _useSignals18 } from "@preact-signals/safe-react/tracking";
1842
+ import React18, { useCallback as useCallback11 } from "react";
1857
1843
  import { createIntent as createIntent10, useIntentDispatcher as useIntentDispatcher10 } from "@dxos/app-framework";
1858
- import { Filter as Filter2, Query as Query2, Type as Type3 } from "@dxos/echo";
1844
+ import { Type as Type3 } from "@dxos/echo";
1859
1845
  import { invariant as invariant2 } from "@dxos/invariant";
1860
1846
  import { useClient as useClient10 } from "@dxos/react-client";
1861
1847
  import { getSpace as getSpace4, useSchema } from "@dxos/react-client/echo";
1862
1848
  import { ViewEditor as NaturalViewEditor } from "@dxos/react-ui-form";
1863
- import { typenameFromQuery as typenameFromQuery2 } from "@dxos/schema";
1849
+ import { getTypenameFromQuery as getTypenameFromQuery2 } from "@dxos/schema";
1864
1850
  var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ViewEditor.tsx";
1865
1851
  var ViewEditor = ({ view }) => {
1866
- var _effect = _useSignals20();
1852
+ var _effect = _useSignals18();
1867
1853
  try {
1868
1854
  const { dispatchPromise: dispatch } = useIntentDispatcher10();
1869
1855
  const client = useClient10();
1870
1856
  const space = getSpace4(view);
1871
- const typename = view.query ? typenameFromQuery2(view.query.ast) : void 0;
1857
+ const typename = view.query ? getTypenameFromQuery2(view.query.ast) : void 0;
1872
1858
  const schema = useSchema(client, space, typename);
1873
- const handleUpdateQuery = useCallback11((typename2) => {
1859
+ const handleUpdateQuery = useCallback11((newQuery) => {
1874
1860
  invariant2(schema, void 0, {
1875
1861
  F: __dxlog_file6,
1876
1862
  L: 28,
@@ -1889,9 +1875,8 @@ var ViewEditor = ({ view }) => {
1889
1875
  ""
1890
1876
  ]
1891
1877
  });
1892
- const newQuery = Query2.select(Filter2.typename(typename2));
1893
- view.query.ast = newQuery.ast;
1894
- schema.updateTypename(typename2);
1878
+ view.query.ast = newQuery;
1879
+ schema.updateTypename(getTypenameFromQuery2(newQuery));
1895
1880
  }, [
1896
1881
  view,
1897
1882
  schema
@@ -1908,7 +1893,7 @@ var ViewEditor = ({ view }) => {
1908
1893
  if (!space || !schema) {
1909
1894
  return null;
1910
1895
  }
1911
- return /* @__PURE__ */ React20.createElement(NaturalViewEditor, {
1896
+ return /* @__PURE__ */ React18.createElement(NaturalViewEditor, {
1912
1897
  registry: space.db.schemaRegistry,
1913
1898
  schema,
1914
1899
  view,
@@ -1922,10 +1907,11 @@ var ViewEditor = ({ view }) => {
1922
1907
  };
1923
1908
 
1924
1909
  // src/components/index.ts
1925
- import { lazy as lazy2 } from "react";
1926
- var CollectionMain = lazy2(() => import("./CollectionMain-AX7KKXWP.mjs"));
1927
- var ObjectDetailsPanel = lazy2(() => import("./ObjectDetailsPanel-ETI5YBTH.mjs"));
1928
- var RecordMain = lazy2(() => import("./RecordMain-TEBGAVSL.mjs"));
1910
+ import { lazy } from "react";
1911
+ var CollectionMain = lazy(() => import("./CollectionMain-HTKSZCRR.mjs"));
1912
+ var ObjectDetailsPanel = lazy(() => import("./ObjectDetailsPanel-5B45G744.mjs"));
1913
+ var ObjectSettingsContainer = lazy(() => import("./ObjectSettings-UFTKBP7B.mjs"));
1914
+ var RecordMain = lazy(() => import("./RecordMain-BCSXTSEB.mjs"));
1929
1915
 
1930
1916
  export {
1931
1917
  AwaitingObject,
@@ -1938,7 +1924,6 @@ export {
1938
1924
  JoinDialog,
1939
1925
  MembersContainer,
1940
1926
  MenuFooter,
1941
- ObjectSettingsContainer,
1942
1927
  PersistenceStatus,
1943
1928
  POPOVER_RENAME_OBJECT,
1944
1929
  PopoverRenameObject,
@@ -1958,16 +1943,7 @@ export {
1958
1943
  ViewEditor,
1959
1944
  CollectionMain,
1960
1945
  ObjectDetailsPanel,
1961
- RecordMain,
1962
- AppGraphBuilder,
1963
- AppGraphSerializer,
1964
- IdentityCreated,
1965
- IntentResolver,
1966
- ReactRoot,
1967
- ReactSurface,
1968
- SchemaDefs,
1969
- SpaceSettings,
1970
- SpaceState,
1971
- SpacesReady
1946
+ ObjectSettingsContainer,
1947
+ RecordMain
1972
1948
  };
1973
- //# sourceMappingURL=chunk-2BFVC5K6.mjs.map
1949
+ //# sourceMappingURL=chunk-ENBBJSNE.mjs.map