@terra-symposium/docs 0.0.0-stage → 0.1.17
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/LICENSE +201 -0
- package/README.md +72 -2
- package/lib-dist/Docs.d.ts +22 -0
- package/lib-dist/Docs.d.ts.map +1 -0
- package/lib-dist/Docs.js +60 -0
- package/lib-dist/Docs.js.map +1 -0
- package/lib-dist/LocalDocsWorkspace.d.ts +30 -0
- package/lib-dist/LocalDocsWorkspace.d.ts.map +1 -0
- package/lib-dist/LocalDocsWorkspace.js +148 -0
- package/lib-dist/LocalDocsWorkspace.js.map +1 -0
- package/lib-dist/SiteLayout.d.ts +30 -0
- package/lib-dist/SiteLayout.d.ts.map +1 -0
- package/lib-dist/SiteLayout.js +34 -0
- package/lib-dist/SiteLayout.js.map +1 -0
- package/lib-dist/StaticWorkspace.d.ts +21 -0
- package/lib-dist/StaticWorkspace.d.ts.map +1 -0
- package/lib-dist/StaticWorkspace.js +179 -0
- package/lib-dist/StaticWorkspace.js.map +1 -0
- package/lib-dist/_Toolbar.d.ts +7 -0
- package/lib-dist/_Toolbar.d.ts.map +1 -0
- package/lib-dist/_Toolbar.js +85 -0
- package/lib-dist/_Toolbar.js.map +1 -0
- package/lib-dist/blocks.d.ts +23 -0
- package/lib-dist/blocks.d.ts.map +1 -0
- package/lib-dist/blocks.js +321 -0
- package/lib-dist/blocks.js.map +1 -0
- package/lib-dist/docs-catalog.d.ts +5 -0
- package/lib-dist/docs-catalog.d.ts.map +1 -0
- package/lib-dist/docs-catalog.js +38 -0
- package/lib-dist/docs-catalog.js.map +1 -0
- package/lib-dist/docs-style.css +31 -0
- package/lib-dist/fonts/Avara-Bold.woff2 +0 -0
- package/lib-dist/fonts/Avara-BoldItalic.woff2 +0 -0
- package/lib-dist/fonts/OFL-1.1.txt +93 -0
- package/lib-dist/fonts/README.md +5 -0
- package/lib-dist/host-runtime.d.ts +5 -0
- package/lib-dist/host-runtime.d.ts.map +1 -0
- package/lib-dist/host-runtime.js +21 -0
- package/lib-dist/host-runtime.js.map +1 -0
- package/lib-dist/host.d.ts +170 -0
- package/lib-dist/host.d.ts.map +1 -0
- package/lib-dist/host.js +2 -0
- package/lib-dist/host.js.map +1 -0
- package/lib-dist/index.d.ts +35 -0
- package/lib-dist/index.d.ts.map +1 -0
- package/lib-dist/index.js +28 -0
- package/lib-dist/index.js.map +1 -0
- package/lib-dist/markdown-model.d.ts +7 -0
- package/lib-dist/markdown-model.d.ts.map +1 -0
- package/lib-dist/markdown-model.js +181 -0
- package/lib-dist/markdown-model.js.map +1 -0
- package/lib-dist/markdown.d.ts +3 -0
- package/lib-dist/markdown.d.ts.map +1 -0
- package/lib-dist/markdown.js +83 -0
- package/lib-dist/markdown.js.map +1 -0
- package/lib-dist/navigation.d.ts +17 -0
- package/lib-dist/navigation.d.ts.map +1 -0
- package/lib-dist/navigation.js +9 -0
- package/lib-dist/navigation.js.map +1 -0
- package/lib-dist/schema.d.ts +135 -0
- package/lib-dist/schema.d.ts.map +1 -0
- package/lib-dist/schema.js +55 -0
- package/lib-dist/schema.js.map +1 -0
- package/lib-dist/style.css +1 -0
- package/lib-dist/terra/Workspace.d.ts +5 -0
- package/lib-dist/terra/Workspace.d.ts.map +1 -0
- package/lib-dist/terra/Workspace.js +9 -0
- package/lib-dist/terra/Workspace.js.map +1 -0
- package/lib-dist/terra/editor/TerraContentEditor.d.ts +10 -0
- package/lib-dist/terra/editor/TerraContentEditor.d.ts.map +1 -0
- package/lib-dist/terra/editor/TerraContentEditor.js +47 -0
- package/lib-dist/terra/editor/TerraContentEditor.js.map +1 -0
- package/lib-dist/terra/editor/_blocks.d.ts +71 -0
- package/lib-dist/terra/editor/_blocks.d.ts.map +1 -0
- package/lib-dist/terra/editor/_blocks.js +110 -0
- package/lib-dist/terra/editor/_blocks.js.map +1 -0
- package/lib-dist/terra/editor/docs/_Callout.d.ts +14 -0
- package/lib-dist/terra/editor/docs/_Callout.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_Callout.js +41 -0
- package/lib-dist/terra/editor/docs/_Callout.js.map +1 -0
- package/lib-dist/terra/editor/docs/_CodeBlock.d.ts +39 -0
- package/lib-dist/terra/editor/docs/_CodeBlock.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_CodeBlock.js +494 -0
- package/lib-dist/terra/editor/docs/_CodeBlock.js.map +1 -0
- package/lib-dist/terra/editor/docs/_DocsCode.d.ts +14 -0
- package/lib-dist/terra/editor/docs/_DocsCode.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_DocsCode.js +95 -0
- package/lib-dist/terra/editor/docs/_DocsCode.js.map +1 -0
- package/lib-dist/terra/editor/docs/_DocsImage.d.ts +18 -0
- package/lib-dist/terra/editor/docs/_DocsImage.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_DocsImage.js +62 -0
- package/lib-dist/terra/editor/docs/_DocsImage.js.map +1 -0
- package/lib-dist/terra/editor/docs/_Embed.d.ts +15 -0
- package/lib-dist/terra/editor/docs/_Embed.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_Embed.js +27 -0
- package/lib-dist/terra/editor/docs/_Embed.js.map +1 -0
- package/lib-dist/terra/editor/docs/_Math.d.ts +31 -0
- package/lib-dist/terra/editor/docs/_Math.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_Math.js +126 -0
- package/lib-dist/terra/editor/docs/_Math.js.map +1 -0
- package/lib-dist/terra/editor/docs/_Nodes.d.ts +15 -0
- package/lib-dist/terra/editor/docs/_Nodes.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_Nodes.js +52 -0
- package/lib-dist/terra/editor/docs/_Nodes.js.map +1 -0
- package/lib-dist/terra/editor/docs/_Raw.d.ts +15 -0
- package/lib-dist/terra/editor/docs/_Raw.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_Raw.js +26 -0
- package/lib-dist/terra/editor/docs/_Raw.js.map +1 -0
- package/lib-dist/terra/editor/docs/_Table.d.ts +12 -0
- package/lib-dist/terra/editor/docs/_Table.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_Table.js +71 -0
- package/lib-dist/terra/editor/docs/_Table.js.map +1 -0
- package/lib-dist/terra/editor/docs/_Tabs.d.ts +14 -0
- package/lib-dist/terra/editor/docs/_Tabs.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_Tabs.js +104 -0
- package/lib-dist/terra/editor/docs/_Tabs.js.map +1 -0
- package/lib-dist/terra/editor/docs/_TsDocs.d.ts +15 -0
- package/lib-dist/terra/editor/docs/_TsDocs.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_TsDocs.js +81 -0
- package/lib-dist/terra/editor/docs/_TsDocs.js.map +1 -0
- package/lib-dist/terra/editor/docs/_math_inline.d.ts +14 -0
- package/lib-dist/terra/editor/docs/_math_inline.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/_math_inline.js +30 -0
- package/lib-dist/terra/editor/docs/_math_inline.js.map +1 -0
- package/lib-dist/terra/editor/docs/heading.d.ts +23 -0
- package/lib-dist/terra/editor/docs/heading.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/heading.js +60 -0
- package/lib-dist/terra/editor/docs/heading.js.map +1 -0
- package/lib-dist/terra/editor/docs/index.d.ts +13 -0
- package/lib-dist/terra/editor/docs/index.d.ts.map +1 -0
- package/lib-dist/terra/editor/docs/index.js +14 -0
- package/lib-dist/terra/editor/docs/index.js.map +1 -0
- package/lib-dist/terra/editor/types.d.ts +40 -0
- package/lib-dist/terra/editor/types.d.ts.map +1 -0
- package/lib-dist/terra/editor/types.js +11 -0
- package/lib-dist/terra/editor/types.js.map +1 -0
- package/lib-dist/terra/flow/Nodes.d.ts +78 -0
- package/lib-dist/terra/flow/Nodes.d.ts.map +1 -0
- package/lib-dist/terra/flow/Nodes.js +912 -0
- package/lib-dist/terra/flow/Nodes.js.map +1 -0
- package/lib-dist/terra/flow/_chrome.d.ts +267 -0
- package/lib-dist/terra/flow/_chrome.d.ts.map +1 -0
- package/lib-dist/terra/flow/_chrome.js +798 -0
- package/lib-dist/terra/flow/_chrome.js.map +1 -0
- package/lib-dist/terra/flow/_layout.d.ts +30 -0
- package/lib-dist/terra/flow/_layout.d.ts.map +1 -0
- package/lib-dist/terra/flow/_layout.js +53 -0
- package/lib-dist/terra/flow/_layout.js.map +1 -0
- package/lib-dist/terra/flow/menuContext.d.ts +13 -0
- package/lib-dist/terra/flow/menuContext.d.ts.map +1 -0
- package/lib-dist/terra/flow/menuContext.js +10 -0
- package/lib-dist/terra/flow/menuContext.js.map +1 -0
- package/lib-dist/terra/flow/powerSource.d.ts +16 -0
- package/lib-dist/terra/flow/powerSource.d.ts.map +1 -0
- package/lib-dist/terra/flow/powerSource.js +59 -0
- package/lib-dist/terra/flow/powerSource.js.map +1 -0
- package/lib-dist/terra/pages/docs/_attachments.d.ts +20 -0
- package/lib-dist/terra/pages/docs/_attachments.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_attachments.js +904 -0
- package/lib-dist/terra/pages/docs/_attachments.js.map +1 -0
- package/lib-dist/terra/pages/docs/_blocks.d.ts +48 -0
- package/lib-dist/terra/pages/docs/_blocks.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_blocks.js +192 -0
- package/lib-dist/terra/pages/docs/_blocks.js.map +1 -0
- package/lib-dist/terra/pages/docs/_custom.d.ts +5 -0
- package/lib-dist/terra/pages/docs/_custom.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_custom.js +6 -0
- package/lib-dist/terra/pages/docs/_custom.js.map +1 -0
- package/lib-dist/terra/pages/docs/_editable.d.ts +61 -0
- package/lib-dist/terra/pages/docs/_editable.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_editable.js +404 -0
- package/lib-dist/terra/pages/docs/_editable.js.map +1 -0
- package/lib-dist/terra/pages/docs/_export-dialog.d.ts +19 -0
- package/lib-dist/terra/pages/docs/_export-dialog.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_export-dialog.js +78 -0
- package/lib-dist/terra/pages/docs/_export-dialog.js.map +1 -0
- package/lib-dist/terra/pages/docs/_helpers.d.ts +395 -0
- package/lib-dist/terra/pages/docs/_helpers.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_helpers.js +911 -0
- package/lib-dist/terra/pages/docs/_helpers.js.map +1 -0
- package/lib-dist/terra/pages/docs/_icons.d.ts +20 -0
- package/lib-dist/terra/pages/docs/_icons.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_icons.js +29 -0
- package/lib-dist/terra/pages/docs/_icons.js.map +1 -0
- package/lib-dist/terra/pages/docs/_main.d.ts +51 -0
- package/lib-dist/terra/pages/docs/_main.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_main.js +1959 -0
- package/lib-dist/terra/pages/docs/_main.js.map +1 -0
- package/lib-dist/terra/pages/docs/_sidebar.d.ts +42 -0
- package/lib-dist/terra/pages/docs/_sidebar.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_sidebar.js +2450 -0
- package/lib-dist/terra/pages/docs/_sidebar.js.map +1 -0
- package/lib-dist/terra/pages/docs/_toolbar.d.ts +23 -0
- package/lib-dist/terra/pages/docs/_toolbar.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_toolbar.js +1539 -0
- package/lib-dist/terra/pages/docs/_toolbar.js.map +1 -0
- package/lib-dist/terra/pages/docs/_tree.d.ts +178 -0
- package/lib-dist/terra/pages/docs/_tree.d.ts.map +1 -0
- package/lib-dist/terra/pages/docs/_tree.js +1168 -0
- package/lib-dist/terra/pages/docs/_tree.js.map +1 -0
- package/lib-dist/terra/regex.mjs +398 -0
- package/lib-dist/terra/runtime/action-proxy.d.ts +5 -0
- package/lib-dist/terra/runtime/action-proxy.d.ts.map +1 -0
- package/lib-dist/terra/runtime/action-proxy.js +19 -0
- package/lib-dist/terra/runtime/action-proxy.js.map +1 -0
- package/lib-dist/terra/runtime/content.d.ts +150 -0
- package/lib-dist/terra/runtime/content.d.ts.map +1 -0
- package/lib-dist/terra/runtime/content.js +1171 -0
- package/lib-dist/terra/runtime/content.js.map +1 -0
- package/lib-dist/terra/runtime/leaf.d.ts +5 -0
- package/lib-dist/terra/runtime/leaf.d.ts.map +1 -0
- package/lib-dist/terra/runtime/leaf.js +13 -0
- package/lib-dist/terra/runtime/leaf.js.map +1 -0
- package/lib-dist/terra/runtime/nodes.d.ts +112 -0
- package/lib-dist/terra/runtime/nodes.d.ts.map +1 -0
- package/lib-dist/terra/runtime/nodes.js +534 -0
- package/lib-dist/terra/runtime/nodes.js.map +1 -0
- package/lib-dist/terra/runtime/runtime.d.ts +25 -0
- package/lib-dist/terra/runtime/runtime.d.ts.map +1 -0
- package/lib-dist/terra/runtime/runtime.js +50 -0
- package/lib-dist/terra/runtime/runtime.js.map +1 -0
- package/lib-dist/terra/runtime/shared.d.ts +35 -0
- package/lib-dist/terra/runtime/shared.d.ts.map +1 -0
- package/lib-dist/terra/runtime/shared.js +79 -0
- package/lib-dist/terra/runtime/shared.js.map +1 -0
- package/lib-dist/terra/runtime/types.d.ts +266 -0
- package/lib-dist/terra/runtime/types.d.ts.map +1 -0
- package/lib-dist/terra/runtime/types.js +18 -0
- package/lib-dist/terra/runtime/types.js.map +1 -0
- package/lib-dist/terra/runtime/ui.d.ts +31 -0
- package/lib-dist/terra/runtime/ui.d.ts.map +1 -0
- package/lib-dist/terra/runtime/ui.js +16 -0
- package/lib-dist/terra/runtime/ui.js.map +1 -0
- package/lib-dist/workspace.d.ts +78 -0
- package/lib-dist/workspace.d.ts.map +1 -0
- package/lib-dist/workspace.js +151 -0
- package/lib-dist/workspace.js.map +1 -0
- package/package.json +90 -3
- package/src/SiteLayout.astro +38 -0
- package/src/navigation.tsx +47 -0
- package/src/style.css +733 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// @ts-nocheck -- source-preserving extraction; public host contracts are typed in src/host.ts.
|
|
3
|
+
/** Docs table renderer with view and edit modes. */
|
|
4
|
+
import { useEditor } from '@portabletext/editor';
|
|
5
|
+
import { Add as AddIcon, TrashCan as TrashIcon } from '@carbon/icons-react';
|
|
6
|
+
import { TerraContentEditor } from '../TerraContentEditor.js';
|
|
7
|
+
import { ErrorBoundary } from '../../runtime/ui.js';
|
|
8
|
+
import { Button } from '@terra-symposium/styling/ui/terra-original';
|
|
9
|
+
import { Input } from '@terra-symposium/styling/ui/terra-original';
|
|
10
|
+
import { isRec } from '../../runtime/runtime.js';
|
|
11
|
+
const key = (val, fallback) => (isRec(val) && typeof val._key === 'string' ? val._key : fallback);
|
|
12
|
+
const cells = (vals, count) => Array.from({ length: count }, (_cell, i) => vals[i]);
|
|
13
|
+
const newKey = () => crypto.randomUUID().replaceAll('-', '');
|
|
14
|
+
const cell = (text = '') => ({
|
|
15
|
+
_key: newKey(),
|
|
16
|
+
_type: 'cell',
|
|
17
|
+
content: text ? [{ _key: newKey(), _type: 'block', children: [{ _key: newKey(), _type: 'span', marks: [], text }], markDefs: [], style: 'normal' }] : [],
|
|
18
|
+
});
|
|
19
|
+
/** Renders a Docs table and its nested cell content.
|
|
20
|
+
*
|
|
21
|
+
* @param props - Authored table block with its headers, rows, and cell content.
|
|
22
|
+
* @returns The accessible table view.
|
|
23
|
+
*/
|
|
24
|
+
function Table({ block }) {
|
|
25
|
+
const rows = (block.rows ?? []);
|
|
26
|
+
const count = rows.reduce((m, r) => Math.max(m, Array.isArray(r.cells) ? r.cells.length : 0), 0);
|
|
27
|
+
const renderCell = (c) => c ? _jsx(TerraContentEditor, { content: (Array.isArray(c.content) ? c.content : []), docsAttachments: [], memberProfile: 'docs', nested: true, readOnly: true }) : null;
|
|
28
|
+
return (_jsx(ErrorBoundary, { name: 'TableBlock', children: _jsxs("section", { className: 'my-6 overflow-x-auto', "data-docs-editor-block": 'DocsTable', children: [block.header && block.header !== 'Table' && _jsx("h3", { className: 'sr-only', children: block.header }), _jsxs("table", { children: [_jsx("thead", { children: _jsx("tr", { children: cells(Array.isArray(rows[0]?.cells) ? rows[0].cells : [], count).map((c, i) => (_jsx("th", { children: renderCell(c) }, c ? key(c, `${i}`) : i))) }) }), _jsx("tbody", { children: rows.slice(1).map((r, v) => {
|
|
29
|
+
return (_jsx("tr", { children: cells(Array.isArray(r.cells) ? r.cells : [], count).map((c, i) => (_jsx("td", { children: renderCell(c) }, c ? key(c, `${i}`) : i))) }, key(r, `${v}`)));
|
|
30
|
+
}) })] })] }) }));
|
|
31
|
+
}
|
|
32
|
+
Object.assign(Table, { displayName: 'DocsTablePreview' });
|
|
33
|
+
/** Renders editable Docs table controls and cells.
|
|
34
|
+
*
|
|
35
|
+
* @param props - Portable Text editor attributes, nested children, table node, and path used to update rows and cells.
|
|
36
|
+
* @returns The editable table controls and cells.
|
|
37
|
+
*/
|
|
38
|
+
function TableEditor({ attributes: attrs, children, node, path }) {
|
|
39
|
+
const editor = useEditor();
|
|
40
|
+
const block = node;
|
|
41
|
+
const rows = block.rows ?? [];
|
|
42
|
+
const colCount = Math.max(1, ...rows.map(r => r.cells?.length ?? 0));
|
|
43
|
+
const update = (nRows) => editor.send({ type: 'block.set', at: path, props: { rows: nRows } });
|
|
44
|
+
return (_jsx(ErrorBoundary, { name: 'TableEditor', children: _jsxs("section", { ...attrs, contentEditable: false, className: 'my-6 overflow-x-auto rounded-md border border-primary-5 p-3', "data-terra-block": 'table', children: [_jsxs("div", { className: 'mb-3 flex flex-wrap items-center gap-2', children: [_jsx(Input, { "aria-label": 'Table heading', className: 'max-w-sm', value: block.header ?? '', onChange: e => editor.send({ type: 'block.set', at: path, props: { header: e.currentTarget.value } }), placeholder: 'Table heading' }), _jsxs(Button, { size: 'sm', variant: 'outline', onClick: () => update([...rows, { _key: newKey(), _type: 'row', cells: Array.from({ length: colCount }, () => cell()) }]), children: [_jsx(AddIcon, { "aria-hidden": 'true' }), " Row"] }), _jsxs(Button, { size: 'sm', variant: 'outline', onClick: () => update(rows.map(r => ({ ...r, cells: [...(r.cells ?? []), cell()] }))), children: [_jsx(AddIcon, { "aria-hidden": 'true' }), " Column"] })] }), _jsx("table", { className: 'w-full border-collapse text-left', children: _jsx("tbody", { children: rows.map((r, v) => (_jsxs("tr", { children: [Array.from({ length: colCount }, (_cell, i) => {
|
|
45
|
+
const Tag = i === 0 ? 'th' : 'td';
|
|
46
|
+
return (_jsx(Tag, { className: 'border border-primary-5 p-1 align-top', children: _jsx("textarea", { "aria-label": `Table cell ${v + 1}, ${i + 1}`, className: 'min-h-10 w-full resize-y bg-transparent p-1 outline-none', value: ((c) => {
|
|
47
|
+
return Array.isArray(c?.content)
|
|
48
|
+
? c.content.map(b => (Array.isArray(b.children) ? b.children.map(c => ('text' in c && typeof c.text === 'string' ? c.text : '')).join('') : '')).join('\n')
|
|
49
|
+
: '';
|
|
50
|
+
})(r.cells?.[i]), onChange: ({ currentTarget: { value: text } }) => {
|
|
51
|
+
update(rows.map((r, c) => ({
|
|
52
|
+
...r,
|
|
53
|
+
cells: Array.from({ length: colCount }, (_cell, x) => {
|
|
54
|
+
const curr = r.cells?.[x] ?? cell();
|
|
55
|
+
return c === v && x === i ? { ...curr, content: cell(text).content } : curr;
|
|
56
|
+
}),
|
|
57
|
+
})));
|
|
58
|
+
} }) }, r.cells?.[i]?._key ?? i));
|
|
59
|
+
}), _jsx("td", { className: 'w-9 p-1', children: _jsx(Button, { "aria-label": `Delete row ${v + 1}`, size: 'icon', variant: 'ghost', onClick: () => update(rows.filter((_row, i) => i !== v)), children: _jsx(TrashIcon, { "aria-hidden": 'true' }) }) })] }, r._key))) }) }), colCount > 1 && (_jsx("div", { className: 'mt-2 flex gap-1', children: Array.from({ length: colCount }, (_cell, v) => (_jsxs(Button, { size: 'xs', variant: 'ghost', onClick: () => update(rows.map(r => ({ ...r, cells: (r.cells ?? []).filter((_cell, i) => i !== v) }))), children: ["Delete column ", v + 1] }, v))) })), children] }) }));
|
|
60
|
+
}
|
|
61
|
+
Object.assign(TableEditor, { displayName: 'DocsTableEditor' });
|
|
62
|
+
/** Adapts Portable Text's block-object contract to the table renderer.
|
|
63
|
+
*
|
|
64
|
+
* @param props - Portable Text renderer attributes, nested children, table node, path, and read-only mode.
|
|
65
|
+
* @returns The table renderer in editable or read-only mode.
|
|
66
|
+
*/
|
|
67
|
+
export function renderTable({ attributes: attrs, children, node, path, readOnly }) {
|
|
68
|
+
return readOnly ? _jsx(Table, { block: node }) : _jsx(TableEditor, { attributes: attrs, children: children, node: node, path: path });
|
|
69
|
+
}
|
|
70
|
+
Object.assign(renderTable, { displayName: 'DocsTableRenderer' });
|
|
71
|
+
//# sourceMappingURL=_Table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_Table.js","sourceRoot":"","sources":["../../../../src/terra/editor/docs/_Table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Docs tabs and accordion renderer with view and edit modes. */
|
|
2
|
+
import type { DocsBlock, PortableTextBlockRendererProps } from '../types.js';
|
|
3
|
+
/** Union of the docs tabs and accordion block shapes. */
|
|
4
|
+
type SectionsBlock = DocsBlock<'tabs'> | DocsBlock<'accordion'>;
|
|
5
|
+
/** Adapts Portable Text's block-object contract to the sections renderer. */
|
|
6
|
+
/**
|
|
7
|
+
* Renders the renderSections component.
|
|
8
|
+
*
|
|
9
|
+
* @param props - Portable Text renderer attributes, nested children, section node, path, and read-only mode.
|
|
10
|
+
* @returns The sections renderer in editable or read-only mode.
|
|
11
|
+
*/
|
|
12
|
+
export declare function renderSections({ attributes: attrs, children, node, path, readOnly }: PortableTextBlockRendererProps<SectionsBlock>): React.JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=_Tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_Tabs.d.ts","sourceRoot":"","sources":["../../../../src/terra/editor/docs/_Tabs.tsx"],"names":[],"mappings":"AACA,iEAAiE;AAWjE,OAAO,KAAK,EAAE,SAAS,EAAgC,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAG3G,yDAAyD;AACzD,KAAK,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAkJhE,6EAA6E;AAC7E;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,8BAA8B,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAEtJ"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
// @ts-nocheck -- source-preserving extraction; public host contracts are typed in src/host.ts.
|
|
3
|
+
/** Docs tabs and accordion renderer with view and edit modes. */
|
|
4
|
+
import { useEditor } from '@portabletext/editor';
|
|
5
|
+
import { AccordionGroup, AccordionItem, TabsGroup, TabsItem } from '../_blocks.js';
|
|
6
|
+
import { Add as AddIcon } from '@carbon/icons-react';
|
|
7
|
+
import { ErrorBoundary } from '../../runtime/ui.js';
|
|
8
|
+
import { Button } from '@terra-symposium/styling/ui/terra-original';
|
|
9
|
+
import { TerraContentEditor } from '../TerraContentEditor.js';
|
|
10
|
+
const key = (val, fallback) => (typeof val === 'object' && val !== null && typeof val._key === 'string' ? val._key : fallback);
|
|
11
|
+
/** Renders read-only Docs tabs.
|
|
12
|
+
*
|
|
13
|
+
* @param props - Authored tabs block containing labeled sections and their nested content.
|
|
14
|
+
* @returns The tabbed content panel.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Renders the TabsBlock component.
|
|
18
|
+
*
|
|
19
|
+
* @param props - Authored tab block with labeled nested sections to render.
|
|
20
|
+
* @returns The read-only tab group.
|
|
21
|
+
*/
|
|
22
|
+
function TabsBlock({ block }) {
|
|
23
|
+
return (_jsx(ErrorBoundary, { name: 'TabsBlock', children: _jsx(TabsGroup, { children: (block.items ?? []).map((i, v) => {
|
|
24
|
+
const entry = i;
|
|
25
|
+
return (_jsx(TabsItem, { title: typeof entry.title === 'string' ? entry.title : `Tab ${v + 1}`, children: _jsx(TerraContentEditor, { content: (Array.isArray(entry.content) ? entry.content : []), docsAttachments: [], memberProfile: 'docs', nested: true, readOnly: true }) }, key(i, `${v}`)));
|
|
26
|
+
}) }) }));
|
|
27
|
+
}
|
|
28
|
+
Object.assign(TabsBlock, { displayName: 'DocsTabsBlock' });
|
|
29
|
+
/** Renders read-only Docs accordion sections. */
|
|
30
|
+
/**
|
|
31
|
+
* Renders the AccordionBlock component.
|
|
32
|
+
*
|
|
33
|
+
* @param props - Authored accordion block with labeled expandable sections to render.
|
|
34
|
+
* @returns The read-only accordion group.
|
|
35
|
+
*/
|
|
36
|
+
function AccordionBlock({ block }) {
|
|
37
|
+
return (_jsx(ErrorBoundary, { name: 'AccordionBlock', children: _jsx(AccordionGroup, { children: (block.items ?? []).map((i, v) => {
|
|
38
|
+
const entry = i;
|
|
39
|
+
return (_jsx(AccordionItem, { title: typeof entry.title === 'string' ? entry.title : `Item ${v + 1}`, children: _jsx(TerraContentEditor, { content: (Array.isArray(entry.content) ? entry.content : []), docsAttachments: [], memberProfile: 'docs', nested: true, readOnly: true }) }, key(i, `${v}`)));
|
|
40
|
+
}) }) }));
|
|
41
|
+
}
|
|
42
|
+
Object.assign(AccordionBlock, { displayName: 'DocsAccordionBlock' });
|
|
43
|
+
/** Shares tab and accordion mutations while preserving their component-local renderers. */
|
|
44
|
+
/**
|
|
45
|
+
* Renders the SectionsEditor component.
|
|
46
|
+
*
|
|
47
|
+
* @param props - Portable Text editor attributes, nested children, section kind, block node, and path.
|
|
48
|
+
* @returns The editor controls for tabs or accordion sections.
|
|
49
|
+
*/
|
|
50
|
+
/**
|
|
51
|
+
* Renders the Sections component.
|
|
52
|
+
*
|
|
53
|
+
* @param props - Authored tabs or accordion block selected for read-only display.
|
|
54
|
+
* @returns The matching tabs or accordion group.
|
|
55
|
+
*/
|
|
56
|
+
function SectionsEditor({ attributes: attrs, children, kind, node, path }) {
|
|
57
|
+
const editor = useEditor();
|
|
58
|
+
const items = node.items ?? [];
|
|
59
|
+
const rename = (idx, title) => editor.send({ type: 'block.set', at: path, props: { items: items.map((i, c) => (c === idx ? { ...i, title } : i)) } });
|
|
60
|
+
const remove = (idx) => editor.send({ type: 'block.set', at: path, props: { items: items.filter((_item, c) => c !== idx) } });
|
|
61
|
+
const add = () => editor.send({
|
|
62
|
+
type: 'block.set',
|
|
63
|
+
at: path,
|
|
64
|
+
props: {
|
|
65
|
+
items: [
|
|
66
|
+
...items,
|
|
67
|
+
{
|
|
68
|
+
_key: crypto.randomUUID().replaceAll('-', ''),
|
|
69
|
+
_type: 'item',
|
|
70
|
+
content: [],
|
|
71
|
+
title: kind === 'tabs' ? `Tab ${items.length + 1}` : `Item ${items.length + 1}`,
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
const content = items.map((i, v) => {
|
|
77
|
+
const title = typeof i.title === 'string' ? i.title : kind === 'tabs' ? `Tab ${v + 1}` : `Item ${v + 1}`;
|
|
78
|
+
const nested = (_jsx(TerraContentEditor, { content: (i.content ?? []), docsAttachments: [], memberProfile: 'docs', nested: true, onChange: x => editor.send({ type: 'block.set', at: path, props: { items: items.map((i, c) => (c === v ? { ...i, content: x } : i)) } }) }));
|
|
79
|
+
return kind === 'tabs' ? (_jsx(TabsItem, { title: title, children: nested }, i._key)) : (_jsx(AccordionItem, { title: title, onDelete: () => remove(v), onRename: x => rename(v, x), children: nested }, i._key));
|
|
80
|
+
});
|
|
81
|
+
return (_jsx(ErrorBoundary, { name: 'SectionsEditor', children: _jsxs("div", { ...attrs, contentEditable: false, "data-terra-block": kind, children: [kind === 'tabs' ? (_jsx(TabsGroup, { onAdd: add, onDelete: remove, onRename: (v, t) => rename(Number(v), t), children: content })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: 'mb-2', children: _jsxs(Button, { size: 'sm', variant: 'outline', onClick: add, children: [_jsx(AddIcon, { "aria-hidden": 'true' }), " Add section"] }) }), _jsx(AccordionGroup, { children: content })] })), children] }) }));
|
|
82
|
+
}
|
|
83
|
+
Object.assign(SectionsEditor, { displayName: 'DocsSectionsEditor' });
|
|
84
|
+
/**
|
|
85
|
+
* Renders Docs tabs or accordion sections from their authored block.
|
|
86
|
+
*
|
|
87
|
+
* @param props - Authored tabs or accordion block with its labeled nested sections.
|
|
88
|
+
* @returns The matching tabbed or expandable section group.
|
|
89
|
+
*/
|
|
90
|
+
function Sections({ block }) {
|
|
91
|
+
return block._type === 'tabs' ? _jsx(TabsBlock, { block: block }) : _jsx(AccordionBlock, { block: block });
|
|
92
|
+
}
|
|
93
|
+
Object.assign(Sections, { displayName: 'DocsSections' });
|
|
94
|
+
/** Adapts Portable Text's block-object contract to the sections renderer. */
|
|
95
|
+
/**
|
|
96
|
+
* Renders the renderSections component.
|
|
97
|
+
*
|
|
98
|
+
* @param props - Portable Text renderer attributes, nested children, section node, path, and read-only mode.
|
|
99
|
+
* @returns The sections renderer in editable or read-only mode.
|
|
100
|
+
*/
|
|
101
|
+
export function renderSections({ attributes: attrs, children, node, path, readOnly }) {
|
|
102
|
+
return readOnly ? _jsx(Sections, { block: node }) : _jsx(SectionsEditor, { attributes: attrs, children: children, kind: node._type, node: node, path: path });
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=_Tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_Tabs.js","sourceRoot":"","sources":["../../../../src/terra/editor/docs/_Tabs.tsx"],"names":[],"mappings":";AAAA,+FAA+F;AAC/F,iEAAiE;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAS9D,MAAM,GAAG,GAAG,CAAC,GAAY,EAAE,QAAgB,EAAU,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,OAAQ,GAA0B,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEtM;;;;GAIG;AACH;;;;;GAKG;AACH,SAAS,SAAS,CAAC,EAAE,KAAK,EAAgC;IACzD,OAAO,CACN,KAAC,aAAa,IAAC,IAAI,EAAC,WAAW,YAC9B,KAAC,SAAS,cACR,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,KAAK,GAAG,CAA2C,CAAC;gBAC1D,OAAO,CACN,KAAC,QAAQ,IAAsB,KAAK,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,YACnG,KAAC,kBAAkB,IAAC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAgC,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAC,MAAM,EAAC,MAAM,QAAC,QAAQ,SAAG,IAD/J,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAElB,CACX,CAAC;YACH,CAAC,CAAC,GACS,GACG,CAChB,CAAC;AACH,CAAC;AACD,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;AAE3D,iDAAiD;AACjD;;;;;GAKG;AACH,SAAS,cAAc,CAAC,EAAE,KAAK,EAAqC;IACnE,OAAO,CACN,KAAC,aAAa,IAAC,IAAI,EAAC,gBAAgB,YACnC,KAAC,cAAc,cACb,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,KAAK,GAAG,CAA2C,CAAC;gBAC1D,OAAO,CACN,KAAC,aAAa,IAAsB,KAAK,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,YACzG,KAAC,kBAAkB,IAAC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAgC,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAC,MAAM,EAAC,MAAM,QAAC,QAAQ,SAAG,IAD1J,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAElB,CAChB,CAAC;YACH,CAAC,CAAC,GACc,GACF,CAChB,CAAC;AACH,CAAC;AACD,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAC;AACrE,2FAA2F;AAC3F;;;;;GAKG;AACH;;;;;GAKG;AACH,SAAS,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAgF;IACtJ,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAI,IAAsB,CAAC,KAAK,IAAI,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,KAAa,EAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5K,MAAM,MAAM,GAAG,CAAC,GAAW,EAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5I,MAAM,GAAG,GAAG,GAAS,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACN,KAAK,EAAE;gBACN,GAAG,KAAK;gBACR;oBACC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC7C,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;iBAC/E;aACD;SACD;KACD,CAAC,CAAC;IACJ,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzG,MAAM,MAAM,GAAG,CACd,KAAC,kBAAkB,IAClB,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAgC,EACzD,eAAe,EAAE,EAAE,EACnB,aAAa,EAAC,MAAM,EACpB,MAAM,QACN,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAC5J,CACF,CAAC;QACF,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACxB,KAAC,QAAQ,IAAc,KAAK,EAAE,KAAK,YACjC,MAAM,IADO,CAAC,CAAC,IAAI,CAEV,CACX,CAAC,CAAC,CAAC,CACH,KAAC,aAAa,IAAc,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,YAC9F,MAAM,IADY,CAAC,CAAC,IAAI,CAEV,CAChB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,CACN,KAAC,aAAa,IAAC,IAAI,EAAC,gBAAgB,YACnC,kBAAS,KAAK,EAAE,eAAe,EAAE,KAAK,sBAAoB,IAAI,aAC5D,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAClB,KAAC,SAAS,IAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAC/E,OAAO,GACG,CACZ,CAAC,CAAC,CAAC,CACH,8BACC,cAAK,SAAS,EAAC,MAAM,YACpB,MAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,aAC/C,KAAC,OAAO,mBAAa,MAAM,GAAG,oBACtB,GACJ,EACN,KAAC,cAAc,cAAE,OAAO,GAAkB,IACxC,CACH,EACA,QAAQ,IACJ,GACS,CAChB,CAAC;AACH,CAAC;AACD,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAErE;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,EAAE,KAAK,EAA4B;IACpD,OAAO,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;AAChG,CAAC;AACD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;AAEzD,6EAA6E;AAC7E;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAiD;IAClI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,GAAI,CAAC,CAAC,CAAC,KAAC,cAAc,IAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAI,CAAC;AACnJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* astro/src/components/editor/docs/_TsDocs.tsx
|
|
3
|
+
*/
|
|
4
|
+
import type { DocsBlock } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Renders the ts docs component.
|
|
7
|
+
*
|
|
8
|
+
* @param props - TypeScript documentation block data and rendering props.
|
|
9
|
+
*
|
|
10
|
+
* @return Rendered TypeScript documentation content.
|
|
11
|
+
*/
|
|
12
|
+
export declare function TsDocs({ block }: {
|
|
13
|
+
block: DocsBlock<'tsDocs'>;
|
|
14
|
+
}): React.JSX.Element | null;
|
|
15
|
+
//# sourceMappingURL=_TsDocs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_TsDocs.d.ts","sourceRoot":"","sources":["../../../../src/terra/editor/docs/_TsDocs.tsx"],"names":[],"mappings":"AACA;;GAEG;AAkBH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA0F7C;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAgF,SAAS,CAAC,QAAQ,CAAC,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAMxK"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// @ts-nocheck -- source-preserving extraction; public host contracts are typed in src/host.ts.
|
|
3
|
+
/**
|
|
4
|
+
* astro/src/components/editor/docs/_TsDocs.tsx
|
|
5
|
+
*/
|
|
6
|
+
/*//////////////////////////////////////////////////
|
|
7
|
+
IMPORTS
|
|
8
|
+
//////////////////////////////////////////////////*/
|
|
9
|
+
// API
|
|
10
|
+
import { actions } from '../../runtime/action-proxy.js';
|
|
11
|
+
import { cn } from '../../runtime/runtime.js';
|
|
12
|
+
import { useEffect, useState } from 'react';
|
|
13
|
+
// COMPONENTS
|
|
14
|
+
import { AlertError } from '@terra-symposium/styling/ui/terra-original';
|
|
15
|
+
import { ErrorBoundary } from '../../runtime/ui.js';
|
|
16
|
+
import { Empty } from '../../runtime/ui.js';
|
|
17
|
+
import { TerraContentEditor } from '../TerraContentEditor.js';
|
|
18
|
+
/*//////////////////////////////////////////////////
|
|
19
|
+
HELPERS
|
|
20
|
+
//////////////////////////////////////////////////*/
|
|
21
|
+
/** Loads and renders TypeScript documentation for a selected scope. */
|
|
22
|
+
/**
|
|
23
|
+
* Renders the TsDocsRenderer component.
|
|
24
|
+
*
|
|
25
|
+
* @param props - Optional API documentation scope and styling class used to load the reference panel.
|
|
26
|
+
*
|
|
27
|
+
* @return The API reference panel, or `null` when no scope is selected.
|
|
28
|
+
*/
|
|
29
|
+
function TsDocsRenderer({ scope, className }) {
|
|
30
|
+
const [items, setItems] = useState(null);
|
|
31
|
+
const [err, setErr] = useState(null);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (!scope)
|
|
34
|
+
return;
|
|
35
|
+
let a = true;
|
|
36
|
+
actions.read
|
|
37
|
+
.tsdocs({ scope })
|
|
38
|
+
.then(async ({ data: d, error: e }) => {
|
|
39
|
+
if (e || !d?.docs)
|
|
40
|
+
throw e || new Error('Failed to fetch tsdocs');
|
|
41
|
+
const docs = [];
|
|
42
|
+
for (const entry of d.docs) {
|
|
43
|
+
const { data: body, error: bodyErr } = await actions.read.source.body({ source: entry.body });
|
|
44
|
+
if (bodyErr || !body)
|
|
45
|
+
throw bodyErr || new Error(`Failed to parse ${entry.slug}`);
|
|
46
|
+
docs.push({ slug: entry.slug, title: entry.title, body });
|
|
47
|
+
}
|
|
48
|
+
if (a)
|
|
49
|
+
setItems(docs);
|
|
50
|
+
})
|
|
51
|
+
.catch((e) => {
|
|
52
|
+
if (a)
|
|
53
|
+
setErr(e instanceof Error ? e.message : 'Failed to fetch tsdocs');
|
|
54
|
+
});
|
|
55
|
+
return () => {
|
|
56
|
+
a = false;
|
|
57
|
+
};
|
|
58
|
+
}, [scope]);
|
|
59
|
+
if (!scope)
|
|
60
|
+
return null;
|
|
61
|
+
if (err)
|
|
62
|
+
return (_jsx(ErrorBoundary, { name: 'TsDocsRenderer', children: _jsx(AlertError, { title: 'TsDocs Error', description: err }) }));
|
|
63
|
+
if (!items)
|
|
64
|
+
return (_jsx(ErrorBoundary, { name: 'TsDocsRenderer', children: _jsx("div", { className: 'h-24 w-full animate-pulse rounded-sm bg-primary-3', "data-docs-block-skeleton": true }) }));
|
|
65
|
+
if (items.length === 0)
|
|
66
|
+
return (_jsx(ErrorBoundary, { name: 'TsDocsRenderer', children: _jsxs(Empty, { children: ["No tsdocs found for ", _jsx("code", { children: scope }), "."] }) }));
|
|
67
|
+
return (_jsx(ErrorBoundary, { name: 'TsDocsRenderer', children: _jsxs("div", { className: cn('tsdocs-wrapper max-w-none space-y-10', className), children: [items.length > 1 && (_jsx("nav", { "aria-label": 'TSDocs contents', children: _jsx("ul", { className: 'm-0 list-none p-0', children: items.map(d => (_jsx("li", { children: _jsx("a", { href: `#${d.slug.replaceAll('/', '-')}`, className: 'text-primary-9 hover:underline', children: d.title }) }, d.slug))) }) })), items.map(d => (_jsxs("section", { id: d.slug.replaceAll('/', '-'), children: [items.length > 1 && _jsx("h2", { children: d.title }), _jsx(TerraContentEditor, { content: d.body, docsAttachments: [], memberProfile: 'docs', nested: true, readOnly: true })] }, d.slug)))] }) }));
|
|
68
|
+
}
|
|
69
|
+
Object.assign(TsDocsRenderer, { displayName: 'TsDocsRenderer' });
|
|
70
|
+
/**
|
|
71
|
+
* Renders the ts docs component.
|
|
72
|
+
*
|
|
73
|
+
* @param props - TypeScript documentation block data and rendering props.
|
|
74
|
+
*
|
|
75
|
+
* @return Rendered TypeScript documentation content.
|
|
76
|
+
*/
|
|
77
|
+
export function TsDocs({ block }) {
|
|
78
|
+
return (_jsx(ErrorBoundary, { name: 'TsDocs', children: _jsx(TsDocsRenderer, { ...(block.scope === undefined ? {} : { scope: block.scope }) }) }));
|
|
79
|
+
}
|
|
80
|
+
Object.assign(TsDocs, { displayName: 'TsDocs' });
|
|
81
|
+
//# sourceMappingURL=_TsDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_TsDocs.js","sourceRoot":"","sources":["../../../../src/terra/editor/docs/_TsDocs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* astro/src/components/editor/docs/_math_inline.tsx
|
|
3
|
+
* Read-only Docs math inline renderer for the shared Terra content editor.
|
|
4
|
+
*/
|
|
5
|
+
import type { InlineObjectRenderProps } from '@portabletext/editor';
|
|
6
|
+
/**
|
|
7
|
+
* Renders a read-only Docs formula as an inline Portable Text object.
|
|
8
|
+
*
|
|
9
|
+
* @param props - Portable Text inline-object attributes, children, and node.
|
|
10
|
+
*
|
|
11
|
+
* @return Inline rendered formula.
|
|
12
|
+
*/
|
|
13
|
+
export default function MathInline({ attributes: attrs, children, node }: InlineObjectRenderProps): React.JSX.Element;
|
|
14
|
+
//# sourceMappingURL=_math_inline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_math_inline.d.ts","sourceRoot":"","sources":["../../../../src/terra/editor/docs/_math_inline.tsx"],"names":[],"mappings":"AACA;;;GAGG;AAUH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAMpE;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,uBAAuB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgBpH"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// @ts-nocheck -- source-preserving extraction; public host contracts are typed in src/host.ts.
|
|
3
|
+
/**
|
|
4
|
+
* astro/src/components/editor/docs/_math_inline.tsx
|
|
5
|
+
* Read-only Docs math inline renderer for the shared Terra content editor.
|
|
6
|
+
*/
|
|
7
|
+
/*//////////////////////////////////////////////////
|
|
8
|
+
IMPORTS
|
|
9
|
+
//////////////////////////////////////////////////*/
|
|
10
|
+
// API
|
|
11
|
+
import { renderMath } from './_Math.js';
|
|
12
|
+
/*//////////////////////////////////////////////////
|
|
13
|
+
COMPONENTS
|
|
14
|
+
//////////////////////////////////////////////////*/
|
|
15
|
+
/**
|
|
16
|
+
* Renders a read-only Docs formula as an inline Portable Text object.
|
|
17
|
+
*
|
|
18
|
+
* @param props - Portable Text inline-object attributes, children, and node.
|
|
19
|
+
*
|
|
20
|
+
* @return Inline rendered formula.
|
|
21
|
+
*/
|
|
22
|
+
export default function MathInline({ attributes: attrs, children, node }) {
|
|
23
|
+
return (_jsxs("span", { ...attrs, className: 'mx-1 inline align-baseline', contentEditable: false, "data-terra-inline": 'math', suppressContentEditableWarning: true, children: [renderMath({
|
|
24
|
+
code: node.code || '',
|
|
25
|
+
inline: true,
|
|
26
|
+
className: 'align-baseline',
|
|
27
|
+
}), children] }));
|
|
28
|
+
}
|
|
29
|
+
Object.assign(MathInline, { displayName: 'DocsMathInline' });
|
|
30
|
+
//# sourceMappingURL=_math_inline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_math_inline.js","sourceRoot":"","sources":["../../../../src/terra/editor/docs/_math_inline.tsx"],"names":[],"mappings":";AAAA,+FAA+F;AAC/F;;;GAGG;AAEH;;oDAEoD;AAEpD,MAAM;AACN,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKxC;;oDAEoD;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAA2B;IAChG,OAAO,CACN,mBAAU,KAAK,EAAE,SAAS,EAAC,4BAA4B,EAAC,eAAe,EAAE,KAAK,uBAAoB,MAAM,EAAC,8BAA8B,mBACrI,UAAU,CAAC;gBACX,IAAI,EAEF,IAGA,CAAC,IAAI,IAAI,EAAE;gBACb,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,gBAAgB;aAC3B,CAAC,EACD,QAAQ,IACH,CACP,CAAC;AACH,CAAC;AACD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* astro/src/components/editor/docs/heading.tsx
|
|
3
|
+
* Shared Docs heading identifiers and copyable read-only headings.
|
|
4
|
+
*/
|
|
5
|
+
import type { ReactNode } from 'react';
|
|
6
|
+
/**
|
|
7
|
+
* Normalizes text into the URL identifier used by Docs headings and their table of contents.
|
|
8
|
+
*
|
|
9
|
+
* @param text - The heading text to normalize.
|
|
10
|
+
* @returns The heading's URL fragment.
|
|
11
|
+
*/
|
|
12
|
+
export declare const toHeadingId: (text: string) => string;
|
|
13
|
+
/**
|
|
14
|
+
* Renders a Docs heading with a keyboard-accessible control for copying its link.
|
|
15
|
+
*
|
|
16
|
+
* @param props - The heading level and its content.
|
|
17
|
+
* @returns A heading with a copy-link button.
|
|
18
|
+
*/
|
|
19
|
+
export declare function DocsHeading({ children, level }: {
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
level: 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
22
|
+
}): React.JSX.Element;
|
|
23
|
+
//# sourceMappingURL=heading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../../../src/terra/editor/docs/heading.tsx"],"names":[],"mappings":"AACA;;;GAGG;AAUH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAAoI,CAAC;AAMhL;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAoCpI"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// @ts-nocheck -- source-preserving extraction; public host contracts are typed in src/host.ts.
|
|
3
|
+
/**
|
|
4
|
+
* astro/src/components/editor/docs/heading.tsx
|
|
5
|
+
* Shared Docs heading identifiers and copyable read-only headings.
|
|
6
|
+
*/
|
|
7
|
+
/*//////////////////////////////////////////////////
|
|
8
|
+
IMPORTS
|
|
9
|
+
//////////////////////////////////////////////////*/
|
|
10
|
+
import { Children, isValidElement, useEffect, useRef, useState } from 'react';
|
|
11
|
+
import { Link as LinkIcon } from '@carbon/icons-react';
|
|
12
|
+
import * as TerraQualityRegex from '../../regex.mjs';
|
|
13
|
+
/*//////////////////////////////////////////////////
|
|
14
|
+
CONFIG
|
|
15
|
+
//////////////////////////////////////////////////*/
|
|
16
|
+
/*//////////////////////////////////////////////////
|
|
17
|
+
HELPERS
|
|
18
|
+
//////////////////////////////////////////////////*/
|
|
19
|
+
/**
|
|
20
|
+
* Normalizes text into the URL identifier used by Docs headings and their table of contents.
|
|
21
|
+
*
|
|
22
|
+
* @param text - The heading text to normalize.
|
|
23
|
+
* @returns The heading's URL fragment.
|
|
24
|
+
*/
|
|
25
|
+
export const toHeadingId = (text) => text.toLowerCase().replace(TerraQualityRegex.REGEX_A_Z0_9_G_REGEX(), '-').replace(TerraQualityRegex.REGEX_G_REGEX_6(), '');
|
|
26
|
+
/*//////////////////////////////////////////////////
|
|
27
|
+
COMPONENTS
|
|
28
|
+
//////////////////////////////////////////////////*/
|
|
29
|
+
/**
|
|
30
|
+
* Renders a Docs heading with a keyboard-accessible control for copying its link.
|
|
31
|
+
*
|
|
32
|
+
* @param props - The heading level and its content.
|
|
33
|
+
* @returns A heading with a copy-link button.
|
|
34
|
+
*/
|
|
35
|
+
export function DocsHeading({ children, level }) {
|
|
36
|
+
const headingRef = useRef(null);
|
|
37
|
+
const [text, setText] = useState(() => {
|
|
38
|
+
const pending = Children.toArray(children).reverse();
|
|
39
|
+
let result = '';
|
|
40
|
+
while (pending.length > 0) {
|
|
41
|
+
const child = pending.pop();
|
|
42
|
+
if (typeof child === 'string' || typeof child === 'number')
|
|
43
|
+
result += String(child);
|
|
44
|
+
else if (isValidElement(child))
|
|
45
|
+
pending.push(...Children.toArray(child.props.children).reverse());
|
|
46
|
+
}
|
|
47
|
+
return result.trim();
|
|
48
|
+
});
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
const renderedText = headingRef.current?.textContent?.trim();
|
|
51
|
+
if (renderedText)
|
|
52
|
+
setText(renderedText);
|
|
53
|
+
}, [children]);
|
|
54
|
+
const id = toHeadingId(text);
|
|
55
|
+
const Heading = level;
|
|
56
|
+
return (_jsx(Heading, { id: id, ref: headingRef, children: _jsxs("button", { type: 'button', className: 'heading-anchor', "aria-label": `Copy link to ${text}`, title: `Copy link to ${text}`, onClick: () => {
|
|
57
|
+
void navigator.clipboard.writeText(`${window.location.origin}${window.location.pathname}#${id}`);
|
|
58
|
+
}, children: [children, _jsx("span", { className: 'heading-anchor-icon', "aria-hidden": 'true', children: _jsx(LinkIcon, {}) })] }) }));
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=heading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../src/terra/editor/docs/heading.tsx"],"names":[],"mappings":";AAAA,+FAA+F;AAC/F;;;GAGG;AAEH;;oDAEoD;AAEpD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,iBAAiB,MAAM,iBAAiB,CAAC;AAIrD;;oDAEoD;AAEpD;;oDAEoD;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;AAEhL;;oDAEoD;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAoE;IAChH,MAAM,UAAU,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QACrD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC/E,IAAI,cAAc,CAA2B,KAAK,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7H,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC7D,IAAI,YAAY;YAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACf,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC;IACtB,OAAO,CACN,KAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,YAC/B,kBACC,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gBAAgB,gBACd,gBAAgB,IAAI,EAAE,EAClC,KAAK,EAAE,gBAAgB,IAAI,EAAE,EAC7B,OAAO,EAAE,GAAG,EAAE;gBACb,KAAK,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;YAClG,CAAC,aAEA,QAAQ,EACT,eAAM,SAAS,EAAC,qBAAqB,iBAAa,MAAM,YACvD,KAAC,QAAQ,KAAG,GACN,IACC,GACA,CACV,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Internal Docs renderer contracts. */
|
|
2
|
+
export { default as _DocsMathInline } from './_math_inline.js';
|
|
3
|
+
export { renderCallout as _Callout } from './_Callout.js';
|
|
4
|
+
export { renderCode as _Code } from './_DocsCode.js';
|
|
5
|
+
export { Embed as _Embed } from './_Embed.js';
|
|
6
|
+
export { renderImage as _Image } from './_DocsImage.js';
|
|
7
|
+
export { renderMathBlock as _MathBlock } from './_Math.js';
|
|
8
|
+
export { NodesBlock as _NodesBlock } from './_Nodes.js';
|
|
9
|
+
export { Raw as _Raw } from './_Raw.js';
|
|
10
|
+
export { renderTable as _Table } from './_Table.js';
|
|
11
|
+
export { renderSections as _Sections } from './_Tabs.js';
|
|
12
|
+
export { TsDocs as _TsDocs } from './_TsDocs.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/terra/editor/docs/index.ts"],"names":[],"mappings":"AACA,wCAAwC;AAExC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,eAAe,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// @ts-nocheck -- source-preserving extraction; public host contracts are typed in src/host.ts.
|
|
2
|
+
/** Internal Docs renderer contracts. */
|
|
3
|
+
export { default as _DocsMathInline } from './_math_inline.js';
|
|
4
|
+
export { renderCallout as _Callout } from './_Callout.js';
|
|
5
|
+
export { renderCode as _Code } from './_DocsCode.js';
|
|
6
|
+
export { Embed as _Embed } from './_Embed.js';
|
|
7
|
+
export { renderImage as _Image } from './_DocsImage.js';
|
|
8
|
+
export { renderMathBlock as _MathBlock } from './_Math.js';
|
|
9
|
+
export { NodesBlock as _NodesBlock } from './_Nodes.js';
|
|
10
|
+
export { Raw as _Raw } from './_Raw.js';
|
|
11
|
+
export { renderTable as _Table } from './_Table.js';
|
|
12
|
+
export { renderSections as _Sections } from './_Tabs.js';
|
|
13
|
+
export { TsDocs as _TsDocs } from './_TsDocs.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/terra/editor/docs/index.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,wCAAwC;AAExC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,eAAe,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* astro/src/components/editor/types.ts
|
|
3
|
+
* Shared Terra content and Portable Text renderer contracts.
|
|
4
|
+
*/
|
|
5
|
+
import { DOCS_BLOCK_SCHEMAS, PROBLEM_BLOCK_TYPES } from '../runtime/types.js';
|
|
6
|
+
import type { ArticleContent, DocsContent, ProblemContent } from '../runtime/types.js';
|
|
7
|
+
import type { BlockObjectRenderProps } from '@portabletext/editor';
|
|
8
|
+
/** Sanity Portable Text block names supported by the docs editor. */
|
|
9
|
+
export type DocsBlockType = Extract<keyof typeof DOCS_BLOCK_SCHEMAS, DocsContent[number]['_type']>;
|
|
10
|
+
/** Extracts one docs block shape by its Sanity `_type` discriminator. */
|
|
11
|
+
export type DocsMember<T extends DocsContent[number]['_type']> = Extract<DocsContent[number], {
|
|
12
|
+
_type: T;
|
|
13
|
+
}>;
|
|
14
|
+
/** Resolves a docs block shape for a supported docs block name. */
|
|
15
|
+
export type DocsBlock<T extends DocsBlockType> = DocsMember<T>;
|
|
16
|
+
/** Inline Sanity content types supported by article editors. */
|
|
17
|
+
export type ArticleInlineType = 'image' | 'video' | 'table' | 'questions' | 'dialogue' | 'definition';
|
|
18
|
+
/** Article inline block shape selected by its Sanity type discriminator. */
|
|
19
|
+
export type ArticleInline<T extends ArticleInlineType> = Extract<NonNullable<Extract<ArticleContent[number], {
|
|
20
|
+
children?: unknown;
|
|
21
|
+
}>['children']>[number], {
|
|
22
|
+
_type: T;
|
|
23
|
+
}>;
|
|
24
|
+
/** Sanity Portable Text block names supported by the problem editor. */
|
|
25
|
+
export type ProblemBlockType = (typeof PROBLEM_BLOCK_TYPES)[number];
|
|
26
|
+
/** Resolves a problem block shape for a supported problem block name. */
|
|
27
|
+
export type ProblemBlock<T extends ProblemBlockType> = Extract<ProblemContent[number], {
|
|
28
|
+
_type: T;
|
|
29
|
+
}>;
|
|
30
|
+
/** Extracts one problem inline shape by its Sanity `_type` discriminator. */
|
|
31
|
+
export type ProblemInline<T extends 'definition'> = Extract<ProblemContent[number], {
|
|
32
|
+
_type: T;
|
|
33
|
+
}>;
|
|
34
|
+
/** Props supplied to a read-only renderer for a typed Portable Text block. */
|
|
35
|
+
export type PortableTextBlockRendererProps<TBlock> = Pick<BlockObjectRenderProps, 'attributes' | 'children' | 'path' | 'readOnly'> & {
|
|
36
|
+
node: TBlock;
|
|
37
|
+
};
|
|
38
|
+
/** Props supplied to an editable renderer for a typed Portable Text block. */
|
|
39
|
+
export type PortableTextBlockEditorProps<TBlock> = Omit<PortableTextBlockRendererProps<TBlock>, 'readOnly'>;
|
|
40
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/terra/editor/types.ts"],"names":[],"mappings":"AACA;;;GAGG;AAOH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAMnE,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,OAAO,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACnG,yEAAyE;AACzE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAC5G,mEAAmE;AACnE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/D,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;AAEtG,4EAA4E;AAC5E,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,iBAAiB,IAAI,OAAO,CAC/D,WAAW,CACV,OAAO,CACN,cAAc,CAAC,MAAM,CAAC,EACtB;IACC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CACD,CAAC,UAAU,CAAC,CACb,CAAC,MAAM,CAAC,EACT;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CACZ,CAAC;AACF,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AACpE,yEAAyE;AACzE,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,gBAAgB,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AACrG,6EAA6E;AAC7E,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAClG,8EAA8E;AAC9E,MAAM,MAAM,8BAA8B,CAAC,MAAM,IAAI,IAAI,CAAC,sBAAsB,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACtJ,8EAA8E;AAC9E,MAAM,MAAM,4BAA4B,CAAC,MAAM,IAAI,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// @ts-nocheck -- source-preserving extraction; public host contracts are typed in src/host.ts.
|
|
2
|
+
/**
|
|
3
|
+
* astro/src/components/editor/types.ts
|
|
4
|
+
* Shared Terra content and Portable Text renderer contracts.
|
|
5
|
+
*/
|
|
6
|
+
/*//////////////////////////////////////////////////
|
|
7
|
+
IMPORTS
|
|
8
|
+
//////////////////////////////////////////////////*/
|
|
9
|
+
// DATA
|
|
10
|
+
import { DOCS_BLOCK_SCHEMAS, PROBLEM_BLOCK_TYPES } from '../runtime/types.js';
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/terra/editor/types.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F;;;GAGG;AAEH;;oDAEoD;AAEpD,OAAO;AACP,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|