@dxos/plugin-space 0.8.4-main.406dc2a → 0.8.4-main.548089c

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 (293) hide show
  1. package/dist/lib/browser/{CollectionMain-AX7KKXWP.mjs → CollectionArticle-ABGFK4VO.mjs} +8 -8
  2. package/dist/lib/browser/CollectionArticle-ABGFK4VO.mjs.map +7 -0
  3. package/dist/lib/browser/{ObjectDetailsPanel-MQBHG666.mjs → ObjectDetailsPanel-2BRUBHP6.mjs} +16 -20
  4. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs.map +7 -0
  5. package/dist/lib/browser/{ObjectSettings-KNUZFCGS.mjs → ObjectSettings-5LLWCVEK.mjs} +33 -40
  6. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-G4BCSFFA.mjs +116 -0
  8. package/dist/lib/browser/RecordArticle-G4BCSFFA.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-3R5GGT46.mjs → app-graph-builder-FFPJHWFB.mjs} +53 -45
  10. package/dist/lib/browser/app-graph-builder-FFPJHWFB.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-25Z5BG22.mjs → app-graph-serializer-QMWE2YE4.mjs} +10 -10
  12. package/dist/lib/browser/app-graph-serializer-QMWE2YE4.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-OV6D543A.mjs → chunk-I4W2BHA2.mjs} +36 -30
  14. package/dist/lib/browser/chunk-I4W2BHA2.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-RLI2IAHK.mjs → chunk-K5J7ZB5P.mjs} +2 -2
  16. package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-7XOTWRZ3.mjs → chunk-K6TOP4E6.mjs} +19 -18
  18. package/dist/lib/browser/chunk-K6TOP4E6.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-WS2PJDES.mjs → chunk-M2Z6D4ZI.mjs} +12 -11
  20. package/dist/lib/browser/chunk-M2Z6D4ZI.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-522KZGQF.mjs → chunk-MHXNG2X2.mjs} +487 -381
  22. package/dist/lib/browser/chunk-MHXNG2X2.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-PTGRQQ6J.mjs → chunk-OLBBSOVI.mjs} +23 -13
  24. package/dist/lib/browser/chunk-OLBBSOVI.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
  26. package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-EIXZABXD.mjs → chunk-WJXU4GKV.mjs} +2 -2
  28. package/dist/lib/browser/{identity-created-PW2BA46S.mjs → identity-created-NAXTPQXE.mjs} +3 -3
  29. package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
  30. package/dist/lib/browser/index.mjs +63 -46
  31. package/dist/lib/browser/index.mjs.map +3 -3
  32. package/dist/lib/browser/{intent-resolver-ICGUSVH6.mjs → intent-resolver-WLFWCHDH.mjs} +53 -58
  33. package/dist/lib/browser/intent-resolver-WLFWCHDH.mjs.map +7 -0
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/{react-root-H56QN474.mjs → react-root-BPPTUFLV.mjs} +9 -8
  36. package/dist/lib/browser/react-root-BPPTUFLV.mjs.map +7 -0
  37. package/dist/lib/browser/{react-surface-VOE2ILKO.mjs → react-surface-3KTOA5PM.mjs} +37 -40
  38. package/dist/lib/browser/react-surface-3KTOA5PM.mjs.map +7 -0
  39. package/dist/lib/browser/{schema-defs-7R7RKCAE.mjs → schema-defs-XCNOO2WT.mjs} +3 -3
  40. package/dist/lib/browser/{settings-OBFJ67ZG.mjs → settings-WKLGKUHQ.mjs} +3 -3
  41. package/dist/lib/browser/{spaces-ready-MFIVK6I6.mjs → spaces-ready-XVW7I5MQ.mjs} +12 -11
  42. package/dist/lib/browser/spaces-ready-XVW7I5MQ.mjs.map +7 -0
  43. package/dist/lib/browser/{state-LSPRFIRO.mjs → state-Q7YRE5KG.mjs} +3 -3
  44. package/dist/lib/browser/types/index.mjs +2 -2
  45. package/dist/lib/node-esm/{CollectionMain-EU57SRYK.mjs → CollectionArticle-G3V4QXPI.mjs} +8 -8
  46. package/dist/lib/node-esm/CollectionArticle-G3V4QXPI.mjs.map +7 -0
  47. package/dist/lib/node-esm/{ObjectDetailsPanel-NABA2S56.mjs → ObjectDetailsPanel-6PZQIQG3.mjs} +16 -20
  48. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs.map +7 -0
  49. package/dist/lib/node-esm/{ObjectSettings-GXGTITF5.mjs → ObjectSettings-OQSBOH7K.mjs} +33 -40
  50. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs.map +7 -0
  51. package/dist/lib/node-esm/RecordArticle-PBMLYY5K.mjs +117 -0
  52. package/dist/lib/node-esm/RecordArticle-PBMLYY5K.mjs.map +7 -0
  53. package/dist/lib/node-esm/{app-graph-builder-VGRMD5TP.mjs → app-graph-builder-3BTVV7LE.mjs} +53 -45
  54. package/dist/lib/node-esm/app-graph-builder-3BTVV7LE.mjs.map +7 -0
  55. package/dist/lib/node-esm/{app-graph-serializer-U4GHXWRG.mjs → app-graph-serializer-BU7KO2G5.mjs} +10 -10
  56. package/dist/lib/node-esm/app-graph-serializer-BU7KO2G5.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-4F25JKVT.mjs → chunk-2PN7QNGV.mjs} +12 -11
  58. package/dist/lib/node-esm/chunk-2PN7QNGV.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
  60. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-PAAWJ4RE.mjs → chunk-FAWIRIP4.mjs} +19 -18
  62. package/dist/lib/node-esm/chunk-FAWIRIP4.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs → chunk-H4JILUJK.mjs} +2 -2
  64. package/dist/lib/node-esm/{chunk-TNUWML33.mjs → chunk-HQMFTMJE.mjs} +36 -30
  65. package/dist/lib/node-esm/chunk-HQMFTMJE.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-DG5YEEPZ.mjs → chunk-MI4A5XUX.mjs} +487 -381
  67. package/dist/lib/node-esm/chunk-MI4A5XUX.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-HAKW2RFD.mjs → chunk-WC4VBFMA.mjs} +23 -13
  69. package/dist/lib/node-esm/chunk-WC4VBFMA.mjs.map +7 -0
  70. package/dist/lib/node-esm/{chunk-H5UPFRRH.mjs → chunk-Z7BB6HC2.mjs} +2 -2
  71. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +7 -0
  72. package/dist/lib/node-esm/{identity-created-MWTLGQRU.mjs → identity-created-OXLKCJE3.mjs} +3 -3
  73. package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
  74. package/dist/lib/node-esm/index.mjs +63 -46
  75. package/dist/lib/node-esm/index.mjs.map +3 -3
  76. package/dist/lib/node-esm/{intent-resolver-KVB2A4YC.mjs → intent-resolver-QHH5SXLC.mjs} +53 -58
  77. package/dist/lib/node-esm/intent-resolver-QHH5SXLC.mjs.map +7 -0
  78. package/dist/lib/node-esm/meta.json +1 -1
  79. package/dist/lib/node-esm/{react-root-56PGW5PH.mjs → react-root-QRONKFKI.mjs} +9 -8
  80. package/dist/lib/node-esm/react-root-QRONKFKI.mjs.map +7 -0
  81. package/dist/lib/node-esm/{react-surface-NYEQ23A4.mjs → react-surface-OZBWNTW2.mjs} +37 -40
  82. package/dist/lib/node-esm/react-surface-OZBWNTW2.mjs.map +7 -0
  83. package/dist/lib/node-esm/{schema-defs-RYG5DSUE.mjs → schema-defs-5TDB7T5J.mjs} +3 -3
  84. package/dist/lib/node-esm/{settings-QGWWNMMZ.mjs → settings-RBB5633M.mjs} +3 -3
  85. package/dist/lib/node-esm/{spaces-ready-TC27M7MP.mjs → spaces-ready-J6RWPI2X.mjs} +12 -11
  86. package/dist/lib/node-esm/spaces-ready-J6RWPI2X.mjs.map +7 -0
  87. package/dist/lib/node-esm/{state-TCGOPLRO.mjs → state-362I5BMK.mjs} +3 -3
  88. package/dist/lib/node-esm/types/index.mjs +2 -2
  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 +2 -2
  92. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  97. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  98. package/dist/types/src/components/CollectionArticle.d.ts +6 -0
  99. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  100. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  101. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  102. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  103. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +91 -1
  104. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  105. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +2 -2
  106. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  107. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  108. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  109. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  110. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  111. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  112. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1697 -0
  113. package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
  114. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  115. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  116. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +2 -2
  117. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -1
  118. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -1
  119. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  120. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  121. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  122. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  123. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +1 -1
  124. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  125. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +91 -1
  126. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -1
  127. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  128. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  129. package/dist/types/src/components/{MembersContainer.stories.d.ts → RecordArticle.stories.d.ts} +92 -2
  130. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  131. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  132. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  133. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  134. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +4 -3
  135. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  136. package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +91 -1
  137. package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
  138. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  139. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  140. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  141. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  142. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  143. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  144. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  145. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +91 -1
  146. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  147. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  148. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +92 -2
  149. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  150. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  151. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  152. package/dist/types/src/components/index.d.ts +9 -16
  153. package/dist/types/src/components/index.d.ts.map +1 -1
  154. package/dist/types/src/helpers/index.d.ts +2 -0
  155. package/dist/types/src/helpers/index.d.ts.map +1 -0
  156. package/dist/types/src/helpers/query.d.ts +8 -0
  157. package/dist/types/src/helpers/query.d.ts.map +1 -0
  158. package/dist/types/src/helpers/query.test.d.ts +2 -0
  159. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  160. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  161. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  162. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -1
  163. package/dist/types/src/index.d.ts +1 -0
  164. package/dist/types/src/index.d.ts.map +1 -1
  165. package/dist/types/src/meta.d.ts.map +1 -1
  166. package/dist/types/src/translations.d.ts +91 -1
  167. package/dist/types/src/translations.d.ts.map +1 -1
  168. package/dist/types/src/types/types.d.ts +2 -2
  169. package/dist/types/src/types/types.d.ts.map +1 -1
  170. package/dist/types/src/util.d.ts +6 -4
  171. package/dist/types/src/util.d.ts.map +1 -1
  172. package/dist/types/tsconfig.tsbuildinfo +1 -1
  173. package/package.json +53 -51
  174. package/src/SpacePlugin.ts +49 -25
  175. package/src/capabilities/app-graph-builder.ts +86 -60
  176. package/src/capabilities/app-graph-serializer.ts +5 -5
  177. package/src/capabilities/capabilities.ts +2 -2
  178. package/src/capabilities/identity-created.ts +2 -2
  179. package/src/capabilities/intent-resolver.ts +46 -41
  180. package/src/capabilities/react-root.tsx +2 -1
  181. package/src/capabilities/react-surface.tsx +35 -40
  182. package/src/capabilities/spaces-ready.ts +7 -4
  183. package/src/components/AwaitingObject.tsx +11 -13
  184. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +5 -4
  185. package/src/components/CollectionSection.tsx +6 -4
  186. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +6 -6
  187. package/src/components/CreateDialog/CreateObjectDialog.tsx +29 -22
  188. package/src/components/CreateDialog/CreateObjectPanel.tsx +2 -2
  189. package/src/components/CreateDialog/CreateSpaceDialog.tsx +25 -7
  190. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +21 -5
  191. package/src/components/JoinDialog/index.ts +5 -0
  192. package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +1 -1
  193. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +11 -9
  194. package/src/components/MembersContainer/index.ts +5 -0
  195. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +2 -3
  196. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +9 -12
  197. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +5 -5
  198. package/src/components/ObjectRenamePopover/index.ts +5 -0
  199. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +6 -6
  200. package/src/components/ObjectSettings/BaseObjectSettings.tsx +34 -40
  201. package/src/components/ObjectSettings/ForeignKeys.tsx +1 -1
  202. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +1 -1
  203. package/src/components/RecordArticle.stories.tsx +115 -0
  204. package/src/components/RecordArticle.tsx +114 -0
  205. package/src/components/SchemaContainer.tsx +21 -24
  206. package/src/components/SpacePluginSettings.tsx +8 -2
  207. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +1 -1
  208. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +14 -9
  209. package/src/components/SpacePresence/index.ts +5 -0
  210. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +6 -5
  211. package/src/components/SpaceRenamePopover/index.ts +5 -0
  212. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +33 -13
  213. package/src/components/SyncStatus/InlineSyncStatus.tsx +1 -1
  214. package/src/components/SyncStatus/SyncStatus.stories.tsx +3 -2
  215. package/src/components/SyncStatus/SyncStatus.tsx +45 -36
  216. package/src/components/ViewEditor.tsx +51 -17
  217. package/src/components/index.ts +6 -7
  218. package/src/helpers/index.ts +5 -0
  219. package/src/helpers/query.test.ts +24 -0
  220. package/src/helpers/query.ts +158 -0
  221. package/src/hooks/useActiveSpace.ts +2 -1
  222. package/src/hooks/useInputSurfaceLookup.tsx +7 -2
  223. package/src/hooks/useTypeOptions.ts +3 -3
  224. package/src/index.ts +1 -0
  225. package/src/meta.ts +5 -0
  226. package/src/translations.ts +22 -10
  227. package/src/types/types.ts +11 -10
  228. package/src/util.tsx +44 -36
  229. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +0 -7
  230. package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs.map +0 -7
  231. package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs.map +0 -7
  232. package/dist/lib/browser/RecordMain-H4DVHICS.mjs +0 -116
  233. package/dist/lib/browser/RecordMain-H4DVHICS.mjs.map +0 -7
  234. package/dist/lib/browser/app-graph-builder-3R5GGT46.mjs.map +0 -7
  235. package/dist/lib/browser/app-graph-serializer-25Z5BG22.mjs.map +0 -7
  236. package/dist/lib/browser/chunk-522KZGQF.mjs.map +0 -7
  237. package/dist/lib/browser/chunk-7XOTWRZ3.mjs.map +0 -7
  238. package/dist/lib/browser/chunk-IRKDREHY.mjs +0 -11
  239. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +0 -7
  240. package/dist/lib/browser/chunk-OV6D543A.mjs.map +0 -7
  241. package/dist/lib/browser/chunk-PTGRQQ6J.mjs.map +0 -7
  242. package/dist/lib/browser/chunk-RLI2IAHK.mjs.map +0 -7
  243. package/dist/lib/browser/chunk-WS2PJDES.mjs.map +0 -7
  244. package/dist/lib/browser/identity-created-PW2BA46S.mjs.map +0 -7
  245. package/dist/lib/browser/intent-resolver-ICGUSVH6.mjs.map +0 -7
  246. package/dist/lib/browser/react-root-H56QN474.mjs.map +0 -7
  247. package/dist/lib/browser/react-surface-VOE2ILKO.mjs.map +0 -7
  248. package/dist/lib/browser/spaces-ready-MFIVK6I6.mjs.map +0 -7
  249. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +0 -7
  250. package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs.map +0 -7
  251. package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs.map +0 -7
  252. package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs +0 -117
  253. package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs.map +0 -7
  254. package/dist/lib/node-esm/app-graph-builder-VGRMD5TP.mjs.map +0 -7
  255. package/dist/lib/node-esm/app-graph-serializer-U4GHXWRG.mjs.map +0 -7
  256. package/dist/lib/node-esm/chunk-4F25JKVT.mjs.map +0 -7
  257. package/dist/lib/node-esm/chunk-DG5YEEPZ.mjs.map +0 -7
  258. package/dist/lib/node-esm/chunk-H5UPFRRH.mjs.map +0 -7
  259. package/dist/lib/node-esm/chunk-HAKW2RFD.mjs.map +0 -7
  260. package/dist/lib/node-esm/chunk-MWNATOXL.mjs +0 -13
  261. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +0 -7
  262. package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs.map +0 -7
  263. package/dist/lib/node-esm/chunk-TNUWML33.mjs.map +0 -7
  264. package/dist/lib/node-esm/identity-created-MWTLGQRU.mjs.map +0 -7
  265. package/dist/lib/node-esm/intent-resolver-KVB2A4YC.mjs.map +0 -7
  266. package/dist/lib/node-esm/react-root-56PGW5PH.mjs.map +0 -7
  267. package/dist/lib/node-esm/react-surface-NYEQ23A4.mjs.map +0 -7
  268. package/dist/lib/node-esm/spaces-ready-TC27M7MP.mjs.map +0 -7
  269. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  270. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  271. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  272. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  273. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  274. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  275. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  276. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  277. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  278. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  279. package/dist/types/src/components/RecordMain.d.ts +0 -7
  280. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  281. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  282. package/src/components/PersistenceStatus.tsx +0 -83
  283. package/src/components/RecordMain.tsx +0 -87
  284. /package/dist/lib/browser/{chunk-EIXZABXD.mjs.map → chunk-WJXU4GKV.mjs.map} +0 -0
  285. /package/dist/lib/browser/{schema-defs-7R7RKCAE.mjs.map → schema-defs-XCNOO2WT.mjs.map} +0 -0
  286. /package/dist/lib/browser/{settings-OBFJ67ZG.mjs.map → settings-WKLGKUHQ.mjs.map} +0 -0
  287. /package/dist/lib/browser/{state-LSPRFIRO.mjs.map → state-Q7YRE5KG.mjs.map} +0 -0
  288. /package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs.map → chunk-H4JILUJK.mjs.map} +0 -0
  289. /package/dist/lib/node-esm/{schema-defs-RYG5DSUE.mjs.map → schema-defs-5TDB7T5J.mjs.map} +0 -0
  290. /package/dist/lib/node-esm/{settings-QGWWNMMZ.mjs.map → settings-RBB5633M.mjs.map} +0 -0
  291. /package/dist/lib/node-esm/{state-TCGOPLRO.mjs.map → state-362I5BMK.mjs.map} +0 -0
  292. /package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +0 -0
  293. /package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +0 -0
@@ -5,30 +5,23 @@
5
5
  import type * as Schema from 'effect/Schema';
6
6
  import React, { useCallback } from 'react';
7
7
 
8
- import { Capabilities, Surface, contributes, createSurface, useCapability, useLayout } from '@dxos/app-framework';
9
- import { Obj, Type } from '@dxos/echo';
8
+ import { Capabilities, contributes, createSurface } from '@dxos/app-framework';
9
+ import { Surface, useCapability, useLayout } from '@dxos/app-framework/react';
10
+ import { Obj } from '@dxos/echo';
10
11
  import { findAnnotation } from '@dxos/effect';
11
12
  import { SettingsStore } from '@dxos/local-storage';
12
- import {
13
- type Space,
14
- SpaceState,
15
- fullyQualifiedId,
16
- getSpace,
17
- isLiveObject,
18
- isSpace,
19
- parseId,
20
- useSpace,
21
- } from '@dxos/react-client/echo';
13
+ import { type Space, SpaceState, getSpace, isLiveObject, isSpace, parseId, useSpace } from '@dxos/react-client/echo';
22
14
  import { Input } from '@dxos/react-ui';
23
15
  import { type InputProps, SelectInput } from '@dxos/react-ui-form';
24
16
  import { HuePicker, IconPicker } from '@dxos/react-ui-pickers';
25
- import { DataType, type TypenameAnnotation, TypenameAnnotationId } from '@dxos/schema';
17
+ import { Collection, type TypenameAnnotation, TypenameAnnotationId, View } from '@dxos/schema';
26
18
  import { type JoinPanelProps } from '@dxos/shell/react';
27
19
 
20
+ // TODO(burdon): Component name standard: NounVerbComponent.
28
21
  import {
29
22
  CREATE_OBJECT_DIALOG,
30
23
  CREATE_SPACE_DIALOG,
31
- CollectionMain,
24
+ CollectionArticle,
32
25
  CollectionSection,
33
26
  CreateObjectDialog,
34
27
  type CreateObjectDialogProps,
@@ -38,17 +31,17 @@ import {
38
31
  JoinDialog,
39
32
  MembersContainer,
40
33
  MenuFooter,
34
+ OBJECT_RENAME_POPOVER,
41
35
  ObjectDetailsPanel,
36
+ ObjectRenamePopover,
42
37
  ObjectSettingsContainer,
43
- POPOVER_RENAME_OBJECT,
44
- POPOVER_RENAME_SPACE,
45
- PopoverRenameObject,
46
- PopoverRenameSpace,
47
- RecordMain,
38
+ RecordArticle,
39
+ SPACE_RENAME_POPOVER,
48
40
  SchemaContainer,
49
41
  SmallPresenceLive,
50
42
  SpacePluginSettings,
51
43
  SpacePresence,
44
+ SpaceRenamePopover,
52
45
  SpaceSettingsContainer,
53
46
  SyncStatus,
54
47
  ViewEditor,
@@ -63,8 +56,6 @@ type ReactSurfaceOptions = {
63
56
  createInvitationUrl: (invitationCode: string) => string;
64
57
  };
65
58
 
66
- const OMIT = [DataType.Collection.typename, Type.getTypename(DataType.QueryCollection)];
67
-
68
59
  export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
69
60
  contributes(Capabilities.ReactSurface, [
70
61
  createSurface({
@@ -77,7 +68,7 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
77
68
  <Surface
78
69
  data={{
79
70
  id: data.subject.id,
80
- subject: data.subject.properties[DataType.Collection.typename]?.target,
71
+ subject: data.subject.properties[Collection.Collection.typename]?.target,
81
72
  }}
82
73
  role={role}
83
74
  {...rest}
@@ -89,14 +80,14 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
89
80
  role: 'article',
90
81
  position: 'fallback',
91
82
  filter: (data): data is { subject: Obj.Any } => Obj.isObject(data.subject),
92
- component: ({ data }) => <RecordMain record={data.subject} />,
83
+ component: ({ data }) => <RecordArticle object={data.subject} />,
93
84
  }),
94
85
  createSurface({
95
86
  id: `${meta.id}/collection-fallback`,
96
87
  role: 'article',
97
88
  position: 'fallback',
98
- filter: (data): data is { subject: DataType.Collection } => Obj.instanceOf(DataType.Collection, data.subject),
99
- component: ({ data }) => <CollectionMain collection={data.subject} />,
89
+ filter: (data): data is { subject: Collection.Collection } => Obj.instanceOf(Collection.Collection, data.subject),
90
+ component: ({ data }) => <CollectionArticle object={data.subject} />,
100
91
  }),
101
92
  createSurface({
102
93
  id: `${meta.id}/plugin-settings`,
@@ -160,12 +151,12 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
160
151
  createSurface({
161
152
  id: `${meta.id}/selected-objects`,
162
153
  role: 'article',
163
- filter: (data): data is { companionTo: DataType.View; subject: 'selected-objects' } =>
164
- Obj.instanceOf(DataType.View, data.companionTo) && data.subject === 'selected-objects',
154
+ filter: (data): data is { companionTo: View.View; subject: 'selected-objects' } =>
155
+ Obj.instanceOf(View.View, data.companionTo) && data.subject === 'selected-objects',
165
156
  component: ({ data }) => (
166
157
  <ObjectDetailsPanel
167
- key={fullyQualifiedId(data.companionTo)}
168
- objectId={fullyQualifiedId(data.companionTo)}
158
+ key={Obj.getDXN(data.companionTo).toString()}
159
+ objectId={Obj.getDXN(data.companionTo).toString()}
169
160
  view={data.companionTo}
170
161
  />
171
162
  ),
@@ -231,7 +222,11 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
231
222
  role: 'form-input',
232
223
  filter: (
233
224
  data,
234
- ): data is { prop: string; schema: Schema.Schema<any>; target: Space | DataType.Collection | undefined } => {
225
+ ): data is {
226
+ prop: string;
227
+ schema: Schema.Schema<any>;
228
+ target: Space | Collection.Collection | undefined;
229
+ } => {
235
230
  if (data.prop !== 'typename') {
236
231
  return false;
237
232
  }
@@ -251,21 +246,21 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
251
246
  createSurface({
252
247
  id: `${meta.id}/object-settings`,
253
248
  role: 'object-settings',
254
- filter: (data): data is { subject: DataType.View } => Obj.instanceOf(DataType.View, data.subject),
249
+ filter: (data): data is { subject: View.View } => Obj.instanceOf(View.View, data.subject),
255
250
  component: ({ data }) => <ViewEditor view={data.subject} />,
256
251
  }),
257
252
  createSurface({
258
- id: POPOVER_RENAME_SPACE,
253
+ id: SPACE_RENAME_POPOVER,
259
254
  role: 'card--popover',
260
- filter: (data): data is { props: Space } => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),
261
- component: ({ data }) => <PopoverRenameSpace space={data.props} />,
255
+ filter: (data): data is { props: Space } => data.component === SPACE_RENAME_POPOVER && isSpace(data.props),
256
+ component: ({ data }) => <SpaceRenamePopover space={data.props} />,
262
257
  }),
263
258
  createSurface({
264
- id: POPOVER_RENAME_OBJECT,
259
+ id: OBJECT_RENAME_POPOVER,
265
260
  role: 'card--popover',
266
261
  filter: (data): data is { props: Obj.Any } =>
267
- data.component === POPOVER_RENAME_OBJECT && isLiveObject(data.props),
268
- component: ({ data }) => <PopoverRenameObject object={data.props} />,
262
+ data.component === OBJECT_RENAME_POPOVER && isLiveObject(data.props),
263
+ component: ({ data }) => <ObjectRenamePopover object={data.props} />,
269
264
  }),
270
265
  createSurface({
271
266
  id: `${meta.id}/menu-footer`,
@@ -308,7 +303,7 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
308
303
  const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);
309
304
  const object = isSpace(data.subject)
310
305
  ? data.subject.state.get() === SpaceState.SPACE_READY
311
- ? (space?.properties[DataType.Collection.typename]?.target as DataType.Collection)
306
+ ? (space?.properties[Collection.Collection.typename]?.target as Collection.Collection)
312
307
  : undefined
313
308
  : data.subject;
314
309
 
@@ -318,8 +313,8 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
318
313
  createSurface({
319
314
  id: `${meta.id}/collection-section`,
320
315
  role: 'section',
321
- filter: (data): data is { subject: DataType.Collection } => Obj.instanceOf(DataType.Collection, data.subject),
322
- component: ({ data }) => <CollectionSection collection={data.subject} />,
316
+ filter: (data): data is { subject: Collection.Collection } => Obj.instanceOf(Collection.Collection, data.subject),
317
+ component: ({ data }) => <CollectionSection object={data.subject} />,
323
318
  }),
324
319
  createSurface({
325
320
  id: `${meta.id}/status`,
@@ -14,7 +14,7 @@ import { ClientCapabilities } from '@dxos/plugin-client';
14
14
  import { DeckCapabilities } from '@dxos/plugin-deck';
15
15
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
16
16
  import { PublicKey } from '@dxos/react-client';
17
- import { FQ_ID_LENGTH, SpaceState, parseFullyQualifiedId } from '@dxos/react-client/echo';
17
+ import { SpaceState, parseId } from '@dxos/react-client/echo';
18
18
  import { ComplexMap, reduceGroupBy } from '@dxos/util';
19
19
 
20
20
  import { SpaceAction } from '../types';
@@ -25,6 +25,9 @@ import { SpaceCapabilities } from './capabilities';
25
25
  const ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;
26
26
  const WAIT_FOR_OBJECT_TIMEOUT = 5_000;
27
27
 
28
+ // E.g., dxn:echo:BA25QRC2FEWCSAMRP4RZL65LWJ7352CKE:01J00J9B45YHYSGZQTQMSKMGJ6
29
+ const ECHO_DXN_LENGTH = 3 + 1 + 4 + 1 + 33 + 1 + 26;
30
+
28
31
  export default async (context: PluginContext) => {
29
32
  const subscriptions = new SubscriptionList();
30
33
  const spaceSubscriptions = new SubscriptionList();
@@ -69,7 +72,7 @@ export default async (context: PluginContext) => {
69
72
 
70
73
  const id = active[0];
71
74
  const node = graph.getNode(id).pipe(Option.getOrNull);
72
- if (!node && id.length === FQ_ID_LENGTH) {
75
+ if (!node && id.length === ECHO_DXN_LENGTH) {
73
76
  void graph.initialize(id);
74
77
  const timeout = setTimeout(async () => {
75
78
  const node = graph.getNode(id).pipe(Option.getOrNull);
@@ -117,7 +120,7 @@ export default async (context: PluginContext) => {
117
120
  // Group parts by space for efficient messaging.
118
121
  const idsBySpace = reduceGroupBy(active, (id) => {
119
122
  try {
120
- const [spaceId] = parseFullyQualifiedId(id);
123
+ const { spaceId } = parseId(id);
121
124
  return spaceId;
122
125
  } catch {
123
126
  return null;
@@ -126,7 +129,7 @@ export default async (context: PluginContext) => {
126
129
 
127
130
  const removedBySpace = reduceGroupBy(inactive, (id) => {
128
131
  try {
129
- const [spaceId] = parseFullyQualifiedId(id);
132
+ const { spaceId } = parseId(id);
130
133
  return spaceId;
131
134
  } catch {
132
135
  return null;
@@ -4,23 +4,25 @@
4
4
 
5
5
  import React, { useCallback, useEffect, useState } from 'react';
6
6
 
7
- import { LayoutAction, createIntent, useIntentDispatcher, useLayout } from '@dxos/app-framework';
7
+ import { LayoutAction, createIntent } from '@dxos/app-framework';
8
+ import { useIntentDispatcher, useLayout } from '@dxos/app-framework/react';
9
+ import { Obj } from '@dxos/echo';
8
10
  import { useClient } from '@dxos/react-client';
9
- import { Filter, fullyQualifiedId, useQuery } from '@dxos/react-client/echo';
11
+ import { Filter, useQuery } from '@dxos/react-client/echo';
10
12
  import { Button, Icon, Toast, useTranslation } from '@dxos/react-ui';
11
13
 
12
14
  import { meta } from '../meta';
13
15
  import { SpaceAction } from '../types';
14
16
 
15
- const WAIT_FOR_OBJECT_TIMEOUT = 180e3; // 3 minutes
16
- const TOAST_TIMEOUT = 240e3; // 4 minutes
17
+ const WAIT_FOR_OBJECT_TIMEOUT = 3 * 60 * 1_000;
18
+ const TOAST_TIMEOUT = 4 * 60 * 1_000;
17
19
 
18
20
  export const AwaitingObject = ({ id }: { id: string }) => {
21
+ const { t } = useTranslation(meta.id);
22
+ const { dispatchPromise: dispatch } = useIntentDispatcher();
19
23
  const [open, setOpen] = useState(true);
20
24
  const [waiting, setWaiting] = useState(true);
21
25
  const [found, setFound] = useState(false);
22
- const { t } = useTranslation(meta.id);
23
- const { dispatchPromise: dispatch } = useIntentDispatcher();
24
26
  const layout = useLayout();
25
27
 
26
28
  const client = useClient();
@@ -31,17 +33,13 @@ export const AwaitingObject = ({ id }: { id: string }) => {
31
33
  return;
32
34
  }
33
35
 
34
- const timeout = setTimeout(() => {
35
- setWaiting(false);
36
- }, WAIT_FOR_OBJECT_TIMEOUT);
37
-
38
- () => clearTimeout(timeout);
36
+ const timeout = setTimeout(() => setWaiting(false), WAIT_FOR_OBJECT_TIMEOUT);
37
+ return () => clearTimeout(timeout);
39
38
  }, [id]);
40
39
 
41
40
  useEffect(() => {
42
- if (objects.findIndex((object) => fullyQualifiedId(object) === id) > -1) {
41
+ if (objects.findIndex((object) => Obj.getDXN(object).toString() === id) > -1) {
43
42
  setFound(true);
44
-
45
43
  if (layout.active.includes(id)) {
46
44
  setOpen(false);
47
45
  }
@@ -4,13 +4,14 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
+ import { type SurfaceComponentProps } from '@dxos/app-framework/react';
7
8
  import { useTranslation } from '@dxos/react-ui';
8
9
  import { baseSurface, descriptionMessage, mx } from '@dxos/react-ui-theme';
9
- import { type DataType } from '@dxos/schema';
10
+ import { type Collection } from '@dxos/schema';
10
11
 
11
12
  import { meta } from '../meta';
12
13
 
13
- export const CollectionMain = ({ collection }: { collection: DataType.Collection }) => {
14
+ export const CollectionArticle = ({ object }: SurfaceComponentProps<Collection.Collection>) => {
14
15
  const { t } = useTranslation(meta.id);
15
16
 
16
17
  return (
@@ -23,10 +24,10 @@ export const CollectionMain = ({ collection }: { collection: DataType.Collection
23
24
  role='alert'
24
25
  className={mx(descriptionMessage, 'rounded-md p-8 font-normal text-lg max-is-[24rem] break-words')}
25
26
  >
26
- {collection.name ?? t('unnamed collection label')}
27
+ {object.name ?? t('unnamed collection label')}
27
28
  </p>
28
29
  </div>
29
30
  );
30
31
  };
31
32
 
32
- export default CollectionMain;
33
+ export default CollectionArticle;
@@ -4,17 +4,19 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
+ import { type SurfaceComponentProps } from '@dxos/app-framework/react';
7
8
  import { useTranslation } from '@dxos/react-ui';
8
- import { type DataType } from '@dxos/schema';
9
+ import { type Collection } from '@dxos/schema';
9
10
 
10
11
  import { meta } from '../meta';
11
12
 
12
- export const CollectionSection = ({ collection }: { collection: DataType.Collection }) => {
13
+ export const CollectionSection = ({ role, object }: SurfaceComponentProps<Collection.Collection>) => {
13
14
  const { t } = useTranslation(meta.id);
15
+
14
16
  // TODO(wittjosiah): Better placeholder.
15
17
  return (
16
- <div className='min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center'>
17
- <span className='truncate'>{collection.name ?? t('unnamed collection label')}</span>
18
+ <div role={role} className='min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center'>
19
+ <span className='truncate'>{object.name ?? t('unnamed collection label')}</span>
18
20
  </div>
19
21
  );
20
22
  };
@@ -7,12 +7,12 @@ import React, { useEffect } from 'react';
7
7
 
8
8
  import { IntentPlugin } from '@dxos/app-framework';
9
9
  import { withPluginManager } from '@dxos/app-framework/testing';
10
- import { Filter, Obj, Type } from '@dxos/echo';
10
+ import { Filter, Obj } from '@dxos/echo';
11
11
  import { useQuery, useSpace } from '@dxos/react-client/echo';
12
12
  import { withClientProvider } from '@dxos/react-client/testing';
13
13
  import { Dialog } from '@dxos/react-ui';
14
14
  import { withTheme } from '@dxos/react-ui/testing';
15
- import { DataType } from '@dxos/schema';
15
+ import { Collection } from '@dxos/schema';
16
16
  import { translations as shellTranslations } from '@dxos/shell/react';
17
17
 
18
18
  import { translations } from '../../translations';
@@ -37,7 +37,7 @@ const meta = {
37
37
  decorators: [
38
38
  withTheme, // TODO(wittjosiah): Try to write story which does not depend on plugin manager.
39
39
  withPluginManager({ plugins: [IntentPlugin()] }),
40
- withClientProvider({ createIdentity: true, createSpace: true, types: [DataType.Collection] }),
40
+ withClientProvider({ createIdentity: true, createSpace: true, types: [Collection.Collection] }),
41
41
  ],
42
42
  parameters: {
43
43
  translations: [...translations, ...shellTranslations],
@@ -50,7 +50,7 @@ export default meta;
50
50
  export const Default: StoryObj<typeof CreateObjectDialog> = {};
51
51
 
52
52
  export const Typename: StoryObj<typeof CreateObjectDialog> = {
53
- args: { typename: Type.getTypename(DataType.Collection) },
53
+ args: { typename: Collection.Collection.typename },
54
54
  };
55
55
 
56
56
  export const TargetSpace: StoryObj<typeof CreateObjectDialog> = {
@@ -68,11 +68,11 @@ export const TargetSpace: StoryObj<typeof CreateObjectDialog> = {
68
68
  export const TargetCollection: StoryObj<typeof CreateObjectDialog> = {
69
69
  render: (args) => {
70
70
  const space = useSpace();
71
- const [collection] = useQuery(space, Filter.type(DataType.Collection));
71
+ const [collection] = useQuery(space, Filter.type(Collection.Collection));
72
72
 
73
73
  useEffect(() => {
74
74
  if (space) {
75
- space.db.add(Obj.make(DataType.Collection, { name: 'My Collection', objects: [] }));
75
+ space.db.add(Obj.make(Collection.Collection, { name: 'My Collection', objects: [] }));
76
76
  }
77
77
  }, [space]);
78
78
 
@@ -6,22 +6,15 @@ import * as Effect from 'effect/Effect';
6
6
  import * as Function from 'effect/Function';
7
7
  import React, { useCallback, useRef, useState } from 'react';
8
8
 
9
- import {
10
- Capabilities,
11
- LayoutAction,
12
- chain,
13
- createIntent,
14
- useCapabilities,
15
- useIntentDispatcher,
16
- usePluginManager,
17
- } from '@dxos/app-framework';
9
+ import { Capabilities, LayoutAction, chain, createIntent } from '@dxos/app-framework';
10
+ import { useCapabilities, useIntentDispatcher, usePluginManager } from '@dxos/app-framework/react';
18
11
  import { Obj, Query, Type } from '@dxos/echo';
19
12
  import { invariant } from '@dxos/invariant';
20
13
  import { useClient } from '@dxos/react-client';
21
14
  import { type Space, getSpace, isLiveObject, isSpace, useQuery, useSpaces } from '@dxos/react-client/echo';
22
- import { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';
15
+ import { Dialog, IconButton, useTranslation } from '@dxos/react-ui';
23
16
  import { cardDialogContent, cardDialogHeader } from '@dxos/react-ui-stack';
24
- import { DataType, getTypenameFromQuery } from '@dxos/schema';
17
+ import { Collection, StoredSchema, getTypenameFromQuery } from '@dxos/schema';
25
18
  import { isNonNullable } from '@dxos/util';
26
19
 
27
20
  import { SpaceCapabilities } from '../../capabilities';
@@ -48,20 +41,20 @@ export const CreateObjectDialog = ({
48
41
  onCreateObject,
49
42
  shouldNavigate: _shouldNavigate,
50
43
  }: CreateObjectDialogProps) => {
51
- const closeRef = useRef<HTMLButtonElement | null>(null);
52
44
  const manager = usePluginManager();
53
45
  const { t } = useTranslation(meta.id);
54
- const client = useClient();
55
- const spaces = useSpaces();
56
46
  const { dispatch } = useIntentDispatcher();
57
47
  const forms = useCapabilities(SpaceCapabilities.ObjectForm);
58
- const [target, setTarget] = useState<Space | DataType.Collection | undefined>(initialTarget);
48
+ const [target, setTarget] = useState<Space | Collection.Collection | undefined>(initialTarget);
59
49
  const [typename, setTypename] = useState<string | undefined>(initialTypename);
50
+ const client = useClient();
51
+ const spaces = useSpaces();
60
52
  const space = isSpace(target) ? target : getSpace(target);
61
- const queryCollections = useQuery(space, Query.type(DataType.QueryCollection));
53
+ const queryCollections = useQuery(space, Query.type(Collection.QueryCollection));
62
54
  const hiddenTypenames = queryCollections
63
55
  .map((collection) => getTypenameFromQuery(collection.query))
64
56
  .filter(isNonNullable);
57
+ const closeRef = useRef<HTMLButtonElement | null>(null);
65
58
 
66
59
  const resolve = useCallback<NonNullable<CreateObjectPanelProps['resolve']>>(
67
60
  (typename) =>
@@ -83,10 +76,14 @@ export const CreateObjectDialog = ({
83
76
  const space = isSpace(target) ? target : getSpace(target);
84
77
  invariant(space, 'Missing space');
85
78
  const { object } = yield* dispatch(form.getIntent(data, { space }));
86
- if (isLiveObject(object) && !Obj.instanceOf(DataType.StoredSchema, object)) {
79
+ if (isLiveObject(object) && !Obj.instanceOf(StoredSchema, object)) {
87
80
  // TODO(wittjosiah): Selection in navtree isn't working as expected when hidden typenames evals to true.
88
81
  const hidden = form.hidden || hiddenTypenames.includes(Type.getTypename(form.objectSchema));
89
- const addObjectIntent = createIntent(SpaceAction.AddObject, { target, object, hidden });
82
+ const addObjectIntent = createIntent(SpaceAction.AddObject, {
83
+ target,
84
+ object,
85
+ hidden,
86
+ });
90
87
  const shouldNavigate = _shouldNavigate ?? (() => true);
91
88
  if (shouldNavigate(object)) {
92
89
  yield* dispatch(Function.pipe(addObjectIntent, chain(LayoutAction.Open, { part: 'main' })));
@@ -107,13 +104,23 @@ export const CreateObjectDialog = ({
107
104
  <div role='none' className={cardDialogHeader}>
108
105
  <Dialog.Title>
109
106
  {t('create object dialog title', {
110
- object: t('typename label', { ns: typename, defaultValue: views ? 'View' : 'Item' }),
107
+ object: t('typename label', {
108
+ ns: typename,
109
+ defaultValue: views ? 'View' : 'Item',
110
+ }),
111
111
  })}
112
112
  </Dialog.Title>
113
113
  <Dialog.Close asChild>
114
- <Button ref={closeRef} density='fine' variant='ghost' autoFocus>
115
- <Icon icon='ph--x--regular' size={4} />
116
- </Button>
114
+ <IconButton
115
+ ref={closeRef}
116
+ icon='ph--x--regular'
117
+ size={4}
118
+ label='Close'
119
+ iconOnly
120
+ density='fine'
121
+ variant='ghost'
122
+ autoFocus
123
+ />
117
124
  </Dialog.Close>
118
125
  </div>
119
126
 
@@ -12,7 +12,7 @@ import { Icon, toLocalizedString, useDefaultValue, useTranslation } from '@dxos/
12
12
  import { Form } from '@dxos/react-ui-form';
13
13
  import { SearchList } from '@dxos/react-ui-searchlist';
14
14
  import { cardDialogOverflow, cardDialogPaddedOverflow, cardDialogSearchListRoot } from '@dxos/react-ui-stack';
15
- import { type DataType } from '@dxos/schema';
15
+ import { type Collection } from '@dxos/schema';
16
16
  import { type MaybePromise, isNonNullable } from '@dxos/util';
17
17
 
18
18
  import { useInputSurfaceLookup } from '../../hooks';
@@ -24,7 +24,7 @@ export type CreateObjectPanelProps = {
24
24
  forms: ObjectForm[];
25
25
  spaces: Space[];
26
26
  typename?: string;
27
- target?: Space | DataType.Collection;
27
+ target?: Space | Collection.Collection;
28
28
  views?: boolean;
29
29
  initialFormValues?: Partial<BaseObject>;
30
30
  defaultSpaceId?: SpaceId;
@@ -6,8 +6,9 @@ import * as Effect from 'effect/Effect';
6
6
  import type * as Schema from 'effect/Schema';
7
7
  import React, { useCallback, useRef } from 'react';
8
8
 
9
- import { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';
10
- import { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';
9
+ import { LayoutAction, createIntent } from '@dxos/app-framework';
10
+ import { useIntentDispatcher } from '@dxos/app-framework/react';
11
+ import { Dialog, IconButton, useTranslation } from '@dxos/react-ui';
11
12
  import { Form } from '@dxos/react-ui-form';
12
13
  import { cardDialogContent, cardDialogHeader } from '@dxos/react-ui-stack';
13
14
 
@@ -31,8 +32,18 @@ export const CreateSpaceDialog = () => {
31
32
  async (data: FormValues) => {
32
33
  const program = Effect.gen(function* () {
33
34
  const { space } = yield* dispatch(createIntent(SpaceAction.Create, data));
34
- yield* dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: space.id }));
35
- yield* dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));
35
+ yield* dispatch(
36
+ createIntent(LayoutAction.SwitchWorkspace, {
37
+ part: 'workspace',
38
+ subject: space.id,
39
+ }),
40
+ );
41
+ yield* dispatch(
42
+ createIntent(LayoutAction.UpdateDialog, {
43
+ part: 'dialog',
44
+ options: { state: false },
45
+ }),
46
+ );
36
47
  });
37
48
  await Effect.runPromise(program);
38
49
  },
@@ -46,9 +57,16 @@ export const CreateSpaceDialog = () => {
46
57
  <div role='none' className={cardDialogHeader}>
47
58
  <Dialog.Title>{t('create space dialog title')}</Dialog.Title>
48
59
  <Dialog.Close asChild>
49
- <Button ref={closeRef} density='fine' variant='ghost' autoFocus>
50
- <Icon icon='ph--x--regular' size={4} />
51
- </Button>
60
+ <IconButton
61
+ ref={closeRef}
62
+ icon='ph--x--regular'
63
+ size={4}
64
+ label='Close'
65
+ iconOnly
66
+ density='fine'
67
+ variant='ghost'
68
+ autoFocus
69
+ />
52
70
  </Dialog.Close>
53
71
  </div>
54
72
  <div role='none' className='contents'>
@@ -4,7 +4,8 @@
4
4
 
5
5
  import React, { useCallback } from 'react';
6
6
 
7
- import { LayoutAction, createIntent, useAppGraph, useIntentDispatcher } from '@dxos/app-framework';
7
+ import { LayoutAction, createIntent } from '@dxos/app-framework';
8
+ import { useAppGraph, useIntentDispatcher } from '@dxos/app-framework/react';
8
9
  import { Trigger } from '@dxos/async';
9
10
  import { ObservabilityAction } from '@dxos/plugin-observability/types';
10
11
  import { useClient } from '@dxos/react-client';
@@ -13,7 +14,7 @@ import { type InvitationResult } from '@dxos/react-client/invitations';
13
14
  import { Dialog, useTranslation } from '@dxos/react-ui';
14
15
  import { JoinPanel, type JoinPanelProps } from '@dxos/shell/react';
15
16
 
16
- import { meta } from '../meta';
17
+ import { meta } from '../../meta';
17
18
 
18
19
  export const JOIN_DIALOG = `${meta.id}/JoinDialog`;
19
20
 
@@ -69,7 +70,12 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
69
70
  space = await trigger.wait();
70
71
  }
71
72
 
72
- await dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: space.id }));
73
+ await dispatch(
74
+ createIntent(LayoutAction.SwitchWorkspace, {
75
+ part: 'workspace',
76
+ subject: space.id,
77
+ }),
78
+ );
73
79
 
74
80
  // TODO(wittjosiah): If navigableCollections is false and there's no target,
75
81
  // should try to navigate to the first object of the space replicates.
@@ -80,8 +86,18 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
80
86
  // If the target has not yet replicated, this will trigger a loading toast.
81
87
  await graph.waitForPath({ target }).catch(() => {});
82
88
  await Promise.all([
83
- dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [target] })),
84
- dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: target })),
89
+ dispatch(
90
+ createIntent(LayoutAction.Open, {
91
+ part: 'main',
92
+ subject: [target],
93
+ }),
94
+ ),
95
+ dispatch(
96
+ createIntent(LayoutAction.Expose, {
97
+ part: 'navigation',
98
+ subject: target,
99
+ }),
100
+ ),
85
101
  ]);
86
102
  }
87
103
 
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './JoinDialog';
@@ -13,7 +13,7 @@ import { withTheme } from '@dxos/react-ui/testing';
13
13
  import { translations as shellTranslations } from '@dxos/shell/react';
14
14
  import { render } from '@dxos/storybook-utils';
15
15
 
16
- import { translations } from '../translations';
16
+ import { translations } from '../../translations';
17
17
 
18
18
  import { MembersContainer } from './MembersContainer';
19
19