myst-to-react 0.1.18 → 0.1.19

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 (242) hide show
  1. package/dist/cjs/admonitions.d.ts +32 -0
  2. package/dist/cjs/admonitions.d.ts.map +1 -0
  3. package/dist/cjs/admonitions.js +126 -0
  4. package/dist/cjs/basic.d.ts +62 -0
  5. package/dist/cjs/basic.d.ts.map +1 -0
  6. package/dist/cjs/basic.js +125 -0
  7. package/dist/cjs/card.d.ts +27 -0
  8. package/dist/cjs/card.d.ts.map +1 -0
  9. package/dist/cjs/card.js +64 -0
  10. package/dist/cjs/cite.d.ts +6 -0
  11. package/dist/cjs/cite.d.ts.map +1 -0
  12. package/dist/cjs/cite.js +36 -0
  13. package/dist/cjs/code.d.ts +20 -0
  14. package/dist/cjs/code.d.ts.map +1 -0
  15. package/dist/cjs/code.js +63 -0
  16. package/dist/cjs/components/ClickPopover.d.ts +11 -0
  17. package/dist/cjs/components/ClickPopover.d.ts.map +1 -0
  18. package/dist/cjs/components/ClickPopover.js +18 -0
  19. package/dist/cjs/components/CopyIcon.d.ts +5 -0
  20. package/dist/cjs/components/CopyIcon.d.ts.map +1 -0
  21. package/dist/cjs/components/CopyIcon.js +28 -0
  22. package/dist/cjs/components/HoverPopover.d.ts +9 -0
  23. package/dist/cjs/components/HoverPopover.d.ts.map +1 -0
  24. package/dist/cjs/components/HoverPopover.js +32 -0
  25. package/dist/cjs/components/LinkCard.d.ts +11 -0
  26. package/dist/cjs/components/LinkCard.d.ts.map +1 -0
  27. package/dist/cjs/components/LinkCard.js +15 -0
  28. package/dist/cjs/convertToReact.d.ts +6 -0
  29. package/dist/cjs/convertToReact.d.ts.map +1 -0
  30. package/dist/cjs/convertToReact.js +30 -0
  31. package/dist/cjs/crossReference.d.ts +13 -0
  32. package/dist/cjs/crossReference.d.ts.map +1 -0
  33. package/dist/cjs/crossReference.js +91 -0
  34. package/dist/cjs/dropdown.d.ts +16 -0
  35. package/dist/cjs/dropdown.d.ts.map +1 -0
  36. package/dist/cjs/dropdown.js +27 -0
  37. package/dist/cjs/extensions/chemicalFormula.d.ts +7 -0
  38. package/dist/cjs/extensions/chemicalFormula.d.ts.map +1 -0
  39. package/dist/cjs/extensions/chemicalFormula.js +39 -0
  40. package/dist/cjs/extensions/index.d.ts +4 -0
  41. package/dist/cjs/extensions/index.d.ts.map +1 -0
  42. package/dist/cjs/extensions/index.js +9 -0
  43. package/dist/cjs/extensions/siunits.d.ts +7 -0
  44. package/dist/cjs/extensions/siunits.d.ts.map +1 -0
  45. package/dist/cjs/extensions/siunits.js +12 -0
  46. package/dist/cjs/footnotes.d.ts +11 -0
  47. package/dist/cjs/footnotes.d.ts.map +1 -0
  48. package/dist/cjs/footnotes.js +24 -0
  49. package/dist/cjs/grid.d.ts +11 -0
  50. package/dist/cjs/grid.d.ts.map +1 -0
  51. package/dist/cjs/grid.js +117 -0
  52. package/dist/cjs/heading.d.ts +14 -0
  53. package/dist/cjs/heading.d.ts.map +1 -0
  54. package/dist/cjs/heading.js +40 -0
  55. package/dist/cjs/iframe.d.ts +7 -0
  56. package/dist/cjs/iframe.d.ts.map +1 -0
  57. package/dist/cjs/iframe.js +24 -0
  58. package/dist/cjs/image.d.ts +11 -0
  59. package/dist/cjs/image.d.ts.map +1 -0
  60. package/dist/cjs/image.js +52 -0
  61. package/dist/cjs/index.d.ts +10 -0
  62. package/dist/cjs/index.d.ts.map +1 -0
  63. package/dist/cjs/index.js +46 -0
  64. package/dist/cjs/inlineError.d.ts +8 -0
  65. package/dist/cjs/inlineError.d.ts.map +1 -0
  66. package/dist/cjs/inlineError.js +9 -0
  67. package/dist/cjs/links/github.d.ts +12 -0
  68. package/dist/cjs/links/github.d.ts.map +1 -0
  69. package/dist/cjs/links/github.js +63 -0
  70. package/dist/cjs/links/index.d.ts +14 -0
  71. package/dist/cjs/links/index.d.ts.map +1 -0
  72. package/dist/cjs/links/index.js +68 -0
  73. package/dist/cjs/links/rrid.d.ts +5 -0
  74. package/dist/cjs/links/rrid.d.ts.map +1 -0
  75. package/dist/cjs/links/rrid.js +35 -0
  76. package/dist/cjs/links/wiki.d.ts +8 -0
  77. package/dist/cjs/links/wiki.d.ts.map +1 -0
  78. package/dist/cjs/links/wiki.js +39 -0
  79. package/dist/cjs/math.d.ts +13 -0
  80. package/dist/cjs/math.d.ts.map +1 -0
  81. package/dist/cjs/math.js +29 -0
  82. package/dist/cjs/output/components.d.ts +10 -0
  83. package/dist/cjs/output/components.d.ts.map +1 -0
  84. package/dist/cjs/output/components.js +41 -0
  85. package/dist/cjs/output/error.d.ts +6 -0
  86. package/dist/cjs/output/error.d.ts.map +1 -0
  87. package/dist/cjs/output/error.js +15 -0
  88. package/dist/cjs/output/hooks.d.ts +67 -0
  89. package/dist/cjs/output/hooks.d.ts.map +1 -0
  90. package/dist/cjs/output/hooks.js +85 -0
  91. package/dist/cjs/output/index.d.ts +6 -0
  92. package/dist/cjs/output/index.d.ts.map +1 -0
  93. package/dist/cjs/output/index.js +7 -0
  94. package/dist/cjs/output/jupyter.d.ts +7 -0
  95. package/dist/cjs/output/jupyter.d.ts.map +1 -0
  96. package/dist/cjs/output/jupyter.js +75 -0
  97. package/dist/cjs/output/output.d.ts +7 -0
  98. package/dist/cjs/output/output.d.ts.map +1 -0
  99. package/dist/cjs/output/output.js +66 -0
  100. package/dist/cjs/output/outputBlock.d.ts +10 -0
  101. package/dist/cjs/output/outputBlock.d.ts.map +1 -0
  102. package/dist/cjs/output/outputBlock.js +13 -0
  103. package/dist/cjs/output/safe.d.ts +7 -0
  104. package/dist/cjs/output/safe.d.ts.map +1 -0
  105. package/dist/cjs/output/safe.js +77 -0
  106. package/dist/cjs/output/selectors.d.ts +10 -0
  107. package/dist/cjs/output/selectors.d.ts.map +1 -0
  108. package/dist/cjs/output/selectors.js +10 -0
  109. package/dist/cjs/output/stream.d.ts +6 -0
  110. package/dist/cjs/output/stream.d.ts.map +1 -0
  111. package/dist/cjs/output/stream.js +13 -0
  112. package/dist/cjs/reactive.d.ts +88 -0
  113. package/dist/cjs/reactive.d.ts.map +1 -0
  114. package/dist/cjs/reactive.js +64 -0
  115. package/dist/cjs/tabs.d.ts +12 -0
  116. package/dist/cjs/tabs.d.ts.map +1 -0
  117. package/dist/cjs/tabs.js +38 -0
  118. package/dist/cjs/types.d.ts +7 -0
  119. package/dist/cjs/types.d.ts.map +1 -0
  120. package/dist/cjs/types.js +2 -0
  121. package/dist/types/admonitions.d.ts +32 -0
  122. package/dist/types/admonitions.d.ts.map +1 -0
  123. package/dist/types/basic.d.ts +62 -0
  124. package/dist/types/basic.d.ts.map +1 -0
  125. package/dist/types/card.d.ts +27 -0
  126. package/dist/types/card.d.ts.map +1 -0
  127. package/dist/types/cite.d.ts +6 -0
  128. package/dist/types/cite.d.ts.map +1 -0
  129. package/dist/types/code.d.ts +20 -0
  130. package/dist/types/code.d.ts.map +1 -0
  131. package/dist/types/components/ClickPopover.d.ts +11 -0
  132. package/dist/types/components/ClickPopover.d.ts.map +1 -0
  133. package/dist/types/components/CopyIcon.d.ts +5 -0
  134. package/dist/types/components/CopyIcon.d.ts.map +1 -0
  135. package/dist/types/components/HoverPopover.d.ts +9 -0
  136. package/dist/types/components/HoverPopover.d.ts.map +1 -0
  137. package/dist/types/components/LinkCard.d.ts +11 -0
  138. package/dist/types/components/LinkCard.d.ts.map +1 -0
  139. package/dist/types/convertToReact.d.ts +6 -0
  140. package/dist/types/convertToReact.d.ts.map +1 -0
  141. package/dist/types/crossReference.d.ts +13 -0
  142. package/dist/types/crossReference.d.ts.map +1 -0
  143. package/dist/types/dropdown.d.ts +16 -0
  144. package/dist/types/dropdown.d.ts.map +1 -0
  145. package/dist/types/extensions/chemicalFormula.d.ts +7 -0
  146. package/dist/types/extensions/chemicalFormula.d.ts.map +1 -0
  147. package/dist/types/extensions/index.d.ts +4 -0
  148. package/dist/types/extensions/index.d.ts.map +1 -0
  149. package/dist/types/extensions/siunits.d.ts +7 -0
  150. package/dist/types/extensions/siunits.d.ts.map +1 -0
  151. package/dist/types/footnotes.d.ts +11 -0
  152. package/dist/types/footnotes.d.ts.map +1 -0
  153. package/dist/types/grid.d.ts +11 -0
  154. package/dist/types/grid.d.ts.map +1 -0
  155. package/dist/types/heading.d.ts +14 -0
  156. package/dist/types/heading.d.ts.map +1 -0
  157. package/dist/types/iframe.d.ts +7 -0
  158. package/dist/types/iframe.d.ts.map +1 -0
  159. package/dist/types/image.d.ts +11 -0
  160. package/dist/types/image.d.ts.map +1 -0
  161. package/dist/types/index.d.ts +10 -0
  162. package/dist/types/index.d.ts.map +1 -0
  163. package/dist/types/inlineError.d.ts +8 -0
  164. package/dist/types/inlineError.d.ts.map +1 -0
  165. package/dist/types/links/github.d.ts +12 -0
  166. package/dist/types/links/github.d.ts.map +1 -0
  167. package/dist/types/links/index.d.ts +14 -0
  168. package/dist/types/links/index.d.ts.map +1 -0
  169. package/dist/types/links/rrid.d.ts +5 -0
  170. package/dist/types/links/rrid.d.ts.map +1 -0
  171. package/dist/types/links/wiki.d.ts +8 -0
  172. package/dist/types/links/wiki.d.ts.map +1 -0
  173. package/dist/types/math.d.ts +13 -0
  174. package/dist/types/math.d.ts.map +1 -0
  175. package/dist/types/output/components.d.ts +10 -0
  176. package/dist/types/output/components.d.ts.map +1 -0
  177. package/dist/types/output/error.d.ts +6 -0
  178. package/dist/types/output/error.d.ts.map +1 -0
  179. package/dist/types/output/hooks.d.ts +67 -0
  180. package/dist/types/output/hooks.d.ts.map +1 -0
  181. package/dist/types/output/index.d.ts +6 -0
  182. package/dist/types/output/index.d.ts.map +1 -0
  183. package/dist/types/output/jupyter.d.ts +7 -0
  184. package/dist/types/output/jupyter.d.ts.map +1 -0
  185. package/dist/types/output/output.d.ts +7 -0
  186. package/dist/types/output/output.d.ts.map +1 -0
  187. package/dist/types/output/outputBlock.d.ts +10 -0
  188. package/dist/types/output/outputBlock.d.ts.map +1 -0
  189. package/dist/types/output/safe.d.ts +7 -0
  190. package/dist/types/output/safe.d.ts.map +1 -0
  191. package/dist/types/output/selectors.d.ts +10 -0
  192. package/dist/types/output/selectors.d.ts.map +1 -0
  193. package/dist/types/output/stream.d.ts +6 -0
  194. package/dist/types/output/stream.d.ts.map +1 -0
  195. package/dist/types/reactive.d.ts +88 -0
  196. package/dist/types/reactive.d.ts.map +1 -0
  197. package/dist/types/tabs.d.ts +12 -0
  198. package/dist/types/tabs.d.ts.map +1 -0
  199. package/dist/types/types.d.ts +7 -0
  200. package/dist/types/types.d.ts.map +1 -0
  201. package/package.json +20 -19
  202. package/src/admonitions.tsx +0 -183
  203. package/src/basic.tsx +0 -229
  204. package/src/card.tsx +0 -153
  205. package/src/cite.tsx +0 -43
  206. package/src/code.tsx +0 -119
  207. package/src/components/ClickPopover.tsx +0 -56
  208. package/src/components/CopyIcon.tsx +0 -40
  209. package/src/components/HoverPopover.tsx +0 -60
  210. package/src/components/LinkCard.tsx +0 -42
  211. package/src/convertToReact.ts +0 -33
  212. package/src/crossReference.tsx +0 -139
  213. package/src/dropdown.tsx +0 -69
  214. package/src/extensions/chemicalFormula.tsx +0 -42
  215. package/src/extensions/index.tsx +0 -10
  216. package/src/extensions/siunits.tsx +0 -15
  217. package/src/footnotes.tsx +0 -30
  218. package/src/grid.tsx +0 -127
  219. package/src/heading.tsx +0 -68
  220. package/src/iframe.tsx +0 -42
  221. package/src/image.tsx +0 -97
  222. package/src/index.tsx +0 -65
  223. package/src/inlineError.tsx +0 -15
  224. package/src/links/index.tsx +0 -132
  225. package/src/links/rrid.tsx +0 -81
  226. package/src/links/wiki.tsx +0 -119
  227. package/src/math.tsx +0 -81
  228. package/src/mermaid.tsx +0 -49
  229. package/src/myst.tsx +0 -226
  230. package/src/output/components.tsx +0 -34
  231. package/src/output/error.tsx +0 -20
  232. package/src/output/hooks.ts +0 -127
  233. package/src/output/index.tsx +0 -7
  234. package/src/output/jupyter.tsx +0 -86
  235. package/src/output/output.tsx +0 -79
  236. package/src/output/outputBlock.tsx +0 -21
  237. package/src/output/safe.tsx +0 -84
  238. package/src/output/selectors.ts +0 -15
  239. package/src/output/stream.tsx +0 -18
  240. package/src/reactive.tsx +0 -64
  241. package/src/tabs.tsx +0 -63
  242. package/src/types.ts +0 -6
@@ -0,0 +1,32 @@
1
+ import type * as spec from 'myst-spec';
2
+ import React from 'react';
3
+ import type { NodeRenderer } from './types';
4
+ export declare enum AdmonitionKind {
5
+ admonition = "admonition",
6
+ attention = "attention",
7
+ caution = "caution",
8
+ danger = "danger",
9
+ error = "error",
10
+ important = "important",
11
+ hint = "hint",
12
+ note = "note",
13
+ seealso = "seealso",
14
+ tip = "tip",
15
+ warning = "warning"
16
+ }
17
+ type Color = 'blue' | 'green' | 'yellow' | 'red';
18
+ export declare const AdmonitionTitle: NodeRenderer<spec.AdmonitionTitle>;
19
+ export declare function Admonition({ title, kind, color, dropdown, children, }: {
20
+ title?: React.ReactNode;
21
+ color?: Color;
22
+ kind?: AdmonitionKind;
23
+ children: React.ReactNode;
24
+ dropdown?: boolean;
25
+ }): JSX.Element;
26
+ export declare const AdmonitionRenderer: NodeRenderer<spec.Admonition>;
27
+ declare const ADMONITION_RENDERERS: {
28
+ admonition: NodeRenderer<spec.Admonition>;
29
+ admonitionTitle: NodeRenderer<spec.AdmonitionTitle>;
30
+ };
31
+ export default ADMONITION_RENDERERS;
32
+ //# sourceMappingURL=admonitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admonitions.d.ts","sourceRoot":"","sources":["../../src/admonitions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAC;AACvC,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAoB5C,oBAAY,cAAc;IACxB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAuEjD,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,eAAe,CAE9D,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,eAgDA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAoB5D,CAAC;AAEF,QAAA,MAAM,oBAAoB;;;CAGzB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AdmonitionRenderer = exports.Admonition = exports.AdmonitionTitle = exports.AdmonitionKind = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const outline_1 = require("@heroicons/react/24/outline");
10
+ const solid_1 = require("@heroicons/react/24/solid");
11
+ const classnames_1 = __importDefault(require("classnames"));
12
+ // import { AdmonitionKind } from 'mystjs';
13
+ // TODO: get this from myst-spec?
14
+ var AdmonitionKind;
15
+ (function (AdmonitionKind) {
16
+ AdmonitionKind["admonition"] = "admonition";
17
+ AdmonitionKind["attention"] = "attention";
18
+ AdmonitionKind["caution"] = "caution";
19
+ AdmonitionKind["danger"] = "danger";
20
+ AdmonitionKind["error"] = "error";
21
+ AdmonitionKind["important"] = "important";
22
+ AdmonitionKind["hint"] = "hint";
23
+ AdmonitionKind["note"] = "note";
24
+ AdmonitionKind["seealso"] = "seealso";
25
+ AdmonitionKind["tip"] = "tip";
26
+ AdmonitionKind["warning"] = "warning";
27
+ })(AdmonitionKind = exports.AdmonitionKind || (exports.AdmonitionKind = {}));
28
+ function getClasses(className) {
29
+ var _a;
30
+ const classes = (_a = className === null || className === void 0 ? void 0 : className.split(' ').map((s) => s.trim().toLowerCase()).filter((s) => !!s)) !== null && _a !== void 0 ? _a : [];
31
+ return [...new Set(classes)];
32
+ }
33
+ function getFirstKind({ kind, classes = [], }) {
34
+ if (kind === AdmonitionKind.note || classes.includes('note')) {
35
+ return { kind: AdmonitionKind.note, color: 'blue' };
36
+ }
37
+ if (kind === AdmonitionKind.important || classes.includes('important')) {
38
+ return { kind: AdmonitionKind.important, color: 'blue' };
39
+ }
40
+ if (kind === AdmonitionKind.hint || classes.includes('hint')) {
41
+ return { kind: AdmonitionKind.hint, color: 'green' };
42
+ }
43
+ if (kind === AdmonitionKind.seealso || classes.includes('seealso')) {
44
+ return { kind: AdmonitionKind.seealso, color: 'green' };
45
+ }
46
+ if (kind === AdmonitionKind.tip || classes.includes('tip')) {
47
+ return { kind: AdmonitionKind.tip, color: 'green' };
48
+ }
49
+ if (kind === AdmonitionKind.attention || classes.includes('attention')) {
50
+ return { kind: AdmonitionKind.attention, color: 'yellow' };
51
+ }
52
+ if (kind === AdmonitionKind.warning || classes.includes('warning')) {
53
+ return { kind: AdmonitionKind.warning, color: 'yellow' };
54
+ }
55
+ if (kind === AdmonitionKind.caution || classes.includes('caution')) {
56
+ return { kind: AdmonitionKind.caution, color: 'yellow' };
57
+ }
58
+ if (kind === AdmonitionKind.danger || classes.includes('danger')) {
59
+ return { kind: AdmonitionKind.danger, color: 'red' };
60
+ }
61
+ if (kind === AdmonitionKind.error || classes.includes('error')) {
62
+ return { kind: AdmonitionKind.error, color: 'red' };
63
+ }
64
+ return { kind: AdmonitionKind.note, color: 'blue' };
65
+ }
66
+ const iconClass = 'h-8 w-8 inline-block pl-2 mr-2 -translate-y-[1px]';
67
+ function AdmonitionIcon({ kind }) {
68
+ if (kind === AdmonitionKind.note)
69
+ return (0, jsx_runtime_1.jsx)(outline_1.InformationCircleIcon, { className: iconClass });
70
+ if (kind === AdmonitionKind.caution)
71
+ return (0, jsx_runtime_1.jsx)(outline_1.ExclamationCircleIcon, { className: iconClass });
72
+ if (kind === AdmonitionKind.warning)
73
+ return (0, jsx_runtime_1.jsx)(solid_1.ExclamationTriangleIcon, { className: iconClass });
74
+ if (kind === AdmonitionKind.danger)
75
+ return (0, jsx_runtime_1.jsx)(solid_1.ExclamationCircleIcon, { className: iconClass });
76
+ if (kind === AdmonitionKind.error)
77
+ return (0, jsx_runtime_1.jsx)(solid_1.XCircleIcon, { className: iconClass });
78
+ if (kind === AdmonitionKind.attention)
79
+ return (0, jsx_runtime_1.jsx)(outline_1.MegaphoneIcon, { className: iconClass });
80
+ if (kind === AdmonitionKind.tip)
81
+ return (0, jsx_runtime_1.jsx)(outline_1.PencilSquareIcon, { className: iconClass });
82
+ if (kind === AdmonitionKind.hint)
83
+ return (0, jsx_runtime_1.jsx)(outline_1.LightBulbIcon, { className: iconClass });
84
+ if (kind === AdmonitionKind.important)
85
+ return (0, jsx_runtime_1.jsx)(solid_1.BoltIcon, { className: iconClass });
86
+ if (kind === AdmonitionKind.seealso)
87
+ return (0, jsx_runtime_1.jsx)(outline_1.ArrowRightCircleIcon, { className: iconClass });
88
+ return (0, jsx_runtime_1.jsx)(outline_1.InformationCircleIcon, { className: iconClass });
89
+ }
90
+ const AdmonitionTitle = (node, children) => {
91
+ return children;
92
+ };
93
+ exports.AdmonitionTitle = AdmonitionTitle;
94
+ function Admonition({ title, kind, color, dropdown, children, }) {
95
+ const [open, setOpen] = (0, react_1.useState)(false);
96
+ return ((0, jsx_runtime_1.jsxs)("aside", Object.assign({ className: (0, classnames_1.default)('admonition rounded-md my-4 border-l-4 shadow-md dark:shadow-2xl dark:shadow-neutral-900', {
97
+ 'border-blue-500': !color || color === 'blue',
98
+ 'border-green-600': color === 'green',
99
+ 'border-amber-600': color === 'yellow',
100
+ 'border-red-600': color === 'red',
101
+ }) }, { children: [title && ((0, jsx_runtime_1.jsxs)("p", Object.assign({ className: (0, classnames_1.default)('admonition-header m-0 text-lg font-medium py-1', {
102
+ 'text-blue-600 bg-blue-50 dark:bg-slate-900': !color || color === 'blue',
103
+ 'text-green-600 bg-green-50 dark:bg-slate-900': color === 'green',
104
+ 'text-amber-600 bg-amber-50 dark:bg-slate-900': color === 'yellow',
105
+ 'text-red-600 bg-red-50 dark:bg-slate-900': color === 'red',
106
+ 'cursor-pointer hover:shadow-[inset_0_0_0px_20px_#00000003] dark:hover:shadow-[inset_0_0_0px_20px_#FFFFFF03]': dropdown,
107
+ }), onClick: dropdown ? () => setOpen(!open) : undefined }, { children: [(0, jsx_runtime_1.jsx)(AdmonitionIcon, { kind: kind !== null && kind !== void 0 ? kind : AdmonitionKind.note }), (0, jsx_runtime_1.jsxs)("span", Object.assign({ className: "text-neutral-900 dark:text-white" }, { children: [dropdown && ((0, jsx_runtime_1.jsxs)("span", Object.assign({ className: "block float-right font-thin text-sm text-neutral-700 dark:text-neutral-200" }, { children: [!open && 'Click to show', (0, jsx_runtime_1.jsx)(solid_1.ChevronRightIcon, { className: (0, classnames_1.default)(iconClass, 'transition-transform', {
108
+ 'rotate-90 -translate-y-[5px]': open,
109
+ }) })] }))), title] }))] }))), (!dropdown || open) && ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: "px-4 py-1 bg-gray-50 dark:bg-stone-800" }, { children: children })))] })));
110
+ }
111
+ exports.Admonition = Admonition;
112
+ const AdmonitionRenderer = (node, children) => {
113
+ var _a;
114
+ const [title, ...rest] = children;
115
+ const classes = getClasses(node.class);
116
+ const { kind, color } = getFirstKind({ kind: node.kind, classes });
117
+ const isDropdown = classes.includes('dropdown');
118
+ const useTitle = ((_a = node.children) === null || _a === void 0 ? void 0 : _a[0].type) === 'admonitionTitle';
119
+ return ((0, jsx_runtime_1.jsxs)(Admonition, Object.assign({ title: useTitle ? title : undefined, kind: kind, color: color, dropdown: isDropdown }, { children: [!useTitle && title, rest] }), node.key));
120
+ };
121
+ exports.AdmonitionRenderer = AdmonitionRenderer;
122
+ const ADMONITION_RENDERERS = {
123
+ admonition: exports.AdmonitionRenderer,
124
+ admonitionTitle: exports.AdmonitionTitle,
125
+ };
126
+ exports.default = ADMONITION_RENDERERS;
@@ -0,0 +1,62 @@
1
+ import type * as spec from 'myst-spec';
2
+ import type { NodeRenderer } from './types';
3
+ type TableExts = {
4
+ rowspan?: number;
5
+ colspan?: number;
6
+ };
7
+ type Delete = {
8
+ type: 'delete';
9
+ };
10
+ type Underline = {
11
+ type: 'underline';
12
+ };
13
+ type SmallCaps = {
14
+ type: 'smallcaps';
15
+ };
16
+ type DefinitionList = {
17
+ type: 'definitionList';
18
+ };
19
+ type DefinitionTerm = {
20
+ type: 'definitionTerm';
21
+ };
22
+ type DefinitionDescription = {
23
+ type: 'definitionDescription';
24
+ };
25
+ type CaptionNumber = {
26
+ type: 'captionNumber';
27
+ kind: string;
28
+ identifier: string;
29
+ };
30
+ type BasicNodeRenderers = {
31
+ strong: NodeRenderer<spec.Strong>;
32
+ emphasis: NodeRenderer<spec.Emphasis>;
33
+ link: NodeRenderer<spec.Link>;
34
+ paragraph: NodeRenderer<spec.Paragraph>;
35
+ break: NodeRenderer<spec.Break>;
36
+ inlineMath: NodeRenderer<spec.InlineMath>;
37
+ math: NodeRenderer<spec.Math>;
38
+ list: NodeRenderer<spec.List>;
39
+ listItem: NodeRenderer<spec.ListItem>;
40
+ container: NodeRenderer<spec.Container>;
41
+ caption: NodeRenderer<spec.Caption>;
42
+ blockquote: NodeRenderer<spec.Blockquote>;
43
+ thematicBreak: NodeRenderer<spec.ThematicBreak>;
44
+ subscript: NodeRenderer<spec.Subscript>;
45
+ superscript: NodeRenderer<spec.Superscript>;
46
+ abbreviation: NodeRenderer<spec.Abbreviation>;
47
+ table: NodeRenderer<spec.Table>;
48
+ tableRow: NodeRenderer<spec.TableRow>;
49
+ tableCell: NodeRenderer<spec.TableCell & TableExts>;
50
+ comment: NodeRenderer<spec.Comment>;
51
+ mystComment: NodeRenderer<spec.Comment>;
52
+ captionNumber: NodeRenderer<CaptionNumber>;
53
+ delete: NodeRenderer<Delete>;
54
+ underline: NodeRenderer<Underline>;
55
+ smallcaps: NodeRenderer<SmallCaps>;
56
+ definitionList: NodeRenderer<DefinitionList>;
57
+ definitionTerm: NodeRenderer<DefinitionTerm>;
58
+ definitionDescription: NodeRenderer<DefinitionDescription>;
59
+ };
60
+ declare const BASIC_RENDERERS: BasicNodeRenderers;
61
+ export default BASIC_RENDERERS;
62
+ //# sourceMappingURL=basic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../src/basic.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const heading_1 = require("./heading");
5
+ const BASIC_RENDERERS = {
6
+ delete(node, children) {
7
+ return (0, jsx_runtime_1.jsx)("del", { children: children }, node.key);
8
+ },
9
+ strong(node, children) {
10
+ return (0, jsx_runtime_1.jsx)("strong", { children: children }, node.key);
11
+ },
12
+ emphasis(node, children) {
13
+ return (0, jsx_runtime_1.jsx)("em", { children: children }, node.key);
14
+ },
15
+ underline(node, children) {
16
+ return ((0, jsx_runtime_1.jsx)("span", Object.assign({ style: { textDecoration: 'underline' } }, { children: children }), node.key));
17
+ },
18
+ smallcaps(node, children) {
19
+ return ((0, jsx_runtime_1.jsx)("span", Object.assign({ style: { fontVariant: 'small-caps' } }, { children: children }), node.key));
20
+ },
21
+ link(node, children) {
22
+ return ((0, jsx_runtime_1.jsx)("a", Object.assign({ target: "_blank", href: node.url, rel: "noreferrer" }, { children: children }), node.key));
23
+ },
24
+ paragraph(node, children) {
25
+ return (0, jsx_runtime_1.jsx)("p", { children: children }, node.key);
26
+ },
27
+ break(node) {
28
+ return (0, jsx_runtime_1.jsx)("br", {}, node.key);
29
+ },
30
+ inlineMath(node) {
31
+ return (0, jsx_runtime_1.jsx)("code", { children: node.value }, node.key);
32
+ },
33
+ math(node) {
34
+ return (0, jsx_runtime_1.jsx)("code", { children: node.value }, node.key);
35
+ },
36
+ list(node, children) {
37
+ if (node.ordered) {
38
+ return ((0, jsx_runtime_1.jsx)("ol", Object.assign({ start: node.start || undefined }, { children: children }), node.key));
39
+ }
40
+ return (0, jsx_runtime_1.jsx)("ul", { children: children }, node.key);
41
+ },
42
+ listItem(node, children) {
43
+ return (0, jsx_runtime_1.jsx)("li", { children: children }, node.key);
44
+ },
45
+ container(node, children) {
46
+ return ((0, jsx_runtime_1.jsx)("figure", Object.assign({ id: node.html_id || node.identifier || node.key, className: node.kind }, { children: children }), node.key));
47
+ },
48
+ caption(node, children) {
49
+ return ((0, jsx_runtime_1.jsx)("figcaption", Object.assign({ className: "group" }, { children: children }), node.key));
50
+ },
51
+ blockquote(node, children) {
52
+ return (0, jsx_runtime_1.jsx)("blockquote", { children: children }, node.key);
53
+ },
54
+ thematicBreak(node) {
55
+ return (0, jsx_runtime_1.jsx)("hr", {}, node.key);
56
+ },
57
+ captionNumber(node, children) {
58
+ function backwardsCompatibleLabel(value, kind) {
59
+ var _a, _b;
60
+ const capital = (_a = kind === null || kind === void 0 ? void 0 : kind.slice(0, 1).toUpperCase()) !== null && _a !== void 0 ? _a : 'F';
61
+ const body = (_b = kind === null || kind === void 0 ? void 0 : kind.slice(1)) !== null && _b !== void 0 ? _b : 'igure';
62
+ return `${capital}${body}: ${children}`;
63
+ }
64
+ const label = typeof children === 'string' ? backwardsCompatibleLabel(children, node.kind) : children;
65
+ const id = node.html_id || node.identifier || node.key;
66
+ return ((0, jsx_runtime_1.jsxs)("span", Object.assign({ className: "font-bold mr-1 select-none relative" }, { children: [(0, jsx_runtime_1.jsx)(heading_1.HashLink, { id: id, align: "left", kind: node.kind }), label] }), node.key));
67
+ },
68
+ table(node, children) {
69
+ // TODO: actually render the tbody on the server if it isn't included here.
70
+ return ((0, jsx_runtime_1.jsx)("table", { children: (0, jsx_runtime_1.jsx)("tbody", { children: children }) }, node.key));
71
+ },
72
+ tableRow(node, children) {
73
+ return (0, jsx_runtime_1.jsx)("tr", { children: children }, node.key);
74
+ },
75
+ tableCell(node, children) {
76
+ const ifGreaterThanOne = (num) => (num === 1 ? undefined : num);
77
+ const attrs = {
78
+ key: node.key,
79
+ rowSpan: ifGreaterThanOne(node.rowspan),
80
+ colSpan: ifGreaterThanOne(node.colspan),
81
+ };
82
+ if (node.header)
83
+ return (0, jsx_runtime_1.jsx)("th", Object.assign({}, attrs, { children: children }));
84
+ return (0, jsx_runtime_1.jsx)("td", Object.assign({}, attrs, { children: children }));
85
+ },
86
+ subscript(node, children) {
87
+ return (0, jsx_runtime_1.jsx)("sub", { children: children }, node.key);
88
+ },
89
+ superscript(node, children) {
90
+ return (0, jsx_runtime_1.jsx)("sup", { children: children }, node.key);
91
+ },
92
+ abbreviation(node, children) {
93
+ return ((0, jsx_runtime_1.jsx)("abbr", Object.assign({ title: node.title }, { children: children }), node.key));
94
+ },
95
+ mystComment() {
96
+ return null;
97
+ },
98
+ comment() {
99
+ return null;
100
+ },
101
+ definitionList(node, children) {
102
+ return (0, jsx_runtime_1.jsx)("dl", { children: children }, node.key);
103
+ },
104
+ definitionTerm(node, children) {
105
+ let strongChildren = children;
106
+ if (Array.isArray(children)) {
107
+ const allowedStrongTypes = new Set(['emphasis']);
108
+ strongChildren = children.map((child, i) => {
109
+ if (typeof child === 'string')
110
+ return (0, jsx_runtime_1.jsx)("strong", { children: child }, node.key + i);
111
+ if (allowedStrongTypes.has(child === null || child === void 0 ? void 0 : child.type))
112
+ return (0, jsx_runtime_1.jsx)("strong", { children: child }, node.key + i);
113
+ return child;
114
+ });
115
+ }
116
+ else if (typeof children === 'string') {
117
+ strongChildren = (0, jsx_runtime_1.jsx)("strong", { children: children }, node.key + '0');
118
+ }
119
+ return (0, jsx_runtime_1.jsx)("dt", { children: strongChildren }, node.key);
120
+ },
121
+ definitionDescription(node, children) {
122
+ return (0, jsx_runtime_1.jsx)("dd", { children: children }, node.key);
123
+ },
124
+ };
125
+ exports.default = BASIC_RENDERERS;
@@ -0,0 +1,27 @@
1
+ import type { NodeRenderer } from './types';
2
+ type CardSpec = {
3
+ type: 'card';
4
+ url?: string;
5
+ static?: boolean;
6
+ };
7
+ type CardTitleSpec = {
8
+ type: 'cardTitle';
9
+ };
10
+ type HeaderSpec = {
11
+ type: 'header';
12
+ };
13
+ type FooterSpec = {
14
+ type: 'footer';
15
+ };
16
+ export declare const Header: NodeRenderer<HeaderSpec>;
17
+ export declare const Footer: NodeRenderer<FooterSpec>;
18
+ export declare const CardTitle: NodeRenderer<CardTitleSpec>;
19
+ export declare const CardRenderer: NodeRenderer<CardSpec>;
20
+ declare const CARD_RENDERERS: {
21
+ card: NodeRenderer<CardSpec>;
22
+ cardTitle: NodeRenderer<CardTitleSpec>;
23
+ header: NodeRenderer<HeaderSpec>;
24
+ footer: NodeRenderer<FooterSpec>;
25
+ };
26
+ export default CARD_RENDERERS;
27
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AACF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AACF,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AACF,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,YAAY,CAAC,UAAU,CAS3C,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,YAAY,CAAC,UAAU,CAS3C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,YAAY,CAAC,aAAa,CAMjD,CAAC;AA0FF,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,QAAQ,CAM/C,CAAC;AAEF,QAAA,MAAM,cAAc;;;;;CAKnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CardRenderer = exports.CardTitle = exports.Footer = exports.Header = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const classnames_1 = __importDefault(require("classnames"));
9
+ const providers_1 = require("@myst-theme/providers");
10
+ const Header = (node, children) => {
11
+ return ((0, jsx_runtime_1.jsx)("header", Object.assign({ className: "m-0 py-1 pl-3 bg-gray-50 dark:bg-slate-900 border-b border-gray-100 dark:border-gray-800" }, { children: children }), node.key));
12
+ };
13
+ exports.Header = Header;
14
+ const Footer = (node, children) => {
15
+ return ((0, jsx_runtime_1.jsx)("footer", Object.assign({ className: "m-0 py-1 pl-3 bg-gray-50 dark:bg-slate-900 border-t border-gray-100 dark:border-gray-800" }, { children: children }), node.key));
16
+ };
17
+ exports.Footer = Footer;
18
+ const CardTitle = (node, children) => {
19
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: "pt-3 font-bold group-hover:underline" }, { children: children }), node.key));
20
+ };
21
+ exports.CardTitle = CardTitle;
22
+ function getParts(children) {
23
+ var _a, _b;
24
+ const parts = {};
25
+ if (!Array.isArray(children))
26
+ return parts;
27
+ const next = [...children];
28
+ if (((_a = next[0]) === null || _a === void 0 ? void 0 : _a.type) === 'header') {
29
+ parts.header = next.splice(0, 1);
30
+ }
31
+ if (((_b = next[next.length - 1]) === null || _b === void 0 ? void 0 : _b.type) === 'footer') {
32
+ parts.footer = next.splice(-1, 1);
33
+ }
34
+ parts.body = next;
35
+ return parts;
36
+ }
37
+ function ExternalOrInternalLink({ to, className, isStatic, prefetch = 'intent', children, }) {
38
+ const Link = (0, providers_1.useLinkProvider)();
39
+ const urlbase = (0, providers_1.useUrlbase)();
40
+ if (to.startsWith('http') || isStatic) {
41
+ return ((0, jsx_runtime_1.jsx)("a", Object.assign({ href: to, className: className, target: "_blank", rel: "noopener noreferrer" }, { children: children })));
42
+ }
43
+ return ((0, jsx_runtime_1.jsx)(Link, Object.assign({ to: (0, providers_1.withUrlbase)(to, urlbase), className: className, prefetch: prefetch }, { children: children })));
44
+ }
45
+ function Card({ children, url, isStatic, }) {
46
+ const parts = getParts(children);
47
+ const link = !!url;
48
+ const sharedStyle = 'my-4 rounded-md shadow dark:shadow-neutral-800 overflow-hidden border border-gray-100 dark:border-gray-800 flex flex-col';
49
+ if (link) {
50
+ return ((0, jsx_runtime_1.jsxs)(ExternalOrInternalLink, Object.assign({ to: url, isStatic: isStatic, className: (0, classnames_1.default)(sharedStyle, 'block font-normal no-underline cursor-pointer group', 'hover:border-blue-500 dark:hover:border-blue-400') }, { children: [parts.header, (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "py-2 px-4 flex-grow" }, { children: parts.body })), parts.footer] })));
51
+ }
52
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: sharedStyle }, { children: [parts.header, (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "py-2 px-4 flex-grow" }, { children: parts.body })), parts.footer] })));
53
+ }
54
+ const CardRenderer = (node, children) => {
55
+ return ((0, jsx_runtime_1.jsx)(Card, Object.assign({ url: node.url, isStatic: node.static || false }, { children: children }), node.key));
56
+ };
57
+ exports.CardRenderer = CardRenderer;
58
+ const CARD_RENDERERS = {
59
+ card: exports.CardRenderer,
60
+ cardTitle: exports.CardTitle,
61
+ header: exports.Header,
62
+ footer: exports.Footer,
63
+ };
64
+ exports.default = CARD_RENDERERS;
@@ -0,0 +1,6 @@
1
+ import type { NodeRenderer } from './types';
2
+ export declare const CiteGroup: NodeRenderer;
3
+ export declare const Cite: NodeRenderer;
4
+ declare const CITE_RENDERERS: Record<string, NodeRenderer>;
5
+ export default CITE_RENDERERS;
6
+ //# sourceMappingURL=cite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cite.d.ts","sourceRoot":"","sources":["../../src/cite.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAU5C,eAAO,MAAM,SAAS,EAAE,YAYvB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,YASlB,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAGhD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Cite = exports.CiteGroup = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const classnames_1 = __importDefault(require("classnames"));
9
+ const providers_1 = require("@myst-theme/providers");
10
+ const ClickPopover_1 = require("./components/ClickPopover");
11
+ const inlineError_1 = require("./inlineError");
12
+ function CiteChild({ label }) {
13
+ var _a, _b;
14
+ const references = (0, providers_1.useReferences)();
15
+ const { html } = (_b = (_a = references === null || references === void 0 ? void 0 : references.cite) === null || _a === void 0 ? void 0 : _a.data[label]) !== null && _b !== void 0 ? _b : {};
16
+ return (0, jsx_runtime_1.jsx)("div", { dangerouslySetInnerHTML: { __html: html || '' } });
17
+ }
18
+ const CiteGroup = (node, children) => {
19
+ return ((0, jsx_runtime_1.jsx)("span", Object.assign({ className: (0, classnames_1.default)('cite-group', {
20
+ narrative: node.kind === 'narrative',
21
+ parenthetical: node.kind === 'parenthetical',
22
+ }) }, { children: children }), node.key));
23
+ };
24
+ exports.CiteGroup = CiteGroup;
25
+ const Cite = (node, children) => {
26
+ if (node.error) {
27
+ return (0, jsx_runtime_1.jsx)(inlineError_1.InlineError, { value: node.label, message: 'Citation Not Found' }, node.key);
28
+ }
29
+ return ((0, jsx_runtime_1.jsx)(ClickPopover_1.ClickPopover, Object.assign({ card: (0, jsx_runtime_1.jsx)(CiteChild, { label: node.label }) }, { children: children }), node.key));
30
+ };
31
+ exports.Cite = Cite;
32
+ const CITE_RENDERERS = {
33
+ citeGroup: exports.CiteGroup,
34
+ cite: exports.Cite,
35
+ };
36
+ exports.default = CITE_RENDERERS;
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import type { Code, InlineCode } from 'myst-spec';
3
+ import type { NodeRenderer } from './types';
4
+ type Props = {
5
+ value: string;
6
+ lang?: string;
7
+ showCopy?: boolean;
8
+ showLineNumbers?: boolean;
9
+ startingLineNumber?: number;
10
+ emphasizeLines?: number[];
11
+ filename?: string;
12
+ className?: string;
13
+ };
14
+ export declare function CodeBlock(props: Props): JSX.Element;
15
+ declare const CODE_RENDERERS: {
16
+ code: NodeRenderer<Code>;
17
+ inlineCode: NodeRenderer<InlineCode>;
18
+ };
19
+ export default CODE_RENDERERS;
20
+ //# sourceMappingURL=code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQ5C,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,eAqDrC;AA2CD,QAAA,MAAM,cAAc;;;CAGnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CodeBlock = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const providers_1 = require("@myst-theme/providers");
9
+ const react_syntax_highlighter_1 = require("react-syntax-highlighter");
10
+ const xcode_1 = __importDefault(require("react-syntax-highlighter/dist/cjs/styles/hljs/xcode"));
11
+ const vs2015_1 = __importDefault(require("react-syntax-highlighter/dist/cjs/styles/hljs/vs2015"));
12
+ const classnames_1 = __importDefault(require("classnames"));
13
+ const CopyIcon_1 = require("./components/CopyIcon");
14
+ function CodeBlock(props) {
15
+ const { isLight } = (0, providers_1.useTheme)();
16
+ const { value, lang, emphasizeLines, showLineNumbers, className, showCopy = true, startingLineNumber = 1, filename, } = props;
17
+ const highlightLines = new Set(emphasizeLines);
18
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, classnames_1.default)('relative group not-prose overflow-auto', className) }, { children: [filename && (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "leading-3 mt-1 p-1" }, { children: filename })), (0, jsx_runtime_1.jsx)(react_syntax_highlighter_1.LightAsync, Object.assign({ language: lang, startingLineNumber: startingLineNumber, showLineNumbers: showLineNumbers, style: isLight ? xcode_1.default : vs2015_1.default, wrapLines: true, lineNumberContainerStyle: {
19
+ // This stops page content shifts
20
+ display: 'inline-block',
21
+ float: 'left',
22
+ minWidth: '1.25em',
23
+ paddingRight: '1em',
24
+ textAlign: 'right',
25
+ userSelect: 'none',
26
+ borderLeft: '4px solid transparent',
27
+ }, lineProps: (line) => {
28
+ if (typeof line === 'boolean')
29
+ return {};
30
+ return highlightLines.has(line)
31
+ ? {
32
+ 'data-line-number': `${line}`,
33
+ 'data-highlight': 'true',
34
+ }
35
+ : { 'data-line-number': `${line}` };
36
+ }, customStyle: { padding: '0.8rem' } }, { children: value })), showCopy && ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: "absolute hidden top-1 right-1 group-hover:block" }, { children: (0, jsx_runtime_1.jsx)(CopyIcon_1.CopyIcon, { text: value }) })))] })));
37
+ }
38
+ exports.CodeBlock = CodeBlock;
39
+ const code = (node) => {
40
+ return ((0, jsx_runtime_1.jsx)(CodeBlock, { className: "rounded shadow-md dark:shadow-2xl dark:shadow-neutral-900 my-8 text-sm border border-l-4 border-l-blue-400 border-gray-200 dark:border-l-blue-400 dark:border-gray-800", value: node.value || '', lang: node.lang, emphasizeLines: node.emphasizeLines, showLineNumbers: node.showLineNumbers, startingLineNumber: node.startingLineNumber }, node.key));
41
+ };
42
+ function isColor(maybeColorHash) {
43
+ if (!maybeColorHash || maybeColorHash.length > 9)
44
+ return undefined;
45
+ if (!new Set([4, 7, 9]).has(maybeColorHash.length))
46
+ return undefined;
47
+ const match = /^#([0-9A-Fa-f]{3,8})$/.exec(maybeColorHash);
48
+ if (!match)
49
+ return undefined;
50
+ const color = match[1];
51
+ return color;
52
+ }
53
+ const inlineCode = (node, children) => {
54
+ if (isColor(node.value)) {
55
+ return ((0, jsx_runtime_1.jsxs)("code", Object.assign({ className: "bg-slate-100 text-slate-700 dark:bg-slate-800 dark:text-slate-100 px-1 rounded" }, { children: [children, (0, jsx_runtime_1.jsx)("span", { style: { backgroundColor: node.value }, className: "inline-block w-[10px] h-[10px] rounded-full ml-1" })] }), node.key));
56
+ }
57
+ return (0, jsx_runtime_1.jsx)("code", { children: children }, node.key);
58
+ };
59
+ const CODE_RENDERERS = {
60
+ code,
61
+ inlineCode,
62
+ };
63
+ exports.default = CODE_RENDERERS;
@@ -0,0 +1,11 @@
1
+ import type { ElementType } from 'react';
2
+ import React from 'react';
3
+ export declare function ClickPopover({ children, card, as, }: {
4
+ children: React.ReactNode;
5
+ card: React.ReactNode | ((args: {
6
+ open: boolean;
7
+ close: () => void;
8
+ }) => React.ReactNode);
9
+ as?: ElementType;
10
+ }): JSX.Element;
11
+ //# sourceMappingURL=ClickPopover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClickPopover.d.ts","sourceRoot":"","sources":["../../../src/components/ClickPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,IAAI,EACJ,EAAW,GACZ,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1F,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB,eAyCA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ClickPopover = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const react_2 = require("@headlessui/react");
10
+ const react_popper_1 = require("react-popper");
11
+ const classnames_1 = __importDefault(require("classnames"));
12
+ function ClickPopover({ children, card, as = 'cite', }) {
13
+ const [referenceElement, setReferenceElement] = (0, react_1.useState)(null);
14
+ const [popperElement, setPopperElement] = (0, react_1.useState)(null);
15
+ const { styles, attributes } = (0, react_popper_1.usePopper)(referenceElement, popperElement);
16
+ return ((0, jsx_runtime_1.jsx)(react_2.Popover, Object.assign({ as: "span" }, { children: ({ open, close }) => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.Popover.Button, Object.assign({ ref: setReferenceElement, as: as, className: (0, classnames_1.default)({ 'border-dotted': !open }, 'cursor-zoom-in border-b-2 border-b-blue-600 hover:text-blue-600 hover:border-solid', { 'text-blue-600 border-solid': open }) }, { children: children })), (0, jsx_runtime_1.jsx)(react_2.Popover.Panel, Object.assign({ className: "exclude-from-outline absolute z-30 sm:max-w-[500px]", ref: setPopperElement, style: Object.assign({}, styles.popper) }, attributes.popper, { children: (0, jsx_runtime_1.jsx)(react_2.Transition, Object.assign({ className: "my-2 p-4 shadow-xl bg-white dark:bg-zinc-900 text-sm dark:text-white rounded border-2 border-slate-200 dark:border-zinc-500 break-words", enter: "transition ease-out duration-200", enterFrom: "opacity-0 translate-y-1", enterTo: "opacity-100 translate-y-0", leave: "transition ease-in duration-150", leaveFrom: "opacity-100 translate-y-0", leaveTo: "opacity-0 translate-y-1" }, { children: open && (typeof card === 'function' ? card({ open, close }) : card) })) }))] })) })));
17
+ }
18
+ exports.ClickPopover = ClickPopover;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare function CopyIcon({ text }: {
3
+ text: string;
4
+ }): JSX.Element;
5
+ //# sourceMappingURL=CopyIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyIcon.d.ts","sourceRoot":"","sources":["../../../src/components/CopyIcon.tsx"],"names":[],"mappings":";AAIA,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,eAkClD"}