@microbit/makecode-embed 0.1.0 → 0.3.0

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 (79) hide show
  1. package/dist/cjs/index.d.ts +10 -0
  2. package/dist/cjs/index.js +25 -0
  3. package/dist/cjs/index.js.map +1 -0
  4. package/dist/cjs/package.json +1 -0
  5. package/dist/cjs/react/MakeCodeBlocksRendering.js +105 -0
  6. package/dist/cjs/react/MakeCodeBlocksRendering.js.map +1 -0
  7. package/dist/cjs/react/MakeCodeFrame.js +74 -0
  8. package/dist/cjs/react/MakeCodeFrame.js.map +1 -0
  9. package/dist/cjs/react/MakeCodeRenderBlocksProvider.js +25 -0
  10. package/dist/cjs/react/MakeCodeRenderBlocksProvider.js.map +1 -0
  11. package/dist/cjs/react/index.js +23 -0
  12. package/dist/cjs/react/index.js.map +1 -0
  13. package/dist/cjs/react/useMakeCodeRenderBlocks.js +18 -0
  14. package/dist/cjs/react/useMakeCodeRenderBlocks.js.map +1 -0
  15. package/dist/cjs/vanilla/examples.js +20 -0
  16. package/dist/cjs/vanilla/examples.js.map +1 -0
  17. package/dist/cjs/vanilla/index.js +14 -0
  18. package/dist/cjs/vanilla/index.js.map +1 -0
  19. package/dist/cjs/vanilla/makecode-frame-driver.js +638 -0
  20. package/dist/cjs/vanilla/makecode-frame-driver.js.map +1 -0
  21. package/dist/cjs/vanilla/makecode-render-blocks.js +217 -0
  22. package/dist/cjs/vanilla/makecode-render-blocks.js.map +1 -0
  23. package/dist/cjs/vanilla/pxt.js +36 -0
  24. package/dist/cjs/vanilla/pxt.js.map +1 -0
  25. package/dist/esm/index.d.ts +10 -0
  26. package/dist/esm/index.js +9 -0
  27. package/dist/esm/index.js.map +1 -0
  28. package/dist/esm/package.json +1 -0
  29. package/dist/esm/react/MakeCodeBlocksRendering.d.ts +24 -0
  30. package/dist/esm/react/MakeCodeBlocksRendering.js.map +1 -0
  31. package/dist/esm/react/MakeCodeFrame.d.ts +38 -0
  32. package/dist/esm/react/MakeCodeFrame.js.map +1 -0
  33. package/dist/esm/react/MakeCodeRenderBlocksProvider.d.ts +18 -0
  34. package/dist/esm/react/MakeCodeRenderBlocksProvider.js.map +1 -0
  35. package/dist/esm/react/index.d.ts +8 -0
  36. package/dist/esm/react/index.js.map +1 -0
  37. package/dist/esm/react/useMakeCodeRenderBlocks.d.ts +6 -0
  38. package/dist/esm/react/useMakeCodeRenderBlocks.js.map +1 -0
  39. package/dist/esm/vanilla/examples.d.ts +3 -0
  40. package/dist/esm/vanilla/examples.js.map +1 -0
  41. package/dist/esm/vanilla/index.d.ts +6 -0
  42. package/dist/esm/vanilla/index.js.map +1 -0
  43. package/dist/esm/vanilla/makecode-frame-driver.d.ts +264 -0
  44. package/dist/{vanilla → esm/vanilla}/makecode-frame-driver.js +1 -1
  45. package/dist/esm/vanilla/makecode-frame-driver.js.map +1 -0
  46. package/dist/esm/vanilla/makecode-render-blocks.d.ts +31 -0
  47. package/dist/esm/vanilla/makecode-render-blocks.js.map +1 -0
  48. package/dist/esm/vanilla/pxt.d.ts +845 -0
  49. package/dist/esm/vanilla/pxt.js.map +1 -0
  50. package/package.json +35 -8
  51. package/dist/react/MakeCodeBlocksRendering.js.map +0 -1
  52. package/dist/react/MakeCodeFrame.js.map +0 -1
  53. package/dist/react/MakeCodeRenderBlocksProvider.js.map +0 -1
  54. package/dist/react/index.js.map +0 -1
  55. package/dist/react/useMakeCodeRenderBlocks.js.map +0 -1
  56. package/dist/vanilla/examples.js.map +0 -1
  57. package/dist/vanilla/index.js.map +0 -1
  58. package/dist/vanilla/makecode-frame-driver.js.map +0 -1
  59. package/dist/vanilla/makecode-render-blocks.js.map +0 -1
  60. package/dist/vanilla/pxt.js.map +0 -1
  61. /package/dist/{react → cjs/react}/MakeCodeBlocksRendering.d.ts +0 -0
  62. /package/dist/{react → cjs/react}/MakeCodeFrame.d.ts +0 -0
  63. /package/dist/{react → cjs/react}/MakeCodeRenderBlocksProvider.d.ts +0 -0
  64. /package/dist/{react → cjs/react}/index.d.ts +0 -0
  65. /package/dist/{react → cjs/react}/useMakeCodeRenderBlocks.d.ts +0 -0
  66. /package/dist/{vanilla → cjs/vanilla}/examples.d.ts +0 -0
  67. /package/dist/{vanilla → cjs/vanilla}/index.d.ts +0 -0
  68. /package/dist/{vanilla → cjs/vanilla}/makecode-frame-driver.d.ts +0 -0
  69. /package/dist/{vanilla → cjs/vanilla}/makecode-render-blocks.d.ts +0 -0
  70. /package/dist/{vanilla → cjs/vanilla}/pxt.d.ts +0 -0
  71. /package/dist/{react → esm/react}/MakeCodeBlocksRendering.js +0 -0
  72. /package/dist/{react → esm/react}/MakeCodeFrame.js +0 -0
  73. /package/dist/{react → esm/react}/MakeCodeRenderBlocksProvider.js +0 -0
  74. /package/dist/{react → esm/react}/index.js +0 -0
  75. /package/dist/{react → esm/react}/useMakeCodeRenderBlocks.js +0 -0
  76. /package/dist/{vanilla → esm/vanilla}/examples.js +0 -0
  77. /package/dist/{vanilla → esm/vanilla}/index.js +0 -0
  78. /package/dist/{vanilla → esm/vanilla}/makecode-render-blocks.js +0 -0
  79. /package/dist/{vanilla → esm/vanilla}/pxt.js +0 -0
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ /**
3
+ * MakeCode handling that does not depend on React.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createMakeCodeRenderBlocks = void 0;
7
+ const disposedMessage = 'Disposed';
8
+ const makecodeFailedToLoadMessage = 'Failed to load MakeCode to render blocks.';
9
+ const createMakeCodeRenderBlocks = (options) => {
10
+ const defaultedOptions = {
11
+ ...options,
12
+ };
13
+ const makecodeOrigin = 'https://makecode.microbit.org';
14
+ let iframe;
15
+ let status = 'loading';
16
+ const requestStatus = {
17
+ nextRequest: 0,
18
+ pendingRequests: {},
19
+ };
20
+ const pendingRequests = requestStatus.pendingRequests;
21
+ const failAllPending = (errorMessage) => {
22
+ Object.keys(requestStatus.pendingRequests).forEach((k) => {
23
+ const { promise } = pendingRequests[k];
24
+ delete pendingRequests[k];
25
+ promise.reject(errorMessage);
26
+ });
27
+ };
28
+ const sendPendingIfReady = () => {
29
+ if (status === 'ready') {
30
+ // Possible that dispose has been called by the time we process the message,
31
+ // in which case do nothing.
32
+ if (iframe) {
33
+ Object.values(pendingRequests).forEach((rr) => ensureMessageSent(rr));
34
+ }
35
+ }
36
+ else if (status === 'error') {
37
+ failAllPending(makecodeFailedToLoadMessage);
38
+ }
39
+ else if (status === 'disabled') {
40
+ failAllPending('renderBlocks will always fail when explicitly disabled');
41
+ }
42
+ else {
43
+ // We're loading, we'll send these when done.
44
+ }
45
+ };
46
+ const ensureMessageSent = (rr) => {
47
+ if (!rr.sent) {
48
+ rr.sent = true;
49
+ const { req } = rr;
50
+ iframe.contentWindow.postMessage(req, makecodeOrigin);
51
+ }
52
+ };
53
+ const findBestCode = (code, ignoreBlocks) => {
54
+ if (typeof code === 'string') {
55
+ return { code, type: 'text' };
56
+ }
57
+ if (code.text) {
58
+ const blocks = code.text['main.blocks'];
59
+ const text = code.text['main.ts'];
60
+ if (blocks && !ignoreBlocks) {
61
+ return {
62
+ code: blocks,
63
+ type: 'blocks',
64
+ };
65
+ }
66
+ if (text) {
67
+ return {
68
+ code: text,
69
+ type: 'text',
70
+ };
71
+ }
72
+ }
73
+ return { code: '', type: 'text' };
74
+ };
75
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
76
+ let errorTimeout;
77
+ const handleMessage = (ev) => {
78
+ const msg = ev.data;
79
+ if (ev.source !== iframe?.contentWindow || msg.source !== 'makecode') {
80
+ return;
81
+ }
82
+ switch (msg.type) {
83
+ case 'renderready': {
84
+ window.clearTimeout(errorTimeout);
85
+ status = 'ready';
86
+ sendPendingIfReady();
87
+ break;
88
+ }
89
+ case 'renderblocks': {
90
+ const id = msg.id;
91
+ const matchingRequest = pendingRequests[id];
92
+ if (!matchingRequest) {
93
+ return;
94
+ }
95
+ const result = msg;
96
+ // This currently happens for extension blocks.
97
+ // We retry with text based rendering.
98
+ // MakeCode beta appears to do this internally.
99
+ if (!result.error &&
100
+ !result.width &&
101
+ !result.height &&
102
+ !result.svg &&
103
+ !result.uri) {
104
+ if (matchingRequest.type === 'blocks') {
105
+ matchingRequest.sent = false;
106
+ matchingRequest.type = 'text';
107
+ matchingRequest.req.code = findBestCode(matchingRequest.input, true).code;
108
+ ensureMessageSent(matchingRequest);
109
+ return;
110
+ }
111
+ else {
112
+ result.error = 'Internal MakeCode failure.';
113
+ }
114
+ }
115
+ delete pendingRequests[id];
116
+ if (result.error) {
117
+ matchingRequest.promise.reject(result.error);
118
+ }
119
+ else {
120
+ matchingRequest.promise.resolve(msg);
121
+ }
122
+ break;
123
+ }
124
+ }
125
+ };
126
+ return {
127
+ initialize: () => {
128
+ if (options.disabled) {
129
+ return;
130
+ }
131
+ window.addEventListener('message', handleMessage);
132
+ iframe = createIframe(makecodeOrigin, defaultedOptions);
133
+ errorTimeout = setTimeout(() => {
134
+ failAllPending(makecodeFailedToLoadMessage);
135
+ status = 'error';
136
+ }, 30000);
137
+ },
138
+ dispose: () => {
139
+ window.clearTimeout(errorTimeout);
140
+ window.removeEventListener('message', handleMessage);
141
+ if (iframe && iframe.parentNode) {
142
+ iframe.parentNode.removeChild(iframe);
143
+ }
144
+ iframe = undefined;
145
+ failAllPending(disposedMessage);
146
+ },
147
+ renderBlocks: (req) => {
148
+ const id = requestStatus.nextRequest++ + '';
149
+ const { code, type } = findBestCode(req.code);
150
+ const makecodeRequest = {
151
+ id,
152
+ code,
153
+ type: 'renderblocks',
154
+ options: {
155
+ ...req.options,
156
+ // To include files to filesystem
157
+ assets: typeof req.code === 'object' ? req.code.text : undefined,
158
+ package: defaultPackageFromDependencies(req),
159
+ },
160
+ };
161
+ return new Promise((resolve, reject) => {
162
+ pendingRequests[id] = {
163
+ type,
164
+ input: req.code,
165
+ sent: false,
166
+ req: makecodeRequest,
167
+ promise: { resolve, reject },
168
+ };
169
+ sendPendingIfReady();
170
+ });
171
+ },
172
+ };
173
+ };
174
+ exports.createMakeCodeRenderBlocks = createMakeCodeRenderBlocks;
175
+ function defaultPackageFromDependencies(req) {
176
+ // Package can encode the extensions used in a comma separated list in this format:
177
+ // automationbit=github:pimoroni/pxt-automationbit#v0.0.2
178
+ // We can find that list from the JSON passed (but not from blocks or text)
179
+ const _package = req.options && req.options.package ? req.options.package : undefined;
180
+ if (typeof _package === 'undefined' &&
181
+ typeof req.code === 'object' &&
182
+ req.code.text['pxt.json']) {
183
+ const parsed = JSON.parse(req.code.text['pxt.json']);
184
+ if (typeof parsed === 'object') {
185
+ // Cope with extensions with spaces in their names. Otherwise pxt rejects
186
+ // adding the dependency even if it would in normal usage.
187
+ // https://github.com/microbit-foundation/classroom-management-tool/issues/463
188
+ const sanitizedName = (s) => s.replace(/[^a-zA-Z0-9_-]/g, '_');
189
+ const dependencies = parsed.dependencies || {};
190
+ const result = Object.keys(dependencies)
191
+ .map((name) => `${sanitizedName(name)}=${dependencies[name]}`)
192
+ .join(',');
193
+ return result;
194
+ }
195
+ }
196
+ return _package;
197
+ }
198
+ function createIframe(makecodeOrigin, { lang, version }) {
199
+ const query = `?render=1${lang ? `&lang=${encodeURIComponent(lang)}` : ''}`;
200
+ const src = [makecodeOrigin, version, '--docs'].filter(Boolean).join('/') + query;
201
+ const f = document.createElement('iframe');
202
+ f.style.position = 'absolute';
203
+ f.style.width = '1px';
204
+ f.style.height = '1px';
205
+ f.style.border = '0';
206
+ f.style.clip = 'rect(0 0 0 0)';
207
+ f.style.margin = '-1px';
208
+ f.style.padding = '0';
209
+ f.style.overflow = 'hidden';
210
+ f.style.whiteSpace = 'nowrap';
211
+ f.setAttribute('loading', 'eager');
212
+ f.setAttribute('aria-hidden', 'true');
213
+ f.src = src;
214
+ document.body.appendChild(f);
215
+ return f;
216
+ }
217
+ //# sourceMappingURL=makecode-render-blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makecode-render-blocks.js","sourceRoot":"","sources":["../../../src/vanilla/makecode-render-blocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * MakeCode/pxt types needed for the iframe messages.
4
+ *
5
+ * These are substantially derived from the PXT project. The types are hard to use
6
+ * directly due to logical splits that make sense for MakeCode internally, but not
7
+ * for this interface, and TypeScript features that make them hard to reuse in a
8
+ * library context: namespaces and const enums.
9
+ *
10
+ * We've also extracted interfaces for the request parameters separately from the
11
+ * request metadata and corrected some types that don't appear to behave as
12
+ * described.
13
+ *
14
+ * Original is Copyright (c) Microsoft Corporation
15
+ * MIT licensed: https://github.com/microsoft/pxt/blob/master/LICENSE
16
+ *
17
+ * Modifications are Copright (c) Micro:bit Educational Foundation and contributors
18
+ * 2024.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.BlockLayout = exports.FilterState = void 0;
22
+ var FilterState;
23
+ (function (FilterState) {
24
+ FilterState[FilterState["Hidden"] = 0] = "Hidden";
25
+ FilterState[FilterState["Visible"] = 1] = "Visible";
26
+ FilterState[FilterState["Disabled"] = 2] = "Disabled";
27
+ })(FilterState || (exports.FilterState = FilterState = {}));
28
+ var BlockLayout;
29
+ (function (BlockLayout) {
30
+ BlockLayout[BlockLayout["None"] = 0] = "None";
31
+ BlockLayout[BlockLayout["Align"] = 1] = "Align";
32
+ // Shuffle deprecated
33
+ BlockLayout[BlockLayout["Clean"] = 3] = "Clean";
34
+ BlockLayout[BlockLayout["Flow"] = 4] = "Flow";
35
+ })(BlockLayout || (exports.BlockLayout = BlockLayout = {}));
36
+ //# sourceMappingURL=pxt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pxt.js","sourceRoot":"","sources":["../../../src/vanilla/pxt.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AA6mBH,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,iDAAU,CAAA;IACV,mDAAW,CAAA;IACX,qDAAY,CAAA;AACd,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,6CAAQ,CAAA;IACR,+CAAS,CAAA;IACT,qBAAqB;IACrB,+CAAS,CAAA;IACT,6CAAQ,CAAA;AACV,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB"}
@@ -0,0 +1,10 @@
1
+ export { default as MakeCodeFrame, type MakeCodeFrameProps, } from './react/MakeCodeFrame.js';
2
+ export { default as useMakeCodeRenderBlocks, type UseMakeCodeRenderBlocksReturn, } from './react/useMakeCodeRenderBlocks.js';
3
+ export { MakeCodeRenderBlocksProvider } from './react/MakeCodeRenderBlocksProvider.js';
4
+ export { default as MakeCodeBlocksRendering, type MakeCodeBlocksRenderingProps, } from './react/MakeCodeBlocksRendering.js';
5
+ export { defaultMakeCodeProject, emptyMakeCodeProject, } from './vanilla/examples.js';
6
+ export { MakeCodeFrameDriver, createMakeCodeURL, } from './vanilla/makecode-frame-driver.js';
7
+ export { BlockLayout } from './vanilla/pxt.js';
8
+ export { createMakeCodeRenderBlocks } from './vanilla/makecode-render-blocks.js';
9
+ export type { MakeCodeRenderBlocksOptions, MakeCodeRenderBlocksReturn, RenderBlocksResponse, RenderBlocksRequest, } from './vanilla/makecode-render-blocks.js';
10
+ export type { CreateEvent, EditorContentLoadedRequest, EditorEvent, EditorMessageTutorialCompletedEventRequest, EditorMessageTutorialEventRequest, EditorMessageTutorialExitEventRequest, EditorMessageTutorialLoadedEventRequest, EditorMessageTutorialProgressEventRequest, EditorWorkspaceSaveRequest, EditorWorkspaceSyncRequest, ImportExternalProjectOptions, ImportFileOptions, ImportProjectOptions, InfoMessage, LanguageRestriction, MakeCodeProject, ProjectCreationOptions, ProjectFilters, RenderBlocksOptions, RenderByBlockIdOptions, RenderXmlOptions, ShareResult, StartActivityOptions, ToolboxBlockDefinition, ToolboxCategoryDefinition, UIEvent, } from './vanilla/pxt.js';
@@ -0,0 +1,9 @@
1
+ export { default as MakeCodeFrame, } from './react/MakeCodeFrame.js';
2
+ export { default as useMakeCodeRenderBlocks, } from './react/useMakeCodeRenderBlocks.js';
3
+ export { MakeCodeRenderBlocksProvider } from './react/MakeCodeRenderBlocksProvider.js';
4
+ export { default as MakeCodeBlocksRendering, } from './react/MakeCodeBlocksRendering.js';
5
+ export { defaultMakeCodeProject, emptyMakeCodeProject, } from './vanilla/examples.js';
6
+ export { MakeCodeFrameDriver, createMakeCodeURL, } from './vanilla/makecode-frame-driver.js';
7
+ export { BlockLayout } from './vanilla/pxt.js';
8
+ export { createMakeCodeRenderBlocks } from './vanilla/makecode-render-blocks.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,aAAa,GAEzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,OAAO,IAAI,uBAAuB,GAEnC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,EACL,OAAO,IAAI,uBAAuB,GAEnC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC"}
@@ -0,0 +1 @@
1
+ {"type": "module"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * A React component
3
+ * to render MakeCode block snippets
4
+ */
5
+ import React from 'react';
6
+ import { BlockLayout, MakeCodeProject } from '../vanilla/pxt.js';
7
+ export interface MakeCodeBlocksRenderingProps {
8
+ className?: string;
9
+ code?: string | MakeCodeProject;
10
+ packageId?: string;
11
+ package?: string;
12
+ snippetMode?: boolean;
13
+ layout?: BlockLayout;
14
+ loaderCmp?: React.ReactNode;
15
+ }
16
+ export interface MakeCodeBlocksRenderingState {
17
+ uri?: string;
18
+ width?: number;
19
+ height?: number;
20
+ error?: string;
21
+ rendering: boolean;
22
+ }
23
+ declare const _default: React.MemoExoticComponent<({ loaderCmp, package: _package, packageId, snippetMode, layout, code, className, }: MakeCodeBlocksRenderingProps) => import("react/jsx-runtime").JSX.Element>;
24
+ export default _default;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MakeCodeBlocksRendering.js","sourceRoot":"","sources":["../../../src/react/MakeCodeBlocksRendering.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { MakeCodeFrameDriver } from '../vanilla/makecode-frame-driver.js';
3
+ import { EditorContentLoadedRequest, EditorEvent, EditorMessageTutorialEventRequest, EditorWorkspaceSaveRequest, EditorWorkspaceSyncRequest, MakeCodeProject, ProjectFilters } from '../vanilla/pxt.js';
4
+ export interface MakeCodeFrameProps extends React.ComponentPropsWithoutRef<'iframe'> {
5
+ baseUrl?: string;
6
+ version?: string;
7
+ lang?: string;
8
+ controller?: 1 | 2;
9
+ queryParams?: Record<string, string>;
10
+ initialProjects: () => Promise<MakeCodeProject[]>;
11
+ controllerId?: string;
12
+ filters?: ProjectFilters;
13
+ searchBar?: boolean;
14
+ onDownload?: (download: {
15
+ name: string;
16
+ hex: string;
17
+ }) => void;
18
+ onSave?: (save: {
19
+ name: string;
20
+ hex: string;
21
+ }) => void;
22
+ onBack?: () => void;
23
+ onBackLongPress?: () => void;
24
+ onEditorContentLoaded?(event: EditorContentLoadedRequest): void;
25
+ onWorkspaceLoaded?(event: EditorWorkspaceSyncRequest): void;
26
+ onWorkspaceSync?(event: EditorWorkspaceSyncRequest): void;
27
+ /**
28
+ * This is only called via MakeCode UI that's not visible in embedded mode.
29
+ *
30
+ * It's intention is to delete all projects/settings.
31
+ */
32
+ onWorkspaceReset?(event: EditorWorkspaceSyncRequest): void;
33
+ onWorkspaceEvent?(event: EditorEvent): void;
34
+ onWorkspaceSave?(event: EditorWorkspaceSaveRequest): void;
35
+ onTutorialEvent?(event: EditorMessageTutorialEventRequest): void;
36
+ }
37
+ declare const MakeCodeFrame: React.ForwardRefExoticComponent<MakeCodeFrameProps & React.RefAttributes<MakeCodeFrameDriver>>;
38
+ export default MakeCodeFrame;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MakeCodeFrame.js","sourceRoot":"","sources":["../../../src/react/MakeCodeFrame.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from 'react';
2
+ import { UseMakeCodeRenderBlocksReturn } from './useMakeCodeRenderBlocks.js';
3
+ export declare const MakeCodeRenderBlocksProvider: ({ disabled, version, lang, children, }: {
4
+ /**
5
+ * This can be used to disable loading MakeCode in scenarios where it will be unused.
6
+ */
7
+ disabled?: boolean | undefined;
8
+ /**
9
+ * MakeCode version.
10
+ */
11
+ version?: string | undefined;
12
+ /**
13
+ * MakeCode language code.
14
+ */
15
+ lang?: string | undefined;
16
+ children: ReactNode;
17
+ }) => import("react/jsx-runtime").JSX.Element;
18
+ export declare const useMakeCodeRenderBlocksContext: () => UseMakeCodeRenderBlocksReturn;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MakeCodeRenderBlocksProvider.js","sourceRoot":"","sources":["../../../src/react/MakeCodeRenderBlocksProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAa,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,uBAEN,MAAM,8BAA8B,CAAC;AAEtC,MAAM,2BAA2B,GAC/B,aAAa,CAAgC;IAC3C,YAAY,EAAE,GAAG,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;CACF,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAC3C,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,QAAQ,GAeT,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,CACL,KAAC,2BAA2B,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAC/C,QAAQ,GAC4B,CACxC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,EAAE,CACjD,UAAU,CAAC,2BAA2B,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { default as MakeCodeFrame, type MakeCodeFrameProps, } from './MakeCodeFrame.js';
2
+ export { default as useMakeCodeRenderBlocks, type UseMakeCodeRenderBlocksReturn, } from './useMakeCodeRenderBlocks.js';
3
+ export { MakeCodeRenderBlocksProvider } from './MakeCodeRenderBlocksProvider.js';
4
+ export { default as MakeCodeBlocksRendering, type MakeCodeBlocksRenderingProps, } from './MakeCodeBlocksRendering.js';
5
+ export { defaultMakeCodeProject, emptyMakeCodeProject, } from '../vanilla/examples.js';
6
+ export { MakeCodeFrameDriver, createMakeCodeURL, } from '../vanilla/makecode-frame-driver.js';
7
+ export { BlockLayout } from '../vanilla/pxt.js';
8
+ export type { CreateEvent, EditorContentLoadedRequest, EditorEvent, EditorMessageTutorialCompletedEventRequest, EditorMessageTutorialEventRequest, EditorMessageTutorialExitEventRequest, EditorMessageTutorialLoadedEventRequest, EditorMessageTutorialProgressEventRequest, EditorWorkspaceSaveRequest, EditorWorkspaceSyncRequest, ImportExternalProjectOptions, ImportFileOptions, ImportProjectOptions, InfoMessage, LanguageRestriction, MakeCodeProject, ProjectCreationOptions, ProjectFilters, RenderBlocksOptions, RenderByBlockIdOptions, RenderXmlOptions, ShareResult, StartActivityOptions, ToolboxBlockDefinition, ToolboxCategoryDefinition, UIEvent, } from '../vanilla/pxt.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,aAAa,GAEzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,OAAO,IAAI,uBAAuB,GAEnC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EACL,OAAO,IAAI,uBAAuB,GAEnC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { MakeCodeRenderBlocksOptions, RenderBlocksRequest, RenderBlocksResponse } from '../vanilla/makecode-render-blocks.js';
2
+ export interface UseMakeCodeRenderBlocksReturn {
3
+ renderBlocks: (req: RenderBlocksRequest) => Promise<RenderBlocksResponse>;
4
+ }
5
+ declare const useMakeCodeRenderBlocks: (options: MakeCodeRenderBlocksOptions) => UseMakeCodeRenderBlocksReturn;
6
+ export default useMakeCodeRenderBlocks;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMakeCodeRenderBlocks.js","sourceRoot":"","sources":["../../../src/react/useMakeCodeRenderBlocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,0BAA0B,GAK3B,MAAM,sCAAsC,CAAC;AAM9C,MAAM,uBAAuB,GAAG,CAC9B,OAAoC,EACL,EAAE;IACjC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,0BAA0B,CAAC,eAAe,CAAC,EACjD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { MakeCodeProject } from './pxt.js';
2
+ export declare const defaultMakeCodeProject: MakeCodeProject;
3
+ export declare const emptyMakeCodeProject: MakeCodeProject;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../src/vanilla/examples.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAoB;IACrD,IAAI,EAAE;QACJ,aAAa,EACX,sIAAsI;QACxI,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,GAAG;QAChB,UAAU,EACR,mNAAmN;KACtN;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAoB;IACnD,IAAI,EAAE;QACJ,aAAa,EACX,+EAA+E;QACjF,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,GAAG;QAChB,UAAU,EACR,mNAAmN;KACtN;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { defaultMakeCodeProject, emptyMakeCodeProject, } from '../vanilla/examples.js';
2
+ export { MakeCodeFrameDriver, createMakeCodeURL, type EditorShareOptions, type Options, } from '../vanilla/makecode-frame-driver.js';
3
+ export { BlockLayout } from '../vanilla/pxt.js';
4
+ export type { CodeCard, CodeCardAction, CodeCardEditorType, CodeCardType, CodeValidationConfig, CreateEvent, DependencyMap, EditorContentLoadedRequest, EditorEvent, EditorMessageTutorialCompletedEventRequest, EditorMessageTutorialEventRequest, EditorMessageTutorialExitEventRequest, EditorMessageTutorialLoadedEventRequest, EditorMessageTutorialProgressEventRequest, EditorWorkspaceSaveRequest, EditorWorkspaceSyncRequest, FilterState, Header, ImportExternalProjectOptions, ImportFileOptions, ImportProjectOptions, InfoMessage, LanguageRestriction, PackageConfig, PackageExtension, MakeCodeProject, ProjectCreationOptions, ProjectFilters, ProjectTemplate, RenderBlocksOptions, RenderByBlockIdOptions, RenderXmlOptions, ScriptText, ShareResult, SnippetAnswerTypes, SnippetConfig, SnippetGoToOptions, SnippetParameters, SnippetQuestionInput, SnippetQuestions, StartActivityOptions, TargetVersions, ToolboxBlockDefinition, ToolboxCategoryDefinition, TutorialActivityInfo, TutorialBlockConfig, TutorialMetadata, TutorialOptions, TutorialStepInfo, UIEvent, YottaConfig, } from '../vanilla/pxt.js';
5
+ export { createMakeCodeRenderBlocks } from '../vanilla/makecode-render-blocks.js';
6
+ export type { MakeCodeRenderBlocksOptions, MakeCodeRenderBlocksReturn, RenderBlocksResponse, RenderBlocksRequest, } from '../vanilla/makecode-render-blocks.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/vanilla/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAwDhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC"}