@dxos/plugin-space 0.9.1-main.c7dcc2e112 → 0.9.1-staging.ee54ba693a

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 (308) hide show
  1. package/dist/lib/neutral/{CreateObjectDialog-4VMOUKM7.mjs → CreateObjectDialog-5454N3FJ.mjs} +22 -7
  2. package/dist/lib/neutral/CreateObjectDialog-5454N3FJ.mjs.map +7 -0
  3. package/dist/lib/neutral/DefaultProperties-5SAWQC6I.mjs +58 -0
  4. package/dist/lib/neutral/DefaultProperties-5SAWQC6I.mjs.map +7 -0
  5. package/dist/lib/neutral/{JoinDialog-QZGNRJ4P.mjs → JoinDialog-ATNUCNL2.mjs} +7 -31
  6. package/dist/lib/neutral/JoinDialog-ATNUCNL2.mjs.map +7 -0
  7. package/dist/lib/neutral/{MembersContainer-OWCAMBKS.mjs → MembersContainer-C4ZTP6ZW.mjs} +9 -5
  8. package/dist/lib/neutral/MembersContainer-C4ZTP6ZW.mjs.map +7 -0
  9. package/dist/lib/neutral/{MenuFooter-QCNFUIAO.mjs → MenuFooter-FWE5LFM4.mjs} +3 -3
  10. package/dist/lib/neutral/{RelatedArticle-YRCRBIYU.mjs → RelatedArticle-Z777WVDW.mjs} +1 -2
  11. package/dist/lib/neutral/RelatedArticle-Z777WVDW.mjs.map +7 -0
  12. package/dist/lib/neutral/{RenamePopover-XBZAKNM7.mjs → RenamePopover-AZT2KPOF.mjs} +13 -5
  13. package/dist/lib/neutral/RenamePopover-AZT2KPOF.mjs.map +7 -0
  14. package/dist/lib/neutral/{SchemaContainer-2NK5YB5O.mjs → SchemaContainer-4GJKQBXM.mjs} +8 -4
  15. package/dist/lib/neutral/SchemaContainer-4GJKQBXM.mjs.map +7 -0
  16. package/dist/lib/neutral/{SmallPresenceLive-L4H7WJOA.mjs → SmallPresenceLive-FW3AMEY5.mjs} +2 -2
  17. package/dist/lib/neutral/{SpaceHomeArticle-ZV7EERLS.mjs → SpaceHomeArticle-Y47TLZ72.mjs} +2 -2
  18. package/dist/lib/neutral/{SpaceHomeArticle-ZV7EERLS.mjs.map → SpaceHomeArticle-Y47TLZ72.mjs.map} +1 -1
  19. package/dist/lib/neutral/{SpaceHomeRecent-ZR4LIIUD.mjs → SpaceHomeRecent-S57AO3EV.mjs} +11 -5
  20. package/dist/lib/neutral/{SpaceHomeRecent-ZR4LIIUD.mjs.map → SpaceHomeRecent-S57AO3EV.mjs.map} +3 -3
  21. package/dist/lib/neutral/SpacePlugin.mjs +1 -1
  22. package/dist/lib/neutral/{SpacePresence-PDTEDHDE.mjs → SpacePresence-T37WH43Y.mjs} +2 -2
  23. package/dist/lib/neutral/SpaceSettings-6CZF7GEO.mjs +60 -0
  24. package/dist/lib/neutral/SpaceSettings-6CZF7GEO.mjs.map +7 -0
  25. package/dist/lib/neutral/{SpaceSettingsContainer-QAFQ4LWC.mjs → SpaceSettingsContainer-72CJWELM.mjs} +39 -36
  26. package/dist/lib/neutral/SpaceSettingsContainer-72CJWELM.mjs.map +7 -0
  27. package/dist/lib/neutral/TypeCollectionArticle-W76ADS2G.mjs +143 -0
  28. package/dist/lib/neutral/TypeCollectionArticle-W76ADS2G.mjs.map +7 -0
  29. package/dist/lib/neutral/{add-object-S64XELC3.mjs → add-object-H2N4AOQJ.mjs} +10 -10
  30. package/dist/lib/neutral/add-object-H2N4AOQJ.mjs.map +7 -0
  31. package/dist/lib/neutral/{add-relation-GWSE42BU.mjs → add-relation-BGTLART5.mjs} +3 -3
  32. package/dist/lib/neutral/{add-type-C3KYE6PI.mjs → add-type-JIDLRANR.mjs} +3 -3
  33. package/dist/lib/neutral/{add-type-C3KYE6PI.mjs.map → add-type-JIDLRANR.mjs.map} +1 -1
  34. package/dist/lib/neutral/{app-graph-builder-TMAD2ZTH.mjs → app-graph-builder-7H2KOD4B.mjs} +187 -163
  35. package/dist/lib/neutral/app-graph-builder-7H2KOD4B.mjs.map +7 -0
  36. package/dist/lib/neutral/capabilities/index.mjs +9 -9
  37. package/dist/lib/neutral/capabilities/node.mjs +2 -2
  38. package/dist/lib/neutral/{chunk-PSCIOT7Q.mjs → chunk-52ASDNRA.mjs} +2 -3
  39. package/dist/lib/neutral/{chunk-PSCIOT7Q.mjs.map → chunk-52ASDNRA.mjs.map} +3 -3
  40. package/dist/lib/neutral/{chunk-2RPQHHD7.mjs → chunk-C2ULK22J.mjs} +1 -1
  41. package/dist/lib/neutral/{chunk-DSYEB2UN.mjs → chunk-F5KLUP2P.mjs} +7 -2
  42. package/dist/lib/neutral/chunk-F5KLUP2P.mjs.map +7 -0
  43. package/dist/lib/neutral/{chunk-F2VJ6VBV.mjs → chunk-LMUG6PEJ.mjs} +3 -4
  44. package/dist/lib/neutral/chunk-LMUG6PEJ.mjs.map +7 -0
  45. package/dist/lib/neutral/{chunk-2LTGSUGQ.mjs → chunk-RAAHDTVF.mjs} +8 -4
  46. package/dist/lib/neutral/chunk-RAAHDTVF.mjs.map +7 -0
  47. package/dist/lib/neutral/{chunk-LY6XK5MV.mjs → chunk-SPWAMXNR.mjs} +2 -2
  48. package/dist/lib/neutral/{chunk-LY6XK5MV.mjs.map → chunk-SPWAMXNR.mjs.map} +3 -3
  49. package/dist/lib/neutral/chunk-U5WTDOMV.mjs +8 -0
  50. package/dist/lib/neutral/chunk-V7JALUM3.mjs +9 -0
  51. package/dist/lib/neutral/chunk-V7JALUM3.mjs.map +7 -0
  52. package/dist/lib/neutral/{close-YZHFYPUN.mjs → close-5WEQZRNK.mjs} +3 -3
  53. package/dist/lib/neutral/components/index.mjs +18 -19
  54. package/dist/lib/neutral/components/index.mjs.map +4 -4
  55. package/dist/lib/neutral/constants.mjs +16 -0
  56. package/dist/lib/neutral/constants.mjs.map +7 -0
  57. package/dist/lib/neutral/containers/index.mjs +18 -14
  58. package/dist/lib/neutral/containers/index.mjs.map +3 -3
  59. package/dist/lib/neutral/{create-XKU2W6QC.mjs → create-QZ47FHQU.mjs} +4 -4
  60. package/dist/lib/neutral/{create-XKU2W6QC.mjs.map → create-QZ47FHQU.mjs.map} +3 -3
  61. package/dist/lib/neutral/{create-object-22WUOWZQ.mjs → create-object-ZU6FZW5X.mjs} +1 -6
  62. package/dist/lib/neutral/create-object-ZU6FZW5X.mjs.map +7 -0
  63. package/dist/lib/neutral/{delete-EFM7CAVO.mjs → delete-SPCU2VFM.mjs} +3 -3
  64. package/dist/lib/neutral/{delete-field-ONAPFFO5.mjs → delete-field-TAKJVEAD.mjs} +3 -3
  65. package/dist/lib/neutral/{duplicate-object-OJRPFV5I.mjs → duplicate-object-BUPZOO6S.mjs} +3 -3
  66. package/dist/lib/neutral/{export-space-M5RNVUQX.mjs → export-space-S5SCAL4M.mjs} +3 -3
  67. package/dist/lib/neutral/{get-share-link-FUQBJPSQ.mjs → get-share-link-CLM5IQRL.mjs} +3 -3
  68. package/dist/lib/neutral/{identity-created-QMV4DANW.mjs → identity-created-BEYMLBK4.mjs} +2 -2
  69. package/dist/lib/neutral/{identity-created-QMV4DANW.mjs.map → identity-created-BEYMLBK4.mjs.map} +3 -3
  70. package/dist/lib/neutral/{import-space-L3AUIARM.mjs → import-space-LJQK3KT7.mjs} +3 -3
  71. package/dist/lib/neutral/index.mjs +7 -3
  72. package/dist/lib/neutral/join-FSODYIOC.mjs +54 -0
  73. package/dist/lib/neutral/join-FSODYIOC.mjs.map +7 -0
  74. package/dist/lib/neutral/meta.json +1 -1
  75. package/dist/lib/neutral/{migrate-WPUISBC4.mjs → migrate-WHM6LU7L.mjs} +4 -4
  76. package/dist/lib/neutral/{migrate-WPUISBC4.mjs.map → migrate-WHM6LU7L.mjs.map} +3 -3
  77. package/dist/lib/neutral/{navigation-handler-IKXZGMII.mjs → navigation-handler-ZF7MV2HL.mjs} +16 -10
  78. package/dist/lib/neutral/navigation-handler-ZF7MV2HL.mjs.map +7 -0
  79. package/dist/lib/neutral/{navigation-resolver-VBPGMFCE.mjs → navigation-resolver-KBESOSWU.mjs} +5 -5
  80. package/dist/lib/neutral/navigation-resolver-KBESOSWU.mjs.map +7 -0
  81. package/dist/lib/neutral/{open-RRYULTSY.mjs → open-JCXTL3SK.mjs} +3 -3
  82. package/dist/lib/neutral/{open-create-object-BRUVFZSY.mjs → open-create-object-WAIAU7TA.mjs} +6 -6
  83. package/dist/lib/neutral/{open-create-space-ARLQWW65.mjs → open-create-space-VU47FWPZ.mjs} +6 -6
  84. package/dist/lib/neutral/{open-import-space-65H57JXX.mjs → open-import-space-GUHIEWYB.mjs} +6 -6
  85. package/dist/lib/neutral/{open-members-677P6KD3.mjs → open-members-MLLBHKUU.mjs} +3 -3
  86. package/dist/lib/neutral/{open-settings-PRBSGO6D.mjs → open-settings-DTPZF4U4.mjs} +3 -3
  87. package/dist/lib/neutral/operations/index.mjs +3 -3
  88. package/dist/lib/neutral/plugin.mjs +3 -3
  89. package/dist/lib/neutral/{react-surface-5EQ6X4CL.mjs → react-surface-LRA7GIFN.mjs} +33 -14
  90. package/dist/lib/neutral/react-surface-LRA7GIFN.mjs.map +7 -0
  91. package/dist/lib/neutral/{remove-objects-PWJJI36V.mjs → remove-objects-WEO66EDS.mjs} +3 -3
  92. package/dist/lib/neutral/{rename-4727PKI4.mjs → rename-Q6UNCBIM.mjs} +6 -6
  93. package/dist/lib/neutral/{rename-object-FXUAB5FN.mjs → rename-object-2UCEGU7U.mjs} +6 -6
  94. package/dist/lib/neutral/{restore-field-3ICSIHGA.mjs → restore-field-6CQAFOXY.mjs} +3 -3
  95. package/dist/lib/neutral/{restore-objects-V2BTEWN3.mjs → restore-objects-3VINLP7C.mjs} +3 -3
  96. package/dist/lib/neutral/{share-ZOZPAUGI.mjs → share-A4WPILNF.mjs} +3 -3
  97. package/dist/lib/neutral/{snapshot-ZC5PU55W.mjs → snapshot-HBYMAPA7.mjs} +3 -3
  98. package/dist/lib/neutral/{spaces-ready-EXPCJD4N.mjs → spaces-ready-GWMSU72V.mjs} +4 -4
  99. package/dist/lib/neutral/{spaces-ready-EXPCJD4N.mjs.map → spaces-ready-GWMSU72V.mjs.map} +3 -3
  100. package/dist/lib/neutral/testing.mjs +1 -1
  101. package/dist/lib/neutral/translations.mjs +14 -6
  102. package/dist/lib/neutral/translations.mjs.map +2 -2
  103. package/dist/lib/neutral/types/index.mjs +1 -1
  104. package/dist/lib/neutral/{wait-for-object-WURK2SLQ.mjs → wait-for-object-U6P2NNWY.mjs} +3 -3
  105. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
  106. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +15 -33
  107. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts +15 -33
  110. package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +3 -2
  112. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +1 -4
  114. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +17 -4
  116. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/create-object.d.ts +1 -33
  118. package/dist/types/src/capabilities/create-object.d.ts.map +1 -1
  119. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +1 -2
  120. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -1
  121. package/dist/types/src/capabilities/navigation-resolver.d.ts +1 -2
  122. package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -1
  123. package/dist/types/src/capabilities/react-root.d.ts +1 -5
  124. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  125. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  126. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  127. package/dist/types/src/capabilities/repair.d.ts +1 -2
  128. package/dist/types/src/capabilities/repair.d.ts.map +1 -1
  129. package/dist/types/src/capabilities/settings.d.ts +1 -3
  130. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  132. package/dist/types/src/capabilities/state.d.ts +1 -13
  133. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  134. package/dist/types/src/capabilities/undo-mappings.d.ts +2 -3
  135. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -1
  136. package/dist/types/src/components/ForeignKeys/ForeignKeys.d.ts.map +1 -1
  137. package/dist/types/src/components/index.d.ts +2 -2
  138. package/dist/types/src/components/index.d.ts.map +1 -1
  139. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
  140. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts +122 -52
  141. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  142. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts +122 -52
  143. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts.map +1 -1
  144. package/dist/types/src/containers/DefaultProperties/DefaultProperties.d.ts +15 -0
  145. package/dist/types/src/containers/DefaultProperties/DefaultProperties.d.ts.map +1 -0
  146. package/dist/types/src/containers/DefaultProperties/index.d.ts +2 -0
  147. package/dist/types/src/containers/DefaultProperties/index.d.ts.map +1 -0
  148. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
  149. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +122 -52
  150. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -1
  151. package/dist/types/src/containers/MembersContainer/MembersContainer.d.ts.map +1 -1
  152. package/dist/types/src/containers/RelatedArticle/RelatedArticle.d.ts.map +1 -1
  153. package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts +5 -1
  154. package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts.map +1 -1
  155. package/dist/types/src/containers/RenamePopover/index.d.ts +1 -1
  156. package/dist/types/src/containers/RenamePopover/index.d.ts.map +1 -1
  157. package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts.map +1 -1
  158. package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts.map +1 -1
  159. package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts.map +1 -1
  160. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +122 -52
  161. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  162. package/dist/types/src/containers/SpacePresence/index.d.ts +1 -1
  163. package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -1
  164. package/dist/types/src/containers/SpaceSettings/SpaceSettings.d.ts +11 -0
  165. package/dist/types/src/containers/SpaceSettings/SpaceSettings.d.ts.map +1 -0
  166. package/dist/types/src/{components → containers}/SpaceSettings/SpaceSettings.stories.d.ts +123 -53
  167. package/dist/types/src/{components → containers}/SpaceSettings/SpaceSettings.stories.d.ts.map +1 -1
  168. package/dist/types/src/{components → containers}/SpaceSettings/index.d.ts.map +1 -1
  169. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +122 -52
  170. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
  171. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +122 -52
  172. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  173. package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.d.ts +16 -0
  174. package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.d.ts.map +1 -0
  175. package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.stories.d.ts +21 -0
  176. package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.stories.d.ts.map +1 -0
  177. package/dist/types/src/containers/TypeCollectionArticle/index.d.ts +2 -0
  178. package/dist/types/src/containers/TypeCollectionArticle/index.d.ts.map +1 -0
  179. package/dist/types/src/containers/index.d.ts +4 -1
  180. package/dist/types/src/containers/index.d.ts.map +1 -1
  181. package/dist/types/src/errors.d.ts +33 -0
  182. package/dist/types/src/errors.d.ts.map +1 -0
  183. package/dist/types/src/index.d.ts +1 -0
  184. package/dist/types/src/index.d.ts.map +1 -1
  185. package/dist/types/src/meta.d.ts +4 -0
  186. package/dist/types/src/meta.d.ts.map +1 -1
  187. package/dist/types/src/operations/definitions.d.ts +9 -37
  188. package/dist/types/src/operations/definitions.d.ts.map +1 -1
  189. package/dist/types/src/operations/join.d.ts.map +1 -1
  190. package/dist/types/src/translations.d.ts +122 -52
  191. package/dist/types/src/translations.d.ts.map +1 -1
  192. package/dist/types/src/types/Settings.d.ts +3 -1
  193. package/dist/types/src/types/Settings.d.ts.map +1 -1
  194. package/dist/types/src/types/capabilities.d.ts +1 -1
  195. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  196. package/dist/types/src/util.d.ts.map +1 -1
  197. package/dist/types/tsconfig.tsbuildinfo +1 -1
  198. package/package.json +70 -59
  199. package/src/SpacePlugin.ts +3 -3
  200. package/src/capabilities/app-graph-builder/extensions/collections.ts +45 -52
  201. package/src/capabilities/app-graph-builder/extensions/companions.ts +3 -2
  202. package/src/capabilities/app-graph-builder/extensions/database.ts +108 -84
  203. package/src/capabilities/app-graph-builder/extensions/settings.ts +8 -5
  204. package/src/capabilities/app-graph-builder/extensions/shared.test.ts +13 -9
  205. package/src/capabilities/app-graph-builder/extensions/shared.ts +2 -5
  206. package/src/capabilities/app-graph-builder/extensions/spaces.ts +32 -6
  207. package/src/capabilities/create-object.ts +0 -5
  208. package/src/capabilities/identity-created.ts +1 -1
  209. package/src/capabilities/navigation-handler/navigation-handler.ts +14 -4
  210. package/src/capabilities/navigation-resolver.ts +8 -8
  211. package/src/capabilities/react-surface.tsx +39 -13
  212. package/src/capabilities/spaces-ready.ts +1 -1
  213. package/src/components/ForeignKeys/ForeignKeys.tsx +20 -19
  214. package/src/components/index.ts +3 -3
  215. package/src/containers/CreateObjectDialog/CreateObjectDialog.stories.tsx +1 -1
  216. package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +38 -3
  217. package/src/containers/DefaultProperties/DefaultProperties.tsx +69 -0
  218. package/src/containers/DefaultProperties/index.ts +5 -0
  219. package/src/containers/JoinDialog/JoinDialog.tsx +8 -21
  220. package/src/containers/MembersContainer/MembersContainer.tsx +37 -33
  221. package/src/containers/RelatedArticle/RelatedArticle.tsx +1 -2
  222. package/src/containers/RenamePopover/RenamePopover.tsx +18 -5
  223. package/src/containers/RenamePopover/index.ts +1 -1
  224. package/src/containers/SchemaContainer/SchemaContainer.tsx +21 -17
  225. package/src/containers/SpaceHomeArticle/SpaceHomeArticle.tsx +1 -1
  226. package/src/containers/SpaceHomeRecent/SpaceHomeRecent.tsx +12 -10
  227. package/src/containers/SpacePresence/SpacePresence.tsx +22 -20
  228. package/src/containers/SpacePresence/index.ts +1 -1
  229. package/src/{components → containers}/SpaceSettings/SpaceSettings.stories.tsx +1 -1
  230. package/src/containers/SpaceSettings/SpaceSettings.tsx +75 -0
  231. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +115 -106
  232. package/src/containers/TypeCollectionArticle/TypeCollectionArticle.stories.tsx +116 -0
  233. package/src/containers/TypeCollectionArticle/TypeCollectionArticle.tsx +162 -0
  234. package/src/containers/TypeCollectionArticle/index.ts +5 -0
  235. package/src/containers/index.ts +4 -1
  236. package/src/errors.ts +11 -0
  237. package/src/index.ts +1 -0
  238. package/src/operations/add-object.ts +6 -5
  239. package/src/operations/add-type.ts +1 -1
  240. package/src/operations/create.ts +2 -2
  241. package/src/operations/definitions.ts +1 -2
  242. package/src/operations/join.ts +19 -0
  243. package/src/operations/migrate.ts +1 -1
  244. package/src/translations.ts +15 -6
  245. package/src/types/Settings.ts +10 -1
  246. package/src/types/capabilities.ts +1 -1
  247. package/src/util.ts +0 -1
  248. package/dist/lib/neutral/CreateObjectDialog-4VMOUKM7.mjs.map +0 -7
  249. package/dist/lib/neutral/JoinDialog-QZGNRJ4P.mjs.map +0 -7
  250. package/dist/lib/neutral/MembersContainer-OWCAMBKS.mjs.map +0 -7
  251. package/dist/lib/neutral/ObjectProperties-BF6KGFFC.mjs +0 -33
  252. package/dist/lib/neutral/ObjectProperties-BF6KGFFC.mjs.map +0 -7
  253. package/dist/lib/neutral/RelatedArticle-YRCRBIYU.mjs.map +0 -7
  254. package/dist/lib/neutral/RenamePopover-XBZAKNM7.mjs.map +0 -7
  255. package/dist/lib/neutral/SchemaContainer-2NK5YB5O.mjs.map +0 -7
  256. package/dist/lib/neutral/SpaceSettings-IVTCSLNT.mjs +0 -37
  257. package/dist/lib/neutral/SpaceSettings-IVTCSLNT.mjs.map +0 -7
  258. package/dist/lib/neutral/SpaceSettingsContainer-QAFQ4LWC.mjs.map +0 -7
  259. package/dist/lib/neutral/add-object-S64XELC3.mjs.map +0 -7
  260. package/dist/lib/neutral/app-graph-builder-TMAD2ZTH.mjs.map +0 -7
  261. package/dist/lib/neutral/chunk-2LTGSUGQ.mjs.map +0 -7
  262. package/dist/lib/neutral/chunk-DSYEB2UN.mjs.map +0 -7
  263. package/dist/lib/neutral/chunk-F2VJ6VBV.mjs.map +0 -7
  264. package/dist/lib/neutral/chunk-I5JXVBXX.mjs +0 -8
  265. package/dist/lib/neutral/create-object-22WUOWZQ.mjs.map +0 -7
  266. package/dist/lib/neutral/join-VY3QYBU7.mjs +0 -28
  267. package/dist/lib/neutral/join-VY3QYBU7.mjs.map +0 -7
  268. package/dist/lib/neutral/navigation-handler-IKXZGMII.mjs.map +0 -7
  269. package/dist/lib/neutral/navigation-resolver-VBPGMFCE.mjs.map +0 -7
  270. package/dist/lib/neutral/react-surface-5EQ6X4CL.mjs.map +0 -7
  271. package/dist/types/src/components/SpaceSettings/SpaceSettings.d.ts +0 -8
  272. package/dist/types/src/components/SpaceSettings/SpaceSettings.d.ts.map +0 -1
  273. package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts +0 -10
  274. package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts.map +0 -1
  275. package/dist/types/src/containers/ObjectProperties/index.d.ts +0 -2
  276. package/dist/types/src/containers/ObjectProperties/index.d.ts.map +0 -1
  277. package/src/components/SpaceSettings/SpaceSettings.tsx +0 -56
  278. package/src/containers/ObjectProperties/ObjectProperties.tsx +0 -32
  279. package/src/containers/ObjectProperties/index.ts +0 -5
  280. /package/dist/lib/neutral/{MenuFooter-QCNFUIAO.mjs.map → MenuFooter-FWE5LFM4.mjs.map} +0 -0
  281. /package/dist/lib/neutral/{SmallPresenceLive-L4H7WJOA.mjs.map → SmallPresenceLive-FW3AMEY5.mjs.map} +0 -0
  282. /package/dist/lib/neutral/{SpacePresence-PDTEDHDE.mjs.map → SpacePresence-T37WH43Y.mjs.map} +0 -0
  283. /package/dist/lib/neutral/{add-relation-GWSE42BU.mjs.map → add-relation-BGTLART5.mjs.map} +0 -0
  284. /package/dist/lib/neutral/{chunk-2RPQHHD7.mjs.map → chunk-C2ULK22J.mjs.map} +0 -0
  285. /package/dist/lib/neutral/{chunk-I5JXVBXX.mjs.map → chunk-U5WTDOMV.mjs.map} +0 -0
  286. /package/dist/lib/neutral/{close-YZHFYPUN.mjs.map → close-5WEQZRNK.mjs.map} +0 -0
  287. /package/dist/lib/neutral/{delete-EFM7CAVO.mjs.map → delete-SPCU2VFM.mjs.map} +0 -0
  288. /package/dist/lib/neutral/{delete-field-ONAPFFO5.mjs.map → delete-field-TAKJVEAD.mjs.map} +0 -0
  289. /package/dist/lib/neutral/{duplicate-object-OJRPFV5I.mjs.map → duplicate-object-BUPZOO6S.mjs.map} +0 -0
  290. /package/dist/lib/neutral/{export-space-M5RNVUQX.mjs.map → export-space-S5SCAL4M.mjs.map} +0 -0
  291. /package/dist/lib/neutral/{get-share-link-FUQBJPSQ.mjs.map → get-share-link-CLM5IQRL.mjs.map} +0 -0
  292. /package/dist/lib/neutral/{import-space-L3AUIARM.mjs.map → import-space-LJQK3KT7.mjs.map} +0 -0
  293. /package/dist/lib/neutral/{open-RRYULTSY.mjs.map → open-JCXTL3SK.mjs.map} +0 -0
  294. /package/dist/lib/neutral/{open-create-object-BRUVFZSY.mjs.map → open-create-object-WAIAU7TA.mjs.map} +0 -0
  295. /package/dist/lib/neutral/{open-create-space-ARLQWW65.mjs.map → open-create-space-VU47FWPZ.mjs.map} +0 -0
  296. /package/dist/lib/neutral/{open-import-space-65H57JXX.mjs.map → open-import-space-GUHIEWYB.mjs.map} +0 -0
  297. /package/dist/lib/neutral/{open-members-677P6KD3.mjs.map → open-members-MLLBHKUU.mjs.map} +0 -0
  298. /package/dist/lib/neutral/{open-settings-PRBSGO6D.mjs.map → open-settings-DTPZF4U4.mjs.map} +0 -0
  299. /package/dist/lib/neutral/{remove-objects-PWJJI36V.mjs.map → remove-objects-WEO66EDS.mjs.map} +0 -0
  300. /package/dist/lib/neutral/{rename-4727PKI4.mjs.map → rename-Q6UNCBIM.mjs.map} +0 -0
  301. /package/dist/lib/neutral/{rename-object-FXUAB5FN.mjs.map → rename-object-2UCEGU7U.mjs.map} +0 -0
  302. /package/dist/lib/neutral/{restore-field-3ICSIHGA.mjs.map → restore-field-6CQAFOXY.mjs.map} +0 -0
  303. /package/dist/lib/neutral/{restore-objects-V2BTEWN3.mjs.map → restore-objects-3VINLP7C.mjs.map} +0 -0
  304. /package/dist/lib/neutral/{share-ZOZPAUGI.mjs.map → share-A4WPILNF.mjs.map} +0 -0
  305. /package/dist/lib/neutral/{snapshot-ZC5PU55W.mjs.map → snapshot-HBYMAPA7.mjs.map} +0 -0
  306. /package/dist/lib/neutral/{wait-for-object-WURK2SLQ.mjs.map → wait-for-object-U6P2NNWY.mjs.map} +0 -0
  307. /package/dist/types/src/{components → containers}/SpaceSettings/index.d.ts +0 -0
  308. /package/src/{components → containers}/SpaceSettings/index.ts +0 -0
@@ -8,7 +8,7 @@ import { AppSurface } from '@dxos/app-toolkit/ui';
8
8
  import { Type } from '@dxos/echo';
9
9
  import { type Space } from '@dxos/react-client/echo';
10
10
  import { useTranslation } from '@dxos/react-ui';
11
- import { Settings } from '@dxos/react-ui-form';
11
+ import { Form } from '@dxos/react-ui-form';
12
12
  import { mx } from '@dxos/ui-theme';
13
13
 
14
14
  import { meta } from '#meta';
@@ -18,22 +18,26 @@ export const SchemaContainer = ({ space }: AppSurface.SpaceArticleProps) => {
18
18
  const types = useQuerySpaceTypes(space);
19
19
 
20
20
  return (
21
- <Settings.Viewport>
22
- <Settings.Section title={t('schema-verbose.label')} description={t('schema.description')}>
23
- <div
24
- className={mx([
25
- 'grid md:col-span-2 grid-cols-subgrid gap-trim-sm items-center',
26
- '*:first:mt-0! *:last:mb-0! px-trim-md py-trim-md',
27
- 'border border-separator rounded-md',
28
- ])}
29
- >
30
- {types.length === 0 && <div className='text-center py-4'>{t('no-schemas-found.message')}</div>}
31
- {types.map((type) => (
32
- <div key={type.id}>{Type.getTypename(type)}</div>
33
- ))}
34
- </div>
35
- </Settings.Section>
36
- </Settings.Viewport>
21
+ <Form.Root variant='settings'>
22
+ <Form.Viewport scroll>
23
+ <Form.Content>
24
+ <Form.Section title={t('schema-verbose.label')} description={t('schema.description')}>
25
+ <div
26
+ className={mx([
27
+ 'grid md:col-span-2 grid-cols-subgrid gap-trim-sm items-center',
28
+ '*:first:mt-0! *:last:mb-0! px-trim-md py-trim-md',
29
+ 'border border-separator rounded-md',
30
+ ])}
31
+ >
32
+ {types.length === 0 && <div className='text-center py-4'>{t('no-schemas-found.message')}</div>}
33
+ {types.map((type) => (
34
+ <div key={type.id}>{Type.getTypename(type)}</div>
35
+ ))}
36
+ </div>
37
+ </Form.Section>
38
+ </Form.Content>
39
+ </Form.Viewport>
40
+ </Form.Root>
37
41
  );
38
42
  };
39
43
 
@@ -46,7 +46,7 @@ export const SpaceHomeArticle = ({ role, attendableId, space }: SpaceHomeArticle
46
46
  <Column.Root style={{ gridTemplateRows: 'minmax(0,1fr) auto' }}>
47
47
  <ScrollArea.Root orientation='vertical' centered padding>
48
48
  <ScrollArea.Viewport>
49
- <div className='dx-document flex flex-col gap-4 py-4'>
49
+ <div className='dx-document flex flex-col gap-4 pb-12'>
50
50
  <Surface.Surface type={SpaceHomeContent} data={{ space }} />
51
51
  </div>
52
52
  </ScrollArea.Viewport>
@@ -52,21 +52,23 @@ export const SpaceHomeRecent = ({ space }: SpaceScopedProps) => {
52
52
  .limit(RECENT_LIMIT),
53
53
  [filter],
54
54
  );
55
- const recent = useQuery(filter && space ? space.db : undefined, query);
56
55
 
56
+ const recent = useQuery(filter && space ? space.db : undefined, query);
57
57
  if (recent.length === 0) {
58
58
  return null;
59
59
  }
60
60
 
61
61
  return (
62
- <>
63
- <h2 className='text-sm font-medium text-description'>{t('space-home.recent.heading')}</h2>
64
- <Masonry.Root Tile={RecentObjectTile}>
65
- <Masonry.Content padding={false}>
66
- <Masonry.Viewport classNames='py-2' items={recent} getId={(object) => object.id} />
67
- </Masonry.Content>
68
- </Masonry.Root>
69
- </>
62
+ <div className='flex justify-center w-full'>
63
+ <div className='flex flex-col w-full max-w-[40rem]'>
64
+ <h2 className='text-sm font-medium text-description'>{t('space-home.recent.heading')}</h2>
65
+ <Masonry.Root Tile={RecentObjectTile}>
66
+ <Masonry.Content classNames='pt-trim-sm' padding={false} scrollbars={false}>
67
+ <Masonry.Viewport items={recent} getId={(object) => object.id} />
68
+ </Masonry.Content>
69
+ </Masonry.Root>
70
+ </div>
71
+ </div>
70
72
  );
71
73
  };
72
74
 
@@ -87,7 +89,7 @@ const RecentObjectTile = ({ data }: { data: Obj.Unknown; index: number }) => {
87
89
  }, [invokePromise, data]);
88
90
 
89
91
  return (
90
- <Card.Root role='button' classNames='cursor-pointer' onClick={handleClick}>
92
+ <Card.Root role='button' fullWidth classNames='cursor-pointer' onClick={handleClick}>
91
93
  <Card.Header>
92
94
  <Card.Block>
93
95
  <Icon icon={icon} classNames={iconStyles?.text} />
@@ -14,8 +14,6 @@ import {
14
14
  Avatar,
15
15
  type AvatarContentProps,
16
16
  type DxAvatar,
17
- List,
18
- ListItem,
19
17
  Popover,
20
18
  type Size,
21
19
  type ThemedClassName,
@@ -24,6 +22,7 @@ import {
24
22
  useTranslation,
25
23
  } from '@dxos/react-ui';
26
24
  import { AttentionGlyph, type AttentionGlyphProps, useAttention } from '@dxos/react-ui-attention';
25
+ import { Listbox } from '@dxos/react-ui-list';
27
26
  import { ComplexMap, keyToFallback } from '@dxos/util';
28
27
 
29
28
  import { meta } from '#meta';
@@ -151,24 +150,27 @@ export const FullPresence = (props: MemberPresenceProps) => {
151
150
  <Popover.Content side='bottom'>
152
151
  <Popover.Arrow />
153
152
  <Popover.Viewport classNames='max-h-56'>
154
- <List>
155
- {members.map((member) => (
156
- <ListItem.Root
157
- key={member.identity.identityKey.toHex()}
158
- classNames='flex gap-2 items-center cursor-pointer mb-2'
159
- onClick={() => onMemberClick?.(member)}
160
- data-testid='identity-list-item'
161
- >
162
- {/* TODO(Zan): Match always true now we're showing 'members viewing current object'. */}
163
- <PresenceAvatar
164
- identity={member.identity}
165
- size={size}
166
- showName
167
- match={member.currentlyAttended}
168
- />
169
- </ListItem.Root>
170
- ))}
171
- </List>
153
+ <Listbox.Root>
154
+ <Listbox.Content aria-label='members'>
155
+ {members.map((member) => (
156
+ <Listbox.Item
157
+ key={member.identity.identityKey.toHex()}
158
+ id={member.identity.identityKey.toHex()}
159
+ classNames='flex gap-2 items-center cursor-pointer mb-2'
160
+ onClick={() => onMemberClick?.(member)}
161
+ data-testid='identity-list-item'
162
+ >
163
+ {/* TODO(Zan): Match always true now we're showing 'members viewing current object'. */}
164
+ <PresenceAvatar
165
+ identity={member.identity}
166
+ size={size}
167
+ showName
168
+ match={member.currentlyAttended}
169
+ />
170
+ </Listbox.Item>
171
+ ))}
172
+ </Listbox.Content>
173
+ </Listbox.Root>
172
174
  </Popover.Viewport>
173
175
  </Popover.Content>
174
176
  </Popover.Portal>
@@ -2,5 +2,5 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export { SpacePresence, SmallPresenceLive } from './SpacePresence';
5
+ export { SmallPresenceLive, SpacePresence } from './SpacePresence';
6
6
  export { SpacePresence as default } from './SpacePresence';
@@ -11,7 +11,7 @@ import { translations } from '#translations';
11
11
  import { SpaceSettings } from './SpaceSettings';
12
12
 
13
13
  const meta = {
14
- title: 'plugins/plugin-space/components/SpaceSettings',
14
+ title: 'plugins/plugin-space/containers/SpaceSettings',
15
15
  component: SpaceSettings,
16
16
  tags: ['settings'],
17
17
  decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
@@ -0,0 +1,75 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { AppSpace } from '@dxos/app-toolkit';
8
+ import { type Space } from '@dxos/react-client/echo';
9
+ import { IconButton, Input, toLocalizedString, useTranslation } from '@dxos/react-ui';
10
+ import { Form } from '@dxos/react-ui-form';
11
+ import { Listbox } from '@dxos/react-ui-list';
12
+
13
+ import { meta } from '#meta';
14
+ import { type Settings } from '#types';
15
+
16
+ import { getSpaceDisplayName } from '../../util';
17
+
18
+ export type SpaceSettingsProps = {
19
+ spaces?: Space[];
20
+ onOpenSpaceSettings?: (space: Space) => void;
21
+ settings?: Settings.Settings;
22
+ onSettingsChange?: (updater: (prev: Settings.Settings) => Settings.Settings) => void;
23
+ };
24
+
25
+ export const SpaceSettings = ({ spaces, onOpenSpaceSettings, settings, onSettingsChange }: SpaceSettingsProps) => {
26
+ const { t } = useTranslation(meta.profile.key);
27
+
28
+ return (
29
+ <Form.Root variant='settings'>
30
+ <Form.Viewport scroll>
31
+ <Form.Content>
32
+ <Form.Section title={t('plugin.name')}>
33
+ <Form.Row label={t('settings.show-hidden.label')} description={t('settings.show-hidden.description')}>
34
+ <Input.Root>
35
+ <Input.Switch
36
+ disabled={!onSettingsChange}
37
+ checked={settings?.showHidden}
38
+ onCheckedChange={(checked) => onSettingsChange?.((s) => ({ ...s, showHidden: !!checked }))}
39
+ />
40
+ </Input.Root>
41
+ </Form.Row>
42
+ </Form.Section>
43
+ <Form.Section title={t('space-settings.label')} description={t('space-settings.description')}>
44
+ <Form.Row label={t('settings.space-list.label')} description={t('settings.space-list.description')}>
45
+ <Listbox.Root>
46
+ <Listbox.Content aria-label={t('settings.space-list.label')} classNames='w-full gap-trim-sm'>
47
+ {spaces?.map((space) => (
48
+ <Listbox.Item key={space.id} id={space.id} classNames='w-full items-center'>
49
+ {/* TODO(burdon): Should auto center and truncate; NOTE truncate doesn't work with flex grow. */}
50
+ <Listbox.ItemLabel classNames='min-h-0!'>
51
+ {toLocalizedString(
52
+ getSpaceDisplayName(space, {
53
+ personal: AppSpace.isPersonalSpace(space),
54
+ }),
55
+ t,
56
+ )}
57
+ </Listbox.ItemLabel>
58
+ <IconButton
59
+ icon='ph--faders--regular'
60
+ iconOnly
61
+ label={t('settings.open-settings.label')}
62
+ disabled={!onOpenSpaceSettings}
63
+ onClick={() => onOpenSpaceSettings?.(space)}
64
+ />
65
+ </Listbox.Item>
66
+ ))}
67
+ </Listbox.Content>
68
+ </Listbox.Root>
69
+ </Form.Row>
70
+ </Form.Section>
71
+ </Form.Content>
72
+ </Form.Viewport>
73
+ </Form.Root>
74
+ );
75
+ };
@@ -6,7 +6,7 @@ import * as Schema from 'effect/Schema';
6
6
  import React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';
7
7
 
8
8
  import { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';
9
- import { AppSpace, Paths, LayoutOperation } from '@dxos/app-toolkit';
9
+ import { AppSpace, LayoutOperation, Paths } from '@dxos/app-toolkit';
10
10
  import { AppSurface } from '@dxos/app-toolkit/ui';
11
11
  import { Obj } from '@dxos/echo';
12
12
  import { log } from '@dxos/log';
@@ -14,7 +14,7 @@ import { SpaceArchive } from '@dxos/protocols/proto/dxos/client/services';
14
14
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
15
15
  import { useClient } from '@dxos/react-client';
16
16
  import { Button, Dialog, DropdownMenu, Icon, IconButton, Input, useTranslation } from '@dxos/react-ui';
17
- import { Form, type FormFieldMap, Settings } from '@dxos/react-ui-form';
17
+ import { Form, type FormFieldMap } from '@dxos/react-ui-form';
18
18
  import { HuePicker, IconPicker } from '@dxos/react-ui-pickers';
19
19
 
20
20
  import { meta } from '#meta';
@@ -90,14 +90,16 @@ export const SpaceSettingsContainer = ({ space }: AppSurface.SpaceArticleProps)
90
90
  [onValueChange, type],
91
91
  );
92
92
  return (
93
- <Settings.Item title={label} description={t('display-name.description')}>
94
- <Input.TextInput
95
- value={getValue()}
96
- onChange={handleChange}
97
- placeholder={t('display-name-input.placeholder')}
98
- classNames='min-w-64'
99
- />
100
- </Settings.Item>
93
+ <Form.Row label={label} description={t('display-name.description')}>
94
+ <Input.Root>
95
+ <Input.TextInput
96
+ value={getValue()}
97
+ onChange={handleChange}
98
+ placeholder={t('display-name-input.placeholder')}
99
+ classNames='min-w-64'
100
+ />
101
+ </Input.Root>
102
+ </Form.Row>
101
103
  );
102
104
  },
103
105
  icon: personal
@@ -106,31 +108,33 @@ export const SpaceSettingsContainer = ({ space }: AppSurface.SpaceArticleProps)
106
108
  const handleChange = useCallback((icon: string) => onValueChange(type, icon), [onValueChange, type]);
107
109
  const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);
108
110
  return (
109
- <Settings.Item title={label} description={t('icon.description')}>
111
+ <Form.Row label={label} description={t('icon.description')}>
110
112
  <IconPicker
111
113
  value={getValue()}
112
114
  onChange={handleChange}
113
115
  onReset={handleReset}
114
116
  classNames='justify-self-end'
115
117
  />
116
- </Settings.Item>
118
+ </Form.Row>
117
119
  );
118
120
  },
119
121
  hue: ({ type, label, getValue, onValueChange }) => {
120
122
  const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange, type]);
121
123
  const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);
122
124
  return (
123
- <Settings.Item title={label} description={t('hue.description')}>
125
+ <Form.Row label={label} description={t('hue.description')}>
124
126
  <HuePicker value={getValue()} onChange={handleChange} onReset={handleReset} classNames='justify-self-end' />
125
- </Settings.Item>
127
+ </Form.Row>
126
128
  );
127
129
  },
128
130
  edgeReplication: ({ type, label, getValue, onValueChange }) => {
129
131
  const handleChange = useCallback((checked: boolean) => onValueChange(type, checked), [onValueChange, type]);
130
132
  return (
131
- <Settings.Item title={label} description={t('edge-replication.description')}>
132
- <Input.Switch checked={getValue()} onCheckedChange={handleChange} classNames='justify-self-end' />
133
- </Settings.Item>
133
+ <Form.Row label={label} description={t('edge-replication.description')}>
134
+ <Input.Root>
135
+ <Input.Switch checked={getValue()} onCheckedChange={handleChange} classNames='justify-self-end' />
136
+ </Input.Root>
137
+ </Form.Row>
134
138
  );
135
139
  },
136
140
  }),
@@ -171,97 +175,102 @@ export const SpaceSettingsContainer = ({ space }: AppSurface.SpaceArticleProps)
171
175
  }, [space, client, invokePromise, t]);
172
176
 
173
177
  return (
174
- <Settings.Viewport>
175
- <Settings.Section
176
- title={t('space-properties-settings-verbose.label')}
177
- description={t('space-properties-settings.description', { ns: meta.profile.key })}
178
- >
179
- <Form.Root
180
- key={space.id}
181
- fieldMap={fieldMap}
182
- schema={SpaceFormSchema}
183
- defaultValues={defaultValues}
184
- onValuesChanged={handleValuesChanged}
185
- >
186
- <Form.FieldSet />
187
- </Form.Root>
188
- </Settings.Section>
178
+ <Form.Root
179
+ variant='settings'
180
+ key={space.id}
181
+ fieldMap={fieldMap}
182
+ schema={SpaceFormSchema}
183
+ defaultValues={defaultValues}
184
+ onValuesChanged={handleValuesChanged}
185
+ >
186
+ <Form.Viewport scroll>
187
+ <Form.Content>
188
+ <Form.Section
189
+ title={t('space-properties-settings-verbose.label')}
190
+ description={t('space-properties-settings.description', { ns: meta.profile.key })}
191
+ >
192
+ <Form.FieldSet />
193
+ </Form.Section>
189
194
 
190
- <Settings.Section title={t('space-controls.title')} description={t('space-controls.description')}>
191
- <Settings.Item title={t('space-key.title')} description={t('space-key.description')}>
192
- <div className='flex items-center gap-2'>
193
- <Input.Root>
194
- <Input.TextInput value={space.key.toHex()} disabled classNames='flex-1 font-mono text-xs' />
195
- </Input.Root>
196
- <IconButton
197
- icon='ph--copy--regular'
198
- iconOnly
199
- label={t('copy-space-key.label')}
200
- onClick={() => {
201
- void navigator.clipboard.writeText(space.key.toHex());
202
- }}
203
- />
204
- </div>
205
- </Settings.Item>
206
- <Settings.Item title={t('backup-space.title')} description={t('backup-space.description')}>
207
- <DropdownMenu.Root>
208
- <DropdownMenu.Trigger asChild>
209
- <Button>
210
- {t('download-backup.label')}
211
- <Icon icon='ph--caret-down--regular' size={4} classNames='mis-2' />
212
- </Button>
213
- </DropdownMenu.Trigger>
214
- <DropdownMenu.Content>
215
- <DropdownMenu.Viewport>
216
- <DropdownMenu.Item onClick={handleBackupBinary}>{t('download-backup-binary.label')}</DropdownMenu.Item>
217
- <DropdownMenu.Item onClick={handleBackupJson}>{t('download-backup-json.label')}</DropdownMenu.Item>
218
- </DropdownMenu.Viewport>
219
- </DropdownMenu.Content>
220
- </DropdownMenu.Root>
221
- </Settings.Item>
222
- <Settings.Item title={t('repair-space.title')} description={t('repair-space.description')}>
223
- <Button onClick={handleRepair}>{t('repair-space.label')}</Button>
224
- </Settings.Item>
225
- </Settings.Section>
195
+ <Form.Section title={t('space-controls.title')} description={t('space-controls.description')}>
196
+ <Form.Row label={t('space-id.title')} description={t('space-id.description')}>
197
+ <div className='flex items-center gap-2'>
198
+ <Input.Root>
199
+ <Input.TextInput value={space.id} disabled classNames='flex-1 font-mono text-xs' />
200
+ </Input.Root>
201
+ <IconButton
202
+ icon='ph--copy--regular'
203
+ iconOnly
204
+ label={t('copy-space-id.label')}
205
+ onClick={() => {
206
+ void navigator.clipboard.writeText(space.id);
207
+ }}
208
+ />
209
+ </div>
210
+ </Form.Row>
211
+ <Form.Row label={t('backup-space.title')} description={t('backup-space.description')}>
212
+ <DropdownMenu.Root>
213
+ <DropdownMenu.Trigger asChild>
214
+ <Button>
215
+ {t('download-backup.label')}
216
+ <Icon icon='ph--caret-down--regular' size={4} classNames='mis-2' />
217
+ </Button>
218
+ </DropdownMenu.Trigger>
219
+ <DropdownMenu.Content>
220
+ <DropdownMenu.Viewport>
221
+ <DropdownMenu.Item onClick={handleBackupBinary}>
222
+ {t('download-backup-binary.label')}
223
+ </DropdownMenu.Item>
224
+ <DropdownMenu.Item onClick={handleBackupJson}>{t('download-backup-json.label')}</DropdownMenu.Item>
225
+ </DropdownMenu.Viewport>
226
+ </DropdownMenu.Content>
227
+ </DropdownMenu.Root>
228
+ </Form.Row>
229
+ <Form.Row label={t('repair-space.title')} description={t('repair-space.description')}>
230
+ <Button onClick={handleRepair}>{t('repair-space.label')}</Button>
231
+ </Form.Row>
232
+ </Form.Section>
226
233
 
227
- <Settings.Section title={t('danger-zone.title')} description={t('danger-zone.description')}>
228
- {!personal && (
229
- <Settings.Item title={t('delete-space.title')} description={t('delete-space.description')}>
230
- <Dialog.Root open={deleteConfirmOpen} onOpenChange={setDeleteConfirmOpen}>
231
- <Dialog.Trigger asChild>
232
- <Button variant='destructive' data-testid='spaceSettings.deleteSpace'>
233
- {t('delete-space.label')}
234
- </Button>
235
- </Dialog.Trigger>
236
- <Dialog.Portal>
237
- <Dialog.Overlay>
238
- <Dialog.Content>
239
- <Dialog.Header>
240
- <Dialog.Title>{t('delete-space-confirm.title')}</Dialog.Title>
241
- </Dialog.Header>
242
- <Dialog.Body>
243
- <Dialog.Description>{t('delete-space-confirm.description')}</Dialog.Description>
244
- <div className='flex justify-end gap-2 mbs-4'>
245
- <Dialog.Close asChild>
246
- <Button>{t('cancel.label')}</Button>
247
- </Dialog.Close>
248
- <Button
249
- variant='destructive'
250
- onClick={handleDelete}
251
- data-testid='spaceSettings.deleteSpaceConfirm'
252
- >
253
- {t('delete-space.label')}
254
- </Button>
255
- </div>
256
- </Dialog.Body>
257
- </Dialog.Content>
258
- </Dialog.Overlay>
259
- </Dialog.Portal>
260
- </Dialog.Root>
261
- </Settings.Item>
262
- )}
263
- </Settings.Section>
264
- </Settings.Viewport>
234
+ {!personal && (
235
+ <Form.Section title={t('danger-zone.title')} description={t('danger-zone.description')}>
236
+ <Form.Row label={t('delete-space.title')} description={t('delete-space.description')}>
237
+ <Dialog.Root open={deleteConfirmOpen} onOpenChange={setDeleteConfirmOpen}>
238
+ <Dialog.Trigger asChild>
239
+ <Button variant='destructive' data-testid='spaceSettings.deleteSpace'>
240
+ {t('delete-space.label')}
241
+ </Button>
242
+ </Dialog.Trigger>
243
+ <Dialog.Portal>
244
+ <Dialog.Overlay>
245
+ <Dialog.Content>
246
+ <Dialog.Header>
247
+ <Dialog.Title>{t('delete-space-confirm.title')}</Dialog.Title>
248
+ </Dialog.Header>
249
+ <Dialog.Body>
250
+ <Dialog.Description>{t('delete-space-confirm.description')}</Dialog.Description>
251
+ <div className='flex justify-end gap-2 mbs-4'>
252
+ <Dialog.Close asChild>
253
+ <Button>{t('cancel.label')}</Button>
254
+ </Dialog.Close>
255
+ <Button
256
+ variant='destructive'
257
+ onClick={handleDelete}
258
+ data-testid='spaceSettings.deleteSpaceConfirm'
259
+ >
260
+ {t('delete-space.label')}
261
+ </Button>
262
+ </div>
263
+ </Dialog.Body>
264
+ </Dialog.Content>
265
+ </Dialog.Overlay>
266
+ </Dialog.Portal>
267
+ </Dialog.Root>
268
+ </Form.Row>
269
+ </Form.Section>
270
+ )}
271
+ </Form.Content>
272
+ </Form.Viewport>
273
+ </Form.Root>
265
274
  );
266
275
  };
267
276