@myst-theme/jupyter 0.3.8 → 0.4.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 (110) hide show
  1. package/dist/cjs/ErrorTray.d.ts +4 -4
  2. package/dist/cjs/ErrorTray.d.ts.map +1 -1
  3. package/dist/cjs/ErrorTray.js +11 -3
  4. package/dist/cjs/decoration.d.ts +11 -0
  5. package/dist/cjs/decoration.d.ts.map +1 -0
  6. package/dist/cjs/decoration.js +39 -0
  7. package/dist/cjs/embed.d.ts +3 -2
  8. package/dist/cjs/embed.d.ts.map +1 -1
  9. package/dist/cjs/embed.js +8 -22
  10. package/dist/cjs/execute/actions.d.ts +1 -1
  11. package/dist/cjs/execute/actions.d.ts.map +1 -1
  12. package/dist/cjs/execute/busy.d.ts +24 -2
  13. package/dist/cjs/execute/busy.d.ts.map +1 -1
  14. package/dist/cjs/execute/busy.js +86 -9
  15. package/dist/cjs/execute/hooks.d.ts +2 -2
  16. package/dist/cjs/execute/hooks.d.ts.map +1 -1
  17. package/dist/cjs/execute/hooks.js +14 -6
  18. package/dist/cjs/execute/provider.d.ts +2 -2
  19. package/dist/cjs/execute/provider.d.ts.map +1 -1
  20. package/dist/cjs/execute/provider.js +4 -4
  21. package/dist/cjs/execute/reducer.js +2 -2
  22. package/dist/cjs/execute/selectors.d.ts.map +1 -1
  23. package/dist/cjs/execute/selectors.js +8 -8
  24. package/dist/cjs/execute/types.d.ts +1 -1
  25. package/dist/cjs/execute/types.d.ts.map +1 -1
  26. package/dist/cjs/execute/utils.d.ts.map +1 -1
  27. package/dist/cjs/execute/utils.js +8 -7
  28. package/dist/cjs/figure.d.ts +5 -0
  29. package/dist/cjs/figure.d.ts.map +1 -0
  30. package/dist/cjs/figure.js +20 -0
  31. package/dist/cjs/index.d.ts +2 -0
  32. package/dist/cjs/index.d.ts.map +1 -1
  33. package/dist/cjs/index.js +2 -0
  34. package/dist/cjs/jupyter.d.ts.map +1 -1
  35. package/dist/cjs/jupyter.js +20 -6
  36. package/dist/cjs/output.d.ts +9 -1
  37. package/dist/cjs/output.d.ts.map +1 -1
  38. package/dist/cjs/output.js +17 -9
  39. package/dist/cjs/providers.d.ts +1 -1
  40. package/dist/cjs/providers.d.ts.map +1 -1
  41. package/dist/cjs/utils.js +2 -2
  42. package/dist/esm/ErrorTray.d.ts +4 -4
  43. package/dist/esm/ErrorTray.d.ts.map +1 -1
  44. package/dist/esm/ErrorTray.js +11 -3
  45. package/dist/esm/decoration.d.ts +11 -0
  46. package/dist/esm/decoration.d.ts.map +1 -0
  47. package/dist/esm/decoration.js +31 -0
  48. package/dist/esm/embed.d.ts +3 -2
  49. package/dist/esm/embed.d.ts.map +1 -1
  50. package/dist/esm/embed.js +9 -23
  51. package/dist/esm/execute/actions.d.ts +1 -1
  52. package/dist/esm/execute/actions.d.ts.map +1 -1
  53. package/dist/esm/execute/busy.d.ts +24 -2
  54. package/dist/esm/execute/busy.d.ts.map +1 -1
  55. package/dist/esm/execute/busy.js +84 -8
  56. package/dist/esm/execute/hooks.d.ts +2 -2
  57. package/dist/esm/execute/hooks.d.ts.map +1 -1
  58. package/dist/esm/execute/hooks.js +13 -5
  59. package/dist/esm/execute/provider.d.ts +2 -2
  60. package/dist/esm/execute/provider.d.ts.map +1 -1
  61. package/dist/esm/execute/provider.js +2 -2
  62. package/dist/esm/execute/reducer.js +1 -1
  63. package/dist/esm/execute/selectors.d.ts.map +1 -1
  64. package/dist/esm/execute/selectors.js +7 -7
  65. package/dist/esm/execute/types.d.ts +1 -1
  66. package/dist/esm/execute/types.d.ts.map +1 -1
  67. package/dist/esm/execute/utils.d.ts.map +1 -1
  68. package/dist/esm/execute/utils.js +8 -7
  69. package/dist/esm/figure.d.ts +5 -0
  70. package/dist/esm/figure.d.ts.map +1 -0
  71. package/dist/esm/figure.js +16 -0
  72. package/dist/esm/index.d.ts +2 -0
  73. package/dist/esm/index.d.ts.map +1 -1
  74. package/dist/esm/index.js +2 -0
  75. package/dist/esm/jupyter.d.ts.map +1 -1
  76. package/dist/esm/jupyter.js +16 -5
  77. package/dist/esm/output.d.ts +9 -1
  78. package/dist/esm/output.d.ts.map +1 -1
  79. package/dist/esm/output.js +15 -8
  80. package/dist/esm/providers.d.ts +1 -1
  81. package/dist/esm/providers.d.ts.map +1 -1
  82. package/dist/esm/utils.js +2 -2
  83. package/dist/types/ErrorTray.d.ts +4 -4
  84. package/dist/types/ErrorTray.d.ts.map +1 -1
  85. package/dist/types/decoration.d.ts +11 -0
  86. package/dist/types/decoration.d.ts.map +1 -0
  87. package/dist/types/embed.d.ts +3 -2
  88. package/dist/types/embed.d.ts.map +1 -1
  89. package/dist/types/execute/actions.d.ts +1 -1
  90. package/dist/types/execute/actions.d.ts.map +1 -1
  91. package/dist/types/execute/busy.d.ts +24 -2
  92. package/dist/types/execute/busy.d.ts.map +1 -1
  93. package/dist/types/execute/hooks.d.ts +2 -2
  94. package/dist/types/execute/hooks.d.ts.map +1 -1
  95. package/dist/types/execute/provider.d.ts +2 -2
  96. package/dist/types/execute/provider.d.ts.map +1 -1
  97. package/dist/types/execute/selectors.d.ts.map +1 -1
  98. package/dist/types/execute/types.d.ts +1 -1
  99. package/dist/types/execute/types.d.ts.map +1 -1
  100. package/dist/types/execute/utils.d.ts.map +1 -1
  101. package/dist/types/figure.d.ts +5 -0
  102. package/dist/types/figure.d.ts.map +1 -0
  103. package/dist/types/index.d.ts +2 -0
  104. package/dist/types/index.d.ts.map +1 -1
  105. package/dist/types/jupyter.d.ts.map +1 -1
  106. package/dist/types/output.d.ts +9 -1
  107. package/dist/types/output.d.ts.map +1 -1
  108. package/dist/types/providers.d.ts +1 -1
  109. package/dist/types/providers.d.ts.map +1 -1
  110. package/package.json +11 -9
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  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
- const myst_common_1 = require("myst-common");
4
+ const myst_spec_ext_1 = require("myst-spec-ext");
5
5
  function selectScopeForPage(state, pageSlug) {
6
6
  var _a, _b;
7
7
  return (_b = (_a = state.pages[pageSlug]) === null || _a === void 0 ? void 0 : _a.scopes) !== null && _b !== void 0 ? _b : {};
@@ -43,11 +43,11 @@ function selectDependenciesToFetch(state) {
43
43
  .reduce((targets, [slug]) => [
44
44
  ...targets,
45
45
  ...state.pages[slug].dependencies
46
- .filter((d) => { var _a; return !state.mdast[(_a = d.slug) !== null && _a !== void 0 ? _a : d.url]; })
46
+ .filter((d) => { var _a; return !state.mdast[((_a = d.slug) !== null && _a !== void 0 ? _a : d.url)]; })
47
47
  .map((d) => {
48
48
  var _a;
49
49
  return ({
50
- slug: (_a = d.slug) !== null && _a !== void 0 ? _a : d.url,
50
+ slug: ((_a = d.slug) !== null && _a !== void 0 ? _a : d.url),
51
51
  url: d.url,
52
52
  });
53
53
  }),
@@ -61,13 +61,13 @@ function makeSelectScopeEventStatus(statusName) {
61
61
  .filter(([, { status }]) => status === statusName)
62
62
  .reduce((all, [slug]) => {
63
63
  const targets = [];
64
- if (state.pages[slug].kind === myst_common_1.SourceFileKind.Notebook)
64
+ if (state.pages[slug].kind === myst_spec_ext_1.SourceFileKind.Notebook)
65
65
  targets.push({ pageSlug: slug, notebookSlug: slug });
66
66
  targets.push(...state.pages[slug].dependencies.map((d) => {
67
67
  var _a;
68
68
  return ({
69
69
  pageSlug: slug,
70
- notebookSlug: (_a = d.slug) !== null && _a !== void 0 ? _a : d.url,
70
+ notebookSlug: ((_a = d.slug) !== null && _a !== void 0 ? _a : d.url),
71
71
  });
72
72
  }));
73
73
  return [...all, ...targets];
@@ -78,17 +78,17 @@ exports.selectScopeNotebooksToBuild = makeSelectScopeEventStatus('build-notebook
78
78
  exports.selectSessionsToStart = makeSelectScopeEventStatus('start-session');
79
79
  function selectAreAllDependenciesReady(state, slug) {
80
80
  var _a;
81
- return (_a = state.pages[slug]) === null || _a === void 0 ? void 0 : _a.dependencies.every((dep) => { var _a; return !!state.mdast[(_a = dep.slug) !== null && _a !== void 0 ? _a : dep.url]; });
81
+ return (_a = state.pages[slug]) === null || _a === void 0 ? void 0 : _a.dependencies.every((dep) => { var _a; return !!state.mdast[((_a = dep.slug) !== null && _a !== void 0 ? _a : dep.url)]; });
82
82
  }
83
83
  exports.selectAreAllDependenciesReady = selectAreAllDependenciesReady;
84
84
  function selectAreAllNotebookScopesBuilt(state, slug) {
85
85
  const rendering = state.pages[slug];
86
- return rendering === null || rendering === void 0 ? void 0 : rendering.dependencies.every((dep) => { var _a; return !!rendering.scopes[(_a = dep.slug) !== null && _a !== void 0 ? _a : dep.url]; });
86
+ return rendering === null || rendering === void 0 ? void 0 : rendering.dependencies.every((dep) => { var _a; return !!rendering.scopes[((_a = dep.slug) !== null && _a !== void 0 ? _a : dep.url)]; });
87
87
  }
88
88
  exports.selectAreAllNotebookScopesBuilt = selectAreAllNotebookScopesBuilt;
89
89
  function selectAreAllSessionsStarted(state, slug) {
90
90
  const rendering = state.pages[slug];
91
91
  // TODO is this working??
92
- return rendering === null || rendering === void 0 ? void 0 : rendering.dependencies.every((dep) => { var _a, _b; return !!((_b = rendering.scopes[(_a = dep.slug) !== null && _a !== void 0 ? _a : dep.url]) === null || _b === void 0 ? void 0 : _b.session); });
92
+ return rendering === null || rendering === void 0 ? void 0 : rendering.dependencies.every((dep) => { var _a, _b; return !!((_b = rendering.scopes[((_a = dep.slug) !== null && _a !== void 0 ? _a : dep.url)]) === null || _b === void 0 ? void 0 : _b.session); });
93
93
  }
94
94
  exports.selectAreAllSessionsStarted = selectAreAllSessionsStarted;
@@ -1,5 +1,5 @@
1
1
  import type { Root } from 'mdast';
2
- import type { SourceFileKind, Dependency } from 'myst-common';
2
+ import type { SourceFileKind, Dependency } from 'myst-spec-ext';
3
3
  import type { IRenderMimeRegistry, ThebeNotebook, ThebeSession } from 'thebe-core';
4
4
  export type BuildStatus = 'pending' | 'fetching' | 'build-notebooks' | 'wait-for-server' | 'start-session' | 'error';
5
5
  export type IdOrKey = string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/execute/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,UAAU,GACV,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,OAAO,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,IAAI,EAAE,IAAI,CAAC;SACZ,CAAC;KACH,CAAC;IACF,KAAK,EAAE;QACL,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,cAAc,CAAC;YACrB,UAAU,EAAE,OAAO,CAAC;YACpB,YAAY,EAAE,UAAU,EAAE,CAAC;YAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;YAC1B,KAAK,EAAE,OAAO,CAAC;YACf,MAAM,EAAE;gBACN,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;aACxC,CAAC;SACH,CAAC;KACH,CAAC;IACF,MAAM,EAAE;QACN,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,MAAM,EAAE,WAAW,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/execute/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,UAAU,GACV,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,OAAO,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,IAAI,EAAE,IAAI,CAAC;SACZ,CAAC;KACH,CAAC;IACF,KAAK,EAAE;QACL,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,cAAc,CAAC;YACrB,UAAU,EAAE,OAAO,CAAC;YACpB,YAAY,EAAE,UAAU,EAAE,CAAC;YAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;YAC1B,KAAK,EAAE,OAAO,CAAC;YACf,MAAM,EAAE;gBACN,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;aACxC,CAAC;SACH,CAAC;KACH,CAAC;IACF,MAAM,EAAE;QACN,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,MAAM,EAAE,WAAW,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/execute/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,SAAS,CAAC;AAExD;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAE,mBAAmB,oDAoDhC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/execute/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,SAAS,CAAC;AAExD;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAE,mBAAmB,oDAuDhC"}
@@ -40,20 +40,21 @@ function notebookFromMdast(core, config, pageSlug, notebookSlug, mdast, idkmap,
40
40
  notebookSlug,
41
41
  cellId: block.key,
42
42
  };
43
- idkmap[block.key] = target;
44
- idkmap[codeCell.key] = target;
45
- idkmap[output.key] = target;
46
- // include block labels to enable lookup by from embedded blocks
47
- if (block.label)
48
- idkmap[block.label] = target;
43
+ idkmap[block.key] = target; // can reference from block in notebook views
44
+ idkmap[output.id] = target; // can reference from output in article views
45
+ // include identifiers to enable lookup by (normalized) labels
49
46
  if (block.identifier)
50
47
  idkmap[block.identifier] = target;
48
+ if (codeCell.identifier)
49
+ idkmap[codeCell.identifier] = target;
50
+ if (output.identifier)
51
+ idkmap[output.identifier] = target;
51
52
  return new core.ThebeCodeCell(target.cellId, notebook.id, (_a = codeCell.value) !== null && _a !== void 0 ? _a : '', config, (_b = block.data) !== null && _b !== void 0 ? _b : {}, notebook.rendermime);
52
53
  }
53
54
  else {
54
55
  // assume content - concatenate it
55
56
  // TODO inject cell metadata
56
- const cell = new core.ThebeNonExecutableCell(block.key, notebook.id, block.children.reduce((acc, child) => { var _a; return acc + '\n' + ((_a = child.value) !== null && _a !== void 0 ? _a : ''); }, ''), (_c = block.data) !== null && _c !== void 0 ? _c : {}, notebook.rendermime);
57
+ const cell = new core.ThebeMarkdownCell(block.key, notebook.id, block.children.reduce((acc, child) => { var _a; return acc + '\n' + ((_a = child.value) !== null && _a !== void 0 ? _a : ''); }, ''), (_c = block.data) !== null && _c !== void 0 ? _c : {}, notebook.rendermime);
57
58
  return cell;
58
59
  }
59
60
  });
@@ -0,0 +1,5 @@
1
+ import { type GenericNode } from 'myst-common';
2
+ export declare function Figure({ node }: {
3
+ node: GenericNode;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=figure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figure.d.ts","sourceRoot":"","sources":["../../src/figure.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,2CAoBrD"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Figure = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const myst_spec_ext_1 = require("myst-spec-ext");
6
+ const myst_to_react_1 = require("myst-to-react");
7
+ const decoration_1 = require("./decoration");
8
+ function Figure({ node }) {
9
+ var _a, _b, _c, _d, _e, _f;
10
+ const { container: Container } = myst_to_react_1.DEFAULT_RENDERERS;
11
+ const isFromJupyer = ((_a = node.source) === null || _a === void 0 ? void 0 : _a.kind) === myst_spec_ext_1.SourceFileKind.Notebook;
12
+ const output = (_b = node.children) === null || _b === void 0 ? void 0 : _b.find((child) => child.type === 'output');
13
+ if (isFromJupyer && !!output) {
14
+ const placeholder = (_c = node.children) === null || _c === void 0 ? void 0 : _c.find((child) => child.type === 'image' && child.placeholder);
15
+ const others = (_d = node.children) === null || _d === void 0 ? void 0 : _d.filter((child) => !(child.type === 'image' && child.placeholder));
16
+ return ((0, jsx_runtime_1.jsx)(decoration_1.OutputDecoration, { outputId: output.id, placeholder: placeholder, title: (_e = node.source) === null || _e === void 0 ? void 0 : _e.title, url: (_f = node.source) === null || _f === void 0 ? void 0 : _f.url, children: (0, jsx_runtime_1.jsx)(myst_to_react_1.MyST, { ast: others }) }, node.key));
17
+ }
18
+ return (0, jsx_runtime_1.jsx)(Container, { node: node });
19
+ }
20
+ exports.Figure = Figure;
@@ -1,8 +1,10 @@
1
1
  import { Embed } from './embed';
2
2
  import { Output } from './output';
3
+ import { Figure } from './figure';
3
4
  declare const OUTPUT_RENDERERS: {
4
5
  output: typeof Output;
5
6
  embed: typeof Embed;
7
+ container: typeof Figure;
6
8
  };
7
9
  export * from './BinderBadge';
8
10
  export * from './ErrorTray';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,QAAA,MAAM,gBAAgB;;;CAGrB,CAAC;AAEF,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAE3B,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,QAAA,MAAM,gBAAgB;;;;CAIrB,CAAC;AAEF,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAE3B,eAAe,gBAAgB,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -16,9 +16,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  const embed_1 = require("./embed");
18
18
  const output_1 = require("./output");
19
+ const figure_1 = require("./figure");
19
20
  const OUTPUT_RENDERERS = {
20
21
  output: output_1.Output,
21
22
  embed: embed_1.Embed,
23
+ container: figure_1.Figure,
22
24
  };
23
25
  __exportStar(require("./BinderBadge"), exports);
24
26
  __exportStar(require("./ErrorTray"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"jupyter.d.ts","sourceRoot":"","sources":["../../src/jupyter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAmE3C,eAAO,MAAM,cAAc;QACD,MAAM;aAAW,cAAc,EAAE;8CAmD1D,CAAC"}
1
+ {"version":3,"file":"jupyter.d.ts","sourceRoot":"","sources":["../../src/jupyter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAsF3C,eAAO,MAAM,cAAc;QACD,MAAM;aAAW,cAAc,EAAE;8CAwD1D,CAAC"}
@@ -22,6 +22,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  exports.JupyterOutputs = void 0;
27
30
  const jsx_runtime_1 = require("react/jsx-runtime");
@@ -29,17 +32,22 @@ const react_1 = __importStar(require("react"));
29
32
  const hooks_1 = require("./hooks");
30
33
  const nbtx_1 = require("nbtx");
31
34
  const convertImages_1 = require("./convertImages");
32
- const myst_common_1 = require("myst-common");
35
+ const myst_spec_ext_1 = require("myst-spec-ext");
33
36
  const providers_1 = require("@myst-theme/providers");
34
37
  const thebe_react_1 = require("thebe-react");
35
38
  const execute_1 = require("./execute");
39
+ const decoration_1 = require("./decoration");
40
+ const myst_to_react_1 = require("myst-to-react");
41
+ const classnames_1 = __importDefault(require("classnames"));
36
42
  function ActiveOutputRenderer({ id, initialData, core, }) {
43
+ var _a;
37
44
  const exec = (0, execute_1.useCellExecution)(id);
45
+ const placeholder = (0, decoration_1.usePlaceholder)();
38
46
  const ref = (0, react_1.useRef)(null);
39
47
  (0, react_1.useEffect)(() => {
40
48
  var _a, _b, _c;
41
49
  if (!ref.current || !(exec === null || exec === void 0 ? void 0 : exec.cell)) {
42
- console.debug(`Jupyter: No cell ref available for cell ${(_a = exec === null || exec === void 0 ? void 0 : exec.cell) === null || _a === void 0 ? void 0 : _a.id}`);
50
+ console.debug(`Jupyter: No cell ref available for cell ${id}:${(_a = exec === null || exec === void 0 ? void 0 : exec.cell) === null || _a === void 0 ? void 0 : _a.id}`);
43
51
  return;
44
52
  }
45
53
  const verb = exec.cell.isAttachedToDOM ? 'reattaching' : 'attaching';
@@ -50,12 +58,14 @@ function ActiveOutputRenderer({ id, initialData, core, }) {
50
58
  });
51
59
  exec.cell.attachToDOM(ref.current);
52
60
  if (exec.cell.executionCount == null) {
53
- exec.cell.initOutputs((_c = core === null || core === void 0 ? void 0 : core.stripWidgets(initialData)) !== null && _c !== void 0 ? _c : initialData);
61
+ exec.cell.initOutputs((_c = core === null || core === void 0 ? void 0 : core.stripWidgets(initialData, true, placeholder ? () => '' : undefined)) !== null && _c !== void 0 ? _c : initialData);
54
62
  }
55
63
  }, [ref === null || ref === void 0 ? void 0 : ref.current, exec === null || exec === void 0 ? void 0 : exec.cell]);
56
- return (0, jsx_runtime_1.jsx)("div", { ref: ref, "data-thebe-active-ref": "true", className: "relative" });
64
+ const executed = ((_a = exec === null || exec === void 0 ? void 0 : exec.cell) === null || _a === void 0 ? void 0 : _a.executionCount) != null;
65
+ console.debug(`Jupyter: Cell ${id} executed: ${executed}; Show output: ${executed || !placeholder}`);
66
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { ref: ref, "data-thebe-active-ref": "true", className: (0, classnames_1.default)('relative', { 'invisible h-0': !executed && placeholder }) }), placeholder && !executed && (0, jsx_runtime_1.jsx)(myst_to_react_1.MyST, { ast: placeholder })] }));
57
67
  }
58
- function PassiveOutputRenderer({ id, data, core, kind, }) {
68
+ function PassiveOutputRenderer({ id, data, core, }) {
59
69
  const cell = (0, react_1.useRef)(new core.PassiveCellRenderer(id, undefined, undefined));
60
70
  const ref = (0, react_1.useRef)(null);
61
71
  (0, react_1.useEffect)(() => {
@@ -73,6 +83,7 @@ exports.JupyterOutputs = react_1.default.memo(({ id, outputs }) => {
73
83
  const { data, error } = (0, hooks_1.useFetchAnyTruncatedContent)(outputs);
74
84
  const [fullOutputs, setFullOutputs] = (0, react_1.useState)(null);
75
85
  const exec = (0, execute_1.useCellExecution)(id);
86
+ const placeholder = (0, decoration_1.usePlaceholder)();
76
87
  (0, react_1.useEffect)(() => {
77
88
  if (core)
78
89
  return;
@@ -93,5 +104,8 @@ exports.JupyterOutputs = react_1.default.memo(({ id, outputs }) => {
93
104
  if (!inCrossRef && (exec === null || exec === void 0 ? void 0 : exec.ready)) {
94
105
  return ((0, jsx_runtime_1.jsxs)("div", { children: [!fullOutputs && (0, jsx_runtime_1.jsx)("div", { className: "p-2.5", children: "Fetching full output data..." }), core && fullOutputs && ((0, jsx_runtime_1.jsx)(ActiveOutputRenderer, { id: id, initialData: fullOutputs, core: core }, id))] }));
95
106
  }
96
- return ((0, jsx_runtime_1.jsxs)("div", { children: [!fullOutputs && (0, jsx_runtime_1.jsx)("div", { className: "p-2.5", children: "Loading..." }), fullOutputs && core && ((0, jsx_runtime_1.jsx)(PassiveOutputRenderer, { id: id, data: fullOutputs, core: core, kind: myst_common_1.SourceFileKind.Notebook }))] }));
107
+ if (placeholder) {
108
+ return (0, jsx_runtime_1.jsx)(myst_to_react_1.MyST, { ast: placeholder });
109
+ }
110
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [!fullOutputs && (0, jsx_runtime_1.jsx)("div", { className: "p-2.5", children: "Loading..." }), fullOutputs && core && ((0, jsx_runtime_1.jsx)(PassiveOutputRenderer, { id: id, data: fullOutputs, core: core, kind: myst_spec_ext_1.SourceFileKind.Notebook }))] }));
97
111
  });
@@ -3,5 +3,13 @@ import type { MinifiedOutput } from 'nbtx';
3
3
  export declare const DIRECT_OUTPUT_TYPES: Set<string>;
4
4
  export declare const DIRECT_MIME_TYPES: Set<string>;
5
5
  export declare function allOutputsAreSafe(outputs: MinifiedOutput[], directOutputTypes: Set<string>, directMimeTypes: Set<string>): boolean;
6
- export declare function Output(node: GenericNode): import("react/jsx-runtime").JSX.Element;
6
+ export declare function JupyterOutput({ outputId, identifier, data, align, }: {
7
+ outputId: string;
8
+ identifier?: string;
9
+ data: MinifiedOutput[];
10
+ align?: 'left' | 'center' | 'right';
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ export declare function Output({ node }: {
13
+ node: GenericNode;
14
+ }): import("react/jsx-runtime").JSX.Element;
7
15
  //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/output.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,MAAM,CAAC;AAO/D,eAAO,MAAM,mBAAmB,aAA+B,CAAC;AAEhE,eAAO,MAAM,iBAAiB,aAMb,CAAC;AAElB,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EAAE,EACzB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,WAY7B;AA6CD,wBAAgB,MAAM,CAAC,IAAI,EAAE,WAAW,2CAYvC"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/output.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,MAAM,CAAC;AAS/D,eAAO,MAAM,mBAAmB,aAA+B,CAAC;AAEhE,eAAO,MAAM,iBAAiB,aAMb,CAAC;AAElB,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EAAE,EACzB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,WAY7B;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC,2CAqCA;AAED,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,2CASrD"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Output = exports.allOutputsAreSafe = exports.DIRECT_MIME_TYPES = exports.DIRECT_OUTPUT_TYPES = void 0;
6
+ exports.Output = exports.JupyterOutput = exports.allOutputsAreSafe = exports.DIRECT_MIME_TYPES = exports.DIRECT_OUTPUT_TYPES = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const nbtx_1 = require("nbtx");
9
9
  const classnames_1 = __importDefault(require("classnames"));
@@ -11,6 +11,8 @@ const safe_1 = require("./safe");
11
11
  const jupyter_1 = require("./jupyter");
12
12
  const react_1 = require("react");
13
13
  const execute_1 = require("./execute");
14
+ const decoration_1 = require("./decoration");
15
+ const myst_to_react_1 = require("myst-to-react");
14
16
  exports.DIRECT_OUTPUT_TYPES = new Set(['stream', 'error']);
15
17
  exports.DIRECT_MIME_TYPES = new Set([
16
18
  nbtx_1.KnownCellOutputMimeTypes.TextPlain,
@@ -32,25 +34,31 @@ function allOutputsAreSafe(outputs, directOutputTypes, directMimeTypes) {
32
34
  }, true);
33
35
  }
34
36
  exports.allOutputsAreSafe = allOutputsAreSafe;
35
- function JupyterOutput({ nodeKey, nodeType, identifier, data, align, }) {
36
- const { ready } = (0, execute_1.useCellExecution)(nodeKey);
37
+ function JupyterOutput({ outputId, identifier, data, align, }) {
38
+ const { ready } = (0, execute_1.useCellExecution)(outputId);
37
39
  const outputs = data;
38
40
  const allSafe = (0, react_1.useMemo)(() => allOutputsAreSafe(outputs, exports.DIRECT_OUTPUT_TYPES, exports.DIRECT_MIME_TYPES), [outputs]);
41
+ const placeholder = (0, decoration_1.usePlaceholder)();
39
42
  let component;
40
43
  if (allSafe && !ready) {
41
- component = (0, jsx_runtime_1.jsx)(safe_1.SafeOutputs, { keyStub: nodeKey, outputs: outputs });
44
+ if (placeholder && (!outputs || outputs.length === 0)) {
45
+ if (placeholder) {
46
+ return (0, jsx_runtime_1.jsx)(myst_to_react_1.MyST, { ast: placeholder });
47
+ }
48
+ }
49
+ component = (0, jsx_runtime_1.jsx)(safe_1.SafeOutputs, { keyStub: outputId, outputs: outputs });
42
50
  }
43
51
  else {
44
- component = (0, jsx_runtime_1.jsx)(jupyter_1.JupyterOutputs, { id: nodeKey, outputs: outputs });
52
+ component = (0, jsx_runtime_1.jsx)(jupyter_1.JupyterOutputs, { id: outputId, outputs: outputs });
45
53
  }
46
- return ((0, jsx_runtime_1.jsx)("figure", { id: identifier || undefined, "data-mdast-node-type": nodeType, "data-mdast-node-id": nodeKey, className: (0, classnames_1.default)('max-w-full overflow-visible m-0 group not-prose relative', {
54
+ return ((0, jsx_runtime_1.jsx)("figure", { id: identifier || undefined, "data-mdast-node-id": outputId, className: (0, classnames_1.default)('max-w-full overflow-y-visible overflow-x-auto m-0 group not-prose relative', {
47
55
  'text-left': !align || align === 'left',
48
56
  'text-center': align === 'center',
49
57
  'text-right': align === 'right',
50
58
  }), children: component }));
51
59
  }
52
- function Output(node) {
53
- // Note, NodeRenderer's can't have hooks in it directly!
54
- return ((0, jsx_runtime_1.jsx)(JupyterOutput, { nodeKey: node.key, nodeType: node.type, identifier: node.identifier, align: node.align, data: node.data }, node.key));
60
+ exports.JupyterOutput = JupyterOutput;
61
+ function Output({ node }) {
62
+ return ((0, jsx_runtime_1.jsx)(JupyterOutput, { outputId: node.id, identifier: node.identifier, align: node.align, data: node.data }));
55
63
  }
56
64
  exports.Output = Output;
@@ -1,4 +1,4 @@
1
- import type { SourceFileKind } from 'myst-common';
1
+ import type { SourceFileKind } from 'myst-spec-ext';
2
2
  import React from 'react';
3
3
  import type { Root } from 'mdast';
4
4
  export declare function useComputeOptions(): {
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/providers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAIlC,wBAAgB,iBAAiB;;;;;;;;;;EAuBhC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,WAAW,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAA;CAAE,WAGhG;AAED,wBAAgB,6BAA6B,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,iBAAiB,2CAalF;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;CACb,CAAC"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/providers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAIlC,wBAAgB,iBAAiB;;;;;;;;;;EAuBhC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,WAAW,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAA;CAAE,WAGhG;AAED,wBAAgB,6BAA6B,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,iBAAiB,2CAalF;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;CACb,CAAC"}
package/dist/cjs/utils.js CHANGED
@@ -51,7 +51,7 @@ function thebeFrontmatterToOptions(fm, githubBadgeUrl, binderBadgeUrl) {
51
51
  thebeOptions.savedSessionOptions = { enabled: false };
52
52
  }
53
53
  // handle thebe.local.*
54
- // as local OVERIDES other binder and server settings, handle these first
54
+ // as local OVERRIDES other binder and server settings, handle these first
55
55
  // TODO need to expose NODE_ENV somehow via a loader
56
56
  let NODE_ENV = 'development';
57
57
  if (typeof window !== 'undefined') {
@@ -74,7 +74,7 @@ function thebeFrontmatterToOptions(fm, githubBadgeUrl, binderBadgeUrl) {
74
74
  return thebeOptions;
75
75
  // else just fall through & return - TODO return early?
76
76
  }
77
- // handle additional optons
77
+ // handle additional options
78
78
  if (kernelName) {
79
79
  thebeOptions.kernelOptions = {
80
80
  kernelName: kernelName,
@@ -1,5 +1,5 @@
1
- import type { IThebeNotebookError } from 'thebe-react';
2
- export declare function ErrorTray({ errors }: {
3
- errors: IThebeNotebookError[];
4
- }): import("react/jsx-runtime").JSX.Element;
1
+ export declare function ErrorTray({ pageSlug, index }: {
2
+ pageSlug: string;
3
+ index?: string;
4
+ }): import("react/jsx-runtime").JSX.Element | null;
5
5
  //# sourceMappingURL=ErrorTray.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorTray.d.ts","sourceRoot":"","sources":["../../src/ErrorTray.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAgDvD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;CAAE,2CAStE"}
1
+ {"version":3,"file":"ErrorTray.d.ts","sourceRoot":"","sources":["../../src/ErrorTray.tsx"],"names":[],"mappings":"AAmDA,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,kDAkBlF"}
@@ -1,6 +1,7 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
3
  import { useThebeLoader } from 'thebe-react';
4
+ import { useBusyErrors } from './execute/busy';
4
5
  function ErrorDecoration({ children, idx }) {
5
6
  return (_jsxs("div", { className: "relative py-3 mx-2 my-8 border rounded", children: [_jsx("div", { className: "absolute z-10 flex items-center bg-white -top-3 -left-2", children: idx && _jsxs("div", { className: "ml-1 text-sm text-gray-500", children: ["cell #: ", idx] }) }), _jsx("div", { className: "mx-3", children: children })] }));
6
7
  }
@@ -23,8 +24,15 @@ function ErrorTrayMessage({ errors }) {
23
24
  }, [core, errors]);
24
25
  if (!core)
25
26
  return null;
26
- return (_jsx("div", { children: errors.map((error, idx) => (_jsx("div", { className: "min-w-[400px]", children: _jsx(ErrorDecoration, { idx: error.index, children: _jsx("div", { className: "z-100", ref: refs[idx] }, error.id) }) }))) }));
27
+ return (_jsx("div", { children: errors.map((error, idx) => (_jsx("div", { className: "not-prose min-w-[400px]", children: _jsx(ErrorDecoration, { idx: error.index, children: _jsx("div", { className: "z-100", ref: refs[idx] }, error.id) }) }))) }));
27
28
  }
28
- export function ErrorTray({ errors }) {
29
- return (_jsxs("div", { className: "relative px-4 pt-3 mt-8 text-sm text-red-600 border border-red-400 rounded border-1", children: [_jsxs("div", { children: [_jsx("span", { className: "font-bold", children: "Error" }), " - a page refresh may resolve this."] }), _jsx(ErrorTrayMessage, { errors: errors })] }));
29
+ export function ErrorTray({ pageSlug, index }) {
30
+ const { items } = useBusyErrors(pageSlug);
31
+ if (!items || items.length === 0)
32
+ return null;
33
+ if (index && index)
34
+ return null;
35
+ return (_jsx("div", { className: "relative px-4 pt-3 mt-8 text-sm text-red-600 border border-red-400 rounded border-1", children: items.map(({ notebookSlug, errors }) => {
36
+ return (_jsxs("div", { children: [_jsxs("div", { children: [_jsx("span", { className: "font-bold", children: "Error" }), " in notebook ", _jsxs("span", { children: ["\"", notebookSlug, "\""] })] }), _jsx(ErrorTrayMessage, { errors: errors })] }));
37
+ }) }));
30
38
  }
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { GenericNode } from 'myst-common';
3
+ export declare function usePlaceholder(): GenericNode | undefined;
4
+ export declare function OutputDecoration({ outputId, placeholder, children, title, url, }: {
5
+ outputId: string;
6
+ placeholder?: GenericNode;
7
+ children?: React.ReactNode;
8
+ title?: string;
9
+ url?: string;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=decoration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoration.d.ts","sourceRoot":"","sources":["../../src/decoration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAqB/C,wBAAgB,cAAc,4BAG7B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAA0B,EAC1B,GAAG,GACJ,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,2CAyDA"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { SourceFileKind } from 'myst-spec-ext';
4
+ import { useCellExecution } from './execute';
5
+ import { ArticleResetNotebook, ArticleRunNotebook, ArticleStatusBadge, } from './controls/ArticleCellControls';
6
+ import { JupyterIcon } from '@scienceicons/react/24/solid';
7
+ import { useLinkProvider, useBaseurl, withBaseurl } from '@myst-theme/providers';
8
+ const PlaceholderContext = React.createContext({});
9
+ function PlaceholderProvider({ placeholder, children, }) {
10
+ const value = React.useMemo(() => ({ placeholder }), [placeholder]);
11
+ return _jsx(PlaceholderContext.Provider, { value: value, children: children });
12
+ }
13
+ export function usePlaceholder() {
14
+ const context = React.useContext(PlaceholderContext);
15
+ return context.placeholder;
16
+ }
17
+ export function OutputDecoration({ outputId, placeholder, children, title = 'Jupyter Notebook', url, }) {
18
+ const { canCompute, kind } = useCellExecution(outputId);
19
+ const Link = useLinkProvider();
20
+ const baseurl = useBaseurl();
21
+ const showComputeControls = canCompute && kind === SourceFileKind.Article;
22
+ if (showComputeControls) {
23
+ return (_jsxs("div", { className: "mb-4 shadow", children: [_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: outputId }), _jsx(ArticleRunNotebook, { id: outputId }), _jsx(ArticleResetNotebook, { id: outputId })] }) }), _jsx(PlaceholderProvider, { placeholder: placeholder, children: children })] }));
24
+ }
25
+ // light
26
+ if (kind === SourceFileKind.Article) {
27
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-end text-xs", children: [_jsx(JupyterIcon, { className: "inline-block w-3 h-3" }), _jsx("div", { className: "ml-1", children: "Source:" }), url && (_jsx(Link, { to: withBaseurl(url, baseurl), className: "ml-1 no-underline text-normal hover:underline", children: title }))] }), _jsx(PlaceholderProvider, { placeholder: placeholder, children: children })] }));
28
+ }
29
+ // Notebook outputs do not need any decoration
30
+ return _jsx(_Fragment, { children: children });
31
+ }
@@ -1,4 +1,5 @@
1
- /// <reference types="react" />
2
1
  import { type GenericNode } from 'myst-common';
3
- export declare function Embed(node: GenericNode, children: React.ReactNode): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Embed({ node }: {
3
+ node: GenericNode;
4
+ }): import("react/jsx-runtime").JSX.Element;
4
5
  //# sourceMappingURL=embed.d.ts.map
@@ -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;AA2E/D,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,2CAajE"}
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/embed.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C,wBAAgB,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,2CAkBpD"}
package/dist/esm/embed.js CHANGED
@@ -1,25 +1,11 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { SourceFileKind } from 'myst-common';
3
- import { useCellExecution } from './execute';
4
- import { ArticleResetNotebook, ArticleRunNotebook, ArticleStatusBadge, } from './controls/ArticleCellControls';
5
- import { JupyterIcon } from '@scienceicons/react/24/solid';
6
- import { select } from 'unist-util-select';
7
- import { useLinkProvider, useBaseurl, withBaseurl } from '@myst-theme/providers';
8
- function EmbedWithControls({ outputKey, children, title = 'Jupyter Notebook', url, }) {
9
- const { canCompute, kind } = useCellExecution(outputKey);
10
- const Link = useLinkProvider();
11
- const baseurl = useBaseurl();
12
- const showComputeControls = canCompute && kind === SourceFileKind.Article;
13
- if (showComputeControls) {
14
- return (_jsxs("div", { className: "shadow", children: [_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 })] }));
15
- }
16
- // light
17
- return (_jsxs(_Fragment, { children: [children, _jsxs("div", { className: "flex items-center justify-end text-xs", children: [_jsx(JupyterIcon, { className: "inline-block w-3 h-3" }), _jsx("div", { className: "ml-1", children: "Source:" }), url && (_jsx(Link, { to: withBaseurl(url, baseurl), className: "ml-1 no-underline text-normal hover:underline", children: title }))] })] }));
18
- }
19
- export function Embed(node, children) {
20
- var _a, _b;
21
- const output = select('output', node);
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { JupyterOutput } from './output';
3
+ import { OutputDecoration } from './decoration';
4
+ import { MyST } from 'myst-to-react';
5
+ export function Embed({ node }) {
6
+ var _a, _b, _c;
7
+ const output = (_a = node.children) === null || _a === void 0 ? void 0 : _a.find((child) => child.type === 'output');
22
8
  if (!output)
23
- return _jsx(_Fragment, { children: children });
24
- return (_jsx(EmbedWithControls, { outputKey: output.key, title: (_a = node.source) === null || _a === void 0 ? void 0 : _a.title, url: (_b = node.source) === null || _b === void 0 ? void 0 : _b.url, children: children }, node.key));
9
+ return _jsx(MyST, { ast: node.children });
10
+ return (_jsx(OutputDecoration, { outputId: output.id, title: (_b = node.source) === null || _b === void 0 ? void 0 : _b.title, url: (_c = node.source) === null || _c === void 0 ? void 0 : _c.url, children: _jsx(JupyterOutput, { outputId: output.id, identifier: output.identifier, align: node.align, data: node.data }) }, node.key));
25
11
  }
@@ -1,4 +1,4 @@
1
- import type { Dependency, SourceFileKind } from 'myst-common';
1
+ import type { SourceFileKind, Dependency } from 'myst-spec-ext';
2
2
  import type { Root } from 'mdast';
3
3
  import type { BuildStatus, Computable } from './types';
4
4
  import type { IRenderMimeRegistry, ThebeNotebook, ThebeSession } from 'thebe-core';
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/execute/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,eAAe,CAQ9E;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;IACZ,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,WAAW,CAEtE;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,iBAAiB,CAGlF;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,kBAAkB,CAEpF;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,kBAAkB,CAKpF;AAED,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,eAAe,CAG9E;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;CACb;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,kBAAkB,CAQpF;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,iBAAiB,CAOlF;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EACA,UAAU,GACV,eAAe,GACf,cAAc,GACd,aAAa,GACb,WAAW,GACX,cAAc,GACd,aAAa,GACb,qBAAqB,GACrB,qBAAqB,CAAC;IAC1B,OAAO,EACH,eAAe,GACf,WAAW,GACX,iBAAiB,GACjB,kBAAkB,GAClB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,CAAC;CACvB"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/execute/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,eAAe,CAQ9E;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;IACZ,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,WAAW,CAEtE;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,iBAAiB,CAGlF;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,kBAAkB,CAEpF;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,kBAAkB,CAKpF;AAED,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,eAAe,CAG9E;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,CAAC;CACb;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,kBAAkB,CAQpF;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,iBAAiB,CAOlF;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EACA,UAAU,GACV,eAAe,GACf,cAAc,GACd,aAAa,GACb,WAAW,GACX,cAAc,GACd,aAAa,GACb,qBAAqB,GACrB,qBAAqB,CAAC;IAC1B,OAAO,EACH,eAAe,GACf,WAAW,GACX,iBAAiB,GACjB,kBAAkB,GAClB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,CAAC;CACvB"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { IThebeNotebookError } from 'thebe-react';
2
3
  export type BusyKind = 'execute' | 'reset';
3
4
  export interface BusyScopeState {
4
5
  execute: {
@@ -15,6 +16,11 @@ export interface BusyScopeState {
15
16
  };
16
17
  };
17
18
  };
19
+ error: {
20
+ [pageSlug: string]: {
21
+ [notebookSlug: string]: IThebeNotebookError[];
22
+ };
23
+ };
18
24
  }
19
25
  export interface BusyScopeContext {
20
26
  state: BusyScopeState;
@@ -37,9 +43,14 @@ export interface NotebookPayload {
37
43
  cellIds: string[];
38
44
  kind: BusyKind;
39
45
  }
46
+ export interface ErrorPayload {
47
+ pageSlug: string;
48
+ notebookSlug: string;
49
+ errors?: IThebeNotebookError[];
50
+ }
40
51
  type BusyScopeAction = {
41
- type: 'SET_CELL_BUSY' | 'CLEAR_CELL_BUSY' | 'SET_NOTEBOOK_BUSY' | 'CLEAR_NOTEBOOK_BUSY';
42
- payload: SlugPayload | CellPayload | NotebookPayload;
52
+ type: 'SET_CELL_BUSY' | 'CLEAR_CELL_BUSY' | 'SET_NOTEBOOK_BUSY' | 'CLEAR_NOTEBOOK_BUSY' | 'SET_ERROR' | 'CLEAR_ERROR';
53
+ payload: SlugPayload | CellPayload | NotebookPayload | ErrorPayload;
43
54
  };
44
55
  export declare function reducer(state: BusyScopeState, action: BusyScopeAction): BusyScopeState;
45
56
  export declare function BusyScopeProvider({ children }: React.PropsWithChildren): import("react/jsx-runtime").JSX.Element;
@@ -51,6 +62,17 @@ export declare function useBusyScope(): {
51
62
  clearCell: (pageSlug: string, notebookSlug: string, cellId: string, kind: BusyKind) => void;
52
63
  setNotebook: (pageSlug: string, notebookSlug: string, cellIds: string[], kind: BusyKind) => void;
53
64
  clearNotebook: (pageSlug: string, notebookSlug: string, kind: BusyKind) => void;
65
+ setError: (pageSlug: string, notebookSlug: string, errors: IThebeNotebookError[]) => void;
66
+ clearError: (pageSlug: string, notebookSlug: string) => void;
67
+ };
68
+ interface ErrorItem {
69
+ pageSlug: string;
70
+ notebookSlug: string;
71
+ errors: IThebeNotebookError[];
72
+ }
73
+ export declare function useBusyErrors(pageSlug: string): {
74
+ items: ErrorItem[] | undefined;
75
+ clearErrors: () => void;
54
76
  };
55
77
  export declare function selectCellIsBusy(state: BusyScopeState, pageSlug: string, notebookSlug: string, cellId: string, kind: BusyKind): boolean;
56
78
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"busy.d.ts","sourceRoot":"","sources":["../../../src/execute/busy.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QACP,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,CAAC,YAAY,EAAE,MAAM,GAAG;gBACtB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;aAC3B,CAAC;SACH,CAAC;KACH,CAAC;IACF,KAAK,EAAE;QACL,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,CAAC,YAAY,EAAE,MAAM,GAAG;gBACtB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;aAC3B,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;CAC3C;AAYD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAUD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;CAChB;AAWD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAGD,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,eAAe,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;IACxF,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,eAAe,CAAC;CACtD,CAAC;AAEF,wBAAgB,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,cAAc,CAmItF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,iBAAiB,2CAStE;AAED,wBAAgB,YAAY;qBASb,MAAM,gBAAgB,MAAM,UAAU,MAAM,QAAQ,QAAQ;yBAK5D,MAAM,gBAAgB,MAAM,QAAQ,QAAQ;qBAK5C,MAAM,QAAQ,QAAQ;wBAKtB,MAAM,gBAAgB,MAAM,UAAU,MAAM,QAAQ,QAAQ;0BAO5D,MAAM,gBAAgB,MAAM,UAAU,MAAM,QAAQ,QAAQ;4BAM5D,MAAM,gBAAgB,MAAM,WAAW,MAAM,EAAE,QAAQ,QAAQ;8BAM/D,MAAM,gBAAgB,MAAM,QAAQ,QAAQ;EAM1D;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,WAGf;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,QAAQ,WAGf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,WAEvF"}
1
+ {"version":3,"file":"busy.d.ts","sourceRoot":"","sources":["../../../src/execute/busy.tsx"],"names":[],"mappings":"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"}