@myst-theme/jupyter 0.3.5 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/embed.d.ts.map +1 -1
- package/dist/cjs/embed.js +2 -1
- package/dist/cjs/execute/hooks.d.ts.map +1 -1
- package/dist/cjs/execute/hooks.js +18 -24
- package/dist/cjs/execute/leaf.d.ts.map +1 -1
- package/dist/cjs/execute/leaf.js +2 -4
- package/dist/cjs/execute/reducer.js +4 -3
- package/dist/cjs/execute/selectors.d.ts +4 -0
- package/dist/cjs/execute/selectors.d.ts.map +1 -1
- package/dist/cjs/execute/selectors.js +11 -1
- package/dist/esm/embed.d.ts.map +1 -1
- package/dist/esm/embed.js +3 -2
- package/dist/esm/execute/hooks.d.ts.map +1 -1
- package/dist/esm/execute/hooks.js +18 -24
- package/dist/esm/execute/leaf.d.ts.map +1 -1
- package/dist/esm/execute/leaf.js +3 -5
- package/dist/esm/execute/reducer.js +4 -3
- package/dist/esm/execute/selectors.d.ts +4 -0
- package/dist/esm/execute/selectors.d.ts.map +1 -1
- package/dist/esm/execute/selectors.js +8 -0
- package/dist/types/embed.d.ts.map +1 -1
- package/dist/types/execute/hooks.d.ts.map +1 -1
- package/dist/types/execute/leaf.d.ts.map +1 -1
- package/dist/types/execute/selectors.d.ts +4 -0
- package/dist/types/execute/selectors.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/cjs/embed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAwD/D,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,2CAajE"}
|
package/dist/cjs/embed.js
CHANGED
|
@@ -11,8 +11,9 @@ const providers_1 = require("@myst-theme/providers");
|
|
|
11
11
|
function EmbedWithControls({ outputKey, children, title = 'Jupyter Notebook', url, }) {
|
|
12
12
|
const { kind } = (0, execute_1.useCellExecution)(outputKey);
|
|
13
13
|
const Link = (0, providers_1.useLinkProvider)();
|
|
14
|
+
const baseurl = (0, providers_1.useBaseurl)();
|
|
14
15
|
const showControls = kind === myst_common_1.SourceFileKind.Article;
|
|
15
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: "shadow", children: [showControls && ((0, jsx_runtime_1.jsx)("div", { className: "sticky top-[60px] z-[2] w-full bg-gray-100/80 backdrop-blur dark:bg-neutral-800/80 py-1 px-2", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsx)(solid_1.JupyterIcon, { className: "inline-block w-5 h-5" }), (0, jsx_runtime_1.jsx)("span", { className: "ml-2", children: "Source:" }), url && ((0, jsx_runtime_1.jsx)(Link, { to: url, className: "ml-2 no-underline text-normal hover:underline", children: title }))] }), (0, jsx_runtime_1.jsx)("div", { className: "flex-grow" }), (0, jsx_runtime_1.jsx)(ArticleCellControls_1.ArticleStatusBadge, { id: outputKey }), (0, jsx_runtime_1.jsx)(ArticleCellControls_1.ArticleRunNotebook, { id: outputKey }), (0, jsx_runtime_1.jsx)(ArticleCellControls_1.ArticleResetNotebook, { id: outputKey })] }) })), (0, jsx_runtime_1.jsx)("div", { className: "mt-2", children: children })] }));
|
|
16
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "shadow", children: [showControls && ((0, jsx_runtime_1.jsx)("div", { className: "sticky top-[60px] z-[2] w-full bg-gray-100/80 backdrop-blur dark:bg-neutral-800/80 py-1 px-2", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsx)(solid_1.JupyterIcon, { className: "inline-block w-5 h-5" }), (0, jsx_runtime_1.jsx)("span", { className: "ml-2", children: "Source:" }), url && ((0, jsx_runtime_1.jsx)(Link, { to: (0, providers_1.withBaseurl)(url, baseurl), className: "ml-2 no-underline text-normal hover:underline", children: title }))] }), (0, jsx_runtime_1.jsx)("div", { className: "flex-grow" }), (0, jsx_runtime_1.jsx)(ArticleCellControls_1.ArticleStatusBadge, { id: outputKey }), (0, jsx_runtime_1.jsx)(ArticleCellControls_1.ArticleRunNotebook, { id: outputKey }), (0, jsx_runtime_1.jsx)(ArticleCellControls_1.ArticleResetNotebook, { id: outputKey })] }) })), (0, jsx_runtime_1.jsx)("div", { className: "mt-2", children: children })] }));
|
|
16
17
|
}
|
|
17
18
|
function Embed(node, children) {
|
|
18
19
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/execute/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAA0C,MAAM,YAAY,CAAC;AAGrF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/execute/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAA0C,MAAM,YAAY,CAAC;AAGrF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,wBAAgB,iBAAiB,CAAC,EAChC,qBAA6B,GAC9B,GAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO;;kBAUR,MAAM;yBAsD1B,MAAM;yBAYN,MAAM;oBAxDI,MAAM;;;;;EAgF9B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,qBAAqB,UAAQ;;;;;;;;;;;;;;;EA2G9E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO;;;;;;;;;;EA+D3C;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO;;;;EAc/C;AAED,wBAAgB,iBAAiB,YAOhC"}
|
|
@@ -38,6 +38,7 @@ const provider_1 = require("./provider");
|
|
|
38
38
|
const busy_1 = require("./busy");
|
|
39
39
|
const thebe_react_1 = require("thebe-react");
|
|
40
40
|
const myst_common_1 = require("myst-common");
|
|
41
|
+
const selectors_1 = require("./selectors");
|
|
41
42
|
function useExecutionScope({ clearOutputsOnExecute = false, } = {}) {
|
|
42
43
|
var _a;
|
|
43
44
|
const context = react_1.default.useContext(provider_1.ExecuteScopeContext);
|
|
@@ -92,7 +93,8 @@ function useExecutionScope({ clearOutputsOnExecute = false, } = {}) {
|
|
|
92
93
|
*
|
|
93
94
|
*/
|
|
94
95
|
const clearAll = (0, react_1.useCallback)((pageSlug) => {
|
|
95
|
-
|
|
96
|
+
var _a;
|
|
97
|
+
Object.entries((_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes).forEach(([, { notebook }]) => {
|
|
96
98
|
notebook.clear();
|
|
97
99
|
});
|
|
98
100
|
}, [state]);
|
|
@@ -100,7 +102,8 @@ function useExecutionScope({ clearOutputsOnExecute = false, } = {}) {
|
|
|
100
102
|
* resetAll resets all cells in all notebooks for a given rendering
|
|
101
103
|
*/
|
|
102
104
|
const resetAll = (0, react_1.useCallback)((pageSlug) => {
|
|
103
|
-
|
|
105
|
+
var _a;
|
|
106
|
+
Object.entries((_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes).forEach(([notebookSlug, { notebook, session }]) => {
|
|
104
107
|
busy.setNotebook(pageSlug, notebookSlug, notebook.cells.map((c) => c.id), 'reset');
|
|
105
108
|
setTimeout(() => {
|
|
106
109
|
var _a;
|
|
@@ -126,7 +129,7 @@ function useNotebookExecution(id, clearOutputsOnExecute = false) {
|
|
|
126
129
|
const { config } = (0, thebe_react_1.useThebeConfig)();
|
|
127
130
|
const busy = (0, busy_1.useBusyScope)();
|
|
128
131
|
if (context === undefined) {
|
|
129
|
-
throw new Error('
|
|
132
|
+
throw new Error('useNotebookExecution must be used within a ExecuteScopeProvider');
|
|
130
133
|
}
|
|
131
134
|
const { state, dispatch, idkmap } = context;
|
|
132
135
|
const target = (_a = idkmap[id]) !== null && _a !== void 0 ? _a : {};
|
|
@@ -144,16 +147,12 @@ function useNotebookExecution(id, clearOutputsOnExecute = false) {
|
|
|
144
147
|
let cell;
|
|
145
148
|
let notebook;
|
|
146
149
|
if (target && state.pages[pageSlug]) {
|
|
147
|
-
notebook = state
|
|
148
|
-
if (
|
|
149
|
-
|
|
150
|
-
cell = notebook === null || notebook === void 0 ? void 0 : notebook.getCellById(cellId);
|
|
151
|
-
if (!cell)
|
|
152
|
-
console.error('no cell found', { pageSlug, notebookSlug, cellId });
|
|
150
|
+
notebook = (0, selectors_1.selectNotebookForPage)(state, pageSlug, notebookSlug);
|
|
151
|
+
if (notebook)
|
|
152
|
+
cell = notebook === null || notebook === void 0 ? void 0 : notebook.getCellById(cellId);
|
|
153
153
|
}
|
|
154
154
|
const execute = () => {
|
|
155
|
-
|
|
156
|
-
const nb = (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug]) === null || _b === void 0 ? void 0 : _b.notebook;
|
|
155
|
+
const nb = (0, selectors_1.selectNotebookForPage)(state, pageSlug, notebookSlug);
|
|
157
156
|
// set busy
|
|
158
157
|
busy.setNotebook(pageSlug, notebookSlug, nb.cells.map((c) => c.id), 'execute');
|
|
159
158
|
if (clearOutputsOnExecute)
|
|
@@ -180,21 +179,19 @@ function useNotebookExecution(id, clearOutputsOnExecute = false) {
|
|
|
180
179
|
*
|
|
181
180
|
*/
|
|
182
181
|
const clear = (0, react_1.useCallback)(() => {
|
|
183
|
-
|
|
184
|
-
const nb = (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug]) === null || _b === void 0 ? void 0 : _b.notebook;
|
|
182
|
+
const nb = (0, selectors_1.selectNotebookForPage)(state, pageSlug, notebookSlug);
|
|
185
183
|
nb.clear();
|
|
186
184
|
}, [state]);
|
|
187
185
|
/**
|
|
188
186
|
* resetAll resets all cells in all notebooks for a given rendering
|
|
189
187
|
*/
|
|
190
188
|
const reset = (0, react_1.useCallback)(() => {
|
|
191
|
-
|
|
192
|
-
const { notebook: nb, session } = (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug]) !== null && _b !== void 0 ? _b : {};
|
|
189
|
+
const nb = (0, selectors_1.selectNotebookForPage)(state, pageSlug, notebookSlug);
|
|
193
190
|
busy.setNotebook(pageSlug, notebookSlug, nb.cells.map((c) => c.id), 'reset');
|
|
194
191
|
setTimeout(() => {
|
|
195
|
-
var _a;
|
|
192
|
+
var _a, _b;
|
|
196
193
|
nb.reset();
|
|
197
|
-
(_a = session === null ||
|
|
194
|
+
(_b = (_a = nb.session) === null || _a === void 0 ? void 0 : _a.kernel) === null || _b === void 0 ? void 0 : _b.restart().finally(() => {
|
|
198
195
|
busy.clearNotebook(pageSlug, notebookSlug, 'reset');
|
|
199
196
|
});
|
|
200
197
|
}, 300);
|
|
@@ -223,7 +220,7 @@ function useCellExecution(id) {
|
|
|
223
220
|
const busy = (0, busy_1.useBusyScope)();
|
|
224
221
|
const context = react_1.default.useContext(provider_1.ExecuteScopeContext);
|
|
225
222
|
if (context === undefined) {
|
|
226
|
-
throw new Error('
|
|
223
|
+
throw new Error('useCellExecution must be used within a ExecuteScopeProvider');
|
|
227
224
|
}
|
|
228
225
|
const { state, idkmap } = context;
|
|
229
226
|
const target = (_a = idkmap[id]) !== null && _a !== void 0 ? _a : {};
|
|
@@ -231,12 +228,9 @@ function useCellExecution(id) {
|
|
|
231
228
|
let cell;
|
|
232
229
|
let notebook;
|
|
233
230
|
if (target && state.pages[pageSlug]) {
|
|
234
|
-
notebook = state
|
|
235
|
-
if (
|
|
236
|
-
|
|
237
|
-
cell = notebook === null || notebook === void 0 ? void 0 : notebook.getCellById(cellId);
|
|
238
|
-
if (!cell)
|
|
239
|
-
console.error('no cell found', { pageSlug, notebookSlug, cellId });
|
|
231
|
+
notebook = (0, selectors_1.selectNotebookForPage)(state, pageSlug, notebookSlug);
|
|
232
|
+
if (notebook)
|
|
233
|
+
cell = notebook === null || notebook === void 0 ? void 0 : notebook.getCellById(cellId);
|
|
240
234
|
}
|
|
241
235
|
const ready = (_b = context.state.pages[context.slug]) === null || _b === void 0 ? void 0 : _b.ready;
|
|
242
236
|
const kind = (_d = (_c = context.state.pages[context.slug]) === null || _c === void 0 ? void 0 : _c.kind) !== null && _d !== void 0 ? _d : myst_common_1.SourceFileKind.Article;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../../../src/execute/leaf.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../../../src/execute/leaf.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAW3D,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,GAAG,EACH,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,kDAkBA;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,KAAK,EACL,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,QA8CA;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,QAoEA;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,QA4BA"}
|
package/dist/cjs/execute/leaf.js
CHANGED
|
@@ -84,8 +84,7 @@ function SessionStarter({ pageSlug, notebookSlug, state, dispatch, }) {
|
|
|
84
84
|
console.debug(`reconnected to session for ${pageSlug}/${notebookSlug}`, sesh);
|
|
85
85
|
console.debug('restarting session', sesh);
|
|
86
86
|
(_a = sesh.kernel) === null || _a === void 0 ? void 0 : _a.restart().then(() => {
|
|
87
|
-
|
|
88
|
-
const notebook = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug].notebook;
|
|
87
|
+
const notebook = (0, selectors_1.selectNotebookForPage)(state, pageSlug, notebookSlug);
|
|
89
88
|
notebook.attachSession(sesh);
|
|
90
89
|
dispatch({ type: 'ADD_SESSION', payload: { pageSlug, notebookSlug, session: sesh } });
|
|
91
90
|
});
|
|
@@ -95,7 +94,6 @@ function SessionStarter({ pageSlug, notebookSlug, state, dispatch, }) {
|
|
|
95
94
|
server
|
|
96
95
|
.startNewSession(scope.rendermime, Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.kernels), { name: `${pageSlug}-${notebookSlug}.ipynb`, path }))
|
|
97
96
|
.then((sesh) => {
|
|
98
|
-
var _a;
|
|
99
97
|
if (sesh == null) {
|
|
100
98
|
server === null || server === void 0 ? void 0 : server.getKernelSpecs().then((specs) => {
|
|
101
99
|
console.error(`Could not start session for ${pageSlug} ${notebookSlug}`);
|
|
@@ -104,7 +102,7 @@ function SessionStarter({ pageSlug, notebookSlug, state, dispatch, }) {
|
|
|
104
102
|
return;
|
|
105
103
|
}
|
|
106
104
|
console.debug(`session started for ${pageSlug}/${notebookSlug}`, sesh);
|
|
107
|
-
const notebook = (
|
|
105
|
+
const notebook = (0, selectors_1.selectNotebookForPage)(state, pageSlug, notebookSlug);
|
|
108
106
|
notebook.attachSession(sesh);
|
|
109
107
|
dispatch({ type: 'ADD_SESSION', payload: { pageSlug, notebookSlug, session: sesh } });
|
|
110
108
|
});
|
|
@@ -15,6 +15,7 @@ exports.reducer = void 0;
|
|
|
15
15
|
const myst_common_1 = require("myst-common");
|
|
16
16
|
const actions_1 = require("./actions");
|
|
17
17
|
function reducer(state, action) {
|
|
18
|
+
var _a;
|
|
18
19
|
switch (action.type) {
|
|
19
20
|
case 'NAVIGATE': {
|
|
20
21
|
if (!(0, actions_1.isNavigatePayload)(action.payload)) {
|
|
@@ -79,7 +80,7 @@ function reducer(state, action) {
|
|
|
79
80
|
if (!state.builds[slug])
|
|
80
81
|
return state;
|
|
81
82
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
82
|
-
const
|
|
83
|
+
const _b = state.builds, _c = slug, _ = _b[_c], builds = __rest(_b, [typeof _c === "symbol" ? _c : _c + ""]);
|
|
83
84
|
return Object.assign(Object.assign({}, state), { builds });
|
|
84
85
|
}
|
|
85
86
|
case 'SET_RENDERING_READY': {
|
|
@@ -91,7 +92,7 @@ function reducer(state, action) {
|
|
|
91
92
|
if (state.pages[slug].ready)
|
|
92
93
|
return state;
|
|
93
94
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
94
|
-
const
|
|
95
|
+
const _d = state.builds, _e = slug, _ = _d[_e], builds = __rest(_d, [typeof _e === "symbol" ? _e : _e + ""]);
|
|
95
96
|
const newState = Object.assign(Object.assign({}, state), { builds, pages: Object.assign(Object.assign({}, state.pages), { [slug]: Object.assign(Object.assign({}, state.pages[slug]), { ready: true }) }) });
|
|
96
97
|
return newState;
|
|
97
98
|
}
|
|
@@ -124,7 +125,7 @@ function reducer(state, action) {
|
|
|
124
125
|
console.error(state, action.payload);
|
|
125
126
|
throw new Error('Trying to add session when there is no rendering state');
|
|
126
127
|
}
|
|
127
|
-
if (state.pages[pageSlug].scopes[notebookSlug].session) {
|
|
128
|
+
if ((_a = state.pages[pageSlug].scopes[notebookSlug]) === null || _a === void 0 ? void 0 : _a.session) {
|
|
128
129
|
console.warn('Trying to add session scope when rendering already has one', action.payload);
|
|
129
130
|
return state;
|
|
130
131
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { BuildStatus, ExecuteScopeState } from './types';
|
|
2
|
+
export declare function selectScopeForPage(state: ExecuteScopeState, pageSlug: string): {
|
|
3
|
+
[notebookSlug: string]: import("./types").ExecutionScope;
|
|
4
|
+
};
|
|
5
|
+
export declare function selectNotebookForPage(state: ExecuteScopeState, pageSlug: string, notebookSlug: string): import("thebe-core/dist/types/notebook").default;
|
|
2
6
|
export declare function selectIsComputable(state: ExecuteScopeState, slug: string): boolean;
|
|
3
7
|
export declare function selectAreExecutionScopesReady(state: ExecuteScopeState, slug: string): boolean;
|
|
4
8
|
export declare function selectAreExecutionScopesBuilding(state: ExecuteScopeState, slug: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/execute/selectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAExE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEtF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,yBAEhF;AAQD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB;UAKpD,MAAM;SACP,MAAM;IAclB;AAsBD,eAAO,MAAM,2BAA2B,UAlBvB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAkBS,CAAC;AACzF,eAAO,MAAM,qBAAqB,UAnBjB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAmBC,CAAC;AAEjF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAGrF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAIjF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,YAGrB"}
|
|
1
|
+
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/execute/selectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM;;EAE5E;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,oDAGrB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAExE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEtF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,yBAEhF;AAQD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB;UAKpD,MAAM;SACP,MAAM;IAclB;AAsBD,eAAO,MAAM,2BAA2B,UAlBvB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAkBS,CAAC;AACzF,eAAO,MAAM,qBAAqB,UAnBjB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAmBC,CAAC;AAEjF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAGrF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAIjF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,YAGrB"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.selectNotebookCellIds = exports.selectAreAllSessionsStarted = exports.selectAreAllNotebookScopesBuilt = exports.selectAreAllDependenciesReady = exports.selectSessionsToStart = exports.selectScopeNotebooksToBuild = exports.selectDependenciesToFetch = exports.selectExecutionScopeStatus = exports.selectAreExecutionScopesBuilding = exports.selectAreExecutionScopesReady = exports.selectIsComputable = void 0;
|
|
3
|
+
exports.selectNotebookCellIds = exports.selectAreAllSessionsStarted = exports.selectAreAllNotebookScopesBuilt = exports.selectAreAllDependenciesReady = exports.selectSessionsToStart = exports.selectScopeNotebooksToBuild = exports.selectDependenciesToFetch = exports.selectExecutionScopeStatus = exports.selectAreExecutionScopesBuilding = exports.selectAreExecutionScopesReady = exports.selectIsComputable = exports.selectNotebookForPage = exports.selectScopeForPage = void 0;
|
|
4
4
|
const myst_common_1 = require("myst-common");
|
|
5
|
+
function selectScopeForPage(state, pageSlug) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
return (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes) !== null && _b !== void 0 ? _b : {};
|
|
8
|
+
}
|
|
9
|
+
exports.selectScopeForPage = selectScopeForPage;
|
|
10
|
+
function selectNotebookForPage(state, pageSlug, notebookSlug) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
return (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug]) === null || _b === void 0 ? void 0 : _b.notebook;
|
|
13
|
+
}
|
|
14
|
+
exports.selectNotebookForPage = selectNotebookForPage;
|
|
5
15
|
function selectIsComputable(state, slug) {
|
|
6
16
|
var _a, _b;
|
|
7
17
|
return (_b = (_a = state.pages[slug]) === null || _a === void 0 ? void 0 : _a.computable) !== null && _b !== void 0 ? _b : false;
|
package/dist/esm/embed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAwD/D,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,2CAajE"}
|
package/dist/esm/embed.js
CHANGED
|
@@ -4,12 +4,13 @@ import { useCellExecution } from './execute';
|
|
|
4
4
|
import { ArticleResetNotebook, ArticleRunNotebook, ArticleStatusBadge, } from './controls/ArticleCellControls';
|
|
5
5
|
import { JupyterIcon } from '@scienceicons/react/24/solid';
|
|
6
6
|
import { select } from 'unist-util-select';
|
|
7
|
-
import { useLinkProvider } from '@myst-theme/providers';
|
|
7
|
+
import { useLinkProvider, useBaseurl, withBaseurl } from '@myst-theme/providers';
|
|
8
8
|
function EmbedWithControls({ outputKey, children, title = 'Jupyter Notebook', url, }) {
|
|
9
9
|
const { kind } = useCellExecution(outputKey);
|
|
10
10
|
const Link = useLinkProvider();
|
|
11
|
+
const baseurl = useBaseurl();
|
|
11
12
|
const showControls = kind === SourceFileKind.Article;
|
|
12
|
-
return (_jsxs("div", { className: "shadow", children: [showControls && (_jsx("div", { className: "sticky top-[60px] z-[2] w-full bg-gray-100/80 backdrop-blur dark:bg-neutral-800/80 py-1 px-2", children: _jsxs("div", { className: "flex items-center", children: [_jsxs("div", { className: "flex items-center", children: [_jsx(JupyterIcon, { className: "inline-block w-5 h-5" }), _jsx("span", { className: "ml-2", children: "Source:" }), url && (_jsx(Link, { to: url, className: "ml-2 no-underline text-normal hover:underline", children: title }))] }), _jsx("div", { className: "flex-grow" }), _jsx(ArticleStatusBadge, { id: outputKey }), _jsx(ArticleRunNotebook, { id: outputKey }), _jsx(ArticleResetNotebook, { id: outputKey })] }) })), _jsx("div", { className: "mt-2", children: children })] }));
|
|
13
|
+
return (_jsxs("div", { className: "shadow", children: [showControls && (_jsx("div", { className: "sticky top-[60px] z-[2] w-full bg-gray-100/80 backdrop-blur dark:bg-neutral-800/80 py-1 px-2", children: _jsxs("div", { className: "flex items-center", children: [_jsxs("div", { className: "flex items-center", children: [_jsx(JupyterIcon, { className: "inline-block w-5 h-5" }), _jsx("span", { className: "ml-2", children: "Source:" }), url && (_jsx(Link, { to: withBaseurl(url, baseurl), className: "ml-2 no-underline text-normal hover:underline", children: title }))] }), _jsx("div", { className: "flex-grow" }), _jsx(ArticleStatusBadge, { id: outputKey }), _jsx(ArticleRunNotebook, { id: outputKey }), _jsx(ArticleResetNotebook, { id: outputKey })] }) })), _jsx("div", { className: "mt-2", children: children })] }));
|
|
13
14
|
}
|
|
14
15
|
export function Embed(node, children) {
|
|
15
16
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/execute/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAA0C,MAAM,YAAY,CAAC;AAGrF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/execute/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAA0C,MAAM,YAAY,CAAC;AAGrF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,wBAAgB,iBAAiB,CAAC,EAChC,qBAA6B,GAC9B,GAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO;;kBAUR,MAAM;yBAsD1B,MAAM;yBAYN,MAAM;oBAxDI,MAAM;;;;;EAgF9B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,qBAAqB,UAAQ;;;;;;;;;;;;;;;EA2G9E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO;;;;;;;;;;EA+D3C;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO;;;;EAc/C;AAED,wBAAgB,iBAAiB,YAOhC"}
|
|
@@ -12,6 +12,7 @@ import { ExecuteScopeContext } from './provider';
|
|
|
12
12
|
import { useBusyScope } from './busy';
|
|
13
13
|
import { findErrors, useThebeConfig } from 'thebe-react';
|
|
14
14
|
import { SourceFileKind } from 'myst-common';
|
|
15
|
+
import { selectNotebookForPage } from './selectors';
|
|
15
16
|
export function useExecutionScope({ clearOutputsOnExecute = false, } = {}) {
|
|
16
17
|
var _a;
|
|
17
18
|
const context = React.useContext(ExecuteScopeContext);
|
|
@@ -66,7 +67,8 @@ export function useExecutionScope({ clearOutputsOnExecute = false, } = {}) {
|
|
|
66
67
|
*
|
|
67
68
|
*/
|
|
68
69
|
const clearAll = useCallback((pageSlug) => {
|
|
69
|
-
|
|
70
|
+
var _a;
|
|
71
|
+
Object.entries((_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes).forEach(([, { notebook }]) => {
|
|
70
72
|
notebook.clear();
|
|
71
73
|
});
|
|
72
74
|
}, [state]);
|
|
@@ -74,7 +76,8 @@ export function useExecutionScope({ clearOutputsOnExecute = false, } = {}) {
|
|
|
74
76
|
* resetAll resets all cells in all notebooks for a given rendering
|
|
75
77
|
*/
|
|
76
78
|
const resetAll = useCallback((pageSlug) => {
|
|
77
|
-
|
|
79
|
+
var _a;
|
|
80
|
+
Object.entries((_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes).forEach(([notebookSlug, { notebook, session }]) => {
|
|
78
81
|
busy.setNotebook(pageSlug, notebookSlug, notebook.cells.map((c) => c.id), 'reset');
|
|
79
82
|
setTimeout(() => {
|
|
80
83
|
var _a;
|
|
@@ -99,7 +102,7 @@ export function useNotebookExecution(id, clearOutputsOnExecute = false) {
|
|
|
99
102
|
const { config } = useThebeConfig();
|
|
100
103
|
const busy = useBusyScope();
|
|
101
104
|
if (context === undefined) {
|
|
102
|
-
throw new Error('
|
|
105
|
+
throw new Error('useNotebookExecution must be used within a ExecuteScopeProvider');
|
|
103
106
|
}
|
|
104
107
|
const { state, dispatch, idkmap } = context;
|
|
105
108
|
const target = (_a = idkmap[id]) !== null && _a !== void 0 ? _a : {};
|
|
@@ -117,16 +120,12 @@ export function useNotebookExecution(id, clearOutputsOnExecute = false) {
|
|
|
117
120
|
let cell;
|
|
118
121
|
let notebook;
|
|
119
122
|
if (target && state.pages[pageSlug]) {
|
|
120
|
-
notebook = state
|
|
121
|
-
if (
|
|
122
|
-
|
|
123
|
-
cell = notebook === null || notebook === void 0 ? void 0 : notebook.getCellById(cellId);
|
|
124
|
-
if (!cell)
|
|
125
|
-
console.error('no cell found', { pageSlug, notebookSlug, cellId });
|
|
123
|
+
notebook = selectNotebookForPage(state, pageSlug, notebookSlug);
|
|
124
|
+
if (notebook)
|
|
125
|
+
cell = notebook === null || notebook === void 0 ? void 0 : notebook.getCellById(cellId);
|
|
126
126
|
}
|
|
127
127
|
const execute = () => {
|
|
128
|
-
|
|
129
|
-
const nb = (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug]) === null || _b === void 0 ? void 0 : _b.notebook;
|
|
128
|
+
const nb = selectNotebookForPage(state, pageSlug, notebookSlug);
|
|
130
129
|
// set busy
|
|
131
130
|
busy.setNotebook(pageSlug, notebookSlug, nb.cells.map((c) => c.id), 'execute');
|
|
132
131
|
if (clearOutputsOnExecute)
|
|
@@ -153,21 +152,19 @@ export function useNotebookExecution(id, clearOutputsOnExecute = false) {
|
|
|
153
152
|
*
|
|
154
153
|
*/
|
|
155
154
|
const clear = useCallback(() => {
|
|
156
|
-
|
|
157
|
-
const nb = (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug]) === null || _b === void 0 ? void 0 : _b.notebook;
|
|
155
|
+
const nb = selectNotebookForPage(state, pageSlug, notebookSlug);
|
|
158
156
|
nb.clear();
|
|
159
157
|
}, [state]);
|
|
160
158
|
/**
|
|
161
159
|
* resetAll resets all cells in all notebooks for a given rendering
|
|
162
160
|
*/
|
|
163
161
|
const reset = useCallback(() => {
|
|
164
|
-
|
|
165
|
-
const { notebook: nb, session } = (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug]) !== null && _b !== void 0 ? _b : {};
|
|
162
|
+
const nb = selectNotebookForPage(state, pageSlug, notebookSlug);
|
|
166
163
|
busy.setNotebook(pageSlug, notebookSlug, nb.cells.map((c) => c.id), 'reset');
|
|
167
164
|
setTimeout(() => {
|
|
168
|
-
var _a;
|
|
165
|
+
var _a, _b;
|
|
169
166
|
nb.reset();
|
|
170
|
-
(_a = session === null ||
|
|
167
|
+
(_b = (_a = nb.session) === null || _a === void 0 ? void 0 : _a.kernel) === null || _b === void 0 ? void 0 : _b.restart().finally(() => {
|
|
171
168
|
busy.clearNotebook(pageSlug, notebookSlug, 'reset');
|
|
172
169
|
});
|
|
173
170
|
}, 300);
|
|
@@ -195,7 +192,7 @@ export function useCellExecution(id) {
|
|
|
195
192
|
const busy = useBusyScope();
|
|
196
193
|
const context = React.useContext(ExecuteScopeContext);
|
|
197
194
|
if (context === undefined) {
|
|
198
|
-
throw new Error('
|
|
195
|
+
throw new Error('useCellExecution must be used within a ExecuteScopeProvider');
|
|
199
196
|
}
|
|
200
197
|
const { state, idkmap } = context;
|
|
201
198
|
const target = (_a = idkmap[id]) !== null && _a !== void 0 ? _a : {};
|
|
@@ -203,12 +200,9 @@ export function useCellExecution(id) {
|
|
|
203
200
|
let cell;
|
|
204
201
|
let notebook;
|
|
205
202
|
if (target && state.pages[pageSlug]) {
|
|
206
|
-
notebook = state
|
|
207
|
-
if (
|
|
208
|
-
|
|
209
|
-
cell = notebook === null || notebook === void 0 ? void 0 : notebook.getCellById(cellId);
|
|
210
|
-
if (!cell)
|
|
211
|
-
console.error('no cell found', { pageSlug, notebookSlug, cellId });
|
|
203
|
+
notebook = selectNotebookForPage(state, pageSlug, notebookSlug);
|
|
204
|
+
if (notebook)
|
|
205
|
+
cell = notebook === null || notebook === void 0 ? void 0 : notebook.getCellById(cellId);
|
|
212
206
|
}
|
|
213
207
|
const ready = (_b = context.state.pages[context.slug]) === null || _b === void 0 ? void 0 : _b.ready;
|
|
214
208
|
const kind = (_d = (_c = context.state.pages[context.slug]) === null || _c === void 0 ? void 0 : _c.kind) !== null && _d !== void 0 ? _d : SourceFileKind.Article;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../../../src/execute/leaf.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../../../src/execute/leaf.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAW3D,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,GAAG,EACH,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,kDAkBA;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,KAAK,EACL,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,QA8CA;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,QAoEA;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,QA4BA"}
|
package/dist/esm/execute/leaf.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useEffect, useRef } from 'react';
|
|
3
3
|
import { useThebeLoader, useThebeConfig, useThebeServer } from 'thebe-react';
|
|
4
4
|
import { notebookFromMdast } from './utils';
|
|
5
|
-
import { selectAreAllNotebookScopesBuilt, selectAreAllSessionsStarted } from './selectors';
|
|
5
|
+
import { selectAreAllNotebookScopesBuilt, selectAreAllSessionsStarted, selectNotebookForPage, } from './selectors';
|
|
6
6
|
import { useFetchMdast } from 'myst-to-react';
|
|
7
7
|
export function MdastFetcher({ slug, url, dispatch, }) {
|
|
8
8
|
const { data, error } = useFetchMdast({ remote: true, dataUrl: `${url}.json` });
|
|
@@ -79,8 +79,7 @@ export function SessionStarter({ pageSlug, notebookSlug, state, dispatch, }) {
|
|
|
79
79
|
console.debug(`reconnected to session for ${pageSlug}/${notebookSlug}`, sesh);
|
|
80
80
|
console.debug('restarting session', sesh);
|
|
81
81
|
(_a = sesh.kernel) === null || _a === void 0 ? void 0 : _a.restart().then(() => {
|
|
82
|
-
|
|
83
|
-
const notebook = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug].notebook;
|
|
82
|
+
const notebook = selectNotebookForPage(state, pageSlug, notebookSlug);
|
|
84
83
|
notebook.attachSession(sesh);
|
|
85
84
|
dispatch({ type: 'ADD_SESSION', payload: { pageSlug, notebookSlug, session: sesh } });
|
|
86
85
|
});
|
|
@@ -90,7 +89,6 @@ export function SessionStarter({ pageSlug, notebookSlug, state, dispatch, }) {
|
|
|
90
89
|
server
|
|
91
90
|
.startNewSession(scope.rendermime, Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.kernels), { name: `${pageSlug}-${notebookSlug}.ipynb`, path }))
|
|
92
91
|
.then((sesh) => {
|
|
93
|
-
var _a;
|
|
94
92
|
if (sesh == null) {
|
|
95
93
|
server === null || server === void 0 ? void 0 : server.getKernelSpecs().then((specs) => {
|
|
96
94
|
console.error(`Could not start session for ${pageSlug} ${notebookSlug}`);
|
|
@@ -99,7 +97,7 @@ export function SessionStarter({ pageSlug, notebookSlug, state, dispatch, }) {
|
|
|
99
97
|
return;
|
|
100
98
|
}
|
|
101
99
|
console.debug(`session started for ${pageSlug}/${notebookSlug}`, sesh);
|
|
102
|
-
const notebook = (
|
|
100
|
+
const notebook = selectNotebookForPage(state, pageSlug, notebookSlug);
|
|
103
101
|
notebook.attachSession(sesh);
|
|
104
102
|
dispatch({ type: 'ADD_SESSION', payload: { pageSlug, notebookSlug, session: sesh } });
|
|
105
103
|
});
|
|
@@ -12,6 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import { SourceFileKind } from 'myst-common';
|
|
13
13
|
import { isAddMdastPayload, isAddNotebookPayload, isAddSessionPayload, isBuildStatusPayload, isNavigatePayload, isSlugPayload, } from './actions';
|
|
14
14
|
export function reducer(state, action) {
|
|
15
|
+
var _a;
|
|
15
16
|
switch (action.type) {
|
|
16
17
|
case 'NAVIGATE': {
|
|
17
18
|
if (!isNavigatePayload(action.payload)) {
|
|
@@ -76,7 +77,7 @@ export function reducer(state, action) {
|
|
|
76
77
|
if (!state.builds[slug])
|
|
77
78
|
return state;
|
|
78
79
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
79
|
-
const
|
|
80
|
+
const _b = state.builds, _c = slug, _ = _b[_c], builds = __rest(_b, [typeof _c === "symbol" ? _c : _c + ""]);
|
|
80
81
|
return Object.assign(Object.assign({}, state), { builds });
|
|
81
82
|
}
|
|
82
83
|
case 'SET_RENDERING_READY': {
|
|
@@ -88,7 +89,7 @@ export function reducer(state, action) {
|
|
|
88
89
|
if (state.pages[slug].ready)
|
|
89
90
|
return state;
|
|
90
91
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
91
|
-
const
|
|
92
|
+
const _d = state.builds, _e = slug, _ = _d[_e], builds = __rest(_d, [typeof _e === "symbol" ? _e : _e + ""]);
|
|
92
93
|
const newState = Object.assign(Object.assign({}, state), { builds, pages: Object.assign(Object.assign({}, state.pages), { [slug]: Object.assign(Object.assign({}, state.pages[slug]), { ready: true }) }) });
|
|
93
94
|
return newState;
|
|
94
95
|
}
|
|
@@ -121,7 +122,7 @@ export function reducer(state, action) {
|
|
|
121
122
|
console.error(state, action.payload);
|
|
122
123
|
throw new Error('Trying to add session when there is no rendering state');
|
|
123
124
|
}
|
|
124
|
-
if (state.pages[pageSlug].scopes[notebookSlug].session) {
|
|
125
|
+
if ((_a = state.pages[pageSlug].scopes[notebookSlug]) === null || _a === void 0 ? void 0 : _a.session) {
|
|
125
126
|
console.warn('Trying to add session scope when rendering already has one', action.payload);
|
|
126
127
|
return state;
|
|
127
128
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { BuildStatus, ExecuteScopeState } from './types';
|
|
2
|
+
export declare function selectScopeForPage(state: ExecuteScopeState, pageSlug: string): {
|
|
3
|
+
[notebookSlug: string]: import("./types").ExecutionScope;
|
|
4
|
+
};
|
|
5
|
+
export declare function selectNotebookForPage(state: ExecuteScopeState, pageSlug: string, notebookSlug: string): import("thebe-core/dist/types/notebook").default;
|
|
2
6
|
export declare function selectIsComputable(state: ExecuteScopeState, slug: string): boolean;
|
|
3
7
|
export declare function selectAreExecutionScopesReady(state: ExecuteScopeState, slug: string): boolean;
|
|
4
8
|
export declare function selectAreExecutionScopesBuilding(state: ExecuteScopeState, slug: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/execute/selectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAExE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEtF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,yBAEhF;AAQD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB;UAKpD,MAAM;SACP,MAAM;IAclB;AAsBD,eAAO,MAAM,2BAA2B,UAlBvB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAkBS,CAAC;AACzF,eAAO,MAAM,qBAAqB,UAnBjB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAmBC,CAAC;AAEjF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAGrF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAIjF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,YAGrB"}
|
|
1
|
+
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/execute/selectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM;;EAE5E;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,oDAGrB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAExE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEtF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,yBAEhF;AAQD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB;UAKpD,MAAM;SACP,MAAM;IAclB;AAsBD,eAAO,MAAM,2BAA2B,UAlBvB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAkBS,CAAC;AACzF,eAAO,MAAM,qBAAqB,UAnBjB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAmBC,CAAC;AAEjF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAGrF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAIjF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,YAGrB"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { SourceFileKind } from 'myst-common';
|
|
2
|
+
export function selectScopeForPage(state, pageSlug) {
|
|
3
|
+
var _a, _b;
|
|
4
|
+
return (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes) !== null && _b !== void 0 ? _b : {};
|
|
5
|
+
}
|
|
6
|
+
export function selectNotebookForPage(state, pageSlug, notebookSlug) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
return (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes[notebookSlug]) === null || _b === void 0 ? void 0 : _b.notebook;
|
|
9
|
+
}
|
|
2
10
|
export function selectIsComputable(state, slug) {
|
|
3
11
|
var _a, _b;
|
|
4
12
|
return (_b = (_a = state.pages[slug]) === null || _a === void 0 ? void 0 : _a.computable) !== null && _b !== void 0 ? _b : false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/embed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAwD/D,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,2CAajE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/execute/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAA0C,MAAM,YAAY,CAAC;AAGrF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/execute/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAA0C,MAAM,YAAY,CAAC;AAGrF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,wBAAgB,iBAAiB,CAAC,EAChC,qBAA6B,GAC9B,GAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO;;kBAUR,MAAM;yBAsD1B,MAAM;yBAYN,MAAM;oBAxDI,MAAM;;;;;EAgF9B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,qBAAqB,UAAQ;;;;;;;;;;;;;;;EA2G9E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO;;;;;;;;;;EA+D3C;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO;;;;EAc/C;AAED,wBAAgB,iBAAiB,YAOhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../../../src/execute/leaf.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../../../src/execute/leaf.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAW3D,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,GAAG,EACH,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,kDAkBA;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,KAAK,EACL,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,QA8CA;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,QAoEA;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC9C,QA4BA"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { BuildStatus, ExecuteScopeState } from './types';
|
|
2
|
+
export declare function selectScopeForPage(state: ExecuteScopeState, pageSlug: string): {
|
|
3
|
+
[notebookSlug: string]: import("./types").ExecutionScope;
|
|
4
|
+
};
|
|
5
|
+
export declare function selectNotebookForPage(state: ExecuteScopeState, pageSlug: string, notebookSlug: string): import("thebe-core/dist/types/notebook").default;
|
|
2
6
|
export declare function selectIsComputable(state: ExecuteScopeState, slug: string): boolean;
|
|
3
7
|
export declare function selectAreExecutionScopesReady(state: ExecuteScopeState, slug: string): boolean;
|
|
4
8
|
export declare function selectAreExecutionScopesBuilding(state: ExecuteScopeState, slug: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/execute/selectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAExE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEtF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,yBAEhF;AAQD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB;UAKpD,MAAM;SACP,MAAM;IAclB;AAsBD,eAAO,MAAM,2BAA2B,UAlBvB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAkBS,CAAC;AACzF,eAAO,MAAM,qBAAqB,UAnBjB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAmBC,CAAC;AAEjF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAGrF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAIjF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,YAGrB"}
|
|
1
|
+
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/execute/selectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM;;EAE5E;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,oDAGrB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAExE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEtF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,yBAEhF;AAQD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB;UAKpD,MAAM;SACP,MAAM;IAclB;AAsBD,eAAO,MAAM,2BAA2B,UAlBvB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAkBS,CAAC;AACzF,eAAO,MAAM,qBAAqB,UAnBjB,iBAAiB,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAmBC,CAAC;AAEjF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAEnF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAGrF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAIjF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,YAGrB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@myst-theme/jupyter",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@headlessui/react": "^1.7.15",
|
|
25
25
|
"@heroicons/react": "^2.0.18",
|
|
26
|
-
"@myst-theme/providers": "^0.3.
|
|
26
|
+
"@myst-theme/providers": "^0.3.7",
|
|
27
27
|
"ansi-to-react": "^6.1.6",
|
|
28
28
|
"buffer": "^6.0.3",
|
|
29
29
|
"classnames": "^2.3.2",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"myst-config": "^1.0.0",
|
|
32
32
|
"myst-frontmatter": "^1.0.0",
|
|
33
33
|
"myst-spec": "^0.0.4",
|
|
34
|
-
"myst-to-react": "^0.3.
|
|
34
|
+
"myst-to-react": "^0.3.7",
|
|
35
35
|
"nanoid": "^4.0.2",
|
|
36
36
|
"nbtx": "^0.2.3",
|
|
37
37
|
"react-syntax-highlighter": "^15.5.0",
|