@dxos/plugin-script 0.8.3-main.7f5a14c → 0.8.3-staging.0fa589b

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 (58) hide show
  1. package/dist/lib/browser/{ScriptContainer-BQS7LDI7.mjs → ScriptContainer-RSN52NH7.mjs} +6 -8
  2. package/dist/lib/browser/ScriptContainer-RSN52NH7.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-I6S7QLGR.mjs → chunk-3FU4QZVP.mjs} +2 -2
  4. package/dist/lib/browser/{chunk-I6S7QLGR.mjs.map → chunk-3FU4QZVP.mjs.map} +1 -1
  5. package/dist/lib/browser/{chunk-OMQLWT6X.mjs → chunk-3JLR2SHJ.mjs} +6 -6
  6. package/dist/lib/browser/{chunk-OMQLWT6X.mjs.map → chunk-3JLR2SHJ.mjs.map} +1 -1
  7. package/dist/lib/browser/index.mjs +9 -5
  8. package/dist/lib/browser/index.mjs.map +3 -3
  9. package/dist/lib/browser/{intent-resolver-52BWIOT6.mjs → intent-resolver-JOJNH4UX.mjs} +3 -3
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/{react-surface-3V4HK2LR.mjs → react-surface-7BKUWL2U.mjs} +4 -4
  12. package/dist/lib/browser/{react-surface-3V4HK2LR.mjs.map → react-surface-7BKUWL2U.mjs.map} +3 -3
  13. package/dist/lib/node/{ScriptContainer-OYFP6E5B.cjs → ScriptContainer-CAC7AISY.cjs} +22 -24
  14. package/dist/lib/node/ScriptContainer-CAC7AISY.cjs.map +7 -0
  15. package/dist/lib/node/{chunk-GUNGYAZU.cjs → chunk-AU2FOE26.cjs} +5 -5
  16. package/dist/lib/node/{chunk-GUNGYAZU.cjs.map → chunk-AU2FOE26.cjs.map} +1 -1
  17. package/dist/lib/node/{chunk-WHXKN26U.cjs → chunk-OSBMUJ4T.cjs} +11 -11
  18. package/dist/lib/node/{chunk-WHXKN26U.cjs.map → chunk-OSBMUJ4T.cjs.map} +1 -1
  19. package/dist/lib/node/index.cjs +16 -12
  20. package/dist/lib/node/index.cjs.map +3 -3
  21. package/dist/lib/node/{intent-resolver-UEBRMMP6.cjs → intent-resolver-BQ2NKEM7.cjs} +9 -9
  22. package/dist/lib/node/meta.json +1 -1
  23. package/dist/lib/node/{react-surface-AYOFUM7K.cjs → react-surface-EUKPDFU3.cjs} +13 -13
  24. package/dist/lib/node/{react-surface-AYOFUM7K.cjs.map → react-surface-EUKPDFU3.cjs.map} +3 -3
  25. package/dist/lib/node-esm/{ScriptContainer-G35TAL5S.mjs → ScriptContainer-4IOOIPBF.mjs} +6 -8
  26. package/dist/lib/node-esm/ScriptContainer-4IOOIPBF.mjs.map +7 -0
  27. package/dist/lib/node-esm/{chunk-AOI67UC7.mjs → chunk-B4TP3LSZ.mjs} +6 -6
  28. package/dist/lib/node-esm/{chunk-AOI67UC7.mjs.map → chunk-B4TP3LSZ.mjs.map} +1 -1
  29. package/dist/lib/node-esm/{chunk-T43WW6DG.mjs → chunk-W2DAXWHA.mjs} +2 -2
  30. package/dist/lib/node-esm/{chunk-T43WW6DG.mjs.map → chunk-W2DAXWHA.mjs.map} +1 -1
  31. package/dist/lib/node-esm/index.mjs +9 -5
  32. package/dist/lib/node-esm/index.mjs.map +3 -3
  33. package/dist/lib/node-esm/{intent-resolver-QEVLFH3G.mjs → intent-resolver-HTM5PSRZ.mjs} +3 -3
  34. package/dist/lib/node-esm/meta.json +1 -1
  35. package/dist/lib/node-esm/{react-surface-XNNTCP2O.mjs → react-surface-6UO64YOS.mjs} +4 -4
  36. package/dist/lib/node-esm/{react-surface-XNNTCP2O.mjs.map → react-surface-6UO64YOS.mjs.map} +3 -3
  37. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  38. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  39. package/dist/types/src/hooks/deploy.d.ts +11 -13
  40. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  41. package/dist/types/src/translations.d.ts +116 -2
  42. package/dist/types/src/translations.d.ts.map +1 -1
  43. package/dist/types/src/types.d.ts +3 -4
  44. package/dist/types/src/types.d.ts.map +1 -1
  45. package/package.json +49 -49
  46. package/src/capabilities/react-surface.tsx +1 -1
  47. package/src/components/ScriptToolbar/ScriptToolbar.tsx +5 -8
  48. package/src/components/Settings/ScriptObjectSettings.tsx +2 -2
  49. package/src/components/TestPanel/TestPanel.tsx +1 -1
  50. package/src/components/TypescriptEditor/TypescriptEditor.tsx +2 -0
  51. package/src/templates/gmail.ts +1 -1
  52. package/src/translations.ts +5 -1
  53. package/dist/lib/browser/ScriptContainer-BQS7LDI7.mjs.map +0 -7
  54. package/dist/lib/node/ScriptContainer-OYFP6E5B.cjs.map +0 -7
  55. package/dist/lib/node-esm/ScriptContainer-G35TAL5S.mjs.map +0 -7
  56. /package/dist/lib/browser/{intent-resolver-52BWIOT6.mjs.map → intent-resolver-JOJNH4UX.mjs.map} +0 -0
  57. /package/dist/lib/node/{intent-resolver-UEBRMMP6.cjs.map → intent-resolver-BQ2NKEM7.cjs.map} +0 -0
  58. /package/dist/lib/node-esm/{intent-resolver-QEVLFH3G.mjs.map → intent-resolver-HTM5PSRZ.mjs.map} +0 -0
@@ -54,24 +54,22 @@ export declare const useDeployDeps: ({ script }: {
54
54
  script: ScriptType;
55
55
  }) => {
56
56
  space: Space | undefined;
57
- fn: import("@dxos/live-object").Live<import("@dxos/echo-schema").TypedObjectFields<{
58
- name: typeof import("effect/Schema").NonEmptyString;
59
- version: typeof import("effect/Schema").String;
60
- description: import("effect/Schema").optional<typeof import("effect/Schema").String>;
61
- source: import("effect/Schema").optional<import("@dxos/echo-schema").Ref$<{
62
- readonly id: string;
57
+ fn: import("@dxos/live-object").Live<import("@dxos/echo/Type").OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
58
+ version: string;
59
+ name: string;
60
+ description?: string | undefined;
61
+ source?: Ref<import("@dxos/echo/Type").OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
63
62
  name?: string | undefined;
64
63
  description?: string | undefined;
65
64
  changed?: boolean | undefined;
66
- source: Ref<{
67
- readonly id: string;
65
+ source: Ref<import("@dxos/echo/Type").OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
68
66
  content: string;
69
67
  }>;
70
- }>>;
71
- inputSchema: import("effect/Schema").optional<import("effect/Schema").Schema<import("@dxos/echo-schema").JsonSchemaType, import("@dxos/echo-schema").JsonSchemaType, never>>;
72
- outputSchema: import("effect/Schema").optional<import("effect/Schema").Schema<import("@dxos/echo-schema").JsonSchemaType, import("@dxos/echo-schema").JsonSchemaType, never>>;
73
- binding: import("effect/Schema").optional<typeof import("effect/Schema").String>;
74
- }, import("@dxos/echo-schema").TypedObjectOptions>>;
68
+ }> | undefined;
69
+ inputSchema?: import("@dxos/echo-schema").JsonSchemaType | undefined;
70
+ outputSchema?: import("@dxos/echo-schema").JsonSchemaType | undefined;
71
+ binding?: string | undefined;
72
+ }>;
75
73
  client: Client;
76
74
  existingFunctionUrl: string | undefined;
77
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../../src/hooks/deploy.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAgC,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAA4B,GAAG,EAAE,KAAK,KAAK,EAAY,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAOhD,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,SAAS,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,8DAA8D,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;CA6D7G,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,mBAAmB;IAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,SAiBpG,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,YAAY;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE;;;;;;;;gBA1FtD,CAAC;uBAED,CAAC;mBAET,CAAF;;;;;;;;;;;;CA4FC,CAAC"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../../src/hooks/deploy.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAgC,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAA4B,GAAG,EAAE,KAAK,KAAK,EAAY,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAOhD,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,SAAS,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,8DAA8D,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;CA6D7G,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,mBAAmB;IAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,SAiBpG,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,YAAY;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;CAM/D,CAAC"}
@@ -1,9 +1,123 @@
1
- import { ScriptType } from '@dxos/functions';
2
1
  declare const _default: {
3
2
  'en-US': {
4
- [ScriptType.typename]: {
3
+ [x: string]: {
5
4
  'typename label': string;
5
+ 'typename label_zero': string;
6
+ 'typename label_one': string;
7
+ 'typename label_other': string;
6
8
  'object name placeholder': string;
9
+ 'plugin name'?: undefined;
10
+ 'description label'?: undefined;
11
+ 'description placeholder'?: undefined;
12
+ 'binding placeholder'?: undefined;
13
+ 'function request placeholder'?: undefined;
14
+ 'deploy label'?: undefined;
15
+ 'deployed label'?: undefined;
16
+ 'upload failed label'?: undefined;
17
+ 'copy link label'?: undefined;
18
+ 'format label'?: undefined;
19
+ 'toggle details label'?: undefined;
20
+ 'authenticate action label'?: undefined;
21
+ 'authenticate button label'?: undefined;
22
+ 'name label'?: undefined;
23
+ 'remote function settings heading'?: undefined;
24
+ 'function url label'?: undefined;
25
+ 'function binding label'?: undefined;
26
+ 'function binding placeholder'?: undefined;
27
+ 'script publish settings label'?: undefined;
28
+ 'script publish settings description'?: undefined;
29
+ 'no github token label'?: undefined;
30
+ 'open token manager label'?: undefined;
31
+ 'publish label'?: undefined;
32
+ 'publishing label'?: undefined;
33
+ 'editor input mode label'?: undefined;
34
+ 'select editor input mode placeholder'?: undefined;
35
+ 'settings editor input mode default label'?: undefined;
36
+ 'settings editor input mode vim label'?: undefined;
37
+ 'settings editor input mode vscode label'?: undefined;
38
+ 'template select group label'?: undefined;
39
+ 'function panel label'?: undefined;
40
+ 'script test label'?: undefined;
41
+ 'script logs label'?: undefined;
42
+ 'deployment dialog title'?: undefined;
43
+ 'deployment dialog scripts found message_one'?: undefined;
44
+ 'deployment dialog scripts found message_other'?: undefined;
45
+ 'deployment dialog deploy functions button label_one'?: undefined;
46
+ 'deployment dialog deploy functions button label_other'?: undefined;
47
+ 'deployment dialog deploy functions pending button label_one'?: undefined;
48
+ 'deployment dialog deploy functions pending button label_other'?: undefined;
49
+ 'deployment dialog skip button label'?: undefined;
50
+ 'script deployment toast label_one'?: undefined;
51
+ 'script deployment toast label_other'?: undefined;
52
+ 'script deployment toast description_one'?: undefined;
53
+ 'script deployment toast description_other'?: undefined;
54
+ 'script deployment toast close label_one'?: undefined;
55
+ 'script deployment toast close label_other'?: undefined;
56
+ 'script deployment error toast label_one'?: undefined;
57
+ 'script deployment error toast label_other'?: undefined;
58
+ 'script deployment error toast description_one'?: undefined;
59
+ 'script deployment error toast description_other'?: undefined;
60
+ 'script deployment error toast close label_one'?: undefined;
61
+ 'script deployment error toast close label_other'?: undefined;
62
+ } | {
63
+ 'plugin name': string;
64
+ 'description label': string;
65
+ 'description placeholder': string;
66
+ 'binding placeholder': string;
67
+ 'function request placeholder': string;
68
+ 'deploy label': string;
69
+ 'deployed label': string;
70
+ 'upload failed label': string;
71
+ 'copy link label': string;
72
+ 'format label': string;
73
+ 'toggle details label': string;
74
+ 'authenticate action label': string;
75
+ 'authenticate button label': string;
76
+ 'name label': string;
77
+ 'remote function settings heading': string;
78
+ 'function url label': string;
79
+ 'function binding label': string;
80
+ 'function binding placeholder': string;
81
+ 'script publish settings label': string;
82
+ 'script publish settings description': string;
83
+ 'no github token label': string;
84
+ 'open token manager label': string;
85
+ 'publish label': string;
86
+ 'publishing label': string;
87
+ 'editor input mode label': string;
88
+ 'select editor input mode placeholder': string;
89
+ 'settings editor input mode default label': string;
90
+ 'settings editor input mode vim label': string;
91
+ 'settings editor input mode vscode label': string;
92
+ 'template select group label': string;
93
+ 'function panel label': string;
94
+ 'script test label': string;
95
+ 'script logs label': string;
96
+ 'deployment dialog title': string;
97
+ 'deployment dialog scripts found message_one': string;
98
+ 'deployment dialog scripts found message_other': string;
99
+ 'deployment dialog deploy functions button label_one': string;
100
+ 'deployment dialog deploy functions button label_other': string;
101
+ 'deployment dialog deploy functions pending button label_one': string;
102
+ 'deployment dialog deploy functions pending button label_other': string;
103
+ 'deployment dialog skip button label': string;
104
+ 'script deployment toast label_one': string;
105
+ 'script deployment toast label_other': string;
106
+ 'script deployment toast description_one': string;
107
+ 'script deployment toast description_other': string;
108
+ 'script deployment toast close label_one': string;
109
+ 'script deployment toast close label_other': string;
110
+ 'script deployment error toast label_one': string;
111
+ 'script deployment error toast label_other': string;
112
+ 'script deployment error toast description_one': string;
113
+ 'script deployment error toast description_other': string;
114
+ 'script deployment error toast close label_one': string;
115
+ 'script deployment error toast close label_other': string;
116
+ 'typename label'?: undefined;
117
+ 'typename label_zero'?: undefined;
118
+ 'typename label_one'?: undefined;
119
+ 'typename label_other'?: undefined;
120
+ 'object name placeholder'?: undefined;
7
121
  };
8
122
  "dxos.org/plugin/script": {
9
123
  'plugin name': string;
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;;;QAOvC,CAAC,UAAU,CAAC,QAAQ,CAAC;;;UAGpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AANP,wBAkEE"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,wBAqEE"}
@@ -19,15 +19,14 @@ export declare namespace ScriptAction {
19
19
  space: Schema.Schema<import("@dxos/client-protocol").Space, import("@dxos/client-protocol").Space, never>;
20
20
  }>>;
21
21
  output: Schema.Struct<{
22
- object: import("@dxos/echo-schema").EchoTypeSchema<Schema.Struct<{
22
+ object: import("@dxos/echo/Type").obj<Schema.Struct<{
23
23
  name: Schema.optional<typeof Schema.String>;
24
24
  description: Schema.optional<typeof Schema.String>;
25
25
  changed: Schema.optional<typeof Schema.Boolean>;
26
- source: import("@dxos/echo-schema").Ref$<{
27
- readonly id: string;
26
+ source: import("@dxos/echo-schema").Ref$<import("@dxos/echo/Type").OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
28
27
  content: string;
29
28
  }>;
30
- }>, {}>;
29
+ }>>;
31
30
  }>;
32
31
  }>;
33
32
  export class Create extends Create_base {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,yBAAiB,YAAY,CAAC;IAG5B,MAAM,CAAC,MAAM,kBAAkB;;;;MAK7B,CAAC;IAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;IAE9E,MAAM,OAAO,MAAO,SAAQ,WAK1B;KAAG;;CACN;AAED,eAAO,MAAM,oBAAoB;;GAIhC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,yBAAiB,YAAY,CAAC;IAG5B,MAAM,CAAC,MAAM,kBAAkB;;;;MAK7B,CAAC;IAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;IAE9E,MAAM,OAAO,MAAO,SAAQ,WAK1B;KAAG;;CACN;AAED,eAAO,MAAM,oBAAoB;;GAIhC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-script",
3
- "version": "0.8.3-main.7f5a14c",
3
+ "version": "0.8.3-staging.0fa589b",
4
4
  "description": "Braneframe notebook plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -54,48 +54,48 @@
54
54
  "prettier": "^3.2.4",
55
55
  "react-syntax-highlighter": "^15.5.0",
56
56
  "typescript": "^5.8.3",
57
- "@dxos/ai": "0.8.3-main.7f5a14c",
58
- "@dxos/app-framework": "0.8.3-main.7f5a14c",
59
- "@dxos/assistant": "0.8.3-main.7f5a14c",
60
- "@dxos/async": "0.8.3-main.7f5a14c",
61
- "@dxos/artifact": "0.8.3-main.7f5a14c",
62
- "@dxos/client": "0.8.3-main.7f5a14c",
63
- "@dxos/compute": "0.8.3-main.7f5a14c",
64
- "@dxos/debug": "0.8.3-main.7f5a14c",
65
- "@dxos/echo": "0.8.3-main.7f5a14c",
66
- "@dxos/client-protocol": "0.8.3-main.7f5a14c",
67
- "@dxos/devtools": "0.8.3-main.7f5a14c",
68
- "@dxos/echo-protocol": "0.8.3-main.7f5a14c",
69
- "@dxos/echo-schema": "0.8.3-main.7f5a14c",
70
- "@dxos/functions": "0.8.3-main.7f5a14c",
71
- "@dxos/invariant": "0.8.3-main.7f5a14c",
72
- "@dxos/live-object": "0.8.3-main.7f5a14c",
73
- "@dxos/keys": "0.8.3-main.7f5a14c",
74
- "@dxos/local-storage": "0.8.3-main.7f5a14c",
75
- "@dxos/log": "0.8.3-main.7f5a14c",
76
- "@dxos/plugin-client": "0.8.3-main.7f5a14c",
77
- "@dxos/plugin-deck": "0.8.3-main.7f5a14c",
78
- "@dxos/plugin-explorer": "0.8.3-main.7f5a14c",
79
- "@dxos/plugin-graph": "0.8.3-main.7f5a14c",
80
- "@dxos/plugin-markdown": "0.8.3-main.7f5a14c",
81
- "@dxos/plugin-stack": "0.8.3-main.7f5a14c",
82
- "@dxos/plugin-theme": "0.8.3-main.7f5a14c",
83
- "@dxos/plugin-space": "0.8.3-main.7f5a14c",
84
- "@dxos/plugin-token-manager": "0.8.3-main.7f5a14c",
85
- "@dxos/react-client": "0.8.3-main.7f5a14c",
86
- "@dxos/react-edge-client": "0.8.3-main.7f5a14c",
87
- "@dxos/protocols": "0.8.3-main.7f5a14c",
88
- "@dxos/react-ui-attention": "0.8.3-main.7f5a14c",
89
- "@dxos/react-ui-editor": "0.8.3-main.7f5a14c",
90
- "@dxos/react-ui-form": "0.8.3-main.7f5a14c",
91
- "@dxos/react-ui-menu": "0.8.3-main.7f5a14c",
92
- "@dxos/react-ui-list": "0.8.3-main.7f5a14c",
93
- "@dxos/react-ui-stack": "0.8.3-main.7f5a14c",
94
- "@dxos/react-ui-syntax-highlighter": "0.8.3-main.7f5a14c",
95
- "@dxos/rpc": "0.8.3-main.7f5a14c",
96
- "@dxos/rpc-tunnel": "0.8.3-main.7f5a14c",
97
- "@dxos/util": "0.8.3-main.7f5a14c",
98
- "@dxos/schema": "0.8.3-main.7f5a14c"
57
+ "@dxos/ai": "0.8.3-staging.0fa589b",
58
+ "@dxos/app-framework": "0.8.3-staging.0fa589b",
59
+ "@dxos/assistant": "0.8.3-staging.0fa589b",
60
+ "@dxos/artifact": "0.8.3-staging.0fa589b",
61
+ "@dxos/async": "0.8.3-staging.0fa589b",
62
+ "@dxos/client": "0.8.3-staging.0fa589b",
63
+ "@dxos/client-protocol": "0.8.3-staging.0fa589b",
64
+ "@dxos/debug": "0.8.3-staging.0fa589b",
65
+ "@dxos/compute": "0.8.3-staging.0fa589b",
66
+ "@dxos/devtools": "0.8.3-staging.0fa589b",
67
+ "@dxos/echo": "0.8.3-staging.0fa589b",
68
+ "@dxos/echo-schema": "0.8.3-staging.0fa589b",
69
+ "@dxos/functions": "0.8.3-staging.0fa589b",
70
+ "@dxos/echo-protocol": "0.8.3-staging.0fa589b",
71
+ "@dxos/invariant": "0.8.3-staging.0fa589b",
72
+ "@dxos/keys": "0.8.3-staging.0fa589b",
73
+ "@dxos/live-object": "0.8.3-staging.0fa589b",
74
+ "@dxos/local-storage": "0.8.3-staging.0fa589b",
75
+ "@dxos/log": "0.8.3-staging.0fa589b",
76
+ "@dxos/plugin-client": "0.8.3-staging.0fa589b",
77
+ "@dxos/plugin-deck": "0.8.3-staging.0fa589b",
78
+ "@dxos/plugin-explorer": "0.8.3-staging.0fa589b",
79
+ "@dxos/plugin-graph": "0.8.3-staging.0fa589b",
80
+ "@dxos/plugin-markdown": "0.8.3-staging.0fa589b",
81
+ "@dxos/plugin-space": "0.8.3-staging.0fa589b",
82
+ "@dxos/plugin-stack": "0.8.3-staging.0fa589b",
83
+ "@dxos/plugin-theme": "0.8.3-staging.0fa589b",
84
+ "@dxos/plugin-token-manager": "0.8.3-staging.0fa589b",
85
+ "@dxos/protocols": "0.8.3-staging.0fa589b",
86
+ "@dxos/react-client": "0.8.3-staging.0fa589b",
87
+ "@dxos/react-ui-attention": "0.8.3-staging.0fa589b",
88
+ "@dxos/react-edge-client": "0.8.3-staging.0fa589b",
89
+ "@dxos/react-ui-list": "0.8.3-staging.0fa589b",
90
+ "@dxos/react-ui-form": "0.8.3-staging.0fa589b",
91
+ "@dxos/react-ui-editor": "0.8.3-staging.0fa589b",
92
+ "@dxos/react-ui-menu": "0.8.3-staging.0fa589b",
93
+ "@dxos/react-ui-syntax-highlighter": "0.8.3-staging.0fa589b",
94
+ "@dxos/react-ui-stack": "0.8.3-staging.0fa589b",
95
+ "@dxos/rpc": "0.8.3-staging.0fa589b",
96
+ "@dxos/rpc-tunnel": "0.8.3-staging.0fa589b",
97
+ "@dxos/schema": "0.8.3-staging.0fa589b",
98
+ "@dxos/util": "0.8.3-staging.0fa589b"
99
99
  },
100
100
  "devDependencies": {
101
101
  "@effect-rx/rx-react": "^0.34.1",
@@ -107,10 +107,10 @@
107
107
  "react": "~18.2.0",
108
108
  "react-dom": "~18.2.0",
109
109
  "vite": "5.4.7",
110
- "@dxos/react-ui": "0.8.3-main.7f5a14c",
111
- "@dxos/react-ui-theme": "0.8.3-main.7f5a14c",
112
- "@dxos/storybook-utils": "0.8.3-main.7f5a14c",
113
- "@dxos/random": "0.8.3-main.7f5a14c"
110
+ "@dxos/random": "0.8.3-staging.0fa589b",
111
+ "@dxos/react-ui": "0.8.3-staging.0fa589b",
112
+ "@dxos/react-ui-theme": "0.8.3-staging.0fa589b",
113
+ "@dxos/storybook-utils": "0.8.3-staging.0fa589b"
114
114
  },
115
115
  "peerDependencies": {
116
116
  "@effect-rx/rx-react": "^0.34.1",
@@ -119,8 +119,8 @@
119
119
  "effect": "^3.13.3",
120
120
  "react": "~18.2.0",
121
121
  "react-dom": "~18.2.0",
122
- "@dxos/react-ui": "0.8.3-main.7f5a14c",
123
- "@dxos/react-ui-theme": "0.8.3-main.7f5a14c"
122
+ "@dxos/react-ui": "0.8.3-staging.0fa589b",
123
+ "@dxos/react-ui-theme": "0.8.3-staging.0fa589b"
124
124
  },
125
125
  "publishConfig": {
126
126
  "access": "public"
@@ -74,7 +74,7 @@ export default () =>
74
74
  const space = getSpace(data.companionTo);
75
75
  return (
76
76
  <StackItem.Content role={role}>
77
- <InvocationTraceContainer space={space} script={data.companionTo} detailAxis='block' />
77
+ <InvocationTraceContainer space={space} target={data.companionTo} detailAxis='block' />
78
78
  </StackItem.Content>
79
79
  );
80
80
  },
@@ -8,7 +8,6 @@ import React, { useMemo } from 'react';
8
8
  import { type ScriptType } from '@dxos/functions';
9
9
  import { fullyQualifiedId } from '@dxos/react-client/echo';
10
10
  import { ElevationProvider, useTranslation, type ThemedClassName } from '@dxos/react-ui';
11
- import { stackItemContentToolbarClassNames } from '@dxos/react-ui-editor';
12
11
  import { createGapSeparator, MenuProvider, rxFromSignal, ToolbarMenu, useMenuActions } from '@dxos/react-ui-menu';
13
12
 
14
13
  import {
@@ -50,12 +49,10 @@ export const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbar
50
49
  const menu = useMenuActions(toolbarCreator);
51
50
 
52
51
  return (
53
- <div role='none' className={stackItemContentToolbarClassNames(role)}>
54
- <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>
55
- <MenuProvider {...menu} attendableId={fullyQualifiedId(script)}>
56
- <ToolbarMenu classNames={classNames} />
57
- </MenuProvider>
58
- </ElevationProvider>
59
- </div>
52
+ <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>
53
+ <MenuProvider {...menu} attendableId={fullyQualifiedId(script)}>
54
+ <ToolbarMenu classNames={classNames} />
55
+ </MenuProvider>
56
+ </ElevationProvider>
60
57
  );
61
58
  };
@@ -75,7 +75,7 @@ const Binding = ({ object }: ScriptObjectSettingsProps) => {
75
75
 
76
76
  // TODO(burdon): Use form.
77
77
  return (
78
- <div role='form' className='flex flex-col p-2 gap-2'>
78
+ <div role='form' className='flex flex-col gap-2 mlb-cardSpacingBlock'>
79
79
  <h2>{t('remote function settings heading')}</h2>
80
80
  <Input.Root>
81
81
  <div role='none' className='flex flex-col gap-1'>
@@ -178,7 +178,7 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
178
178
  }, [object, githubToken]);
179
179
 
180
180
  return (
181
- <div className='flex flex-col p-2 gap-4'>
181
+ <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>
182
182
  <div>
183
183
  <h2>{t('script publish settings label')}</h2>
184
184
  <p className='text-description text-sm'>{t('script publish settings description')}</p>
@@ -225,7 +225,7 @@ const MessageThread = forwardRef<HTMLDivElement, MessageThreadProps>(
225
225
 
226
226
  const MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message }>) => {
227
227
  const { type, text, data, error } = message;
228
- const wrapper = 'p-1 px-2 rounded-lg bg-hoverSurface overflow-auto';
228
+ const wrapper = 'p-1 px-2 rounded-md bg-hoverSurface overflow-auto';
229
229
  return (
230
230
  <div className={mx('flex', type === 'request' ? 'ml-[1rem] justify-end' : 'mr-[1rem]', classNames)}>
231
231
  {error && <div className={mx(wrapper, 'whitespace-pre', errorText)}>{String(error)}</div>}
@@ -4,6 +4,7 @@
4
4
 
5
5
  import { javascript } from '@codemirror/lang-javascript';
6
6
  import { defaultHighlightStyle } from '@codemirror/language';
7
+ import { lintKeymap } from '@codemirror/lint';
7
8
  import { Prec } from '@codemirror/state';
8
9
  import { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';
9
10
  import { keymap } from '@codemirror/view';
@@ -74,6 +75,7 @@ export const TypescriptEditor = ({
74
75
  javascript({ typescript: true }),
75
76
  // https://github.com/val-town/codemirror-ts
76
77
  autocomplete({ override: env ? [tsAutocomplete()] : undefined }),
78
+ keymap.of(lintKeymap),
77
79
  env && [
78
80
  tsFacet.of({ env, path: `/src/${id}.ts` }),
79
81
  tsSync(),
@@ -247,7 +247,7 @@ const MessageType = S.Struct({
247
247
  }).pipe(
248
248
  EchoObject({
249
249
  typename: 'dxos.org/type/Message',
250
- version: '0.1.0',
250
+ version: '0.2.0',
251
251
  }),
252
252
  );
253
253
  type MessageType = S.Schema.Type<typeof MessageType>;
@@ -2,6 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { Type } from '@dxos/echo';
5
6
  import { ScriptType } from '@dxos/functions';
6
7
 
7
8
  import { SCRIPT_PLUGIN } from './meta';
@@ -9,8 +10,11 @@ import { SCRIPT_PLUGIN } from './meta';
9
10
  export default [
10
11
  {
11
12
  'en-US': {
12
- [ScriptType.typename]: {
13
+ [Type.getTypename(ScriptType)]: {
13
14
  'typename label': 'Script',
15
+ 'typename label_zero': 'Scripts',
16
+ 'typename label_one': 'Script',
17
+ 'typename label_other': 'Scripts',
14
18
  'object name placeholder': 'New script',
15
19
  },
16
20
  [SCRIPT_PLUGIN]: {
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../src/components/TypescriptEditor/TypescriptEditor.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { createDocAccessor, getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem, type StackItemContentProps } from '@dxos/react-ui-stack';\n\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettingsProps } from '../types';\n\nexport type ScriptEditorProps = Pick<StackItemContentProps, 'role'> & {\n script: ScriptType;\n settings?: ScriptSettingsProps;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({ role, script, settings = { editorInputMode: 'vscode' }, env }: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ state, script });\n\n const extensions = useMemo(\n () =>\n script.source.target\n ? [\n listener({\n onChange: (text) => {\n if (script.source.target?.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ]\n : [],\n [identity, space, script, script.source.target],\n );\n\n return (\n <StackItem.Content toolbar>\n <ScriptToolbar state={state} role={role} script={script} />\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n classNames={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, useTranslation, type ThemedClassName } from '@dxos/react-ui';\nimport { stackItemContentToolbarClassNames } from '@dxos/react-ui-editor';\nimport { createGapSeparator, MenuProvider, rxFromSignal, ToolbarMenu, useMenuActions } from '@dxos/react-ui-menu';\n\nimport {\n type CreateDeployOptions,\n type ScriptToolbarState,\n createDeploy,\n createFormat,\n createTemplateSelect,\n useDeployDeps,\n} from '../../hooks';\nimport { SCRIPT_PLUGIN } from '../../meta';\n\nconst createToolbar = ({ state, script, ...options }: CreateDeployOptions) =>\n Rx.make((get) =>\n get(\n rxFromSignal(() => {\n const templateSelect = createTemplateSelect(script);\n const format = createFormat(script);\n const gap = createGapSeparator();\n const deploy = createDeploy({ state, script, ...options });\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges],\n };\n }),\n ),\n );\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const options = useDeployDeps({ script });\n const toolbarCreator = useMemo(() => createToolbar({ state, script, t, ...options }), [state, script, options, t]);\n const menu = useMenuActions(toolbarCreator);\n\n return (\n <div role='none' className={stackItemContentToolbarClassNames(role)}>\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...menu} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defaultHighlightStyle } from '@codemirror/language';\nimport { Prec } from '@codemirror/state';\nimport { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { tsSync, tsFacet, tsLinter, tsAutocomplete, tsHover, type HoverInfo } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemedClassName, type ThemeMode, useThemeContext } from '@dxos/react-ui';\nimport {\n type EditorInputMode,\n InputModeExtensions,\n type UseTextEditorProps,\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n folding,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = ThemedClassName<\n {\n id: string;\n inputMode?: EditorInputMode;\n toolbar?: boolean;\n env?: VirtualTypeScriptEnvironment;\n } & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>\n>;\n\nexport const TypescriptEditor = ({\n classNames,\n id,\n inputMode = 'vscode',\n toolbar,\n env,\n initialValue,\n extensions,\n scrollTo,\n selection,\n}: TypescriptEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n selection,\n scrollTo,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n monospace: true,\n scrollPastEnd: true,\n }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n InputModeExtensions[inputMode],\n folding(),\n // Continues block comments when pressing Enter.\n Prec.high(keymap.of(continueKeymap)),\n\n // TODO(burdon): Factor out.\n javascript({ typescript: true }),\n // https://github.com/val-town/codemirror-ts\n autocomplete({ override: env ? [tsAutocomplete()] : undefined }),\n env && [\n tsFacet.of({ env, path: `/src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ],\n ].filter(isNonNullable),\n }),\n [id, extensions, themeMode, inputMode, selection, scrollTo],\n );\n\n return (\n <div\n ref={parentRef}\n data-toolbar={toolbar ? 'enabled' : 'disabled'}\n className={mx(classNames)}\n {...focusAttributes}\n />\n );\n};\n\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = themeMode === 'dark' ? oneDarkHighlightStyle : defaultHighlightStyle;\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const div = document.createElement('div');\n div.className = 'p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg';\n\n if (info.quickInfo?.displayParts) {\n for (const part of info.quickInfo.displayParts) {\n const span = div.appendChild(document.createElement('span'));\n span.className = classFromKind(part.kind);\n span.innerText = part.text;\n }\n }\n\n return { dom: div };\n };\n};\n\nexport default TypescriptEditor;\n"],
5
- "mappings": "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",
6
- "names": ["React", "useMemo", "createDocAccessor", "getSpace", "useIdentity", "createDataExtensions", "listener", "stackItemContentEditorClassNames", "StackItem", "Rx", "React", "useMemo", "fullyQualifiedId", "ElevationProvider", "useTranslation", "stackItemContentToolbarClassNames", "createGapSeparator", "MenuProvider", "rxFromSignal", "ToolbarMenu", "useMenuActions", "createToolbar", "state", "script", "options", "Rx", "make", "get", "rxFromSignal", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "nodes", "edges", "ScriptToolbar", "role", "classNames", "t", "useTranslation", "SCRIPT_PLUGIN", "useDeployDeps", "toolbarCreator", "useMemo", "menu", "useMenuActions", "div", "className", "stackItemContentToolbarClassNames", "ElevationProvider", "elevation", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu", "javascript", "defaultHighlightStyle", "Prec", "oneDarkHighlightStyle", "keymap", "tags", "continueKeymap", "tsSync", "tsFacet", "tsLinter", "tsAutocomplete", "tsHover", "React", "useThemeContext", "InputModeExtensions", "autocomplete", "createBasicExtensions", "createThemeExtensions", "folding", "useTextEditor", "mx", "isNonNullable", "TypescriptEditor", "classNames", "id", "inputMode", "toolbar", "env", "initialValue", "extensions", "scrollTo", "selection", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "monospace", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "InputModeExtensions", "folding", "Prec", "high", "keymap", "of", "continueKeymap", "javascript", "typescript", "autocomplete", "override", "tsAutocomplete", "undefined", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "isNonNullable", "React", "div", "ref", "data-toolbar", "className", "mx", "theme", "oneDarkHighlightStyle", "defaultHighlightStyle", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "info", "document", "createElement", "quickInfo", "displayParts", "part", "span", "appendChild", "innerText", "text", "dom", "ScriptContainer", "role", "script", "settings", "editorInputMode", "env", "identity", "useIdentity", "space", "getSpace", "state", "useToolbarState", "useDeployState", "extensions", "useMemo", "source", "target", "listener", "onChange", "text", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "React", "StackItem", "Content", "toolbar", "ScriptToolbar", "TypescriptEditor", "initialValue", "classNames", "stackItemContentEditorClassNames", "inputMode"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../src/components/TypescriptEditor/TypescriptEditor.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { createDocAccessor, getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem, type StackItemContentProps } from '@dxos/react-ui-stack';\n\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettingsProps } from '../types';\n\nexport type ScriptEditorProps = Pick<StackItemContentProps, 'role'> & {\n script: ScriptType;\n settings?: ScriptSettingsProps;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({ role, script, settings = { editorInputMode: 'vscode' }, env }: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ state, script });\n\n const extensions = useMemo(\n () =>\n script.source.target\n ? [\n listener({\n onChange: (text) => {\n if (script.source.target?.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ]\n : [],\n [identity, space, script, script.source.target],\n );\n\n return (\n <StackItem.Content toolbar>\n <ScriptToolbar state={state} role={role} script={script} />\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n classNames={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, useTranslation, type ThemedClassName } from '@dxos/react-ui';\nimport { stackItemContentToolbarClassNames } from '@dxos/react-ui-editor';\nimport { createGapSeparator, MenuProvider, rxFromSignal, ToolbarMenu, useMenuActions } from '@dxos/react-ui-menu';\n\nimport {\n type CreateDeployOptions,\n type ScriptToolbarState,\n createDeploy,\n createFormat,\n createTemplateSelect,\n useDeployDeps,\n} from '../../hooks';\nimport { SCRIPT_PLUGIN } from '../../meta';\n\nconst createToolbar = ({ state, script, ...options }: CreateDeployOptions) =>\n Rx.make((get) =>\n get(\n rxFromSignal(() => {\n const templateSelect = createTemplateSelect(script);\n const format = createFormat(script);\n const gap = createGapSeparator();\n const deploy = createDeploy({ state, script, ...options });\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges],\n };\n }),\n ),\n );\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const options = useDeployDeps({ script });\n const toolbarCreator = useMemo(() => createToolbar({ state, script, t, ...options }), [state, script, options, t]);\n const menu = useMenuActions(toolbarCreator);\n\n return (\n <div role='none' className={stackItemContentToolbarClassNames(role)}>\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...menu} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defaultHighlightStyle } from '@codemirror/language';\nimport { Prec } from '@codemirror/state';\nimport { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { tsSync, tsFacet, tsLinter, tsAutocomplete, tsHover, type HoverInfo } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemedClassName, type ThemeMode, useThemeContext } from '@dxos/react-ui';\nimport {\n type EditorInputMode,\n InputModeExtensions,\n type UseTextEditorProps,\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n folding,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = ThemedClassName<\n {\n id: string;\n inputMode?: EditorInputMode;\n toolbar?: boolean;\n env?: VirtualTypeScriptEnvironment;\n } & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>\n>;\n\nexport const TypescriptEditor = ({\n classNames,\n id,\n inputMode = 'vscode',\n toolbar,\n env,\n initialValue,\n extensions,\n scrollTo,\n selection,\n}: TypescriptEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n selection,\n scrollTo,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n monospace: true,\n scrollPastEnd: true,\n }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n InputModeExtensions[inputMode],\n folding(),\n // Continues block comments when pressing Enter.\n Prec.high(keymap.of(continueKeymap)),\n\n // TODO(burdon): Factor out.\n javascript({ typescript: true }),\n // https://github.com/val-town/codemirror-ts\n autocomplete({ override: env ? [tsAutocomplete()] : undefined }),\n env && [\n tsFacet.of({ env, path: `/src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ],\n ].filter(isNonNullable),\n }),\n [id, extensions, themeMode, inputMode, selection, scrollTo],\n );\n\n return (\n <div\n ref={parentRef}\n data-toolbar={toolbar ? 'enabled' : 'disabled'}\n className={mx(classNames)}\n {...focusAttributes}\n />\n );\n};\n\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = themeMode === 'dark' ? oneDarkHighlightStyle : defaultHighlightStyle;\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const div = document.createElement('div');\n div.className = 'p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg';\n\n if (info.quickInfo?.displayParts) {\n for (const part of info.quickInfo.displayParts) {\n const span = div.appendChild(document.createElement('span'));\n span.className = classFromKind(part.kind);\n span.innerText = part.text;\n }\n }\n\n return { dom: div };\n };\n};\n\nexport default TypescriptEditor;\n"],
5
- "mappings": "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",
6
- "names": ["import_react", "import_echo", "import_react_ui_editor", "import_react_ui", "createToolbar", "state", "script", "options", "Rx", "make", "get", "rxFromSignal", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "nodes", "edges", "ScriptToolbar", "role", "classNames", "t", "useTranslation", "SCRIPT_PLUGIN", "useDeployDeps", "toolbarCreator", "useMemo", "menu", "useMenuActions", "React", "div", "className", "stackItemContentToolbarClassNames", "ElevationProvider", "elevation", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu", "TypescriptEditor", "id", "inputMode", "toolbar", "env", "initialValue", "extensions", "scrollTo", "selection", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "monospace", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "InputModeExtensions", "folding", "Prec", "high", "keymap", "of", "continueKeymap", "javascript", "typescript", "autocomplete", "override", "tsAutocomplete", "undefined", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "isNonNullable", "ref", "data-toolbar", "mx", "theme", "oneDarkHighlightStyle", "defaultHighlightStyle", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "info", "document", "createElement", "quickInfo", "displayParts", "part", "span", "appendChild", "innerText", "text", "dom", "ScriptContainer", "settings", "editorInputMode", "identity", "useIdentity", "space", "getSpace", "useToolbarState", "useDeployState", "source", "target", "listener", "onChange", "content", "changed", "createDataExtensions", "createDocAccessor", "StackItem", "Content", "stackItemContentEditorClassNames"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../src/components/TypescriptEditor/TypescriptEditor.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { createDocAccessor, getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem, type StackItemContentProps } from '@dxos/react-ui-stack';\n\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettingsProps } from '../types';\n\nexport type ScriptEditorProps = Pick<StackItemContentProps, 'role'> & {\n script: ScriptType;\n settings?: ScriptSettingsProps;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({ role, script, settings = { editorInputMode: 'vscode' }, env }: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ state, script });\n\n const extensions = useMemo(\n () =>\n script.source.target\n ? [\n listener({\n onChange: (text) => {\n if (script.source.target?.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ]\n : [],\n [identity, space, script, script.source.target],\n );\n\n return (\n <StackItem.Content toolbar>\n <ScriptToolbar state={state} role={role} script={script} />\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n classNames={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, useTranslation, type ThemedClassName } from '@dxos/react-ui';\nimport { stackItemContentToolbarClassNames } from '@dxos/react-ui-editor';\nimport { createGapSeparator, MenuProvider, rxFromSignal, ToolbarMenu, useMenuActions } from '@dxos/react-ui-menu';\n\nimport {\n type CreateDeployOptions,\n type ScriptToolbarState,\n createDeploy,\n createFormat,\n createTemplateSelect,\n useDeployDeps,\n} from '../../hooks';\nimport { SCRIPT_PLUGIN } from '../../meta';\n\nconst createToolbar = ({ state, script, ...options }: CreateDeployOptions) =>\n Rx.make((get) =>\n get(\n rxFromSignal(() => {\n const templateSelect = createTemplateSelect(script);\n const format = createFormat(script);\n const gap = createGapSeparator();\n const deploy = createDeploy({ state, script, ...options });\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges],\n };\n }),\n ),\n );\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const { t } = useTranslation(SCRIPT_PLUGIN);\n const options = useDeployDeps({ script });\n const toolbarCreator = useMemo(() => createToolbar({ state, script, t, ...options }), [state, script, options, t]);\n const menu = useMenuActions(toolbarCreator);\n\n return (\n <div role='none' className={stackItemContentToolbarClassNames(role)}>\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...menu} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defaultHighlightStyle } from '@codemirror/language';\nimport { Prec } from '@codemirror/state';\nimport { oneDarkHighlightStyle } from '@codemirror/theme-one-dark';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { tsSync, tsFacet, tsLinter, tsAutocomplete, tsHover, type HoverInfo } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemedClassName, type ThemeMode, useThemeContext } from '@dxos/react-ui';\nimport {\n type EditorInputMode,\n InputModeExtensions,\n type UseTextEditorProps,\n autocomplete,\n createBasicExtensions,\n createThemeExtensions,\n folding,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = ThemedClassName<\n {\n id: string;\n inputMode?: EditorInputMode;\n toolbar?: boolean;\n env?: VirtualTypeScriptEnvironment;\n } & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>\n>;\n\nexport const TypescriptEditor = ({\n classNames,\n id,\n inputMode = 'vscode',\n toolbar,\n env,\n initialValue,\n extensions,\n scrollTo,\n selection,\n}: TypescriptEditorProps) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n selection,\n scrollTo,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n monospace: true,\n scrollPastEnd: true,\n }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n InputModeExtensions[inputMode],\n folding(),\n // Continues block comments when pressing Enter.\n Prec.high(keymap.of(continueKeymap)),\n\n // TODO(burdon): Factor out.\n javascript({ typescript: true }),\n // https://github.com/val-town/codemirror-ts\n autocomplete({ override: env ? [tsAutocomplete()] : undefined }),\n env && [\n tsFacet.of({ env, path: `/src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ],\n ].filter(isNonNullable),\n }),\n [id, extensions, themeMode, inputMode, selection, scrollTo],\n );\n\n return (\n <div\n ref={parentRef}\n data-toolbar={toolbar ? 'enabled' : 'disabled'}\n className={mx(classNames)}\n {...focusAttributes}\n />\n );\n};\n\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = themeMode === 'dark' ? oneDarkHighlightStyle : defaultHighlightStyle;\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const div = document.createElement('div');\n div.className = 'p-1 rounded border border-separator bg-baseSurface xs:max-w-80 max-w-lg';\n\n if (info.quickInfo?.displayParts) {\n for (const part of info.quickInfo.displayParts) {\n const span = div.appendChild(document.createElement('span'));\n span.className = classFromKind(part.kind);\n span.innerText = part.text;\n }\n }\n\n return { dom: div };\n };\n};\n\nexport default TypescriptEditor;\n"],
5
- "mappings": "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",
6
- "names": ["React", "useMemo", "createDocAccessor", "getSpace", "useIdentity", "createDataExtensions", "listener", "stackItemContentEditorClassNames", "StackItem", "Rx", "React", "useMemo", "fullyQualifiedId", "ElevationProvider", "useTranslation", "stackItemContentToolbarClassNames", "createGapSeparator", "MenuProvider", "rxFromSignal", "ToolbarMenu", "useMenuActions", "createToolbar", "state", "script", "options", "Rx", "make", "get", "rxFromSignal", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "nodes", "edges", "ScriptToolbar", "role", "classNames", "t", "useTranslation", "SCRIPT_PLUGIN", "useDeployDeps", "toolbarCreator", "useMemo", "menu", "useMenuActions", "div", "className", "stackItemContentToolbarClassNames", "ElevationProvider", "elevation", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu", "javascript", "defaultHighlightStyle", "Prec", "oneDarkHighlightStyle", "keymap", "tags", "continueKeymap", "tsSync", "tsFacet", "tsLinter", "tsAutocomplete", "tsHover", "React", "useThemeContext", "InputModeExtensions", "autocomplete", "createBasicExtensions", "createThemeExtensions", "folding", "useTextEditor", "mx", "isNonNullable", "TypescriptEditor", "classNames", "id", "inputMode", "toolbar", "env", "initialValue", "extensions", "scrollTo", "selection", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "monospace", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "InputModeExtensions", "folding", "Prec", "high", "keymap", "of", "continueKeymap", "javascript", "typescript", "autocomplete", "override", "tsAutocomplete", "undefined", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "isNonNullable", "React", "div", "ref", "data-toolbar", "className", "mx", "theme", "oneDarkHighlightStyle", "defaultHighlightStyle", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "info", "document", "createElement", "quickInfo", "displayParts", "part", "span", "appendChild", "innerText", "text", "dom", "ScriptContainer", "role", "script", "settings", "editorInputMode", "env", "identity", "useIdentity", "space", "getSpace", "state", "useToolbarState", "useDeployState", "extensions", "useMemo", "source", "target", "listener", "onChange", "text", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "React", "StackItem", "Content", "toolbar", "ScriptToolbar", "TypescriptEditor", "initialValue", "classNames", "stackItemContentEditorClassNames", "inputMode"]
7
- }