@dxos/plugin-space 0.8.2-main.2f9c567 → 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.
- package/dist/lib/browser/{app-graph-builder-I2BU35J5.mjs → app-graph-builder-ZWNOWRAX.mjs} +3 -3
- package/dist/lib/browser/app-graph-builder-ZWNOWRAX.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-HPYDOKA5.mjs → app-graph-serializer-UUJH7JRN.mjs} +4 -4
- package/dist/lib/browser/{chunk-TSX67XGX.mjs → chunk-3KG2VMQL.mjs} +27 -37
- package/dist/lib/browser/chunk-3KG2VMQL.mjs.map +7 -0
- package/dist/lib/browser/{chunk-OS5QKO4Z.mjs → chunk-DIJ7LMCS.mjs} +2 -2
- package/dist/lib/browser/{chunk-RERTVPBV.mjs → chunk-JS6ZV4GV.mjs} +2 -2
- package/dist/lib/browser/chunk-JS6ZV4GV.mjs.map +7 -0
- package/dist/lib/browser/chunk-O7WGQVLQ.mjs +306 -0
- package/dist/lib/browser/chunk-O7WGQVLQ.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-DWFKBGOA.mjs → identity-created-NRVE4XLL.mjs} +2 -2
- package/dist/lib/browser/index.mjs +12 -12
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-GKDCJ4H2.mjs → intent-resolver-U3UVTHQV.mjs} +9 -16
- package/dist/lib/browser/intent-resolver-U3UVTHQV.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-667IZ2Q4.mjs → react-root-63ZJ5IR6.mjs} +4 -4
- package/dist/lib/browser/{react-surface-I4RNTGGN.mjs → react-surface-2OFMYE6E.mjs} +4 -4
- package/dist/lib/browser/react-surface-2OFMYE6E.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-FLFEUSLB.mjs → schema-FHTA26SW.mjs} +4 -4
- package/dist/lib/browser/{schema-defs-FLFEUSLB.mjs.map → schema-FHTA26SW.mjs.map} +2 -2
- package/dist/lib/browser/{schema-tools-MYC4LTQD.mjs → schema-tools-YAXPRIXP.mjs} +22 -22
- package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +7 -0
- package/dist/lib/browser/{settings-ILGGNYJ7.mjs → settings-MVT32NP6.mjs} +2 -2
- package/dist/lib/browser/{spaces-ready-IXZF3RWW.mjs → spaces-ready-ERNSICUW.mjs} +3 -3
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{app-graph-builder-H7MDHM3X.cjs → app-graph-builder-LLIV422L.cjs} +33 -33
- package/dist/lib/node/app-graph-builder-LLIV422L.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-G7UYFWG6.cjs → app-graph-serializer-M6Z2OPA4.cjs} +20 -20
- package/dist/lib/node/{chunk-AR3JHVCY.cjs → chunk-EQ5BPSQ7.cjs} +117 -119
- package/dist/lib/node/chunk-EQ5BPSQ7.cjs.map +7 -0
- package/dist/lib/node/{chunk-HD4C6KKO.cjs → chunk-M7N2NCC4.cjs} +53 -63
- package/dist/lib/node/chunk-M7N2NCC4.cjs.map +7 -0
- package/dist/lib/node/{chunk-NCSFM6RA.cjs → chunk-UOCR4G2D.cjs} +6 -6
- package/dist/lib/node/{chunk-EG3WAZLA.cjs → chunk-XADZLQAJ.cjs} +27 -27
- package/dist/lib/node/chunk-XADZLQAJ.cjs.map +7 -0
- package/dist/lib/node/{identity-created-YLGVEWAJ.cjs → identity-created-YDTRMOMX.cjs} +6 -6
- package/dist/lib/node/index.cjs +67 -67
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-V7UJKLE7.cjs → intent-resolver-4JWTDB67.cjs} +59 -66
- package/dist/lib/node/intent-resolver-4JWTDB67.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-root-I3SSFA5O.cjs → react-root-6T2UE4MX.cjs} +8 -8
- package/dist/lib/node/{react-surface-OLMQCCYD.cjs → react-surface-6W7WFRBS.cjs} +44 -44
- package/dist/lib/node/react-surface-6W7WFRBS.cjs.map +7 -0
- package/dist/lib/node/{schema-defs-PKZVL52M.cjs → schema-PPJ5BZ3A.cjs} +6 -6
- package/dist/lib/node/{schema-defs-PKZVL52M.cjs.map → schema-PPJ5BZ3A.cjs.map} +2 -2
- package/dist/lib/node/{schema-tools-OE3MFYYH.cjs → schema-tools-BLIMOZYY.cjs} +24 -24
- package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +7 -0
- package/dist/lib/node/{settings-7TC55JP4.cjs → settings-JLV7YT6Q.cjs} +6 -6
- package/dist/lib/node/{spaces-ready-4H3Q46GV.cjs → spaces-ready-6EBR4SM4.cjs} +11 -11
- package/dist/lib/node/types/index.cjs +15 -15
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{app-graph-builder-NI7X6W3Q.mjs → app-graph-builder-HSGLCS76.mjs} +3 -3
- package/dist/lib/node-esm/app-graph-builder-HSGLCS76.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-CVPYWWW3.mjs → app-graph-serializer-J3B4WSXU.mjs} +4 -4
- package/dist/lib/node-esm/{chunk-B2P24Q5R.mjs → chunk-ABTVMAG5.mjs} +2 -2
- package/dist/lib/node-esm/chunk-ABTVMAG5.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-FJPCLEKN.mjs +307 -0
- package/dist/lib/node-esm/chunk-FJPCLEKN.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FUH5OODY.mjs → chunk-OLISVDCF.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-BU6F7ZU4.mjs → chunk-RM7ZVPKM.mjs} +27 -37
- package/dist/lib/node-esm/chunk-RM7ZVPKM.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-7NHGER3Q.mjs → identity-created-EC6SVYB5.mjs} +2 -2
- package/dist/lib/node-esm/index.mjs +12 -12
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-IL63YTIT.mjs → intent-resolver-5PUGNEOK.mjs} +9 -16
- package/dist/lib/node-esm/intent-resolver-5PUGNEOK.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-JEGVIVVK.mjs → react-root-YQKCDI3P.mjs} +4 -4
- package/dist/lib/node-esm/{react-surface-DRRXIJBE.mjs → react-surface-UK2HIELM.mjs} +4 -4
- package/dist/lib/node-esm/react-surface-UK2HIELM.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-IIEQR7B3.mjs → schema-OUZKVYM5.mjs} +4 -4
- package/dist/lib/node-esm/{schema-defs-IIEQR7B3.mjs.map → schema-OUZKVYM5.mjs.map} +2 -2
- package/dist/lib/node-esm/{schema-tools-YTJLA3NQ.mjs → schema-tools-IU7EX5A5.mjs} +22 -22
- package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-CXMV2AFR.mjs → settings-AILIMHTE.mjs} +2 -2
- package/dist/lib/node-esm/{spaces-ready-QMXLQ4QV.mjs → spaces-ready-5PXESKHX.mjs} +3 -3
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +2 -2
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-tools.d.ts +2 -2
- package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
- package/dist/types/src/capabilities/{schema-defs.d.ts → schema.d.ts} +1 -1
- package/dist/types/src/capabilities/schema.d.ts.map +1 -0
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/components/MenuFooter.d.ts +2 -2
- package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +2 -2
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +2 -2
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -2
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/types/collection.d.ts +8 -9
- package/dist/types/src/types/collection.d.ts.map +1 -1
- package/dist/types/src/types/thread.d.ts +118 -113
- package/dist/types/src/types/thread.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +152 -153
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +4 -4
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +45 -46
- package/src/SpacePlugin.tsx +7 -8
- package/src/capabilities/app-graph-builder.ts +3 -3
- package/src/capabilities/index.ts +2 -2
- package/src/capabilities/intent-resolver.ts +2 -14
- package/src/capabilities/react-surface.tsx +11 -11
- package/src/capabilities/schema-tool.test.ts +3 -2
- package/src/capabilities/schema-tools.ts +25 -25
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +3 -2
- package/src/components/MenuFooter.tsx +2 -2
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +2 -2
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +2 -2
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +2 -2
- package/src/components/PopoverRenameSpace.tsx +0 -8
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +3 -5
- package/src/hooks/useInputSurfaceLookup.tsx +2 -2
- package/src/types/collection.ts +4 -6
- package/src/types/thread.ts +8 -14
- package/src/types/types.ts +109 -114
- package/src/util.tsx +9 -9
- package/dist/lib/browser/app-graph-builder-I2BU35J5.mjs.map +0 -7
- package/dist/lib/browser/chunk-RERTVPBV.mjs.map +0 -7
- package/dist/lib/browser/chunk-TSX67XGX.mjs.map +0 -7
- package/dist/lib/browser/chunk-YQNBTJI4.mjs +0 -308
- package/dist/lib/browser/chunk-YQNBTJI4.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-GKDCJ4H2.mjs.map +0 -7
- package/dist/lib/browser/react-surface-I4RNTGGN.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-MYC4LTQD.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-H7MDHM3X.cjs.map +0 -7
- package/dist/lib/node/chunk-AR3JHVCY.cjs.map +0 -7
- package/dist/lib/node/chunk-EG3WAZLA.cjs.map +0 -7
- package/dist/lib/node/chunk-HD4C6KKO.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-V7UJKLE7.cjs.map +0 -7
- package/dist/lib/node/react-surface-OLMQCCYD.cjs.map +0 -7
- package/dist/lib/node/schema-tools-OE3MFYYH.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-NI7X6W3Q.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-B2P24Q5R.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BU6F7ZU4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RUWTHAV7.mjs +0 -309
- package/dist/lib/node-esm/chunk-RUWTHAV7.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-IL63YTIT.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-DRRXIJBE.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-YTJLA3NQ.mjs.map +0 -7
- package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
- /package/dist/lib/browser/{app-graph-serializer-HPYDOKA5.mjs.map → app-graph-serializer-UUJH7JRN.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-OS5QKO4Z.mjs.map → chunk-DIJ7LMCS.mjs.map} +0 -0
- /package/dist/lib/browser/{identity-created-DWFKBGOA.mjs.map → identity-created-NRVE4XLL.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-667IZ2Q4.mjs.map → react-root-63ZJ5IR6.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-ILGGNYJ7.mjs.map → settings-MVT32NP6.mjs.map} +0 -0
- /package/dist/lib/browser/{spaces-ready-IXZF3RWW.mjs.map → spaces-ready-ERNSICUW.mjs.map} +0 -0
- /package/dist/lib/node/{app-graph-serializer-G7UYFWG6.cjs.map → app-graph-serializer-M6Z2OPA4.cjs.map} +0 -0
- /package/dist/lib/node/{chunk-NCSFM6RA.cjs.map → chunk-UOCR4G2D.cjs.map} +0 -0
- /package/dist/lib/node/{identity-created-YLGVEWAJ.cjs.map → identity-created-YDTRMOMX.cjs.map} +0 -0
- /package/dist/lib/node/{react-root-I3SSFA5O.cjs.map → react-root-6T2UE4MX.cjs.map} +0 -0
- /package/dist/lib/node/{settings-7TC55JP4.cjs.map → settings-JLV7YT6Q.cjs.map} +0 -0
- /package/dist/lib/node/{spaces-ready-4H3Q46GV.cjs.map → spaces-ready-6EBR4SM4.cjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-serializer-CVPYWWW3.mjs.map → app-graph-serializer-J3B4WSXU.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-FUH5OODY.mjs.map → chunk-OLISVDCF.mjs.map} +0 -0
- /package/dist/lib/node-esm/{identity-created-7NHGER3Q.mjs.map → identity-created-EC6SVYB5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-JEGVIVVK.mjs.map → react-root-YQKCDI3P.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-CXMV2AFR.mjs.map → settings-AILIMHTE.mjs.map} +0 -0
- /package/dist/lib/node-esm/{spaces-ready-QMXLQ4QV.mjs.map → spaces-ready-5PXESKHX.mjs.map} +0 -0
- /package/src/capabilities/{schema-defs.ts → schema.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-space",
|
|
3
|
-
"version": "0.8.2-main.
|
|
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",
|
|
@@ -34,50 +34,50 @@
|
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@preact/signals-core": "^1.6.0",
|
|
37
|
-
"effect": "3.
|
|
37
|
+
"effect": "3.13.3",
|
|
38
38
|
"jszip": "^3.10.1",
|
|
39
39
|
"localforage": "^1.10.0",
|
|
40
40
|
"lodash.get": "^4.4.2",
|
|
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.
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/automerge": "0.8.2-main.
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/echo-schema": "0.8.2-main.
|
|
52
|
-
"@dxos/echo-signals": "0.8.2-main.
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/live-object": "0.8.2-main.
|
|
57
|
-
"@dxos/local-storage": "0.8.2-main.
|
|
58
|
-
"@dxos/
|
|
59
|
-
"@dxos/
|
|
60
|
-
"@dxos/
|
|
61
|
-
"@dxos/plugin-deck": "0.8.2-main.
|
|
62
|
-
"@dxos/plugin-
|
|
63
|
-
"@dxos/plugin-
|
|
64
|
-
"@dxos/plugin-
|
|
65
|
-
"@dxos/
|
|
66
|
-
"@dxos/
|
|
67
|
-
"@dxos/react-
|
|
68
|
-
"@dxos/react-ui-
|
|
69
|
-
"@dxos/react-
|
|
70
|
-
"@dxos/react-ui-
|
|
71
|
-
"@dxos/react-ui-pickers": "0.8.2-main.
|
|
72
|
-
"@dxos/react-ui-list": "0.8.2-main.
|
|
73
|
-
"@dxos/react-ui-searchlist": "0.8.2-main.
|
|
74
|
-
"@dxos/react-ui-stack": "0.8.2-main.
|
|
75
|
-
"@dxos/react-ui-
|
|
76
|
-
"@dxos/react-ui-
|
|
77
|
-
"@dxos/react-ui-
|
|
78
|
-
"@dxos/schema": "0.8.2-main.
|
|
79
|
-
"@dxos/shell": "0.8.2-main.
|
|
80
|
-
"@dxos/util": "0.8.2-main.
|
|
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,18 +88,17 @@
|
|
|
88
88
|
"react": "~18.2.0",
|
|
89
89
|
"react-dom": "~18.2.0",
|
|
90
90
|
"vite": "5.4.7",
|
|
91
|
-
"@dxos/random": "0.8.2-main.
|
|
92
|
-
"@dxos/react-ui": "0.8.2-main.
|
|
93
|
-
"@dxos/react-ui-theme": "0.8.2-main.
|
|
94
|
-
"@dxos/storybook-utils": "0.8.2-main.
|
|
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
|
-
"effect": "^3.13.3",
|
|
99
98
|
"react": "~18.2.0",
|
|
100
99
|
"react-dom": "~18.2.0",
|
|
101
|
-
"@dxos/react-ui": "0.8.2-main.
|
|
102
|
-
"@dxos/react-ui-theme": "0.8.2-main.
|
|
100
|
+
"@dxos/react-ui": "0.8.2-main.36232bc",
|
|
101
|
+
"@dxos/react-ui-theme": "0.8.2-main.36232bc"
|
|
103
102
|
},
|
|
104
103
|
"publishConfig": {
|
|
105
104
|
"access": "public"
|
package/src/SpacePlugin.tsx
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Schema } from 'effect';
|
|
6
|
-
|
|
7
5
|
import {
|
|
8
6
|
allOf,
|
|
9
7
|
Capabilities,
|
|
@@ -14,9 +12,10 @@ import {
|
|
|
14
12
|
Events,
|
|
15
13
|
oneOf,
|
|
16
14
|
} from '@dxos/app-framework';
|
|
15
|
+
import { S } from '@dxos/echo-schema';
|
|
16
|
+
import { RefArray } from '@dxos/live-object';
|
|
17
17
|
import { AttentionEvents } from '@dxos/plugin-attention';
|
|
18
18
|
import { ClientEvents } from '@dxos/plugin-client';
|
|
19
|
-
import { RefArray } from '@dxos/react-client/echo';
|
|
20
19
|
import { osTranslations } from '@dxos/shell/react';
|
|
21
20
|
|
|
22
21
|
import {
|
|
@@ -26,8 +25,8 @@ import {
|
|
|
26
25
|
IntentResolver,
|
|
27
26
|
ReactRoot,
|
|
28
27
|
ReactSurface,
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
Schema,
|
|
29
|
+
Tools,
|
|
31
30
|
SpaceCapabilities,
|
|
32
31
|
SpaceSettings,
|
|
33
32
|
SpacesReady,
|
|
@@ -108,7 +107,7 @@ export const SpacePlugin = ({
|
|
|
108
107
|
SpaceCapabilities.ObjectForm,
|
|
109
108
|
defineObjectForm({
|
|
110
109
|
objectSchema: CollectionType,
|
|
111
|
-
formSchema:
|
|
110
|
+
formSchema: S.Struct({ name: S.optional(S.String) }),
|
|
112
111
|
getIntent: (props) => createIntent(CollectionAction.Create, props),
|
|
113
112
|
}),
|
|
114
113
|
),
|
|
@@ -117,7 +116,7 @@ export const SpacePlugin = ({
|
|
|
117
116
|
id: `${meta.id}/module/schema`,
|
|
118
117
|
activatesOn: ClientEvents.ClientReady,
|
|
119
118
|
activatesBefore: [ClientEvents.SetupSchema],
|
|
120
|
-
activate:
|
|
119
|
+
activate: Schema,
|
|
121
120
|
}),
|
|
122
121
|
defineModule({
|
|
123
122
|
id: `${meta.id}/module/react-root`,
|
|
@@ -168,7 +167,7 @@ export const SpacePlugin = ({
|
|
|
168
167
|
defineModule({
|
|
169
168
|
id: `${meta.id}/module/tools`,
|
|
170
169
|
activatesOn: Events.SetupArtifactDefinition,
|
|
171
|
-
activate:
|
|
170
|
+
activate: Tools,
|
|
172
171
|
}),
|
|
173
172
|
]);
|
|
174
173
|
};
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
getSpace,
|
|
11
11
|
isEchoObject,
|
|
12
12
|
OBJECT_ID_LENGTH,
|
|
13
|
-
type
|
|
13
|
+
type ReactiveEchoObject,
|
|
14
14
|
SPACE_ID_LENGTH,
|
|
15
15
|
SpaceState,
|
|
16
16
|
type Space,
|
|
@@ -348,7 +348,7 @@ export default (context: PluginsContext) => {
|
|
|
348
348
|
// Create collection actions and action groups.
|
|
349
349
|
createExtension({
|
|
350
350
|
id: `${SPACE_PLUGIN}/object-actions`,
|
|
351
|
-
filter: (node): node is Node<
|
|
351
|
+
filter: (node): node is Node<ReactiveEchoObject<any>> => isEchoObject(node.data),
|
|
352
352
|
actions: ({ node }) => {
|
|
353
353
|
const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
|
|
354
354
|
const state = context.requestCapability(SpaceCapabilities.State);
|
|
@@ -359,7 +359,7 @@ export default (context: PluginsContext) => {
|
|
|
359
359
|
// Object settings plank companion.
|
|
360
360
|
createExtension({
|
|
361
361
|
id: `${SPACE_PLUGIN}/settings`,
|
|
362
|
-
filter: (node): node is Node<
|
|
362
|
+
filter: (node): node is Node<ReactiveEchoObject<any>> => isEchoObject(node.data),
|
|
363
363
|
connector: ({ node }) => [
|
|
364
364
|
{
|
|
365
365
|
id: [node.id, 'settings'].join(ATTENDABLE_PATH_SEPARATOR),
|
|
@@ -10,8 +10,8 @@ export const IdentityCreated = lazy(() => import('./identity-created'));
|
|
|
10
10
|
export const IntentResolver = lazy(() => import('./intent-resolver'));
|
|
11
11
|
export const ReactRoot = lazy(() => import('./react-root'));
|
|
12
12
|
export const ReactSurface = lazy(() => import('./react-surface'));
|
|
13
|
-
export const
|
|
14
|
-
export const
|
|
13
|
+
export const Schema = lazy(() => import('./schema'));
|
|
14
|
+
export const Tools = lazy(() => import('./schema-tools'));
|
|
15
15
|
export const SpaceSettings = lazy(() => import('./settings'));
|
|
16
16
|
export const SpaceState = lazy(() => import('./state'));
|
|
17
17
|
export const SpacesReady = lazy(() => import('./spaces-ready'));
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Effect } from 'effect';
|
|
5
|
+
import { Effect, pipe } from 'effect';
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
8
|
Capabilities,
|
|
@@ -169,19 +169,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
|
|
|
169
169
|
}),
|
|
170
170
|
);
|
|
171
171
|
|
|
172
|
-
|
|
173
|
-
// NOTE: Delegated invitations are invalid until the connecting state when keys are filled in.
|
|
174
|
-
const invitationCode = yield* Effect.tryPromise(
|
|
175
|
-
() =>
|
|
176
|
-
new Promise<string>((resolve) => {
|
|
177
|
-
invitation.subscribe((invitation) => {
|
|
178
|
-
if (invitation.state === Invitation.State.CONNECTING) {
|
|
179
|
-
resolve(InvitationEncoder.encode(invitation));
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}),
|
|
183
|
-
);
|
|
184
|
-
const url = createInvitationUrl(invitationCode);
|
|
172
|
+
const url = pipe(invitation.get(), InvitationEncoder.encode, createInvitationUrl);
|
|
185
173
|
if (copyToClipboard) {
|
|
186
174
|
yield* Effect.tryPromise(() => navigator.clipboard.writeText(url));
|
|
187
175
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type Schema } from 'effect';
|
|
5
|
+
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';
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
parseId,
|
|
18
18
|
SpaceState,
|
|
19
19
|
useSpace,
|
|
20
|
-
type
|
|
20
|
+
type ReactiveEchoObject,
|
|
21
21
|
type Space,
|
|
22
22
|
} from '@dxos/react-client/echo';
|
|
23
23
|
import { Input } from '@dxos/react-ui';
|
|
@@ -93,7 +93,7 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
|
|
|
93
93
|
createSurface({
|
|
94
94
|
id: `${SPACE_PLUGIN}/companion/object-settings`,
|
|
95
95
|
role: 'article',
|
|
96
|
-
filter: (data): data is { companionTo:
|
|
96
|
+
filter: (data): data is { companionTo: ReactiveEchoObject<any> } =>
|
|
97
97
|
isEchoObject(data.companionTo) && data.subject === 'settings',
|
|
98
98
|
component: ({ data, role }) => <ObjectSettingsContainer object={data.companionTo} role={role} />,
|
|
99
99
|
}),
|
|
@@ -164,8 +164,8 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
|
|
|
164
164
|
createSurface({
|
|
165
165
|
id: `${SPACE_PLUGIN}/create-initial-space-form-[hue]`,
|
|
166
166
|
role: 'form-input',
|
|
167
|
-
filter: (data): data is { prop: string; schema:
|
|
168
|
-
const annotation = findAnnotation<boolean>((data.schema as
|
|
167
|
+
filter: (data): data is { prop: string; schema: S.Schema<any> } => {
|
|
168
|
+
const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, HueAnnotationId);
|
|
169
169
|
return !!annotation;
|
|
170
170
|
},
|
|
171
171
|
component: ({ data: _, ...inputProps }) => {
|
|
@@ -183,8 +183,8 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
|
|
|
183
183
|
createSurface({
|
|
184
184
|
id: `${SPACE_PLUGIN}/create-initial-space-form-[icon]`,
|
|
185
185
|
role: 'form-input',
|
|
186
|
-
filter: (data): data is { prop: string; schema:
|
|
187
|
-
const annotation = findAnnotation<boolean>((data.schema as
|
|
186
|
+
filter: (data): data is { prop: string; schema: S.Schema<any> } => {
|
|
187
|
+
const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, IconAnnotationId);
|
|
188
188
|
return !!annotation;
|
|
189
189
|
},
|
|
190
190
|
component: ({ data: _, ...inputProps }) => {
|
|
@@ -208,7 +208,7 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
|
|
|
208
208
|
createSurface({
|
|
209
209
|
id: POPOVER_RENAME_OBJECT,
|
|
210
210
|
role: 'popover',
|
|
211
|
-
filter: (data): data is { props:
|
|
211
|
+
filter: (data): data is { props: ReactiveEchoObject<any> } =>
|
|
212
212
|
data.component === POPOVER_RENAME_OBJECT && isLiveObject(data.props),
|
|
213
213
|
component: ({ data }) => <PopoverRenameObject object={data.props} />,
|
|
214
214
|
}),
|
|
@@ -221,13 +221,13 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
|
|
|
221
221
|
createSurface({
|
|
222
222
|
id: `${SPACE_PLUGIN}/menu-footer`,
|
|
223
223
|
role: 'menu-footer',
|
|
224
|
-
filter: (data): data is { subject:
|
|
224
|
+
filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),
|
|
225
225
|
component: ({ data }) => <MenuFooter object={data.subject} />,
|
|
226
226
|
}),
|
|
227
227
|
createSurface({
|
|
228
228
|
id: `${SPACE_PLUGIN}/navtree-presence`,
|
|
229
229
|
role: 'navtree-item-end',
|
|
230
|
-
filter: (data): data is { id: string; subject:
|
|
230
|
+
filter: (data): data is { id: string; subject: ReactiveEchoObject<any>; open?: boolean } =>
|
|
231
231
|
typeof data.id === 'string' && isEchoObject(data.subject),
|
|
232
232
|
component: ({ data }) => {
|
|
233
233
|
// TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.
|
|
@@ -254,7 +254,7 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
|
|
|
254
254
|
id: `${SPACE_PLUGIN}/navbar-presence`,
|
|
255
255
|
role: 'navbar-end',
|
|
256
256
|
position: 'hoist',
|
|
257
|
-
filter: (data): data is { subject: Space |
|
|
257
|
+
filter: (data): data is { subject: Space | ReactiveEchoObject<any> } =>
|
|
258
258
|
isSpace(data.subject) || isEchoObject(data.subject),
|
|
259
259
|
component: ({ data }) => {
|
|
260
260
|
const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Schema } from 'effect';
|
|
6
5
|
import { describe, it, expect } from 'vitest';
|
|
7
6
|
|
|
7
|
+
import { S } from '@dxos/echo-schema';
|
|
8
|
+
|
|
8
9
|
import { TypeNameSchema } from './schema-tools';
|
|
9
10
|
|
|
10
11
|
describe('TypeNameSchema format', () => {
|
|
@@ -28,7 +29,7 @@ describe('TypeNameSchema format', () => {
|
|
|
28
29
|
'.org/Type', // Must have domain
|
|
29
30
|
];
|
|
30
31
|
|
|
31
|
-
const validate =
|
|
32
|
+
const validate = S.validateSync(TypeNameSchema);
|
|
32
33
|
|
|
33
34
|
valid.forEach((typename) => {
|
|
34
35
|
it(`should accept valid typename: ${typename}`, () => {
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { DescriptionAnnotationId, ExamplesAnnotationId, TitleAnnotationId } from 'effect/SchemaAST';
|
|
6
6
|
|
|
7
7
|
import { Capabilities, contributes, type PromiseIntentDispatcher } from '@dxos/app-framework';
|
|
8
8
|
import { defineTool, ToolResult } from '@dxos/artifact';
|
|
9
9
|
import { type Space } from '@dxos/client/echo';
|
|
10
|
-
import { FormatEnum, FormatEnums, SelectOptionSchema, GeoPoint, toJsonSchema } from '@dxos/echo-schema';
|
|
10
|
+
import { FormatEnum, FormatEnums, S, SelectOptionSchema, GeoPoint, toJsonSchema } from '@dxos/echo-schema';
|
|
11
11
|
import { invariant } from '@dxos/invariant';
|
|
12
12
|
import { hues } from '@dxos/react-ui-theme';
|
|
13
13
|
import { getSchemaFromPropertyDefinitions } from '@dxos/schema';
|
|
@@ -21,13 +21,13 @@ declare global {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
// TODO(ZaymonFC): Move this somewhere common.
|
|
24
|
-
export const TypeNameSchema =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
[
|
|
28
|
-
[
|
|
24
|
+
export const TypeNameSchema = S.String.pipe(
|
|
25
|
+
S.pattern(/^\w+\.\w{2,}\/[\w/]+$/i),
|
|
26
|
+
S.annotations({
|
|
27
|
+
[TitleAnnotationId]: 'TypeName',
|
|
28
|
+
[DescriptionAnnotationId]:
|
|
29
29
|
'Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.',
|
|
30
|
-
[
|
|
30
|
+
[ExamplesAnnotationId]: ['example.com/type/Document', 'example.com/type/FlightList'],
|
|
31
31
|
}),
|
|
32
32
|
);
|
|
33
33
|
|
|
@@ -36,23 +36,23 @@ const formatDescription = `The format of the property. Additional information:
|
|
|
36
36
|
This tuple is GeoJSON. You must specify \`${FormatEnum.GeoPoint}\` as [Longitude, Latitude]`;
|
|
37
37
|
|
|
38
38
|
// TODO(ZaymonFC): All properties are default optional, but maybe we should allow for required properties.
|
|
39
|
-
const PropertyDefinitionSchema =
|
|
40
|
-
name:
|
|
41
|
-
format:
|
|
42
|
-
[
|
|
39
|
+
const PropertyDefinitionSchema = S.Struct({
|
|
40
|
+
name: S.String.annotations({ [DescriptionAnnotationId]: 'The name of the property.' }),
|
|
41
|
+
format: S.Union(...FormatEnums.map((format) => S.Literal(format))).annotations({
|
|
42
|
+
[DescriptionAnnotationId]: formatDescription,
|
|
43
43
|
}),
|
|
44
|
-
config:
|
|
45
|
-
|
|
46
|
-
options:
|
|
47
|
-
|
|
44
|
+
config: S.optional(
|
|
45
|
+
S.Struct({
|
|
46
|
+
options: S.optional(
|
|
47
|
+
S.Array(SelectOptionSchema)
|
|
48
48
|
.annotations({
|
|
49
49
|
description: `Options for SingleSelect/MultiSelect formats. Available colors: ${hues.join(', ')}`,
|
|
50
50
|
})
|
|
51
|
-
.pipe(
|
|
51
|
+
.pipe(S.mutable),
|
|
52
52
|
),
|
|
53
53
|
}),
|
|
54
54
|
),
|
|
55
|
-
}).pipe(
|
|
55
|
+
}).pipe(S.mutable);
|
|
56
56
|
|
|
57
57
|
const SYSTEM_NAMESPACE = 'dxos.org/echo/schema';
|
|
58
58
|
|
|
@@ -62,7 +62,7 @@ export default () =>
|
|
|
62
62
|
name: 'list',
|
|
63
63
|
description: 'List registered schemas in the space.',
|
|
64
64
|
caption: 'Listing registered schemas...',
|
|
65
|
-
schema:
|
|
65
|
+
schema: S.Struct({}),
|
|
66
66
|
execute: async (_input, { extensions }) => {
|
|
67
67
|
invariant(extensions?.space, 'No space.');
|
|
68
68
|
const space = extensions.space;
|
|
@@ -80,8 +80,8 @@ export default () =>
|
|
|
80
80
|
name: 'get',
|
|
81
81
|
description: 'Get a specific schema by its typename.',
|
|
82
82
|
caption: 'Getting schema...',
|
|
83
|
-
schema:
|
|
84
|
-
typename:
|
|
83
|
+
schema: S.Struct({
|
|
84
|
+
typename: S.String.annotations({
|
|
85
85
|
description: 'The fully qualified typename of the schema.',
|
|
86
86
|
}),
|
|
87
87
|
}),
|
|
@@ -101,14 +101,14 @@ export default () =>
|
|
|
101
101
|
name: 'create',
|
|
102
102
|
description: 'Create a new schema with the provided definition.',
|
|
103
103
|
caption: 'Creating schema...',
|
|
104
|
-
schema:
|
|
104
|
+
schema: S.Struct({
|
|
105
105
|
typename: TypeNameSchema.annotations({
|
|
106
106
|
description:
|
|
107
107
|
'The fully qualified schema typename. Must start with a domain, and then one or more path components (e.g., "example.com/type/TypeName").',
|
|
108
108
|
}),
|
|
109
|
-
properties:
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
properties: S.Array(PropertyDefinitionSchema).pipe(
|
|
110
|
+
S.annotations({ description: 'Array of property definitions for the schema.' }),
|
|
111
|
+
S.mutable,
|
|
112
112
|
),
|
|
113
113
|
}),
|
|
114
114
|
execute: async ({ typename, properties }, { extensions }) => {
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Effect
|
|
5
|
+
import { Effect } from 'effect';
|
|
6
6
|
import React, { useCallback, useRef } from 'react';
|
|
7
7
|
|
|
8
8
|
import { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';
|
|
9
|
+
import { type S } from '@dxos/echo-schema';
|
|
9
10
|
import { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';
|
|
10
11
|
import { Form } from '@dxos/react-ui-form';
|
|
11
12
|
|
|
@@ -15,7 +16,7 @@ import { SpaceAction, SpaceForm } from '../../types';
|
|
|
15
16
|
|
|
16
17
|
export const CREATE_SPACE_DIALOG = `${SPACE_PLUGIN}/CreateSpaceDialog`;
|
|
17
18
|
|
|
18
|
-
type FormValues =
|
|
19
|
+
type FormValues = S.Schema.Type<typeof SpaceForm>;
|
|
19
20
|
const initialValues: FormValues = { edgeReplication: true };
|
|
20
21
|
|
|
21
22
|
export const CreateSpaceDialog = () => {
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
import { Planet } from '@phosphor-icons/react';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
-
import { type
|
|
8
|
+
import { type ReactiveEchoObject, getSpace } from '@dxos/client/echo';
|
|
9
9
|
import { useClient } from '@dxos/react-client';
|
|
10
10
|
import { DropdownMenu, toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
11
11
|
|
|
12
12
|
import { SPACE_PLUGIN } from '../meta';
|
|
13
13
|
import { getSpaceDisplayName } from '../util';
|
|
14
14
|
|
|
15
|
-
export const MenuFooter = ({ object }: { object:
|
|
15
|
+
export const MenuFooter = ({ object }: { object: ReactiveEchoObject<any> }) => {
|
|
16
16
|
const { t } = useTranslation(SPACE_PLUGIN);
|
|
17
17
|
const client = useClient();
|
|
18
18
|
const space = getSpace(object);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import React, { useCallback, useState } from 'react';
|
|
6
6
|
|
|
7
7
|
import { type ForeignKey, ForeignKeySchema } from '@dxos/echo-schema';
|
|
8
|
-
import { getMeta, type
|
|
8
|
+
import { getMeta, type ReactiveEchoObject } from '@dxos/react-client/echo';
|
|
9
9
|
import { IconButton, useTranslation } from '@dxos/react-ui';
|
|
10
10
|
import { Form } from '@dxos/react-ui-form';
|
|
11
11
|
|
|
@@ -18,7 +18,7 @@ const initialValues = {
|
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
export type AdvancedObjectSettingsProps = {
|
|
21
|
-
object:
|
|
21
|
+
object: ReactiveEchoObject<any>;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
export const AdvancedObjectSettings = ({ object }: AdvancedObjectSettingsProps) => {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { type PropsWithChildren, useRef } from 'react';
|
|
6
6
|
|
|
7
|
-
import { type
|
|
7
|
+
import { type ReactiveEchoObject } from '@dxos/react-client/echo';
|
|
8
8
|
import { Input, type ThemedClassName, useTranslation } from '@dxos/react-ui';
|
|
9
9
|
import { mx } from '@dxos/react-ui-theme';
|
|
10
10
|
|
|
@@ -12,7 +12,7 @@ import { meta } from '../../meta';
|
|
|
12
12
|
|
|
13
13
|
export type BaseObjectSettingsProps = ThemedClassName<
|
|
14
14
|
PropsWithChildren<{
|
|
15
|
-
object:
|
|
15
|
+
object: ReactiveEchoObject<any>;
|
|
16
16
|
}>
|
|
17
17
|
>;
|
|
18
18
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import React, { useMemo } from 'react';
|
|
6
6
|
|
|
7
7
|
import { Surface } from '@dxos/app-framework';
|
|
8
|
-
import { type
|
|
8
|
+
import { type ReactiveEchoObject } from '@dxos/react-client/echo';
|
|
9
9
|
import { Clipboard } from '@dxos/react-ui';
|
|
10
10
|
import { StackItem } from '@dxos/react-ui-stack';
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@ import { AdvancedObjectSettings } from './AdvancedObjectSettings';
|
|
|
13
13
|
import { BaseObjectSettings } from './BaseObjectSettings';
|
|
14
14
|
|
|
15
15
|
export type ObjectSettingsContainerProps = {
|
|
16
|
-
object:
|
|
16
|
+
object: ReactiveEchoObject<any>;
|
|
17
17
|
role: string;
|
|
18
18
|
};
|
|
19
19
|
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { useCallback, useRef, useState } from 'react';
|
|
6
6
|
|
|
7
|
-
import { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';
|
|
8
7
|
import { type Space } from '@dxos/react-client/echo';
|
|
9
8
|
import { Button, Input, Popover, useTranslation } from '@dxos/react-ui';
|
|
10
9
|
|
|
@@ -16,16 +15,9 @@ export const PopoverRenameSpace = ({ space }: { space: Space }) => {
|
|
|
16
15
|
const { t } = useTranslation(SPACE_PLUGIN);
|
|
17
16
|
const doneButton = useRef<HTMLButtonElement>(null);
|
|
18
17
|
const [name, setName] = useState(space.properties.name ?? '');
|
|
19
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
20
18
|
|
|
21
19
|
const handleDone = useCallback(() => {
|
|
22
20
|
space.properties.name = name;
|
|
23
|
-
void dispatch(
|
|
24
|
-
createIntent(LayoutAction.UpdatePopover, {
|
|
25
|
-
part: 'popover',
|
|
26
|
-
options: { variant: 'react', anchorId: '', state: false },
|
|
27
|
-
}),
|
|
28
|
-
);
|
|
29
21
|
}, [space, name]);
|
|
30
22
|
|
|
31
23
|
// TODO(thure): Why does the input value need to be uncontrolled to work?
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { pipe, Schema } from 'effect';
|
|
5
|
+
import { pipe, Schema as S } 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,9 +25,7 @@ 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(
|
|
29
|
-
Schema.extend(Schema.Struct({ archived: Schema.Boolean.annotations({ title: 'Archive space' }) })),
|
|
30
|
-
);
|
|
28
|
+
const FormSchema = SpaceForm.pipe(S.extend(S.Struct({ archived: S.Boolean.annotations({ title: 'Archive space' }) })));
|
|
31
29
|
|
|
32
30
|
export type SpaceSettingsContainerProps = {
|
|
33
31
|
space: Space;
|
|
@@ -56,7 +54,7 @@ export const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) =
|
|
|
56
54
|
);
|
|
57
55
|
|
|
58
56
|
const handleSave = useCallback(
|
|
59
|
-
(properties:
|
|
57
|
+
(properties: S.Schema.Type<typeof FormSchema>) => {
|
|
60
58
|
void toggleEdgeReplication(properties.edgeReplication);
|
|
61
59
|
if (properties.name !== space.properties.name) {
|
|
62
60
|
space.properties.name = properties.name;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type Schema } from 'effect';
|
|
5
|
+
import { type Schema as S } 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:
|
|
21
|
+
({ prop, schema, inputProps }: { prop: string; schema: S.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;
|