@dxos/plugin-space 0.8.2-main.12df754 → 0.8.2-main.36232bc

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 (129) hide show
  1. package/dist/lib/browser/{app-graph-builder-J4PN5HOM.mjs → app-graph-builder-ZWNOWRAX.mjs} +6 -6
  2. package/dist/lib/browser/{app-graph-builder-J4PN5HOM.mjs.map → app-graph-builder-ZWNOWRAX.mjs.map} +3 -3
  3. package/dist/lib/browser/{app-graph-serializer-6WIAFHYK.mjs → app-graph-serializer-UUJH7JRN.mjs} +4 -4
  4. package/dist/lib/browser/{chunk-MHTZAZT2.mjs → chunk-3KG2VMQL.mjs} +118 -130
  5. package/dist/lib/browser/chunk-3KG2VMQL.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-MIJHUABE.mjs → chunk-DIJ7LMCS.mjs} +2 -2
  7. package/dist/lib/browser/{chunk-FSHDAPFY.mjs → chunk-JS6ZV4GV.mjs} +2 -2
  8. package/dist/lib/browser/{chunk-KDNV4YRD.mjs → chunk-O7WGQVLQ.mjs} +25 -2
  9. package/dist/lib/browser/chunk-O7WGQVLQ.mjs.map +7 -0
  10. package/dist/lib/browser/{identity-created-DVHNLGYU.mjs → identity-created-NRVE4XLL.mjs} +2 -2
  11. package/dist/lib/browser/index.mjs +5 -8
  12. package/dist/lib/browser/index.mjs.map +2 -2
  13. package/dist/lib/browser/{intent-resolver-72IWBVYE.mjs → intent-resolver-U3UVTHQV.mjs} +76 -69
  14. package/dist/lib/browser/intent-resolver-U3UVTHQV.mjs.map +7 -0
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/{react-root-DRVM5ACV.mjs → react-root-63ZJ5IR6.mjs} +4 -4
  17. package/dist/lib/browser/{react-surface-KODNQYDN.mjs → react-surface-2OFMYE6E.mjs} +5 -22
  18. package/dist/lib/browser/react-surface-2OFMYE6E.mjs.map +7 -0
  19. package/dist/lib/browser/{settings-2UIV5WX5.mjs → settings-MVT32NP6.mjs} +2 -2
  20. package/dist/lib/browser/{spaces-ready-3URIMLCR.mjs → spaces-ready-ERNSICUW.mjs} +3 -3
  21. package/dist/lib/browser/types/index.mjs +1 -1
  22. package/dist/lib/node/{app-graph-builder-3BNPC5GB.cjs → app-graph-builder-LLIV422L.cjs} +34 -34
  23. package/dist/lib/node/{app-graph-builder-3BNPC5GB.cjs.map → app-graph-builder-LLIV422L.cjs.map} +3 -3
  24. package/dist/lib/node/{app-graph-serializer-GOLCQHFQ.cjs → app-graph-serializer-M6Z2OPA4.cjs} +20 -20
  25. package/dist/lib/node/{chunk-3UKLWXNJ.cjs → chunk-EQ5BPSQ7.cjs} +28 -5
  26. package/dist/lib/node/chunk-EQ5BPSQ7.cjs.map +7 -0
  27. package/dist/lib/node/{chunk-GPZPEQXP.cjs → chunk-M7N2NCC4.cjs} +166 -178
  28. package/dist/lib/node/chunk-M7N2NCC4.cjs.map +7 -0
  29. package/dist/lib/node/{chunk-EI3ZPOLJ.cjs → chunk-UOCR4G2D.cjs} +6 -6
  30. package/dist/lib/node/{chunk-U63V2254.cjs → chunk-XADZLQAJ.cjs} +27 -27
  31. package/dist/lib/node/{identity-created-YYTW4K3Z.cjs → identity-created-YDTRMOMX.cjs} +6 -6
  32. package/dist/lib/node/index.cjs +63 -66
  33. package/dist/lib/node/index.cjs.map +2 -2
  34. package/dist/lib/node/{intent-resolver-KA56XGUX.cjs → intent-resolver-4JWTDB67.cjs} +122 -115
  35. package/dist/lib/node/intent-resolver-4JWTDB67.cjs.map +7 -0
  36. package/dist/lib/node/meta.json +1 -1
  37. package/dist/lib/node/{react-root-6WGN5WRQ.cjs → react-root-6T2UE4MX.cjs} +8 -8
  38. package/dist/lib/node/{react-surface-37AVZFPL.cjs → react-surface-6W7WFRBS.cjs} +44 -61
  39. package/dist/lib/node/react-surface-6W7WFRBS.cjs.map +7 -0
  40. package/dist/lib/node/{settings-HJROTHC4.cjs → settings-JLV7YT6Q.cjs} +6 -6
  41. package/dist/lib/node/{spaces-ready-IWDDIAAD.cjs → spaces-ready-6EBR4SM4.cjs} +11 -11
  42. package/dist/lib/node/types/index.cjs +15 -15
  43. package/dist/lib/node/types/index.cjs.map +1 -1
  44. package/dist/lib/node-esm/{app-graph-builder-OVMSUAX3.mjs → app-graph-builder-HSGLCS76.mjs} +6 -6
  45. package/dist/lib/node-esm/{app-graph-builder-OVMSUAX3.mjs.map → app-graph-builder-HSGLCS76.mjs.map} +3 -3
  46. package/dist/lib/node-esm/{app-graph-serializer-AZXSO7HK.mjs → app-graph-serializer-J3B4WSXU.mjs} +4 -4
  47. package/dist/lib/node-esm/{chunk-TVN6VHTT.mjs → chunk-ABTVMAG5.mjs} +2 -2
  48. package/dist/lib/node-esm/{chunk-35OHQARN.mjs → chunk-FJPCLEKN.mjs} +25 -2
  49. package/dist/lib/node-esm/chunk-FJPCLEKN.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-DUA32XUX.mjs → chunk-OLISVDCF.mjs} +2 -2
  51. package/dist/lib/node-esm/{chunk-ABKX22IP.mjs → chunk-RM7ZVPKM.mjs} +118 -130
  52. package/dist/lib/node-esm/chunk-RM7ZVPKM.mjs.map +7 -0
  53. package/dist/lib/node-esm/{identity-created-MP4GLXHO.mjs → identity-created-EC6SVYB5.mjs} +2 -2
  54. package/dist/lib/node-esm/index.mjs +5 -8
  55. package/dist/lib/node-esm/index.mjs.map +2 -2
  56. package/dist/lib/node-esm/{intent-resolver-SG2ECM5R.mjs → intent-resolver-5PUGNEOK.mjs} +76 -69
  57. package/dist/lib/node-esm/intent-resolver-5PUGNEOK.mjs.map +7 -0
  58. package/dist/lib/node-esm/meta.json +1 -1
  59. package/dist/lib/node-esm/{react-root-MSUT6S2S.mjs → react-root-YQKCDI3P.mjs} +4 -4
  60. package/dist/lib/node-esm/{react-surface-G73SO23W.mjs → react-surface-UK2HIELM.mjs} +5 -22
  61. package/dist/lib/node-esm/react-surface-UK2HIELM.mjs.map +7 -0
  62. package/dist/lib/node-esm/{settings-KCLKPJVY.mjs → settings-AILIMHTE.mjs} +2 -2
  63. package/dist/lib/node-esm/{spaces-ready-Z3SXKWX2.mjs → spaces-ready-5PXESKHX.mjs} +3 -3
  64. package/dist/lib/node-esm/types/index.mjs +1 -1
  65. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/index.d.ts +1 -0
  67. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -1
  69. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  70. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  71. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  72. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  73. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  74. package/dist/types/src/components/index.d.ts +0 -1
  75. package/dist/types/src/components/index.d.ts.map +1 -1
  76. package/dist/types/src/types/thread.d.ts +241 -17
  77. package/dist/types/src/types/thread.d.ts.map +1 -1
  78. package/dist/types/src/types/types.d.ts +28 -1
  79. package/dist/types/src/types/types.d.ts.map +1 -1
  80. package/package.json +44 -44
  81. package/src/SpacePlugin.tsx +1 -1
  82. package/src/capabilities/app-graph-builder.ts +3 -3
  83. package/src/capabilities/intent-resolver.ts +65 -68
  84. package/src/capabilities/react-surface.tsx +2 -15
  85. package/src/components/CollectionMain.tsx +2 -5
  86. package/src/components/MembersContainer.tsx +23 -15
  87. package/src/components/PopoverAddSpace.tsx +1 -1
  88. package/src/components/PopoverRenameObject.tsx +12 -6
  89. package/src/components/index.ts +0 -1
  90. package/src/types/types.ts +22 -1
  91. package/dist/lib/browser/chunk-KDNV4YRD.mjs.map +0 -7
  92. package/dist/lib/browser/chunk-MHTZAZT2.mjs.map +0 -7
  93. package/dist/lib/browser/intent-resolver-72IWBVYE.mjs.map +0 -7
  94. package/dist/lib/browser/react-surface-KODNQYDN.mjs.map +0 -7
  95. package/dist/lib/node/chunk-3UKLWXNJ.cjs.map +0 -7
  96. package/dist/lib/node/chunk-GPZPEQXP.cjs.map +0 -7
  97. package/dist/lib/node/intent-resolver-KA56XGUX.cjs.map +0 -7
  98. package/dist/lib/node/react-surface-37AVZFPL.cjs.map +0 -7
  99. package/dist/lib/node-esm/chunk-35OHQARN.mjs.map +0 -7
  100. package/dist/lib/node-esm/chunk-ABKX22IP.mjs.map +0 -7
  101. package/dist/lib/node-esm/intent-resolver-SG2ECM5R.mjs.map +0 -7
  102. package/dist/lib/node-esm/react-surface-G73SO23W.mjs.map +0 -7
  103. package/dist/types/src/components/ShareSpaceButton.d.ts +0 -9
  104. package/dist/types/src/components/ShareSpaceButton.d.ts.map +0 -1
  105. package/dist/types/src/components/ShareSpaceButton.stories.d.ts +0 -10
  106. package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +0 -1
  107. package/src/components/ShareSpaceButton.stories.tsx +0 -27
  108. package/src/components/ShareSpaceButton.tsx +0 -32
  109. /package/dist/lib/browser/{app-graph-serializer-6WIAFHYK.mjs.map → app-graph-serializer-UUJH7JRN.mjs.map} +0 -0
  110. /package/dist/lib/browser/{chunk-MIJHUABE.mjs.map → chunk-DIJ7LMCS.mjs.map} +0 -0
  111. /package/dist/lib/browser/{chunk-FSHDAPFY.mjs.map → chunk-JS6ZV4GV.mjs.map} +0 -0
  112. /package/dist/lib/browser/{identity-created-DVHNLGYU.mjs.map → identity-created-NRVE4XLL.mjs.map} +0 -0
  113. /package/dist/lib/browser/{react-root-DRVM5ACV.mjs.map → react-root-63ZJ5IR6.mjs.map} +0 -0
  114. /package/dist/lib/browser/{settings-2UIV5WX5.mjs.map → settings-MVT32NP6.mjs.map} +0 -0
  115. /package/dist/lib/browser/{spaces-ready-3URIMLCR.mjs.map → spaces-ready-ERNSICUW.mjs.map} +0 -0
  116. /package/dist/lib/node/{app-graph-serializer-GOLCQHFQ.cjs.map → app-graph-serializer-M6Z2OPA4.cjs.map} +0 -0
  117. /package/dist/lib/node/{chunk-EI3ZPOLJ.cjs.map → chunk-UOCR4G2D.cjs.map} +0 -0
  118. /package/dist/lib/node/{chunk-U63V2254.cjs.map → chunk-XADZLQAJ.cjs.map} +0 -0
  119. /package/dist/lib/node/{identity-created-YYTW4K3Z.cjs.map → identity-created-YDTRMOMX.cjs.map} +0 -0
  120. /package/dist/lib/node/{react-root-6WGN5WRQ.cjs.map → react-root-6T2UE4MX.cjs.map} +0 -0
  121. /package/dist/lib/node/{settings-HJROTHC4.cjs.map → settings-JLV7YT6Q.cjs.map} +0 -0
  122. /package/dist/lib/node/{spaces-ready-IWDDIAAD.cjs.map → spaces-ready-6EBR4SM4.cjs.map} +0 -0
  123. /package/dist/lib/node-esm/{app-graph-serializer-AZXSO7HK.mjs.map → app-graph-serializer-J3B4WSXU.mjs.map} +0 -0
  124. /package/dist/lib/node-esm/{chunk-TVN6VHTT.mjs.map → chunk-ABTVMAG5.mjs.map} +0 -0
  125. /package/dist/lib/node-esm/{chunk-DUA32XUX.mjs.map → chunk-OLISVDCF.mjs.map} +0 -0
  126. /package/dist/lib/node-esm/{identity-created-MP4GLXHO.mjs.map → identity-created-EC6SVYB5.mjs.map} +0 -0
  127. /package/dist/lib/node-esm/{react-root-MSUT6S2S.mjs.map → react-root-YQKCDI3P.mjs.map} +0 -0
  128. /package/dist/lib/node-esm/{settings-KCLKPJVY.mjs.map → settings-AILIMHTE.mjs.map} +0 -0
  129. /package/dist/lib/node-esm/{spaces-ready-Z3SXKWX2.mjs.map → spaces-ready-5PXESKHX.mjs.map} +0 -0
@@ -2,6 +2,7 @@ import { type AnyIntentChain } from '@dxos/app-framework';
2
2
  import { S, type Expando, type BaseObject, type TypedObject } from '@dxos/echo-schema';
3
3
  import { type PublicKey } from '@dxos/react-client';
4
4
  import { type Space } from '@dxos/react-client/echo';
5
+ import { CancellableInvitationObservable, Invitation } from '@dxos/react-client/invitations';
5
6
  import { type ComplexMap } from '@dxos/util';
6
7
  import { CollectionType } from './collection';
7
8
  export declare const SPACE_DIRECTORY_HANDLE = "dxos.org/plugin/space/directory";
@@ -120,16 +121,42 @@ export declare namespace SpaceAction {
120
121
  }>;
121
122
  export class Join extends Join_base {
122
123
  }
124
+ const OpenMembers_base: S.TaggedClass<OpenMembers, "dxos.org/plugin/space/action/open-members", {
125
+ readonly _tag: S.tag<"dxos.org/plugin/space/action/open-members">;
126
+ } & {
127
+ input: S.Struct<{
128
+ space: S.Schema<Space, Space, never>;
129
+ }>;
130
+ output: typeof S.Void;
131
+ }>;
132
+ export class OpenMembers extends OpenMembers_base {
133
+ }
123
134
  const Share_base: S.TaggedClass<Share, "dxos.org/plugin/space/action/share", {
124
135
  readonly _tag: S.tag<"dxos.org/plugin/space/action/share">;
125
136
  } & {
126
137
  input: S.Struct<{
127
138
  space: S.Schema<Space, Space, never>;
139
+ type: S.Enums<typeof Invitation.Type>;
140
+ authMethod: S.Enums<typeof Invitation.AuthMethod>;
141
+ multiUse: typeof S.Boolean;
142
+ target: S.optional<typeof S.String>;
128
143
  }>;
129
- output: typeof S.Void;
144
+ output: S.instanceOf<CancellableInvitationObservable>;
130
145
  }>;
131
146
  export class Share extends Share_base {
132
147
  }
148
+ const GetShareLink_base: S.TaggedClass<GetShareLink, "dxos.org/plugin/space/action/get-share-link", {
149
+ readonly _tag: S.tag<"dxos.org/plugin/space/action/get-share-link">;
150
+ } & {
151
+ input: S.Struct<{
152
+ space: S.Schema<Space, Space, never>;
153
+ target: S.optional<typeof S.String>;
154
+ copyToClipboard: S.optional<typeof S.Boolean>;
155
+ }>;
156
+ output: typeof S.String;
157
+ }>;
158
+ export class GetShareLink extends GetShareLink_base {
159
+ }
133
160
  const Lock_base: S.TaggedClass<Lock, "dxos.org/plugin/space/action/lock", {
134
161
  readonly _tag: S.tag<"dxos.org/plugin/space/action/lock">;
135
162
  } & {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-space",
3
- "version": "0.8.2-main.12df754",
3
+ "version": "0.8.2-main.36232bc",
4
4
  "description": "DXOS Surface plugin for DXOS ECHO Spaces",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -41,43 +41,43 @@
41
41
  "react-drag-drop-files": "^2.3.8",
42
42
  "react-is": "~18.2.0",
43
43
  "react-qr-rounded": "^1.0.0",
44
- "@dxos/app-framework": "0.8.2-main.12df754",
45
- "@dxos/automerge": "0.8.2-main.12df754",
46
- "@dxos/client": "0.8.2-main.12df754",
47
- "@dxos/artifact": "0.8.2-main.12df754",
48
- "@dxos/async": "0.8.2-main.12df754",
49
- "@dxos/context": "0.8.2-main.12df754",
50
- "@dxos/display-name": "0.8.2-main.12df754",
51
- "@dxos/echo-signals": "0.8.2-main.12df754",
52
- "@dxos/effect": "0.8.2-main.12df754",
53
- "@dxos/echo-schema": "0.8.2-main.12df754",
54
- "@dxos/invariant": "0.8.2-main.12df754",
55
- "@dxos/keys": "0.8.2-main.12df754",
56
- "@dxos/live-object": "0.8.2-main.12df754",
57
- "@dxos/local-storage": "0.8.2-main.12df754",
58
- "@dxos/log": "0.8.2-main.12df754",
59
- "@dxos/migrations": "0.8.2-main.12df754",
60
- "@dxos/plugin-attention": "0.8.2-main.12df754",
61
- "@dxos/plugin-client": "0.8.2-main.12df754",
62
- "@dxos/plugin-deck": "0.8.2-main.12df754",
63
- "@dxos/plugin-graph": "0.8.2-main.12df754",
64
- "@dxos/plugin-observability": "0.8.2-main.12df754",
65
- "@dxos/plugin-status-bar": "0.8.2-main.12df754",
66
- "@dxos/protocols": "0.8.2-main.12df754",
67
- "@dxos/react-client": "0.8.2-main.12df754",
68
- "@dxos/react-ui-attention": "0.8.2-main.12df754",
69
- "@dxos/react-ui-editor": "0.8.2-main.12df754",
70
- "@dxos/react-ui-form": "0.8.2-main.12df754",
71
- "@dxos/react-ui-list": "0.8.2-main.12df754",
72
- "@dxos/react-ui-pickers": "0.8.2-main.12df754",
73
- "@dxos/react-ui-searchlist": "0.8.2-main.12df754",
74
- "@dxos/react-ui-syntax-highlighter": "0.8.2-main.12df754",
75
- "@dxos/react-ui-tabs": "0.8.2-main.12df754",
76
- "@dxos/react-ui-theme": "0.8.2-main.12df754",
77
- "@dxos/react-ui-stack": "0.8.2-main.12df754",
78
- "@dxos/schema": "0.8.2-main.12df754",
79
- "@dxos/util": "0.8.2-main.12df754",
80
- "@dxos/shell": "0.8.2-main.12df754"
44
+ "@dxos/app-framework": "0.8.2-main.36232bc",
45
+ "@dxos/async": "0.8.2-main.36232bc",
46
+ "@dxos/artifact": "0.8.2-main.36232bc",
47
+ "@dxos/client": "0.8.2-main.36232bc",
48
+ "@dxos/automerge": "0.8.2-main.36232bc",
49
+ "@dxos/context": "0.8.2-main.36232bc",
50
+ "@dxos/display-name": "0.8.2-main.36232bc",
51
+ "@dxos/echo-schema": "0.8.2-main.36232bc",
52
+ "@dxos/echo-signals": "0.8.2-main.36232bc",
53
+ "@dxos/invariant": "0.8.2-main.36232bc",
54
+ "@dxos/keys": "0.8.2-main.36232bc",
55
+ "@dxos/effect": "0.8.2-main.36232bc",
56
+ "@dxos/live-object": "0.8.2-main.36232bc",
57
+ "@dxos/local-storage": "0.8.2-main.36232bc",
58
+ "@dxos/migrations": "0.8.2-main.36232bc",
59
+ "@dxos/log": "0.8.2-main.36232bc",
60
+ "@dxos/plugin-attention": "0.8.2-main.36232bc",
61
+ "@dxos/plugin-deck": "0.8.2-main.36232bc",
62
+ "@dxos/plugin-graph": "0.8.2-main.36232bc",
63
+ "@dxos/plugin-client": "0.8.2-main.36232bc",
64
+ "@dxos/plugin-observability": "0.8.2-main.36232bc",
65
+ "@dxos/plugin-status-bar": "0.8.2-main.36232bc",
66
+ "@dxos/protocols": "0.8.2-main.36232bc",
67
+ "@dxos/react-ui-attention": "0.8.2-main.36232bc",
68
+ "@dxos/react-ui-editor": "0.8.2-main.36232bc",
69
+ "@dxos/react-client": "0.8.2-main.36232bc",
70
+ "@dxos/react-ui-form": "0.8.2-main.36232bc",
71
+ "@dxos/react-ui-pickers": "0.8.2-main.36232bc",
72
+ "@dxos/react-ui-list": "0.8.2-main.36232bc",
73
+ "@dxos/react-ui-searchlist": "0.8.2-main.36232bc",
74
+ "@dxos/react-ui-stack": "0.8.2-main.36232bc",
75
+ "@dxos/react-ui-tabs": "0.8.2-main.36232bc",
76
+ "@dxos/react-ui-theme": "0.8.2-main.36232bc",
77
+ "@dxos/react-ui-syntax-highlighter": "0.8.2-main.36232bc",
78
+ "@dxos/schema": "0.8.2-main.36232bc",
79
+ "@dxos/shell": "0.8.2-main.36232bc",
80
+ "@dxos/util": "0.8.2-main.36232bc"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@babel/core": "^7.18.13",
@@ -88,17 +88,17 @@
88
88
  "react": "~18.2.0",
89
89
  "react-dom": "~18.2.0",
90
90
  "vite": "5.4.7",
91
- "@dxos/react-ui": "0.8.2-main.12df754",
92
- "@dxos/react-ui-theme": "0.8.2-main.12df754",
93
- "@dxos/storybook-utils": "0.8.2-main.12df754",
94
- "@dxos/random": "0.8.2-main.12df754"
91
+ "@dxos/random": "0.8.2-main.36232bc",
92
+ "@dxos/react-ui": "0.8.2-main.36232bc",
93
+ "@dxos/react-ui-theme": "0.8.2-main.36232bc",
94
+ "@dxos/storybook-utils": "0.8.2-main.36232bc"
95
95
  },
96
96
  "peerDependencies": {
97
97
  "@phosphor-icons/react": "^2.1.5",
98
98
  "react": "~18.2.0",
99
99
  "react-dom": "~18.2.0",
100
- "@dxos/react-ui": "0.8.2-main.12df754",
101
- "@dxos/react-ui-theme": "0.8.2-main.12df754"
100
+ "@dxos/react-ui": "0.8.2-main.36232bc",
101
+ "@dxos/react-ui-theme": "0.8.2-main.36232bc"
102
102
  },
103
103
  "publishConfig": {
104
104
  "access": "public"
@@ -133,7 +133,7 @@ export const SpacePlugin = ({
133
133
  defineModule({
134
134
  id: `${meta.id}/module/intent-resolver`,
135
135
  activatesOn: Events.SetupIntentResolver,
136
- activate: (context) => IntentResolver({ context, observability }),
136
+ activate: (context) => IntentResolver({ context, createInvitationUrl, observability }),
137
137
  }),
138
138
  defineModule({
139
139
  id: `${meta.id}/module/app-graph-builder`,
@@ -99,14 +99,14 @@ export default (context: PluginsContext) => {
99
99
  },
100
100
  },
101
101
  {
102
- id: SpaceAction.Share._tag,
102
+ id: SpaceAction.OpenMembers._tag,
103
103
  data: async () => {
104
104
  const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
105
105
  const layout = context.requestCapability(Capabilities.Layout);
106
106
  const client = context.requestCapability(ClientCapabilities.Client);
107
107
  const { spaceId } = parseId(layout.workspace);
108
108
  const space = (spaceId && client.spaces.get(spaceId)) ?? client.spaces.default;
109
- await dispatch(createIntent(SpaceAction.Share, { space }));
109
+ await dispatch(createIntent(SpaceAction.OpenMembers, { space }));
110
110
  },
111
111
  properties: {
112
112
  label: ['share space label', { ns: SPACE_PLUGIN }],
@@ -369,7 +369,7 @@ export default (context: PluginsContext) => {
369
369
  label: ['object settings label', { ns: SPACE_PLUGIN }],
370
370
  icon: 'ph--sliders--regular',
371
371
  disposition: 'hidden',
372
- position: 'hoist',
372
+ position: 'fallback',
373
373
  },
374
374
  },
375
375
  ],
@@ -2,11 +2,10 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { pipe } from 'effect';
5
+ import { Effect, pipe } from 'effect';
6
6
 
7
7
  import {
8
8
  Capabilities,
9
- chain,
10
9
  contributes,
11
10
  createIntent,
12
11
  createResolver,
@@ -21,6 +20,7 @@ import { ClientCapabilities } from '@dxos/plugin-client';
21
20
  import { ObservabilityAction } from '@dxos/plugin-observability/types';
22
21
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
23
22
  import { isSpace, getSpace, SpaceState, fullyQualifiedId, isEchoObject } from '@dxos/react-client/echo';
23
+ import { Invitation, InvitationEncoder } from '@dxos/react-client/invitations';
24
24
  import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
25
25
 
26
26
  import { SpaceCapabilities } from './capabilities';
@@ -43,10 +43,11 @@ const SPACE_MAX_OBJECTS = 500;
43
43
 
44
44
  type IntentResolverOptions = {
45
45
  context: PluginsContext;
46
+ createInvitationUrl: (invitationCode: string) => string;
46
47
  observability?: boolean;
47
48
  };
48
49
 
49
- export default ({ context, observability }: IntentResolverOptions) => {
50
+ export default ({ context, observability, createInvitationUrl }: IntentResolverOptions) => {
50
51
  const resolve = (typename: string) =>
51
52
  context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
52
53
 
@@ -120,48 +121,62 @@ export default ({ context, observability }: IntentResolverOptions) => {
120
121
  ],
121
122
  }),
122
123
  }),
124
+ createResolver({
125
+ intent: SpaceAction.OpenMembers,
126
+ resolve: ({ space }) => ({
127
+ intents: [
128
+ createIntent(LayoutAction.Open, {
129
+ part: 'main',
130
+ subject: [`members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`],
131
+ options: {
132
+ workspace: space.id,
133
+ },
134
+ }),
135
+ ],
136
+ }),
137
+ }),
123
138
  createResolver({
124
139
  intent: SpaceAction.Share,
125
- resolve: ({ space }) => {
126
- const layout = context.requestCapability(Capabilities.Layout);
127
- const id = `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`;
128
- if (layout.active.includes(id)) {
129
- return {
130
- intents: [
131
- createIntent(LayoutAction.ScrollIntoView, {
132
- part: 'current',
133
- subject: id,
134
- }),
135
- ],
136
- };
137
- }
138
-
140
+ resolve: ({ space, type, authMethod, multiUse, target }) => {
141
+ const invitation = space.share({ type, authMethod, multiUse, target });
139
142
  return {
140
- intents: [
141
- pipe(
142
- createIntent(LayoutAction.SwitchWorkspace, {
143
- part: 'workspace',
144
- subject: space.id,
145
- }),
146
- chain(LayoutAction.Open, {
147
- part: 'main',
148
- subject: [id],
149
- }),
150
- ),
151
- ...(observability
152
- ? [
153
- createIntent(ObservabilityAction.SendEvent, {
154
- name: 'space.share',
155
- properties: {
156
- spaceId: space.id,
157
- },
158
- }),
159
- ]
160
- : []),
161
- ],
143
+ data: invitation,
144
+ intents: observability
145
+ ? [
146
+ createIntent(ObservabilityAction.SendEvent, {
147
+ name: 'space.share',
148
+ properties: {
149
+ spaceId: space.id,
150
+ },
151
+ }),
152
+ ]
153
+ : [],
162
154
  };
163
155
  },
164
156
  }),
157
+ createResolver({
158
+ intent: SpaceAction.GetShareLink,
159
+ resolve: ({ space, target, copyToClipboard }) =>
160
+ Effect.gen(function* () {
161
+ const { dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
162
+ const invitation = yield* dispatch(
163
+ createIntent(SpaceAction.Share, {
164
+ space,
165
+ type: Invitation.Type.DELEGATED,
166
+ authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
167
+ multiUse: true,
168
+ target,
169
+ }),
170
+ );
171
+
172
+ const url = pipe(invitation.get(), InvitationEncoder.encode, createInvitationUrl);
173
+ if (copyToClipboard) {
174
+ yield* Effect.tryPromise(() => navigator.clipboard.writeText(url));
175
+ }
176
+
177
+ return { data: url };
178
+ }),
179
+ }),
165
180
  createResolver({
166
181
  intent: SpaceAction.Lock,
167
182
  resolve: ({ space }) => {
@@ -239,35 +254,17 @@ export default ({ context, observability }: IntentResolverOptions) => {
239
254
  }),
240
255
  createResolver({
241
256
  intent: SpaceAction.OpenSettings,
242
- resolve: ({ space }) => {
243
- const layout = context.requestCapability(Capabilities.Layout);
244
- const id = `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`;
245
- if (layout.active.includes(id)) {
246
- return {
247
- intents: [
248
- createIntent(LayoutAction.ScrollIntoView, {
249
- part: 'current',
250
- subject: id,
251
- }),
252
- ],
253
- };
254
- }
255
-
256
- return {
257
- intents: [
258
- pipe(
259
- createIntent(LayoutAction.SwitchWorkspace, {
260
- part: 'workspace',
261
- subject: space.id,
262
- }),
263
- chain(LayoutAction.Open, {
264
- part: 'main',
265
- subject: [id],
266
- }),
267
- ),
268
- ],
269
- };
270
- },
257
+ resolve: ({ space }) => ({
258
+ intents: [
259
+ createIntent(LayoutAction.Open, {
260
+ part: 'main',
261
+ subject: [`properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`],
262
+ options: {
263
+ workspace: space.id,
264
+ },
265
+ }),
266
+ ],
267
+ }),
271
268
  }),
272
269
  createResolver({
273
270
  intent: SpaceAction.Open,
@@ -6,7 +6,7 @@ import { type Schema as S } from 'effect';
6
6
  import React, { useCallback } from 'react';
7
7
 
8
8
  import { Capabilities, contributes, createSurface, Surface, useCapability, useLayout } from '@dxos/app-framework';
9
- import { getSchema, isInstanceOf } from '@dxos/echo-schema';
9
+ import { isInstanceOf } from '@dxos/echo-schema';
10
10
  import { findAnnotation } from '@dxos/effect';
11
11
  import { SettingsStore } from '@dxos/local-storage';
12
12
  import {
@@ -21,7 +21,7 @@ import {
21
21
  type Space,
22
22
  } from '@dxos/react-client/echo';
23
23
  import { Input } from '@dxos/react-ui';
24
- import { Form, type InputProps } from '@dxos/react-ui-form';
24
+ import { type InputProps } from '@dxos/react-ui-form';
25
25
  import { HuePicker, IconPicker } from '@dxos/react-ui-pickers';
26
26
  import { type JoinPanelProps } from '@dxos/shell/react';
27
27
 
@@ -199,19 +199,6 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
199
199
  );
200
200
  },
201
201
  }),
202
- createSurface({
203
- id: `${SPACE_PLUGIN}/preview-popover`,
204
- role: 'popover',
205
- filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),
206
- component: ({ data }) => {
207
- const schema = getSchema(data.subject);
208
- if (!schema) {
209
- return null;
210
- }
211
-
212
- return <Form schema={schema} values={data.subject} readonly />;
213
- },
214
- }),
215
202
  createSurface({
216
203
  id: POPOVER_RENAME_SPACE,
217
204
  role: 'popover',
@@ -5,7 +5,7 @@
5
5
  import React from 'react';
6
6
 
7
7
  import { useTranslation } from '@dxos/react-ui';
8
- import { baseSurface, descriptionText, mx } from '@dxos/react-ui-theme';
8
+ import { baseSurface, descriptionMessage, mx } from '@dxos/react-ui-theme';
9
9
 
10
10
  import { SPACE_PLUGIN } from '../meta';
11
11
  import type { CollectionType } from '../types';
@@ -21,10 +21,7 @@ export const CollectionMain = ({ collection }: { collection: CollectionType }) =
21
21
  >
22
22
  <p
23
23
  role='alert'
24
- className={mx(
25
- descriptionText,
26
- 'border border-dashed border-neutral-400/50 rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words',
27
- )}
24
+ className={mx(descriptionMessage, 'rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words')}
28
25
  >
29
26
  {collection.name ?? t('unnamed collection label')}
30
27
  </p>
@@ -6,6 +6,7 @@ import { Check, X } from '@phosphor-icons/react';
6
6
  import React, { type Dispatch, type SetStateAction, useCallback, useMemo, useState } from 'react';
7
7
  import { QR } from 'react-qr-rounded';
8
8
 
9
+ import { createIntent, useIntentDispatcher } from '@dxos/app-framework';
9
10
  import { log } from '@dxos/log';
10
11
  import { useConfig } from '@dxos/react-client';
11
12
  import { fullyQualifiedId, useSpaceInvitations, type Space } from '@dxos/react-client/echo';
@@ -27,7 +28,7 @@ import {
27
28
  import { hexToEmoji } from '@dxos/util';
28
29
 
29
30
  import { SPACE_PLUGIN } from '../meta';
30
- import { CollectionType } from '../types';
31
+ import { CollectionType, SpaceAction } from '../types';
31
32
  import { COMPOSER_SPACE_LOCK } from '../util';
32
33
 
33
34
  // TODO(wittjosiah): Copied from Shell.
@@ -50,6 +51,7 @@ export const MembersContainer = ({
50
51
  }) => {
51
52
  const { t } = useTranslation(SPACE_PLUGIN);
52
53
  const config = useConfig();
54
+ const { dispatchPromise: dispatch } = useIntentDispatcher();
53
55
  const invitations = useSpaceInvitations(space.key);
54
56
  const visibleInvitations = invitations?.filter(
55
57
  (invitation) => ![Invitation.State.CANCELLED].includes(invitation.get().state),
@@ -77,13 +79,16 @@ export const MembersContainer = ({
77
79
  description: t('invite one description', { ns: 'os' }),
78
80
  icon: () => <Icon icon='ph--user-plus--regular' size={5} />,
79
81
  testId: 'membersContainer.inviteOne',
80
- onClick: () => {
81
- const invitation = space.share?.({
82
- type: Invitation.Type.INTERACTIVE,
83
- authMethod: Invitation.AuthMethod.SHARED_SECRET,
84
- multiUse: false,
85
- target: target && fullyQualifiedId(target),
86
- });
82
+ onClick: async () => {
83
+ const { data: invitation } = await dispatch(
84
+ createIntent(SpaceAction.Share, {
85
+ space,
86
+ type: Invitation.Type.INTERACTIVE,
87
+ authMethod: Invitation.AuthMethod.SHARED_SECRET,
88
+ multiUse: false,
89
+ target: target && fullyQualifiedId(target),
90
+ }),
91
+ );
87
92
  if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {
88
93
  const subscription: ZenObservable.Subscription = invitation.subscribe((invitation) =>
89
94
  handleInvitationEvent(invitation, subscription),
@@ -96,13 +101,16 @@ export const MembersContainer = ({
96
101
  description: t('invite many description', { ns: 'os' }),
97
102
  icon: () => <Icon icon='ph--users-three--regular' size={5} />,
98
103
  testId: 'membersContainer.inviteMany',
99
- onClick: () => {
100
- const invitation = space.share?.({
101
- type: Invitation.Type.DELEGATED,
102
- authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
103
- multiUse: true,
104
- target: target && fullyQualifiedId(target),
105
- });
104
+ onClick: async () => {
105
+ const { data: invitation } = await dispatch(
106
+ createIntent(SpaceAction.Share, {
107
+ space,
108
+ type: Invitation.Type.DELEGATED,
109
+ authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
110
+ multiUse: true,
111
+ target: target && fullyQualifiedId(target),
112
+ }),
113
+ );
106
114
  if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {
107
115
  const subscription: ZenObservable.Subscription = invitation.subscribe((invitation) =>
108
116
  handleInvitationEvent(invitation, subscription),
@@ -16,7 +16,7 @@ export const PopoverAddSpace = () => {
16
16
  const { t } = useTranslation(SPACE_PLUGIN);
17
17
  const { dispatchPromise: dispatch } = useIntentDispatcher();
18
18
  return (
19
- <div role='none' className='grid grid-cols-1 gap-1 [&>button]:justify-start'>
19
+ <div role='none' className='p-1 grid grid-cols-1 gap-1 [&>button]:justify-start'>
20
20
  <IconButton
21
21
  variant='ghost'
22
22
  label={t('create space label')}
@@ -4,9 +4,10 @@
4
4
 
5
5
  import React, { useCallback, useRef, useState } from 'react';
6
6
 
7
+ import { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';
7
8
  import { type Live } from '@dxos/live-object';
8
9
  import { log } from '@dxos/log';
9
- import { Button, Input, Popover, useTranslation } from '@dxos/react-ui';
10
+ import { Button, Input, useTranslation } from '@dxos/react-ui';
10
11
 
11
12
  import { SPACE_PLUGIN } from '../meta';
12
13
 
@@ -19,6 +20,7 @@ export const PopoverRenameObject = ({ object: obj }: { object: Live<any> }) => {
19
20
  const object = obj as any;
20
21
  // TODO(burdon): Field should not be hardcoded field.
21
22
  const [name, setName] = useState(object.name || object.title || '');
23
+ const { dispatchPromise: dispatch } = useIntentDispatcher();
22
24
 
23
25
  const handleDone = useCallback(() => {
24
26
  try {
@@ -30,6 +32,12 @@ export const PopoverRenameObject = ({ object: obj }: { object: Live<any> }) => {
30
32
  log.error('Failed to rename object', { err });
31
33
  }
32
34
  }
35
+ void dispatch(
36
+ createIntent(LayoutAction.UpdatePopover, {
37
+ part: 'popover',
38
+ options: { variant: 'react', anchorId: '', state: false },
39
+ }),
40
+ );
33
41
  }, [object, name]);
34
42
 
35
43
  return (
@@ -46,11 +54,9 @@ export const PopoverRenameObject = ({ object: obj }: { object: Live<any> }) => {
46
54
  />
47
55
  </Input.Root>
48
56
  </div>
49
- <Popover.Close asChild>
50
- <Button ref={doneButton} classNames='self-stretch' onClick={handleDone}>
51
- {t('done label', { ns: 'os' })}
52
- </Button>
53
- </Popover.Close>
57
+ <Button ref={doneButton} classNames='self-stretch' onClick={handleDone}>
58
+ {t('done label', { ns: 'os' })}
59
+ </Button>
54
60
  </div>
55
61
  );
56
62
  };
@@ -15,7 +15,6 @@ export * from './PopoverAddSpace';
15
15
  export * from './PopoverRenameObject';
16
16
  export * from './PopoverRenameSpace';
17
17
  export * from './SchemaContainer';
18
- export * from './ShareSpaceButton';
19
18
  export * from './SpacePresence';
20
19
  export * from './SpacePluginSettings';
21
20
  export * from './SpaceSettings';
@@ -7,6 +7,7 @@ import { S, type Expando, type BaseObject, type TypedObject } from '@dxos/echo-s
7
7
  import { type PublicKey } from '@dxos/react-client';
8
8
  // TODO(wittjosiah): This pulls in full client.
9
9
  import { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';
10
+ import { CancellableInvitationObservable, Invitation } from '@dxos/react-client/invitations';
10
11
  import { type ComplexMap } from '@dxos/util';
11
12
 
12
13
  import { CollectionType } from './collection';
@@ -135,13 +136,33 @@ export namespace SpaceAction {
135
136
  output: S.Void,
136
137
  }) {}
137
138
 
138
- export class Share extends S.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {
139
+ export class OpenMembers extends S.TaggedClass<OpenMembers>()(`${SPACE_ACTION}/open-members`, {
139
140
  input: S.Struct({
140
141
  space: SpaceSchema,
141
142
  }),
142
143
  output: S.Void,
143
144
  }) {}
144
145
 
146
+ export class Share extends S.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {
147
+ input: S.Struct({
148
+ space: SpaceSchema,
149
+ type: S.Enums(Invitation.Type),
150
+ authMethod: S.Enums(Invitation.AuthMethod),
151
+ multiUse: S.Boolean,
152
+ target: S.optional(S.String),
153
+ }),
154
+ output: S.instanceOf(CancellableInvitationObservable),
155
+ }) {}
156
+
157
+ export class GetShareLink extends S.TaggedClass<GetShareLink>()(`${SPACE_ACTION}/get-share-link`, {
158
+ input: S.Struct({
159
+ space: SpaceSchema,
160
+ target: S.optional(S.String),
161
+ copyToClipboard: S.optional(S.Boolean),
162
+ }),
163
+ output: S.String,
164
+ }) {}
165
+
145
166
  export class Lock extends S.TaggedClass<Lock>()(`${SPACE_ACTION}/lock`, {
146
167
  input: S.Struct({
147
168
  space: SpaceSchema,