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