@xeonr/platform-ui 1.0.0 → 1.1.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/kit/Markdown.d.ts +25 -1
- package/dist/kit/Markdown.d.ts.map +1 -1
- package/dist/kit/Markdown.js +25 -5
- package/dist/kit/Markdown.js.map +1 -1
- package/dist/markdown.d.ts +1 -1
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js.map +1 -1
- package/package.json +1 -1
package/dist/kit/Markdown.d.ts
CHANGED
|
@@ -1,8 +1,32 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Where a markdown link goes, as `resolveLink` answers it: `to` is a route in
|
|
4
|
+
* this console (a router link, no page load), `href` an address of its own
|
|
5
|
+
* (`external` opens it in a new tab).
|
|
6
|
+
*/
|
|
7
|
+
export type MarkdownLink = {
|
|
8
|
+
to: string;
|
|
9
|
+
} | {
|
|
10
|
+
href: string;
|
|
11
|
+
external?: boolean | undefined;
|
|
12
|
+
};
|
|
1
13
|
/** Markdown: rendered GitHub-flavoured markdown. Raw HTML is not enabled. */
|
|
2
|
-
export declare function Markdown({ text, empty }: {
|
|
14
|
+
export declare function Markdown({ text, empty, resolveLink, renderImage }: {
|
|
3
15
|
text: string;
|
|
4
16
|
/** what an empty field says; it is a state, not a blank */
|
|
5
17
|
empty?: string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Re-points a link as written (`../docs/PLAN.md`, `[[wiki]]` targets once a
|
|
20
|
+
* console has rewritten them): a route in this console, another address, or
|
|
21
|
+
* nothing to leave it as written. Links the text means relative to a file
|
|
22
|
+
* resolve here, since the page's own URL is not where they are relative to.
|
|
23
|
+
*/
|
|
24
|
+
resolveLink?: ((href: string) => MarkdownLink | null | undefined) | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Draws an image the console must load itself — a relative src fetched
|
|
27
|
+
* through its API — or nothing to draw `<img>` from the src as written.
|
|
28
|
+
*/
|
|
29
|
+
renderImage?: ((src: string, alt: string, title: string | undefined) => ReactNode | undefined) | undefined;
|
|
6
30
|
}): import("react").JSX.Element;
|
|
7
31
|
/** MarkdownEditor: the write/preview pair. Controlled, like every kit field. */
|
|
8
32
|
export declare function MarkdownEditor({ value, onChange, placeholder, rows, autoFocus }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/kit/Markdown.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/kit/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAmD1D;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAAC;AAE7F,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAA8B,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE;IAC3F,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC9E;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,SAAS,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CAC5G,+BAmCA;AAeD,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAQ,EAAE,SAAS,EAAE,EAAE;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC,+BAuBA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAA8B,EAAE,EAAE;IACzG,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,+BAyBA"}
|
package/dist/kit/Markdown.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from "react";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo, useState } from "react";
|
|
3
|
+
import { Link } from "react-router-dom";
|
|
3
4
|
import styled from "styled-components";
|
|
4
|
-
import ReactMarkdown from "react-markdown";
|
|
5
|
+
import ReactMarkdown, {} from "react-markdown";
|
|
5
6
|
import remarkGfm from "remark-gfm";
|
|
6
7
|
import { v } from "../theme/tokens.js";
|
|
7
8
|
import { AppButton, ButtonRow } from "./Button.js";
|
|
@@ -46,10 +47,29 @@ const Absent = styled.span `
|
|
|
46
47
|
font-style: italic;
|
|
47
48
|
`;
|
|
48
49
|
/** Markdown: rendered GitHub-flavoured markdown. Raw HTML is not enabled. */
|
|
49
|
-
export function Markdown({ text, empty = "Nothing written yet." }) {
|
|
50
|
+
export function Markdown({ text, empty = "Nothing written yet.", resolveLink, renderImage }) {
|
|
51
|
+
const components = useMemo(() => {
|
|
52
|
+
if (!resolveLink && !renderImage)
|
|
53
|
+
return undefined;
|
|
54
|
+
const c = {};
|
|
55
|
+
if (resolveLink)
|
|
56
|
+
c.a = ({ href, children, title }) => {
|
|
57
|
+
const to = href ? resolveLink(href) : null;
|
|
58
|
+
if (to && "to" in to)
|
|
59
|
+
return (_jsx(Link, { to: to.to, title: title, children: children }));
|
|
60
|
+
const external = !!to && "href" in to && to.external;
|
|
61
|
+
return (_jsx("a", { href: to && "href" in to ? to.href : href, title: title, ...(external ? { target: "_blank", rel: "noreferrer" } : {}), children: children }));
|
|
62
|
+
};
|
|
63
|
+
if (renderImage)
|
|
64
|
+
c.img = ({ src, alt, title }) => {
|
|
65
|
+
const drawn = typeof src === "string" ? renderImage(src, alt ?? "", title) : undefined;
|
|
66
|
+
return drawn === undefined ? _jsx("img", { src: typeof src === "string" ? src : undefined, alt: alt ?? "", title: title }) : _jsx(_Fragment, { children: drawn });
|
|
67
|
+
};
|
|
68
|
+
return c;
|
|
69
|
+
}, [resolveLink, renderImage]);
|
|
50
70
|
if (!text.trim())
|
|
51
71
|
return _jsx(Absent, { children: empty });
|
|
52
|
-
return (_jsx(Body, { children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], children: text }) }));
|
|
72
|
+
return (_jsx(Body, { children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], ...(components ? { components } : {}), children: text }) }));
|
|
53
73
|
}
|
|
54
74
|
const EditorWrap = styled.div `
|
|
55
75
|
display: flex;
|
package/dist/kit/Markdown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../src/kit/Markdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../src/kit/Markdown.tsx"],"names":[],"mappings":"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"}
|
package/dist/markdown.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { Markdown, MarkdownEditor, EditableMarkdown } from "./kit/Markdown.tsx";
|
|
1
|
+
export { Markdown, MarkdownEditor, EditableMarkdown, type MarkdownLink } from "./kit/Markdown.tsx";
|
|
2
2
|
//# sourceMappingURL=markdown.d.ts.map
|
package/dist/markdown.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/markdown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,SAAS;AACT,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,SAAS;AACT,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAqB,MAAM,mBAAoB,CAAC"}
|
package/package.json
CHANGED