@dxos/plugin-space 0.8.2-main.12df754 → 0.8.2-main.2f9c567

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 (191) hide show
  1. package/dist/lib/browser/{app-graph-builder-J4PN5HOM.mjs → app-graph-builder-I2BU35J5.mjs} +6 -6
  2. package/dist/lib/browser/app-graph-builder-I2BU35J5.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-6WIAFHYK.mjs → app-graph-serializer-HPYDOKA5.mjs} +4 -4
  4. package/dist/lib/browser/{chunk-MIJHUABE.mjs → chunk-OS5QKO4Z.mjs} +2 -2
  5. package/dist/lib/browser/{chunk-FSHDAPFY.mjs → chunk-RERTVPBV.mjs} +2 -2
  6. package/dist/lib/browser/chunk-RERTVPBV.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-MHTZAZT2.mjs → chunk-TSX67XGX.mjs} +136 -138
  8. package/dist/lib/browser/chunk-TSX67XGX.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-YQNBTJI4.mjs +308 -0
  10. package/dist/lib/browser/chunk-YQNBTJI4.mjs.map +7 -0
  11. package/dist/lib/browser/{identity-created-DVHNLGYU.mjs → identity-created-DWFKBGOA.mjs} +2 -2
  12. package/dist/lib/browser/index.mjs +13 -16
  13. package/dist/lib/browser/index.mjs.map +3 -3
  14. package/dist/lib/browser/{intent-resolver-72IWBVYE.mjs → intent-resolver-GKDCJ4H2.mjs} +83 -69
  15. package/dist/lib/browser/intent-resolver-GKDCJ4H2.mjs.map +7 -0
  16. package/dist/lib/browser/meta.json +1 -1
  17. package/dist/lib/browser/{react-root-DRVM5ACV.mjs → react-root-667IZ2Q4.mjs} +4 -4
  18. package/dist/lib/browser/{react-surface-KODNQYDN.mjs → react-surface-I4RNTGGN.mjs} +5 -22
  19. package/dist/lib/browser/react-surface-I4RNTGGN.mjs.map +7 -0
  20. package/dist/lib/browser/{schema-FHTA26SW.mjs → schema-defs-FLFEUSLB.mjs} +4 -4
  21. package/dist/lib/browser/{schema-FHTA26SW.mjs.map → schema-defs-FLFEUSLB.mjs.map} +2 -2
  22. package/dist/lib/browser/{schema-tools-YAXPRIXP.mjs → schema-tools-MYC4LTQD.mjs} +22 -22
  23. package/dist/lib/browser/schema-tools-MYC4LTQD.mjs.map +7 -0
  24. package/dist/lib/browser/{settings-2UIV5WX5.mjs → settings-ILGGNYJ7.mjs} +2 -2
  25. package/dist/lib/browser/{spaces-ready-3URIMLCR.mjs → spaces-ready-IXZF3RWW.mjs} +3 -3
  26. package/dist/lib/browser/types/index.mjs +1 -1
  27. package/dist/lib/node/{app-graph-builder-3BNPC5GB.cjs → app-graph-builder-H7MDHM3X.cjs} +34 -34
  28. package/dist/lib/node/app-graph-builder-H7MDHM3X.cjs.map +7 -0
  29. package/dist/lib/node/{app-graph-serializer-GOLCQHFQ.cjs → app-graph-serializer-G7UYFWG6.cjs} +20 -20
  30. package/dist/lib/node/chunk-AR3JHVCY.cjs +336 -0
  31. package/dist/lib/node/chunk-AR3JHVCY.cjs.map +7 -0
  32. package/dist/lib/node/{chunk-U63V2254.cjs → chunk-EG3WAZLA.cjs} +27 -27
  33. package/dist/lib/node/chunk-EG3WAZLA.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-GPZPEQXP.cjs → chunk-HD4C6KKO.cjs} +183 -185
  35. package/dist/lib/node/chunk-HD4C6KKO.cjs.map +7 -0
  36. package/dist/lib/node/{chunk-EI3ZPOLJ.cjs → chunk-NCSFM6RA.cjs} +6 -6
  37. package/dist/lib/node/{identity-created-YYTW4K3Z.cjs → identity-created-YLGVEWAJ.cjs} +6 -6
  38. package/dist/lib/node/index.cjs +68 -71
  39. package/dist/lib/node/index.cjs.map +3 -3
  40. package/dist/lib/node/{intent-resolver-KA56XGUX.cjs → intent-resolver-V7UJKLE7.cjs} +129 -115
  41. package/dist/lib/node/intent-resolver-V7UJKLE7.cjs.map +7 -0
  42. package/dist/lib/node/meta.json +1 -1
  43. package/dist/lib/node/{react-root-6WGN5WRQ.cjs → react-root-I3SSFA5O.cjs} +8 -8
  44. package/dist/lib/node/{react-surface-37AVZFPL.cjs → react-surface-OLMQCCYD.cjs} +44 -61
  45. package/dist/lib/node/react-surface-OLMQCCYD.cjs.map +7 -0
  46. package/dist/lib/node/{schema-PPJ5BZ3A.cjs → schema-defs-PKZVL52M.cjs} +6 -6
  47. package/dist/lib/node/{schema-PPJ5BZ3A.cjs.map → schema-defs-PKZVL52M.cjs.map} +2 -2
  48. package/dist/lib/node/{schema-tools-BLIMOZYY.cjs → schema-tools-OE3MFYYH.cjs} +24 -24
  49. package/dist/lib/node/schema-tools-OE3MFYYH.cjs.map +7 -0
  50. package/dist/lib/node/{settings-HJROTHC4.cjs → settings-7TC55JP4.cjs} +6 -6
  51. package/dist/lib/node/{spaces-ready-IWDDIAAD.cjs → spaces-ready-4H3Q46GV.cjs} +11 -11
  52. package/dist/lib/node/types/index.cjs +15 -15
  53. package/dist/lib/node/types/index.cjs.map +1 -1
  54. package/dist/lib/node-esm/{app-graph-builder-OVMSUAX3.mjs → app-graph-builder-NI7X6W3Q.mjs} +6 -6
  55. package/dist/lib/node-esm/app-graph-builder-NI7X6W3Q.mjs.map +7 -0
  56. package/dist/lib/node-esm/{app-graph-serializer-AZXSO7HK.mjs → app-graph-serializer-CVPYWWW3.mjs} +4 -4
  57. package/dist/lib/node-esm/{chunk-TVN6VHTT.mjs → chunk-B2P24Q5R.mjs} +2 -2
  58. package/dist/lib/node-esm/chunk-B2P24Q5R.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-ABKX22IP.mjs → chunk-BU6F7ZU4.mjs} +136 -138
  60. package/dist/lib/node-esm/chunk-BU6F7ZU4.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-DUA32XUX.mjs → chunk-FUH5OODY.mjs} +2 -2
  62. package/dist/lib/node-esm/chunk-RUWTHAV7.mjs +309 -0
  63. package/dist/lib/node-esm/chunk-RUWTHAV7.mjs.map +7 -0
  64. package/dist/lib/node-esm/{identity-created-MP4GLXHO.mjs → identity-created-7NHGER3Q.mjs} +2 -2
  65. package/dist/lib/node-esm/index.mjs +13 -16
  66. package/dist/lib/node-esm/index.mjs.map +3 -3
  67. package/dist/lib/node-esm/{intent-resolver-SG2ECM5R.mjs → intent-resolver-IL63YTIT.mjs} +83 -69
  68. package/dist/lib/node-esm/intent-resolver-IL63YTIT.mjs.map +7 -0
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/{react-root-MSUT6S2S.mjs → react-root-JEGVIVVK.mjs} +4 -4
  71. package/dist/lib/node-esm/{react-surface-G73SO23W.mjs → react-surface-DRRXIJBE.mjs} +5 -22
  72. package/dist/lib/node-esm/react-surface-DRRXIJBE.mjs.map +7 -0
  73. package/dist/lib/node-esm/{schema-OUZKVYM5.mjs → schema-defs-IIEQR7B3.mjs} +4 -4
  74. package/dist/lib/node-esm/{schema-OUZKVYM5.mjs.map → schema-defs-IIEQR7B3.mjs.map} +2 -2
  75. package/dist/lib/node-esm/{schema-tools-IU7EX5A5.mjs → schema-tools-YTJLA3NQ.mjs} +22 -22
  76. package/dist/lib/node-esm/schema-tools-YTJLA3NQ.mjs.map +7 -0
  77. package/dist/lib/node-esm/{settings-KCLKPJVY.mjs → settings-CXMV2AFR.mjs} +2 -2
  78. package/dist/lib/node-esm/{spaces-ready-Z3SXKWX2.mjs → spaces-ready-QMXLQ4QV.mjs} +3 -3
  79. package/dist/lib/node-esm/types/index.mjs +1 -1
  80. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/index.d.ts +3 -2
  83. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -1
  85. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/{schema.d.ts → schema-defs.d.ts} +1 -1
  88. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/schema-tools.d.ts +2 -2
  90. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
  91. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  92. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  93. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  94. package/dist/types/src/components/MenuFooter.d.ts +2 -2
  95. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  96. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +2 -2
  97. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  98. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  99. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  100. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +2 -2
  101. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  102. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  103. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  104. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  105. package/dist/types/src/components/index.d.ts +0 -1
  106. package/dist/types/src/components/index.d.ts.map +1 -1
  107. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -2
  108. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  109. package/dist/types/src/types/collection.d.ts +9 -8
  110. package/dist/types/src/types/collection.d.ts.map +1 -1
  111. package/dist/types/src/types/thread.d.ts +329 -110
  112. package/dist/types/src/types/thread.d.ts.map +1 -1
  113. package/dist/types/src/types/types.d.ts +164 -136
  114. package/dist/types/src/types/types.d.ts.map +1 -1
  115. package/dist/types/src/util.d.ts +4 -4
  116. package/dist/types/src/util.d.ts.map +1 -1
  117. package/package.json +46 -45
  118. package/src/SpacePlugin.tsx +9 -8
  119. package/src/capabilities/app-graph-builder.ts +6 -6
  120. package/src/capabilities/index.ts +2 -2
  121. package/src/capabilities/intent-resolver.ts +77 -68
  122. package/src/capabilities/react-surface.tsx +13 -26
  123. package/src/capabilities/schema-tool.test.ts +2 -3
  124. package/src/capabilities/schema-tools.ts +25 -25
  125. package/src/components/CollectionMain.tsx +2 -5
  126. package/src/components/CreateDialog/CreateSpaceDialog.tsx +2 -3
  127. package/src/components/MembersContainer.tsx +23 -15
  128. package/src/components/MenuFooter.tsx +2 -2
  129. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +2 -2
  130. package/src/components/ObjectSettings/BaseObjectSettings.tsx +2 -2
  131. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +2 -2
  132. package/src/components/PopoverAddSpace.tsx +1 -1
  133. package/src/components/PopoverRenameObject.tsx +12 -6
  134. package/src/components/PopoverRenameSpace.tsx +8 -0
  135. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +5 -3
  136. package/src/components/index.ts +0 -1
  137. package/src/hooks/useInputSurfaceLookup.tsx +2 -2
  138. package/src/types/collection.ts +6 -4
  139. package/src/types/thread.ts +14 -8
  140. package/src/types/types.ts +122 -96
  141. package/src/util.tsx +9 -9
  142. package/dist/lib/browser/app-graph-builder-J4PN5HOM.mjs.map +0 -7
  143. package/dist/lib/browser/chunk-FSHDAPFY.mjs.map +0 -7
  144. package/dist/lib/browser/chunk-KDNV4YRD.mjs +0 -283
  145. package/dist/lib/browser/chunk-KDNV4YRD.mjs.map +0 -7
  146. package/dist/lib/browser/chunk-MHTZAZT2.mjs.map +0 -7
  147. package/dist/lib/browser/intent-resolver-72IWBVYE.mjs.map +0 -7
  148. package/dist/lib/browser/react-surface-KODNQYDN.mjs.map +0 -7
  149. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +0 -7
  150. package/dist/lib/node/app-graph-builder-3BNPC5GB.cjs.map +0 -7
  151. package/dist/lib/node/chunk-3UKLWXNJ.cjs +0 -311
  152. package/dist/lib/node/chunk-3UKLWXNJ.cjs.map +0 -7
  153. package/dist/lib/node/chunk-GPZPEQXP.cjs.map +0 -7
  154. package/dist/lib/node/chunk-U63V2254.cjs.map +0 -7
  155. package/dist/lib/node/intent-resolver-KA56XGUX.cjs.map +0 -7
  156. package/dist/lib/node/react-surface-37AVZFPL.cjs.map +0 -7
  157. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +0 -7
  158. package/dist/lib/node-esm/app-graph-builder-OVMSUAX3.mjs.map +0 -7
  159. package/dist/lib/node-esm/chunk-35OHQARN.mjs +0 -284
  160. package/dist/lib/node-esm/chunk-35OHQARN.mjs.map +0 -7
  161. package/dist/lib/node-esm/chunk-ABKX22IP.mjs.map +0 -7
  162. package/dist/lib/node-esm/chunk-TVN6VHTT.mjs.map +0 -7
  163. package/dist/lib/node-esm/intent-resolver-SG2ECM5R.mjs.map +0 -7
  164. package/dist/lib/node-esm/react-surface-G73SO23W.mjs.map +0 -7
  165. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +0 -7
  166. package/dist/types/src/capabilities/schema.d.ts.map +0 -1
  167. package/dist/types/src/components/ShareSpaceButton.d.ts +0 -9
  168. package/dist/types/src/components/ShareSpaceButton.d.ts.map +0 -1
  169. package/dist/types/src/components/ShareSpaceButton.stories.d.ts +0 -10
  170. package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +0 -1
  171. package/src/components/ShareSpaceButton.stories.tsx +0 -27
  172. package/src/components/ShareSpaceButton.tsx +0 -32
  173. /package/dist/lib/browser/{app-graph-serializer-6WIAFHYK.mjs.map → app-graph-serializer-HPYDOKA5.mjs.map} +0 -0
  174. /package/dist/lib/browser/{chunk-MIJHUABE.mjs.map → chunk-OS5QKO4Z.mjs.map} +0 -0
  175. /package/dist/lib/browser/{identity-created-DVHNLGYU.mjs.map → identity-created-DWFKBGOA.mjs.map} +0 -0
  176. /package/dist/lib/browser/{react-root-DRVM5ACV.mjs.map → react-root-667IZ2Q4.mjs.map} +0 -0
  177. /package/dist/lib/browser/{settings-2UIV5WX5.mjs.map → settings-ILGGNYJ7.mjs.map} +0 -0
  178. /package/dist/lib/browser/{spaces-ready-3URIMLCR.mjs.map → spaces-ready-IXZF3RWW.mjs.map} +0 -0
  179. /package/dist/lib/node/{app-graph-serializer-GOLCQHFQ.cjs.map → app-graph-serializer-G7UYFWG6.cjs.map} +0 -0
  180. /package/dist/lib/node/{chunk-EI3ZPOLJ.cjs.map → chunk-NCSFM6RA.cjs.map} +0 -0
  181. /package/dist/lib/node/{identity-created-YYTW4K3Z.cjs.map → identity-created-YLGVEWAJ.cjs.map} +0 -0
  182. /package/dist/lib/node/{react-root-6WGN5WRQ.cjs.map → react-root-I3SSFA5O.cjs.map} +0 -0
  183. /package/dist/lib/node/{settings-HJROTHC4.cjs.map → settings-7TC55JP4.cjs.map} +0 -0
  184. /package/dist/lib/node/{spaces-ready-IWDDIAAD.cjs.map → spaces-ready-4H3Q46GV.cjs.map} +0 -0
  185. /package/dist/lib/node-esm/{app-graph-serializer-AZXSO7HK.mjs.map → app-graph-serializer-CVPYWWW3.mjs.map} +0 -0
  186. /package/dist/lib/node-esm/{chunk-DUA32XUX.mjs.map → chunk-FUH5OODY.mjs.map} +0 -0
  187. /package/dist/lib/node-esm/{identity-created-MP4GLXHO.mjs.map → identity-created-7NHGER3Q.mjs.map} +0 -0
  188. /package/dist/lib/node-esm/{react-root-MSUT6S2S.mjs.map → react-root-JEGVIVVK.mjs.map} +0 -0
  189. /package/dist/lib/node-esm/{settings-KCLKPJVY.mjs.map → settings-CXMV2AFR.mjs.map} +0 -0
  190. /package/dist/lib/node-esm/{spaces-ready-Z3SXKWX2.mjs.map → spaces-ready-QMXLQ4QV.mjs.map} +0 -0
  191. /package/src/capabilities/{schema.ts → schema-defs.ts} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Schema as S } from 'effect';\nimport React, { useCallback } from 'react';\n\nimport { Capabilities, contributes, createSurface, Surface, useCapability, useLayout } from '@dxos/app-framework';\nimport { getSchema, isInstanceOf } from '@dxos/echo-schema';\nimport { findAnnotation } from '@dxos/effect';\nimport { SettingsStore } from '@dxos/local-storage';\nimport {\n getSpace,\n isEchoObject,\n isLiveObject,\n isSpace,\n parseId,\n SpaceState,\n useSpace,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { Form, type InputProps } from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport { SpaceCapabilities } from './capabilities';\nimport {\n CollectionMain,\n CollectionSection,\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n CreateObjectDialog,\n CreateSpaceDialog,\n InlineSyncStatus,\n JOIN_DIALOG,\n JoinDialog,\n MenuFooter,\n POPOVER_RENAME_OBJECT,\n POPOVER_RENAME_SPACE,\n PopoverRenameObject,\n PopoverRenameSpace,\n SmallPresenceLive,\n SpacePluginSettings,\n SpacePresence,\n SyncStatus,\n type CreateObjectDialogProps,\n POPOVER_ADD_SPACE,\n PopoverAddSpace,\n MembersContainer,\n ObjectSettingsContainer,\n SpaceSettingsContainer,\n SchemaContainer,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, HueAnnotationId, IconAnnotationId, type SpaceSettingsProps } from '../types';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SPACE_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data, role, ...rest }) => (\n <Surface\n data={{ id: data.subject.id, subject: data.subject.properties[CollectionType.typename]?.target }}\n role={role}\n {...rest}\n />\n ),\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: CollectionType } => isInstanceOf(CollectionType, data.subject),\n component: ({ data }) => <CollectionMain collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<SpaceSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SPACE_PLUGIN,\n component: ({ data: { subject } }) => <SpacePluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/companion/object-settings`,\n role: 'article',\n filter: (data): data is { companionTo: ReactiveEchoObject<any> } =>\n isEchoObject(data.companionTo) && data.subject === 'settings',\n component: ({ data, role }) => <ObjectSettingsContainer object={data.companionTo} role={role} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/space-settings-properties`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${SPACE_PLUGIN}/properties`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SpaceSettingsContainer space={space} />;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/space-settings-members`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: string } => data.subject === `${SPACE_PLUGIN}/members`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <MembersContainer space={space} createInvitationUrl={createInvitationUrl} />;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/space-settings-schema`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${SPACE_PLUGIN}/schema`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SchemaContainer space={space} />;\n },\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n createSurface({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n createSurface({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: CreateObjectDialogProps } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => <CreateObjectDialog {...data.props} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/create-initial-space-form-[hue]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: S.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, HueAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, disabled, type, getValue, onValueChange } = inputProps as any as InputProps;\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <HuePicker disabled={disabled} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/create-initial-space-form-[icon]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: S.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, IconAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, disabled, type, getValue, onValueChange } = inputProps as any as InputProps;\n const handleChange = useCallback((nextIcon: string) => onValueChange(type, nextIcon), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <IconPicker disabled={disabled} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/preview-popover`,\n role: 'popover',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => {\n const schema = getSchema(data.subject);\n if (!schema) {\n return null;\n }\n\n return <Form schema={schema} values={data.subject} readonly />;\n },\n }),\n createSurface({\n id: POPOVER_RENAME_SPACE,\n role: 'popover',\n filter: (data): data is { props: Space } => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),\n component: ({ data }) => <PopoverRenameSpace space={data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_OBJECT,\n role: 'popover',\n filter: (data): data is { props: ReactiveEchoObject<any> } =>\n data.component === POPOVER_RENAME_OBJECT && isLiveObject(data.props),\n component: ({ data }) => <PopoverRenameObject object={data.props} />,\n }),\n createSurface({\n id: POPOVER_ADD_SPACE,\n role: 'popover',\n filter: (data): data is any => data.component === POPOVER_ADD_SPACE,\n component: () => <PopoverAddSpace />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: ReactiveEchoObject<any>; open?: boolean } =>\n typeof data.id === 'string' && isEchoObject(data.subject),\n component: ({ data }) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const state = useCapability(SpaceCapabilities.MutableState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={state.viewersByObject[data.id]} />;\n },\n }),\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence-fallback`,\n role: 'navtree-item-end',\n position: 'fallback',\n filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',\n component: ({ data }) => <SmallPresenceLive id={data.id} open={data.open} />,\n }),\n // TODO(wittjosiah): Broken?\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-sync-status`,\n role: 'navtree-item-end',\n filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),\n component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | ReactiveEchoObject<any> } =>\n isSpace(data.subject) || isEchoObject(data.subject),\n component: ({ data }) => {\n const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);\n const object = isSpace(data.subject)\n ? data.subject.state.get() === SpaceState.SPACE_READY\n ? (space?.properties[CollectionType.typename]?.target as CollectionType)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: CollectionType } => isInstanceOf(CollectionType, data.subject),\n component: ({ data }) => <CollectionSection collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "Capabilities", "contributes", "createSurface", "Surface", "useCapability", "useLayout", "getSchema", "isInstanceOf", "findAnnotation", "SettingsStore", "getSpace", "isEchoObject", "isLiveObject", "isSpace", "parseId", "SpaceState", "useSpace", "Input", "Form", "HuePicker", "IconPicker", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SPACE_PLUGIN", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "Surface", "properties", "CollectionType", "typename", "target", "position", "isInstanceOf", "CollectionMain", "collection", "SettingsStore", "prefix", "SpacePluginSettings", "settings", "value", "isEchoObject", "companionTo", "ObjectSettingsContainer", "object", "layout", "useLayout", "spaceId", "parseId", "workspace", "space", "useSpace", "SpaceSettingsContainer", "MembersContainer", "SchemaContainer", "JOIN_DIALOG", "JoinDialog", "props", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "annotation", "findAnnotation", "schema", "ast", "HueAnnotationId", "_", "inputProps", "label", "disabled", "type", "getValue", "onValueChange", "handleChange", "useCallback", "nextHue", "handleReset", "undefined", "Input", "Root", "Label", "HuePicker", "onChange", "onReset", "IconAnnotationId", "nextIcon", "IconPicker", "getSchema", "Form", "values", "readonly", "POPOVER_RENAME_SPACE", "PopoverRenameSpace", "POPOVER_RENAME_OBJECT", "isLiveObject", "PopoverRenameObject", "POPOVER_ADD_SPACE", "PopoverAddSpace", "MenuFooter", "useCapability", "SpaceCapabilities", "MutableState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "SpacePresence", "CollectionSection", "SyncStatus"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/schema-tools.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { DescriptionAnnotationId, ExamplesAnnotationId, TitleAnnotationId } from 'effect/SchemaAST';\n\nimport { Capabilities, contributes, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { defineTool, ToolResult } from '@dxos/artifact';\nimport { type Space } from '@dxos/client/echo';\nimport { FormatEnum, FormatEnums, S, SelectOptionSchema, GeoPoint, toJsonSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { hues } from '@dxos/react-ui-theme';\nimport { getSchemaFromPropertyDefinitions } from '@dxos/schema';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\n// TODO(ZaymonFC): Move this somewhere common.\nexport const TypeNameSchema = S.String.pipe(\n S.pattern(/^\\w+\\.\\w{2,}\\/[\\w/]+$/i),\n S.annotations({\n [TitleAnnotationId]: 'TypeName',\n [DescriptionAnnotationId]:\n 'Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.',\n [ExamplesAnnotationId]: ['example.com/type/Document', 'example.com/type/FlightList'],\n }),\n);\n\nconst formatDescription = `The format of the property. Additional information:\n ${FormatEnum.GeoPoint}: ${JSON.stringify(toJsonSchema(GeoPoint))}\n This tuple is GeoJSON. You must specify \\`${FormatEnum.GeoPoint}\\` as [Longitude, Latitude]`;\n\n// TODO(ZaymonFC): All properties are default optional, but maybe we should allow for required properties.\nconst PropertyDefinitionSchema = S.Struct({\n name: S.String.annotations({ [DescriptionAnnotationId]: 'The name of the property.' }),\n format: S.Union(...FormatEnums.map((format) => S.Literal(format))).annotations({\n [DescriptionAnnotationId]: formatDescription,\n }),\n config: S.optional(\n S.Struct({\n options: S.optional(\n S.Array(SelectOptionSchema)\n .annotations({\n description: `Options for SingleSelect/MultiSelect formats. Available colors: ${hues.join(', ')}`,\n })\n .pipe(S.mutable),\n ),\n }),\n ),\n}).pipe(S.mutable);\n\nconst SYSTEM_NAMESPACE = 'dxos.org/echo/schema';\n\nexport default () =>\n contributes(Capabilities.Tools, [\n defineTool(SYSTEM_NAMESPACE, {\n name: 'list',\n description: 'List registered schemas in the space.',\n caption: 'Listing registered schemas...',\n schema: S.Struct({}),\n execute: async (_input, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schemas = await space.db.schemaRegistry.query({}).run();\n return ToolResult.Success(\n schemas.map((schema) => ({\n typename: schema.typename,\n version: schema.version,\n })),\n );\n },\n }),\n defineTool(SYSTEM_NAMESPACE, {\n name: 'get',\n description: 'Get a specific schema by its typename.',\n caption: 'Getting schema...',\n schema: S.Struct({\n typename: S.String.annotations({\n description: 'The fully qualified typename of the schema.',\n }),\n }),\n execute: async ({ typename }, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();\n if (!schema) {\n return ToolResult.Error(`Schema not found: ${typename}`);\n }\n\n return ToolResult.Success(schema);\n },\n }),\n defineTool(SYSTEM_NAMESPACE, {\n name: 'create',\n description: 'Create a new schema with the provided definition.',\n caption: 'Creating schema...',\n schema: S.Struct({\n typename: TypeNameSchema.annotations({\n description:\n 'The fully qualified schema typename. Must start with a domain, and then one or more path components (e.g., \"example.com/type/TypeName\").',\n }),\n properties: S.Array(PropertyDefinitionSchema).pipe(\n S.annotations({ description: 'Array of property definitions for the schema.' }),\n S.mutable,\n ),\n }),\n execute: async ({ typename, properties }, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schema = getSchemaFromPropertyDefinitions(typename, properties);\n const [registeredSchema] = await space.db.schemaRegistry.register([schema]);\n\n return ToolResult.Success(registeredSchema);\n },\n }),\n ]);\n"],
5
- "mappings": "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",
6
- "names": ["DescriptionAnnotationId", "ExamplesAnnotationId", "TitleAnnotationId", "Capabilities", "contributes", "defineTool", "ToolResult", "FormatEnum", "FormatEnums", "S", "SelectOptionSchema", "GeoPoint", "toJsonSchema", "invariant", "hues", "getSchemaFromPropertyDefinitions", "TypeNameSchema", "String", "pipe", "pattern", "annotations", "formatDescription", "JSON", "stringify", "PropertyDefinitionSchema", "Struct", "name", "format", "Union", "map", "Literal", "config", "optional", "options", "Array", "description", "join", "mutable", "SYSTEM_NAMESPACE", "Tools", "caption", "schema", "execute", "_input", "extensions", "space", "schemas", "db", "schemaRegistry", "query", "run", "Success", "typename", "version", "firstOrUndefined", "Error", "properties", "registeredSchema", "register"]
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/schema.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;kCAM5D,cAAc;AAAvC,wBAcE"}
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { type Space } from '@dxos/react-client/echo';
3
- export declare const ShareSpaceButton: ({ space }: {
4
- space: Space;
5
- }) => React.JSX.Element;
6
- export declare const ShareSpaceButtonImpl: ({ onClick }: {
7
- onClick: () => void;
8
- }) => React.JSX.Element;
9
- //# sourceMappingURL=ShareSpaceButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShareSpaceButton.d.ts","sourceRoot":"","sources":["../../../../src/components/ShareSpaceButton.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMrD,eAAO,MAAM,gBAAgB,cAAe;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,sBAI3D,CAAC;AAGF,eAAO,MAAM,oBAAoB,gBAAiB;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,sBAWxE,CAAC"}
@@ -1,10 +0,0 @@
1
- import '@dxos-theme';
2
- import { type Meta } from '@storybook/react';
3
- export declare const Default: {
4
- args: {
5
- onClick: () => void;
6
- };
7
- };
8
- declare const meta: Meta;
9
- export default meta;
10
- //# sourceMappingURL=ShareSpaceButton.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShareSpaceButton.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/ShareSpaceButton.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO7C,eAAO,MAAM,OAAO;;;;CAInB,CAAC;AAEF,QAAA,MAAM,IAAI,EAAE,IAKX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,27 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type Meta } from '@storybook/react';
8
-
9
- import { withTheme } from '@dxos/storybook-utils';
10
-
11
- import { ShareSpaceButtonImpl } from './ShareSpaceButton';
12
- import translations from '../translations';
13
-
14
- export const Default = {
15
- args: {
16
- onClick: () => console.log('clicked'),
17
- },
18
- };
19
-
20
- const meta: Meta = {
21
- title: 'plugins/plugin-space/ShareSpaceButton',
22
- component: ShareSpaceButtonImpl,
23
- decorators: [withTheme],
24
- parameters: { translations },
25
- };
26
-
27
- export default meta;
@@ -1,32 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { createIntent, useIntentDispatcher } from '@dxos/app-framework';
8
- import { type Space } from '@dxos/react-client/echo';
9
- import { IconButton, useTranslation } from '@dxos/react-ui';
10
-
11
- import { SPACE_PLUGIN } from '../meta';
12
- import { SpaceAction } from '../types';
13
-
14
- export const ShareSpaceButton = ({ space }: { space: Space }) => {
15
- const { dispatchPromise: dispatch } = useIntentDispatcher();
16
-
17
- return <ShareSpaceButtonImpl onClick={() => dispatch(createIntent(SpaceAction.Share, { space }))} />;
18
- };
19
-
20
- // TODO(wittjosiah): Better way to name pure/impure components?
21
- export const ShareSpaceButtonImpl = ({ onClick }: { onClick: () => void }) => {
22
- const { t } = useTranslation(SPACE_PLUGIN);
23
-
24
- return (
25
- <IconButton
26
- data-testid='spacePlugin.shareSpaceButton'
27
- icon='ph--users--regular'
28
- label={t('share space label')}
29
- onClick={onClick}
30
- />
31
- );
32
- };
File without changes