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

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 (217) hide show
  1. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs +31 -0
  2. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs +88 -0
  4. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs.map +7 -0
  5. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +68 -0
  6. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-builder-PMDF6PJV.mjs → app-graph-builder-VZW75QPJ.mjs} +174 -26
  8. package/dist/lib/browser/app-graph-builder-VZW75QPJ.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-serializer-UKYMBX4O.mjs → app-graph-serializer-YPHYVZAP.mjs} +4 -4
  10. package/dist/lib/browser/{chunk-S6NY637J.mjs → chunk-3UFG6LQQ.mjs} +57 -3
  11. package/dist/lib/browser/chunk-3UFG6LQQ.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-C7KGJTAL.mjs → chunk-CBYL62HG.mjs} +3 -2
  13. package/dist/lib/browser/chunk-CBYL62HG.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-DYKFFVN6.mjs} +2 -2
  15. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs.map → chunk-DYKFFVN6.mjs.map} +3 -3
  16. package/dist/lib/browser/{chunk-GVTXQCIW.mjs → chunk-PSIBVBTA.mjs} +386 -319
  17. package/dist/lib/browser/chunk-PSIBVBTA.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-XXIPJLJF.mjs → chunk-Q5EEPP3S.mjs} +2 -1
  19. package/dist/lib/browser/chunk-Q5EEPP3S.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-WBSEOLEM.mjs → chunk-SMB4DGYO.mjs} +129 -25
  21. package/dist/lib/browser/chunk-SMB4DGYO.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-6VLSHG4A.mjs → chunk-WAXS2ZVX.mjs} +68 -7
  23. package/dist/lib/browser/chunk-WAXS2ZVX.mjs.map +7 -0
  24. package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-T6ZNVE7S.mjs} +2 -2
  25. package/dist/lib/browser/{identity-created-23XJJV2N.mjs.map → identity-created-T6ZNVE7S.mjs.map} +3 -3
  26. package/dist/lib/browser/index.mjs +103 -12
  27. package/dist/lib/browser/index.mjs.map +3 -3
  28. package/dist/lib/browser/{intent-resolver-WK5WYFH3.mjs → intent-resolver-TS6CCKST.mjs} +166 -16
  29. package/dist/lib/browser/intent-resolver-TS6CCKST.mjs.map +7 -0
  30. package/dist/lib/browser/meta.json +1 -1
  31. package/dist/lib/browser/{react-root-7S6FIC5G.mjs → react-root-RQGTZ2ZO.mjs} +6 -6
  32. package/dist/lib/browser/{react-root-7S6FIC5G.mjs.map → react-root-RQGTZ2ZO.mjs.map} +2 -2
  33. package/dist/lib/browser/{react-surface-6C3YJNDK.mjs → react-surface-V3ARS2BP.mjs} +48 -16
  34. package/dist/lib/browser/react-surface-V3ARS2BP.mjs.map +7 -0
  35. package/dist/lib/browser/{schema-defs-K3B3OAH4.mjs → schema-defs-5LBA43X5.mjs} +2 -2
  36. package/dist/lib/browser/schema-defs-5LBA43X5.mjs.map +7 -0
  37. package/dist/lib/browser/{schema-tools-BNP4JTD7.mjs → schema-tools-LPL35WOJ.mjs} +11 -11
  38. package/dist/lib/browser/schema-tools-LPL35WOJ.mjs.map +7 -0
  39. package/dist/lib/browser/{settings-XNWYRWNM.mjs → settings-FLLBP5KI.mjs} +2 -2
  40. package/dist/lib/browser/{spaces-ready-K7NSNBHM.mjs → spaces-ready-FXEP6XEW.mjs} +14 -12
  41. package/dist/lib/browser/spaces-ready-FXEP6XEW.mjs.map +7 -0
  42. package/dist/lib/browser/{state-522XTUR4.mjs → state-K3UBPKYP.mjs} +2 -2
  43. package/dist/lib/{node-esm/state-C4IOXPZP.mjs.map → browser/state-K3UBPKYP.mjs.map} +2 -2
  44. package/dist/lib/browser/types/index.mjs +1 -1
  45. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs +32 -0
  46. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +7 -0
  47. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs +89 -0
  48. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs.map +7 -0
  49. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +70 -0
  50. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +7 -0
  51. package/dist/lib/node-esm/{app-graph-builder-TO72W6MI.mjs → app-graph-builder-XNVQOJLE.mjs} +174 -26
  52. package/dist/lib/node-esm/app-graph-builder-XNVQOJLE.mjs.map +7 -0
  53. package/dist/lib/node-esm/{app-graph-serializer-LA3IZDXJ.mjs → app-graph-serializer-PKVLWV6V.mjs} +4 -4
  54. package/dist/lib/node-esm/{chunk-AT7LGFER.mjs → chunk-7MZ3J3LI.mjs} +2 -1
  55. package/dist/lib/node-esm/chunk-7MZ3J3LI.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-HJJHLWKY.mjs → chunk-CTQMR7E3.mjs} +129 -25
  57. package/dist/lib/node-esm/chunk-CTQMR7E3.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-72QMMRKC.mjs → chunk-FJZNSJC4.mjs} +3 -2
  59. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-SXD6T2N4.mjs → chunk-HYIZVPOA.mjs} +68 -7
  61. package/dist/lib/node-esm/chunk-HYIZVPOA.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-KLG4Y4GY.mjs} +2 -2
  63. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs.map → chunk-KLG4Y4GY.mjs.map} +3 -3
  64. package/dist/lib/node-esm/{chunk-OUBADVJE.mjs → chunk-KYUHPPRN.mjs} +386 -319
  65. package/dist/lib/node-esm/chunk-KYUHPPRN.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-2THX6G4C.mjs → chunk-S7MKRQHY.mjs} +57 -3
  67. package/dist/lib/node-esm/chunk-S7MKRQHY.mjs.map +7 -0
  68. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-AL7NNCKH.mjs} +2 -2
  69. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs.map → identity-created-AL7NNCKH.mjs.map} +3 -3
  70. package/dist/lib/node-esm/index.mjs +103 -12
  71. package/dist/lib/node-esm/index.mjs.map +3 -3
  72. package/dist/lib/node-esm/{intent-resolver-HSR27ME4.mjs → intent-resolver-W6P27SCF.mjs} +166 -16
  73. package/dist/lib/node-esm/intent-resolver-W6P27SCF.mjs.map +7 -0
  74. package/dist/lib/node-esm/meta.json +1 -1
  75. package/dist/lib/node-esm/{react-root-HUK3ANLV.mjs → react-root-N27KETKT.mjs} +6 -6
  76. package/dist/lib/node-esm/{react-root-HUK3ANLV.mjs.map → react-root-N27KETKT.mjs.map} +2 -2
  77. package/dist/lib/node-esm/{react-surface-AGAWX7DD.mjs → react-surface-TNPAUQCM.mjs} +48 -16
  78. package/dist/lib/node-esm/react-surface-TNPAUQCM.mjs.map +7 -0
  79. package/dist/lib/node-esm/{schema-defs-4MCDG4DV.mjs → schema-defs-TPWZPDCR.mjs} +2 -2
  80. package/dist/lib/node-esm/schema-defs-TPWZPDCR.mjs.map +7 -0
  81. package/dist/lib/node-esm/{schema-tools-KWW5PTML.mjs → schema-tools-PJE2FKWH.mjs} +11 -11
  82. package/dist/lib/node-esm/schema-tools-PJE2FKWH.mjs.map +7 -0
  83. package/dist/lib/node-esm/{settings-YGKHGFPH.mjs → settings-WKUWY3P6.mjs} +2 -2
  84. package/dist/lib/node-esm/{spaces-ready-UM2P3DCR.mjs → spaces-ready-PQLLIO5W.mjs} +14 -12
  85. package/dist/lib/node-esm/spaces-ready-PQLLIO5W.mjs.map +7 -0
  86. package/dist/lib/node-esm/{state-C4IOXPZP.mjs → state-4M5A6OSB.mjs} +2 -2
  87. package/dist/lib/node-esm/state-4M5A6OSB.mjs.map +7 -0
  88. package/dist/lib/node-esm/types/index.mjs +1 -1
  89. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/capabilities.d.ts +9 -3
  92. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  101. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  102. package/dist/types/src/components/CollectionMain.d.ts +1 -0
  103. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  104. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -2
  105. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  106. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  107. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +1 -1
  108. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  109. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  110. package/dist/types/src/components/MembersContainer.stories.d.ts +1 -1
  111. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  113. package/dist/types/src/components/ObjectDetailsPanel.d.ts +9 -0
  114. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +1 -0
  115. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  116. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  117. package/dist/types/src/components/PopoverRenameObject.d.ts +1 -1
  118. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  119. package/dist/types/src/components/RecordMain.d.ts +7 -0
  120. package/dist/types/src/components/RecordMain.d.ts.map +1 -0
  121. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  122. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  123. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  124. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +1 -1
  126. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  127. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  128. package/dist/types/src/components/SyncStatus/status.d.ts +5 -5
  129. package/dist/types/src/components/ViewEditor.d.ts +8 -0
  130. package/dist/types/src/components/ViewEditor.d.ts.map +1 -0
  131. package/dist/types/src/components/index.d.ts +11 -1
  132. package/dist/types/src/components/index.d.ts.map +1 -1
  133. package/dist/types/src/events.d.ts +1 -0
  134. package/dist/types/src/events.d.ts.map +1 -1
  135. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  136. package/dist/types/src/translations.d.ts +65 -4
  137. package/dist/types/src/translations.d.ts.map +1 -1
  138. package/dist/types/src/types/types.d.ts +82 -2
  139. package/dist/types/src/types/types.d.ts.map +1 -1
  140. package/dist/types/src/util.d.ts +31 -5
  141. package/dist/types/src/util.d.ts.map +1 -1
  142. package/dist/types/tsconfig.tsbuildinfo +1 -1
  143. package/package.json +50 -50
  144. package/src/SpacePlugin.ts +88 -5
  145. package/src/capabilities/app-graph-builder.ts +210 -12
  146. package/src/capabilities/capabilities.ts +8 -3
  147. package/src/capabilities/identity-created.ts +1 -1
  148. package/src/capabilities/intent-resolver.ts +120 -10
  149. package/src/capabilities/react-root.tsx +2 -1
  150. package/src/capabilities/react-surface.tsx +66 -15
  151. package/src/capabilities/schema-defs.ts +3 -2
  152. package/src/capabilities/schema-tool.test.ts +1 -1
  153. package/src/capabilities/schema-tools.ts +11 -11
  154. package/src/capabilities/spaces-ready.ts +10 -7
  155. package/src/capabilities/state.ts +3 -2
  156. package/src/components/AwaitingObject.tsx +5 -7
  157. package/src/components/CollectionMain.tsx +2 -0
  158. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +2 -1
  159. package/src/components/CreateDialog/CreateObjectDialog.tsx +32 -27
  160. package/src/components/CreateDialog/CreateObjectPanel.tsx +3 -3
  161. package/src/components/CreateDialog/CreateSpaceDialog.tsx +1 -1
  162. package/src/components/JoinDialog.tsx +1 -1
  163. package/src/components/MembersContainer.stories.tsx +4 -3
  164. package/src/components/MembersContainer.tsx +7 -5
  165. package/src/components/MenuFooter.tsx +2 -3
  166. package/src/components/ObjectDetailsPanel.tsx +77 -0
  167. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +2 -1
  168. package/src/components/PersistenceStatus.tsx +5 -6
  169. package/src/components/PopoverRenameObject.tsx +7 -13
  170. package/src/components/PopoverRenameSpace.tsx +1 -1
  171. package/src/components/RecordMain.tsx +43 -0
  172. package/src/components/SchemaContainer.tsx +2 -2
  173. package/src/components/SpacePluginSettings.tsx +2 -2
  174. package/src/components/SpacePresence.stories.tsx +2 -1
  175. package/src/components/SpacePresence.tsx +7 -7
  176. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +2 -1
  177. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +6 -6
  178. package/src/components/SyncStatus/SyncStatus.stories.tsx +2 -1
  179. package/src/components/SyncStatus/SyncStatus.tsx +4 -3
  180. package/src/components/SyncStatus/status.ts +4 -4
  181. package/src/components/ViewEditor.tsx +64 -0
  182. package/src/components/index.ts +7 -1
  183. package/src/events.ts +2 -1
  184. package/src/hooks/useActiveSpace.ts +1 -1
  185. package/src/hooks/useInputSurfaceLookup.tsx +1 -1
  186. package/src/translations.ts +66 -4
  187. package/src/types/types.ts +56 -3
  188. package/src/util.tsx +126 -25
  189. package/dist/lib/browser/app-graph-builder-PMDF6PJV.mjs.map +0 -7
  190. package/dist/lib/browser/chunk-6VLSHG4A.mjs.map +0 -7
  191. package/dist/lib/browser/chunk-C7KGJTAL.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-GVTXQCIW.mjs.map +0 -7
  193. package/dist/lib/browser/chunk-S6NY637J.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-WBSEOLEM.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-XXIPJLJF.mjs.map +0 -7
  196. package/dist/lib/browser/intent-resolver-WK5WYFH3.mjs.map +0 -7
  197. package/dist/lib/browser/react-surface-6C3YJNDK.mjs.map +0 -7
  198. package/dist/lib/browser/schema-defs-K3B3OAH4.mjs.map +0 -7
  199. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  200. package/dist/lib/browser/spaces-ready-K7NSNBHM.mjs.map +0 -7
  201. package/dist/lib/browser/state-522XTUR4.mjs.map +0 -7
  202. package/dist/lib/node-esm/app-graph-builder-TO72W6MI.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-2THX6G4C.mjs.map +0 -7
  204. package/dist/lib/node-esm/chunk-72QMMRKC.mjs.map +0 -7
  205. package/dist/lib/node-esm/chunk-AT7LGFER.mjs.map +0 -7
  206. package/dist/lib/node-esm/chunk-HJJHLWKY.mjs.map +0 -7
  207. package/dist/lib/node-esm/chunk-OUBADVJE.mjs.map +0 -7
  208. package/dist/lib/node-esm/chunk-SXD6T2N4.mjs.map +0 -7
  209. package/dist/lib/node-esm/intent-resolver-HSR27ME4.mjs.map +0 -7
  210. package/dist/lib/node-esm/react-surface-AGAWX7DD.mjs.map +0 -7
  211. package/dist/lib/node-esm/schema-defs-4MCDG4DV.mjs.map +0 -7
  212. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  213. package/dist/lib/node-esm/spaces-ready-UM2P3DCR.mjs.map +0 -7
  214. /package/dist/lib/browser/{app-graph-serializer-UKYMBX4O.mjs.map → app-graph-serializer-YPHYVZAP.mjs.map} +0 -0
  215. /package/dist/lib/browser/{settings-XNWYRWNM.mjs.map → settings-FLLBP5KI.mjs.map} +0 -0
  216. /package/dist/lib/node-esm/{app-graph-serializer-LA3IZDXJ.mjs.map → app-graph-serializer-PKVLWV6V.mjs.map} +0 -0
  217. /package/dist/lib/node-esm/{settings-YGKHGFPH.mjs.map → settings-WKUWY3P6.mjs.map} +0 -0
@@ -2,18 +2,18 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  useInputSurfaceLookup,
4
4
  usePath
5
- } from "./chunk-SSLBYZEY.mjs";
5
+ } from "./chunk-KLG4Y4GY.mjs";
6
6
  import {
7
7
  SpaceCapabilities
8
- } from "./chunk-AT7LGFER.mjs";
8
+ } from "./chunk-7MZ3J3LI.mjs";
9
9
  import {
10
10
  COMPOSER_SPACE_LOCK,
11
11
  getSpaceDisplayName
12
- } from "./chunk-HJJHLWKY.mjs";
12
+ } from "./chunk-CTQMR7E3.mjs";
13
13
  import {
14
14
  SpaceAction,
15
15
  SpaceForm
16
- } from "./chunk-2THX6G4C.mjs";
16
+ } from "./chunk-S7MKRQHY.mjs";
17
17
  import {
18
18
  SPACE_PLUGIN,
19
19
  meta
@@ -21,13 +21,11 @@ import {
21
21
 
22
22
  // src/components/AwaitingObject.tsx
23
23
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
24
- import { CheckCircle, CircleDashed, CircleNotch } from "@phosphor-icons/react";
25
24
  import React, { useCallback, useEffect, useState } from "react";
26
- import { createIntent, LayoutAction, useIntentDispatcher, useLayout } from "@dxos/app-framework";
25
+ import { LayoutAction, createIntent, useIntentDispatcher, useLayout } from "@dxos/app-framework";
27
26
  import { useClient } from "@dxos/react-client";
28
27
  import { Filter, fullyQualifiedId, useQuery } from "@dxos/react-client/echo";
29
- import { Button, Toast, useTranslation } from "@dxos/react-ui";
30
- import { getSize, mx } from "@dxos/react-ui-theme";
28
+ import { Button, Icon, Toast, useTranslation } from "@dxos/react-ui";
31
29
  var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
32
30
  var TOAST_TIMEOUT = 24e4;
33
31
  var AwaitingObject = ({ id }) => {
@@ -88,12 +86,16 @@ var AwaitingObject = ({ id }) => {
88
86
  onOpenChange: setOpen
89
87
  }, /* @__PURE__ */ React.createElement(Toast.Body, null, /* @__PURE__ */ React.createElement(Toast.Title, {
90
88
  classNames: "flex items-center gap-2"
91
- }, found ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(CheckCircle, {
92
- className: getSize(5)
93
- }), /* @__PURE__ */ React.createElement("span", null, t("found object label"))) : waiting ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(CircleNotch, {
94
- className: mx(getSize(5), "animate-spin")
95
- }), /* @__PURE__ */ React.createElement("span", null, t("waiting for object label"))) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(CircleDashed, {
96
- className: getSize(5)
89
+ }, found ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Icon, {
90
+ icon: "ph--check-circle--regular",
91
+ size: 5
92
+ }), /* @__PURE__ */ React.createElement("span", null, t("found object label"))) : waiting ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Icon, {
93
+ icon: "ph--circle-notch--regular",
94
+ size: 5,
95
+ classNames: "animate-spin"
96
+ }), /* @__PURE__ */ React.createElement("span", null, t("waiting for object label"))) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Icon, {
97
+ icon: "ph--circle-dashed--regular",
98
+ size: 5
97
99
  }), /* @__PURE__ */ React.createElement("span", null, t("object not found label")))), /* @__PURE__ */ React.createElement(Toast.Description, null, t(found ? "found object description" : waiting ? "waiting for object description" : "object not found description"))), /* @__PURE__ */ React.createElement(Toast.Actions, null, found ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Toast.Action, {
98
100
  altText: t("go to object alt"),
99
101
  asChild: true
@@ -120,24 +122,38 @@ var AwaitingObject = ({ id }) => {
120
122
 
121
123
  // src/components/CreateDialog/CreateObjectDialog.tsx
122
124
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
123
- import { pipe } from "effect";
125
+ import { Effect, pipe } from "effect";
124
126
  import React3, { useCallback as useCallback3, useRef, useState as useState2 } from "react";
125
127
  import { Capabilities, LayoutAction as LayoutAction2, chain, createIntent as createIntent2, useCapabilities, useIntentDispatcher as useIntentDispatcher2, usePluginManager } from "@dxos/app-framework";
126
- import { Query, Type as Type2 } from "@dxos/echo";
128
+ import { Obj, Query, Type as Type2 } from "@dxos/echo";
127
129
  import { invariant } from "@dxos/invariant";
128
130
  import { useClient as useClient2 } from "@dxos/react-client";
129
131
  import { getSpace, isLiveObject, isSpace, useQuery as useQuery2, useSpaces } from "@dxos/react-client/echo";
130
- import { Button as Button2, Dialog, Icon as Icon2, useTranslation as useTranslation3 } from "@dxos/react-ui";
132
+ import { Button as Button2, Dialog, Icon as Icon3, useTranslation as useTranslation3 } from "@dxos/react-ui";
131
133
  import { cardDialogContent, cardDialogHeader } from "@dxos/react-ui-stack";
132
134
  import { DataType } from "@dxos/schema";
133
135
  import { isNonNullable as isNonNullable2 } from "@dxos/util";
134
136
 
137
+ // src/capabilities/index.ts
138
+ import { lazy } from "@dxos/app-framework";
139
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-XNVQOJLE.mjs"));
140
+ var AppGraphSerializer = lazy(() => import("./app-graph-serializer-PKVLWV6V.mjs"));
141
+ var IdentityCreated = lazy(() => import("./identity-created-AL7NNCKH.mjs"));
142
+ var IntentResolver = lazy(() => import("./intent-resolver-W6P27SCF.mjs"));
143
+ var ReactRoot = lazy(() => import("./react-root-N27KETKT.mjs"));
144
+ var ReactSurface = lazy(() => import("./react-surface-TNPAUQCM.mjs"));
145
+ var SchemaDefs = lazy(() => import("./schema-defs-TPWZPDCR.mjs"));
146
+ var SchemaTools = lazy(() => import("./schema-tools-PJE2FKWH.mjs"));
147
+ var SpaceSettings = lazy(() => import("./settings-WKUWY3P6.mjs"));
148
+ var SpaceState = lazy(() => import("./state-4M5A6OSB.mjs"));
149
+ var SpacesReady = lazy(() => import("./spaces-ready-PQLLIO5W.mjs"));
150
+
135
151
  // src/components/CreateDialog/CreateObjectPanel.tsx
136
152
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
137
153
  import React2, { useCallback as useCallback2 } from "react";
138
154
  import { Type } from "@dxos/echo";
139
155
  import { getTypeAnnotation } from "@dxos/echo-schema";
140
- import { Icon, toLocalizedString, useTranslation as useTranslation2 } from "@dxos/react-ui";
156
+ import { Icon as Icon2, toLocalizedString, useTranslation as useTranslation2 } from "@dxos/react-ui";
141
157
  import { Form } from "@dxos/react-ui-form";
142
158
  import { SearchList } from "@dxos/react-ui-searchlist";
143
159
  import { cardDialogOverflow, cardDialogPaddedOverflow, cardDialogSearchListRoot } from "@dxos/react-ui-stack";
@@ -275,7 +291,7 @@ var SelectSchema = ({ options, resolve, onChange }) => {
275
291
  classNames: "flex items-center gap-2"
276
292
  }, /* @__PURE__ */ React2.createElement("span", {
277
293
  className: "flex gap-2 items-center grow truncate"
278
- }, /* @__PURE__ */ React2.createElement(Icon, {
294
+ }, /* @__PURE__ */ React2.createElement(Icon2, {
279
295
  icon: resolve?.(option.typename).icon ?? "ph--placeholder--regular",
280
296
  size: 5
281
297
  }), t("typename label", {
@@ -287,24 +303,10 @@ var SelectSchema = ({ options, resolve, onChange }) => {
287
303
  }
288
304
  };
289
305
 
290
- // src/capabilities/index.ts
291
- import { lazy } from "@dxos/app-framework";
292
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-TO72W6MI.mjs"));
293
- var AppGraphSerializer = lazy(() => import("./app-graph-serializer-LA3IZDXJ.mjs"));
294
- var IdentityCreated = lazy(() => import("./identity-created-IJQO6GCR.mjs"));
295
- var IntentResolver = lazy(() => import("./intent-resolver-HSR27ME4.mjs"));
296
- var ReactRoot = lazy(() => import("./react-root-HUK3ANLV.mjs"));
297
- var ReactSurface = lazy(() => import("./react-surface-AGAWX7DD.mjs"));
298
- var SchemaDefs = lazy(() => import("./schema-defs-4MCDG4DV.mjs"));
299
- var SchemaTools = lazy(() => import("./schema-tools-KWW5PTML.mjs"));
300
- var SpaceSettings = lazy(() => import("./settings-YGKHGFPH.mjs"));
301
- var SpaceState = lazy(() => import("./state-C4IOXPZP.mjs"));
302
- var SpacesReady = lazy(() => import("./spaces-ready-UM2P3DCR.mjs"));
303
-
304
306
  // src/components/CreateDialog/CreateObjectDialog.tsx
305
307
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
306
308
  var CREATE_OBJECT_DIALOG = `${SPACE_PLUGIN}/CreateObjectDialog`;
307
- var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, name, shouldNavigate: _shouldNavigate }) => {
309
+ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, name, onCreateObject, shouldNavigate: _shouldNavigate }) => {
308
310
  var _effect = _useSignals3();
309
311
  try {
310
312
  const closeRef = useRef(null);
@@ -312,7 +314,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
312
314
  const { t } = useTranslation3(SPACE_PLUGIN);
313
315
  const client = useClient2();
314
316
  const spaces = useSpaces();
315
- const { dispatchPromise: dispatch } = useIntentDispatcher2();
317
+ const { dispatch } = useIntentDispatcher2();
316
318
  const forms = useCapabilities(SpaceCapabilities.ObjectForm);
317
319
  const [target, setTarget] = useState2(initialTarget);
318
320
  const [typename, setTypename] = useState2(initialTypename);
@@ -322,7 +324,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
322
324
  const resolve = useCallback3((typename2) => manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
323
325
  manager
324
326
  ]);
325
- const handleCreateObject = useCallback3(async ({ form, data = {} }) => {
327
+ const handleCreateObject = useCallback3(({ form, data = {} }) => Effect.gen(function* () {
326
328
  if (!target) {
327
329
  return;
328
330
  }
@@ -330,18 +332,17 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
330
332
  const space2 = isSpace(target) ? target : getSpace(target);
331
333
  invariant(space2, "Missing space", {
332
334
  F: __dxlog_file,
333
- L: 73,
334
- S: void 0,
335
+ L: 77,
336
+ S: this,
335
337
  A: [
336
338
  "space",
337
339
  "'Missing space'"
338
340
  ]
339
341
  });
340
- const result = await dispatch(form.getIntent(data, {
342
+ const { object } = yield* dispatch(form.getIntent(data, {
341
343
  space: space2
342
344
  }));
343
- const object = result.data?.object;
344
- if (isLiveObject(object)) {
345
+ if (isLiveObject(object) && !Obj.instanceOf(DataType.StoredSchema, object)) {
345
346
  const hidden = form.hidden || hiddenTypenames.includes(Type2.getTypename(form.objectSchema));
346
347
  const addObjectIntent = createIntent2(SpaceAction.AddObject, {
347
348
  target,
@@ -350,14 +351,15 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
350
351
  });
351
352
  const shouldNavigate = _shouldNavigate ?? (() => true);
352
353
  if (shouldNavigate(object)) {
353
- await dispatch(pipe(addObjectIntent, chain(LayoutAction2.Open, {
354
+ yield* dispatch(pipe(addObjectIntent, chain(LayoutAction2.Open, {
354
355
  part: "main"
355
356
  })));
356
357
  } else {
357
- await dispatch(addObjectIntent);
358
+ yield* dispatch(addObjectIntent);
358
359
  }
360
+ onCreateObject?.(object);
359
361
  }
360
- }, [
362
+ }).pipe(Effect.runPromise), [
361
363
  dispatch,
362
364
  target,
363
365
  resolve,
@@ -384,7 +386,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
384
386
  density: "fine",
385
387
  variant: "ghost",
386
388
  autoFocus: true
387
- }, /* @__PURE__ */ React3.createElement(Icon2, {
389
+ }, /* @__PURE__ */ React3.createElement(Icon3, {
388
390
  icon: "ph--x--regular",
389
391
  size: 4
390
392
  })))), /* @__PURE__ */ React3.createElement(CreateObjectPanel, {
@@ -407,10 +409,10 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
407
409
 
408
410
  // src/components/CreateDialog/CreateSpaceDialog.tsx
409
411
  import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
410
- import { Effect } from "effect";
412
+ import { Effect as Effect2 } from "effect";
411
413
  import React4, { useCallback as useCallback4, useRef as useRef2 } from "react";
412
- import { createIntent as createIntent3, LayoutAction as LayoutAction3, useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework";
413
- import { Button as Button3, Dialog as Dialog2, Icon as Icon3, useTranslation as useTranslation4 } from "@dxos/react-ui";
414
+ import { LayoutAction as LayoutAction3, createIntent as createIntent3, useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework";
415
+ import { Button as Button3, Dialog as Dialog2, Icon as Icon4, useTranslation as useTranslation4 } from "@dxos/react-ui";
414
416
  import { Form as Form2 } from "@dxos/react-ui-form";
415
417
  import { cardDialogContent as cardDialogContent2, cardDialogHeader as cardDialogHeader2 } from "@dxos/react-ui-stack";
416
418
  var CREATE_SPACE_DIALOG = `${SPACE_PLUGIN}/CreateSpaceDialog`;
@@ -425,7 +427,7 @@ var CreateSpaceDialog = () => {
425
427
  const { dispatch } = useIntentDispatcher3();
426
428
  const inputSurfaceLookup = useInputSurfaceLookup();
427
429
  const handleCreateSpace = useCallback4(async (data) => {
428
- const program = Effect.gen(function* () {
430
+ const program = Effect2.gen(function* () {
429
431
  const { space } = yield* dispatch(createIntent3(SpaceAction.Create, data));
430
432
  yield* dispatch(createIntent3(LayoutAction3.SwitchWorkspace, {
431
433
  part: "workspace",
@@ -438,7 +440,7 @@ var CreateSpaceDialog = () => {
438
440
  }
439
441
  }));
440
442
  });
441
- await Effect.runPromise(program);
443
+ await Effect2.runPromise(program);
442
444
  }, [
443
445
  dispatch
444
446
  ]);
@@ -457,7 +459,7 @@ var CreateSpaceDialog = () => {
457
459
  density: "fine",
458
460
  variant: "ghost",
459
461
  autoFocus: true
460
- }, /* @__PURE__ */ React4.createElement(Icon3, {
462
+ }, /* @__PURE__ */ React4.createElement(Icon4, {
461
463
  icon: "ph--x--regular",
462
464
  size: 4
463
465
  })))), /* @__PURE__ */ React4.createElement("div", {
@@ -478,39 +480,17 @@ var CreateSpaceDialog = () => {
478
480
  }
479
481
  };
480
482
 
481
- // src/components/CollectionMain.tsx
483
+ // src/components/CollectionSection.tsx
482
484
  import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
483
485
  import React5 from "react";
484
486
  import { useTranslation as useTranslation5 } from "@dxos/react-ui";
485
- import { baseSurface, descriptionMessage, mx as mx2 } from "@dxos/react-ui-theme";
486
- var CollectionMain = ({ collection }) => {
487
+ var CollectionSection = ({ collection }) => {
487
488
  var _effect = _useSignals5();
488
489
  try {
489
490
  const { t } = useTranslation5(SPACE_PLUGIN);
490
491
  return /* @__PURE__ */ React5.createElement("div", {
491
- role: "none",
492
- className: mx2(baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
493
- "data-testid": "composer.firstRunMessage"
494
- }, /* @__PURE__ */ React5.createElement("p", {
495
- role: "alert",
496
- className: mx2(descriptionMessage, "rounded-md p-8 font-normal text-lg max-is-[24rem] break-words")
497
- }, collection.name ?? t("unnamed collection label")));
498
- } finally {
499
- _effect.f();
500
- }
501
- };
502
-
503
- // src/components/CollectionSection.tsx
504
- import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
505
- import React6 from "react";
506
- import { useTranslation as useTranslation6 } from "@dxos/react-ui";
507
- var CollectionSection = ({ collection }) => {
508
- var _effect = _useSignals6();
509
- try {
510
- const { t } = useTranslation6(SPACE_PLUGIN);
511
- return /* @__PURE__ */ React6.createElement("div", {
512
492
  className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
513
- }, /* @__PURE__ */ React6.createElement("span", {
493
+ }, /* @__PURE__ */ React5.createElement("span", {
514
494
  className: "truncate"
515
495
  }, collection.name ?? t("unnamed collection label")));
516
496
  } finally {
@@ -519,22 +499,22 @@ var CollectionSection = ({ collection }) => {
519
499
  };
520
500
 
521
501
  // src/components/JoinDialog.tsx
522
- import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
523
- import React7, { useCallback as useCallback5 } from "react";
524
- import { createIntent as createIntent4, LayoutAction as LayoutAction4, useAppGraph, useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework";
502
+ import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
503
+ import React6, { useCallback as useCallback5 } from "react";
504
+ import { LayoutAction as LayoutAction4, createIntent as createIntent4, useAppGraph, useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework";
525
505
  import { Trigger } from "@dxos/async";
526
506
  import { ObservabilityAction } from "@dxos/plugin-observability/types";
527
507
  import { useClient as useClient3 } from "@dxos/react-client";
528
- import { Dialog as Dialog3, useTranslation as useTranslation7 } from "@dxos/react-ui";
508
+ import { Dialog as Dialog3, useTranslation as useTranslation6 } from "@dxos/react-ui";
529
509
  import { JoinPanel } from "@dxos/shell/react";
530
510
  var JOIN_DIALOG = `${SPACE_PLUGIN}/JoinDialog`;
531
511
  var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
532
- var _effect = _useSignals7();
512
+ var _effect = _useSignals6();
533
513
  try {
534
514
  const { dispatchPromise: dispatch } = useIntentDispatcher4();
535
515
  const client = useClient3();
536
516
  const { graph } = useAppGraph();
537
- const { t } = useTranslation7(SPACE_PLUGIN);
517
+ const { t } = useTranslation6(SPACE_PLUGIN);
538
518
  const handleDone = useCallback5(async (result) => {
539
519
  const spaceKey = result?.spaceKey;
540
520
  if (!spaceKey) {
@@ -615,16 +595,16 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
615
595
  client,
616
596
  graph
617
597
  ]);
618
- return /* @__PURE__ */ React7.createElement(Dialog3.Content, null, /* @__PURE__ */ React7.createElement(Dialog3.Title, {
598
+ return /* @__PURE__ */ React6.createElement(Dialog3.Content, null, /* @__PURE__ */ React6.createElement(Dialog3.Title, {
619
599
  classNames: "sr-only"
620
600
  }, t("join space label", {
621
601
  ns: "os"
622
- })), /* @__PURE__ */ React7.createElement(JoinPanel, {
602
+ })), /* @__PURE__ */ React6.createElement(JoinPanel, {
623
603
  ...props,
624
- exitActionParent: /* @__PURE__ */ React7.createElement(Dialog3.Close, {
604
+ exitActionParent: /* @__PURE__ */ React6.createElement(Dialog3.Close, {
625
605
  asChild: true
626
606
  }),
627
- doneActionParent: /* @__PURE__ */ React7.createElement(Dialog3.Close, {
607
+ doneActionParent: /* @__PURE__ */ React6.createElement(Dialog3.Close, {
628
608
  asChild: true
629
609
  }),
630
610
  onDone: handleDone
@@ -635,19 +615,17 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
635
615
  };
636
616
 
637
617
  // src/components/MembersContainer.tsx
638
- import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking";
639
- import { Check, X } from "@phosphor-icons/react";
640
- import React8, { useCallback as useCallback6, useMemo, useState as useState3 } from "react";
618
+ import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
619
+ import React7, { useCallback as useCallback6, useMemo, useState as useState3 } from "react";
641
620
  import { QR } from "react-qr-rounded";
642
621
  import { createIntent as createIntent5, useIntentDispatcher as useIntentDispatcher5 } from "@dxos/app-framework";
643
622
  import { log } from "@dxos/log";
644
623
  import { useConfig } from "@dxos/react-client";
645
624
  import { fullyQualifiedId as fullyQualifiedId2, useSpaceInvitations } from "@dxos/react-client/echo";
646
625
  import { Invitation, InvitationEncoder } from "@dxos/react-client/invitations";
647
- import { Button as Button4, Clipboard, Icon as Icon4, Input, useId, useTranslation as useTranslation8 } from "@dxos/react-ui";
648
- import { ControlPage, ControlSection, ControlFrame, ControlFrameItem, ControlItemInput } from "@dxos/react-ui-form";
626
+ import { Button as Button4, Clipboard, Icon as Icon5, Input, useId, useTranslation as useTranslation7 } from "@dxos/react-ui";
627
+ import { ControlFrame, ControlFrameItem, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
649
628
  import { StackItem } from "@dxos/react-ui-stack";
650
- import { getSize as getSize2, mx as mx3 } from "@dxos/react-ui-theme";
651
629
  import { DataType as DataType2 } from "@dxos/schema";
652
630
  import { AuthCode, BifurcatedAction, Centered, Emoji, InvitationList, SpaceMemberList, Viewport } from "@dxos/shell/react";
653
631
  import { hexToEmoji } from "@dxos/util";
@@ -661,7 +639,7 @@ var handleInvitationEvent = (invitation, subscription) => {
661
639
  authCode: invitation.authCode
662
640
  }), void 0, {
663
641
  F: __dxlog_file2,
664
- L: 41,
642
+ L: 39,
665
643
  S: void 0,
666
644
  C: (f, a) => f(...a)
667
645
  });
@@ -669,9 +647,9 @@ var handleInvitationEvent = (invitation, subscription) => {
669
647
  }
670
648
  };
671
649
  var MembersContainer = ({ space, createInvitationUrl }) => {
672
- var _effect = _useSignals8();
650
+ var _effect = _useSignals7();
673
651
  try {
674
- const { t } = useTranslation8(SPACE_PLUGIN);
652
+ const { t } = useTranslation7(SPACE_PLUGIN);
675
653
  const config = useConfig();
676
654
  const { dispatchPromise: dispatch } = useIntentDispatcher5();
677
655
  const invitations = useSpaceInvitations(space.key);
@@ -699,7 +677,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
699
677
  description: t("invite one description", {
700
678
  ns: "os"
701
679
  }),
702
- icon: () => /* @__PURE__ */ React8.createElement(Icon4, {
680
+ icon: () => /* @__PURE__ */ React7.createElement(Icon5, {
703
681
  icon: "ph--user-plus--regular",
704
682
  size: 5
705
683
  }),
@@ -724,7 +702,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
724
702
  description: t("invite many description", {
725
703
  ns: "os"
726
704
  }),
727
- icon: () => /* @__PURE__ */ React8.createElement(Icon4, {
705
+ icon: () => /* @__PURE__ */ React7.createElement(Icon5, {
728
706
  icon: "ph--users-three--regular",
729
707
  size: 5
730
708
  }),
@@ -754,44 +732,44 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
754
732
  const handleBack = () => {
755
733
  setSelectedInvitation(null);
756
734
  };
757
- return /* @__PURE__ */ React8.createElement(Clipboard.Provider, null, /* @__PURE__ */ React8.createElement(StackItem.Content, {
735
+ return /* @__PURE__ */ React7.createElement(Clipboard.Provider, null, /* @__PURE__ */ React7.createElement(StackItem.Content, {
758
736
  classNames: "block overflow-y-auto"
759
- }, /* @__PURE__ */ React8.createElement(ControlPage, null, /* @__PURE__ */ React8.createElement(ControlSection, {
737
+ }, /* @__PURE__ */ React7.createElement(ControlPage, null, /* @__PURE__ */ React7.createElement(ControlSection, {
760
738
  title: t("members verbose label"),
761
739
  description: t("members description")
762
- }, /* @__PURE__ */ React8.createElement(ControlFrame, null, /* @__PURE__ */ React8.createElement(ControlFrameItem, {
740
+ }, /* @__PURE__ */ React7.createElement(ControlFrame, null, /* @__PURE__ */ React7.createElement(ControlFrameItem, {
763
741
  title: t("members label")
764
- }, /* @__PURE__ */ React8.createElement(SpaceMemberList, {
742
+ }, /* @__PURE__ */ React7.createElement(SpaceMemberList, {
765
743
  spaceKey: space.key,
766
744
  includeSelf: true
767
- })), locked && /* @__PURE__ */ React8.createElement(ControlFrameItem, {
745
+ })), locked && /* @__PURE__ */ React7.createElement(ControlFrameItem, {
768
746
  title: t("invitations label")
769
- }, /* @__PURE__ */ React8.createElement("p", {
747
+ }, /* @__PURE__ */ React7.createElement("p", {
770
748
  className: "text-description mbe-2"
771
- }, t("locked space description"))), !locked && /* @__PURE__ */ React8.createElement(ControlFrameItem, {
749
+ }, t("locked space description"))), !locked && /* @__PURE__ */ React7.createElement(ControlFrameItem, {
772
750
  title: t("invitations label")
773
- }, selectedInvitation && /* @__PURE__ */ React8.createElement(InvitationSection, {
751
+ }, selectedInvitation && /* @__PURE__ */ React7.createElement(InvitationSection, {
774
752
  ...selectedInvitation,
775
753
  onBack: handleBack
776
- }), !selectedInvitation && /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement("p", {
754
+ }), !selectedInvitation && /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement("p", {
777
755
  className: "text-description mbe-2"
778
- }, t("space invitation description")), /* @__PURE__ */ React8.createElement(InvitationList, {
756
+ }, t("space invitation description")), /* @__PURE__ */ React7.createElement(InvitationList, {
779
757
  className: "mb-2",
780
758
  send: handleSend,
781
759
  invitations: visibleInvitations ?? [],
782
760
  onClickRemove: (invitation) => invitation.cancel(),
783
761
  createInvitationUrl
784
- }), /* @__PURE__ */ React8.createElement(BifurcatedAction, {
762
+ }), /* @__PURE__ */ React7.createElement(BifurcatedAction, {
785
763
  actions: inviteActions,
786
764
  activeAction,
787
765
  onChangeActiveAction: setActiveAction,
788
766
  "data-testid": "membersContainer.createInvitation"
789
- })))), /* @__PURE__ */ React8.createElement("div", {
767
+ })))), /* @__PURE__ */ React7.createElement("div", {
790
768
  className: "justify-center gap-4 p-0 mbs-4 container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
791
- }, /* @__PURE__ */ React8.createElement(ControlItemInput, {
769
+ }, /* @__PURE__ */ React7.createElement(ControlItemInput, {
792
770
  title: t("space locked label"),
793
771
  description: t("space locked description")
794
- }, /* @__PURE__ */ React8.createElement(Input.Switch, {
772
+ }, /* @__PURE__ */ React7.createElement(Input.Switch, {
795
773
  checked: locked,
796
774
  onCheckedChange: handleChangeLocked,
797
775
  classNames: "justify-self-end"
@@ -801,26 +779,26 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
801
779
  }
802
780
  };
803
781
  var InvitationSection = ({ state = Invitation.State.INIT, authCode, invitationId = "never", url = "never", onBack }) => {
804
- var _effect = _useSignals8();
782
+ var _effect = _useSignals7();
805
783
  try {
806
784
  const activeView = state < 0 ? "init" : state >= Invitation.State.CANCELLED ? "complete" : state >= Invitation.State.READY_FOR_AUTHENTICATION && authCode ? "auth-code" : "qr-code";
807
- return /* @__PURE__ */ React8.createElement(Viewport.Root, {
785
+ return /* @__PURE__ */ React7.createElement(Viewport.Root, {
808
786
  activeView
809
- }, /* @__PURE__ */ React8.createElement(Viewport.Views, null, /* @__PURE__ */ React8.createElement(Viewport.View, {
787
+ }, /* @__PURE__ */ React7.createElement(Viewport.Views, null, /* @__PURE__ */ React7.createElement(Viewport.View, {
810
788
  id: "init"
811
- }), /* @__PURE__ */ React8.createElement(Viewport.View, {
789
+ }), /* @__PURE__ */ React7.createElement(Viewport.View, {
812
790
  id: "complete"
813
- }, /* @__PURE__ */ React8.createElement(InvitationComplete, {
791
+ }, /* @__PURE__ */ React7.createElement(InvitationComplete, {
814
792
  statusValue: state
815
- })), /* @__PURE__ */ React8.createElement(Viewport.View, {
793
+ })), /* @__PURE__ */ React7.createElement(Viewport.View, {
816
794
  id: "auth-code"
817
- }, /* @__PURE__ */ React8.createElement(InvitationAuthCode, {
795
+ }, /* @__PURE__ */ React7.createElement(InvitationAuthCode, {
818
796
  id: invitationId,
819
797
  code: authCode ?? "never",
820
798
  onCancel: onBack
821
- })), /* @__PURE__ */ React8.createElement(Viewport.View, {
799
+ })), /* @__PURE__ */ React7.createElement(Viewport.View, {
822
800
  id: "qr-code"
823
- }, /* @__PURE__ */ React8.createElement(InvitationQR, {
801
+ }, /* @__PURE__ */ React7.createElement(InvitationQR, {
824
802
  id: invitationId,
825
803
  url,
826
804
  onCancel: onBack
@@ -830,36 +808,36 @@ var InvitationSection = ({ state = Invitation.State.INIT, authCode, invitationId
830
808
  }
831
809
  };
832
810
  var InvitationQR = ({ id, url, onCancel }) => {
833
- var _effect = _useSignals8();
811
+ var _effect = _useSignals7();
834
812
  try {
835
- const { t } = useTranslation8("os");
813
+ const { t } = useTranslation7("os");
836
814
  const qrLabel = useId("members-container__qr-code");
837
815
  const emoji = hexToEmoji(id);
838
- return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement("p", {
816
+ return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement("p", {
839
817
  className: "text-description"
840
818
  }, t("qr code description", {
841
819
  ns: SPACE_PLUGIN
842
- })), /* @__PURE__ */ React8.createElement("div", {
820
+ })), /* @__PURE__ */ React7.createElement("div", {
843
821
  role: "group",
844
822
  className: "grid grid-cols-[1fr_min-content] mlb-2 gap-2"
845
- }, /* @__PURE__ */ React8.createElement("div", {
823
+ }, /* @__PURE__ */ React7.createElement("div", {
846
824
  role: "none",
847
825
  className: "is-full aspect-square relative text-description"
848
- }, /* @__PURE__ */ React8.createElement(QR, {
826
+ }, /* @__PURE__ */ React7.createElement(QR, {
849
827
  rounding: 100,
850
828
  backgroundColor: "transparent",
851
829
  color: "currentColor",
852
830
  "aria-labelledby": qrLabel,
853
831
  errorCorrectionLevel: "Q",
854
832
  cutout: true
855
- }, url ?? "never"), /* @__PURE__ */ React8.createElement(Centered, null, /* @__PURE__ */ React8.createElement(Emoji, {
833
+ }, url ?? "never"), /* @__PURE__ */ React7.createElement(Centered, null, /* @__PURE__ */ React7.createElement(Emoji, {
856
834
  text: emoji
857
- }))), /* @__PURE__ */ React8.createElement("span", {
835
+ }))), /* @__PURE__ */ React7.createElement("span", {
858
836
  id: qrLabel,
859
837
  className: "sr-only"
860
- }, t("qr label")), /* @__PURE__ */ React8.createElement(Clipboard.Button, {
838
+ }, t("qr label")), /* @__PURE__ */ React7.createElement(Clipboard.Button, {
861
839
  value: url ?? "never"
862
- })), /* @__PURE__ */ React8.createElement(Button4, {
840
+ })), /* @__PURE__ */ React7.createElement(Button4, {
863
841
  variant: "ghost",
864
842
  onClick: onCancel
865
843
  }, t("cancel label")));
@@ -868,22 +846,22 @@ var InvitationQR = ({ id, url, onCancel }) => {
868
846
  }
869
847
  };
870
848
  var InvitationAuthCode = ({ id, code, onCancel }) => {
871
- var _effect = _useSignals8();
849
+ var _effect = _useSignals7();
872
850
  try {
873
- const { t } = useTranslation8("os");
851
+ const { t } = useTranslation7("os");
874
852
  const emoji = hexToEmoji(id);
875
- return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement("p", {
853
+ return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement("p", {
876
854
  className: "text-description"
877
- }, t("auth other device emoji message")), emoji && /* @__PURE__ */ React8.createElement(Emoji, {
855
+ }, t("auth other device emoji message")), emoji && /* @__PURE__ */ React7.createElement(Emoji, {
878
856
  text: emoji,
879
857
  className: "mli-auto mlb-2 text-center"
880
- }), /* @__PURE__ */ React8.createElement("p", {
858
+ }), /* @__PURE__ */ React7.createElement("p", {
881
859
  className: "text-description"
882
- }, t("auth code message")), /* @__PURE__ */ React8.createElement(AuthCode, {
860
+ }, t("auth code message")), /* @__PURE__ */ React7.createElement(AuthCode, {
883
861
  code,
884
862
  large: true,
885
863
  classNames: "mli-auto mlb-2 text-center grow"
886
- }), /* @__PURE__ */ React8.createElement(Button4, {
864
+ }), /* @__PURE__ */ React7.createElement(Button4, {
887
865
  variant: "ghost",
888
866
  onClick: onCancel
889
867
  }, t("cancel label")));
@@ -892,12 +870,16 @@ var InvitationAuthCode = ({ id, code, onCancel }) => {
892
870
  }
893
871
  };
894
872
  var InvitationComplete = ({ statusValue }) => {
895
- var _effect = _useSignals8();
873
+ var _effect = _useSignals7();
896
874
  try {
897
- return statusValue > 0 ? /* @__PURE__ */ React8.createElement(Check, {
898
- className: mx3("m-1.5", getSize2(6))
899
- }) : /* @__PURE__ */ React8.createElement(X, {
900
- className: mx3("m-1.5", getSize2(6))
875
+ return statusValue > 0 ? /* @__PURE__ */ React7.createElement(Icon5, {
876
+ icon: "ph--check--regular",
877
+ size: 6,
878
+ classNames: "m-1.5"
879
+ }) : /* @__PURE__ */ React7.createElement(Icon5, {
880
+ icon: "ph--x--regular",
881
+ size: 6,
882
+ classNames: "m-1.5"
901
883
  });
902
884
  } finally {
903
885
  _effect.f();
@@ -905,29 +887,29 @@ var InvitationComplete = ({ statusValue }) => {
905
887
  };
906
888
 
907
889
  // src/components/MenuFooter.tsx
908
- import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
909
- import { Planet } from "@phosphor-icons/react";
910
- import React9 from "react";
890
+ import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking";
891
+ import React8 from "react";
911
892
  import { getSpace as getSpace2 } from "@dxos/client/echo";
912
893
  import { useClient as useClient4 } from "@dxos/react-client";
913
- import { DropdownMenu, toLocalizedString as toLocalizedString2, useTranslation as useTranslation9 } from "@dxos/react-ui";
894
+ import { DropdownMenu, Icon as Icon6, toLocalizedString as toLocalizedString2, useTranslation as useTranslation8 } from "@dxos/react-ui";
914
895
  var MenuFooter = ({ object }) => {
915
- var _effect = _useSignals9();
896
+ var _effect = _useSignals8();
916
897
  try {
917
- const { t } = useTranslation9(SPACE_PLUGIN);
898
+ const { t } = useTranslation8(SPACE_PLUGIN);
918
899
  const client = useClient4();
919
900
  const space = getSpace2(object);
920
901
  const spaceName = space ? getSpaceDisplayName(space, {
921
902
  personal: client.spaces.default === space
922
903
  }) : "";
923
- return space ? /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(DropdownMenu.Separator, null), /* @__PURE__ */ React9.createElement(DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ React9.createElement("dl", {
904
+ return space ? /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(DropdownMenu.Separator, null), /* @__PURE__ */ React8.createElement(DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ React8.createElement("dl", {
924
905
  className: "pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2"
925
- }, /* @__PURE__ */ React9.createElement("dt", {
906
+ }, /* @__PURE__ */ React8.createElement("dt", {
926
907
  className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
927
- }, t("location label")), /* @__PURE__ */ React9.createElement("dd", {
908
+ }, t("location label")), /* @__PURE__ */ React8.createElement("dd", {
928
909
  className: "line-clamp-3"
929
- }, /* @__PURE__ */ React9.createElement(Planet, {
930
- className: "inline-block mie-1"
910
+ }, /* @__PURE__ */ React8.createElement(Icon6, {
911
+ icon: "ph--planet--regular",
912
+ classNames: "inline-block mie-1"
931
913
  }), toLocalizedString2(spaceName, t)))) : null;
932
914
  } finally {
933
915
  _effect.f();
@@ -935,22 +917,22 @@ var MenuFooter = ({ object }) => {
935
917
  };
936
918
 
937
919
  // src/components/ObjectSettings/ObjectSettingsContainer.tsx
938
- import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
939
- import React11, { useMemo as useMemo2 } from "react";
920
+ import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
921
+ import React10, { useMemo as useMemo2 } from "react";
940
922
  import { Surface } from "@dxos/app-framework";
941
923
  import { Clipboard as Clipboard2 } from "@dxos/react-ui";
942
924
  import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
943
925
 
944
926
  // src/components/ObjectSettings/BaseObjectSettings.tsx
945
- import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
946
- import React10, { useRef as useRef3 } from "react";
947
- import { Input as Input2, useTranslation as useTranslation10 } from "@dxos/react-ui";
927
+ import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
928
+ import React9, { useRef as useRef3 } from "react";
929
+ import { Input as Input2, useTranslation as useTranslation9 } from "@dxos/react-ui";
948
930
  var BaseObjectSettings = ({ classNames, children, object }) => {
949
- var _effect = _useSignals10();
931
+ var _effect = _useSignals9();
950
932
  try {
951
- const { t } = useTranslation10(meta.id);
933
+ const { t } = useTranslation9(meta.id);
952
934
  const inputRef = useRef3(null);
953
- return /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(Input2.Root, null, /* @__PURE__ */ React10.createElement(Input2.Label, null, t("name label")), /* @__PURE__ */ React10.createElement(Input2.TextInput, {
935
+ return /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(Input2.Root, null, /* @__PURE__ */ React9.createElement(Input2.Label, null, t("name label")), /* @__PURE__ */ React9.createElement(Input2.TextInput, {
954
936
  ref: inputRef,
955
937
  placeholder: t("name placeholder"),
956
938
  // TODO(burdon): Use annotation to get the name field.
@@ -971,24 +953,24 @@ var BaseObjectSettings = ({ classNames, children, object }) => {
971
953
 
972
954
  // src/components/ObjectSettings/ObjectSettingsContainer.tsx
973
955
  var ObjectSettingsContainer = ({ object, role }) => {
974
- var _effect = _useSignals11();
956
+ var _effect = _useSignals10();
975
957
  try {
976
958
  const data = useMemo2(() => ({
977
959
  subject: object
978
960
  }), [
979
961
  object
980
962
  ]);
981
- return /* @__PURE__ */ React11.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React11.createElement(StackItem2.Content, {
963
+ return /* @__PURE__ */ React10.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React10.createElement(StackItem2.Content, {
982
964
  toolbar: false
983
- }, /* @__PURE__ */ React11.createElement("div", {
965
+ }, /* @__PURE__ */ React10.createElement("div", {
984
966
  role: "none",
985
967
  className: "overflow-y-auto pli-cardSpacingInline plb-cardSpacingBlock"
986
- }, /* @__PURE__ */ React11.createElement(BaseObjectSettings, {
968
+ }, /* @__PURE__ */ React10.createElement(BaseObjectSettings, {
987
969
  object
988
- }, /* @__PURE__ */ React11.createElement(Surface, {
970
+ }, /* @__PURE__ */ React10.createElement(Surface, {
989
971
  role: "base-object-settings",
990
972
  data
991
- })), /* @__PURE__ */ React11.createElement(Surface, {
973
+ })), /* @__PURE__ */ React10.createElement(Surface, {
992
974
  role: "object-settings",
993
975
  data
994
976
  }))));
@@ -998,16 +980,15 @@ var ObjectSettingsContainer = ({ object, role }) => {
998
980
  };
999
981
 
1000
982
  // src/components/PersistenceStatus.tsx
1001
- import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
1002
- import { ArrowsCounterClockwise, CheckCircle as CheckCircle2, Warning } from "@phosphor-icons/react";
1003
- import React12, { useEffect as useEffect2, useState as useState4 } from "react";
983
+ import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
984
+ import React11, { useEffect as useEffect2, useState as useState4 } from "react";
1004
985
  import { debounce } from "@dxos/async";
1005
- import { Tooltip, useTranslation as useTranslation11 } from "@dxos/react-ui";
1006
- import { getSize as getSize3, mx as mx4, staticPlaceholderText, warningText } from "@dxos/react-ui-theme";
986
+ import { Icon as Icon7, Tooltip, useTranslation as useTranslation10 } from "@dxos/react-ui";
987
+ import { mx, staticPlaceholderText, warningText } from "@dxos/react-ui-theme";
1007
988
  var PersistenceStatus = ({ db }) => {
1008
- var _effect = _useSignals12();
989
+ var _effect = _useSignals11();
1009
990
  try {
1010
- const { t } = useTranslation11(SPACE_PLUGIN);
991
+ const { t } = useTranslation10(SPACE_PLUGIN);
1011
992
  const [displayMessage, setDisplayMessage] = useState4(false);
1012
993
  const [status, naturalSetStatus] = useState4(0);
1013
994
  const [prevStatus, setPrevStatus] = useState4(0);
@@ -1024,32 +1005,38 @@ var PersistenceStatus = ({ db }) => {
1024
1005
  ]);
1025
1006
  switch (status) {
1026
1007
  case 2:
1027
- return /* @__PURE__ */ React12.createElement("div", {
1008
+ return /* @__PURE__ */ React11.createElement("div", {
1028
1009
  className: "flex items-center"
1029
- }, /* @__PURE__ */ React12.createElement(Warning, {
1030
- className: mx4(getSize3(4), "me-1")
1031
- }), /* @__PURE__ */ React12.createElement("span", {
1032
- className: mx4("text-sm", warningText)
1010
+ }, /* @__PURE__ */ React11.createElement(Icon7, {
1011
+ icon: "ph--warning--regular",
1012
+ size: 4,
1013
+ classNames: "me-1"
1014
+ }), /* @__PURE__ */ React11.createElement("span", {
1015
+ className: mx("text-sm", warningText)
1033
1016
  }, t("persistence error label")));
1034
1017
  case 1:
1035
- return /* @__PURE__ */ React12.createElement("div", {
1018
+ return /* @__PURE__ */ React11.createElement("div", {
1036
1019
  className: "flex items-center"
1037
- }, /* @__PURE__ */ React12.createElement(ArrowsCounterClockwise, {
1038
- className: mx4(getSize3(4), "me-1")
1039
- }), /* @__PURE__ */ React12.createElement("span", {
1040
- className: mx4("text-sm", staticPlaceholderText)
1020
+ }, /* @__PURE__ */ React11.createElement(Icon7, {
1021
+ icon: "ph--arrows-counter-clockwise--regular",
1022
+ size: 4,
1023
+ classNames: "me-1"
1024
+ }), /* @__PURE__ */ React11.createElement("span", {
1025
+ className: mx("text-sm", staticPlaceholderText)
1041
1026
  }, t("persistence pending label")));
1042
1027
  case 0:
1043
1028
  default:
1044
- return /* @__PURE__ */ React12.createElement(Tooltip.Trigger, {
1029
+ return /* @__PURE__ */ React11.createElement(Tooltip.Trigger, {
1045
1030
  delayDuration: 400,
1046
1031
  role: "status",
1047
1032
  content: t("persisted locally message"),
1048
1033
  className: "flex items-center"
1049
- }, /* @__PURE__ */ React12.createElement(CheckCircle2, {
1050
- className: mx4(getSize3(4), "me-1")
1051
- }), displayMessage && /* @__PURE__ */ React12.createElement("span", {
1052
- className: mx4("text-sm", staticPlaceholderText)
1034
+ }, /* @__PURE__ */ React11.createElement(Icon7, {
1035
+ icon: "ph--check-circle--regular",
1036
+ size: 4,
1037
+ classNames: "me-1"
1038
+ }), displayMessage && /* @__PURE__ */ React11.createElement("span", {
1039
+ className: mx("text-sm", staticPlaceholderText)
1053
1040
  }, t("persisted locally label")));
1054
1041
  }
1055
1042
  } finally {
@@ -1058,37 +1045,33 @@ var PersistenceStatus = ({ db }) => {
1058
1045
  };
1059
1046
 
1060
1047
  // src/components/PopoverRenameObject.tsx
1061
- import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
1062
- import React13, { useCallback as useCallback7, useRef as useRef4, useState as useState5 } from "react";
1063
- import { createIntent as createIntent6, LayoutAction as LayoutAction5, useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework";
1048
+ import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
1049
+ import React12, { useCallback as useCallback7, useRef as useRef4, useState as useState5 } from "react";
1050
+ import { LayoutAction as LayoutAction5, createIntent as createIntent6, useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework";
1051
+ import { Obj as Obj2 } from "@dxos/echo";
1064
1052
  import { log as log2 } from "@dxos/log";
1065
- import { Button as Button5, Input as Input3, useTranslation as useTranslation12 } from "@dxos/react-ui";
1053
+ import { Button as Button5, Input as Input3, useTranslation as useTranslation11 } from "@dxos/react-ui";
1066
1054
  var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
1067
1055
  var POPOVER_RENAME_OBJECT = `${SPACE_PLUGIN}/PopoverRenameObject`;
1068
- var PopoverRenameObject = ({ object: obj }) => {
1069
- var _effect = _useSignals13();
1056
+ var PopoverRenameObject = ({ object }) => {
1057
+ var _effect = _useSignals12();
1070
1058
  try {
1071
- const { t } = useTranslation12(SPACE_PLUGIN);
1059
+ const { t } = useTranslation11(SPACE_PLUGIN);
1072
1060
  const doneButton = useRef4(null);
1073
- const object = obj;
1074
- const [name, setName] = useState5(object.name || object.title || "");
1061
+ const [name, setName] = useState5(Obj2.getLabel(object));
1075
1062
  const { dispatchPromise: dispatch } = useIntentDispatcher6();
1076
1063
  const handleDone = useCallback7(() => {
1077
1064
  try {
1078
- object.name = name;
1079
- } catch {
1080
- try {
1081
- object.title = name;
1082
- } catch (err) {
1083
- log2.error("Failed to rename object", {
1084
- err
1085
- }, {
1086
- F: __dxlog_file3,
1087
- L: 32,
1088
- S: void 0,
1089
- C: (f, a) => f(...a)
1090
- });
1091
- }
1065
+ name && Obj2.setLabel(object, name);
1066
+ } catch (err) {
1067
+ log2.error("Failed to rename object", {
1068
+ err
1069
+ }, {
1070
+ F: __dxlog_file3,
1071
+ L: 27,
1072
+ S: void 0,
1073
+ C: (f, a) => f(...a)
1074
+ });
1092
1075
  }
1093
1076
  void dispatch(createIntent6(LayoutAction5.UpdatePopover, {
1094
1077
  part: "popover",
@@ -1102,21 +1085,21 @@ var PopoverRenameObject = ({ object: obj }) => {
1102
1085
  object,
1103
1086
  name
1104
1087
  ]);
1105
- return /* @__PURE__ */ React13.createElement("div", {
1088
+ return /* @__PURE__ */ React12.createElement("div", {
1106
1089
  role: "none",
1107
1090
  className: "p-2 flex gap-2"
1108
- }, /* @__PURE__ */ React13.createElement("div", {
1091
+ }, /* @__PURE__ */ React12.createElement("div", {
1109
1092
  role: "none",
1110
1093
  className: "flex-1"
1111
- }, /* @__PURE__ */ React13.createElement(Input3.Root, null, /* @__PURE__ */ React13.createElement(Input3.Label, {
1094
+ }, /* @__PURE__ */ React12.createElement(Input3.Root, null, /* @__PURE__ */ React12.createElement(Input3.Label, {
1112
1095
  srOnly: true
1113
- }, t("object name label")), /* @__PURE__ */ React13.createElement(Input3.TextInput, {
1096
+ }, t("object name label")), /* @__PURE__ */ React12.createElement(Input3.TextInput, {
1114
1097
  placeholder: t("object placeholder"),
1115
1098
  value: name,
1116
1099
  "data-testid": "spacePlugin.renameObject.input",
1117
1100
  onChange: ({ target: { value } }) => setName(value),
1118
1101
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1119
- }))), /* @__PURE__ */ React13.createElement(Button5, {
1102
+ }))), /* @__PURE__ */ React12.createElement(Button5, {
1120
1103
  ref: doneButton,
1121
1104
  classNames: "self-stretch",
1122
1105
  onClick: handleDone
@@ -1129,15 +1112,15 @@ var PopoverRenameObject = ({ object: obj }) => {
1129
1112
  };
1130
1113
 
1131
1114
  // src/components/PopoverRenameSpace.tsx
1132
- import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
1133
- import React14, { useCallback as useCallback8, useRef as useRef5, useState as useState6 } from "react";
1134
- import { createIntent as createIntent7, LayoutAction as LayoutAction6, useIntentDispatcher as useIntentDispatcher7 } from "@dxos/app-framework";
1135
- import { Button as Button6, Input as Input4, Popover, useTranslation as useTranslation13 } from "@dxos/react-ui";
1115
+ import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
1116
+ import React13, { useCallback as useCallback8, useRef as useRef5, useState as useState6 } from "react";
1117
+ import { LayoutAction as LayoutAction6, createIntent as createIntent7, useIntentDispatcher as useIntentDispatcher7 } from "@dxos/app-framework";
1118
+ import { Button as Button6, Input as Input4, Popover, useTranslation as useTranslation12 } from "@dxos/react-ui";
1136
1119
  var POPOVER_RENAME_SPACE = `${SPACE_PLUGIN}/PopoverRenameSpace`;
1137
1120
  var PopoverRenameSpace = ({ space }) => {
1138
- var _effect = _useSignals14();
1121
+ var _effect = _useSignals13();
1139
1122
  try {
1140
- const { t } = useTranslation13(SPACE_PLUGIN);
1123
+ const { t } = useTranslation12(SPACE_PLUGIN);
1141
1124
  const doneButton = useRef5(null);
1142
1125
  const [name, setName] = useState6(space.properties.name ?? "");
1143
1126
  const { dispatchPromise: dispatch } = useIntentDispatcher7();
@@ -1155,24 +1138,24 @@ var PopoverRenameSpace = ({ space }) => {
1155
1138
  space,
1156
1139
  name
1157
1140
  ]);
1158
- return /* @__PURE__ */ React14.createElement("div", {
1141
+ return /* @__PURE__ */ React13.createElement("div", {
1159
1142
  role: "none",
1160
1143
  className: "p-2 flex gap-2"
1161
- }, /* @__PURE__ */ React14.createElement("div", {
1144
+ }, /* @__PURE__ */ React13.createElement("div", {
1162
1145
  role: "none",
1163
1146
  className: "flex-1"
1164
- }, /* @__PURE__ */ React14.createElement(Input4.Root, null, /* @__PURE__ */ React14.createElement(Input4.Label, {
1147
+ }, /* @__PURE__ */ React13.createElement(Input4.Root, null, /* @__PURE__ */ React13.createElement(Input4.Label, {
1165
1148
  srOnly: true
1166
- }, t("space name label")), /* @__PURE__ */ React14.createElement(Input4.TextInput, {
1149
+ }, t("space name label")), /* @__PURE__ */ React13.createElement(Input4.TextInput, {
1167
1150
  defaultValue: space.properties.name ?? "",
1168
1151
  placeholder: t("unnamed space label"),
1169
1152
  onChange: ({ target: { value } }) => setName(value),
1170
1153
  // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
1171
1154
  // Currently this is not possible because Radix does not expose the popover context.
1172
1155
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1173
- }))), /* @__PURE__ */ React14.createElement(Popover.Close, {
1156
+ }))), /* @__PURE__ */ React13.createElement(Popover.Close, {
1174
1157
  asChild: true
1175
- }, /* @__PURE__ */ React14.createElement(Button6, {
1158
+ }, /* @__PURE__ */ React13.createElement(Button6, {
1176
1159
  ref: doneButton,
1177
1160
  classNames: "self-stretch",
1178
1161
  onClick: handleDone
@@ -1185,10 +1168,10 @@ var PopoverRenameSpace = ({ space }) => {
1185
1168
  };
1186
1169
 
1187
1170
  // src/components/SchemaContainer.tsx
1188
- import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
1189
- import React15, { useState as useState7, useEffect as useEffect3 } from "react";
1190
- import { useTranslation as useTranslation14 } from "@dxos/react-ui";
1191
- import { controlItemClasses, ControlPage as ControlPage2, ControlSection as ControlSection2 } from "@dxos/react-ui-form";
1171
+ import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
1172
+ import React14, { useEffect as useEffect3, useState as useState7 } from "react";
1173
+ import { useTranslation as useTranslation13 } from "@dxos/react-ui";
1174
+ import { ControlPage as ControlPage2, ControlSection as ControlSection2, controlItemClasses } from "@dxos/react-ui-form";
1192
1175
  import { StackItem as StackItem3 } from "@dxos/react-ui-stack";
1193
1176
  var useQuerySpaceSchemas = (space) => {
1194
1177
  const [schemas, setSchemas] = useState7([]);
@@ -1204,38 +1187,38 @@ var useQuerySpaceSchemas = (space) => {
1204
1187
  return schemas;
1205
1188
  };
1206
1189
  var SchemaContainer = ({ space }) => {
1207
- var _effect = _useSignals15();
1190
+ var _effect = _useSignals14();
1208
1191
  try {
1209
- const { t } = useTranslation14(SPACE_PLUGIN);
1192
+ const { t } = useTranslation13(SPACE_PLUGIN);
1210
1193
  const schemas = useQuerySpaceSchemas(space);
1211
- return /* @__PURE__ */ React15.createElement(StackItem3.Content, {
1194
+ return /* @__PURE__ */ React14.createElement(StackItem3.Content, {
1212
1195
  classNames: "block overflow-y-auto"
1213
- }, /* @__PURE__ */ React15.createElement(ControlPage2, null, /* @__PURE__ */ React15.createElement(ControlSection2, {
1196
+ }, /* @__PURE__ */ React14.createElement(ControlPage2, null, /* @__PURE__ */ React14.createElement(ControlSection2, {
1214
1197
  title: t("schema verbose label"),
1215
1198
  description: t("schema description")
1216
- }, /* @__PURE__ */ React15.createElement("div", {
1199
+ }, /* @__PURE__ */ React14.createElement("div", {
1217
1200
  role: "none",
1218
1201
  className: controlItemClasses
1219
- }, schemas.length === 0 && /* @__PURE__ */ React15.createElement("div", {
1202
+ }, schemas.length === 0 && /* @__PURE__ */ React14.createElement("div", {
1220
1203
  className: "text-center plb-4"
1221
- }, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ React15.createElement("div", {
1204
+ }, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ React14.createElement("div", {
1222
1205
  key: schema.id
1223
- }, /* @__PURE__ */ React15.createElement("div", null, schema.typename)))))));
1206
+ }, /* @__PURE__ */ React14.createElement("div", null, schema.typename)))))));
1224
1207
  } finally {
1225
1208
  _effect.f();
1226
1209
  }
1227
1210
  };
1228
1211
 
1229
1212
  // src/components/SpacePresence.tsx
1230
- import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
1213
+ import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
1231
1214
  import { Option } from "effect";
1232
- import React16, { forwardRef, useCallback as useCallback9, useEffect as useEffect4, useState as useState8 } from "react";
1215
+ import React15, { forwardRef, useCallback as useCallback9, useEffect as useEffect4, useState as useState8 } from "react";
1233
1216
  import { useAppGraph as useAppGraph2, useCapability } from "@dxos/app-framework";
1234
1217
  import { generateName } from "@dxos/display-name";
1235
1218
  import { PublicKey, useClient as useClient5 } from "@dxos/react-client";
1236
- import { getSpace as getSpace3, useMembers, fullyQualifiedId as fullyQualifiedId3 } from "@dxos/react-client/echo";
1219
+ import { fullyQualifiedId as fullyQualifiedId3, getSpace as getSpace3, useMembers } from "@dxos/react-client/echo";
1237
1220
  import { useIdentity } from "@dxos/react-client/halo";
1238
- import { Avatar, Tooltip as Tooltip2, Popover as Popover2, useTranslation as useTranslation15, List, ListItem, useDefaultValue } from "@dxos/react-ui";
1221
+ import { Avatar, List, ListItem, Popover as Popover2, Tooltip as Tooltip2, useDefaultValue, useTranslation as useTranslation14 } from "@dxos/react-ui";
1239
1222
  import { AttentionGlyph, useAttended, useAttention } from "@dxos/react-ui-attention";
1240
1223
  import { ComplexMap, keyToFallback } from "@dxos/util";
1241
1224
  var REFRESH_INTERVAL = 5e3;
@@ -1243,7 +1226,7 @@ var ACTIVITY_DURATION = 3e4;
1243
1226
  var noViewers = new ComplexMap(PublicKey.hash);
1244
1227
  var getName = (identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());
1245
1228
  var SpacePresence = ({ object, spaceKey }) => {
1246
- var _effect = _useSignals16();
1229
+ var _effect = _useSignals15();
1247
1230
  try {
1248
1231
  const spaceState = useCapability(SpaceCapabilities.MutableState);
1249
1232
  const client = useClient5();
@@ -1273,7 +1256,7 @@ var SpacePresence = ({ object, spaceKey }) => {
1273
1256
  lastSeen
1274
1257
  };
1275
1258
  }).toSorted((a, b) => a.lastSeen - b.lastSeen);
1276
- return /* @__PURE__ */ React16.createElement(FullPresence, {
1259
+ return /* @__PURE__ */ React15.createElement(FullPresence, {
1277
1260
  members: membersForObject
1278
1261
  });
1279
1262
  } finally {
@@ -1281,46 +1264,46 @@ var SpacePresence = ({ object, spaceKey }) => {
1281
1264
  }
1282
1265
  };
1283
1266
  var FullPresence = (props) => {
1284
- var _effect = _useSignals16();
1267
+ var _effect = _useSignals15();
1285
1268
  try {
1286
1269
  const { size = 9, onMemberClick } = props;
1287
1270
  const members = useDefaultValue(props.members, () => []);
1288
1271
  if (members.length === 0) {
1289
1272
  return null;
1290
1273
  }
1291
- return /* @__PURE__ */ React16.createElement("div", {
1274
+ return /* @__PURE__ */ React15.createElement("div", {
1292
1275
  className: "dx-avatar-group",
1293
1276
  "data-testid": "spacePlugin.presence"
1294
- }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React16.createElement(Tooltip2.Trigger, {
1277
+ }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React15.createElement(Tooltip2.Trigger, {
1295
1278
  key: member.identity.identityKey.toHex(),
1296
1279
  side: "bottom",
1297
1280
  content: getName(member.identity),
1298
1281
  className: "grid focus:outline-none"
1299
- }, /* @__PURE__ */ React16.createElement(PresenceAvatar, {
1282
+ }, /* @__PURE__ */ React15.createElement(PresenceAvatar, {
1300
1283
  identity: member.identity,
1301
1284
  match: member.currentlyAttended,
1302
1285
  index: members.length - i,
1303
1286
  onClick: () => onMemberClick?.(member),
1304
1287
  size
1305
- }))), members.length > 3 && /* @__PURE__ */ React16.createElement(Popover2.Root, null, /* @__PURE__ */ React16.createElement(Popover2.Trigger, {
1288
+ }))), members.length > 3 && /* @__PURE__ */ React15.createElement(Popover2.Root, null, /* @__PURE__ */ React15.createElement(Popover2.Trigger, {
1306
1289
  className: "grid focus:outline-none"
1307
- }, /* @__PURE__ */ React16.createElement(Avatar.Root, null, /* @__PURE__ */ React16.createElement(Avatar.Content, {
1290
+ }, /* @__PURE__ */ React15.createElement(Avatar.Root, null, /* @__PURE__ */ React15.createElement(Avatar.Content, {
1308
1291
  status: "inactive",
1309
1292
  style: {
1310
1293
  zIndex: members.length - 4
1311
1294
  },
1312
1295
  fallback: `+${members.length - 3}`,
1313
1296
  size
1314
- }))), /* @__PURE__ */ React16.createElement(Popover2.Portal, null, /* @__PURE__ */ React16.createElement(Popover2.Content, {
1297
+ }))), /* @__PURE__ */ React15.createElement(Popover2.Portal, null, /* @__PURE__ */ React15.createElement(Popover2.Content, {
1315
1298
  side: "bottom"
1316
- }, /* @__PURE__ */ React16.createElement(Popover2.Arrow, null), /* @__PURE__ */ React16.createElement(Popover2.Viewport, {
1299
+ }, /* @__PURE__ */ React15.createElement(Popover2.Arrow, null), /* @__PURE__ */ React15.createElement(Popover2.Viewport, {
1317
1300
  classNames: "max-bs-56"
1318
- }, /* @__PURE__ */ React16.createElement(List, null, members.map((member) => /* @__PURE__ */ React16.createElement(ListItem.Root, {
1301
+ }, /* @__PURE__ */ React15.createElement(List, null, members.map((member) => /* @__PURE__ */ React15.createElement(ListItem.Root, {
1319
1302
  key: member.identity.identityKey.toHex(),
1320
1303
  classNames: "flex gap-2 items-center cursor-pointer mbe-2",
1321
1304
  onClick: () => onMemberClick?.(member),
1322
1305
  "data-testid": "identity-list-item"
1323
- }, /* @__PURE__ */ React16.createElement(PresenceAvatar, {
1306
+ }, /* @__PURE__ */ React15.createElement(PresenceAvatar, {
1324
1307
  identity: member.identity,
1325
1308
  size,
1326
1309
  showName: true,
@@ -1331,11 +1314,11 @@ var FullPresence = (props) => {
1331
1314
  }
1332
1315
  };
1333
1316
  var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, index, onClick, size }, forwardedRef) => {
1334
- var _effect = _useSignals16();
1317
+ var _effect = _useSignals15();
1335
1318
  try {
1336
1319
  const status = match ? "current" : "active";
1337
1320
  const fallbackValue = keyToFallback(identity.identityKey);
1338
- return /* @__PURE__ */ React16.createElement(Avatar.Root, null, /* @__PURE__ */ React16.createElement(Avatar.Content, {
1321
+ return /* @__PURE__ */ React15.createElement(Avatar.Root, null, /* @__PURE__ */ React15.createElement(Avatar.Content, {
1339
1322
  status,
1340
1323
  hue: identity.profile?.data?.hue || fallbackValue.hue,
1341
1324
  "data-testid": "spacePlugin.presence.member",
@@ -1349,7 +1332,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
1349
1332
  onClick,
1350
1333
  fallback: identity.profile?.data?.emoji || fallbackValue.emoji,
1351
1334
  ref: forwardedRef
1352
- }), /* @__PURE__ */ React16.createElement(Avatar.Label, {
1335
+ }), /* @__PURE__ */ React15.createElement(Avatar.Label, {
1353
1336
  classNames: showName ? "text-sm truncate pli-2" : "sr-only"
1354
1337
  }, getName(identity)));
1355
1338
  } finally {
@@ -1357,7 +1340,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
1357
1340
  }
1358
1341
  });
1359
1342
  var SmallPresenceLive = ({ id, open, viewers }) => {
1360
- var _effect = _useSignals16();
1343
+ var _effect = _useSignals15();
1361
1344
  try {
1362
1345
  const { hasAttention, isAncestor, isRelated } = useAttention(id);
1363
1346
  const isAttended = hasAttention || isAncestor || isRelated;
@@ -1382,7 +1365,7 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1382
1365
  }, [
1383
1366
  viewers
1384
1367
  ]);
1385
- return /* @__PURE__ */ React16.createElement(SmallPresence, {
1368
+ return /* @__PURE__ */ React15.createElement(SmallPresence, {
1386
1369
  count: activeViewers.length,
1387
1370
  attended: isAttended,
1388
1371
  containsAttended
@@ -1392,16 +1375,16 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1392
1375
  }
1393
1376
  };
1394
1377
  var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1395
- var _effect = _useSignals16();
1378
+ var _effect = _useSignals15();
1396
1379
  try {
1397
- const { t } = useTranslation15(SPACE_PLUGIN);
1398
- return /* @__PURE__ */ React16.createElement(Tooltip2.Trigger, {
1380
+ const { t } = useTranslation14(SPACE_PLUGIN);
1381
+ return /* @__PURE__ */ React15.createElement(Tooltip2.Trigger, {
1399
1382
  asChild: true,
1400
1383
  content: t("presence label", {
1401
1384
  count
1402
1385
  }),
1403
1386
  side: "bottom"
1404
- }, /* @__PURE__ */ React16.createElement(AttentionGlyph, {
1387
+ }, /* @__PURE__ */ React15.createElement(AttentionGlyph, {
1405
1388
  attended,
1406
1389
  containsAttended,
1407
1390
  presence: count > 1 ? "many" : count === 1 ? "one" : "none",
@@ -1413,45 +1396,45 @@ var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1413
1396
  };
1414
1397
 
1415
1398
  // src/components/SpacePluginSettings.tsx
1416
- import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
1417
- import React17 from "react";
1399
+ import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
1400
+ import React16 from "react";
1418
1401
  import { createIntent as createIntent8, useIntentDispatcher as useIntentDispatcher8 } from "@dxos/app-framework";
1419
1402
  import { useClient as useClient6 } from "@dxos/react-client";
1420
1403
  import { useSpaces as useSpaces2 } from "@dxos/react-client/echo";
1421
- import { Input as Input5, toLocalizedString as toLocalizedString3, useTranslation as useTranslation16, List as List2, ListItem as ListItem2, IconButton } from "@dxos/react-ui";
1422
- import { controlItemClasses as controlItemClasses2, ControlPage as ControlPage3, ControlSection as ControlSection3, DeprecatedFormInput } from "@dxos/react-ui-form";
1404
+ import { IconButton, Input as Input5, List as List2, ListItem as ListItem2, toLocalizedString as toLocalizedString3, useTranslation as useTranslation15 } from "@dxos/react-ui";
1405
+ import { ControlPage as ControlPage3, ControlSection as ControlSection3, DeprecatedFormInput, controlItemClasses as controlItemClasses2 } from "@dxos/react-ui-form";
1423
1406
  var SpacePluginSettings = ({ settings }) => {
1424
- var _effect = _useSignals17();
1407
+ var _effect = _useSignals16();
1425
1408
  try {
1426
- const { t } = useTranslation16(SPACE_PLUGIN);
1409
+ const { t } = useTranslation15(SPACE_PLUGIN);
1427
1410
  const client = useClient6();
1428
1411
  const spaces = useSpaces2({
1429
1412
  all: settings.showHidden
1430
1413
  });
1431
1414
  const { dispatchPromise: dispatch } = useIntentDispatcher8();
1432
- return /* @__PURE__ */ React17.createElement(ControlPage3, null, /* @__PURE__ */ React17.createElement(ControlSection3, {
1415
+ return /* @__PURE__ */ React16.createElement(ControlPage3, null, /* @__PURE__ */ React16.createElement(ControlSection3, {
1433
1416
  title: t("space settings label"),
1434
1417
  description: t("space settings description")
1435
- }, /* @__PURE__ */ React17.createElement("div", {
1418
+ }, /* @__PURE__ */ React16.createElement("div", {
1436
1419
  className: "pli-trimMd container-max-width"
1437
- }, /* @__PURE__ */ React17.createElement(DeprecatedFormInput, {
1420
+ }, /* @__PURE__ */ React16.createElement(DeprecatedFormInput, {
1438
1421
  label: t("show hidden spaces label")
1439
- }, /* @__PURE__ */ React17.createElement(Input5.Switch, {
1422
+ }, /* @__PURE__ */ React16.createElement(Input5.Switch, {
1440
1423
  checked: settings.showHidden,
1441
1424
  onCheckedChange: (checked) => settings.showHidden = !!checked
1442
- }))), /* @__PURE__ */ React17.createElement(List2, {
1425
+ }))), /* @__PURE__ */ React16.createElement(List2, {
1443
1426
  classNames: [
1444
1427
  controlItemClasses2,
1445
1428
  "flex flex-col gap-trimSm"
1446
1429
  ]
1447
- }, spaces.map((space) => /* @__PURE__ */ React17.createElement(ListItem2.Root, {
1430
+ }, spaces.map((space) => /* @__PURE__ */ React16.createElement(ListItem2.Root, {
1448
1431
  key: space.id,
1449
1432
  classNames: "is-full items-center"
1450
- }, /* @__PURE__ */ React17.createElement(ListItem2.Heading, {
1433
+ }, /* @__PURE__ */ React16.createElement(ListItem2.Heading, {
1451
1434
  classNames: "grow truncate !min-bs-0"
1452
1435
  }, toLocalizedString3(getSpaceDisplayName(space, {
1453
1436
  personal: space === client.spaces.default
1454
- }), t)), /* @__PURE__ */ React17.createElement(IconButton, {
1437
+ }), t)), /* @__PURE__ */ React16.createElement(IconButton, {
1455
1438
  icon: "ph--faders--regular",
1456
1439
  onClick: () => dispatch(createIntent8(SpaceAction.OpenSettings, {
1457
1440
  space
@@ -1464,16 +1447,16 @@ var SpacePluginSettings = ({ settings }) => {
1464
1447
  };
1465
1448
 
1466
1449
  // src/components/SpaceSettings/SpaceSettingsContainer.tsx
1467
- import { useSignals as _useSignals18 } from "@preact-signals/safe-react/tracking";
1468
- import { pipe as pipe2, Schema } from "effect";
1469
- import React18, { useCallback as useCallback10, useMemo as useMemo3, useState as useState9 } from "react";
1470
- import { chain as chain2, createIntent as createIntent9, LayoutAction as LayoutAction7, useIntentDispatcher as useIntentDispatcher9 } from "@dxos/app-framework";
1450
+ import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
1451
+ import { Schema, pipe as pipe2 } from "effect";
1452
+ import React17, { useCallback as useCallback10, useMemo as useMemo3, useState as useState9 } from "react";
1453
+ import { LayoutAction as LayoutAction7, chain as chain2, createIntent as createIntent9, useIntentDispatcher as useIntentDispatcher9 } from "@dxos/app-framework";
1471
1454
  import { log as log3 } from "@dxos/log";
1472
1455
  import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
1473
1456
  import { useClient as useClient7 } from "@dxos/react-client";
1474
1457
  import { SpaceState as SpaceState2 } from "@dxos/react-client/echo";
1475
- import { Button as Button7, Input as Input6, useMulticastObservable, useTranslation as useTranslation17 } from "@dxos/react-ui";
1476
- import { Form as Form3, ControlItem, ControlItemInput as ControlItemInput2, ControlSection as ControlSection4, ControlPage as ControlPage4 } from "@dxos/react-ui-form";
1458
+ import { Button as Button7, Input as Input6, useMulticastObservable, useTranslation as useTranslation16 } from "@dxos/react-ui";
1459
+ import { ControlItem, ControlItemInput as ControlItemInput2, ControlPage as ControlPage4, ControlSection as ControlSection4, Form as Form3 } from "@dxos/react-ui-form";
1477
1460
  import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
1478
1461
  import { StackItem as StackItem4 } from "@dxos/react-ui-stack";
1479
1462
  var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsContainer.tsx";
@@ -1483,9 +1466,9 @@ var FormSchema = SpaceForm.pipe(Schema.extend(Schema.Struct({
1483
1466
  })
1484
1467
  })));
1485
1468
  var SpaceSettingsContainer = ({ space }) => {
1486
- var _effect = _useSignals18();
1469
+ var _effect = _useSignals17();
1487
1470
  try {
1488
- const { t } = useTranslation17(SPACE_PLUGIN);
1471
+ const { t } = useTranslation16(SPACE_PLUGIN);
1489
1472
  const { dispatchPromise: dispatch } = useIntentDispatcher9();
1490
1473
  const client = useClient7();
1491
1474
  const archived = useMulticastObservable(space.state) === SpaceState2.SPACE_INACTIVE;
@@ -1551,10 +1534,10 @@ var SpaceSettingsContainer = ({ space }) => {
1551
1534
  onValueChange,
1552
1535
  type
1553
1536
  ]);
1554
- return /* @__PURE__ */ React18.createElement(ControlItemInput2, {
1537
+ return /* @__PURE__ */ React17.createElement(ControlItemInput2, {
1555
1538
  title: label,
1556
1539
  description: t("display name description")
1557
- }, /* @__PURE__ */ React18.createElement(Input6.TextInput, {
1540
+ }, /* @__PURE__ */ React17.createElement(Input6.TextInput, {
1558
1541
  value: getValue(),
1559
1542
  onChange: handleChange,
1560
1543
  placeholder: t("display name input placeholder"),
@@ -1570,10 +1553,10 @@ var SpaceSettingsContainer = ({ space }) => {
1570
1553
  onValueChange,
1571
1554
  type
1572
1555
  ]);
1573
- return /* @__PURE__ */ React18.createElement(ControlItem, {
1556
+ return /* @__PURE__ */ React17.createElement(ControlItem, {
1574
1557
  title: label,
1575
1558
  description: t("icon description")
1576
- }, /* @__PURE__ */ React18.createElement(IconPicker, {
1559
+ }, /* @__PURE__ */ React17.createElement(IconPicker, {
1577
1560
  value: getValue(),
1578
1561
  onChange: handleChange,
1579
1562
  onReset: handleEmojiReset,
@@ -1590,10 +1573,10 @@ var SpaceSettingsContainer = ({ space }) => {
1590
1573
  onValueChange,
1591
1574
  type
1592
1575
  ]);
1593
- return /* @__PURE__ */ React18.createElement(ControlItem, {
1576
+ return /* @__PURE__ */ React17.createElement(ControlItem, {
1594
1577
  title: label,
1595
1578
  description: t("hue description")
1596
- }, /* @__PURE__ */ React18.createElement(HuePicker, {
1579
+ }, /* @__PURE__ */ React17.createElement(HuePicker, {
1597
1580
  value: getValue(),
1598
1581
  onChange: handleChange,
1599
1582
  onReset: handleHueReset,
@@ -1605,10 +1588,10 @@ var SpaceSettingsContainer = ({ space }) => {
1605
1588
  onValueChange,
1606
1589
  type
1607
1590
  ]);
1608
- return /* @__PURE__ */ React18.createElement(ControlItemInput2, {
1591
+ return /* @__PURE__ */ React17.createElement(ControlItemInput2, {
1609
1592
  title: label,
1610
1593
  description: t("edge replication description")
1611
- }, /* @__PURE__ */ React18.createElement(Input6.Switch, {
1594
+ }, /* @__PURE__ */ React17.createElement(Input6.Switch, {
1612
1595
  checked: getValue(),
1613
1596
  onCheckedChange: handleChange,
1614
1597
  classNames: "justify-self-end"
@@ -1620,10 +1603,10 @@ var SpaceSettingsContainer = ({ space }) => {
1620
1603
  type,
1621
1604
  getValue
1622
1605
  ]);
1623
- return /* @__PURE__ */ React18.createElement(ControlItemInput2, {
1606
+ return /* @__PURE__ */ React17.createElement(ControlItemInput2, {
1624
1607
  title: label,
1625
1608
  description: t("archive space description")
1626
- }, /* @__PURE__ */ React18.createElement(Button7, {
1609
+ }, /* @__PURE__ */ React17.createElement(Button7, {
1627
1610
  disabled: space === client.spaces.default,
1628
1611
  onClick: handleChange
1629
1612
  }, getValue() ? t("unarchive space label") : t("archive space label")));
@@ -1632,16 +1615,16 @@ var SpaceSettingsContainer = ({ space }) => {
1632
1615
  t,
1633
1616
  space
1634
1617
  ]);
1635
- return /* @__PURE__ */ React18.createElement(StackItem4.Content, {
1618
+ return /* @__PURE__ */ React17.createElement(StackItem4.Content, {
1636
1619
  classNames: "block overflow-y-auto pli-2"
1637
- }, /* @__PURE__ */ React18.createElement(ControlPage4, null, /* @__PURE__ */ React18.createElement(ControlSection4, {
1620
+ }, /* @__PURE__ */ React17.createElement(ControlPage4, null, /* @__PURE__ */ React17.createElement(ControlSection4, {
1638
1621
  title: t("space properties settings verbose label", {
1639
1622
  ns: SPACE_PLUGIN
1640
1623
  }),
1641
1624
  description: t("space properties settings description", {
1642
1625
  ns: SPACE_PLUGIN
1643
1626
  })
1644
- }, /* @__PURE__ */ React18.createElement(Form3, {
1627
+ }, /* @__PURE__ */ React17.createElement(Form3, {
1645
1628
  schema: FormSchema,
1646
1629
  values,
1647
1630
  autoSave: true,
@@ -1656,15 +1639,15 @@ var SpaceSettingsContainer = ({ space }) => {
1656
1639
  };
1657
1640
 
1658
1641
  // src/components/SyncStatus/InlineSyncStatus.tsx
1659
- import { useSignals as _useSignals19 } from "@preact-signals/safe-react/tracking";
1642
+ import { useSignals as _useSignals18 } from "@preact-signals/safe-react/tracking";
1660
1643
  import { Option as Option2 } from "effect";
1661
- import React19, { useEffect as useEffect5, useState as useState10 } from "react";
1644
+ import React18, { useEffect as useEffect5, useState as useState10 } from "react";
1662
1645
  import { useAppGraph as useAppGraph3 } from "@dxos/app-framework";
1663
1646
  import { EdgeStatus } from "@dxos/protocols/proto/dxos/client/services";
1664
1647
  import { EdgeReplicationSetting as EdgeReplicationSetting2 } from "@dxos/protocols/proto/dxos/echo/metadata";
1665
1648
  import { useClient as useClient8 } from "@dxos/react-client";
1666
1649
  import { useSpaceSyncState } from "@dxos/react-client/echo";
1667
- import { Tooltip as Tooltip3, useTranslation as useTranslation18 } from "@dxos/react-ui";
1650
+ import { Tooltip as Tooltip3, useTranslation as useTranslation17 } from "@dxos/react-ui";
1668
1651
  import { AttentionGlyph as AttentionGlyph2, useAttended as useAttended2, useAttention as useAttention2 } from "@dxos/react-ui-attention";
1669
1652
  var useEdgeStatus = () => {
1670
1653
  const [status, setStatus] = useState10(EdgeStatus.NOT_CONNECTED);
@@ -1679,9 +1662,9 @@ var useEdgeStatus = () => {
1679
1662
  return status;
1680
1663
  };
1681
1664
  var InlineSyncStatus = ({ space, open }) => {
1682
- var _effect = _useSignals19();
1665
+ var _effect = _useSignals18();
1683
1666
  try {
1684
- const { t } = useTranslation18(SPACE_PLUGIN);
1667
+ const { t } = useTranslation17(SPACE_PLUGIN);
1685
1668
  const id = space.id;
1686
1669
  const { hasAttention, isAncestor, isRelated } = useAttention2(id);
1687
1670
  const isAttended = hasAttention || isAncestor || isRelated;
@@ -1694,11 +1677,11 @@ var InlineSyncStatus = ({ space, open }) => {
1694
1677
  const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting2.ENABLED;
1695
1678
  const syncState = useSpaceSyncState(space);
1696
1679
  const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
1697
- return /* @__PURE__ */ React19.createElement(Tooltip3.Trigger, {
1680
+ return /* @__PURE__ */ React18.createElement(Tooltip3.Trigger, {
1698
1681
  asChild: true,
1699
1682
  content: t("syncing label"),
1700
1683
  side: "bottom"
1701
- }, /* @__PURE__ */ React19.createElement(AttentionGlyph2, {
1684
+ }, /* @__PURE__ */ React18.createElement(AttentionGlyph2, {
1702
1685
  syncing,
1703
1686
  attended: isAttended,
1704
1687
  containsAttended,
@@ -1710,12 +1693,12 @@ var InlineSyncStatus = ({ space, open }) => {
1710
1693
  };
1711
1694
 
1712
1695
  // src/components/SyncStatus/SyncStatus.tsx
1713
- import { useSignals as _useSignals20 } from "@preact-signals/safe-react/tracking";
1714
- import React20, { useEffect as useEffect6, useState as useState11 } from "react";
1696
+ import { useSignals as _useSignals19 } from "@preact-signals/safe-react/tracking";
1697
+ import React19, { useEffect as useEffect6, useState as useState11 } from "react";
1715
1698
  import { StatusBar } from "@dxos/plugin-status-bar";
1716
1699
  import { useClient as useClient9 } from "@dxos/react-client";
1717
1700
  import { getSyncSummary, useSyncState } from "@dxos/react-client/echo";
1718
- import { Icon as Icon5, useTranslation as useTranslation19 } from "@dxos/react-ui";
1701
+ import { Icon as Icon8, useTranslation as useTranslation18 } from "@dxos/react-ui";
1719
1702
 
1720
1703
  // src/components/SyncStatus/save-tracker.ts
1721
1704
  import { Context } from "@dxos/context";
@@ -1811,7 +1794,7 @@ var getIcon = (status) => {
1811
1794
  // src/components/SyncStatus/SyncStatus.tsx
1812
1795
  var SYNC_STALLED_TIMEOUT = 5e3;
1813
1796
  var SyncStatus = () => {
1814
- var _effect = _useSignals20();
1797
+ var _effect = _useSignals19();
1815
1798
  try {
1816
1799
  const client = useClient9();
1817
1800
  const state = useSyncState();
@@ -1821,7 +1804,7 @@ var SyncStatus = () => {
1821
1804
  setSaved(state2 === "saved");
1822
1805
  });
1823
1806
  }, []);
1824
- return /* @__PURE__ */ React20.createElement(SyncStatusIndicator, {
1807
+ return /* @__PURE__ */ React19.createElement(SyncStatusIndicator, {
1825
1808
  state,
1826
1809
  saved
1827
1810
  });
@@ -1830,9 +1813,9 @@ var SyncStatus = () => {
1830
1813
  }
1831
1814
  };
1832
1815
  var SyncStatusIndicator = ({ state, saved }) => {
1833
- var _effect = _useSignals20();
1816
+ var _effect = _useSignals19();
1834
1817
  try {
1835
- const { t } = useTranslation19(SPACE_PLUGIN);
1818
+ const { t } = useTranslation18(SPACE_PLUGIN);
1836
1819
  const summary = getSyncSummary(state);
1837
1820
  const offline = Object.values(state).length === 0;
1838
1821
  const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
@@ -1859,12 +1842,12 @@ var SyncStatusIndicator = ({ state, saved }) => {
1859
1842
  needsToDownload
1860
1843
  ]);
1861
1844
  const title = t(`${status} label`);
1862
- const icon = /* @__PURE__ */ React20.createElement(Icon5, {
1845
+ const icon = /* @__PURE__ */ React19.createElement(Icon8, {
1863
1846
  icon: getIcon(status),
1864
1847
  size: 4,
1865
1848
  classNames
1866
1849
  });
1867
- return /* @__PURE__ */ React20.createElement(StatusBar.Item, {
1850
+ return /* @__PURE__ */ React19.createElement(StatusBar.Item, {
1868
1851
  title
1869
1852
  }, icon);
1870
1853
  } finally {
@@ -1872,13 +1855,93 @@ var SyncStatusIndicator = ({ state, saved }) => {
1872
1855
  }
1873
1856
  };
1874
1857
 
1858
+ // src/components/ViewEditor.tsx
1859
+ import { useSignals as _useSignals20 } from "@preact-signals/safe-react/tracking";
1860
+ import React20, { useCallback as useCallback11, useMemo as useMemo4 } from "react";
1861
+ import { createIntent as createIntent10, useIntentDispatcher as useIntentDispatcher10 } from "@dxos/app-framework";
1862
+ import { Type as Type3 } from "@dxos/echo";
1863
+ import { invariant as invariant2 } from "@dxos/invariant";
1864
+ import { useClient as useClient10 } from "@dxos/react-client";
1865
+ import { Filter as Filter2, getSpace as getSpace4, useQuery as useQuery3, useSchema } from "@dxos/react-client/echo";
1866
+ import { ViewEditor as NativeViewEditor } from "@dxos/react-ui-form";
1867
+ import { DataType as DataType3 } from "@dxos/schema";
1868
+ var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ViewEditor.tsx";
1869
+ var ViewEditor = ({ view }) => {
1870
+ var _effect = _useSignals20();
1871
+ try {
1872
+ const { dispatchPromise: dispatch } = useIntentDispatcher10();
1873
+ const client = useClient10();
1874
+ const space = getSpace4(view);
1875
+ const schema = useSchema(client, space, view.query.typename);
1876
+ const views = useQuery3(space, Filter2.type(DataType3.View));
1877
+ const currentTypename = useMemo4(() => view.query?.typename, [
1878
+ view.query?.typename
1879
+ ]);
1880
+ const handleUpdateTypename = useCallback11((typename) => {
1881
+ invariant2(schema, void 0, {
1882
+ F: __dxlog_file6,
1883
+ L: 30,
1884
+ S: void 0,
1885
+ A: [
1886
+ "schema",
1887
+ ""
1888
+ ]
1889
+ });
1890
+ invariant2(Type3.isMutable(schema), void 0, {
1891
+ F: __dxlog_file6,
1892
+ L: 31,
1893
+ S: void 0,
1894
+ A: [
1895
+ "Type.isMutable(schema)",
1896
+ ""
1897
+ ]
1898
+ });
1899
+ const matchingViews = views.filter((view2) => view2.query.typename === currentTypename);
1900
+ for (const view2 of matchingViews) {
1901
+ view2.query.typename = typename;
1902
+ }
1903
+ schema.updateTypename(typename);
1904
+ }, [
1905
+ views,
1906
+ schema
1907
+ ]);
1908
+ const handleDelete = useCallback11((fieldId) => {
1909
+ void dispatch(createIntent10(SpaceAction.DeleteField, {
1910
+ view,
1911
+ fieldId
1912
+ }));
1913
+ }, [
1914
+ dispatch,
1915
+ view
1916
+ ]);
1917
+ if (!space || !schema) {
1918
+ return null;
1919
+ }
1920
+ return /* @__PURE__ */ React20.createElement(NativeViewEditor, {
1921
+ registry: space.db.schemaRegistry,
1922
+ schema,
1923
+ view,
1924
+ onTypenameChanged: Type3.isMutable(schema) ? handleUpdateTypename : void 0,
1925
+ onDelete: Type3.isMutable(schema) ? handleDelete : void 0,
1926
+ outerSpacing: false
1927
+ });
1928
+ } finally {
1929
+ _effect.f();
1930
+ }
1931
+ };
1932
+
1933
+ // src/components/index.ts
1934
+ import { lazy as lazy2 } from "react";
1935
+ var CollectionMain = lazy2(() => import("./CollectionMain-ZJIFCWKZ.mjs"));
1936
+ var ObjectDetailsPanel = lazy2(() => import("./ObjectDetailsPanel-3MYLTMXN.mjs"));
1937
+ var RecordMain = lazy2(() => import("./RecordMain-WLYJMYER.mjs"));
1938
+
1875
1939
  export {
1876
1940
  AwaitingObject,
1877
1941
  CREATE_OBJECT_DIALOG,
1878
1942
  CreateObjectDialog,
1879
1943
  CREATE_SPACE_DIALOG,
1880
1944
  CreateSpaceDialog,
1881
- CollectionMain,
1882
1945
  CollectionSection,
1883
1946
  JOIN_DIALOG,
1884
1947
  JoinDialog,
@@ -1901,6 +1964,10 @@ export {
1901
1964
  InlineSyncStatus,
1902
1965
  SyncStatus,
1903
1966
  SyncStatusIndicator,
1967
+ ViewEditor,
1968
+ CollectionMain,
1969
+ ObjectDetailsPanel,
1970
+ RecordMain,
1904
1971
  AppGraphBuilder,
1905
1972
  AppGraphSerializer,
1906
1973
  IdentityCreated,
@@ -1913,4 +1980,4 @@ export {
1913
1980
  SpaceState,
1914
1981
  SpacesReady
1915
1982
  };
1916
- //# sourceMappingURL=chunk-OUBADVJE.mjs.map
1983
+ //# sourceMappingURL=chunk-KYUHPPRN.mjs.map