@curvenote/renderers 0.6.12 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/articles.d.ts.map +1 -1
  2. package/dist/articles.js +2 -11
  3. package/dist/components/admonition.d.ts +18 -0
  4. package/dist/components/admonition.d.ts.map +1 -0
  5. package/dist/components/admonition.js +146 -0
  6. package/dist/components/cite-figurebar.d.ts +5 -0
  7. package/dist/components/cite-figurebar.d.ts.map +1 -0
  8. package/dist/components/cite-figurebar.js +73 -0
  9. package/dist/components/cite-youtube.d.ts +6 -0
  10. package/dist/components/cite-youtube.d.ts.map +1 -0
  11. package/dist/components/cite-youtube.js +45 -0
  12. package/dist/components/cite.d.ts +12 -0
  13. package/dist/components/cite.d.ts.map +1 -0
  14. package/dist/components/cite.js +76 -0
  15. package/dist/components/definition-list.d.ts +3 -0
  16. package/dist/components/definition-list.d.ts.map +1 -0
  17. package/dist/components/definition-list.js +20 -0
  18. package/dist/components/faq.d.ts +5 -0
  19. package/dist/components/faq.d.ts.map +1 -0
  20. package/dist/components/faq.js +34 -0
  21. package/dist/components/hero.css +6 -0
  22. package/dist/components/hero.d.ts +28 -0
  23. package/dist/components/hero.d.ts.map +1 -0
  24. package/dist/components/hero.example.d.ts +3 -0
  25. package/dist/components/hero.example.d.ts.map +1 -0
  26. package/dist/components/hero.example.js +30 -0
  27. package/dist/components/hero.js +89 -0
  28. package/dist/components/images.d.ts +5 -0
  29. package/dist/components/images.d.ts.map +1 -0
  30. package/dist/components/images.js +7 -0
  31. package/dist/components/index.d.ts +7 -0
  32. package/dist/components/index.d.ts.map +1 -0
  33. package/dist/components/index.js +6 -0
  34. package/dist/components/inlineError.d.ts +8 -0
  35. package/dist/components/inlineError.d.ts.map +1 -0
  36. package/dist/components/inlineError.js +6 -0
  37. package/dist/components/mermaid.d.ts +11 -0
  38. package/dist/components/mermaid.d.ts.map +1 -0
  39. package/dist/components/mermaid.js +59 -0
  40. package/dist/components/pdb.d.ts +5 -0
  41. package/dist/components/pdb.d.ts.map +1 -0
  42. package/dist/{pdbLink.js → components/pdb.js} +15 -5
  43. package/dist/hooks/useOpenAlex.d.ts +13 -0
  44. package/dist/hooks/useOpenAlex.d.ts.map +1 -0
  45. package/dist/hooks/useOpenAlex.js +33 -0
  46. package/dist/index.css +1 -0
  47. package/dist/index.d.ts +7 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +29 -18
  50. package/dist/transforms/articles.d.ts +4 -1
  51. package/dist/transforms/articles.d.ts.map +1 -1
  52. package/dist/transforms/articles.js +37 -51
  53. package/dist/transforms/index.d.ts +4 -6
  54. package/dist/transforms/index.d.ts.map +1 -1
  55. package/dist/transforms/index.js +11 -24
  56. package/dist/transforms/{outputs.d.ts → notebooks.d.ts} +1 -1
  57. package/dist/transforms/notebooks.d.ts.map +1 -0
  58. package/dist/transforms/{outputs.js → notebooks.js} +5 -6
  59. package/dist/utils/abstract.d.ts +40 -0
  60. package/dist/utils/abstract.d.ts.map +1 -0
  61. package/dist/utils/abstract.js +76 -0
  62. package/package.json +40 -28
  63. package/README.md +0 -6
  64. package/dist/any/index.d.ts +0 -5
  65. package/dist/any/index.d.ts.map +0 -1
  66. package/dist/any/index.js +0 -8
  67. package/dist/any/models.d.ts +0 -18
  68. package/dist/any/models.d.ts.map +0 -1
  69. package/dist/any/models.js +0 -49
  70. package/dist/any/renderers.d.ts +0 -5
  71. package/dist/any/renderers.d.ts.map +0 -1
  72. package/dist/any/renderers.js +0 -113
  73. package/dist/any/types.d.ts +0 -22
  74. package/dist/any/types.d.ts.map +0 -1
  75. package/dist/any/types.js +0 -1
  76. package/dist/cards.d.ts +0 -8
  77. package/dist/cards.d.ts.map +0 -1
  78. package/dist/cards.js +0 -15
  79. package/dist/cite.d.ts +0 -17
  80. package/dist/cite.d.ts.map +0 -1
  81. package/dist/cite.js +0 -94
  82. package/dist/collections.d.ts +0 -6
  83. package/dist/collections.d.ts.map +0 -1
  84. package/dist/collections.js +0 -12
  85. package/dist/pdbLink.d.ts +0 -6
  86. package/dist/pdbLink.d.ts.map +0 -1
  87. package/dist/transforms/cards.d.ts +0 -52
  88. package/dist/transforms/cards.d.ts.map +0 -1
  89. package/dist/transforms/cards.js +0 -68
  90. package/dist/transforms/collections.d.ts +0 -15
  91. package/dist/transforms/collections.d.ts.map +0 -1
  92. package/dist/transforms/collections.js +0 -44
  93. package/dist/transforms/outputs.d.ts.map +0 -1
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useLinkProvider } from '@myst-theme/providers';
3
- import { LockOpen } from 'lucide-react';
4
- import classNames from 'classnames';
5
- function Open({ className }) {
6
- return (_jsxs("div", { className: classNames(className, 'text-sm font-semibold text-green-700 smallcaps opacity-80'), children: [_jsx(LockOpen, { className: "inline-block w-3 h-3 mr-1 align-middle" }), _jsx("span", { className: "align-middle", children: "open" })] }));
7
- }
8
- export const CollectionsRenderer = ({ node, }) => {
9
- const Link = useLinkProvider();
10
- return (_jsxs("div", { className: "py-3", children: [!node.error && node.items.length === 0 && (_jsx("div", { children: "There are no collections in this listing yet." })), !node.error && (_jsx("ul", { className: "space-y-8 not-prose", children: node.items.map((c) => (_jsx("li", { className: "cursor-pointer group/collection", children: _jsxs(Link, { to: `/${c.slug}`.replace('//', '/'), className: "block no-underline", children: [_jsx("h3", { className: "mt-1 text-xl font-semibold text-black group-hover/collection:text-blue-600 dark:group-hover/collection:text-blue-400 dark:text-white", children: c.content.title }), _jsx("p", { className: "mt-1 mb-2 leading-6 text-gray-600 group-hover/collection:text-gray-800 dark:text-gray-300", children: c.content.description }), _jsxs("div", { className: "text-sm text-gray-500 smallcaps", children: [_jsxs("span", { className: "align-bottom", children: [_jsx("span", { className: "font-semibold", children: c.num_published }), " item", c.num_published === 1 ? '' : 's'] }), c.open && _jsx(Open, { className: "inline-block ml-2 align-bottom" })] })] }) }, c.id))) })), node.error && (_jsx("div", { className: "text-red-500 p-4 my-2 bg-red-50 border-[1px] border-red-500 rounded", children: node.error }))] }));
11
- };
12
- export const COLLECTIONS_RENDERERS = { curvenoteCollections: CollectionsRenderer };
package/dist/pdbLink.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import type { GenericNode } from 'myst-common';
2
- export declare function PDBLink({ node, pdb }: {
3
- node: GenericNode;
4
- pdb: string;
5
- }): import("react/jsx-runtime").JSX.Element;
6
- //# sourceMappingURL=pdbLink.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pdbLink.d.ts","sourceRoot":"","sources":["../src/pdbLink.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA8D/C,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,2CAQxE"}
@@ -1,52 +0,0 @@
1
- import { type GenericParent } from 'myst-common';
2
- import type { Node } from 'unist-util-select';
3
- import type { SiteDTO } from '@curvenote/common';
4
- export interface IncomingMaybeCustomCardDirective {
5
- kind: string;
6
- children: Node[];
7
- url: string;
8
- protocol?: string;
9
- internal: boolean;
10
- data: {
11
- showThumbnail?: boolean;
12
- json: {
13
- type?: string;
14
- title?: string;
15
- description?: string;
16
- authors?: {
17
- name: string;
18
- affiliation?: string;
19
- orcid?: string;
20
- }[];
21
- doi?: string;
22
- year?: string;
23
- date?: string;
24
- pages?: string[];
25
- thumbnail?: string;
26
- };
27
- parsed?: {
28
- title?: GenericParent;
29
- description?: GenericParent;
30
- };
31
- };
32
- }
33
- export type OutgoingMaybeCustomCardDirective = IncomingMaybeCustomCardDirective & {
34
- data: {
35
- json: {
36
- doi?: string;
37
- thumbnail?: string | boolean;
38
- url?: string;
39
- };
40
- };
41
- };
42
- export declare const CardKindArticleListItem = "curvenoteArticleListItem";
43
- export declare const CardKindExternalListItem = "curvenoteExternalListItem";
44
- /**
45
- * Looks for myst card directives marked with custom kinds and transforms them
46
- * ready for custom renering using data embedded in the directive.
47
- *
48
- * @param node
49
- * @returns
50
- */
51
- export declare function transformCards(site: SiteDTO, node: GenericParent): void;
52
- //# sourceMappingURL=cards.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../src/transforms/cards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE;QACJ,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,IAAI,EAAE;YACJ,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,OAAO,CAAC,EAAE;gBACR,IAAI,EAAE,MAAM,CAAC;gBACb,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,KAAK,CAAC,EAAE,MAAM,CAAC;aAChB,EAAE,CAAC;YACJ,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,MAAM,CAAC,EAAE;YACP,KAAK,CAAC,EAAE,aAAa,CAAC;YACtB,WAAW,CAAC,EAAE,aAAa,CAAC;SAC7B,CAAC;KACH,CAAC;CACH;AAED,MAAM,MAAM,gCAAgC,GAAG,gCAAgC,GAAG;IAChF,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;YAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAClE,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,QAGhE"}
@@ -1,68 +0,0 @@
1
- import { slugToUrl } from 'myst-common';
2
- import { selectAll } from 'unist-util-select';
3
- export const CardKindArticleListItem = 'curvenoteArticleListItem';
4
- export const CardKindExternalListItem = 'curvenoteExternalListItem';
5
- /**
6
- * Looks for myst card directives marked with custom kinds and transforms them
7
- * ready for custom renering using data embedded in the directive.
8
- *
9
- * @param node
10
- * @returns
11
- */
12
- export function transformCards(site, node) {
13
- transformArticleListItems(site, node);
14
- transformExternalListItems(site, node);
15
- }
16
- function transformArticleListItems(site, node) {
17
- const articlesListItemDirectives = selectAll(`card[kind=${CardKindArticleListItem}]`, node);
18
- articlesListItemDirectives.forEach((n) => {
19
- transformListItem(site, n);
20
- });
21
- }
22
- function transformExternalListItems(site, node) {
23
- const externalListItemDirectives = selectAll(`card[kind=${CardKindExternalListItem}]`, node);
24
- externalListItemDirectives.forEach((n) => {
25
- transformListItem(site, n);
26
- });
27
- }
28
- function transformListItem(site, n) {
29
- var _a, _b, _c, _d, _e;
30
- const output = n; // same object, modified in place
31
- if (!((_a = n.data) === null || _a === void 0 ? void 0 : _a.json))
32
- return; // no data, leave fallback in place
33
- const json = n.data.json;
34
- let slug;
35
- if (n.url) {
36
- const tokens = n.url.split('/');
37
- slug = tokens[tokens.length - 1];
38
- }
39
- else if (json.doi) {
40
- const tokens = (_b = json.doi) === null || _b === void 0 ? void 0 : _b.split('/');
41
- slug = tokens[tokens.length - 1];
42
- }
43
- let url;
44
- if (n.kind === CardKindExternalListItem) {
45
- if (n.url) {
46
- url = n.url;
47
- }
48
- else if (json.doi) {
49
- url = json.doi.startsWith('https://doi.org') ? json.doi : `https://doi.org/${json.doi}`;
50
- output.url = url;
51
- }
52
- }
53
- else if (n.kind === CardKindArticleListItem) {
54
- url = `/articles/${slugToUrl(slug)}`;
55
- output.protocol = undefined;
56
- output.internal = true;
57
- output.url = url;
58
- }
59
- let thumbnail;
60
- if (n.data.showThumbnail) {
61
- thumbnail =
62
- (_c = json.thumbnail) !== null && _c !== void 0 ? _c : `${process.env.JOURNALS_API_URL}sites/${site.name}/works/${slug}/thumbnail`;
63
- }
64
- output.data = Object.assign(Object.assign({}, output.data), { json: Object.assign(Object.assign({}, ((_e = (_d = n.data) === null || _d === void 0 ? void 0 : _d.json) !== null && _e !== void 0 ? _e : {})), { url,
65
- thumbnail }) });
66
- // remove fallback content
67
- output.children = [];
68
- }
@@ -1,15 +0,0 @@
1
- import type { GenericParent } from 'myst-common';
2
- import type { CollectionListingDTO } from '@curvenote/common';
3
- export interface IncomingCollectionsDirective {
4
- venue: string;
5
- show?: 'open' | 'closed' | 'all';
6
- exclude?: string;
7
- ['show-count']?: boolean;
8
- }
9
- export type OutgoingCollectionsDirective = Omit<IncomingCollectionsDirective, 'exclude'> & {
10
- items: CollectionListingDTO['items'];
11
- exclude?: string[];
12
- error?: string;
13
- };
14
- export declare function transformCollections(node: GenericParent): Promise<void[]>;
15
- //# sourceMappingURL=collections.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/transforms/collections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAI9D,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,4BAA4B,EAAE,SAAS,CAAC,GAAG;IACzF,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,aAAa,mBAmC7D"}
@@ -1,44 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { selectAll } from 'unist-util-select';
11
- import pLimit from 'p-limit';
12
- export function transformCollections(node) {
13
- return __awaiter(this, void 0, void 0, function* () {
14
- const collectionsDirectives = selectAll('curvenoteCollections', node);
15
- const limit = pLimit(5);
16
- return Promise.all(collectionsDirectives.map((n) => __awaiter(this, void 0, void 0, function* () {
17
- return limit(() => __awaiter(this, void 0, void 0, function* () {
18
- const output = n; // same object, modified in place
19
- if (!n.show)
20
- output.show = 'all';
21
- if (n.exclude)
22
- output.exclude = n.exclude.split(',').map((s) => s.trim());
23
- const apiUrl = process.env.JOURNALS_API_URL;
24
- const url = new URL(`${apiUrl}sites/${n.venue}/collections`);
25
- try {
26
- const res = yield fetch(url.toString());
27
- if (!res.ok)
28
- throw new Error(`${res.status} ${res.statusText}`);
29
- const data = (yield res.json());
30
- if (output.exclude) {
31
- output.items = data.items.filter((item) => { var _a; return !((_a = output.exclude) !== null && _a !== void 0 ? _a : []).includes(item.name); });
32
- }
33
- if (output.show !== 'all') {
34
- output.items = output.items.filter((item) => item.open === (output.show === 'open'));
35
- }
36
- }
37
- catch (e) {
38
- output.error = 'Could not load collection listing';
39
- console.error('Could not load collection listing', e);
40
- }
41
- }));
42
- })));
43
- });
44
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"outputs.d.ts","sourceRoot":"","sources":["../../src/transforms/outputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,UAAU,QAmBzE"}