@dxos/plugin-script 0.6.12-main.5cc132e → 0.6.12-main.c974201

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 (184) hide show
  1. package/dist/lib/browser/{ScriptEditor-5Y3EROG3.mjs → ScriptContainer-7DE7USCY.mjs} +257 -106
  2. package/dist/lib/browser/ScriptContainer-7DE7USCY.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-O4LWBX6A.mjs → chunk-CAEANETO.mjs} +2 -2
  4. package/dist/lib/browser/{chunk-O4LWBX6A.mjs.map → chunk-CAEANETO.mjs.map} +2 -2
  5. package/dist/lib/browser/{chunk-DL5XQRQM.mjs → chunk-G6FWCTGT.mjs} +7 -5
  6. package/dist/lib/browser/chunk-G6FWCTGT.mjs.map +7 -0
  7. package/dist/lib/{node-esm/chunk-RHEZ5LUU.mjs → browser/chunk-G6H56WFS.mjs} +51 -2
  8. package/dist/lib/{node-esm/chunk-RHEZ5LUU.mjs.map → browser/chunk-G6H56WFS.mjs.map} +4 -4
  9. package/dist/lib/browser/{chunk-JBACGDOJ.mjs → chunk-MDX7ACIK.mjs} +3 -6
  10. package/dist/lib/browser/chunk-MDX7ACIK.mjs.map +7 -0
  11. package/dist/lib/browser/edge/index.mjs +3 -1
  12. package/dist/lib/browser/index.mjs +80 -61
  13. package/dist/lib/browser/index.mjs.map +4 -4
  14. package/dist/lib/browser/meta.json +1 -1
  15. package/dist/lib/browser/meta.mjs +1 -1
  16. package/dist/lib/browser/types/index.mjs +2 -2
  17. package/dist/lib/node/ScriptContainer-J76LKPAM.cjs +667 -0
  18. package/dist/lib/node/ScriptContainer-J76LKPAM.cjs.map +7 -0
  19. package/dist/lib/node/{chunk-5RBVXKXT.cjs → chunk-2PZKJXNP.cjs} +6 -6
  20. package/dist/lib/node/{chunk-5RBVXKXT.cjs.map → chunk-2PZKJXNP.cjs.map} +2 -2
  21. package/dist/lib/node/{chunk-4GTXIELQ.cjs → chunk-ACLCRWDB.cjs} +44 -6
  22. package/dist/lib/node/chunk-ACLCRWDB.cjs.map +7 -0
  23. package/dist/lib/node/{TypescriptEditor-M3WWFIP2.cjs → chunk-OJ77BZRH.cjs} +19 -8
  24. package/dist/lib/node/chunk-OJ77BZRH.cjs.map +7 -0
  25. package/dist/lib/node/{chunk-PFH3ROEH.cjs → chunk-UZ3ZXEBF.cjs} +11 -8
  26. package/dist/lib/node/chunk-UZ3ZXEBF.cjs.map +7 -0
  27. package/dist/lib/node/edge/index.cjs +10 -8
  28. package/dist/lib/node/edge/index.cjs.map +2 -2
  29. package/dist/lib/node/index.cjs +93 -79
  30. package/dist/lib/node/index.cjs.map +4 -4
  31. package/dist/lib/node/meta.cjs +3 -3
  32. package/dist/lib/node/meta.cjs.map +1 -1
  33. package/dist/lib/node/meta.json +1 -1
  34. package/dist/lib/node/types/index.cjs +5 -5
  35. package/dist/lib/node/types/index.cjs.map +1 -1
  36. package/dist/lib/node-esm/{ScriptEditor-5Y3EROG3.mjs → ScriptContainer-F6ACEA63.mjs} +258 -106
  37. package/dist/lib/node-esm/ScriptContainer-F6ACEA63.mjs.map +7 -0
  38. package/dist/lib/node-esm/{chunk-DL5XQRQM.mjs → chunk-2NX3HWPM.mjs} +9 -5
  39. package/dist/lib/node-esm/chunk-2NX3HWPM.mjs.map +7 -0
  40. package/dist/lib/node-esm/{chunk-O4LWBX6A.mjs → chunk-7BZDZF7Z.mjs} +3 -2
  41. package/dist/lib/node-esm/{chunk-O4LWBX6A.mjs.map → chunk-7BZDZF7Z.mjs.map} +2 -2
  42. package/dist/lib/{browser/chunk-RHEZ5LUU.mjs → node-esm/chunk-LDLNTVAK.mjs} +53 -2
  43. package/dist/lib/node-esm/chunk-LDLNTVAK.mjs.map +7 -0
  44. package/dist/lib/node-esm/{chunk-JBACGDOJ.mjs → chunk-TZ3Z4SII.mjs} +5 -6
  45. package/dist/lib/node-esm/chunk-TZ3Z4SII.mjs.map +7 -0
  46. package/dist/lib/node-esm/edge/index.mjs +4 -1
  47. package/dist/lib/node-esm/index.mjs +81 -61
  48. package/dist/lib/node-esm/index.mjs.map +4 -4
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/meta.mjs +2 -1
  51. package/dist/lib/node-esm/types/index.mjs +3 -2
  52. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  53. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts.map +1 -0
  54. package/dist/types/src/components/DebugPanel/index.d.ts +2 -0
  55. package/dist/types/src/components/DebugPanel/index.d.ts.map +1 -0
  56. package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/FrameContainer.d.ts +1 -1
  57. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -0
  58. package/dist/types/src/components/FrameContainer/frame.d.ts.map +1 -0
  59. package/dist/types/src/components/FrameContainer/index.d.ts.map +1 -0
  60. package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts +1 -3
  61. package/dist/types/src/components/ScriptBlock/ScriptBlock.d.ts.map +1 -1
  62. package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts +1 -1
  63. package/dist/types/src/components/ScriptBlock/ScriptBlock.stories.d.ts.map +1 -1
  64. package/dist/types/src/components/ScriptContainer.d.ts +5 -0
  65. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -0
  66. package/dist/types/src/components/ScriptEditor.d.ts +4 -5
  67. package/dist/types/src/components/ScriptEditor.d.ts.map +1 -1
  68. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts +6 -0
  69. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts.map +1 -0
  70. package/dist/types/src/components/ScriptSettings/index.d.ts +2 -0
  71. package/dist/types/src/components/ScriptSettings/index.d.ts.map +1 -0
  72. package/dist/types/src/components/Toolbar/Toolbar.d.ts +23 -0
  73. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -0
  74. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +17 -0
  75. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -0
  76. package/dist/types/src/components/Toolbar/index.d.ts +2 -0
  77. package/dist/types/src/components/Toolbar/index.d.ts.map +1 -0
  78. package/dist/types/src/components/{TypescriptEditor.d.ts → TypescriptEditor/TypescriptEditor.d.ts} +1 -2
  79. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -0
  80. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +10 -0
  81. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -0
  82. package/dist/types/src/components/TypescriptEditor/index.d.ts +2 -0
  83. package/dist/types/src/components/TypescriptEditor/index.d.ts.map +1 -0
  84. package/dist/types/src/components/index.d.ts +2 -2
  85. package/dist/types/src/components/index.d.ts.map +1 -1
  86. package/dist/types/src/edge/functions.d.ts +1 -0
  87. package/dist/types/src/edge/functions.d.ts.map +1 -1
  88. package/dist/types/src/meta.d.ts +1 -4
  89. package/dist/types/src/meta.d.ts.map +1 -1
  90. package/dist/types/src/templates/chat.d.ts +6 -0
  91. package/dist/types/src/templates/chat.d.ts.map +1 -0
  92. package/dist/types/src/templates/chess.d.ts +6 -0
  93. package/dist/types/src/templates/chess.d.ts.map +1 -0
  94. package/dist/types/src/templates/echo.d.ts +6 -0
  95. package/dist/types/src/templates/echo.d.ts.map +1 -0
  96. package/dist/types/src/templates/email.d.ts +6 -0
  97. package/dist/types/src/templates/email.d.ts.map +1 -0
  98. package/dist/types/src/templates/forex.d.ts +6 -0
  99. package/dist/types/src/templates/forex.d.ts.map +1 -0
  100. package/dist/types/src/templates.d.ts +8 -0
  101. package/dist/types/src/templates.d.ts.map +1 -0
  102. package/dist/types/src/translations.d.ts +2 -0
  103. package/dist/types/src/translations.d.ts.map +1 -1
  104. package/dist/types/src/types/script.d.ts +4 -4
  105. package/dist/types/src/types/types.d.ts +4 -3
  106. package/dist/types/src/types/types.d.ts.map +1 -1
  107. package/package.json +38 -37
  108. package/src/ScriptPlugin.tsx +21 -36
  109. package/src/components/{DebugPanel.tsx → DebugPanel/DebugPanel.tsx} +48 -41
  110. package/src/components/DebugPanel/index.ts +5 -0
  111. package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/FrameContainer.tsx +1 -1
  112. package/src/components/ScriptBlock/ScriptBlock.stories.tsx +4 -3
  113. package/src/components/ScriptBlock/ScriptBlock.tsx +10 -36
  114. package/src/components/ScriptContainer.tsx +22 -0
  115. package/src/components/ScriptEditor.tsx +47 -46
  116. package/src/components/ScriptSettings/ScriptSettings.tsx +47 -0
  117. package/src/components/ScriptSettings/index.ts +5 -0
  118. package/src/components/{Toolbar.stories.tsx → Toolbar/Toolbar.stories.tsx} +10 -1
  119. package/src/components/Toolbar/Toolbar.tsx +180 -0
  120. package/src/components/{ScriptBlock/Splitter → Toolbar}/index.ts +1 -1
  121. package/src/components/{TypescriptEditor.stories.tsx → TypescriptEditor/TypescriptEditor.stories.tsx} +7 -28
  122. package/src/components/{TypescriptEditor.tsx → TypescriptEditor/TypescriptEditor.tsx} +1 -3
  123. package/src/components/TypescriptEditor/index.ts +5 -0
  124. package/src/components/index.ts +3 -2
  125. package/src/edge/functions.ts +1 -0
  126. package/src/meta.tsx +2 -6
  127. package/src/templates/chat.ts +102 -0
  128. package/src/templates/chess.ts +41 -0
  129. package/src/templates/echo.ts +15 -0
  130. package/src/templates/email.ts +38 -0
  131. package/src/templates/forex.ts +21 -0
  132. package/src/templates.ts +54 -0
  133. package/src/translations.ts +2 -0
  134. package/src/types/types.ts +9 -5
  135. package/dist/lib/browser/ScriptEditor-5Y3EROG3.mjs.map +0 -7
  136. package/dist/lib/browser/TypescriptEditor-GPE72Y6I.mjs +0 -9
  137. package/dist/lib/browser/TypescriptEditor-GPE72Y6I.mjs.map +0 -7
  138. package/dist/lib/browser/chunk-DL5XQRQM.mjs.map +0 -7
  139. package/dist/lib/browser/chunk-JBACGDOJ.mjs.map +0 -7
  140. package/dist/lib/browser/chunk-MRGOT5RF.mjs +0 -78
  141. package/dist/lib/browser/chunk-MRGOT5RF.mjs.map +0 -7
  142. package/dist/lib/browser/chunk-RHEZ5LUU.mjs.map +0 -7
  143. package/dist/lib/node/ScriptEditor-YCUQFWQM.cjs +0 -526
  144. package/dist/lib/node/ScriptEditor-YCUQFWQM.cjs.map +0 -7
  145. package/dist/lib/node/TypescriptEditor-M3WWFIP2.cjs.map +0 -7
  146. package/dist/lib/node/chunk-4GTXIELQ.cjs.map +0 -7
  147. package/dist/lib/node/chunk-4VMNBXWU.cjs +0 -54
  148. package/dist/lib/node/chunk-4VMNBXWU.cjs.map +0 -7
  149. package/dist/lib/node/chunk-IMLDKD5Y.cjs +0 -111
  150. package/dist/lib/node/chunk-IMLDKD5Y.cjs.map +0 -7
  151. package/dist/lib/node/chunk-PFH3ROEH.cjs.map +0 -7
  152. package/dist/lib/node-esm/ScriptEditor-5Y3EROG3.mjs.map +0 -7
  153. package/dist/lib/node-esm/TypescriptEditor-GPE72Y6I.mjs +0 -9
  154. package/dist/lib/node-esm/TypescriptEditor-GPE72Y6I.mjs.map +0 -7
  155. package/dist/lib/node-esm/chunk-DL5XQRQM.mjs.map +0 -7
  156. package/dist/lib/node-esm/chunk-JBACGDOJ.mjs.map +0 -7
  157. package/dist/lib/node-esm/chunk-MRGOT5RF.mjs +0 -78
  158. package/dist/lib/node-esm/chunk-MRGOT5RF.mjs.map +0 -7
  159. package/dist/types/src/components/DebugPanel.d.ts.map +0 -1
  160. package/dist/types/src/components/ScriptBlock/FrameContainer/FrameContainer.d.ts.map +0 -1
  161. package/dist/types/src/components/ScriptBlock/FrameContainer/frame.d.ts.map +0 -1
  162. package/dist/types/src/components/ScriptBlock/FrameContainer/index.d.ts.map +0 -1
  163. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.d.ts +0 -15
  164. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.d.ts.map +0 -1
  165. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.stories.d.ts +0 -13
  166. package/dist/types/src/components/ScriptBlock/Splitter/Splitter.stories.d.ts.map +0 -1
  167. package/dist/types/src/components/ScriptBlock/Splitter/index.d.ts +0 -2
  168. package/dist/types/src/components/ScriptBlock/Splitter/index.d.ts.map +0 -1
  169. package/dist/types/src/components/Toolbar.d.ts +0 -13
  170. package/dist/types/src/components/Toolbar.d.ts.map +0 -1
  171. package/dist/types/src/components/Toolbar.stories.d.ts +0 -14
  172. package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
  173. package/dist/types/src/components/TypescriptEditor.d.ts.map +0 -1
  174. package/dist/types/src/components/TypescriptEditor.stories.d.ts +0 -10
  175. package/dist/types/src/components/TypescriptEditor.stories.d.ts.map +0 -1
  176. package/src/components/ScriptBlock/Splitter/Splitter.stories.tsx +0 -37
  177. package/src/components/ScriptBlock/Splitter/Splitter.tsx +0 -52
  178. package/src/components/Toolbar.tsx +0 -147
  179. /package/dist/types/src/components/{DebugPanel.d.ts → DebugPanel/DebugPanel.d.ts} +0 -0
  180. /package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.d.ts +0 -0
  181. /package/dist/types/src/components/{ScriptBlock/FrameContainer → FrameContainer}/index.d.ts +0 -0
  182. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.html +0 -0
  183. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/frame.tsx +0 -0
  184. /package/src/components/{ScriptBlock/FrameContainer → FrameContainer}/index.ts +0 -0
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import { type ThemedClassName } from '@dxos/react-ui';
3
- export type ToolbarProps = ThemedClassName<{
4
- deployed?: boolean;
5
- error?: string;
6
- functionUrl?: string;
7
- showPanel?: boolean;
8
- onDeploy?: () => Promise<void>;
9
- onFormat?: () => Promise<void>;
10
- onTogglePanel?: () => Promise<void>;
11
- }>;
12
- export declare const Toolbar: ({ classNames, deployed, error, functionUrl, showPanel, onDeploy, onFormat, onTogglePanel, }: ToolbarProps) => React.JSX.Element;
13
- //# sourceMappingURL=Toolbar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/Toolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAIL,KAAK,eAAe,EAIrB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC,CAAC;AAEH,eAAO,MAAM,OAAO,gGASjB,YAAY,sBA6Gd,CAAC"}
@@ -1,14 +0,0 @@
1
- import '@dxos-theme';
2
- declare const _default: {
3
- title: string;
4
- component: ({ classNames, deployed, error, functionUrl, showPanel, onDeploy, onFormat, onTogglePanel, }: import("./Toolbar").ToolbarProps) => import("react").JSX.Element;
5
- decorators: import("@storybook/react/*").Decorator[];
6
- };
7
- export default _default;
8
- export declare const Default: {
9
- args: {
10
- binding: string;
11
- deployed: boolean;
12
- };
13
- };
14
- //# sourceMappingURL=Toolbar.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Toolbar.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Toolbar.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;;;;;;AAMrB,wBAIE;AAEF,eAAO,MAAM,OAAO;;;;;CAAmD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypescriptEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/TypescriptEditor.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EASL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,4BAA4B,CAAC;CACpC,GAAG,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC;AAErG,eAAO,MAAM,gBAAgB,0FAS1B,qBAAqB,sBAwCvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1,10 +0,0 @@
1
- import '@dxos-theme';
2
- import React from 'react';
3
- declare const _default: {
4
- title: string;
5
- component: ({ id, scrollPastEnd, env, className, initialValue, extensions, scrollTo, selection, }: import("./TypescriptEditor").TypescriptEditorProps) => React.JSX.Element;
6
- render: () => React.JSX.Element;
7
- };
8
- export default _default;
9
- export declare const Default: {};
10
- //# sourceMappingURL=TypescriptEditor.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypescriptEditor.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/TypescriptEditor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,KAAkB,MAAM,OAAO,CAAC;;;;;;AA+CvC,wBAIE;AAEF,eAAO,MAAM,OAAO,IAAK,CAAC"}
@@ -1,37 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import React, { useState } from 'react';
8
-
9
- import { DensityProvider } from '@dxos/react-ui';
10
-
11
- import { Splitter, SplitterSelector, type View } from './Splitter';
12
-
13
- const Story = () => {
14
- const [view, setView] = useState<View>();
15
- return (
16
- <div>
17
- <DensityProvider density='fine'>
18
- <SplitterSelector view={view} onChange={setView} />
19
- </DensityProvider>
20
- <Splitter view={view}>
21
- <div>1</div>
22
- <div>2</div>
23
- </Splitter>
24
- </div>
25
- );
26
- };
27
-
28
- export default {
29
- title: 'plugin-script/Splitter',
30
- component: Splitter,
31
- render: Story,
32
- parameters: {
33
- layout: 'fullscreen',
34
- },
35
- };
36
-
37
- export const Default = {};
@@ -1,52 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { Code, SquareSplitHorizontal, Eye } from '@phosphor-icons/react';
6
- import React, { type ReactNode } from 'react';
7
-
8
- import { ToggleGroup, ToggleGroupItem, Toolbar } from '@dxos/react-ui';
9
- import { getSize, mx } from '@dxos/react-ui-theme';
10
-
11
- export type View = 'editor' | 'preview' | 'split';
12
-
13
- export type SplitterProps = {
14
- view?: View;
15
- className?: string;
16
- children?: ReactNode[];
17
- };
18
-
19
- // TODO(burdon): Surfaces?
20
- export const Splitter = ({ view = 'split', className, children = [] }: SplitterProps) => {
21
- const [left, right] = children;
22
- return (
23
- <div className={mx('flex overflow-hidden grow', className)}>
24
- {left && view !== 'preview' && <div className='flex flex-1 shrink-0 overflow-hidden'>{left}</div>}
25
- {right && view !== 'editor' && <div className='flex flex-1 shrink-0 overflow-hidden'>{right}</div>}
26
- </div>
27
- );
28
- };
29
-
30
- export type SplitterSelectorProps = {
31
- view?: View;
32
- onChange?: (view: View) => void;
33
- className?: string;
34
- };
35
-
36
- export const SplitterSelector = ({ view, onChange, className }: SplitterSelectorProps) => {
37
- return (
38
- <Toolbar.Root classNames={className}>
39
- <ToggleGroup type='single' value={view} onValueChange={(value) => onChange?.(value as View)}>
40
- <ToggleGroupItem value='editor'>
41
- <Code className={getSize(5)} />
42
- </ToggleGroupItem>
43
- <ToggleGroupItem value='split'>
44
- <SquareSplitHorizontal className={getSize(5)} />
45
- </ToggleGroupItem>
46
- <ToggleGroupItem value='preview'>
47
- <Eye className={getSize(5)} />
48
- </ToggleGroupItem>
49
- </ToggleGroup>
50
- </Toolbar.Root>
51
- );
52
- };
@@ -1,147 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React, { useState } from 'react';
6
-
7
- import {
8
- DensityProvider,
9
- ElevationProvider,
10
- Icon,
11
- type ThemedClassName,
12
- Toolbar as NaturalToolbar,
13
- Tooltip,
14
- useTranslation,
15
- } from '@dxos/react-ui';
16
-
17
- import { SCRIPT_PLUGIN } from '../meta';
18
-
19
- export type ToolbarProps = ThemedClassName<{
20
- deployed?: boolean;
21
- error?: string;
22
- functionUrl?: string;
23
- showPanel?: boolean;
24
- onDeploy?: () => Promise<void>;
25
- onFormat?: () => Promise<void>;
26
- onTogglePanel?: () => Promise<void>;
27
- }>;
28
-
29
- export const Toolbar = ({
30
- classNames,
31
- deployed,
32
- error,
33
- functionUrl,
34
- showPanel,
35
- onDeploy,
36
- onFormat,
37
- onTogglePanel,
38
- }: ToolbarProps) => {
39
- const { t } = useTranslation(SCRIPT_PLUGIN);
40
- const [pending, setPending] = useState(false);
41
-
42
- const handleCopyLink = async () => {
43
- if (!functionUrl) {
44
- return;
45
- }
46
-
47
- await navigator.clipboard.writeText(functionUrl);
48
- };
49
-
50
- const handleDeploy = async () => {
51
- setPending(true);
52
- await onDeploy?.();
53
- setPending(false);
54
- };
55
-
56
- // TODO(burdon): Simplify tooltips.
57
- // TODO(burdon): Factor out common toolbar components with sheet/editor?
58
- return (
59
- <DensityProvider density='fine'>
60
- <ElevationProvider elevation='chrome'>
61
- <NaturalToolbar.Root classNames={['p-1', classNames]} style={{ contain: 'layout' }}>
62
- {onFormat && (
63
- <Tooltip.Root>
64
- <Tooltip.Trigger asChild>
65
- <NaturalToolbar.Button variant='ghost' onClick={onFormat}>
66
- <Icon icon='ph--magic-wand--regular' size={4} />
67
- </NaturalToolbar.Button>
68
- </Tooltip.Trigger>
69
- <Tooltip.Portal>
70
- <Tooltip.Content>
71
- <Tooltip.Arrow />
72
- {t('format label')}
73
- </Tooltip.Content>
74
- </Tooltip.Portal>
75
- </Tooltip.Root>
76
- )}
77
-
78
- <div role='separator' className='grow' />
79
-
80
- {error ? (
81
- <Tooltip.Root>
82
- <Tooltip.Trigger>
83
- <Icon icon='ph--warning-circle--regular' size={4} />
84
- </Tooltip.Trigger>
85
- <Tooltip.Portal>
86
- <Tooltip.Content>
87
- <Tooltip.Arrow />
88
- {error}
89
- </Tooltip.Content>
90
- </Tooltip.Portal>
91
- </Tooltip.Root>
92
- ) : null}
93
-
94
- {functionUrl && deployed && (
95
- <Tooltip.Root>
96
- <Tooltip.Trigger asChild>
97
- <NaturalToolbar.Button variant='ghost' onClick={handleCopyLink}>
98
- <Icon icon='ph--link--regular' size={4} />
99
- </NaturalToolbar.Button>
100
- </Tooltip.Trigger>
101
- <Tooltip.Portal>
102
- <Tooltip.Content>
103
- <Tooltip.Arrow />
104
- {t('copy link label')}
105
- </Tooltip.Content>
106
- </Tooltip.Portal>
107
- </Tooltip.Root>
108
- )}
109
-
110
- <Tooltip.Root>
111
- <Tooltip.Trigger asChild>
112
- <NaturalToolbar.Button variant='ghost' onClick={handleDeploy} disabled={pending}>
113
- {pending ? (
114
- <Icon icon='ph--spinner--regular' size={4} classNames='animate-spin-slow' />
115
- ) : (
116
- <Icon icon='ph--cloud-arrow-up--regular' size={4} />
117
- )}
118
- </NaturalToolbar.Button>
119
- </Tooltip.Trigger>
120
- <Tooltip.Portal>
121
- <Tooltip.Content>
122
- <Tooltip.Arrow />
123
- {pending ? t('pending label') : t('deploy label')}
124
- </Tooltip.Content>
125
- </Tooltip.Portal>
126
- </Tooltip.Root>
127
-
128
- {onTogglePanel && (
129
- <Tooltip.Root>
130
- <Tooltip.Trigger asChild>
131
- <NaturalToolbar.Button variant='ghost' onClick={onTogglePanel}>
132
- <Icon icon={showPanel ? 'ph--caret-down--regular' : 'ph--caret-up--regular'} size={4} />
133
- </NaturalToolbar.Button>
134
- </Tooltip.Trigger>
135
- <Tooltip.Portal>
136
- <Tooltip.Content>
137
- <Tooltip.Arrow />
138
- {t('toggle details label')}
139
- </Tooltip.Content>
140
- </Tooltip.Portal>
141
- </Tooltip.Root>
142
- )}
143
- </NaturalToolbar.Root>
144
- </ElevationProvider>
145
- </DensityProvider>
146
- );
147
- };