myst-to-react 0.1.18 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/admonitions.d.ts +32 -0
- package/dist/cjs/admonitions.d.ts.map +1 -0
- package/dist/cjs/admonitions.js +126 -0
- package/dist/cjs/basic.d.ts +62 -0
- package/dist/cjs/basic.d.ts.map +1 -0
- package/dist/cjs/basic.js +125 -0
- package/dist/cjs/card.d.ts +27 -0
- package/dist/cjs/card.d.ts.map +1 -0
- package/dist/cjs/card.js +64 -0
- package/dist/cjs/cite.d.ts +6 -0
- package/dist/cjs/cite.d.ts.map +1 -0
- package/dist/cjs/cite.js +36 -0
- package/dist/cjs/code.d.ts +21 -0
- package/dist/cjs/code.d.ts.map +1 -0
- package/dist/cjs/code.js +66 -0
- package/dist/cjs/components/ClickPopover.d.ts +11 -0
- package/dist/cjs/components/ClickPopover.d.ts.map +1 -0
- package/dist/cjs/components/ClickPopover.js +18 -0
- package/dist/cjs/components/CopyIcon.d.ts +5 -0
- package/dist/cjs/components/CopyIcon.d.ts.map +1 -0
- package/dist/cjs/components/CopyIcon.js +28 -0
- package/dist/cjs/components/HoverPopover.d.ts +9 -0
- package/dist/cjs/components/HoverPopover.d.ts.map +1 -0
- package/dist/cjs/components/HoverPopover.js +32 -0
- package/dist/cjs/components/LinkCard.d.ts +11 -0
- package/dist/cjs/components/LinkCard.d.ts.map +1 -0
- package/dist/cjs/components/LinkCard.js +15 -0
- package/dist/cjs/convertToReact.d.ts +6 -0
- package/dist/cjs/convertToReact.d.ts.map +1 -0
- package/dist/cjs/convertToReact.js +30 -0
- package/dist/cjs/crossReference.d.ts +13 -0
- package/dist/cjs/crossReference.d.ts.map +1 -0
- package/dist/cjs/crossReference.js +92 -0
- package/dist/cjs/dropdown.d.ts +16 -0
- package/dist/cjs/dropdown.d.ts.map +1 -0
- package/dist/cjs/dropdown.js +27 -0
- package/dist/cjs/extensions/chemicalFormula.d.ts +7 -0
- package/dist/cjs/extensions/chemicalFormula.d.ts.map +1 -0
- package/dist/cjs/extensions/chemicalFormula.js +39 -0
- package/dist/cjs/extensions/index.d.ts +4 -0
- package/dist/cjs/extensions/index.d.ts.map +1 -0
- package/dist/cjs/extensions/index.js +9 -0
- package/dist/cjs/extensions/siunits.d.ts +7 -0
- package/dist/cjs/extensions/siunits.d.ts.map +1 -0
- package/dist/cjs/extensions/siunits.js +12 -0
- package/dist/cjs/footnotes.d.ts +11 -0
- package/dist/cjs/footnotes.d.ts.map +1 -0
- package/dist/cjs/footnotes.js +24 -0
- package/dist/cjs/grid.d.ts +11 -0
- package/dist/cjs/grid.d.ts.map +1 -0
- package/dist/cjs/grid.js +117 -0
- package/dist/cjs/heading.d.ts +14 -0
- package/dist/cjs/heading.d.ts.map +1 -0
- package/dist/cjs/heading.js +40 -0
- package/dist/cjs/iframe.d.ts +7 -0
- package/dist/cjs/iframe.d.ts.map +1 -0
- package/dist/cjs/iframe.js +24 -0
- package/dist/cjs/image.d.ts +11 -0
- package/dist/cjs/image.d.ts.map +1 -0
- package/dist/cjs/image.js +52 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +45 -0
- package/dist/cjs/inlineError.d.ts +8 -0
- package/dist/cjs/inlineError.d.ts.map +1 -0
- package/dist/cjs/inlineError.js +9 -0
- package/dist/cjs/links/github.d.ts +12 -0
- package/dist/cjs/links/github.d.ts.map +1 -0
- package/dist/cjs/links/github.js +63 -0
- package/dist/cjs/links/index.d.ts +14 -0
- package/dist/cjs/links/index.d.ts.map +1 -0
- package/dist/cjs/links/index.js +68 -0
- package/dist/cjs/links/rrid.d.ts +5 -0
- package/dist/cjs/links/rrid.d.ts.map +1 -0
- package/dist/cjs/links/rrid.js +35 -0
- package/dist/cjs/links/wiki.d.ts +8 -0
- package/dist/cjs/links/wiki.d.ts.map +1 -0
- package/dist/cjs/links/wiki.js +39 -0
- package/dist/cjs/math.d.ts +13 -0
- package/dist/cjs/math.d.ts.map +1 -0
- package/dist/cjs/math.js +29 -0
- package/dist/cjs/reactive.d.ts +88 -0
- package/dist/cjs/reactive.d.ts.map +1 -0
- package/dist/cjs/reactive.js +64 -0
- package/dist/cjs/tabs.d.ts +12 -0
- package/dist/cjs/tabs.d.ts.map +1 -0
- package/dist/cjs/tabs.js +38 -0
- package/dist/types/admonitions.d.ts +32 -0
- package/dist/types/admonitions.d.ts.map +1 -0
- package/dist/types/basic.d.ts +62 -0
- package/dist/types/basic.d.ts.map +1 -0
- package/dist/types/card.d.ts +27 -0
- package/dist/types/card.d.ts.map +1 -0
- package/dist/types/cite.d.ts +6 -0
- package/dist/types/cite.d.ts.map +1 -0
- package/dist/types/code.d.ts +21 -0
- package/dist/types/code.d.ts.map +1 -0
- package/dist/types/components/ClickPopover.d.ts +11 -0
- package/dist/types/components/ClickPopover.d.ts.map +1 -0
- package/dist/types/components/CopyIcon.d.ts +5 -0
- package/dist/types/components/CopyIcon.d.ts.map +1 -0
- package/dist/types/components/HoverPopover.d.ts +9 -0
- package/dist/types/components/HoverPopover.d.ts.map +1 -0
- package/dist/types/components/LinkCard.d.ts +11 -0
- package/dist/types/components/LinkCard.d.ts.map +1 -0
- package/dist/types/convertToReact.d.ts +6 -0
- package/dist/types/convertToReact.d.ts.map +1 -0
- package/dist/types/crossReference.d.ts +13 -0
- package/dist/types/crossReference.d.ts.map +1 -0
- package/dist/types/dropdown.d.ts +16 -0
- package/dist/types/dropdown.d.ts.map +1 -0
- package/dist/types/extensions/chemicalFormula.d.ts +7 -0
- package/dist/types/extensions/chemicalFormula.d.ts.map +1 -0
- package/dist/types/extensions/index.d.ts +4 -0
- package/dist/types/extensions/index.d.ts.map +1 -0
- package/dist/types/extensions/siunits.d.ts +7 -0
- package/dist/types/extensions/siunits.d.ts.map +1 -0
- package/dist/types/footnotes.d.ts +11 -0
- package/dist/types/footnotes.d.ts.map +1 -0
- package/dist/types/grid.d.ts +11 -0
- package/dist/types/grid.d.ts.map +1 -0
- package/dist/types/heading.d.ts +14 -0
- package/dist/types/heading.d.ts.map +1 -0
- package/dist/types/iframe.d.ts +7 -0
- package/dist/types/iframe.d.ts.map +1 -0
- package/dist/types/image.d.ts +11 -0
- package/dist/types/image.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/inlineError.d.ts +8 -0
- package/dist/types/inlineError.d.ts.map +1 -0
- package/dist/types/links/github.d.ts +12 -0
- package/dist/types/links/github.d.ts.map +1 -0
- package/dist/types/links/index.d.ts +14 -0
- package/dist/types/links/index.d.ts.map +1 -0
- package/dist/types/links/rrid.d.ts +5 -0
- package/dist/types/links/rrid.d.ts.map +1 -0
- package/dist/types/links/wiki.d.ts +8 -0
- package/dist/types/links/wiki.d.ts.map +1 -0
- package/dist/types/math.d.ts +13 -0
- package/dist/types/math.d.ts.map +1 -0
- package/dist/types/reactive.d.ts +88 -0
- package/dist/types/reactive.d.ts.map +1 -0
- package/dist/types/tabs.d.ts +12 -0
- package/dist/types/tabs.d.ts.map +1 -0
- package/package.json +18 -21
- package/src/admonitions.tsx +0 -183
- package/src/basic.tsx +0 -229
- package/src/card.tsx +0 -153
- package/src/cite.tsx +0 -43
- package/src/code.tsx +0 -119
- package/src/components/ClickPopover.tsx +0 -56
- package/src/components/CopyIcon.tsx +0 -40
- package/src/components/HoverPopover.tsx +0 -60
- package/src/components/LinkCard.tsx +0 -42
- package/src/convertToReact.ts +0 -33
- package/src/crossReference.tsx +0 -139
- package/src/dropdown.tsx +0 -69
- package/src/extensions/chemicalFormula.tsx +0 -42
- package/src/extensions/index.tsx +0 -10
- package/src/extensions/siunits.tsx +0 -15
- package/src/footnotes.tsx +0 -30
- package/src/grid.tsx +0 -127
- package/src/heading.tsx +0 -68
- package/src/iframe.tsx +0 -42
- package/src/image.tsx +0 -97
- package/src/index.tsx +0 -65
- package/src/inlineError.tsx +0 -15
- package/src/links/index.tsx +0 -132
- package/src/links/rrid.tsx +0 -81
- package/src/links/wiki.tsx +0 -119
- package/src/math.tsx +0 -81
- package/src/mermaid.tsx +0 -49
- package/src/myst.tsx +0 -226
- package/src/output/components.tsx +0 -34
- package/src/output/error.tsx +0 -20
- package/src/output/hooks.ts +0 -127
- package/src/output/index.tsx +0 -7
- package/src/output/jupyter.tsx +0 -86
- package/src/output/output.tsx +0 -79
- package/src/output/outputBlock.tsx +0 -21
- package/src/output/safe.tsx +0 -84
- package/src/output/selectors.ts +0 -15
- package/src/output/stream.tsx +0 -18
- package/src/reactive.tsx +0 -64
- package/src/tabs.tsx +0 -63
- package/src/types.ts +0 -6
|
@@ -0,0 +1,28 @@
|
|
|
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.CopyIcon = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const outline_1 = require("@heroicons/react/24/outline");
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
11
|
+
function CopyIcon({ text }) {
|
|
12
|
+
const [copied, setCopied] = (0, react_1.useState)(false);
|
|
13
|
+
const onClick = () => {
|
|
14
|
+
if (copied)
|
|
15
|
+
return;
|
|
16
|
+
navigator.clipboard.writeText(text).then(() => {
|
|
17
|
+
setCopied(true);
|
|
18
|
+
setTimeout(() => setCopied(false), 3000);
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
return ((0, jsx_runtime_1.jsx)("button", Object.assign({ title: copied ? 'Copied!!' : 'Copy to Clipboard', suppressHydrationWarning: true, className: (0, classnames_1.default)('inline-flex items-center opacity-60 hover:opacity-100 active:opacity-40 cursor-pointer ml-2', 'transition-color duration-200 ease-in-out', {
|
|
22
|
+
// This is hidden if on the server or no clipboard access
|
|
23
|
+
'sr-only hidden': typeof document === 'undefined' || !navigator.clipboard,
|
|
24
|
+
'text-primary-500 border-primary-500': !copied,
|
|
25
|
+
'text-success border-success ': copied,
|
|
26
|
+
}), onClick: onClick, "aria-pressed": copied ? 'true' : 'false', "aria-label": "Copy code to clipboard" }, { children: copied ? ((0, jsx_runtime_1.jsx)(outline_1.CheckIcon, { className: "w-[24px] h-[24px] text-success" })) : ((0, jsx_runtime_1.jsx)(outline_1.DocumentDuplicateIcon, { className: "w-[24px] h-[24px]" })) })));
|
|
27
|
+
}
|
|
28
|
+
exports.CopyIcon = CopyIcon;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare function HoverPopover({ children, card, }: {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
card: React.ReactNode | ((args: {
|
|
5
|
+
open: boolean;
|
|
6
|
+
close?: () => void;
|
|
7
|
+
}) => React.ReactNode);
|
|
8
|
+
}): JSX.Element;
|
|
9
|
+
//# sourceMappingURL=HoverPopover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HoverPopover.d.ts","sourceRoot":"","sources":["../../../src/components/HoverPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAIhD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,IAAI,GACL,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,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CAC5F,eAiDA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HoverPopover = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_2 = require("@headlessui/react");
|
|
7
|
+
const react_popper_1 = require("react-popper");
|
|
8
|
+
function HoverPopover({ children, card, }) {
|
|
9
|
+
const buttonRef = (0, react_1.useRef)(null);
|
|
10
|
+
const timeoutDuration = 300;
|
|
11
|
+
const [open, setOpen] = (0, react_1.useState)(false);
|
|
12
|
+
let openTimeout;
|
|
13
|
+
let closeTimeout;
|
|
14
|
+
const onMouseEnter = () => {
|
|
15
|
+
clearTimeout(closeTimeout);
|
|
16
|
+
if (open)
|
|
17
|
+
return;
|
|
18
|
+
setOpen(true);
|
|
19
|
+
};
|
|
20
|
+
const onMouseLeave = () => {
|
|
21
|
+
clearTimeout(openTimeout);
|
|
22
|
+
if (!open)
|
|
23
|
+
return;
|
|
24
|
+
closeTimeout = setTimeout(() => setOpen(false), timeoutDuration);
|
|
25
|
+
};
|
|
26
|
+
const [popperElement, setPopperElement] = (0, react_1.useState)(null);
|
|
27
|
+
const { styles, attributes } = (0, react_popper_1.usePopper)(buttonRef.current, popperElement, {
|
|
28
|
+
placement: 'bottom-start',
|
|
29
|
+
});
|
|
30
|
+
return ((0, jsx_runtime_1.jsxs)("span", Object.assign({ onMouseLeave: onMouseLeave }, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ ref: buttonRef, onMouseMove: onMouseEnter, onMouseEnter: onMouseEnter }, { children: children })), (0, jsx_runtime_1.jsx)("span", 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 border-slate-100 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", onMouseEnter: onMouseEnter, show: open }, { children: typeof card === 'function' ? card({ open, close: () => setOpen(false) }) : card })) }))] })));
|
|
31
|
+
}
|
|
32
|
+
exports.HoverPopover = HoverPopover;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare function LinkCard({ url, title, internal, loading, description, thumbnail, className, }: {
|
|
3
|
+
url: string;
|
|
4
|
+
internal?: boolean;
|
|
5
|
+
loading?: boolean;
|
|
6
|
+
title: React.ReactNode;
|
|
7
|
+
description?: React.ReactNode;
|
|
8
|
+
thumbnail?: string;
|
|
9
|
+
className?: string;
|
|
10
|
+
}): JSX.Element;
|
|
11
|
+
//# sourceMappingURL=LinkCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkCard.d.ts","sourceRoot":"","sources":["../../../src/components/LinkCard.tsx"],"names":[],"mappings":";AAIA,wBAAgB,QAAQ,CAAC,EACvB,GAAG,EACH,KAAK,EACL,QAAgB,EAChB,OAAe,EACf,WAAW,EACX,SAAS,EACT,SAAuB,GACxB,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,eAwBA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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.LinkCard = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const providers_1 = require("@myst-theme/providers");
|
|
9
|
+
const outline_1 = require("@heroicons/react/24/outline");
|
|
10
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
11
|
+
function LinkCard({ url, title, internal = false, loading = false, description, thumbnail, className = 'w-[300px]', }) {
|
|
12
|
+
const Link = (0, providers_1.useLinkProvider)();
|
|
13
|
+
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, classnames_1.default)(className, { 'animate-pulse': loading }) }, { children: [internal && ((0, jsx_runtime_1.jsx)(Link, Object.assign({ to: url, className: "block", prefetch: "intent" }, { children: title }))), !internal && ((0, jsx_runtime_1.jsxs)("a", Object.assign({ href: url, className: "block", target: "_blank", rel: "noreferrer" }, { children: [(0, jsx_runtime_1.jsx)(outline_1.ArrowTopRightOnSquareIcon, { className: "w-4 h-4 float-right" }), title] }))), !loading && thumbnail && ((0, jsx_runtime_1.jsx)("img", { src: thumbnail, className: "w-full max-h-[200px] object-cover object-top" })), loading && ((0, jsx_runtime_1.jsx)("div", { className: "animate-pulse bg-slate-100 dark:bg-slate-800 w-full h-[150px] mt-4" })), !loading && description && (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "mt-2" }, { children: description }))] })));
|
|
14
|
+
}
|
|
15
|
+
exports.LinkCard = LinkCard;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { NodeRenderer } from '@myst-theme/providers';
|
|
3
|
+
import type { GenericNode } from 'myst-common';
|
|
4
|
+
export declare function toReact(fragment: GenericNode[], replacements: Record<string, NodeRenderer>): React.ReactNode;
|
|
5
|
+
export declare function mystToReact(content: GenericNode, replacements: Record<string, NodeRenderer>): React.ReactNode;
|
|
6
|
+
//# sourceMappingURL=convertToReact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertToReact.d.ts","sourceRoot":"","sources":["../../src/convertToReact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,wBAAgB,OAAO,CACrB,QAAQ,EAAE,WAAW,EAAE,EACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACzC,KAAK,CAAC,SAAS,CAiBjB;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACzC,KAAK,CAAC,SAAS,CAEjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mystToReact = exports.toReact = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function toReact(fragment, replacements) {
|
|
6
|
+
if (fragment.length === 0)
|
|
7
|
+
return undefined;
|
|
8
|
+
return fragment.map((node) => {
|
|
9
|
+
if (node.type === 'text')
|
|
10
|
+
return node.value;
|
|
11
|
+
const custom = replacements[node.type];
|
|
12
|
+
if (node.children) {
|
|
13
|
+
const children = toReact(node.children, replacements);
|
|
14
|
+
if (custom) {
|
|
15
|
+
return custom(node, children);
|
|
16
|
+
}
|
|
17
|
+
return (0, react_1.createElement)('div', { key: node.key }, children);
|
|
18
|
+
}
|
|
19
|
+
if (custom) {
|
|
20
|
+
return custom(node, node.value);
|
|
21
|
+
}
|
|
22
|
+
return (0, react_1.createElement)('span', { children: node.value, key: node.key });
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
exports.toReact = toReact;
|
|
26
|
+
function mystToReact(content, replacements) {
|
|
27
|
+
var _a;
|
|
28
|
+
return toReact((_a = content.children) !== null && _a !== void 0 ? _a : [], replacements);
|
|
29
|
+
}
|
|
30
|
+
exports.mystToReact = mystToReact;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { CrossReference } from 'myst-spec';
|
|
3
|
+
import type { NodeRenderer } from '@myst-theme/providers';
|
|
4
|
+
export declare function ReferencedContent({ identifier, close, }: {
|
|
5
|
+
identifier: string;
|
|
6
|
+
close: () => void;
|
|
7
|
+
}): JSX.Element;
|
|
8
|
+
export declare const CrossReferenceNode: NodeRenderer<CrossReference>;
|
|
9
|
+
declare const CROSS_REFERENCE_RENDERERS: {
|
|
10
|
+
crossReference: NodeRenderer<CrossReference>;
|
|
11
|
+
};
|
|
12
|
+
export default CROSS_REFERENCE_RENDERERS;
|
|
13
|
+
//# sourceMappingURL=crossReference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crossReference.d.ts","sourceRoot":"","sources":["../../src/crossReference.tsx"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAgBhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAuC1D,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,KAAK,GACN,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,eAuDA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAuB3D,CAAC;AAEF,QAAA,MAAM,yBAAyB;;CAE9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
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.CrossReferenceNode = exports.ReferencedContent = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const unist_util_select_1 = require("unist-util-select");
|
|
9
|
+
const unist_util_visit_1 = require("unist-util-visit");
|
|
10
|
+
const outline_1 = require("@heroicons/react/24/outline");
|
|
11
|
+
const providers_1 = require("@myst-theme/providers");
|
|
12
|
+
const _1 = require(".");
|
|
13
|
+
const inlineError_1 = require("./inlineError");
|
|
14
|
+
const ClickPopover_1 = require("./components/ClickPopover");
|
|
15
|
+
const swr_1 = __importDefault(require("swr"));
|
|
16
|
+
const MAX_NODES = 3; // Max nodes to show after a header
|
|
17
|
+
function selectMdastNodes(mdast, identifier) {
|
|
18
|
+
const identifiers = (0, unist_util_select_1.selectAll)(`[identifier=${identifier}],[key=${identifier}]`, mdast);
|
|
19
|
+
const container = identifiers.filter(({ type }) => type === 'container' || type === 'math')[0];
|
|
20
|
+
const nodes = container ? [container] : [];
|
|
21
|
+
if (nodes.length === 0 && identifiers.length > 0 && mdast) {
|
|
22
|
+
let begin = false;
|
|
23
|
+
(0, unist_util_visit_1.visit)(mdast, (node) => {
|
|
24
|
+
if ((begin && node.type === 'heading') || nodes.length >= MAX_NODES) {
|
|
25
|
+
return unist_util_visit_1.EXIT;
|
|
26
|
+
}
|
|
27
|
+
if (node.identifier === identifier && node.type === 'heading')
|
|
28
|
+
begin = true;
|
|
29
|
+
if (begin) {
|
|
30
|
+
nodes.push(node);
|
|
31
|
+
return unist_util_visit_1.SKIP; // Don't traverse the children
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (nodes.length === 0 && identifiers.length > 0) {
|
|
36
|
+
// If we haven't found anything, push the first identifier that isn't a cite or crossReference
|
|
37
|
+
const resolved = identifiers.filter((node) => node.type !== 'crossReference' && node.type !== 'cite')[0];
|
|
38
|
+
nodes.push(resolved !== null && resolved !== void 0 ? resolved : identifiers[0]);
|
|
39
|
+
}
|
|
40
|
+
return nodes;
|
|
41
|
+
}
|
|
42
|
+
const fetcher = (...args) => fetch(...args).then((res) => {
|
|
43
|
+
if (res.status === 200)
|
|
44
|
+
return res.json();
|
|
45
|
+
throw new Error(`Content returned with status ${res.status}.`);
|
|
46
|
+
});
|
|
47
|
+
function ReferencedContent({ identifier, close, }) {
|
|
48
|
+
var _a, _b, _c, _d;
|
|
49
|
+
const Link = (0, providers_1.useLinkProvider)();
|
|
50
|
+
const urlbase = (0, providers_1.useUrlbase)();
|
|
51
|
+
const { remote, url } = (0, providers_1.useXRefState)();
|
|
52
|
+
const external = (_a = url === null || url === void 0 ? void 0 : url.startsWith('http')) !== null && _a !== void 0 ? _a : false;
|
|
53
|
+
const lookupUrl = external ? `/api/lookup?url=${url}.json` : `${(0, providers_1.withUrlbase)(url, urlbase)}.json`;
|
|
54
|
+
const { data, error } = (0, swr_1.default)(remote ? lookupUrl : null, fetcher);
|
|
55
|
+
const references = (0, providers_1.useReferences)();
|
|
56
|
+
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;
|
|
57
|
+
const nodes = selectMdastNodes(mdast, identifier);
|
|
58
|
+
const htmlId = ((_c = nodes[0]) === null || _c === void 0 ? void 0 : _c.html_id) || ((_d = nodes[0]) === null || _d === void 0 ? void 0 : _d.identifier);
|
|
59
|
+
const link = `${url}${htmlId ? `#${htmlId}` : ''}`;
|
|
60
|
+
const onClose = () => {
|
|
61
|
+
// Need to close it first because the ID is on the page twice ...
|
|
62
|
+
close();
|
|
63
|
+
setTimeout(() => {
|
|
64
|
+
const el = document.getElementById(htmlId);
|
|
65
|
+
el === null || el === void 0 ? void 0 : el.scrollIntoView({ behavior: 'smooth' });
|
|
66
|
+
}, 10);
|
|
67
|
+
};
|
|
68
|
+
const renderers = (0, providers_1.useNodeRenderers)();
|
|
69
|
+
const children = (0, _1.useParse)({ type: 'block', children: nodes }, renderers);
|
|
70
|
+
if (remote && !data) {
|
|
71
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "Loading..." });
|
|
72
|
+
}
|
|
73
|
+
if (remote && error) {
|
|
74
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "Error loading remote page." });
|
|
75
|
+
}
|
|
76
|
+
if (!nodes || nodes.length === 0) {
|
|
77
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(inlineError_1.InlineError, { value: identifier || 'No Label', message: "Cross Reference Not Found" }) }));
|
|
78
|
+
}
|
|
79
|
+
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "exclude-from-outline" }, { children: [remote && external && ((0, jsx_runtime_1.jsx)("a", Object.assign({ href: link, className: "absolute top-4 right-1", target: "_blank" }, { children: (0, jsx_runtime_1.jsx)(outline_1.ArrowTopRightOnSquareIcon, { className: "w-4 h-4" }) }))), remote && !external && ((0, jsx_runtime_1.jsx)(Link, Object.assign({ to: link, className: "absolute top-4 right-1", prefetch: "intent" }, { children: (0, jsx_runtime_1.jsx)(outline_1.ArrowTopRightOnSquareIcon, { className: "w-4 h-4" }) }))), !remote && ((0, jsx_runtime_1.jsx)("button", Object.assign({ onClick: onClose, className: "absolute top-4 right-1" }, { children: (0, jsx_runtime_1.jsx)(outline_1.LinkIcon, { className: "w-4 h-4" }) }))), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "popout" }, { children: children }))] })));
|
|
80
|
+
}
|
|
81
|
+
exports.ReferencedContent = ReferencedContent;
|
|
82
|
+
const CrossReferenceNode = (node, children) => {
|
|
83
|
+
if (!children) {
|
|
84
|
+
return ((0, jsx_runtime_1.jsx)(inlineError_1.InlineError, { value: node.label || node.identifier || 'No Label', message: "Cross Reference Not Found" }, node.key));
|
|
85
|
+
}
|
|
86
|
+
return ((0, jsx_runtime_1.jsx)(ClickPopover_1.ClickPopover, Object.assign({ card: ({ close }) => ((0, jsx_runtime_1.jsx)(providers_1.XRefProvider, Object.assign({ remote: node.remote, url: node.url }, { children: (0, jsx_runtime_1.jsx)(ReferencedContent, { identifier: node.identifier, close: close }) }))), as: "span" }, { children: children }), node.key));
|
|
87
|
+
};
|
|
88
|
+
exports.CrossReferenceNode = CrossReferenceNode;
|
|
89
|
+
const CROSS_REFERENCE_RENDERERS = {
|
|
90
|
+
crossReference: exports.CrossReferenceNode,
|
|
91
|
+
};
|
|
92
|
+
exports.default = CROSS_REFERENCE_RENDERERS;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { NodeRenderer } from '@myst-theme/providers';
|
|
2
|
+
type DropdownSpec = {
|
|
3
|
+
type: 'details';
|
|
4
|
+
open?: boolean;
|
|
5
|
+
};
|
|
6
|
+
type SummarySpec = {
|
|
7
|
+
type: 'summary';
|
|
8
|
+
};
|
|
9
|
+
export declare const SummaryTitle: NodeRenderer<SummarySpec>;
|
|
10
|
+
export declare const DetailsRenderer: NodeRenderer<DropdownSpec>;
|
|
11
|
+
declare const DROPDOWN_RENDERERS: {
|
|
12
|
+
details: NodeRenderer<DropdownSpec>;
|
|
13
|
+
summary: NodeRenderer<SummarySpec>;
|
|
14
|
+
};
|
|
15
|
+
export default DROPDOWN_RENDERERS;
|
|
16
|
+
//# sourceMappingURL=dropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../src/dropdown.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAIF,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,WAAW,CAElD,CAAC;AAqCF,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,YAAY,CAOtD,CAAC;AAEF,QAAA,MAAM,kBAAkB;;;CAGvB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
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.DetailsRenderer = exports.SummaryTitle = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const solid_1 = require("@heroicons/react/24/solid");
|
|
9
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
10
|
+
const iconClass = 'h-8 w-8 inline-block pl-2 mr-2 -translate-y-[1px]';
|
|
11
|
+
const SummaryTitle = (node, children) => {
|
|
12
|
+
return children;
|
|
13
|
+
};
|
|
14
|
+
exports.SummaryTitle = SummaryTitle;
|
|
15
|
+
function Details({ title, children, open, }) {
|
|
16
|
+
return ((0, jsx_runtime_1.jsxs)("details", Object.assign({ className: (0, classnames_1.default)('rounded-md my-4 shadow dark:shadow-2xl dark:shadow-neutral-900 overflow-hidden'), open: open }, { children: [(0, jsx_runtime_1.jsx)("summary", Object.assign({ 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_20px_#00000003] dark:hover:shadow-[inset_0_0_0px_20px_#FFFFFF03]', 'bg-gray-100 dark:bg-slate-900') }, { children: (0, jsx_runtime_1.jsxs)("span", Object.assign({ className: "text-neutral-900 dark:text-white" }, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ className: "block float-right font-thin text-sm text-neutral-700 dark:text-neutral-200" }, { children: (0, jsx_runtime_1.jsx)(solid_1.ChevronRightIcon, { className: (0, classnames_1.default)(iconClass, 'transition-transform') }) })), title] })) })), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "px-4 py-1 bg-gray-50 dark:bg-stone-800" }, { children: children }))] })));
|
|
17
|
+
}
|
|
18
|
+
const DetailsRenderer = (node, children) => {
|
|
19
|
+
const [title, ...rest] = children;
|
|
20
|
+
return ((0, jsx_runtime_1.jsx)(Details, Object.assign({ title: title, open: node.open }, { children: rest }), node.key));
|
|
21
|
+
};
|
|
22
|
+
exports.DetailsRenderer = DetailsRenderer;
|
|
23
|
+
const DROPDOWN_RENDERERS = {
|
|
24
|
+
details: exports.DetailsRenderer,
|
|
25
|
+
summary: exports.SummaryTitle,
|
|
26
|
+
};
|
|
27
|
+
exports.default = DROPDOWN_RENDERERS;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { NodeRenderer } from '@myst-theme/providers';
|
|
2
|
+
export declare const ChemicalFormula: NodeRenderer;
|
|
3
|
+
declare const CHEM_RENDERERS: {
|
|
4
|
+
chemicalFormula: NodeRenderer<any>;
|
|
5
|
+
};
|
|
6
|
+
export default CHEM_RENDERERS;
|
|
7
|
+
//# sourceMappingURL=chemicalFormula.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChemicalFormula = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
/**
|
|
6
|
+
* Separate numbers and letters so that numbers can be <sub>2</sub>
|
|
7
|
+
* @param formula a string H2O
|
|
8
|
+
* @returns ['H', '2', '0']
|
|
9
|
+
*/
|
|
10
|
+
function parseFormula(formula) {
|
|
11
|
+
return [...(formula !== null && formula !== void 0 ? formula : '')].reduce((acc, letter) => {
|
|
12
|
+
const last = acc.pop();
|
|
13
|
+
const isNumber = letter.match(/[0-9]/);
|
|
14
|
+
const lastIsNumber = last === null || last === void 0 ? void 0 : last.match(/[0-9]/);
|
|
15
|
+
if (isNumber) {
|
|
16
|
+
if (lastIsNumber) {
|
|
17
|
+
return [...acc, `${last !== null && last !== void 0 ? last : ''}${letter}`];
|
|
18
|
+
}
|
|
19
|
+
return [...acc, last, letter].filter((v) => !!v);
|
|
20
|
+
}
|
|
21
|
+
if (lastIsNumber) {
|
|
22
|
+
return [...acc, last, letter].filter((v) => !!v);
|
|
23
|
+
}
|
|
24
|
+
return [...acc, `${last !== null && last !== void 0 ? last : ''}${letter}`];
|
|
25
|
+
}, []);
|
|
26
|
+
}
|
|
27
|
+
const ChemicalFormula = (node) => {
|
|
28
|
+
const parts = parseFormula(node.value);
|
|
29
|
+
return ((0, jsx_runtime_1.jsx)("code", Object.assign({ className: "text-inherit" }, { children: parts.map((letter, index) => {
|
|
30
|
+
if (letter.match(/[0-9]/))
|
|
31
|
+
return (0, jsx_runtime_1.jsx)("sub", { children: letter }, index);
|
|
32
|
+
return (0, jsx_runtime_1.jsx)("span", { children: letter }, index);
|
|
33
|
+
}) }), node.key));
|
|
34
|
+
};
|
|
35
|
+
exports.ChemicalFormula = ChemicalFormula;
|
|
36
|
+
const CHEM_RENDERERS = {
|
|
37
|
+
chemicalFormula: exports.ChemicalFormula,
|
|
38
|
+
};
|
|
39
|
+
exports.default = CHEM_RENDERERS;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extensions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,QAAA,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAG/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
const chemicalFormula_1 = __importDefault(require("./chemicalFormula"));
|
|
7
|
+
const siunits_1 = __importDefault(require("./siunits"));
|
|
8
|
+
const EXT_RENDERERS = Object.assign(Object.assign({}, chemicalFormula_1.default), siunits_1.default);
|
|
9
|
+
exports.default = EXT_RENDERERS;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siunits.d.ts","sourceRoot":"","sources":["../../../src/extensions/siunits.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,eAAO,MAAM,OAAO,EAAE,YAMrB,CAAC;AAEF,QAAA,MAAM,YAAY;;CAEjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SIUnits = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const SIUnits = (node) => {
|
|
6
|
+
return ((0, jsx_runtime_1.jsx)("code", Object.assign({ className: "text-inherit", title: `${node.num} ${node.units}` }, { children: node.value }), node.key));
|
|
7
|
+
};
|
|
8
|
+
exports.SIUnits = SIUnits;
|
|
9
|
+
const SI_RENDERERS = {
|
|
10
|
+
si: exports.SIUnits,
|
|
11
|
+
};
|
|
12
|
+
exports.default = SI_RENDERERS;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { NodeRenderer } from '@myst-theme/providers';
|
|
3
|
+
export declare function FootnoteDefinition({ identifier }: {
|
|
4
|
+
identifier: string;
|
|
5
|
+
}): JSX.Element;
|
|
6
|
+
export declare const FootnoteReference: NodeRenderer;
|
|
7
|
+
declare const FOOTNOTE_RENDERERS: {
|
|
8
|
+
footnoteReference: NodeRenderer<any>;
|
|
9
|
+
};
|
|
10
|
+
export default FOOTNOTE_RENDERERS;
|
|
11
|
+
//# sourceMappingURL=footnotes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footnotes.d.ts","sourceRoot":"","sources":["../../src/footnotes.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D,wBAAgB,kBAAkB,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,eAKxE;AAED,eAAO,MAAM,iBAAiB,EAAE,YAU/B,CAAC;AAEF,QAAA,MAAM,kBAAkB;;CAEvB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FootnoteReference = exports.FootnoteDefinition = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const providers_1 = require("@myst-theme/providers");
|
|
6
|
+
const _1 = require(".");
|
|
7
|
+
const ClickPopover_1 = require("./components/ClickPopover");
|
|
8
|
+
function FootnoteDefinition({ identifier }) {
|
|
9
|
+
var _a;
|
|
10
|
+
const references = (0, providers_1.useReferences)();
|
|
11
|
+
const node = (_a = references === null || references === void 0 ? void 0 : references.footnotes) === null || _a === void 0 ? void 0 : _a[identifier];
|
|
12
|
+
const children = (0, _1.useParse)(node);
|
|
13
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
|
|
14
|
+
}
|
|
15
|
+
exports.FootnoteDefinition = FootnoteDefinition;
|
|
16
|
+
const FootnoteReference = (node) => {
|
|
17
|
+
var _a;
|
|
18
|
+
return ((0, jsx_runtime_1.jsx)(ClickPopover_1.ClickPopover, Object.assign({ card: (0, jsx_runtime_1.jsx)(FootnoteDefinition, { identifier: node.identifier }), as: "span" }, { children: (0, jsx_runtime_1.jsxs)("sup", { children: ["[", (_a = node.number) !== null && _a !== void 0 ? _a : node.identifier, "]"] }) }), node.key));
|
|
19
|
+
};
|
|
20
|
+
exports.FootnoteReference = FootnoteReference;
|
|
21
|
+
const FOOTNOTE_RENDERERS = {
|
|
22
|
+
footnoteReference: exports.FootnoteReference,
|
|
23
|
+
};
|
|
24
|
+
exports.default = FOOTNOTE_RENDERERS;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { NodeRenderer } from '@myst-theme/providers';
|
|
2
|
+
type GridSpec = {
|
|
3
|
+
type: 'grid';
|
|
4
|
+
columns: number[];
|
|
5
|
+
};
|
|
6
|
+
export declare const GridRenderer: NodeRenderer<GridSpec>;
|
|
7
|
+
declare const GRID_RENDERERS: {
|
|
8
|
+
grid: NodeRenderer<GridSpec>;
|
|
9
|
+
};
|
|
10
|
+
export default GRID_RENDERERS;
|
|
11
|
+
//# sourceMappingURL=grid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../src/grid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AA2GF,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,QAAQ,CAM/C,CAAC;AAEF,QAAA,MAAM,cAAc;;CAEnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
package/dist/cjs/grid.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
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.GridRenderer = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
9
|
+
const gridClassNames = {
|
|
10
|
+
main: [
|
|
11
|
+
'grid-cols-1',
|
|
12
|
+
'grid-cols-2',
|
|
13
|
+
'grid-cols-3',
|
|
14
|
+
'grid-cols-4',
|
|
15
|
+
'grid-cols-5',
|
|
16
|
+
'grid-cols-6',
|
|
17
|
+
'grid-cols-7',
|
|
18
|
+
'grid-cols-8',
|
|
19
|
+
'grid-cols-9',
|
|
20
|
+
'grid-cols-10',
|
|
21
|
+
'grid-cols-11',
|
|
22
|
+
'grid-cols-12',
|
|
23
|
+
],
|
|
24
|
+
sm: [
|
|
25
|
+
'sm:grid-cols-1',
|
|
26
|
+
'sm:grid-cols-2',
|
|
27
|
+
'sm:grid-cols-3',
|
|
28
|
+
'sm:grid-cols-4',
|
|
29
|
+
'sm:grid-cols-5',
|
|
30
|
+
'sm:grid-cols-6',
|
|
31
|
+
'sm:grid-cols-7',
|
|
32
|
+
'sm:grid-cols-8',
|
|
33
|
+
'sm:grid-cols-9',
|
|
34
|
+
'sm:grid-cols-10',
|
|
35
|
+
'sm:grid-cols-11',
|
|
36
|
+
'sm:grid-cols-12',
|
|
37
|
+
],
|
|
38
|
+
md: [
|
|
39
|
+
'md:grid-cols-1',
|
|
40
|
+
'md:grid-cols-2',
|
|
41
|
+
'md:grid-cols-3',
|
|
42
|
+
'md:grid-cols-4',
|
|
43
|
+
'md:grid-cols-5',
|
|
44
|
+
'md:grid-cols-6',
|
|
45
|
+
'md:grid-cols-7',
|
|
46
|
+
'md:grid-cols-8',
|
|
47
|
+
'md:grid-cols-9',
|
|
48
|
+
'md:grid-cols-10',
|
|
49
|
+
'md:grid-cols-11',
|
|
50
|
+
'md:grid-cols-12',
|
|
51
|
+
],
|
|
52
|
+
lg: [
|
|
53
|
+
'lg:grid-cols-1',
|
|
54
|
+
'lg:grid-cols-2',
|
|
55
|
+
'lg:grid-cols-3',
|
|
56
|
+
'lg:grid-cols-4',
|
|
57
|
+
'lg:grid-cols-5',
|
|
58
|
+
'lg:grid-cols-6',
|
|
59
|
+
'lg:grid-cols-7',
|
|
60
|
+
'lg:grid-cols-8',
|
|
61
|
+
'lg:grid-cols-9',
|
|
62
|
+
'lg:grid-cols-10',
|
|
63
|
+
'lg:grid-cols-11',
|
|
64
|
+
'lg:grid-cols-12',
|
|
65
|
+
],
|
|
66
|
+
xl: [
|
|
67
|
+
'xl:grid-cols-1',
|
|
68
|
+
'xl:grid-cols-2',
|
|
69
|
+
'xl:grid-cols-3',
|
|
70
|
+
'xl:grid-cols-4',
|
|
71
|
+
'xl:grid-cols-5',
|
|
72
|
+
'xl:grid-cols-6',
|
|
73
|
+
'xl:grid-cols-7',
|
|
74
|
+
'xl:grid-cols-8',
|
|
75
|
+
'xl:grid-cols-9',
|
|
76
|
+
'xl:grid-cols-10',
|
|
77
|
+
'xl:grid-cols-11',
|
|
78
|
+
'xl:grid-cols-12',
|
|
79
|
+
],
|
|
80
|
+
};
|
|
81
|
+
const DEFAULT_NUM_COLUMNS = 3;
|
|
82
|
+
function getColumnClassName(classes, number) {
|
|
83
|
+
var _a;
|
|
84
|
+
const num = Number(number);
|
|
85
|
+
if (!number || Number.isNaN(num)) {
|
|
86
|
+
return getColumnClassName(classes, DEFAULT_NUM_COLUMNS);
|
|
87
|
+
}
|
|
88
|
+
return (_a = classes[num - 1]) !== null && _a !== void 0 ? _a : classes[DEFAULT_NUM_COLUMNS];
|
|
89
|
+
}
|
|
90
|
+
function gridColumnClasses(columns) {
|
|
91
|
+
if (!columns || columns.length <= 1) {
|
|
92
|
+
return getColumnClassName(gridClassNames.main, columns === null || columns === void 0 ? void 0 : columns[0]);
|
|
93
|
+
}
|
|
94
|
+
if (columns.length !== 4) {
|
|
95
|
+
return getColumnClassName(gridClassNames.main, columns[0]);
|
|
96
|
+
}
|
|
97
|
+
return [
|
|
98
|
+
// getColumnClassName(gridClassNames.main, columns[0]),
|
|
99
|
+
getColumnClassName(gridClassNames.sm, columns[0]),
|
|
100
|
+
getColumnClassName(gridClassNames.md, columns[1]),
|
|
101
|
+
getColumnClassName(gridClassNames.lg, columns[2]),
|
|
102
|
+
getColumnClassName(gridClassNames.xl, columns[3]),
|
|
103
|
+
].join(' ');
|
|
104
|
+
}
|
|
105
|
+
function Grid({ columns, children }) {
|
|
106
|
+
const gridClasses = gridColumnClasses(columns);
|
|
107
|
+
const gutterClasses = 'gap-4';
|
|
108
|
+
return (0, jsx_runtime_1.jsx)("div", Object.assign({ className: (0, classnames_1.default)('grid', gridClasses, gutterClasses) }, { children: children }));
|
|
109
|
+
}
|
|
110
|
+
const GridRenderer = (node, children) => {
|
|
111
|
+
return ((0, jsx_runtime_1.jsx)(Grid, Object.assign({ columns: node.columns }, { children: children }), node.key));
|
|
112
|
+
};
|
|
113
|
+
exports.GridRenderer = GridRenderer;
|
|
114
|
+
const GRID_RENDERERS = {
|
|
115
|
+
grid: exports.GridRenderer,
|
|
116
|
+
};
|
|
117
|
+
exports.default = GRID_RENDERERS;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Heading } from 'myst-spec';
|
|
3
|
+
import type { NodeRenderer } from '@myst-theme/providers';
|
|
4
|
+
export declare function HashLink({ id, kind, align, }: {
|
|
5
|
+
id: string;
|
|
6
|
+
kind: string;
|
|
7
|
+
align?: 'left' | 'right';
|
|
8
|
+
}): JSX.Element | null;
|
|
9
|
+
declare const Heading: NodeRenderer<Heading>;
|
|
10
|
+
declare const HEADING_RENDERERS: {
|
|
11
|
+
heading: NodeRenderer<Heading>;
|
|
12
|
+
};
|
|
13
|
+
export default HEADING_RENDERERS;
|
|
14
|
+
//# sourceMappingURL=heading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../src/heading.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAS1D,wBAAgB,QAAQ,CAAC,EACvB,EAAE,EACF,IAAI,EACJ,KAAc,GACf,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,sBAqBA;AAED,QAAA,MAAM,OAAO,EAAE,YAAY,CAAC,OAAO,CAoBlC,CAAC;AAEF,QAAA,MAAM,iBAAiB;;CAEtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|