@dxos/plugin-space 0.8.2-main.5885341 → 0.8.2-main.600d381

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 (216) hide show
  1. package/dist/lib/browser/{app-graph-builder-ZWNOWRAX.mjs → app-graph-builder-6KVRD7OJ.mjs} +27 -10
  2. package/dist/lib/browser/app-graph-builder-6KVRD7OJ.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-UUJH7JRN.mjs → app-graph-serializer-N7KZGCST.mjs} +4 -4
  4. package/dist/lib/browser/chunk-CY35NLWL.mjs +296 -0
  5. package/dist/lib/browser/chunk-CY35NLWL.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-JS6ZV4GV.mjs → chunk-F57CTUM6.mjs} +4 -4
  7. package/dist/lib/browser/chunk-F57CTUM6.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-4226DMDP.mjs → chunk-V4VNP2WY.mjs} +132 -182
  9. package/dist/lib/browser/chunk-V4VNP2WY.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-DIJ7LMCS.mjs → chunk-XC4BXZVV.mjs} +2 -3
  11. package/dist/lib/browser/chunk-XC4BXZVV.mjs.map +7 -0
  12. package/dist/lib/browser/{identity-created-NRVE4XLL.mjs → identity-created-74EHBH7M.mjs} +2 -2
  13. package/dist/lib/browser/index.mjs +11 -15
  14. package/dist/lib/browser/index.mjs.map +3 -3
  15. package/dist/lib/browser/{intent-resolver-NP55M7C7.mjs → intent-resolver-FZ64VJKZ.mjs} +7 -26
  16. package/dist/lib/browser/intent-resolver-FZ64VJKZ.mjs.map +7 -0
  17. package/dist/lib/browser/meta.json +1 -1
  18. package/dist/lib/browser/{react-root-XKAUZ3X2.mjs → react-root-2EFJCOX7.mjs} +4 -4
  19. package/dist/lib/browser/{react-surface-2DW2UDRX.mjs → react-surface-N5OGF7TQ.mjs} +4 -12
  20. package/dist/lib/browser/react-surface-N5OGF7TQ.mjs.map +7 -0
  21. package/dist/lib/browser/{schema-FHTA26SW.mjs → schema-defs-FLFEUSLB.mjs} +4 -4
  22. package/dist/lib/browser/{schema-FHTA26SW.mjs.map → schema-defs-FLFEUSLB.mjs.map} +2 -2
  23. package/dist/lib/browser/{schema-tools-YAXPRIXP.mjs → schema-tools-MYC4LTQD.mjs} +22 -22
  24. package/dist/lib/browser/schema-tools-MYC4LTQD.mjs.map +7 -0
  25. package/dist/lib/browser/{settings-MVT32NP6.mjs → settings-G24447B7.mjs} +2 -2
  26. package/dist/lib/browser/{spaces-ready-ERNSICUW.mjs → spaces-ready-ZSUEPHJF.mjs} +3 -3
  27. package/dist/lib/browser/types/index.mjs +1 -1
  28. package/dist/lib/node/{app-graph-builder-LLIV422L.cjs → app-graph-builder-6VR2TBBF.cjs} +55 -38
  29. package/dist/lib/node/app-graph-builder-6VR2TBBF.cjs.map +7 -0
  30. package/dist/lib/node/{app-graph-serializer-M6Z2OPA4.cjs → app-graph-serializer-IKQLWTCX.cjs} +20 -20
  31. package/dist/lib/node/{chunk-XADZLQAJ.cjs → chunk-FILCZU6V.cjs} +29 -29
  32. package/dist/lib/node/chunk-FILCZU6V.cjs.map +7 -0
  33. package/dist/lib/node/chunk-K6ZO4WDJ.cjs +324 -0
  34. package/dist/lib/node/chunk-K6ZO4WDJ.cjs.map +7 -0
  35. package/dist/lib/node/{chunk-ZMQO74LX.cjs → chunk-P2ZIVXGY.cjs} +184 -234
  36. package/dist/lib/node/chunk-P2ZIVXGY.cjs.map +7 -0
  37. package/dist/lib/node/{chunk-UOCR4G2D.cjs → chunk-YAE6CCDB.cjs} +6 -7
  38. package/dist/lib/node/chunk-YAE6CCDB.cjs.map +7 -0
  39. package/dist/lib/node/{identity-created-YDTRMOMX.cjs → identity-created-PCQPDULV.cjs} +6 -6
  40. package/dist/lib/node/index.cjs +63 -67
  41. package/dist/lib/node/index.cjs.map +3 -3
  42. package/dist/lib/node/{intent-resolver-3J52ARFL.cjs → intent-resolver-BK6JDXY4.cjs} +55 -73
  43. package/dist/lib/node/intent-resolver-BK6JDXY4.cjs.map +7 -0
  44. package/dist/lib/node/meta.json +1 -1
  45. package/dist/lib/node/{react-root-XUE2J7HT.cjs → react-root-DEQFKQVD.cjs} +8 -8
  46. package/dist/lib/node/{react-surface-IWSTOZ2E.cjs → react-surface-UQD7LR67.cjs} +41 -47
  47. package/dist/lib/node/react-surface-UQD7LR67.cjs.map +7 -0
  48. package/dist/lib/node/{schema-PPJ5BZ3A.cjs → schema-defs-PKZVL52M.cjs} +6 -6
  49. package/dist/lib/node/{schema-PPJ5BZ3A.cjs.map → schema-defs-PKZVL52M.cjs.map} +2 -2
  50. package/dist/lib/node/{schema-tools-BLIMOZYY.cjs → schema-tools-OE3MFYYH.cjs} +24 -24
  51. package/dist/lib/node/schema-tools-OE3MFYYH.cjs.map +7 -0
  52. package/dist/lib/node/{settings-JLV7YT6Q.cjs → settings-AFWO4AWK.cjs} +6 -6
  53. package/dist/lib/node/{spaces-ready-6EBR4SM4.cjs → spaces-ready-MHLUFLXN.cjs} +11 -11
  54. package/dist/lib/node/types/index.cjs +15 -15
  55. package/dist/lib/node/types/index.cjs.map +1 -1
  56. package/dist/lib/node-esm/{app-graph-builder-HSGLCS76.mjs → app-graph-builder-O7M6MVS5.mjs} +27 -10
  57. package/dist/lib/node-esm/app-graph-builder-O7M6MVS5.mjs.map +7 -0
  58. package/dist/lib/node-esm/{app-graph-serializer-J3B4WSXU.mjs → app-graph-serializer-I6XBQJLA.mjs} +4 -4
  59. package/dist/lib/node-esm/chunk-CLRCW6PU.mjs +297 -0
  60. package/dist/lib/node-esm/chunk-CLRCW6PU.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-ABTVMAG5.mjs → chunk-COHDPHM7.mjs} +4 -4
  62. package/dist/lib/node-esm/chunk-COHDPHM7.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-OLISVDCF.mjs → chunk-HEXOMJIR.mjs} +2 -3
  64. package/dist/lib/node-esm/chunk-HEXOMJIR.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-PQI4D4SH.mjs → chunk-TB557OBD.mjs} +132 -182
  66. package/dist/lib/node-esm/chunk-TB557OBD.mjs.map +7 -0
  67. package/dist/lib/node-esm/{identity-created-EC6SVYB5.mjs → identity-created-GXS46A3C.mjs} +2 -2
  68. package/dist/lib/node-esm/index.mjs +11 -15
  69. package/dist/lib/node-esm/index.mjs.map +3 -3
  70. package/dist/lib/node-esm/{intent-resolver-MXQIFIRC.mjs → intent-resolver-6VPP3ZDO.mjs} +7 -26
  71. package/dist/lib/node-esm/intent-resolver-6VPP3ZDO.mjs.map +7 -0
  72. package/dist/lib/node-esm/meta.json +1 -1
  73. package/dist/lib/node-esm/{react-root-ZBCJCEFS.mjs → react-root-2RJ2S5E6.mjs} +4 -4
  74. package/dist/lib/node-esm/{react-surface-JCHDAPGM.mjs → react-surface-2RSRATVY.mjs} +4 -12
  75. package/dist/lib/node-esm/react-surface-2RSRATVY.mjs.map +7 -0
  76. package/dist/lib/node-esm/{schema-OUZKVYM5.mjs → schema-defs-IIEQR7B3.mjs} +4 -4
  77. package/dist/lib/node-esm/{schema-OUZKVYM5.mjs.map → schema-defs-IIEQR7B3.mjs.map} +2 -2
  78. package/dist/lib/node-esm/{schema-tools-IU7EX5A5.mjs → schema-tools-YTJLA3NQ.mjs} +22 -22
  79. package/dist/lib/node-esm/schema-tools-YTJLA3NQ.mjs.map +7 -0
  80. package/dist/lib/node-esm/{settings-AILIMHTE.mjs → settings-MJVSCOI4.mjs} +2 -2
  81. package/dist/lib/node-esm/{spaces-ready-5PXESKHX.mjs → spaces-ready-35U5BBTH.mjs} +3 -3
  82. package/dist/lib/node-esm/types/index.mjs +1 -1
  83. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/index.d.ts +2 -2
  88. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/{schema.d.ts → schema-defs.d.ts} +1 -1
  92. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/schema-tools.d.ts +2 -2
  94. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  97. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  98. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  99. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  100. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  101. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  102. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  103. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  104. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  105. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  106. package/dist/types/src/components/MenuFooter.d.ts +2 -2
  107. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  108. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +2 -2
  109. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  110. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  111. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  112. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  113. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +2 -2
  114. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  115. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  116. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  117. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  118. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  119. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  120. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  121. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  122. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  123. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  124. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  125. package/dist/types/src/components/SyncStatus/save-tracker.d.ts.map +1 -1
  126. package/dist/types/src/components/SyncStatus/status.d.ts.map +1 -1
  127. package/dist/types/src/components/index.d.ts +0 -1
  128. package/dist/types/src/components/index.d.ts.map +1 -1
  129. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -2
  130. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  131. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  132. package/dist/types/src/translations.d.ts +2 -263
  133. package/dist/types/src/translations.d.ts.map +1 -1
  134. package/dist/types/src/types/collection.d.ts +9 -8
  135. package/dist/types/src/types/collection.d.ts.map +1 -1
  136. package/dist/types/src/types/thread.d.ts +111 -116
  137. package/dist/types/src/types/thread.d.ts.map +1 -1
  138. package/dist/types/src/types/types.d.ts +145 -160
  139. package/dist/types/src/types/types.d.ts.map +1 -1
  140. package/dist/types/src/util.d.ts +4 -4
  141. package/dist/types/src/util.d.ts.map +1 -1
  142. package/dist/types/tsconfig.tsbuildinfo +1 -1
  143. package/package.json +45 -44
  144. package/src/SpacePlugin.tsx +7 -6
  145. package/src/capabilities/app-graph-builder.ts +23 -11
  146. package/src/capabilities/index.ts +2 -2
  147. package/src/capabilities/intent-resolver.ts +0 -19
  148. package/src/capabilities/react-surface.tsx +11 -19
  149. package/src/capabilities/schema-tool.test.ts +2 -3
  150. package/src/capabilities/schema-tools.ts +25 -25
  151. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +1 -1
  152. package/src/components/CreateDialog/CreateSpaceDialog.tsx +2 -3
  153. package/src/components/MembersContainer.stories.tsx +1 -5
  154. package/src/components/MenuFooter.tsx +2 -2
  155. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +2 -2
  156. package/src/components/ObjectSettings/BaseObjectSettings.tsx +2 -2
  157. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +2 -2
  158. package/src/components/PersistenceStatus.tsx +11 -14
  159. package/src/components/SpacePresence.stories.tsx +1 -1
  160. package/src/components/SpacePresence.tsx +32 -42
  161. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +5 -3
  162. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -16
  163. package/src/components/index.ts +0 -1
  164. package/src/hooks/useInputSurfaceLookup.tsx +2 -2
  165. package/src/translations.ts +0 -1
  166. package/src/types/collection.ts +6 -4
  167. package/src/types/thread.ts +14 -8
  168. package/src/types/types.ts +104 -112
  169. package/src/util.tsx +13 -13
  170. package/dist/lib/browser/app-graph-builder-ZWNOWRAX.mjs.map +0 -7
  171. package/dist/lib/browser/chunk-4226DMDP.mjs.map +0 -7
  172. package/dist/lib/browser/chunk-DIJ7LMCS.mjs.map +0 -7
  173. package/dist/lib/browser/chunk-JS6ZV4GV.mjs.map +0 -7
  174. package/dist/lib/browser/chunk-O7WGQVLQ.mjs +0 -306
  175. package/dist/lib/browser/chunk-O7WGQVLQ.mjs.map +0 -7
  176. package/dist/lib/browser/intent-resolver-NP55M7C7.mjs.map +0 -7
  177. package/dist/lib/browser/react-surface-2DW2UDRX.mjs.map +0 -7
  178. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +0 -7
  179. package/dist/lib/node/app-graph-builder-LLIV422L.cjs.map +0 -7
  180. package/dist/lib/node/chunk-EQ5BPSQ7.cjs +0 -334
  181. package/dist/lib/node/chunk-EQ5BPSQ7.cjs.map +0 -7
  182. package/dist/lib/node/chunk-UOCR4G2D.cjs.map +0 -7
  183. package/dist/lib/node/chunk-XADZLQAJ.cjs.map +0 -7
  184. package/dist/lib/node/chunk-ZMQO74LX.cjs.map +0 -7
  185. package/dist/lib/node/intent-resolver-3J52ARFL.cjs.map +0 -7
  186. package/dist/lib/node/react-surface-IWSTOZ2E.cjs.map +0 -7
  187. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +0 -7
  188. package/dist/lib/node-esm/app-graph-builder-HSGLCS76.mjs.map +0 -7
  189. package/dist/lib/node-esm/chunk-ABTVMAG5.mjs.map +0 -7
  190. package/dist/lib/node-esm/chunk-FJPCLEKN.mjs +0 -307
  191. package/dist/lib/node-esm/chunk-FJPCLEKN.mjs.map +0 -7
  192. package/dist/lib/node-esm/chunk-OLISVDCF.mjs.map +0 -7
  193. package/dist/lib/node-esm/chunk-PQI4D4SH.mjs.map +0 -7
  194. package/dist/lib/node-esm/intent-resolver-MXQIFIRC.mjs.map +0 -7
  195. package/dist/lib/node-esm/react-surface-JCHDAPGM.mjs.map +0 -7
  196. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +0 -7
  197. package/dist/types/src/capabilities/schema.d.ts.map +0 -1
  198. package/dist/types/src/components/PopoverAddSpace.d.ts +0 -4
  199. package/dist/types/src/components/PopoverAddSpace.d.ts.map +0 -1
  200. package/src/components/PopoverAddSpace.tsx +0 -52
  201. /package/dist/lib/browser/{app-graph-serializer-UUJH7JRN.mjs.map → app-graph-serializer-N7KZGCST.mjs.map} +0 -0
  202. /package/dist/lib/browser/{identity-created-NRVE4XLL.mjs.map → identity-created-74EHBH7M.mjs.map} +0 -0
  203. /package/dist/lib/browser/{react-root-XKAUZ3X2.mjs.map → react-root-2EFJCOX7.mjs.map} +0 -0
  204. /package/dist/lib/browser/{settings-MVT32NP6.mjs.map → settings-G24447B7.mjs.map} +0 -0
  205. /package/dist/lib/browser/{spaces-ready-ERNSICUW.mjs.map → spaces-ready-ZSUEPHJF.mjs.map} +0 -0
  206. /package/dist/lib/node/{app-graph-serializer-M6Z2OPA4.cjs.map → app-graph-serializer-IKQLWTCX.cjs.map} +0 -0
  207. /package/dist/lib/node/{identity-created-YDTRMOMX.cjs.map → identity-created-PCQPDULV.cjs.map} +0 -0
  208. /package/dist/lib/node/{react-root-XUE2J7HT.cjs.map → react-root-DEQFKQVD.cjs.map} +0 -0
  209. /package/dist/lib/node/{settings-JLV7YT6Q.cjs.map → settings-AFWO4AWK.cjs.map} +0 -0
  210. /package/dist/lib/node/{spaces-ready-6EBR4SM4.cjs.map → spaces-ready-MHLUFLXN.cjs.map} +0 -0
  211. /package/dist/lib/node-esm/{app-graph-serializer-J3B4WSXU.mjs.map → app-graph-serializer-I6XBQJLA.mjs.map} +0 -0
  212. /package/dist/lib/node-esm/{identity-created-EC6SVYB5.mjs.map → identity-created-GXS46A3C.mjs.map} +0 -0
  213. /package/dist/lib/node-esm/{react-root-ZBCJCEFS.mjs.map → react-root-2RJ2S5E6.mjs.map} +0 -0
  214. /package/dist/lib/node-esm/{settings-AILIMHTE.mjs.map → settings-MJVSCOI4.mjs.map} +0 -0
  215. /package/dist/lib/node-esm/{spaces-ready-5PXESKHX.mjs.map → spaces-ready-35U5BBTH.mjs.map} +0 -0
  216. /package/src/capabilities/{schema.ts → schema-defs.ts} +0 -0
@@ -68,20 +68,17 @@ export const PersistenceStatus = ({ db }: { db: EchoDatabase }) => {
68
68
  case Status.PERSISTED_LOCALLY:
69
69
  default:
70
70
  return (
71
- <Tooltip.Root delayDuration={400}>
72
- <Tooltip.Trigger role='status' className='flex items-center'>
73
- <CheckCircle className={mx(getSize(4), 'me-1')} />
74
- {displayMessage && (
75
- <span className={mx('text-sm', staticPlaceholderText)}>{t('persisted locally label')}</span>
76
- )}
77
- </Tooltip.Trigger>
78
- <Tooltip.Portal>
79
- <Tooltip.Content>
80
- {t('persisted locally message')}
81
- <Tooltip.Arrow />
82
- </Tooltip.Content>
83
- </Tooltip.Portal>
84
- </Tooltip.Root>
71
+ <Tooltip.Trigger
72
+ delayDuration={400}
73
+ role='status'
74
+ content={t('persisted locally message')}
75
+ className='flex items-center'
76
+ >
77
+ <CheckCircle className={mx(getSize(4), 'me-1')} />
78
+ {displayMessage && (
79
+ <span className={mx('text-sm', staticPlaceholderText)}>{t('persisted locally label')}</span>
80
+ )}
81
+ </Tooltip.Trigger>
85
82
  );
86
83
  }
87
84
  };
@@ -100,7 +100,7 @@ export const Small = () => {
100
100
 
101
101
  const meta: Meta = {
102
102
  title: 'plugins/plugin-space/SpacePresence',
103
- decorators: [withTheme, withLayout({ tooltips: true })],
103
+ decorators: [withTheme, withLayout()],
104
104
  parameters: { translations },
105
105
  };
106
106
 
@@ -16,6 +16,7 @@ import {
16
16
  type Size,
17
17
  type ThemedClassName,
18
18
  Tooltip,
19
+ Popover,
19
20
  useTranslation,
20
21
  List,
21
22
  ListItem,
@@ -115,28 +116,25 @@ export const FullPresence = (props: MemberPresenceProps) => {
115
116
  return (
116
117
  <div className='dx-avatar-group' data-testid='spacePlugin.presence'>
117
118
  {members.slice(0, 3).map((member, i) => (
118
- <Tooltip.Root key={member.identity.identityKey.toHex()}>
119
- <Tooltip.Trigger className='grid focus:outline-none'>
120
- <PresenceAvatar
121
- identity={member.identity}
122
- match={member.currentlyAttended} // TODO(Zan): Match always true now we're showing 'members viewing current object'.
123
- index={members.length - i}
124
- onClick={() => onMemberClick?.(member)}
125
- size={size}
126
- />
127
- </Tooltip.Trigger>
128
- <Tooltip.Portal>
129
- <Tooltip.Content side='bottom'>
130
- <span>{getName(member.identity)}</span>
131
- <Tooltip.Arrow />
132
- </Tooltip.Content>
133
- </Tooltip.Portal>
134
- </Tooltip.Root>
119
+ <Tooltip.Trigger
120
+ key={member.identity.identityKey.toHex()}
121
+ side='bottom'
122
+ content={getName(member.identity)}
123
+ className='grid focus:outline-none'
124
+ >
125
+ <PresenceAvatar
126
+ identity={member.identity}
127
+ match={member.currentlyAttended} // TODO(Zan): Match always true now we're showing 'members viewing current object'.
128
+ index={members.length - i}
129
+ onClick={() => onMemberClick?.(member)}
130
+ size={size}
131
+ />
132
+ </Tooltip.Trigger>
135
133
  ))}
136
134
 
137
135
  {members.length > 3 && (
138
- <Tooltip.Root>
139
- <Tooltip.Trigger className='grid focus:outline-none'>
136
+ <Popover.Root>
137
+ <Popover.Trigger className='grid focus:outline-none'>
140
138
  <Avatar.Root>
141
139
  {/* TODO(wittjosiah): Make text fit. */}
142
140
  <Avatar.Content
@@ -146,10 +144,10 @@ export const FullPresence = (props: MemberPresenceProps) => {
146
144
  size={size}
147
145
  />
148
146
  </Avatar.Root>
149
- </Tooltip.Trigger>
150
- <Tooltip.Portal>
151
- <Tooltip.Content side='bottom'>
152
- <Tooltip.Arrow />
147
+ </Popover.Trigger>
148
+ <Popover.Portal>
149
+ <Popover.Content side='bottom'>
150
+ <Popover.Arrow />
153
151
  <List classNames='max-h-56 overflow-y-auto'>
154
152
  {members.map((member) => (
155
153
  <ListItem.Root
@@ -163,9 +161,9 @@ export const FullPresence = (props: MemberPresenceProps) => {
163
161
  </ListItem.Root>
164
162
  ))}
165
163
  </List>
166
- </Tooltip.Content>
167
- </Tooltip.Portal>
168
- </Tooltip.Root>
164
+ </Popover.Content>
165
+ </Popover.Portal>
166
+ </Popover.Root>
169
167
  )}
170
168
  </div>
171
169
  );
@@ -251,21 +249,13 @@ export const SmallPresence = ({ count = 0, attended, containsAttended }: SmallPr
251
249
  const { t } = useTranslation(SPACE_PLUGIN);
252
250
 
253
251
  return (
254
- <Tooltip.Root>
255
- <Tooltip.Trigger asChild>
256
- <AttentionGlyph
257
- attended={attended}
258
- containsAttended={containsAttended}
259
- presence={count > 1 ? 'many' : count === 1 ? 'one' : 'none'}
260
- classNames='self-center mie-1'
261
- />
262
- </Tooltip.Trigger>
263
- <Tooltip.Portal>
264
- <Tooltip.Content side='bottom'>
265
- <span>{t('presence label', { count })}</span>
266
- <Tooltip.Arrow />
267
- </Tooltip.Content>
268
- </Tooltip.Portal>
269
- </Tooltip.Root>
252
+ <Tooltip.Trigger asChild content={t('presence label', { count })} side='bottom'>
253
+ <AttentionGlyph
254
+ attended={attended}
255
+ containsAttended={containsAttended}
256
+ presence={count > 1 ? 'many' : count === 1 ? 'one' : 'none'}
257
+ classNames='self-center mie-1'
258
+ />
259
+ </Tooltip.Trigger>
270
260
  );
271
261
  };
@@ -2,7 +2,7 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { pipe, Schema as S } from 'effect';
5
+ import { pipe, Schema } from 'effect';
6
6
  import React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';
7
7
 
8
8
  import { chain, createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';
@@ -25,7 +25,9 @@ import { StackItem } from '@dxos/react-ui-stack';
25
25
  import { SPACE_PLUGIN } from '../../meta';
26
26
  import { SpaceAction, SpaceForm } from '../../types';
27
27
 
28
- const FormSchema = SpaceForm.pipe(S.extend(S.Struct({ archived: S.Boolean.annotations({ title: 'Archive space' }) })));
28
+ const FormSchema = SpaceForm.pipe(
29
+ Schema.extend(Schema.Struct({ archived: Schema.Boolean.annotations({ title: 'Archive space' }) })),
30
+ );
29
31
 
30
32
  export type SpaceSettingsContainerProps = {
31
33
  space: Space;
@@ -54,7 +56,7 @@ export const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) =
54
56
  );
55
57
 
56
58
  const handleSave = useCallback(
57
- (properties: S.Schema.Type<typeof FormSchema>) => {
59
+ (properties: Schema.Schema.Type<typeof FormSchema>) => {
58
60
  void toggleEdgeReplication(properties.edgeReplication);
59
61
  if (properties.name !== space.properties.name) {
60
62
  space.properties.name = properties.name;
@@ -49,21 +49,13 @@ export const InlineSyncStatus = ({ space, open }: { space: Space; open?: boolean
49
49
  const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
50
50
 
51
51
  return (
52
- <Tooltip.Root>
53
- <Tooltip.Trigger asChild>
54
- <AttentionGlyph
55
- syncing={syncing}
56
- attended={isAttended}
57
- containsAttended={containsAttended}
58
- classNames='self-center mie-1'
59
- />
60
- </Tooltip.Trigger>
61
- <Tooltip.Portal>
62
- <Tooltip.Content side='bottom' classNames='z-[70]'>
63
- <span>{t('syncing label')}</span>
64
- <Tooltip.Arrow />
65
- </Tooltip.Content>
66
- </Tooltip.Portal>
67
- </Tooltip.Root>
52
+ <Tooltip.Trigger asChild content={t('syncing label')} side='bottom'>
53
+ <AttentionGlyph
54
+ syncing={syncing}
55
+ attended={isAttended}
56
+ containsAttended={containsAttended}
57
+ classNames='self-center mie-1'
58
+ />
59
+ </Tooltip.Trigger>
68
60
  );
69
61
  };
@@ -11,7 +11,6 @@ export * from './MembersContainer';
11
11
  export * from './MenuFooter';
12
12
  export * from './ObjectSettings';
13
13
  export * from './PersistenceStatus';
14
- export * from './PopoverAddSpace';
15
14
  export * from './PopoverRenameObject';
16
15
  export * from './PopoverRenameSpace';
17
16
  export * from './SchemaContainer';
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Schema as S } from 'effect';
5
+ import { type Schema } from 'effect';
6
6
  import React, { useCallback } from 'react';
7
7
 
8
8
  import { usePluginManager, isSurfaceAvailable, Surface } from '@dxos/app-framework';
@@ -18,7 +18,7 @@ export const useInputSurfaceLookup = (baseData?: Record<string, any>) => {
18
18
  const pluginManager = usePluginManager();
19
19
 
20
20
  return useCallback(
21
- ({ prop, schema, inputProps }: { prop: string; schema: S.Schema<any>; inputProps: InputProps }) => {
21
+ ({ prop, schema, inputProps }: { prop: string; schema: Schema.Schema<any>; inputProps: InputProps }) => {
22
22
  const composedData = { prop, schema, ...baseData };
23
23
  if (!isSurfaceAvailable(pluginManager.context, { role: 'form-input', data: composedData })) {
24
24
  return undefined;
@@ -15,7 +15,6 @@ export default [
15
15
  [SPACE_PLUGIN]: {
16
16
  'plugin name': 'Spaces',
17
17
  'first run message': 'Nothing selected.',
18
- 'add space label': 'Create or join a space',
19
18
  'create space label': 'Create space',
20
19
  'join space label': 'Join space',
21
20
  'empty space message': 'No documents',
@@ -2,15 +2,17 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Expando, Ref, S, TypedObject } from '@dxos/echo-schema';
5
+ import { Schema } from 'effect';
6
+
7
+ import { Expando, Ref, TypedObject } from '@dxos/echo-schema';
6
8
 
7
9
  export class CollectionType extends TypedObject({ typename: 'dxos.org/type/Collection', version: '0.1.0' })({
8
- name: S.optional(S.String),
9
- objects: S.mutable(S.Array(Ref(Expando))),
10
+ name: Schema.optional(Schema.String),
11
+ objects: Schema.mutable(Schema.Array(Ref(Expando))),
10
12
  // Key is schema typename and value is reference to a view object of the associated schema.
11
13
  // Having collection reference the views rather than vice versa ensures that the state converges to a single view per key (i.e. type).
12
14
  // This also leaves open a future where this key could be changed to allow for multiple stack views per section.
13
15
  // TODO(wittjosiah): Any way to make this more type safe?
14
16
  // TODO(wittjosiah): Should the views be separate objects or just be schemas for view data in this record?
15
- views: S.mutable(S.Record({ key: S.String, value: Ref(Expando) })),
17
+ views: Schema.mutable(Schema.Record({ key: Schema.String, value: Ref(Expando) })),
16
18
  }) {}
@@ -2,23 +2,29 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Expando, Ref, S, TypedObject } from '@dxos/echo-schema';
6
- import { MessageType } from '@dxos/schema';
5
+ import { Schema } from 'effect';
6
+
7
+ import { Expando, Ref, TypedObject } from '@dxos/echo-schema';
8
+ import { DataType } from '@dxos/schema';
7
9
 
8
10
  // TODO(wittjosiah): These types were placed here rather than in @dxos/plugin-thread
9
11
  // in order to avoid a circular dependency between threads and other objects that use threads.
10
12
 
11
- export const ThreadStatus = S.Union(S.Literal('staged'), S.Literal('active'), S.Literal('resolved'));
13
+ export const ThreadStatus = Schema.Union(
14
+ Schema.Literal('staged'),
15
+ Schema.Literal('active'),
16
+ Schema.Literal('resolved'),
17
+ );
12
18
 
13
19
  export class ThreadType extends TypedObject({ typename: 'dxos.org/type/Thread', version: '0.1.0' })({
14
- name: S.optional(S.String),
20
+ name: Schema.optional(Schema.String),
15
21
  /** AM cursor-range: 'from:to'. */
16
- anchor: S.optional(S.String),
17
- status: S.optional(ThreadStatus),
18
- messages: S.mutable(S.Array(Ref(MessageType))),
22
+ anchor: Schema.optional(Schema.String),
23
+ status: Schema.optional(ThreadStatus),
24
+ messages: Schema.mutable(Schema.Array(Ref(DataType.Message))),
19
25
  }) {}
20
26
 
21
27
  export class ChannelType extends TypedObject({ typename: 'dxos.org/type/Channel', version: '0.1.0' })({
22
- name: S.optional(S.String),
28
+ name: Schema.optional(Schema.String),
23
29
  queue: Ref(Expando),
24
30
  }) {}
@@ -2,8 +2,10 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { Schema } from 'effect';
6
+
5
7
  import { type AnyIntentChain } from '@dxos/app-framework';
6
- import { S, type Expando, type BaseObject, type TypedObject } from '@dxos/echo-schema';
8
+ import { type Expando, type BaseObject, type TypedObject } from '@dxos/echo-schema';
7
9
  import { type PublicKey } from '@dxos/react-client';
8
10
  // TODO(wittjosiah): This pulls in full client.
9
11
  import { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';
@@ -63,16 +65,16 @@ export type PluginState = {
63
65
  enabledEdgeReplication: boolean;
64
66
  };
65
67
 
66
- export const SpaceSettingsSchema = S.mutable(
67
- S.Struct({
68
+ export const SpaceSettingsSchema = Schema.mutable(
69
+ Schema.Struct({
68
70
  /**
69
71
  * Show closed spaces.
70
72
  */
71
- showHidden: S.Boolean,
73
+ showHidden: Schema.Boolean,
72
74
  }),
73
75
  );
74
76
 
75
- export type SpaceSettingsProps = S.Schema.Type<typeof SpaceSettingsSchema>;
77
+ export type SpaceSettingsProps = Schema.Schema.Type<typeof SpaceSettingsSchema>;
76
78
 
77
79
  // TODO(wittjosiah): Reconcile with graph export serializers.
78
80
 
@@ -93,18 +95,18 @@ export interface TypedObjectSerializer<T extends Expando = Expando> {
93
95
  export const IconAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Icon');
94
96
  export const HueAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Hue');
95
97
 
96
- export const SpaceForm = S.Struct({
97
- name: S.optional(S.String.annotations({ title: 'Name' })),
98
- icon: S.optional(S.String.annotations({ title: 'Icon', [IconAnnotationId]: true })),
99
- hue: S.optional(S.String.annotations({ title: 'Color', [HueAnnotationId]: true })),
98
+ export const SpaceForm = Schema.Struct({
99
+ name: Schema.optional(Schema.String.annotations({ title: 'Name' })),
100
+ icon: Schema.optional(Schema.String.annotations({ title: 'Icon', [IconAnnotationId]: true })),
101
+ hue: Schema.optional(Schema.String.annotations({ title: 'Color', [HueAnnotationId]: true })),
100
102
  // TODO(wittjosiah): Make optional with default value.
101
- edgeReplication: S.Boolean.annotations({ title: 'Enable EDGE Replication' }),
103
+ edgeReplication: Schema.Boolean.annotations({ title: 'Enable EDGE Replication' }),
102
104
  });
103
105
 
104
106
  export type ObjectForm<T extends BaseObject = BaseObject> = {
105
- // TODO(dmaretskyi): Change to S.Schema.AnyNoContext
107
+ // TODO(dmaretskyi): Change to Schema.Schema.AnyNoContext
106
108
  objectSchema: TypedObject;
107
- formSchema?: S.Schema<T, any>;
109
+ formSchema?: Schema.Schema<T, any>;
108
110
  hidden?: boolean;
109
111
  getIntent: (props: T, options: { space: Space }) => AnyIntentChain;
110
112
  };
@@ -114,186 +116,176 @@ export const defineObjectForm = <T extends BaseObject>(form: ObjectForm<T>) => f
114
116
  export const SPACE_ACTION = `${SPACE_PLUGIN}/action`;
115
117
 
116
118
  export namespace SpaceAction {
117
- export class OpenCreateSpace extends S.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {
118
- input: S.Void,
119
- output: S.Void,
119
+ export class OpenCreateSpace extends Schema.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {
120
+ input: Schema.Void,
121
+ output: Schema.Void,
120
122
  }) {}
121
123
 
122
- export class Create extends S.TaggedClass<Create>()(`${SPACE_ACTION}/create`, {
124
+ export class Create extends Schema.TaggedClass<Create>()(`${SPACE_ACTION}/create`, {
123
125
  input: SpaceForm,
124
- output: S.Struct({
125
- id: S.String,
126
- subject: S.Array(S.String),
126
+ output: Schema.Struct({
127
+ id: Schema.String,
128
+ subject: Schema.Array(Schema.String),
127
129
  space: SpaceSchema,
128
130
  }),
129
131
  }) {}
130
132
 
131
- export class Join extends S.TaggedClass<Join>()(`${SPACE_ACTION}/join`, {
132
- input: S.Struct({
133
- invitationCode: S.optional(S.String),
134
- onDone: S.optional(S.Any),
133
+ export class Join extends Schema.TaggedClass<Join>()(`${SPACE_ACTION}/join`, {
134
+ input: Schema.Struct({
135
+ invitationCode: Schema.optional(Schema.String),
136
+ onDone: Schema.optional(Schema.Any),
135
137
  }),
136
- output: S.Void,
138
+ output: Schema.Void,
137
139
  }) {}
138
140
 
139
- export class OpenMembers extends S.TaggedClass<OpenMembers>()(`${SPACE_ACTION}/open-members`, {
140
- input: S.Struct({
141
+ export class OpenMembers extends Schema.TaggedClass<OpenMembers>()(`${SPACE_ACTION}/open-members`, {
142
+ input: Schema.Struct({
141
143
  space: SpaceSchema,
142
144
  }),
143
- output: S.Void,
145
+ output: Schema.Void,
144
146
  }) {}
145
147
 
146
- export class Share extends S.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {
147
- input: S.Struct({
148
+ export class Share extends Schema.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {
149
+ input: Schema.Struct({
148
150
  space: SpaceSchema,
149
- type: S.Enums(Invitation.Type),
150
- authMethod: S.Enums(Invitation.AuthMethod),
151
- multiUse: S.Boolean,
152
- target: S.optional(S.String),
151
+ type: Schema.Enums(Invitation.Type),
152
+ authMethod: Schema.Enums(Invitation.AuthMethod),
153
+ multiUse: Schema.Boolean,
154
+ target: Schema.optional(Schema.String),
153
155
  }),
154
- output: S.instanceOf(CancellableInvitationObservable),
156
+ output: Schema.instanceOf(CancellableInvitationObservable),
155
157
  }) {}
156
158
 
157
- export class GetShareLink extends S.TaggedClass<GetShareLink>()(`${SPACE_ACTION}/get-share-link`, {
158
- input: S.Struct({
159
+ export class GetShareLink extends Schema.TaggedClass<GetShareLink>()(`${SPACE_ACTION}/get-share-link`, {
160
+ input: Schema.Struct({
159
161
  space: SpaceSchema,
160
- target: S.optional(S.String),
161
- copyToClipboard: S.optional(S.Boolean),
162
+ target: Schema.optional(Schema.String),
163
+ copyToClipboard: Schema.optional(Schema.Boolean),
162
164
  }),
163
- output: S.String,
165
+ output: Schema.String,
164
166
  }) {}
165
167
 
166
- export class Lock extends S.TaggedClass<Lock>()(`${SPACE_ACTION}/lock`, {
167
- input: S.Struct({
168
+ export class Lock extends Schema.TaggedClass<Lock>()(`${SPACE_ACTION}/lock`, {
169
+ input: Schema.Struct({
168
170
  space: SpaceSchema,
169
171
  }),
170
- output: S.Void,
172
+ output: Schema.Void,
171
173
  }) {}
172
174
 
173
- export class Unlock extends S.TaggedClass<Unlock>()(`${SPACE_ACTION}/unlock`, {
174
- input: S.Struct({
175
+ export class Unlock extends Schema.TaggedClass<Unlock>()(`${SPACE_ACTION}/unlock`, {
176
+ input: Schema.Struct({
175
177
  space: SpaceSchema,
176
178
  }),
177
- output: S.Void,
179
+ output: Schema.Void,
178
180
  }) {}
179
181
 
180
- export class Rename extends S.TaggedClass<Rename>()(`${SPACE_ACTION}/rename`, {
181
- input: S.Struct({
182
+ export class Rename extends Schema.TaggedClass<Rename>()(`${SPACE_ACTION}/rename`, {
183
+ input: Schema.Struct({
182
184
  space: SpaceSchema,
183
- caller: S.optional(S.String),
185
+ caller: Schema.optional(Schema.String),
184
186
  }),
185
- output: S.Void,
186
- }) {}
187
-
188
- export class AddSpace extends S.TaggedClass<AddSpace>()(`${SPACE_ACTION}/add-space`, {
189
- input: S.Void,
190
- output: S.Void,
191
- }) {}
192
-
193
- export class AddSpaceMenuGroup extends S.TaggedClass<AddSpaceMenuGroup>()(`${SPACE_ACTION}/add-space-menu-group`, {
194
- input: S.Void,
195
- output: S.Void,
187
+ output: Schema.Void,
196
188
  }) {}
197
189
 
198
190
  // TODO(wittjosiah): Handle scrolling to section.
199
191
  // This maybe motivates making the space settings its own deck?
200
- export class OpenSettings extends S.TaggedClass<OpenSettings>()(`${SPACE_ACTION}/open-settings`, {
201
- input: S.Struct({ space: SpaceSchema }),
202
- output: S.Void,
192
+ export class OpenSettings extends Schema.TaggedClass<OpenSettings>()(`${SPACE_ACTION}/open-settings`, {
193
+ input: Schema.Struct({ space: SpaceSchema }),
194
+ output: Schema.Void,
203
195
  }) {}
204
196
 
205
- export class Open extends S.TaggedClass<Open>()(`${SPACE_ACTION}/open`, {
206
- input: S.Struct({
197
+ export class Open extends Schema.TaggedClass<Open>()(`${SPACE_ACTION}/open`, {
198
+ input: Schema.Struct({
207
199
  space: SpaceSchema,
208
200
  }),
209
- output: S.Void,
201
+ output: Schema.Void,
210
202
  }) {}
211
203
 
212
- export class Close extends S.TaggedClass<Close>()(`${SPACE_ACTION}/close`, {
213
- input: S.Struct({
204
+ export class Close extends Schema.TaggedClass<Close>()(`${SPACE_ACTION}/close`, {
205
+ input: Schema.Struct({
214
206
  space: SpaceSchema,
215
207
  }),
216
- output: S.Void,
208
+ output: Schema.Void,
217
209
  }) {}
218
210
 
219
- export class Migrate extends S.TaggedClass<Migrate>()(`${SPACE_ACTION}/migrate`, {
220
- input: S.Struct({
211
+ export class Migrate extends Schema.TaggedClass<Migrate>()(`${SPACE_ACTION}/migrate`, {
212
+ input: Schema.Struct({
221
213
  space: SpaceSchema,
222
- version: S.optional(S.String),
214
+ version: Schema.optional(Schema.String),
223
215
  }),
224
- output: S.Boolean,
216
+ output: Schema.Boolean,
225
217
  }) {}
226
218
 
227
- export class OpenCreateObject extends S.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {
228
- input: S.Struct({
229
- target: S.Union(SpaceSchema, CollectionType),
230
- navigable: S.optional(S.Boolean),
219
+ export class OpenCreateObject extends Schema.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {
220
+ input: Schema.Struct({
221
+ target: Schema.Union(SpaceSchema, CollectionType),
222
+ navigable: Schema.optional(Schema.Boolean),
231
223
  }),
232
- output: S.Void,
224
+ output: Schema.Void,
233
225
  }) {}
234
226
 
235
- export class AddObject extends S.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {
236
- input: S.Struct({
227
+ export class AddObject extends Schema.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {
228
+ input: Schema.Struct({
237
229
  object: ReactiveObjectSchema,
238
- target: S.Union(SpaceSchema, CollectionType),
239
- hidden: S.optional(S.Boolean),
230
+ target: Schema.Union(SpaceSchema, CollectionType),
231
+ hidden: Schema.optional(Schema.Boolean),
240
232
  }),
241
- output: S.Struct({
242
- id: S.String,
243
- subject: S.Array(S.String),
233
+ output: Schema.Struct({
234
+ id: Schema.String,
235
+ subject: Schema.Array(Schema.String),
244
236
  object: EchoObjectSchema,
245
237
  }),
246
238
  }) {}
247
239
 
248
- export const DeletionData = S.Struct({
249
- objects: S.Array(EchoObjectSchema),
240
+ export const DeletionData = Schema.Struct({
241
+ objects: Schema.Array(EchoObjectSchema),
250
242
  parentCollection: CollectionType,
251
- indices: S.Array(S.Number),
252
- nestedObjectsList: S.Array(S.Array(EchoObjectSchema)),
253
- wasActive: S.Array(S.String),
243
+ indices: Schema.Array(Schema.Number),
244
+ nestedObjectsList: Schema.Array(Schema.Array(EchoObjectSchema)),
245
+ wasActive: Schema.Array(Schema.String),
254
246
  });
255
247
 
256
- export type DeletionData = S.Schema.Type<typeof DeletionData>;
248
+ export type DeletionData = Schema.Schema.Type<typeof DeletionData>;
257
249
 
258
- export class RemoveObjects extends S.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {
259
- input: S.Struct({
260
- objects: S.Array(EchoObjectSchema),
261
- target: S.optional(CollectionType),
262
- deletionData: S.optional(DeletionData),
250
+ export class RemoveObjects extends Schema.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {
251
+ input: Schema.Struct({
252
+ objects: Schema.Array(EchoObjectSchema),
253
+ target: Schema.optional(CollectionType),
254
+ deletionData: Schema.optional(DeletionData),
263
255
  }),
264
- output: S.Void,
256
+ output: Schema.Void,
265
257
  }) {}
266
258
 
267
- export class RenameObject extends S.TaggedClass<RenameObject>()(`${SPACE_ACTION}/rename-object`, {
268
- input: S.Struct({
259
+ export class RenameObject extends Schema.TaggedClass<RenameObject>()(`${SPACE_ACTION}/rename-object`, {
260
+ input: Schema.Struct({
269
261
  object: EchoObjectSchema,
270
- caller: S.optional(S.String),
262
+ caller: Schema.optional(Schema.String),
271
263
  }),
272
- output: S.Void,
264
+ output: Schema.Void,
273
265
  }) {}
274
266
 
275
- export class DuplicateObject extends S.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {
276
- input: S.Struct({
267
+ export class DuplicateObject extends Schema.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {
268
+ input: Schema.Struct({
277
269
  object: EchoObjectSchema,
278
- target: S.Union(SpaceSchema, CollectionType),
270
+ target: Schema.Union(SpaceSchema, CollectionType),
279
271
  }),
280
- output: S.Void,
272
+ output: Schema.Void,
281
273
  }) {}
282
274
 
283
- export class WaitForObject extends S.TaggedClass<WaitForObject>()(`${SPACE_ACTION}/wait-for-object`, {
284
- input: S.Struct({
285
- id: S.optional(S.String),
275
+ export class WaitForObject extends Schema.TaggedClass<WaitForObject>()(`${SPACE_ACTION}/wait-for-object`, {
276
+ input: Schema.Struct({
277
+ id: Schema.optional(Schema.String),
286
278
  }),
287
- output: S.Void,
279
+ output: Schema.Void,
288
280
  }) {}
289
281
  }
290
282
 
291
283
  export namespace CollectionAction {
292
- export class Create extends S.TaggedClass<Create>()('dxos.org/plugin/collection/action/create', {
293
- input: S.Struct({
294
- name: S.optional(S.String),
284
+ export class Create extends Schema.TaggedClass<Create>()('dxos.org/plugin/collection/action/create', {
285
+ input: Schema.Struct({
286
+ name: Schema.optional(Schema.String),
295
287
  }),
296
- output: S.Struct({
288
+ output: Schema.Struct({
297
289
  object: CollectionType,
298
290
  }),
299
291
  }) {}