myst-to-react 0.3.2 → 0.3.4

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 (52) hide show
  1. package/dist/cjs/admonitions.js +1 -1
  2. package/dist/cjs/basic.js +2 -2
  3. package/dist/cjs/card.js +4 -4
  4. package/dist/cjs/code.js +2 -2
  5. package/dist/cjs/components/LinkCard.js +1 -1
  6. package/dist/cjs/crossReference.d.ts +5 -0
  7. package/dist/cjs/crossReference.d.ts.map +1 -1
  8. package/dist/cjs/crossReference.js +14 -9
  9. package/dist/cjs/dropdown.js +1 -1
  10. package/dist/cjs/exercise.js +1 -1
  11. package/dist/cjs/extensions/chemicalFormula.d.ts.map +1 -1
  12. package/dist/cjs/extensions/chemicalFormula.js +3 -2
  13. package/dist/cjs/heading.js +1 -1
  14. package/dist/cjs/index.d.ts +1 -0
  15. package/dist/cjs/index.d.ts.map +1 -1
  16. package/dist/cjs/index.js +3 -1
  17. package/dist/cjs/links/github.js +3 -3
  18. package/dist/cjs/links/index.js +1 -1
  19. package/dist/cjs/links/rrid.js +1 -1
  20. package/dist/cjs/links/wiki.js +1 -1
  21. package/dist/cjs/math.js +1 -1
  22. package/dist/cjs/proof.js +1 -1
  23. package/dist/cjs/tabs.js +2 -2
  24. package/dist/esm/admonitions.js +1 -1
  25. package/dist/esm/basic.js +2 -2
  26. package/dist/esm/card.js +4 -4
  27. package/dist/esm/code.js +2 -2
  28. package/dist/esm/components/LinkCard.js +1 -1
  29. package/dist/esm/crossReference.d.ts +5 -0
  30. package/dist/esm/crossReference.d.ts.map +1 -1
  31. package/dist/esm/crossReference.js +12 -8
  32. package/dist/esm/dropdown.js +1 -1
  33. package/dist/esm/exercise.js +1 -1
  34. package/dist/esm/extensions/chemicalFormula.d.ts.map +1 -1
  35. package/dist/esm/extensions/chemicalFormula.js +3 -2
  36. package/dist/esm/heading.js +1 -1
  37. package/dist/esm/index.d.ts +1 -0
  38. package/dist/esm/index.d.ts.map +1 -1
  39. package/dist/esm/index.js +1 -0
  40. package/dist/esm/links/github.js +3 -3
  41. package/dist/esm/links/index.js +1 -1
  42. package/dist/esm/links/rrid.js +1 -1
  43. package/dist/esm/links/wiki.js +1 -1
  44. package/dist/esm/math.js +1 -1
  45. package/dist/esm/proof.js +1 -1
  46. package/dist/esm/tabs.js +2 -2
  47. package/dist/types/crossReference.d.ts +5 -0
  48. package/dist/types/crossReference.d.ts.map +1 -1
  49. package/dist/types/extensions/chemicalFormula.d.ts.map +1 -1
  50. package/dist/types/index.d.ts +1 -0
  51. package/dist/types/index.d.ts.map +1 -1
  52. package/package.json +2 -2
@@ -133,7 +133,7 @@ function Admonition({ title, kind, color, simple, dropdown, children, hideIcon,
133
133
  'text-green-600': color === 'green',
134
134
  'text-amber-600': color === 'yellow',
135
135
  'text-red-600': color === 'red',
136
- }) })), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('text-neutral-900 dark:text-white grow self-center overflow-hidden break-words', { 'ml-4': hideIcon }), children: title }), dropdown && ((0, jsx_runtime_1.jsx)("div", { className: "font-thin text-sm text-neutral-700 dark:text-neutral-200 self-center flex-none", children: (0, jsx_runtime_1.jsx)(ChevronRightIcon_1.default, { className: (0, classnames_1.default)(iconClass, 'transition-transform details-toggle') }) }))] })), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('px-4', { 'py-1': !simple, 'details-body': dropdown }), children: children })] }));
136
+ }) })), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('text-neutral-900 dark:text-white grow self-center overflow-hidden break-words', { 'ml-4': hideIcon }), children: title }), dropdown && ((0, jsx_runtime_1.jsx)("div", { className: "self-center flex-none text-sm font-thin text-neutral-700 dark:text-neutral-200", children: (0, jsx_runtime_1.jsx)(ChevronRightIcon_1.default, { className: (0, classnames_1.default)(iconClass, 'transition-transform details-toggle') }) }))] })), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('px-4', { 'py-1': !simple, 'details-body': dropdown }), children: children })] }));
137
137
  }
138
138
  exports.Admonition = Admonition;
139
139
  const AdmonitionRenderer = (node, children) => {
package/dist/cjs/basic.js CHANGED
@@ -71,7 +71,7 @@ const BASIC_RENDERERS = {
71
71
  }
72
72
  const label = typeof children === 'string' ? backwardsCompatibleLabel(children, node.kind) : children;
73
73
  const id = node.html_id || node.identifier || node.key;
74
- return ((0, jsx_runtime_1.jsx)(heading_1.HashLink, { id: id, kind: node.kind, className: "mr-1 text-inherit hover:text-inherit font-semibold hover:font-semibold", children: label }, node.key));
74
+ return ((0, jsx_runtime_1.jsx)(heading_1.HashLink, { id: id, kind: node.kind, className: "mr-1 font-semibold text-inherit hover:text-inherit hover:font-semibold", children: label }, node.key));
75
75
  },
76
76
  table(node, children) {
77
77
  // TODO: actually render the tbody on the server if it isn't included here.
@@ -98,7 +98,7 @@ const BASIC_RENDERERS = {
98
98
  return (0, jsx_runtime_1.jsx)("sup", { children: children }, node.key);
99
99
  },
100
100
  abbreviation(node, children) {
101
- return ((0, jsx_runtime_1.jsx)(HoverPopover_1.HoverPopover, { side: "top", card: (0, jsx_runtime_1.jsx)("div", { className: "bg-blue-900 text-white dark:bg-white dark:text-black text-xs p-1", children: node.title }), arrowClass: "fill-blue-900 dark:fill-white", children: (0, jsx_runtime_1.jsx)("abbr", { "aria-label": node.title, className: "cursor-help border-b border-dotted", children: children }) }, node.key));
101
+ return ((0, jsx_runtime_1.jsx)(HoverPopover_1.HoverPopover, { side: "top", card: (0, jsx_runtime_1.jsx)("div", { className: "p-1 text-xs text-white bg-blue-900 dark:bg-white dark:text-black", children: node.title }), arrowClass: "fill-blue-900 dark:fill-white", children: (0, jsx_runtime_1.jsx)("abbr", { "aria-label": node.title, className: "border-b border-dotted cursor-help", children: children }) }, node.key));
102
102
  },
103
103
  mystComment() {
104
104
  return null;
package/dist/cjs/card.js CHANGED
@@ -8,11 +8,11 @@ const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const classnames_1 = __importDefault(require("classnames"));
9
9
  const providers_1 = require("@myst-theme/providers");
10
10
  const Header = (node, children) => {
11
- return ((0, jsx_runtime_1.jsx)("header", { 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));
11
+ return ((0, jsx_runtime_1.jsx)("header", { className: "py-1 pl-3 m-0 border-b border-gray-100 bg-gray-50 dark:bg-slate-900 dark:border-gray-800", children: children }, node.key));
12
12
  };
13
13
  exports.Header = Header;
14
14
  const Footer = (node, children) => {
15
- return ((0, jsx_runtime_1.jsx)("footer", { 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));
15
+ return ((0, jsx_runtime_1.jsx)("footer", { className: "py-1 pl-3 m-0 border-t border-gray-100 bg-gray-50 dark:bg-slate-900 dark:border-gray-800", children: children }, node.key));
16
16
  };
17
17
  exports.Footer = Footer;
18
18
  const CardTitle = (node, children) => {
@@ -47,9 +47,9 @@ function Card({ children, url, isStatic, }) {
47
47
  const link = !!url;
48
48
  const sharedStyle = 'my-5 rounded shadow dark:shadow-neutral-800 overflow-hidden border border-gray-100 dark:border-gray-800 flex flex-col';
49
49
  if (link) {
50
- return ((0, jsx_runtime_1.jsxs)(ExternalOrInternalLink, { to: url, isStatic: isStatic, className: (0, classnames_1.default)(sharedStyle, 'text-inherit hover:text-inherit', 'block font-normal no-underline hover:no-underline cursor-pointer group', 'hover:border-blue-500 dark:hover:border-blue-400'), children: [parts.header, (0, jsx_runtime_1.jsx)("div", { className: "py-2 px-4 flex-grow", children: parts.body }), parts.footer] }));
50
+ return ((0, jsx_runtime_1.jsxs)(ExternalOrInternalLink, { to: url, isStatic: isStatic, className: (0, classnames_1.default)(sharedStyle, 'text-inherit hover:text-inherit', 'block font-normal no-underline hover:no-underline cursor-pointer group', 'hover:border-blue-500 dark:hover:border-blue-400'), children: [parts.header, (0, jsx_runtime_1.jsx)("div", { className: "flex-grow px-4 py-2", children: parts.body }), parts.footer] }));
51
51
  }
52
- return ((0, jsx_runtime_1.jsxs)("div", { className: sharedStyle, children: [parts.header, (0, jsx_runtime_1.jsx)("div", { className: "py-2 px-4 flex-grow", children: parts.body }), parts.footer] }));
52
+ return ((0, jsx_runtime_1.jsxs)("div", { className: sharedStyle, children: [parts.header, (0, jsx_runtime_1.jsx)("div", { className: "flex-grow px-4 py-2", children: parts.body }), parts.footer] }));
53
53
  }
54
54
  const CardRenderer = (node, children) => {
55
55
  return ((0, jsx_runtime_1.jsx)(Card, { url: node.url, isStatic: node.static || false, children: children }, node.key));
package/dist/cjs/code.js CHANGED
@@ -27,7 +27,7 @@ function CodeBlock(props) {
27
27
  'shadow hover:shadow-md dark:shadow-2xl dark:shadow-neutral-900 my-5 text-sm': shadow,
28
28
  'bg-stone-200/10': background,
29
29
  'border border-l-4 border-l-blue-400 border-gray-200 dark:border-l-blue-400 dark:border-gray-800': border,
30
- }), children: [filename && (0, jsx_runtime_1.jsx)("div", { className: "leading-3 mt-1 p-1", children: filename }), (0, jsx_runtime_1.jsx)(react_syntax_highlighter_1.LightAsync, { language: normalizeLanguage(lang), startingLineNumber: startingLineNumber, showLineNumbers: showLineNumbers, style: isLight ? Object.assign(Object.assign({}, xcode_1.default), { hljs: Object.assign(Object.assign({}, xcode_1.default.hljs), { background: 'transparent' }) }) : vs2015_1.default, wrapLines: true, lineNumberContainerStyle: {
30
+ }), children: [filename && (0, jsx_runtime_1.jsx)("div", { className: "p-1 mt-1 leading-3", children: filename }), (0, jsx_runtime_1.jsx)(react_syntax_highlighter_1.LightAsync, { language: normalizeLanguage(lang), startingLineNumber: startingLineNumber, showLineNumbers: showLineNumbers, style: isLight ? Object.assign(Object.assign({}, xcode_1.default), { hljs: Object.assign(Object.assign({}, xcode_1.default.hljs), { background: 'transparent' }) }) : vs2015_1.default, wrapLines: true, lineNumberContainerStyle: {
31
31
  // This stops page content shifts
32
32
  display: 'inline-block',
33
33
  float: 'left',
@@ -64,7 +64,7 @@ function isColor(maybeColorHash) {
64
64
  }
65
65
  const inlineCode = (node, children) => {
66
66
  if (isColor(node.value)) {
67
- return ((0, jsx_runtime_1.jsxs)("code", { 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));
67
+ return ((0, jsx_runtime_1.jsxs)("code", { className: "px-1 rounded bg-slate-100 text-slate-700 dark:bg-slate-800 dark:text-slate-100", 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));
68
68
  }
69
69
  return (0, jsx_runtime_1.jsx)("code", { children: children }, node.key);
70
70
  };
@@ -14,6 +14,6 @@ function LinkCard({ url, title, internal = false, loading = false, description,
14
14
  const to = (0, providers_1.withBaseurl)(url, baseurl);
15
15
  return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('hover-card-content rounded overflow-hidden', className, {
16
16
  'animate-pulse': loading,
17
- }), children: [!loading && thumbnail && ((0, jsx_runtime_1.jsx)("img", { src: thumbnail, className: "w-full h-[150px] object-cover object-top object-left m-0" })), loading && (0, jsx_runtime_1.jsx)("div", { className: "animate-pulse bg-slate-100 dark:bg-slate-800 w-full h-[150px]" }), internal && ((0, jsx_runtime_1.jsx)(Link, { to: to, className: "block text-sm font-semibold text-inherit hover:text-inherit px-3 mt-3", prefetch: "intent", children: title })), !internal && ((0, jsx_runtime_1.jsxs)("a", { href: to, className: "block text-sm font-semibold text-inherit hover:text-inherit px-3 mt-3", target: "_blank", rel: "noreferrer", children: [(0, jsx_runtime_1.jsx)(ArrowTopRightOnSquareIcon_1.default, { className: "w-4 h-4 float-right" }), title] })), !loading && description && ((0, jsx_runtime_1.jsx)("div", { className: "p-3 prose text-sm max-h-[300px] overflow-hidden", children: description }))] }));
17
+ }), children: [!loading && thumbnail && ((0, jsx_runtime_1.jsx)("img", { src: thumbnail, className: "w-full h-[150px] object-cover object-top object-left m-0" })), loading && (0, jsx_runtime_1.jsx)("div", { className: "animate-pulse bg-slate-100 dark:bg-slate-800 w-full h-[150px]" }), internal && ((0, jsx_runtime_1.jsx)(Link, { to: to, className: "block px-3 mt-3 text-sm font-semibold text-inherit hover:text-inherit", prefetch: "intent", children: title })), !internal && ((0, jsx_runtime_1.jsxs)("a", { href: to, className: "block px-3 mt-3 text-sm font-semibold text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: [(0, jsx_runtime_1.jsx)(ArrowTopRightOnSquareIcon_1.default, { className: "float-right w-4 h-4" }), title] })), !loading && description && ((0, jsx_runtime_1.jsx)("div", { className: "p-3 prose text-sm max-h-[300px] overflow-hidden", children: description }))] }));
18
18
  }
19
19
  exports.LinkCard = LinkCard;
@@ -1,6 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import type { CrossReference } from 'myst-spec';
3
3
  import type { NodeRenderer } from '@myst-theme/providers';
4
+ export declare function useFetchMdast({ remote, url, dataUrl, }: {
5
+ remote?: boolean;
6
+ url?: string;
7
+ dataUrl?: string;
8
+ }): import("swr/_internal").SWRResponse<any, any, any>;
4
9
  export declare function CrossReferenceHover({ url: urlIn, dataUrl: dataUrlIn, remote: remoteIn, children, identifier, htmlId, }: {
5
10
  remote?: boolean;
6
11
  url?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"crossReference.d.ts","sourceRoot":"","sources":["../../src/crossReference.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAahD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAyJ1D,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EACR,UAAU,EACV,MAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAuDA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAuB3D,CAAC;AAEF,QAAA,MAAM,yBAAyB;;CAE9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"crossReference.d.ts","sourceRoot":"","sources":["../../src/crossReference.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAahD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA2H1D,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,GAAG,EACH,OAAO,GACR,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,sDAWA;AAuBD,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EACR,UAAU,EACV,MAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAuDA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAuB3D,CAAC;AAEF,QAAA,MAAM,yBAAyB;;CAE9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -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.CrossReferenceNode = exports.CrossReferenceHover = void 0;
6
+ exports.CrossReferenceNode = exports.CrossReferenceHover = exports.useFetchMdast = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const unist_util_select_1 = require("unist-util-select");
9
9
  const unist_util_visit_1 = require("unist-util-visit");
@@ -107,22 +107,27 @@ function openDetails(el) {
107
107
  }
108
108
  openDetails(el.parentElement);
109
109
  }
110
- function useSelectNodes({ load, remote, url, dataUrl, identifier, }) {
111
- var _a, _b;
112
- const baseurl = (0, providers_1.useBaseurl)();
113
- const references = (0, providers_1.useReferences)();
110
+ function useFetchMdast({ remote, url, dataUrl, }) {
111
+ var _a;
114
112
  // dataUrl should point directly to the cross reference mdast data.
115
113
  // If dataUrl is not provided, it will be computed by appending .json to the url.
116
- if (!load)
117
- return;
114
+ const baseurl = (0, providers_1.useBaseurl)();
118
115
  const external = (_a = url === null || url === void 0 ? void 0 : url.startsWith('http')) !== null && _a !== void 0 ? _a : false;
119
116
  const lookupUrl = external
120
117
  ? `/api/lookup?url=${url}.json`
121
118
  : dataUrl
122
119
  ? `${(0, providers_1.withBaseurl)(dataUrl, baseurl)}`
123
120
  : `${(0, providers_1.withBaseurl)(url, baseurl)}.json`;
124
- const { data, error } = (0, swr_1.default)(remote ? lookupUrl : null, fetcher);
125
- const mdast = (_b = data === null || data === void 0 ? void 0 : data.mdast) !== null && _b !== void 0 ? _b : references === null || references === void 0 ? void 0 : references.article;
121
+ return (0, swr_1.default)(remote ? lookupUrl : null, fetcher);
122
+ }
123
+ exports.useFetchMdast = useFetchMdast;
124
+ function useSelectNodes({ load, remote, url, dataUrl, identifier, }) {
125
+ var _a;
126
+ const references = (0, providers_1.useReferences)();
127
+ if (!load)
128
+ return;
129
+ const { data, error } = useFetchMdast({ remote, url, dataUrl });
130
+ const mdast = (_a = data === null || data === void 0 ? void 0 : data.mdast) !== null && _a !== void 0 ? _a : references === null || references === void 0 ? void 0 : references.article;
126
131
  const { nodes, htmlId } = selectMdastNodes(mdast, identifier);
127
132
  return { htmlId, nodes, loading: remote && !data, error: remote && error };
128
133
  }
@@ -13,7 +13,7 @@ const SummaryTitle = (node, children) => {
13
13
  };
14
14
  exports.SummaryTitle = SummaryTitle;
15
15
  function Details({ title, children, open, }) {
16
- return ((0, jsx_runtime_1.jsxs)("details", { className: (0, classnames_1.default)('rounded-md my-5 shadow dark:shadow-2xl dark:shadow-neutral-900 overflow-hidden', 'bg-gray-50 dark:bg-stone-800'), open: open, children: [(0, jsx_runtime_1.jsx)("summary", { className: (0, classnames_1.default)('m-0 text-lg font-medium py-1 min-h-[2em] pl-3', 'cursor-pointer hover:shadow-[inset_0_0_0px_30px_#00000003] dark:hover:shadow-[inset_0_0_0px_30px_#FFFFFF03]', 'bg-gray-100 dark:bg-slate-900'), children: (0, jsx_runtime_1.jsxs)("span", { className: "text-neutral-900 dark:text-white", children: [(0, jsx_runtime_1.jsx)("span", { className: "block float-right font-thin text-sm text-neutral-700 dark:text-neutral-200", children: (0, jsx_runtime_1.jsx)(ChevronRightIcon_1.default, { className: (0, classnames_1.default)(iconClass, 'details-toggle', 'transition-transform') }) }), title] }) }), (0, jsx_runtime_1.jsx)("div", { className: "px-4 py-1 details-body", children: children })] }));
16
+ return ((0, jsx_runtime_1.jsxs)("details", { className: (0, classnames_1.default)('rounded-md my-5 shadow dark:shadow-2xl dark:shadow-neutral-900 overflow-hidden', 'bg-gray-50 dark:bg-stone-800'), open: open, children: [(0, jsx_runtime_1.jsx)("summary", { className: (0, classnames_1.default)('m-0 text-lg font-medium py-1 min-h-[2em] pl-3', 'cursor-pointer hover:shadow-[inset_0_0_0px_30px_#00000003] dark:hover:shadow-[inset_0_0_0px_30px_#FFFFFF03]', 'bg-gray-100 dark:bg-slate-900'), children: (0, jsx_runtime_1.jsxs)("span", { className: "text-neutral-900 dark:text-white", children: [(0, jsx_runtime_1.jsx)("span", { className: "block float-right text-sm font-thin text-neutral-700 dark:text-neutral-200", children: (0, jsx_runtime_1.jsx)(ChevronRightIcon_1.default, { className: (0, classnames_1.default)(iconClass, 'details-toggle', 'transition-transform') }) }), title] }) }), (0, jsx_runtime_1.jsx)("div", { className: "px-4 py-1 details-body", children: children })] }));
17
17
  }
18
18
  exports.Details = Details;
19
19
  const DetailsRenderer = (node, children) => {
@@ -68,7 +68,7 @@ function Callout({ title, color, dropdown, children, identifier, Icon, }) {
68
68
  'text-red-600': color === 'red',
69
69
  'text-purple-600': color === 'purple',
70
70
  })) })), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('text-neutral-900 dark:text-white grow self-center overflow-hidden break-words', { 'ml-4': !Icon }, // No icon!
71
- 'group'), children: title }), dropdown && ((0, jsx_runtime_1.jsx)("div", { className: "font-thin text-sm text-neutral-700 dark:text-neutral-200 self-center flex-none", children: (0, jsx_runtime_1.jsx)(ChevronRightIcon_1.default, { className: (0, classnames_1.default)(iconClass, 'transition-transform details-toggle') }) }))] }), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('px-4', { 'details-body': dropdown }), children: children })] }));
71
+ 'group'), children: title }), dropdown && ((0, jsx_runtime_1.jsx)("div", { className: "self-center flex-none text-sm font-thin text-neutral-700 dark:text-neutral-200", children: (0, jsx_runtime_1.jsx)(ChevronRightIcon_1.default, { className: (0, classnames_1.default)(iconClass, 'transition-transform details-toggle') }) }))] }), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('px-4', { 'details-body': dropdown }), children: children })] }));
72
72
  }
73
73
  exports.Callout = Callout;
74
74
  const ExerciseRenderer = (node, children) => {
@@ -1 +1 @@
1
- {"version":3,"file":"chemicalFormula.d.ts","sourceRoot":"","sources":["../../../src/extensions/chemicalFormula.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAyB1D,eAAO,MAAM,eAAe,EAAE,YAU7B,CAAC;AAEF,QAAA,MAAM,cAAc;;CAEnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"chemicalFormula.d.ts","sourceRoot":"","sources":["../../../src/extensions/chemicalFormula.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA0B1D,eAAO,MAAM,eAAe,EAAE,YAU7B,CAAC;AAEF,QAAA,MAAM,cAAc;;CAEnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -8,8 +8,9 @@ const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  * @returns ['H', '2', '0']
9
9
  */
10
10
  function parseFormula(formula) {
11
- return [...(formula !== null && formula !== void 0 ? formula : '')].reduce((acc, letter) => {
11
+ return [...(formula !== null && formula !== void 0 ? formula : '')].reduce((acc, current) => {
12
12
  const last = acc.pop();
13
+ const letter = current === '+' ? '⁺' : current === '-' ? '⁻' : current;
13
14
  const isNumber = letter.match(/[0-9]/);
14
15
  const lastIsNumber = last === null || last === void 0 ? void 0 : last.match(/[0-9]/);
15
16
  if (isNumber) {
@@ -26,7 +27,7 @@ function parseFormula(formula) {
26
27
  }
27
28
  const ChemicalFormula = (node) => {
28
29
  const parts = parseFormula(node.value);
29
- return ((0, jsx_runtime_1.jsx)("code", { className: "text-inherit", children: parts.map((letter, index) => {
30
+ return ((0, jsx_runtime_1.jsx)("span", { className: "text-inherit", "aria-roledescription": "Chemical Formula", children: parts.map((letter, index) => {
30
31
  if (letter.match(/[0-9]/))
31
32
  return (0, jsx_runtime_1.jsx)("sub", { children: letter }, index);
32
33
  return (0, jsx_runtime_1.jsx)("span", { children: letter }, index);
@@ -30,7 +30,7 @@ exports.HashLink = HashLink;
30
30
  const Heading = (node, children) => {
31
31
  const { enumerator, depth, key, identifier, html_id } = node;
32
32
  const id = html_id || identifier || key;
33
- const textContent = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [enumerator && (0, jsx_runtime_1.jsx)("span", { className: "select-none mr-3", children: enumerator }), (0, jsx_runtime_1.jsx)("span", { className: "heading-text", children: children }), (0, jsx_runtime_1.jsx)(HashLink, { id: id, kind: "Section", className: "px-2 font-normal", hover: true, hideInPopup: true })] }));
33
+ const textContent = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [enumerator && (0, jsx_runtime_1.jsx)("span", { className: "mr-3 select-none", children: enumerator }), (0, jsx_runtime_1.jsx)("span", { className: "heading-text", children: children }), (0, jsx_runtime_1.jsx)(HashLink, { id: id, kind: "Section", className: "px-2 font-normal", hover: true, hideInPopup: true })] }));
34
34
  // The `heading-text` class is picked up in the Outline to select without the enumerator and "#" link
35
35
  return (0, react_1.createElement)(`h${depth}`, {
36
36
  key: node.key,
@@ -6,6 +6,7 @@ export { CodeBlock } from './code';
6
6
  export { Admonition, AdmonitionKind } from './admonitions';
7
7
  export { Details } from './dropdown';
8
8
  export { TabSet, TabItem } from './tabs';
9
+ export { useFetchMdast } from './crossReference';
9
10
  export declare const DEFAULT_RENDERERS: Record<string, NodeRenderer>;
10
11
  export declare function useParse(node: GenericParent | null, renderers?: Record<string, NodeRenderer>): import("react").ReactNode;
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAwBjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAsB1D,CAAC;AAEF,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,GAAG,IAAI,EAC1B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAqB,6BAU5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAwBjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAsB1D,CAAC;AAEF,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,GAAG,IAAI,EAC1B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAqB,6BAU5D"}
package/dist/cjs/index.js CHANGED
@@ -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.useParse = exports.DEFAULT_RENDERERS = exports.TabItem = exports.TabSet = exports.Details = exports.AdmonitionKind = exports.Admonition = exports.CodeBlock = exports.CopyIcon = void 0;
6
+ exports.useParse = exports.DEFAULT_RENDERERS = exports.useFetchMdast = exports.TabItem = exports.TabSet = exports.Details = exports.AdmonitionKind = exports.Admonition = exports.CodeBlock = exports.CopyIcon = void 0;
7
7
  const convertToReact_1 = require("./convertToReact");
8
8
  const basic_1 = __importDefault(require("./basic"));
9
9
  const admonitions_1 = __importDefault(require("./admonitions"));
@@ -38,6 +38,8 @@ Object.defineProperty(exports, "Details", { enumerable: true, get: function () {
38
38
  var tabs_2 = require("./tabs");
39
39
  Object.defineProperty(exports, "TabSet", { enumerable: true, get: function () { return tabs_2.TabSet; } });
40
40
  Object.defineProperty(exports, "TabItem", { enumerable: true, get: function () { return tabs_2.TabItem; } });
41
+ var crossReference_2 = require("./crossReference");
42
+ Object.defineProperty(exports, "useFetchMdast", { enumerable: true, get: function () { return crossReference_2.useFetchMdast; } });
41
43
  exports.DEFAULT_RENDERERS = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, basic_1.default), unknown_1.default), image_1.default), links_1.default), code_1.default), math_1.default), cite_1.default), tabs_1.default), iframe_1.default), footnotes_1.default), admonitions_1.default), reactive_1.default), heading_1.default), crossReference_1.default), dropdown_1.default), card_1.default), grid_1.default), inlineExpression_1.default), extensions_1.default), proof_1.default), exercise_1.default);
42
44
  function useParse(node, renderers = exports.DEFAULT_RENDERERS) {
43
45
  if (!node)
@@ -46,7 +46,7 @@ function GithubFilePreview({ url, raw, org, repo, file, from, to, open, }) {
46
46
  const { data, error } = useLoadWhenOpen(open, raw, fetcher);
47
47
  let code = data;
48
48
  if (error) {
49
- return ((0, jsx_runtime_1.jsxs)("div", { className: "hover-document w-[500px] sm:max-w-[500px]", children: [(0, jsx_runtime_1.jsx)("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: (0, jsx_runtime_1.jsx)(ArrowTopRightOnSquareIcon_1.default, { className: "w-4 h-4 float-right" }) }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-2", children: ["Error loading \"", file, "\" from GitHub."] })] }));
49
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "hover-document w-[500px] sm:max-w-[500px]", children: [(0, jsx_runtime_1.jsx)("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: (0, jsx_runtime_1.jsx)(ArrowTopRightOnSquareIcon_1.default, { className: "float-right w-4 h-4" }) }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-2", children: ["Error loading \"", file, "\" from GitHub."] })] }));
50
50
  }
51
51
  const lang = extToLanguage(file === null || file === void 0 ? void 0 : file.split('.').pop());
52
52
  let startingLineNumber = 1;
@@ -83,14 +83,14 @@ function GithubIssuePreview({ url, org, repo, issue_number, open, }) {
83
83
  }
84
84
  const resp = data;
85
85
  if (error) {
86
- return ((0, jsx_runtime_1.jsxs)("div", { className: "hover-document", children: [(0, jsx_runtime_1.jsx)("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: (0, jsx_runtime_1.jsx)(ArrowTopRightOnSquareIcon_1.default, { className: "w-4 h-4 float-right" }) }), (0, jsx_runtime_1.jsx)("div", { className: "mt-2", children: "Error loading from GitHub." })] }));
86
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "hover-document", children: [(0, jsx_runtime_1.jsx)("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: (0, jsx_runtime_1.jsx)(ArrowTopRightOnSquareIcon_1.default, { className: "float-right w-4 h-4" }) }), (0, jsx_runtime_1.jsx)("div", { className: "mt-2", children: "Error loading from GitHub." })] }));
87
87
  }
88
88
  const dateString = new Date(resp.created_at).toLocaleDateString('en-US', {
89
89
  year: 'numeric',
90
90
  month: 'long',
91
91
  day: 'numeric',
92
92
  });
93
- return ((0, jsx_runtime_1.jsxs)("div", { className: "hover-document w-[400px] sm:max-w-[400px] p-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "text-xs font-light", children: [org, "/", repo] }), (0, jsx_runtime_1.jsxs)("div", { className: "text-lg font-bold my-2 dark:text-white", children: [resp.state === 'open' && ((0, jsx_runtime_1.jsx)(PlusCircleIcon_1.default, { className: "w-6 h-6 inline-block text-green-700 dark:text-green-500 mr-2 -translate-y-px" })), resp.state === 'closed' && ((0, jsx_runtime_1.jsx)(CheckCircleIcon_1.default, { className: "w-6 h-6 inline-block text-purple-700 dark:text-purple-500 mr-2 -translate-y-px" })), resp.title] }), (0, jsx_runtime_1.jsxs)("div", { className: "text-xs font-light", children: ["#", issue_number, " opened on ", dateString, " by", ' ', (0, jsx_runtime_1.jsxs)("span", { className: "font-normal", children: ["@", resp.user.login] })] }), (0, jsx_runtime_1.jsx)("p", { className: "text-md max-h-[4rem] overflow-hidden", children: resp.body }), ((_a = resp.labels) === null || _a === void 0 ? void 0 : _a.length) > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "flex flex-wrap", children: (_b = resp.labels) === null || _b === void 0 ? void 0 : _b.map((label) => ((0, jsx_runtime_1.jsx)("span", { className: (0, classnames_1.default)('mr-1 text-xs inline-flex items-center px-2 py-0.5 rounded-full', {
93
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "hover-document w-[400px] sm:max-w-[400px] p-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "text-xs font-light", children: [org, "/", repo] }), (0, jsx_runtime_1.jsxs)("div", { className: "my-2 text-lg font-bold dark:text-white", children: [resp.state === 'open' && ((0, jsx_runtime_1.jsx)(PlusCircleIcon_1.default, { className: "inline-block w-6 h-6 mr-2 text-green-700 dark:text-green-500 -translate-y-px" })), resp.state === 'closed' && ((0, jsx_runtime_1.jsx)(CheckCircleIcon_1.default, { className: "inline-block w-6 h-6 mr-2 text-purple-700 dark:text-purple-500 -translate-y-px" })), resp.title] }), (0, jsx_runtime_1.jsxs)("div", { className: "text-xs font-light", children: ["#", issue_number, " opened on ", dateString, " by", ' ', (0, jsx_runtime_1.jsxs)("span", { className: "font-normal", children: ["@", resp.user.login] })] }), (0, jsx_runtime_1.jsx)("p", { className: "text-md max-h-[4rem] overflow-hidden", children: resp.body }), ((_a = resp.labels) === null || _a === void 0 ? void 0 : _a.length) > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "flex flex-wrap", children: (_b = resp.labels) === null || _b === void 0 ? void 0 : _b.map((label) => ((0, jsx_runtime_1.jsx)("span", { className: (0, classnames_1.default)('mr-1 text-xs inline-flex items-center px-2 py-0.5 rounded-full', {
94
94
  'text-white': useWhiteTextColor(label.color),
95
95
  }), style: { backgroundColor: `#${label.color}` }, children: label.name }, label.id))) }))] }));
96
96
  }
@@ -58,7 +58,7 @@ const linkBlock = (node, children) => {
58
58
  const iconClass = 'w-6 h-6 self-center transition-transform flex-none ml-3';
59
59
  const containerClass = 'flex-1 p-4 my-5 block border font-normal hover:border-blue-500 dark:hover:border-blue-400 no-underline hover:text-blue-600 dark:hover:text-blue-400 text-gray-600 dark:text-gray-100 border-gray-200 dark:border-gray-500 rounded shadow-sm hover:shadow-lg dark:shadow-neutral-700';
60
60
  const internal = (_a = node.internal) !== null && _a !== void 0 ? _a : false;
61
- const nested = ((0, jsx_runtime_1.jsxs)("div", { className: "flex align-middle h-full", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex-grow", children: [node.title, (0, jsx_runtime_1.jsx)("div", { className: "text-xs text-gray-500 dark:text-gray-400", children: children })] }), internal && (0, jsx_runtime_1.jsx)(LinkIcon_1.default, { className: iconClass }), !internal && (0, jsx_runtime_1.jsx)(ArrowTopRightOnSquareIcon_1.default, { className: iconClass })] }));
61
+ const nested = ((0, jsx_runtime_1.jsxs)("div", { className: "flex h-full align-middle", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex-grow", children: [node.title, (0, jsx_runtime_1.jsx)("div", { className: "text-xs text-gray-500 dark:text-gray-400", children: children })] }), internal && (0, jsx_runtime_1.jsx)(LinkIcon_1.default, { className: iconClass }), !internal && (0, jsx_runtime_1.jsx)(ArrowTopRightOnSquareIcon_1.default, { className: iconClass })] }));
62
62
  if (internal) {
63
63
  return ((0, jsx_runtime_1.jsx)("a", { href: node.url, className: containerClass, children: nested }, node.key));
64
64
  }
@@ -26,7 +26,7 @@ function RRIDChild({ rrid }) {
26
26
  const category = (_e = supercategory === null || supercategory === void 0 ? void 0 : supercategory[0]) === null || _e === void 0 ? void 0 : _e.name;
27
27
  const types = (_f = categories === null || categories === void 0 ? void 0 : categories.map(({ name }) => name)) !== null && _f !== void 0 ? _f : [];
28
28
  const tags = (_g = keywords === null || keywords === void 0 ? void 0 : keywords.map(({ keyword }) => keyword)) !== null && _g !== void 0 ? _g : [];
29
- return ((0, jsx_runtime_1.jsxs)("div", { className: "hover-document w-[500px] sm:max-w-[500px] p-3", children: [(0, jsx_runtime_1.jsxs)("p", { className: "text-sm font-light", children: ["RRID: ", category] }), (0, jsx_runtime_1.jsxs)("div", { className: "text-xl font-bold mb-4", children: [title, " ", (0, jsx_runtime_1.jsx)("code", { children: curie })] }), (0, jsx_runtime_1.jsx)("p", { className: "text-md", children: description }), types.length > 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs font-thin my-2", children: "Categories" }), (0, jsx_runtime_1.jsx)("div", { className: "flex flex-wrap ml-1", children: types === null || types === void 0 ? void 0 : types.map((tag) => ((0, jsx_runtime_1.jsx)("span", { className: "ml-1 text-xs inline-flex items-center uppercase px-3 py-1 rounded-full border", children: tag }))) })] })), tags.length > 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs font-thin my-2", children: "Tags" }), (0, jsx_runtime_1.jsx)("div", { className: "flex flex-wrap ml-1", children: tags === null || tags === void 0 ? void 0 : tags.map((tag) => ((0, jsx_runtime_1.jsx)("span", { className: "ml-1 text-xs inline-flex items-center uppercase px-3 py-1 rounded-full border", children: tag }))) })] }))] }));
29
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "hover-document w-[500px] sm:max-w-[500px] p-3", children: [(0, jsx_runtime_1.jsxs)("p", { className: "text-sm font-light", children: ["RRID: ", category] }), (0, jsx_runtime_1.jsxs)("div", { className: "mb-4 text-xl font-bold", children: [title, " ", (0, jsx_runtime_1.jsx)("code", { children: curie })] }), (0, jsx_runtime_1.jsx)("p", { className: "text-md", children: description }), types.length > 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "my-2 text-xs font-thin", children: "Categories" }), (0, jsx_runtime_1.jsx)("div", { className: "flex flex-wrap ml-1", children: types === null || types === void 0 ? void 0 : types.map((tag) => ((0, jsx_runtime_1.jsx)("span", { className: "inline-flex items-center px-3 py-1 ml-1 text-xs uppercase border rounded-full", children: tag }))) })] })), tags.length > 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "my-2 text-xs font-thin", children: "Tags" }), (0, jsx_runtime_1.jsx)("div", { className: "flex flex-wrap ml-1", children: tags === null || tags === void 0 ? void 0 : tags.map((tag) => ((0, jsx_runtime_1.jsx)("span", { className: "inline-flex items-center px-3 py-1 ml-1 text-xs uppercase border rounded-full", children: tag }))) })] }))] }));
30
30
  }
31
31
  function RRIDLink({ rrid }) {
32
32
  return ((0, jsx_runtime_1.jsx)(HoverPopover_1.HoverPopover, { card: (0, jsx_runtime_1.jsx)(RRIDChild, { rrid: rrid }), children: (0, jsx_runtime_1.jsxs)("a", { href: `https://scicrunch.org/resolver/${rrid}`, target: "_blank", rel: "noopener noreferrer", children: ["RRID: ", (0, jsx_runtime_1.jsx)("cite", { className: "italic", children: rrid })] }) }));
@@ -29,7 +29,7 @@ function WikiChild({ page, wiki, load }) {
29
29
  const url = (_b = (_a = content_urls === null || content_urls === void 0 ? void 0 : content_urls.desktop) === null || _a === void 0 ? void 0 : _a.page) !== null && _b !== void 0 ? _b : createWikiUrl(page);
30
30
  const image = thumbnail === null || thumbnail === void 0 ? void 0 : thumbnail.source;
31
31
  if (error) {
32
- return ((0, jsx_runtime_1.jsxs)("span", { children: [(0, jsx_runtime_1.jsxs)("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: [(0, jsx_runtime_1.jsx)(ArrowTopRightOnSquareIcon_1.default, { className: "w-4 h-4 float-right" }), (0, jsx_runtime_1.jsx)(WikiTextMark, {})] }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-2", children: ["Error loading \"", page, "\" from wikipedia."] })] }));
32
+ return ((0, jsx_runtime_1.jsxs)("span", { children: [(0, jsx_runtime_1.jsxs)("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: [(0, jsx_runtime_1.jsx)(ArrowTopRightOnSquareIcon_1.default, { className: "float-right w-4 h-4" }), (0, jsx_runtime_1.jsx)(WikiTextMark, {})] }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-2", children: ["Error loading \"", page, "\" from wikipedia."] })] }));
33
33
  }
34
34
  return ((0, jsx_runtime_1.jsx)(LinkCard_1.LinkCard, { loading: !data, url: url, title: (0, jsx_runtime_1.jsx)(WikiTextMark, {}), thumbnail: image, description: extract }));
35
35
  }
package/dist/cjs/math.js CHANGED
@@ -13,7 +13,7 @@ const mathRenderer = (node) => {
13
13
  return ((0, jsx_runtime_1.jsxs)("pre", { title: node.message, children: [(0, jsx_runtime_1.jsxs)("span", { className: "text-red-500", children: [(0, jsx_runtime_1.jsx)(ExclamationCircleIcon_1.default, { className: "inline h-[1em] mr-1" }), node.message, '\n\n'] }), node.value] }, node.key));
14
14
  }
15
15
  const id = node.html_id || node.identifier || node.key;
16
- return ((0, jsx_runtime_1.jsxs)("div", { id: id, className: "flex group my-5", children: [(0, jsx_runtime_1.jsx)("div", { dangerouslySetInnerHTML: { __html: node.html }, className: "overflow-x-auto overflow-y-hidden flex-grow" }), node.enumerator && ((0, jsx_runtime_1.jsx)("div", { className: "flex-none text-right m-0 pl-2 self-center relative select-none", children: (0, jsx_runtime_1.jsxs)(heading_1.HashLink, { id: id, kind: "Equation", className: "text-inherit hover:text-inherit", children: ["(", node.enumerator, ")"] }) }))] }, node.key));
16
+ return ((0, jsx_runtime_1.jsxs)("div", { id: id, className: "flex my-5 group", children: [(0, jsx_runtime_1.jsx)("div", { dangerouslySetInnerHTML: { __html: node.html }, className: "flex-grow overflow-x-auto overflow-y-hidden" }), node.enumerator && ((0, jsx_runtime_1.jsx)("div", { className: "relative self-center flex-none pl-2 m-0 text-right select-none", children: (0, jsx_runtime_1.jsxs)(heading_1.HashLink, { id: id, kind: "Equation", className: "text-inherit hover:text-inherit", children: ["(", node.enumerator, ")"] }) }))] }, node.key));
17
17
  }
18
18
  if (node.error || !node.html) {
19
19
  return (0, jsx_runtime_1.jsx)(inlineError_1.InlineError, { value: node.value, message: node.message }, node.key);
package/dist/cjs/proof.js CHANGED
@@ -92,7 +92,7 @@ function Proof({ title, kind, color, dropdown, children, identifier, enumerator,
92
92
  'bg-red-50/80 dark:bg-slate-900': color === 'red',
93
93
  'bg-purple-50/80 dark:bg-slate-900': color === 'purple',
94
94
  'cursor-pointer hover:shadow-[inset_0_0_0px_30px_#00000003] dark:hover:shadow-[inset_0_0_0px_30px_#FFFFFF03]': dropdown,
95
- }), children: [(0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('text-neutral-900 dark:text-white grow self-center overflow-hidden break-words', 'ml-4'), children: [(0, jsx_runtime_1.jsxs)(heading_1.HashLink, { id: identifier, kind: capitalize(kind), children: [capitalize(kind), " ", enumerator] }), ' ', title && (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["(", title, ")"] })] }), dropdown && ((0, jsx_runtime_1.jsx)("div", { className: "font-thin text-sm text-neutral-700 dark:text-neutral-200 self-center flex-none", children: (0, jsx_runtime_1.jsx)(ChevronRightIcon_1.default, { className: (0, classnames_1.default)(iconClass, 'transition-transform details-toggle') }) }))] }), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('px-4', { 'details-body': dropdown }), children: children })] }));
95
+ }), children: [(0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('text-neutral-900 dark:text-white grow self-center overflow-hidden break-words', 'ml-4'), children: [(0, jsx_runtime_1.jsxs)(heading_1.HashLink, { id: identifier, kind: capitalize(kind), children: [capitalize(kind), " ", enumerator] }), ' ', title && (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["(", title, ")"] })] }), dropdown && ((0, jsx_runtime_1.jsx)("div", { className: "self-center flex-none text-sm font-thin text-neutral-700 dark:text-neutral-200", children: (0, jsx_runtime_1.jsx)(ChevronRightIcon_1.default, { className: (0, classnames_1.default)(iconClass, 'transition-transform details-toggle') }) }))] }), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('px-4', { 'details-body': dropdown }), children: children })] }));
96
96
  }
97
97
  exports.Proof = Proof;
98
98
  const ProofRenderer = (node, children) => {
package/dist/cjs/tabs.js CHANGED
@@ -35,12 +35,12 @@ function TabSet({ tabs, children }) {
35
35
  return;
36
36
  setActive(tab === null || tab === void 0 ? void 0 : tab.id);
37
37
  }, [tabs, lastClickedTab, setActive]);
38
- return ((0, jsx_runtime_1.jsx)(TabSetStateProvider, { active: active, children: (0, jsx_runtime_1.jsxs)("div", { className: "my-5", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex flex-row border-b border-b-gray-100 overflow-x-auto", children: tabs.map((tab) => {
38
+ return ((0, jsx_runtime_1.jsx)(TabSetStateProvider, { active: active, children: (0, jsx_runtime_1.jsxs)("div", { className: "my-5", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex flex-row overflow-x-auto border-b border-b-gray-100", children: tabs.map((tab) => {
39
39
  return ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('flex-none px-3 py-1 font-semibold cursor-pointer', {
40
40
  'text-blue-600 border-b-2 border-b-blue-600 dark:border-b-white dark:text-white': active === tab.id,
41
41
  'text-gray-500 dark:text-gray-300 hover:text-gray-700 dark:hover:text-gray-100': active !== tab.id,
42
42
  }), onClick: () => onClick(tab), children: tab.title }, tab.id));
43
- }) }), (0, jsx_runtime_1.jsx)("div", { className: "shadow flex", children: (0, jsx_runtime_1.jsx)("div", { className: "w-full px-6", children: children }) })] }) }));
43
+ }) }), (0, jsx_runtime_1.jsx)("div", { className: "flex shadow", children: (0, jsx_runtime_1.jsx)("div", { className: "w-full px-6", children: children }) })] }) }));
44
44
  }
45
45
  exports.TabSet = TabSet;
46
46
  function TabItem({ id, children, }) {
@@ -126,7 +126,7 @@ export function Admonition({ title, kind, color, simple, dropdown, children, hid
126
126
  'text-green-600': color === 'green',
127
127
  'text-amber-600': color === 'yellow',
128
128
  'text-red-600': color === 'red',
129
- }) })), _jsx("div", { className: classNames('text-neutral-900 dark:text-white grow self-center overflow-hidden break-words', { 'ml-4': hideIcon }), children: title }), dropdown && (_jsx("div", { className: "font-thin text-sm text-neutral-700 dark:text-neutral-200 self-center flex-none", children: _jsx(ChevronRightIcon, { className: classNames(iconClass, 'transition-transform details-toggle') }) }))] })), _jsx("div", { className: classNames('px-4', { 'py-1': !simple, 'details-body': dropdown }), children: children })] }));
129
+ }) })), _jsx("div", { className: classNames('text-neutral-900 dark:text-white grow self-center overflow-hidden break-words', { 'ml-4': hideIcon }), children: title }), dropdown && (_jsx("div", { className: "self-center flex-none text-sm font-thin text-neutral-700 dark:text-neutral-200", children: _jsx(ChevronRightIcon, { className: classNames(iconClass, 'transition-transform details-toggle') }) }))] })), _jsx("div", { className: classNames('px-4', { 'py-1': !simple, 'details-body': dropdown }), children: children })] }));
130
130
  }
131
131
  export const AdmonitionRenderer = (node, children) => {
132
132
  var _a;
package/dist/esm/basic.js CHANGED
@@ -66,7 +66,7 @@ const BASIC_RENDERERS = {
66
66
  }
67
67
  const label = typeof children === 'string' ? backwardsCompatibleLabel(children, node.kind) : children;
68
68
  const id = node.html_id || node.identifier || node.key;
69
- return (_jsx(HashLink, { id: id, kind: node.kind, className: "mr-1 text-inherit hover:text-inherit font-semibold hover:font-semibold", children: label }, node.key));
69
+ return (_jsx(HashLink, { id: id, kind: node.kind, className: "mr-1 font-semibold text-inherit hover:text-inherit hover:font-semibold", children: label }, node.key));
70
70
  },
71
71
  table(node, children) {
72
72
  // TODO: actually render the tbody on the server if it isn't included here.
@@ -93,7 +93,7 @@ const BASIC_RENDERERS = {
93
93
  return _jsx("sup", { children: children }, node.key);
94
94
  },
95
95
  abbreviation(node, children) {
96
- return (_jsx(HoverPopover, { side: "top", card: _jsx("div", { className: "bg-blue-900 text-white dark:bg-white dark:text-black text-xs p-1", children: node.title }), arrowClass: "fill-blue-900 dark:fill-white", children: _jsx("abbr", { "aria-label": node.title, className: "cursor-help border-b border-dotted", children: children }) }, node.key));
96
+ return (_jsx(HoverPopover, { side: "top", card: _jsx("div", { className: "p-1 text-xs text-white bg-blue-900 dark:bg-white dark:text-black", children: node.title }), arrowClass: "fill-blue-900 dark:fill-white", children: _jsx("abbr", { "aria-label": node.title, className: "border-b border-dotted cursor-help", children: children }) }, node.key));
97
97
  },
98
98
  mystComment() {
99
99
  return null;
package/dist/esm/card.js CHANGED
@@ -2,10 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import classNames from 'classnames';
3
3
  import { useLinkProvider, useBaseurl, withBaseurl } from '@myst-theme/providers';
4
4
  export const Header = (node, children) => {
5
- return (_jsx("header", { 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));
5
+ return (_jsx("header", { className: "py-1 pl-3 m-0 border-b border-gray-100 bg-gray-50 dark:bg-slate-900 dark:border-gray-800", children: children }, node.key));
6
6
  };
7
7
  export const Footer = (node, children) => {
8
- return (_jsx("footer", { 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));
8
+ return (_jsx("footer", { className: "py-1 pl-3 m-0 border-t border-gray-100 bg-gray-50 dark:bg-slate-900 dark:border-gray-800", children: children }, node.key));
9
9
  };
10
10
  export const CardTitle = (node, children) => {
11
11
  return (_jsx("div", { className: "pt-3 font-bold group-hover:underline", children: children }, node.key));
@@ -38,9 +38,9 @@ function Card({ children, url, isStatic, }) {
38
38
  const link = !!url;
39
39
  const sharedStyle = 'my-5 rounded shadow dark:shadow-neutral-800 overflow-hidden border border-gray-100 dark:border-gray-800 flex flex-col';
40
40
  if (link) {
41
- return (_jsxs(ExternalOrInternalLink, { to: url, isStatic: isStatic, className: classNames(sharedStyle, 'text-inherit hover:text-inherit', 'block font-normal no-underline hover:no-underline cursor-pointer group', 'hover:border-blue-500 dark:hover:border-blue-400'), children: [parts.header, _jsx("div", { className: "py-2 px-4 flex-grow", children: parts.body }), parts.footer] }));
41
+ return (_jsxs(ExternalOrInternalLink, { to: url, isStatic: isStatic, className: classNames(sharedStyle, 'text-inherit hover:text-inherit', 'block font-normal no-underline hover:no-underline cursor-pointer group', 'hover:border-blue-500 dark:hover:border-blue-400'), children: [parts.header, _jsx("div", { className: "flex-grow px-4 py-2", children: parts.body }), parts.footer] }));
42
42
  }
43
- return (_jsxs("div", { className: sharedStyle, children: [parts.header, _jsx("div", { className: "py-2 px-4 flex-grow", children: parts.body }), parts.footer] }));
43
+ return (_jsxs("div", { className: sharedStyle, children: [parts.header, _jsx("div", { className: "flex-grow px-4 py-2", children: parts.body }), parts.footer] }));
44
44
  }
45
45
  export const CardRenderer = (node, children) => {
46
46
  return (_jsx(Card, { url: node.url, isStatic: node.static || false, children: children }, node.key));
package/dist/esm/code.js CHANGED
@@ -21,7 +21,7 @@ export function CodeBlock(props) {
21
21
  'shadow hover:shadow-md dark:shadow-2xl dark:shadow-neutral-900 my-5 text-sm': shadow,
22
22
  'bg-stone-200/10': background,
23
23
  'border border-l-4 border-l-blue-400 border-gray-200 dark:border-l-blue-400 dark:border-gray-800': border,
24
- }), children: [filename && _jsx("div", { className: "leading-3 mt-1 p-1", children: filename }), _jsx(SyntaxHighlighter, { language: normalizeLanguage(lang), startingLineNumber: startingLineNumber, showLineNumbers: showLineNumbers, style: isLight ? Object.assign(Object.assign({}, light), { hljs: Object.assign(Object.assign({}, light.hljs), { background: 'transparent' }) }) : dark, wrapLines: true, lineNumberContainerStyle: {
24
+ }), children: [filename && _jsx("div", { className: "p-1 mt-1 leading-3", children: filename }), _jsx(SyntaxHighlighter, { language: normalizeLanguage(lang), startingLineNumber: startingLineNumber, showLineNumbers: showLineNumbers, style: isLight ? Object.assign(Object.assign({}, light), { hljs: Object.assign(Object.assign({}, light.hljs), { background: 'transparent' }) }) : dark, wrapLines: true, lineNumberContainerStyle: {
25
25
  // This stops page content shifts
26
26
  display: 'inline-block',
27
27
  float: 'left',
@@ -57,7 +57,7 @@ function isColor(maybeColorHash) {
57
57
  }
58
58
  const inlineCode = (node, children) => {
59
59
  if (isColor(node.value)) {
60
- return (_jsxs("code", { className: "bg-slate-100 text-slate-700 dark:bg-slate-800 dark:text-slate-100 px-1 rounded", children: [children, _jsx("span", { style: { backgroundColor: node.value }, className: "inline-block w-[10px] h-[10px] rounded-full ml-1" })] }, node.key));
60
+ return (_jsxs("code", { className: "px-1 rounded bg-slate-100 text-slate-700 dark:bg-slate-800 dark:text-slate-100", children: [children, _jsx("span", { style: { backgroundColor: node.value }, className: "inline-block w-[10px] h-[10px] rounded-full ml-1" })] }, node.key));
61
61
  }
62
62
  return _jsx("code", { children: children }, node.key);
63
63
  };
@@ -8,5 +8,5 @@ export function LinkCard({ url, title, internal = false, loading = false, descri
8
8
  const to = withBaseurl(url, baseurl);
9
9
  return (_jsxs("div", { className: classNames('hover-card-content rounded overflow-hidden', className, {
10
10
  'animate-pulse': loading,
11
- }), children: [!loading && thumbnail && (_jsx("img", { src: thumbnail, className: "w-full h-[150px] object-cover object-top object-left m-0" })), loading && _jsx("div", { className: "animate-pulse bg-slate-100 dark:bg-slate-800 w-full h-[150px]" }), internal && (_jsx(Link, { to: to, className: "block text-sm font-semibold text-inherit hover:text-inherit px-3 mt-3", prefetch: "intent", children: title })), !internal && (_jsxs("a", { href: to, className: "block text-sm font-semibold text-inherit hover:text-inherit px-3 mt-3", target: "_blank", rel: "noreferrer", children: [_jsx(ExternalLinkIcon, { className: "w-4 h-4 float-right" }), title] })), !loading && description && (_jsx("div", { className: "p-3 prose text-sm max-h-[300px] overflow-hidden", children: description }))] }));
11
+ }), children: [!loading && thumbnail && (_jsx("img", { src: thumbnail, className: "w-full h-[150px] object-cover object-top object-left m-0" })), loading && _jsx("div", { className: "animate-pulse bg-slate-100 dark:bg-slate-800 w-full h-[150px]" }), internal && (_jsx(Link, { to: to, className: "block px-3 mt-3 text-sm font-semibold text-inherit hover:text-inherit", prefetch: "intent", children: title })), !internal && (_jsxs("a", { href: to, className: "block px-3 mt-3 text-sm font-semibold text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: [_jsx(ExternalLinkIcon, { className: "float-right w-4 h-4" }), title] })), !loading && description && (_jsx("div", { className: "p-3 prose text-sm max-h-[300px] overflow-hidden", children: description }))] }));
12
12
  }
@@ -1,6 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import type { CrossReference } from 'myst-spec';
3
3
  import type { NodeRenderer } from '@myst-theme/providers';
4
+ export declare function useFetchMdast({ remote, url, dataUrl, }: {
5
+ remote?: boolean;
6
+ url?: string;
7
+ dataUrl?: string;
8
+ }): import("swr/_internal").SWRResponse<any, any, any>;
4
9
  export declare function CrossReferenceHover({ url: urlIn, dataUrl: dataUrlIn, remote: remoteIn, children, identifier, htmlId, }: {
5
10
  remote?: boolean;
6
11
  url?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"crossReference.d.ts","sourceRoot":"","sources":["../../src/crossReference.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAahD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAyJ1D,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EACR,UAAU,EACV,MAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAuDA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAuB3D,CAAC;AAEF,QAAA,MAAM,yBAAyB;;CAE9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"crossReference.d.ts","sourceRoot":"","sources":["../../src/crossReference.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAahD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA2H1D,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,GAAG,EACH,OAAO,GACR,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,sDAWA;AAuBD,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EACR,UAAU,EACV,MAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAuDA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAuB3D,CAAC;AAEF,QAAA,MAAM,yBAAyB;;CAE9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -101,22 +101,26 @@ function openDetails(el) {
101
101
  }
102
102
  openDetails(el.parentElement);
103
103
  }
104
- function useSelectNodes({ load, remote, url, dataUrl, identifier, }) {
105
- var _a, _b;
106
- const baseurl = useBaseurl();
107
- const references = useReferences();
104
+ export function useFetchMdast({ remote, url, dataUrl, }) {
105
+ var _a;
108
106
  // dataUrl should point directly to the cross reference mdast data.
109
107
  // If dataUrl is not provided, it will be computed by appending .json to the url.
110
- if (!load)
111
- return;
108
+ const baseurl = useBaseurl();
112
109
  const external = (_a = url === null || url === void 0 ? void 0 : url.startsWith('http')) !== null && _a !== void 0 ? _a : false;
113
110
  const lookupUrl = external
114
111
  ? `/api/lookup?url=${url}.json`
115
112
  : dataUrl
116
113
  ? `${withBaseurl(dataUrl, baseurl)}`
117
114
  : `${withBaseurl(url, baseurl)}.json`;
118
- const { data, error } = useSWR(remote ? lookupUrl : null, fetcher);
119
- const mdast = (_b = data === null || data === void 0 ? void 0 : data.mdast) !== null && _b !== void 0 ? _b : references === null || references === void 0 ? void 0 : references.article;
115
+ return useSWR(remote ? lookupUrl : null, fetcher);
116
+ }
117
+ function useSelectNodes({ load, remote, url, dataUrl, identifier, }) {
118
+ var _a;
119
+ const references = useReferences();
120
+ if (!load)
121
+ return;
122
+ const { data, error } = useFetchMdast({ remote, url, dataUrl });
123
+ const mdast = (_a = data === null || data === void 0 ? void 0 : data.mdast) !== null && _a !== void 0 ? _a : references === null || references === void 0 ? void 0 : references.article;
120
124
  const { nodes, htmlId } = selectMdastNodes(mdast, identifier);
121
125
  return { htmlId, nodes, loading: remote && !data, error: remote && error };
122
126
  }
@@ -6,7 +6,7 @@ export const SummaryTitle = (node, children) => {
6
6
  return children;
7
7
  };
8
8
  export function Details({ title, children, open, }) {
9
- return (_jsxs("details", { className: classNames('rounded-md my-5 shadow dark:shadow-2xl dark:shadow-neutral-900 overflow-hidden', 'bg-gray-50 dark:bg-stone-800'), open: open, children: [_jsx("summary", { className: classNames('m-0 text-lg font-medium py-1 min-h-[2em] pl-3', 'cursor-pointer hover:shadow-[inset_0_0_0px_30px_#00000003] dark:hover:shadow-[inset_0_0_0px_30px_#FFFFFF03]', 'bg-gray-100 dark:bg-slate-900'), children: _jsxs("span", { className: "text-neutral-900 dark:text-white", children: [_jsx("span", { className: "block float-right font-thin text-sm text-neutral-700 dark:text-neutral-200", children: _jsx(ChevronRightIcon, { className: classNames(iconClass, 'details-toggle', 'transition-transform') }) }), title] }) }), _jsx("div", { className: "px-4 py-1 details-body", children: children })] }));
9
+ return (_jsxs("details", { className: classNames('rounded-md my-5 shadow dark:shadow-2xl dark:shadow-neutral-900 overflow-hidden', 'bg-gray-50 dark:bg-stone-800'), open: open, children: [_jsx("summary", { className: classNames('m-0 text-lg font-medium py-1 min-h-[2em] pl-3', 'cursor-pointer hover:shadow-[inset_0_0_0px_30px_#00000003] dark:hover:shadow-[inset_0_0_0px_30px_#FFFFFF03]', 'bg-gray-100 dark:bg-slate-900'), children: _jsxs("span", { className: "text-neutral-900 dark:text-white", children: [_jsx("span", { className: "block float-right text-sm font-thin text-neutral-700 dark:text-neutral-200", children: _jsx(ChevronRightIcon, { className: classNames(iconClass, 'details-toggle', 'transition-transform') }) }), title] }) }), _jsx("div", { className: "px-4 py-1 details-body", children: children })] }));
10
10
  }
11
11
  export const DetailsRenderer = (node, children) => {
12
12
  const [title, ...rest] = children;
@@ -62,7 +62,7 @@ export function Callout({ title, color, dropdown, children, identifier, Icon, })
62
62
  'text-red-600': color === 'red',
63
63
  'text-purple-600': color === 'purple',
64
64
  })) })), _jsx("div", { className: classNames('text-neutral-900 dark:text-white grow self-center overflow-hidden break-words', { 'ml-4': !Icon }, // No icon!
65
- 'group'), children: title }), dropdown && (_jsx("div", { className: "font-thin text-sm text-neutral-700 dark:text-neutral-200 self-center flex-none", children: _jsx(ChevronRightIcon, { className: classNames(iconClass, 'transition-transform details-toggle') }) }))] }), _jsx("div", { className: classNames('px-4', { 'details-body': dropdown }), children: children })] }));
65
+ 'group'), children: title }), dropdown && (_jsx("div", { className: "self-center flex-none text-sm font-thin text-neutral-700 dark:text-neutral-200", children: _jsx(ChevronRightIcon, { className: classNames(iconClass, 'transition-transform details-toggle') }) }))] }), _jsx("div", { className: classNames('px-4', { 'details-body': dropdown }), children: children })] }));
66
66
  }
67
67
  export const ExerciseRenderer = (node, children) => {
68
68
  var _a, _b, _c;
@@ -1 +1 @@
1
- {"version":3,"file":"chemicalFormula.d.ts","sourceRoot":"","sources":["../../../src/extensions/chemicalFormula.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAyB1D,eAAO,MAAM,eAAe,EAAE,YAU7B,CAAC;AAEF,QAAA,MAAM,cAAc;;CAEnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"chemicalFormula.d.ts","sourceRoot":"","sources":["../../../src/extensions/chemicalFormula.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA0B1D,eAAO,MAAM,eAAe,EAAE,YAU7B,CAAC;AAEF,QAAA,MAAM,cAAc;;CAEnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -5,8 +5,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  * @returns ['H', '2', '0']
6
6
  */
7
7
  function parseFormula(formula) {
8
- return [...(formula !== null && formula !== void 0 ? formula : '')].reduce((acc, letter) => {
8
+ return [...(formula !== null && formula !== void 0 ? formula : '')].reduce((acc, current) => {
9
9
  const last = acc.pop();
10
+ const letter = current === '+' ? '⁺' : current === '-' ? '⁻' : current;
10
11
  const isNumber = letter.match(/[0-9]/);
11
12
  const lastIsNumber = last === null || last === void 0 ? void 0 : last.match(/[0-9]/);
12
13
  if (isNumber) {
@@ -23,7 +24,7 @@ function parseFormula(formula) {
23
24
  }
24
25
  export const ChemicalFormula = (node) => {
25
26
  const parts = parseFormula(node.value);
26
- return (_jsx("code", { className: "text-inherit", children: parts.map((letter, index) => {
27
+ return (_jsx("span", { className: "text-inherit", "aria-roledescription": "Chemical Formula", children: parts.map((letter, index) => {
27
28
  if (letter.match(/[0-9]/))
28
29
  return _jsx("sub", { children: letter }, index);
29
30
  return _jsx("span", { children: letter }, index);
@@ -23,7 +23,7 @@ export function HashLink({ id, kind, title = `Link to this ${kind}`, children =
23
23
  const Heading = (node, children) => {
24
24
  const { enumerator, depth, key, identifier, html_id } = node;
25
25
  const id = html_id || identifier || key;
26
- const textContent = (_jsxs(_Fragment, { children: [enumerator && _jsx("span", { className: "select-none mr-3", children: enumerator }), _jsx("span", { className: "heading-text", children: children }), _jsx(HashLink, { id: id, kind: "Section", className: "px-2 font-normal", hover: true, hideInPopup: true })] }));
26
+ const textContent = (_jsxs(_Fragment, { children: [enumerator && _jsx("span", { className: "mr-3 select-none", children: enumerator }), _jsx("span", { className: "heading-text", children: children }), _jsx(HashLink, { id: id, kind: "Section", className: "px-2 font-normal", hover: true, hideInPopup: true })] }));
27
27
  // The `heading-text` class is picked up in the Outline to select without the enumerator and "#" link
28
28
  return e(`h${depth}`, {
29
29
  key: node.key,
@@ -6,6 +6,7 @@ export { CodeBlock } from './code';
6
6
  export { Admonition, AdmonitionKind } from './admonitions';
7
7
  export { Details } from './dropdown';
8
8
  export { TabSet, TabItem } from './tabs';
9
+ export { useFetchMdast } from './crossReference';
9
10
  export declare const DEFAULT_RENDERERS: Record<string, NodeRenderer>;
10
11
  export declare function useParse(node: GenericParent | null, renderers?: Record<string, NodeRenderer>): import("react").ReactNode;
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAwBjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAsB1D,CAAC;AAEF,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,GAAG,IAAI,EAC1B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAqB,6BAU5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAwBjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAsB1D,CAAC;AAEF,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,GAAG,IAAI,EAC1B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAqB,6BAU5D"}
package/dist/esm/index.js CHANGED
@@ -25,6 +25,7 @@ export { CodeBlock } from './code';
25
25
  export { Admonition, AdmonitionKind } from './admonitions';
26
26
  export { Details } from './dropdown';
27
27
  export { TabSet, TabItem } from './tabs';
28
+ export { useFetchMdast } from './crossReference';
28
29
  export const DEFAULT_RENDERERS = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASIC_RENDERERS), UNKNOWN_MYST_RENDERERS), IMAGE_RENDERERS), LINK_RENDERERS), CODE_RENDERERS), MATH_RENDERERS), CITE_RENDERERS), TAB_RENDERERS), IFRAME_RENDERERS), FOOTNOTE_RENDERERS), ADMONITION_RENDERERS), REACTIVE_RENDERERS), HEADING_RENDERERS), CROSS_REFERENCE_RENDERERS), DROPDOWN_RENDERERS), CARD_RENDERERS), GRID_RENDERERS), INLINE_EXPRESSION_RENDERERS), EXT_RENDERERS), PROOF_RENDERERS), EXERCISE_RENDERERS);
29
30
  export function useParse(node, renderers = DEFAULT_RENDERERS) {
30
31
  if (!node)
@@ -40,7 +40,7 @@ function GithubFilePreview({ url, raw, org, repo, file, from, to, open, }) {
40
40
  const { data, error } = useLoadWhenOpen(open, raw, fetcher);
41
41
  let code = data;
42
42
  if (error) {
43
- return (_jsxs("div", { className: "hover-document w-[500px] sm:max-w-[500px]", children: [_jsx("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: _jsx(ExternalLinkIcon, { className: "w-4 h-4 float-right" }) }), _jsxs("div", { className: "mt-2", children: ["Error loading \"", file, "\" from GitHub."] })] }));
43
+ return (_jsxs("div", { className: "hover-document w-[500px] sm:max-w-[500px]", children: [_jsx("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: _jsx(ExternalLinkIcon, { className: "float-right w-4 h-4" }) }), _jsxs("div", { className: "mt-2", children: ["Error loading \"", file, "\" from GitHub."] })] }));
44
44
  }
45
45
  const lang = extToLanguage(file === null || file === void 0 ? void 0 : file.split('.').pop());
46
46
  let startingLineNumber = 1;
@@ -77,14 +77,14 @@ function GithubIssuePreview({ url, org, repo, issue_number, open, }) {
77
77
  }
78
78
  const resp = data;
79
79
  if (error) {
80
- return (_jsxs("div", { className: "hover-document", children: [_jsx("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: _jsx(ExternalLinkIcon, { className: "w-4 h-4 float-right" }) }), _jsx("div", { className: "mt-2", children: "Error loading from GitHub." })] }));
80
+ return (_jsxs("div", { className: "hover-document", children: [_jsx("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: _jsx(ExternalLinkIcon, { className: "float-right w-4 h-4" }) }), _jsx("div", { className: "mt-2", children: "Error loading from GitHub." })] }));
81
81
  }
82
82
  const dateString = new Date(resp.created_at).toLocaleDateString('en-US', {
83
83
  year: 'numeric',
84
84
  month: 'long',
85
85
  day: 'numeric',
86
86
  });
87
- return (_jsxs("div", { className: "hover-document w-[400px] sm:max-w-[400px] p-3", children: [_jsxs("div", { className: "text-xs font-light", children: [org, "/", repo] }), _jsxs("div", { className: "text-lg font-bold my-2 dark:text-white", children: [resp.state === 'open' && (_jsx(PlusCircleIcon, { className: "w-6 h-6 inline-block text-green-700 dark:text-green-500 mr-2 -translate-y-px" })), resp.state === 'closed' && (_jsx(CheckCircleIcon, { className: "w-6 h-6 inline-block text-purple-700 dark:text-purple-500 mr-2 -translate-y-px" })), resp.title] }), _jsxs("div", { className: "text-xs font-light", children: ["#", issue_number, " opened on ", dateString, " by", ' ', _jsxs("span", { className: "font-normal", children: ["@", resp.user.login] })] }), _jsx("p", { className: "text-md max-h-[4rem] overflow-hidden", children: resp.body }), ((_a = resp.labels) === null || _a === void 0 ? void 0 : _a.length) > 0 && (_jsx("div", { className: "flex flex-wrap", children: (_b = resp.labels) === null || _b === void 0 ? void 0 : _b.map((label) => (_jsx("span", { className: classNames('mr-1 text-xs inline-flex items-center px-2 py-0.5 rounded-full', {
87
+ return (_jsxs("div", { className: "hover-document w-[400px] sm:max-w-[400px] p-3", children: [_jsxs("div", { className: "text-xs font-light", children: [org, "/", repo] }), _jsxs("div", { className: "my-2 text-lg font-bold dark:text-white", children: [resp.state === 'open' && (_jsx(PlusCircleIcon, { className: "inline-block w-6 h-6 mr-2 text-green-700 dark:text-green-500 -translate-y-px" })), resp.state === 'closed' && (_jsx(CheckCircleIcon, { className: "inline-block w-6 h-6 mr-2 text-purple-700 dark:text-purple-500 -translate-y-px" })), resp.title] }), _jsxs("div", { className: "text-xs font-light", children: ["#", issue_number, " opened on ", dateString, " by", ' ', _jsxs("span", { className: "font-normal", children: ["@", resp.user.login] })] }), _jsx("p", { className: "text-md max-h-[4rem] overflow-hidden", children: resp.body }), ((_a = resp.labels) === null || _a === void 0 ? void 0 : _a.length) > 0 && (_jsx("div", { className: "flex flex-wrap", children: (_b = resp.labels) === null || _b === void 0 ? void 0 : _b.map((label) => (_jsx("span", { className: classNames('mr-1 text-xs inline-flex items-center px-2 py-0.5 rounded-full', {
88
88
  'text-white': useWhiteTextColor(label.color),
89
89
  }), style: { backgroundColor: `#${label.color}` }, children: label.name }, label.id))) }))] }));
90
90
  }
@@ -51,7 +51,7 @@ export const linkBlock = (node, children) => {
51
51
  const iconClass = 'w-6 h-6 self-center transition-transform flex-none ml-3';
52
52
  const containerClass = 'flex-1 p-4 my-5 block border font-normal hover:border-blue-500 dark:hover:border-blue-400 no-underline hover:text-blue-600 dark:hover:text-blue-400 text-gray-600 dark:text-gray-100 border-gray-200 dark:border-gray-500 rounded shadow-sm hover:shadow-lg dark:shadow-neutral-700';
53
53
  const internal = (_a = node.internal) !== null && _a !== void 0 ? _a : false;
54
- const nested = (_jsxs("div", { className: "flex align-middle h-full", children: [_jsxs("div", { className: "flex-grow", children: [node.title, _jsx("div", { className: "text-xs text-gray-500 dark:text-gray-400", children: children })] }), internal && _jsx(LinkIcon, { className: iconClass }), !internal && _jsx(ExternalLinkIcon, { className: iconClass })] }));
54
+ const nested = (_jsxs("div", { className: "flex h-full align-middle", children: [_jsxs("div", { className: "flex-grow", children: [node.title, _jsx("div", { className: "text-xs text-gray-500 dark:text-gray-400", children: children })] }), internal && _jsx(LinkIcon, { className: iconClass }), !internal && _jsx(ExternalLinkIcon, { className: iconClass })] }));
55
55
  if (internal) {
56
56
  return (_jsx("a", { href: node.url, className: containerClass, children: nested }, node.key));
57
57
  }
@@ -20,7 +20,7 @@ function RRIDChild({ rrid }) {
20
20
  const category = (_e = supercategory === null || supercategory === void 0 ? void 0 : supercategory[0]) === null || _e === void 0 ? void 0 : _e.name;
21
21
  const types = (_f = categories === null || categories === void 0 ? void 0 : categories.map(({ name }) => name)) !== null && _f !== void 0 ? _f : [];
22
22
  const tags = (_g = keywords === null || keywords === void 0 ? void 0 : keywords.map(({ keyword }) => keyword)) !== null && _g !== void 0 ? _g : [];
23
- return (_jsxs("div", { className: "hover-document w-[500px] sm:max-w-[500px] p-3", children: [_jsxs("p", { className: "text-sm font-light", children: ["RRID: ", category] }), _jsxs("div", { className: "text-xl font-bold mb-4", children: [title, " ", _jsx("code", { children: curie })] }), _jsx("p", { className: "text-md", children: description }), types.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "text-xs font-thin my-2", children: "Categories" }), _jsx("div", { className: "flex flex-wrap ml-1", children: types === null || types === void 0 ? void 0 : types.map((tag) => (_jsx("span", { className: "ml-1 text-xs inline-flex items-center uppercase px-3 py-1 rounded-full border", children: tag }))) })] })), tags.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "text-xs font-thin my-2", children: "Tags" }), _jsx("div", { className: "flex flex-wrap ml-1", children: tags === null || tags === void 0 ? void 0 : tags.map((tag) => (_jsx("span", { className: "ml-1 text-xs inline-flex items-center uppercase px-3 py-1 rounded-full border", children: tag }))) })] }))] }));
23
+ return (_jsxs("div", { className: "hover-document w-[500px] sm:max-w-[500px] p-3", children: [_jsxs("p", { className: "text-sm font-light", children: ["RRID: ", category] }), _jsxs("div", { className: "mb-4 text-xl font-bold", children: [title, " ", _jsx("code", { children: curie })] }), _jsx("p", { className: "text-md", children: description }), types.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "my-2 text-xs font-thin", children: "Categories" }), _jsx("div", { className: "flex flex-wrap ml-1", children: types === null || types === void 0 ? void 0 : types.map((tag) => (_jsx("span", { className: "inline-flex items-center px-3 py-1 ml-1 text-xs uppercase border rounded-full", children: tag }))) })] })), tags.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "my-2 text-xs font-thin", children: "Tags" }), _jsx("div", { className: "flex flex-wrap ml-1", children: tags === null || tags === void 0 ? void 0 : tags.map((tag) => (_jsx("span", { className: "inline-flex items-center px-3 py-1 ml-1 text-xs uppercase border rounded-full", children: tag }))) })] }))] }));
24
24
  }
25
25
  export function RRIDLink({ rrid }) {
26
26
  return (_jsx(HoverPopover, { card: _jsx(RRIDChild, { rrid: rrid }), children: _jsxs("a", { href: `https://scicrunch.org/resolver/${rrid}`, target: "_blank", rel: "noopener noreferrer", children: ["RRID: ", _jsx("cite", { className: "italic", children: rrid })] }) }));
@@ -23,7 +23,7 @@ function WikiChild({ page, wiki, load }) {
23
23
  const url = (_b = (_a = content_urls === null || content_urls === void 0 ? void 0 : content_urls.desktop) === null || _a === void 0 ? void 0 : _a.page) !== null && _b !== void 0 ? _b : createWikiUrl(page);
24
24
  const image = thumbnail === null || thumbnail === void 0 ? void 0 : thumbnail.source;
25
25
  if (error) {
26
- return (_jsxs("span", { children: [_jsxs("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: [_jsx(ExternalLinkIcon, { className: "w-4 h-4 float-right" }), _jsx(WikiTextMark, {})] }), _jsxs("div", { className: "mt-2", children: ["Error loading \"", page, "\" from wikipedia."] })] }));
26
+ return (_jsxs("span", { children: [_jsxs("a", { href: url, className: "block text-inherit hover:text-inherit", target: "_blank", rel: "noreferrer", children: [_jsx(ExternalLinkIcon, { className: "float-right w-4 h-4" }), _jsx(WikiTextMark, {})] }), _jsxs("div", { className: "mt-2", children: ["Error loading \"", page, "\" from wikipedia."] })] }));
27
27
  }
28
28
  return (_jsx(LinkCard, { loading: !data, url: url, title: _jsx(WikiTextMark, {}), thumbnail: image, description: extract }));
29
29
  }
package/dist/esm/math.js CHANGED
@@ -8,7 +8,7 @@ const mathRenderer = (node) => {
8
8
  return (_jsxs("pre", { title: node.message, children: [_jsxs("span", { className: "text-red-500", children: [_jsx(ExclamationCircleIcon, { className: "inline h-[1em] mr-1" }), node.message, '\n\n'] }), node.value] }, node.key));
9
9
  }
10
10
  const id = node.html_id || node.identifier || node.key;
11
- return (_jsxs("div", { id: id, className: "flex group my-5", children: [_jsx("div", { dangerouslySetInnerHTML: { __html: node.html }, className: "overflow-x-auto overflow-y-hidden flex-grow" }), node.enumerator && (_jsx("div", { className: "flex-none text-right m-0 pl-2 self-center relative select-none", children: _jsxs(HashLink, { id: id, kind: "Equation", className: "text-inherit hover:text-inherit", children: ["(", node.enumerator, ")"] }) }))] }, node.key));
11
+ return (_jsxs("div", { id: id, className: "flex my-5 group", children: [_jsx("div", { dangerouslySetInnerHTML: { __html: node.html }, className: "flex-grow overflow-x-auto overflow-y-hidden" }), node.enumerator && (_jsx("div", { className: "relative self-center flex-none pl-2 m-0 text-right select-none", children: _jsxs(HashLink, { id: id, kind: "Equation", className: "text-inherit hover:text-inherit", children: ["(", node.enumerator, ")"] }) }))] }, node.key));
12
12
  }
13
13
  if (node.error || !node.html) {
14
14
  return _jsx(InlineError, { value: node.value, message: node.message }, node.key);
package/dist/esm/proof.js CHANGED
@@ -86,7 +86,7 @@ export function Proof({ title, kind, color, dropdown, children, identifier, enum
86
86
  'bg-red-50/80 dark:bg-slate-900': color === 'red',
87
87
  'bg-purple-50/80 dark:bg-slate-900': color === 'purple',
88
88
  'cursor-pointer hover:shadow-[inset_0_0_0px_30px_#00000003] dark:hover:shadow-[inset_0_0_0px_30px_#FFFFFF03]': dropdown,
89
- }), children: [_jsxs("div", { className: classNames('text-neutral-900 dark:text-white grow self-center overflow-hidden break-words', 'ml-4'), children: [_jsxs(HashLink, { id: identifier, kind: capitalize(kind), children: [capitalize(kind), " ", enumerator] }), ' ', title && _jsxs(_Fragment, { children: ["(", title, ")"] })] }), dropdown && (_jsx("div", { className: "font-thin text-sm text-neutral-700 dark:text-neutral-200 self-center flex-none", children: _jsx(ChevronRightIcon, { className: classNames(iconClass, 'transition-transform details-toggle') }) }))] }), _jsx("div", { className: classNames('px-4', { 'details-body': dropdown }), children: children })] }));
89
+ }), children: [_jsxs("div", { className: classNames('text-neutral-900 dark:text-white grow self-center overflow-hidden break-words', 'ml-4'), children: [_jsxs(HashLink, { id: identifier, kind: capitalize(kind), children: [capitalize(kind), " ", enumerator] }), ' ', title && _jsxs(_Fragment, { children: ["(", title, ")"] })] }), dropdown && (_jsx("div", { className: "self-center flex-none text-sm font-thin text-neutral-700 dark:text-neutral-200", children: _jsx(ChevronRightIcon, { className: classNames(iconClass, 'transition-transform details-toggle') }) }))] }), _jsx("div", { className: classNames('px-4', { 'details-body': dropdown }), children: children })] }));
90
90
  }
91
91
  export const ProofRenderer = (node, children) => {
92
92
  var _a;
package/dist/esm/tabs.js CHANGED
@@ -29,12 +29,12 @@ export function TabSet({ tabs, children }) {
29
29
  return;
30
30
  setActive(tab === null || tab === void 0 ? void 0 : tab.id);
31
31
  }, [tabs, lastClickedTab, setActive]);
32
- return (_jsx(TabSetStateProvider, { active: active, children: _jsxs("div", { className: "my-5", children: [_jsx("div", { className: "flex flex-row border-b border-b-gray-100 overflow-x-auto", children: tabs.map((tab) => {
32
+ return (_jsx(TabSetStateProvider, { active: active, children: _jsxs("div", { className: "my-5", children: [_jsx("div", { className: "flex flex-row overflow-x-auto border-b border-b-gray-100", children: tabs.map((tab) => {
33
33
  return (_jsx("div", { className: classNames('flex-none px-3 py-1 font-semibold cursor-pointer', {
34
34
  'text-blue-600 border-b-2 border-b-blue-600 dark:border-b-white dark:text-white': active === tab.id,
35
35
  'text-gray-500 dark:text-gray-300 hover:text-gray-700 dark:hover:text-gray-100': active !== tab.id,
36
36
  }), onClick: () => onClick(tab), children: tab.title }, tab.id));
37
- }) }), _jsx("div", { className: "shadow flex", children: _jsx("div", { className: "w-full px-6", children: children }) })] }) }));
37
+ }) }), _jsx("div", { className: "flex shadow", children: _jsx("div", { className: "w-full px-6", children: children }) })] }) }));
38
38
  }
39
39
  export function TabItem({ id, children, }) {
40
40
  const active = useContext(TabSetContext);
@@ -1,6 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import type { CrossReference } from 'myst-spec';
3
3
  import type { NodeRenderer } from '@myst-theme/providers';
4
+ export declare function useFetchMdast({ remote, url, dataUrl, }: {
5
+ remote?: boolean;
6
+ url?: string;
7
+ dataUrl?: string;
8
+ }): import("swr/_internal").SWRResponse<any, any, any>;
4
9
  export declare function CrossReferenceHover({ url: urlIn, dataUrl: dataUrlIn, remote: remoteIn, children, identifier, htmlId, }: {
5
10
  remote?: boolean;
6
11
  url?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"crossReference.d.ts","sourceRoot":"","sources":["../../src/crossReference.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAahD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAyJ1D,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EACR,UAAU,EACV,MAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAuDA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAuB3D,CAAC;AAEF,QAAA,MAAM,yBAAyB;;CAE9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"crossReference.d.ts","sourceRoot":"","sources":["../../src/crossReference.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAahD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA2H1D,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,GAAG,EACH,OAAO,GACR,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,sDAWA;AAuBD,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EACR,UAAU,EACV,MAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAuDA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAuB3D,CAAC;AAEF,QAAA,MAAM,yBAAyB;;CAE9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chemicalFormula.d.ts","sourceRoot":"","sources":["../../../src/extensions/chemicalFormula.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAyB1D,eAAO,MAAM,eAAe,EAAE,YAU7B,CAAC;AAEF,QAAA,MAAM,cAAc;;CAEnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"chemicalFormula.d.ts","sourceRoot":"","sources":["../../../src/extensions/chemicalFormula.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA0B1D,eAAO,MAAM,eAAe,EAAE,YAU7B,CAAC;AAEF,QAAA,MAAM,cAAc;;CAEnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -6,6 +6,7 @@ export { CodeBlock } from './code';
6
6
  export { Admonition, AdmonitionKind } from './admonitions';
7
7
  export { Details } from './dropdown';
8
8
  export { TabSet, TabItem } from './tabs';
9
+ export { useFetchMdast } from './crossReference';
9
10
  export declare const DEFAULT_RENDERERS: Record<string, NodeRenderer>;
10
11
  export declare function useParse(node: GenericParent | null, renderers?: Record<string, NodeRenderer>): import("react").ReactNode;
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAwBjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAsB1D,CAAC;AAEF,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,GAAG,IAAI,EAC1B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAqB,6BAU5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAwBjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAsB1D,CAAC;AAEF,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,GAAG,IAAI,EAC1B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAqB,6BAU5D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myst-to-react",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@heroicons/react": "^2.0.18",
23
- "@myst-theme/providers": "^0.3.2",
23
+ "@myst-theme/providers": "^0.3.4",
24
24
  "@radix-ui/react-hover-card": "^1.0.6",
25
25
  "buffer": "^6.0.3",
26
26
  "classnames": "^2.3.2",