myst-to-react 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/MyST.d.ts CHANGED
@@ -1,4 +1,6 @@
1
+ import type { NodeRenderersValidated } from '@myst-theme/providers';
1
2
  import type { GenericNode } from 'myst-common';
3
+ export declare function selectRenderer(renderers: NodeRenderersValidated, node: GenericNode): import("@myst-theme/providers").NodeRenderer<any>;
2
4
  export declare function MyST({ ast }: {
3
5
  ast?: GenericNode | GenericNode[];
4
6
  }): import("react/jsx-runtime").JSX.Element | null;
@@ -1 +1 @@
1
- {"version":3,"file":"MyST.d.ts","sourceRoot":"","sources":["../src/MyST.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/C,wBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;CAAE,kDAelE"}
1
+ {"version":3,"file":"MyST.d.ts","sourceRoot":"","sources":["../src/MyST.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/C,wBAAgB,cAAc,CAAC,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,qDAMlF;AAED,wBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;CAAE,kDAelE"}
package/dist/MyST.js CHANGED
@@ -1,22 +1,29 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { matches } from 'unist-util-select';
2
3
  import { useNodeRenderers } from '@myst-theme/providers';
3
4
  function DefaultComponent({ node }) {
4
5
  if (!node.children)
5
6
  return _jsx("span", { children: node.value });
6
7
  return (_jsx("div", { children: _jsx(MyST, { ast: node.children }) }));
7
8
  }
9
+ export function selectRenderer(renderers, node) {
10
+ var _a, _b, _c;
11
+ const componentRenderers = (_a = renderers[node.type]) !== null && _a !== void 0 ? _a : renderers['DefaultComponent'];
12
+ const SpecificComponent = (_b = Object.entries(componentRenderers !== null && componentRenderers !== void 0 ? componentRenderers : {})
13
+ .reverse()
14
+ .find(([selector]) => selector !== 'base' && matches(selector, node))) === null || _b === void 0 ? void 0 : _b[1];
15
+ return (_c = SpecificComponent !== null && SpecificComponent !== void 0 ? SpecificComponent : componentRenderers === null || componentRenderers === void 0 ? void 0 : componentRenderers.base) !== null && _c !== void 0 ? _c : DefaultComponent;
16
+ }
8
17
  export function MyST({ ast }) {
9
- var _a, _b;
10
18
  const renderers = useNodeRenderers();
11
19
  if (!ast || ast.length === 0)
12
20
  return null;
13
21
  if (!Array.isArray(ast)) {
14
- const Component = (_b = (_a = renderers[ast.type]) !== null && _a !== void 0 ? _a : renderers['DefaultComponent']) !== null && _b !== void 0 ? _b : DefaultComponent;
22
+ const Component = selectRenderer(renderers, ast);
15
23
  return _jsx(Component, { node: ast }, ast.key);
16
24
  }
17
25
  return (_jsx(_Fragment, { children: ast === null || ast === void 0 ? void 0 : ast.map((node) => {
18
- var _a;
19
- const Component = (_a = renderers[node.type]) !== null && _a !== void 0 ? _a : DefaultComponent;
26
+ const Component = selectRenderer(renderers, node);
20
27
  return _jsx(Component, { node: node }, node.key);
21
28
  }) }));
22
29
  }
package/dist/cite.d.ts CHANGED
@@ -2,8 +2,8 @@ import type { NodeRenderer } from '@myst-theme/providers';
2
2
  import type { GenericParent } from 'myst-common';
3
3
  export declare const CiteGroup: NodeRenderer<GenericParent>;
4
4
  export declare const Cite: ({ label, error, children, }: {
5
- label?: string | undefined;
6
- error?: boolean | undefined;
5
+ label?: string;
6
+ error?: boolean;
7
7
  children: React.ReactNode;
8
8
  }) => import("react/jsx-runtime").JSX.Element;
9
9
  export declare const CiteRenderer: NodeRenderer;
@@ -1 +1 @@
1
- {"version":3,"file":"cite.d.ts","sourceRoot":"","sources":["../src/cite.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAiBjD,eAAO,MAAM,SAAS,EAAE,YAAY,CAAC,aAAa,CAcjD,CAAC;AAEF,eAAO,MAAM,IAAI;;;cAOL,MAAM,SAAS;6CAuB1B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,YAO1B,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAGhD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"cite.d.ts","sourceRoot":"","sources":["../src/cite.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAiBjD,eAAO,MAAM,SAAS,EAAE,YAAY,CAAC,aAAa,CAcjD,CAAC;AAEF,eAAO,MAAM,IAAI,gCAId;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,4CAsBA,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,YAO1B,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAGhD,CAAC;AAEF,eAAe,cAAc,CAAC"}
package/dist/code.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { InlineCode } from 'myst-spec';
2
1
  import type { NodeRenderer } from '@myst-theme/providers';
3
2
  type Props = {
4
3
  value: string;
@@ -16,46 +15,8 @@ type Props = {
16
15
  };
17
16
  export declare function CodeBlock(props: Props): import("react/jsx-runtime").JSX.Element;
18
17
  declare const CODE_RENDERERS: {
19
- code: NodeRenderer<{
20
- type?: "code" | undefined;
21
- lang?: string | undefined;
22
- meta?: string | undefined;
23
- class?: string | undefined;
24
- showLineNumbers?: boolean | undefined;
25
- startingLineNumber?: number | undefined;
26
- emphasizeLines?: number[] | undefined;
27
- identifier?: unknown;
28
- label?: unknown;
29
- value?: unknown;
30
- position?: unknown;
31
- data?: unknown;
32
- } & {
33
- identifier?: string | undefined;
34
- label?: string | undefined;
35
- } & {
36
- value: string;
37
- } & {
38
- type: string;
39
- data?: {
40
- [k: string]: unknown;
41
- } | undefined;
42
- position?: {
43
- start: {
44
- line: number;
45
- column: number;
46
- offset?: number | undefined;
47
- };
48
- end: {
49
- line: number;
50
- column: number;
51
- offset?: number | undefined;
52
- };
53
- indent?: number[] | undefined;
54
- } | undefined;
55
- } & {
56
- executable: boolean;
57
- }>;
58
- inlineCode: NodeRenderer<InlineCode>;
18
+ code: NodeRenderer;
19
+ inlineCode: NodeRenderer;
59
20
  };
60
21
  export default CODE_RENDERERS;
61
22
  //# sourceMappingURL=code.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAU1D,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAWF,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,2CA4ErC;AAuDD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBArD0B,OAAO;;;CAwDpD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAU1D,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAWF,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,2CA4ErC;AAuDD,QAAA,MAAM,cAAc;;;CAGnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
package/dist/code.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useTheme } from '@myst-theme/providers';
2
+ import { useThemeSwitcher } from '@myst-theme/providers';
3
3
  import { LightAsync as SyntaxHighlighter } from 'react-syntax-highlighter';
4
4
  import light from 'react-syntax-highlighter/dist/esm/styles/hljs/xcode.js';
5
5
  import dark from 'react-syntax-highlighter/dist/esm/styles/hljs/vs2015.js';
@@ -16,7 +16,7 @@ function normalizeLanguage(lang) {
16
16
  }
17
17
  }
18
18
  export function CodeBlock(props) {
19
- const { isLight } = useTheme();
19
+ const { isLight } = useThemeSwitcher();
20
20
  const { value, lang, identifier, emphasizeLines, showLineNumbers, className, showCopy = true, startingLineNumber = 1, filename, shadow, background, border, } = props;
21
21
  const highlightLines = new Set(emphasizeLines);
22
22
  return (_jsxs("div", { id: identifier, className: classNames('relative group not-prose overflow-auto', className, {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare function LinkCard({ url, title, internal, loading, description, thumbnail, className, }: {
3
2
  url: string;
4
3
  internal?: boolean;
@@ -1 +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,SAAmE,GACpE,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,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAuCA"}
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,SAAmE,GACpE,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,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAuCA"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { CrossReference } from 'myst-spec';
3
2
  import { type NodeRenderer } from '@myst-theme/providers';
4
3
  export declare function useFetchMdast({ remote, url, remoteBaseUrl, dataUrl, }: {
@@ -6,7 +5,7 @@ export declare function useFetchMdast({ remote, url, remoteBaseUrl, dataUrl, }:
6
5
  url?: string;
7
6
  remoteBaseUrl?: string;
8
7
  dataUrl?: string;
9
- }): import("swr/_internal").SWRResponse<any, any, any>;
8
+ }): import("swr").SWRResponse<any, any, any>;
10
9
  export declare function CrossReferenceHover({ url: urlIn, dataUrl: dataUrlIn, remote: remoteIn, remoteBaseUrl: remoteBaseUrlIn, children, identifier, htmlId, }: {
11
10
  remote?: boolean;
12
11
  url?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"crossReference.d.ts","sourceRoot":"","sources":["../src/crossReference.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AA2E/B,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,GAAG,EACH,aAAa,EACb,OAAO,GACR,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,sDAIA;AAYD,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,QAAQ,EAChB,aAAa,EAAE,eAAe,EAC9B,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,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAkEA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAwB3D,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":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AA2E/B,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,GAAG,EACH,aAAa,EACb,OAAO,GACR,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,4CAIA;AAYD,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,QAAQ,EAChB,aAAa,EAAE,eAAe,EAC9B,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,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAkEA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,cAAc,CAwB3D,CAAC;AAEF,QAAA,MAAM,yBAAyB;;CAE9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -78,8 +78,8 @@ export function CrossReferenceHover({ url: urlIn, dataUrl: dataUrlIn, remote: re
78
78
  const parent = useXRefState();
79
79
  const remoteBaseUrl = remoteBaseUrlIn !== null && remoteBaseUrlIn !== void 0 ? remoteBaseUrlIn : parent.remoteBaseUrl;
80
80
  const remote = !!remoteBaseUrl || parent.remote || remoteIn;
81
- const url = parent.remote ? urlIn !== null && urlIn !== void 0 ? urlIn : parent.url : urlIn;
82
- const dataUrl = parent.remote ? dataUrlIn !== null && dataUrlIn !== void 0 ? dataUrlIn : parent.dataUrl : dataUrlIn;
81
+ const url = parent.remote ? (urlIn !== null && urlIn !== void 0 ? urlIn : parent.url) : urlIn;
82
+ const dataUrl = parent.remote ? (dataUrlIn !== null && dataUrlIn !== void 0 ? dataUrlIn : parent.dataUrl) : dataUrlIn;
83
83
  const external = !!remoteBaseUrl || ((_a = url === null || url === void 0 ? void 0 : url.startsWith('http')) !== null && _a !== void 0 ? _a : false);
84
84
  const scroll = (e) => {
85
85
  e.preventDefault();
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export type HashLinkBehavior = {
3
2
  /** When scrolling, is this `instant`, `auto` or `scroll`? */
4
3
  scrollBehavior?: ScrollBehavior;
@@ -1 +1 @@
1
- {"version":3,"file":"hashLink.d.ts","sourceRoot":"","sources":["../src/hashLink.tsx"],"names":[],"mappings":";AAGA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAUF,wBAAgB,eAAe,CAC7B,EAAE,EAAE,WAAW,GAAG,IAAI,EACtB,EACE,MAAe,EACf,cAAyB,EACzB,YAAwB,EACxB,WAAkB,GACnB,GAAE;IACD,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,gBAAqB,QAe1B;AAED,wBAAgB,QAAQ,CAAC,EACvB,EAAE,EACF,IAAI,EACJ,KAA8B,EAC9B,QAAc,EACd,aAAqB,EACrB,KAAK,EACL,SAAyB,EACzB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,EAAE;IACD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,gBAAgB,kDA6BnB"}
1
+ {"version":3,"file":"hashLink.d.ts","sourceRoot":"","sources":["../src/hashLink.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAUF,wBAAgB,eAAe,CAC7B,EAAE,EAAE,WAAW,GAAG,IAAI,EACtB,EACE,MAAe,EACf,cAAyB,EACzB,YAAwB,EACxB,WAAkB,GACnB,GAAE;IACD,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,gBAAqB,QAe1B;AAED,wBAAgB,QAAQ,CAAC,EACvB,EAAE,EACF,IAAI,EACJ,KAA8B,EAC9B,QAAc,EACd,aAAqB,EACrB,KAAK,EACL,SAAyB,EACzB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,EAAE;IACD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,gBAAgB,kDA6BnB"}
package/dist/heading.d.ts CHANGED
@@ -1,8 +1,6 @@
1
- import { Heading } from 'myst-spec';
2
1
  import type { NodeRenderer } from '@myst-theme/providers';
3
- declare const Heading: NodeRenderer<Heading>;
4
2
  declare const HEADING_RENDERERS: {
5
- heading: NodeRenderer<Heading>;
3
+ heading: NodeRenderer;
6
4
  };
7
5
  export default HEADING_RENDERERS;
8
6
  //# sourceMappingURL=heading.d.ts.map
@@ -1 +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;AAK1D,QAAA,MAAM,OAAO,EAAE,YAAY,CAAC,OAAO,CAqBlC,CAAC;AAEF,QAAA,MAAM,iBAAiB;;CAEtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../src/heading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA4B1D,QAAA,MAAM,iBAAiB;;CAEtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { NodeRenderer } from '@myst-theme/providers';
2
1
  export { CopyIcon, HoverPopover, Tooltip, LinkCard } from './components/index.js';
3
2
  export { CodeBlock } from './code.js';
4
3
  export { HashLink, scrollToElement } from './hashLink.js';
@@ -6,6 +5,6 @@ export { Admonition, AdmonitionKind } from './admonitions.js';
6
5
  export { Details } from './dropdown.js';
7
6
  export { TabSet, TabItem } from './tabs.js';
8
7
  export { useFetchMdast } from './crossReference.js';
9
- export declare const DEFAULT_RENDERERS: Record<string, NodeRenderer>;
10
- export { MyST } from './MyST.js';
8
+ export declare const DEFAULT_RENDERERS: import("@myst-theme/providers").NodeRenderersValidated;
9
+ export { MyST, selectRenderer } from './MyST.js';
11
10
  //# 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;AAwB1D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAuB1D,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,eAAO,MAAM,iBAAiB,wDA0B7B,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { mergeRenderers } from '@myst-theme/providers';
1
2
  import BASIC_RENDERERS from './basic.js';
2
3
  import ADMONITION_RENDERERS from './admonitions.js';
3
4
  import DROPDOWN_RENDERERS from './dropdown.js';
@@ -27,5 +28,28 @@ export { Admonition, AdmonitionKind } from './admonitions.js';
27
28
  export { Details } from './dropdown.js';
28
29
  export { TabSet, TabItem } from './tabs.js';
29
30
  export { useFetchMdast } from './crossReference.js';
30
- 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(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), ASIDE_RENDERERS);
31
- export { MyST } from './MyST.js';
31
+ export const DEFAULT_RENDERERS = mergeRenderers([
32
+ BASIC_RENDERERS,
33
+ UNKNOWN_MYST_RENDERERS,
34
+ IMAGE_RENDERERS,
35
+ LINK_RENDERERS,
36
+ CODE_RENDERERS,
37
+ MATH_RENDERERS,
38
+ CITE_RENDERERS,
39
+ TAB_RENDERERS,
40
+ IFRAME_RENDERERS,
41
+ FOOTNOTE_RENDERERS,
42
+ ADMONITION_RENDERERS,
43
+ REACTIVE_RENDERERS,
44
+ HEADING_RENDERERS,
45
+ CROSS_REFERENCE_RENDERERS,
46
+ DROPDOWN_RENDERERS,
47
+ CARD_RENDERERS,
48
+ GRID_RENDERERS,
49
+ INLINE_EXPRESSION_RENDERERS,
50
+ EXT_RENDERERS,
51
+ PROOF_RENDERERS,
52
+ EXERCISE_RENDERERS,
53
+ ASIDE_RENDERERS,
54
+ ], true);
55
+ export { MyST, selectRenderer } from './MyST.js';
@@ -1,14 +1,15 @@
1
1
  import type { Link } from 'myst-spec';
2
- import type { NodeRenderer } from '@myst-theme/providers';
2
+ import type { NodeRenderer, NodeRenderers } from '@myst-theme/providers';
3
3
  type TransformedLink = Link & {
4
4
  internal?: boolean;
5
5
  protocol?: string;
6
6
  };
7
- export declare const link: NodeRenderer<TransformedLink>;
7
+ export declare const WikiLinkRenderer: NodeRenderer<TransformedLink>;
8
+ export declare const GithubLinkRenderer: NodeRenderer<TransformedLink>;
9
+ export declare const RRIDLinkRenderer: NodeRenderer<TransformedLink>;
10
+ export declare const RORLinkRenderer: NodeRenderer<TransformedLink>;
11
+ export declare const SimpleLink: NodeRenderer<TransformedLink>;
8
12
  export declare const linkBlock: NodeRenderer<TransformedLink>;
9
- declare const LINK_RENDERERS: {
10
- link: NodeRenderer<TransformedLink>;
11
- linkBlock: NodeRenderer<TransformedLink>;
12
- };
13
+ declare const LINK_RENDERERS: NodeRenderers;
13
14
  export default LINK_RENDERERS;
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/links/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAQ1D,KAAK,eAAe,GAAG,IAAI,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA0CxE,eAAO,MAAM,IAAI,EAAE,YAAY,CAAC,eAAe,CA6C9C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,YAAY,CAAC,eAAe,CA8BnD,CAAC;AAEF,QAAA,MAAM,cAAc;;;CAGnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/links/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOtC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQzE,KAAK,eAAe,GAAG,IAAI,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA0CxE,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,eAAe,CAM1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,eAAe,CAgB5D,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,eAAe,CAE1D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,eAAe,CAEzD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,eAAe,CAcpD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,YAAY,CAAC,eAAe,CA8BnD,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,aAerB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -28,25 +28,29 @@ function InternalLink({ url, children }) {
28
28
  }
29
29
  return (_jsx(HoverPopover, { card: _jsx(LinkCard, { internal: true, url: url, title: page.title, description: page.description, thumbnail: page.thumbnailOptimized || page.thumbnail }), children: _jsx(Link, { to: withBaseurl(url, baseurl), prefetch: "intent", children: children }) }));
30
30
  }
31
- export const link = ({ node }) => {
32
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
31
+ export const WikiLinkRenderer = ({ node }) => {
32
+ var _a, _b;
33
+ return (_jsx(WikiLink, { url: node.url, page: (_a = node.data) === null || _a === void 0 ? void 0 : _a.page, wiki: (_b = node.data) === null || _b === void 0 ? void 0 : _b.wiki, children: _jsx(MyST, { ast: node.children }) }));
34
+ };
35
+ export const GithubLinkRenderer = ({ node }) => {
36
+ var _a, _b, _c, _d, _e, _f, _g, _h;
37
+ return (_jsx(GithubLink, { kind: (_a = node.data) === null || _a === void 0 ? void 0 : _a.kind, url: node.url, org: (_b = node.data) === null || _b === void 0 ? void 0 : _b.org, repo: (_c = node.data) === null || _c === void 0 ? void 0 : _c.repo, raw: (_d = node.data) === null || _d === void 0 ? void 0 : _d.raw, file: (_e = node.data) === null || _e === void 0 ? void 0 : _e.file, from: (_f = node.data) === null || _f === void 0 ? void 0 : _f.from, to: (_g = node.data) === null || _g === void 0 ? void 0 : _g.to, issue_number: (_h = node.data) === null || _h === void 0 ? void 0 : _h.issue_number, children: _jsx(MyST, { ast: node.children }) }));
38
+ };
39
+ export const RRIDLinkRenderer = ({ node }) => {
40
+ var _a;
41
+ return (_jsx(RRIDLink, { rrid: (_a = node.data) === null || _a === void 0 ? void 0 : _a.rrid }));
42
+ };
43
+ export const RORLinkRenderer = ({ node }) => {
44
+ var _a;
45
+ return (_jsx(RORLink, { node: node, ror: (_a = node.data) === null || _a === void 0 ? void 0 : _a.ror }));
46
+ };
47
+ export const SimpleLink = ({ node }) => {
48
+ var _a;
33
49
  const internal = (_a = node.internal) !== null && _a !== void 0 ? _a : false;
34
- const protocol = node.protocol;
35
- switch (protocol) {
36
- case 'wiki':
37
- return (_jsx(WikiLink, { url: node.url, page: (_b = node.data) === null || _b === void 0 ? void 0 : _b.page, wiki: (_c = node.data) === null || _c === void 0 ? void 0 : _c.wiki, children: _jsx(MyST, { ast: node.children }) }));
38
- case 'github':
39
- return (_jsx(GithubLink, { kind: (_d = node.data) === null || _d === void 0 ? void 0 : _d.kind, url: node.url, org: (_e = node.data) === null || _e === void 0 ? void 0 : _e.org, repo: (_f = node.data) === null || _f === void 0 ? void 0 : _f.repo, raw: (_g = node.data) === null || _g === void 0 ? void 0 : _g.raw, file: (_h = node.data) === null || _h === void 0 ? void 0 : _h.file, from: (_j = node.data) === null || _j === void 0 ? void 0 : _j.from, to: (_k = node.data) === null || _k === void 0 ? void 0 : _k.to, issue_number: (_l = node.data) === null || _l === void 0 ? void 0 : _l.issue_number, children: _jsx(MyST, { ast: node.children }) }));
40
- case 'rrid':
41
- return _jsx(RRIDLink, { rrid: (_m = node.data) === null || _m === void 0 ? void 0 : _m.rrid });
42
- case 'ror':
43
- return _jsx(RORLink, { node: node, ror: (_o = node.data) === null || _o === void 0 ? void 0 : _o.ror });
44
- default:
45
- if (internal) {
46
- return (_jsx(InternalLink, { url: node.url, children: _jsx(MyST, { ast: node.children }) }));
47
- }
48
- return (_jsx("a", { target: "_blank", href: node.url, rel: "noreferrer", children: _jsx(MyST, { ast: node.children }) }));
50
+ if (internal) {
51
+ return (_jsx(InternalLink, { url: node.url, children: _jsx(MyST, { ast: node.children }) }));
49
52
  }
53
+ return (_jsx("a", { target: "_blank", href: node.url, rel: "noreferrer", children: _jsx(MyST, { ast: node.children }) }));
50
54
  };
51
55
  export const linkBlock = ({ node }) => {
52
56
  var _a;
@@ -60,7 +64,19 @@ export const linkBlock = ({ node }) => {
60
64
  return (_jsx("a", { className: containerClass, target: "_blank", rel: "noopener noreferrer", href: node.url, children: nested }));
61
65
  };
62
66
  const LINK_RENDERERS = {
63
- link,
67
+ link: {
68
+ base: SimpleLink,
69
+ // Then duplicate the renderers for protocols
70
+ 'link[protocol=github]': GithubLinkRenderer,
71
+ 'link[protocol=wiki]': WikiLinkRenderer,
72
+ 'link[protocol=rrid]': RRIDLinkRenderer,
73
+ 'link[protocol=ror]': RORLinkRenderer,
74
+ // Put the kinds last as they will match first in the future
75
+ 'link[kind=github]': GithubLinkRenderer,
76
+ 'link[kind=wiki]': WikiLinkRenderer,
77
+ 'link[kind=rrid]': RRIDLinkRenderer,
78
+ 'link[kind=ror]': RORLinkRenderer,
79
+ },
64
80
  linkBlock,
65
81
  };
66
82
  export default LINK_RENDERERS;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myst-to-react",
3
- "version": "0.10.0",
3
+ "version": "0.12.0",
4
4
  "type": "module",
5
5
  "exports": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -21,16 +21,16 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@heroicons/react": "^2.0.18",
24
- "@myst-theme/providers": "^0.10.0",
24
+ "@myst-theme/providers": "^0.12.0",
25
25
  "@scienceicons/react": "^0.0.6",
26
26
  "@radix-ui/react-hover-card": "^1.0.6",
27
27
  "buffer": "^6.0.3",
28
28
  "classnames": "^2.3.2",
29
- "myst-common": "^1.5.0",
29
+ "myst-common": "^1.6.0",
30
30
  "myst-config": "^1.5.0",
31
31
  "myst-spec": "^0.0.5",
32
32
  "nanoid": "^4.0.2",
33
- "react-syntax-highlighter": "^15.5.0",
33
+ "react-syntax-highlighter": "15.5.0",
34
34
  "swr": "^2.1.5",
35
35
  "unist-util-select": "^4.0.3",
36
36
  "unist-util-visit": "^4.1.2"