@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.
Files changed (241) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +72 -2
  3. package/lib-dist/Docs.d.ts +22 -0
  4. package/lib-dist/Docs.d.ts.map +1 -0
  5. package/lib-dist/Docs.js +60 -0
  6. package/lib-dist/Docs.js.map +1 -0
  7. package/lib-dist/LocalDocsWorkspace.d.ts +30 -0
  8. package/lib-dist/LocalDocsWorkspace.d.ts.map +1 -0
  9. package/lib-dist/LocalDocsWorkspace.js +148 -0
  10. package/lib-dist/LocalDocsWorkspace.js.map +1 -0
  11. package/lib-dist/SiteLayout.d.ts +30 -0
  12. package/lib-dist/SiteLayout.d.ts.map +1 -0
  13. package/lib-dist/SiteLayout.js +34 -0
  14. package/lib-dist/SiteLayout.js.map +1 -0
  15. package/lib-dist/StaticWorkspace.d.ts +21 -0
  16. package/lib-dist/StaticWorkspace.d.ts.map +1 -0
  17. package/lib-dist/StaticWorkspace.js +179 -0
  18. package/lib-dist/StaticWorkspace.js.map +1 -0
  19. package/lib-dist/_Toolbar.d.ts +7 -0
  20. package/lib-dist/_Toolbar.d.ts.map +1 -0
  21. package/lib-dist/_Toolbar.js +85 -0
  22. package/lib-dist/_Toolbar.js.map +1 -0
  23. package/lib-dist/blocks.d.ts +23 -0
  24. package/lib-dist/blocks.d.ts.map +1 -0
  25. package/lib-dist/blocks.js +321 -0
  26. package/lib-dist/blocks.js.map +1 -0
  27. package/lib-dist/docs-catalog.d.ts +5 -0
  28. package/lib-dist/docs-catalog.d.ts.map +1 -0
  29. package/lib-dist/docs-catalog.js +38 -0
  30. package/lib-dist/docs-catalog.js.map +1 -0
  31. package/lib-dist/docs-style.css +31 -0
  32. package/lib-dist/fonts/Avara-Bold.woff2 +0 -0
  33. package/lib-dist/fonts/Avara-BoldItalic.woff2 +0 -0
  34. package/lib-dist/fonts/OFL-1.1.txt +93 -0
  35. package/lib-dist/fonts/README.md +5 -0
  36. package/lib-dist/host-runtime.d.ts +5 -0
  37. package/lib-dist/host-runtime.d.ts.map +1 -0
  38. package/lib-dist/host-runtime.js +21 -0
  39. package/lib-dist/host-runtime.js.map +1 -0
  40. package/lib-dist/host.d.ts +170 -0
  41. package/lib-dist/host.d.ts.map +1 -0
  42. package/lib-dist/host.js +2 -0
  43. package/lib-dist/host.js.map +1 -0
  44. package/lib-dist/index.d.ts +35 -0
  45. package/lib-dist/index.d.ts.map +1 -0
  46. package/lib-dist/index.js +28 -0
  47. package/lib-dist/index.js.map +1 -0
  48. package/lib-dist/markdown-model.d.ts +7 -0
  49. package/lib-dist/markdown-model.d.ts.map +1 -0
  50. package/lib-dist/markdown-model.js +181 -0
  51. package/lib-dist/markdown-model.js.map +1 -0
  52. package/lib-dist/markdown.d.ts +3 -0
  53. package/lib-dist/markdown.d.ts.map +1 -0
  54. package/lib-dist/markdown.js +83 -0
  55. package/lib-dist/markdown.js.map +1 -0
  56. package/lib-dist/navigation.d.ts +17 -0
  57. package/lib-dist/navigation.d.ts.map +1 -0
  58. package/lib-dist/navigation.js +9 -0
  59. package/lib-dist/navigation.js.map +1 -0
  60. package/lib-dist/schema.d.ts +135 -0
  61. package/lib-dist/schema.d.ts.map +1 -0
  62. package/lib-dist/schema.js +55 -0
  63. package/lib-dist/schema.js.map +1 -0
  64. package/lib-dist/style.css +1 -0
  65. package/lib-dist/terra/Workspace.d.ts +5 -0
  66. package/lib-dist/terra/Workspace.d.ts.map +1 -0
  67. package/lib-dist/terra/Workspace.js +9 -0
  68. package/lib-dist/terra/Workspace.js.map +1 -0
  69. package/lib-dist/terra/editor/TerraContentEditor.d.ts +10 -0
  70. package/lib-dist/terra/editor/TerraContentEditor.d.ts.map +1 -0
  71. package/lib-dist/terra/editor/TerraContentEditor.js +47 -0
  72. package/lib-dist/terra/editor/TerraContentEditor.js.map +1 -0
  73. package/lib-dist/terra/editor/_blocks.d.ts +71 -0
  74. package/lib-dist/terra/editor/_blocks.d.ts.map +1 -0
  75. package/lib-dist/terra/editor/_blocks.js +110 -0
  76. package/lib-dist/terra/editor/_blocks.js.map +1 -0
  77. package/lib-dist/terra/editor/docs/_Callout.d.ts +14 -0
  78. package/lib-dist/terra/editor/docs/_Callout.d.ts.map +1 -0
  79. package/lib-dist/terra/editor/docs/_Callout.js +41 -0
  80. package/lib-dist/terra/editor/docs/_Callout.js.map +1 -0
  81. package/lib-dist/terra/editor/docs/_CodeBlock.d.ts +39 -0
  82. package/lib-dist/terra/editor/docs/_CodeBlock.d.ts.map +1 -0
  83. package/lib-dist/terra/editor/docs/_CodeBlock.js +494 -0
  84. package/lib-dist/terra/editor/docs/_CodeBlock.js.map +1 -0
  85. package/lib-dist/terra/editor/docs/_DocsCode.d.ts +14 -0
  86. package/lib-dist/terra/editor/docs/_DocsCode.d.ts.map +1 -0
  87. package/lib-dist/terra/editor/docs/_DocsCode.js +95 -0
  88. package/lib-dist/terra/editor/docs/_DocsCode.js.map +1 -0
  89. package/lib-dist/terra/editor/docs/_DocsImage.d.ts +18 -0
  90. package/lib-dist/terra/editor/docs/_DocsImage.d.ts.map +1 -0
  91. package/lib-dist/terra/editor/docs/_DocsImage.js +62 -0
  92. package/lib-dist/terra/editor/docs/_DocsImage.js.map +1 -0
  93. package/lib-dist/terra/editor/docs/_Embed.d.ts +15 -0
  94. package/lib-dist/terra/editor/docs/_Embed.d.ts.map +1 -0
  95. package/lib-dist/terra/editor/docs/_Embed.js +27 -0
  96. package/lib-dist/terra/editor/docs/_Embed.js.map +1 -0
  97. package/lib-dist/terra/editor/docs/_Math.d.ts +31 -0
  98. package/lib-dist/terra/editor/docs/_Math.d.ts.map +1 -0
  99. package/lib-dist/terra/editor/docs/_Math.js +126 -0
  100. package/lib-dist/terra/editor/docs/_Math.js.map +1 -0
  101. package/lib-dist/terra/editor/docs/_Nodes.d.ts +15 -0
  102. package/lib-dist/terra/editor/docs/_Nodes.d.ts.map +1 -0
  103. package/lib-dist/terra/editor/docs/_Nodes.js +52 -0
  104. package/lib-dist/terra/editor/docs/_Nodes.js.map +1 -0
  105. package/lib-dist/terra/editor/docs/_Raw.d.ts +15 -0
  106. package/lib-dist/terra/editor/docs/_Raw.d.ts.map +1 -0
  107. package/lib-dist/terra/editor/docs/_Raw.js +26 -0
  108. package/lib-dist/terra/editor/docs/_Raw.js.map +1 -0
  109. package/lib-dist/terra/editor/docs/_Table.d.ts +12 -0
  110. package/lib-dist/terra/editor/docs/_Table.d.ts.map +1 -0
  111. package/lib-dist/terra/editor/docs/_Table.js +71 -0
  112. package/lib-dist/terra/editor/docs/_Table.js.map +1 -0
  113. package/lib-dist/terra/editor/docs/_Tabs.d.ts +14 -0
  114. package/lib-dist/terra/editor/docs/_Tabs.d.ts.map +1 -0
  115. package/lib-dist/terra/editor/docs/_Tabs.js +104 -0
  116. package/lib-dist/terra/editor/docs/_Tabs.js.map +1 -0
  117. package/lib-dist/terra/editor/docs/_TsDocs.d.ts +15 -0
  118. package/lib-dist/terra/editor/docs/_TsDocs.d.ts.map +1 -0
  119. package/lib-dist/terra/editor/docs/_TsDocs.js +81 -0
  120. package/lib-dist/terra/editor/docs/_TsDocs.js.map +1 -0
  121. package/lib-dist/terra/editor/docs/_math_inline.d.ts +14 -0
  122. package/lib-dist/terra/editor/docs/_math_inline.d.ts.map +1 -0
  123. package/lib-dist/terra/editor/docs/_math_inline.js +30 -0
  124. package/lib-dist/terra/editor/docs/_math_inline.js.map +1 -0
  125. package/lib-dist/terra/editor/docs/heading.d.ts +23 -0
  126. package/lib-dist/terra/editor/docs/heading.d.ts.map +1 -0
  127. package/lib-dist/terra/editor/docs/heading.js +60 -0
  128. package/lib-dist/terra/editor/docs/heading.js.map +1 -0
  129. package/lib-dist/terra/editor/docs/index.d.ts +13 -0
  130. package/lib-dist/terra/editor/docs/index.d.ts.map +1 -0
  131. package/lib-dist/terra/editor/docs/index.js +14 -0
  132. package/lib-dist/terra/editor/docs/index.js.map +1 -0
  133. package/lib-dist/terra/editor/types.d.ts +40 -0
  134. package/lib-dist/terra/editor/types.d.ts.map +1 -0
  135. package/lib-dist/terra/editor/types.js +11 -0
  136. package/lib-dist/terra/editor/types.js.map +1 -0
  137. package/lib-dist/terra/flow/Nodes.d.ts +78 -0
  138. package/lib-dist/terra/flow/Nodes.d.ts.map +1 -0
  139. package/lib-dist/terra/flow/Nodes.js +912 -0
  140. package/lib-dist/terra/flow/Nodes.js.map +1 -0
  141. package/lib-dist/terra/flow/_chrome.d.ts +267 -0
  142. package/lib-dist/terra/flow/_chrome.d.ts.map +1 -0
  143. package/lib-dist/terra/flow/_chrome.js +798 -0
  144. package/lib-dist/terra/flow/_chrome.js.map +1 -0
  145. package/lib-dist/terra/flow/_layout.d.ts +30 -0
  146. package/lib-dist/terra/flow/_layout.d.ts.map +1 -0
  147. package/lib-dist/terra/flow/_layout.js +53 -0
  148. package/lib-dist/terra/flow/_layout.js.map +1 -0
  149. package/lib-dist/terra/flow/menuContext.d.ts +13 -0
  150. package/lib-dist/terra/flow/menuContext.d.ts.map +1 -0
  151. package/lib-dist/terra/flow/menuContext.js +10 -0
  152. package/lib-dist/terra/flow/menuContext.js.map +1 -0
  153. package/lib-dist/terra/flow/powerSource.d.ts +16 -0
  154. package/lib-dist/terra/flow/powerSource.d.ts.map +1 -0
  155. package/lib-dist/terra/flow/powerSource.js +59 -0
  156. package/lib-dist/terra/flow/powerSource.js.map +1 -0
  157. package/lib-dist/terra/pages/docs/_attachments.d.ts +20 -0
  158. package/lib-dist/terra/pages/docs/_attachments.d.ts.map +1 -0
  159. package/lib-dist/terra/pages/docs/_attachments.js +904 -0
  160. package/lib-dist/terra/pages/docs/_attachments.js.map +1 -0
  161. package/lib-dist/terra/pages/docs/_blocks.d.ts +48 -0
  162. package/lib-dist/terra/pages/docs/_blocks.d.ts.map +1 -0
  163. package/lib-dist/terra/pages/docs/_blocks.js +192 -0
  164. package/lib-dist/terra/pages/docs/_blocks.js.map +1 -0
  165. package/lib-dist/terra/pages/docs/_custom.d.ts +5 -0
  166. package/lib-dist/terra/pages/docs/_custom.d.ts.map +1 -0
  167. package/lib-dist/terra/pages/docs/_custom.js +6 -0
  168. package/lib-dist/terra/pages/docs/_custom.js.map +1 -0
  169. package/lib-dist/terra/pages/docs/_editable.d.ts +61 -0
  170. package/lib-dist/terra/pages/docs/_editable.d.ts.map +1 -0
  171. package/lib-dist/terra/pages/docs/_editable.js +404 -0
  172. package/lib-dist/terra/pages/docs/_editable.js.map +1 -0
  173. package/lib-dist/terra/pages/docs/_export-dialog.d.ts +19 -0
  174. package/lib-dist/terra/pages/docs/_export-dialog.d.ts.map +1 -0
  175. package/lib-dist/terra/pages/docs/_export-dialog.js +78 -0
  176. package/lib-dist/terra/pages/docs/_export-dialog.js.map +1 -0
  177. package/lib-dist/terra/pages/docs/_helpers.d.ts +395 -0
  178. package/lib-dist/terra/pages/docs/_helpers.d.ts.map +1 -0
  179. package/lib-dist/terra/pages/docs/_helpers.js +911 -0
  180. package/lib-dist/terra/pages/docs/_helpers.js.map +1 -0
  181. package/lib-dist/terra/pages/docs/_icons.d.ts +20 -0
  182. package/lib-dist/terra/pages/docs/_icons.d.ts.map +1 -0
  183. package/lib-dist/terra/pages/docs/_icons.js +29 -0
  184. package/lib-dist/terra/pages/docs/_icons.js.map +1 -0
  185. package/lib-dist/terra/pages/docs/_main.d.ts +51 -0
  186. package/lib-dist/terra/pages/docs/_main.d.ts.map +1 -0
  187. package/lib-dist/terra/pages/docs/_main.js +1959 -0
  188. package/lib-dist/terra/pages/docs/_main.js.map +1 -0
  189. package/lib-dist/terra/pages/docs/_sidebar.d.ts +42 -0
  190. package/lib-dist/terra/pages/docs/_sidebar.d.ts.map +1 -0
  191. package/lib-dist/terra/pages/docs/_sidebar.js +2450 -0
  192. package/lib-dist/terra/pages/docs/_sidebar.js.map +1 -0
  193. package/lib-dist/terra/pages/docs/_toolbar.d.ts +23 -0
  194. package/lib-dist/terra/pages/docs/_toolbar.d.ts.map +1 -0
  195. package/lib-dist/terra/pages/docs/_toolbar.js +1539 -0
  196. package/lib-dist/terra/pages/docs/_toolbar.js.map +1 -0
  197. package/lib-dist/terra/pages/docs/_tree.d.ts +178 -0
  198. package/lib-dist/terra/pages/docs/_tree.d.ts.map +1 -0
  199. package/lib-dist/terra/pages/docs/_tree.js +1168 -0
  200. package/lib-dist/terra/pages/docs/_tree.js.map +1 -0
  201. package/lib-dist/terra/regex.mjs +398 -0
  202. package/lib-dist/terra/runtime/action-proxy.d.ts +5 -0
  203. package/lib-dist/terra/runtime/action-proxy.d.ts.map +1 -0
  204. package/lib-dist/terra/runtime/action-proxy.js +19 -0
  205. package/lib-dist/terra/runtime/action-proxy.js.map +1 -0
  206. package/lib-dist/terra/runtime/content.d.ts +150 -0
  207. package/lib-dist/terra/runtime/content.d.ts.map +1 -0
  208. package/lib-dist/terra/runtime/content.js +1171 -0
  209. package/lib-dist/terra/runtime/content.js.map +1 -0
  210. package/lib-dist/terra/runtime/leaf.d.ts +5 -0
  211. package/lib-dist/terra/runtime/leaf.d.ts.map +1 -0
  212. package/lib-dist/terra/runtime/leaf.js +13 -0
  213. package/lib-dist/terra/runtime/leaf.js.map +1 -0
  214. package/lib-dist/terra/runtime/nodes.d.ts +112 -0
  215. package/lib-dist/terra/runtime/nodes.d.ts.map +1 -0
  216. package/lib-dist/terra/runtime/nodes.js +534 -0
  217. package/lib-dist/terra/runtime/nodes.js.map +1 -0
  218. package/lib-dist/terra/runtime/runtime.d.ts +25 -0
  219. package/lib-dist/terra/runtime/runtime.d.ts.map +1 -0
  220. package/lib-dist/terra/runtime/runtime.js +50 -0
  221. package/lib-dist/terra/runtime/runtime.js.map +1 -0
  222. package/lib-dist/terra/runtime/shared.d.ts +35 -0
  223. package/lib-dist/terra/runtime/shared.d.ts.map +1 -0
  224. package/lib-dist/terra/runtime/shared.js +79 -0
  225. package/lib-dist/terra/runtime/shared.js.map +1 -0
  226. package/lib-dist/terra/runtime/types.d.ts +266 -0
  227. package/lib-dist/terra/runtime/types.d.ts.map +1 -0
  228. package/lib-dist/terra/runtime/types.js +18 -0
  229. package/lib-dist/terra/runtime/types.js.map +1 -0
  230. package/lib-dist/terra/runtime/ui.d.ts +31 -0
  231. package/lib-dist/terra/runtime/ui.d.ts.map +1 -0
  232. package/lib-dist/terra/runtime/ui.js +16 -0
  233. package/lib-dist/terra/runtime/ui.js.map +1 -0
  234. package/lib-dist/workspace.d.ts +78 -0
  235. package/lib-dist/workspace.d.ts.map +1 -0
  236. package/lib-dist/workspace.js +151 -0
  237. package/lib-dist/workspace.js.map +1 -0
  238. package/package.json +90 -3
  239. package/src/SiteLayout.astro +38 -0
  240. package/src/navigation.tsx +47 -0
  241. package/src/style.css +733 -0
@@ -0,0 +1,494 @@
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/_CodeBlock.tsx
5
+ * Shared Docs CodeMirror renderer.
6
+ */
7
+ /*//////////////////////////////////////////////////
8
+ IMPORTS
9
+ //////////////////////////////////////////////////*/
10
+ // API
11
+ import { $hydrating, $transition, htmlToMd } from '../../pages/docs/_helpers.js';
12
+ import { cn, errorLog } from '../../runtime/runtime.js';
13
+ import { copyLineDown, copyLineUp, cursorLineBoundaryBackward, cursorLineBoundaryForward, history, historyKeymap, indentWithTab, moveLineDown, moveLineUp, selectLineBoundaryBackward, selectLineBoundaryForward, standardKeymap, } from '@codemirror/commands';
14
+ import { drawSelection, keymap, lineNumbers, placeholder as cmPlaceholder } from '@codemirror/view';
15
+ import { githubLight } from '@uiw/codemirror-theme-github';
16
+ import { indentUnit } from '@codemirror/language';
17
+ import { isDarkMode } from '../../runtime/runtime.js';
18
+ import { isEndpointVal } from '../../runtime/shared.js';
19
+ import { languages } from '@codemirror/language-data';
20
+ import { markdown } from '@codemirror/lang-markdown';
21
+ import { mdTableToHtml, stringifyCodeValue } from '../../runtime/content.js';
22
+ import { oneDark } from '@codemirror/theme-one-dark';
23
+ import { useEffect, useLayoutEffect, useRef, useState } from 'react';
24
+ // COMPONENTS
25
+ import * as TerraQualityRegex from '../../regex.mjs';
26
+ import { AlertError } from '@terra-symposium/styling/ui/terra-original';
27
+ import { Button } from '@terra-symposium/styling/ui/terra-original';
28
+ import { Checkmark as CheckIcon, Copy as CopyIcon } from '@carbon/icons-react';
29
+ import { Compartment, EditorSelection, EditorState } from '@codemirror/state';
30
+ import { EditorView } from '@codemirror/view';
31
+ import { ErrorBoundary } from '../../runtime/ui.js';
32
+ import { Select, SelectContent, SelectItem, SelectTrigger } from '@terra-symposium/styling/ui/terra-original';
33
+ /*//////////////////////////////////////////////////
34
+ CONFIG
35
+ //////////////////////////////////////////////////*/
36
+ /**
37
+ * Supported programming languages for code blocks.
38
+ *
39
+ * @remarks Used to initialize the CodeMirror environment correctly.
40
+ */
41
+ const LANGS = ['text', 'astro', 'bash', 'css', 'html', 'javascript', 'json', 'jsx', 'math', 'mdx', 'shell', 'typescript', 'tsx', 'yaml'];
42
+ const light = [githubLight];
43
+ const dark = [oneDark];
44
+ const codeSrcCache = new Map();
45
+ /**
46
+ * Triggers a layout re-measure to fully expand codemirror instances.
47
+ *
48
+ * @param v - The target CodeMirror view reference.
49
+ *
50
+ * @returns Void
51
+ *
52
+ * @remarks Resolves constraints within un-mounted or obscured states.
53
+ */
54
+ const expand = (v) => {
55
+ if (!v)
56
+ return;
57
+ // Keep the code block editor's measured viewport aligned with its rendered content.
58
+ if (v.viewState)
59
+ v.viewState.printing = true;
60
+ v.requestMeasure({
61
+ read: view => Math.ceil(view.contentHeight),
62
+ write: (height, view) => {
63
+ view.dom.style.height = `${height}px`;
64
+ view.scrollDOM.style.height = `${height}px`;
65
+ },
66
+ });
67
+ };
68
+ /*//////////////////////////////////////////////////
69
+ HELPERS
70
+ //////////////////////////////////////////////////*/
71
+ /**
72
+ * Renders the loading placeholder for deferred Docs content.
73
+ *
74
+ * @param props - Optional source identifier attached to the placeholder so its deferred block can be connected to the editor view.
75
+ *
76
+ * @return The loading placeholder.
77
+ */
78
+ function BlockSkeleton({ source: src }) {
79
+ return _jsx("div", { className: 'h-24 w-full animate-pulse rounded-sm bg-primary-3', "data-docs-block-skeleton": true, "data-docs-code-source": src });
80
+ }
81
+ Object.assign(BlockSkeleton, { displayName: 'DocsCodeBlockSkeleton' });
82
+ /**
83
+ * Resolves the primary language format identifier from a passed string.
84
+ *
85
+ * @param v - The unformatted language identifier.
86
+ *
87
+ * @return The resolved language name string.
88
+ *
89
+ * @remarks Used generally for syntax highlighting assignments.
90
+ */
91
+ function langOf(v) {
92
+ return v?.trim().toLowerCase() || 'text';
93
+ }
94
+ /**
95
+ * High-performance rich-text rendering shell managing syntax highlighted text presentations parsing raw code blocks.
96
+ *
97
+ * @param props - Unified mapping resolving presentation versus active edit inputs.
98
+ *
99
+ * @return Instanced CodeMirror window evaluating code chunks mapped dynamically against site theme constraints.
100
+ *
101
+ * @remarks Facilitates explicit fallbacks during hydration avoiding layout shifts natively.
102
+ */
103
+ export function CodeBlock(props) {
104
+ // STATES
105
+ const src = props.source?.trim() || (typeof props.code === 'string' && isEndpointVal(props.code) ? props.code.trim() : '');
106
+ const locked = props.tone === 'view' || props.readOnly === true;
107
+ const docsSrc = props.docsSource === true;
108
+ // Keep intentional leading/trailing newlines. Stripping them here causes a
109
+ // controlled Docs editor to undo a CodeMirror Enter transaction on rerender.
110
+ const code = stringifyCodeValue(props.code);
111
+ const viewCode = docsSrc
112
+ ? code.replace(/<Code\b([\s\S]*?)>(?:\s*\{`((?:\\.|[^`])*)`\}\s*|\s*([\s\S]*?)\s*)<\/Code>/g, (_match, p, e, v) => {
113
+ return `\n<Code${p}>\n${ /* prettier-ignore */e !== undefined ? e.replace(TerraQualityRegex.REGEX_G_REGEX_11(), '$1').replace(TerraQualityRegex.REGEX_N_G_REGEX_2(), '\n') : (v || '').trim()}\n</Code>\n`;
114
+ })
115
+ : code;
116
+ const [copied, setCopied] = useState(false);
117
+ const [resCode, setResCode] = useState(() => viewCode);
118
+ const [receivedState, setReceivedState] = useState(src ? 'loading' : 'received');
119
+ const [receivedErr, setReceivedErr] = useState('');
120
+ // REFS
121
+ const host = useRef(null);
122
+ const received = useRef(null);
123
+ const view = useRef(null);
124
+ const theme = useRef(new Compartment());
125
+ /**
126
+ * Returns the displayed code.
127
+ *
128
+ * @returns Current displayed code.
129
+ */
130
+ const codeVal = () => viewCode;
131
+ const codeRef = useRef(resCode);
132
+ const langRef = useRef(langOf(props.language));
133
+ const chgRef = useRef(props.tone === 'edit' ? props.onCodeChange : undefined);
134
+ const cmtRef = useRef(props.tone === 'edit' ? props.onCommit : undefined);
135
+ // SYNC REFS
136
+ chgRef.current = props.tone === 'edit' ? props.onCodeChange : undefined;
137
+ cmtRef.current = props.tone === 'edit' ? props.onCommit : undefined;
138
+ codeRef.current = resCode;
139
+ langRef.current = langOf(props.language);
140
+ // DERIVED
141
+ const curLang = langOf(props.language);
142
+ const expAll = 'expandAll' in props && props.expandAll === true;
143
+ const fullHeight = props.tone === 'edit' && props.fullHeight === true;
144
+ // RENDER HELPERS
145
+ // EFFECTS
146
+ useEffect(() => {
147
+ const n = codeVal();
148
+ if (!src) {
149
+ setResCode(n);
150
+ setReceivedState('received');
151
+ setReceivedErr('');
152
+ return;
153
+ }
154
+ setResCode(n);
155
+ setReceivedState('loading');
156
+ setReceivedErr('');
157
+ let a = true;
158
+ const req = codeSrcCache.get(src) ??
159
+ fetch(new URL(src, window.location.origin).toString(), { headers: { Accept: 'application/json, text/plain, */*' } }).then(async (r) => {
160
+ const text = (await r.text()).trimEnd();
161
+ if (!r.ok) {
162
+ throw new Error((() => {
163
+ try {
164
+ const val = JSON.parse(text);
165
+ return typeof val.error === 'string' ? val.error : `Endpoint request failed: ${r.status}`;
166
+ }
167
+ catch {
168
+ return text || `Endpoint request failed: ${r.status}`;
169
+ }
170
+ })());
171
+ }
172
+ return text;
173
+ });
174
+ codeSrcCache.set(src, req);
175
+ if (codeSrcCache.size > 32 && codeSrcCache.keys().next().value !== undefined)
176
+ codeSrcCache.delete(codeSrcCache.keys().next().value);
177
+ void req.then(t => {
178
+ if (!a)
179
+ return;
180
+ setResCode(t);
181
+ setReceivedState('received');
182
+ }, e => {
183
+ codeSrcCache.delete(src);
184
+ if (!a)
185
+ return;
186
+ const msg = e instanceof Error ? e.message : 'Unable to receive the API value.';
187
+ errorLog('DocsCode', `Failed to receive ${src}`, { message: msg });
188
+ setResCode(n);
189
+ setReceivedErr(msg);
190
+ setReceivedState('error');
191
+ });
192
+ return () => {
193
+ a = false;
194
+ };
195
+ }, [docsSrc, props.code, props.source, src]);
196
+ useEffect(() => {
197
+ if (props.tone === 'view')
198
+ return;
199
+ let a = true;
200
+ let activeEnterHandler;
201
+ $hydrating.set($hydrating.get() + 1);
202
+ const hydration = {
203
+ finished: false,
204
+ fallback: undefined,
205
+ release: () => {
206
+ if (hydration.finished)
207
+ return;
208
+ hydration.finished = true;
209
+ if (hydration.fallback)
210
+ clearTimeout(hydration.fallback);
211
+ hydration.fallback = undefined;
212
+ $hydrating.set(Math.max(0, $hydrating.get() - 1));
213
+ },
214
+ };
215
+ hydration.fallback = setTimeout(() => hydration.release(), 3000);
216
+ void (async () => {
217
+ if (src) {
218
+ hydration.release();
219
+ return;
220
+ }
221
+ if (!host.current)
222
+ return;
223
+ const n = host.current;
224
+ let exts = (async () => {
225
+ const lang = langOf(langRef.current);
226
+ if (lang === 'md' || lang === 'markdown' || lang === 'mdx')
227
+ return [markdown()];
228
+ const parser = languages.find(e => e.name.toLowerCase() === lang || e.extensions.some(extension => extension.toLowerCase() === lang));
229
+ if (!parser)
230
+ return [];
231
+ try {
232
+ return [await parser.load()];
233
+ }
234
+ catch {
235
+ return [];
236
+ }
237
+ })();
238
+ exts = await exts;
239
+ if (!a)
240
+ return;
241
+ view.current?.destroy();
242
+ n.replaceChildren();
243
+ const editorView = new EditorView({
244
+ parent: n,
245
+ state: EditorState.create({
246
+ doc: codeRef.current,
247
+ extensions: [
248
+ theme.current.of(isDarkMode() ? dark : light),
249
+ drawSelection(),
250
+ history(),
251
+ lineNumbers(),
252
+ indentUnit.of('\t'),
253
+ EditorState.allowMultipleSelections.of(true),
254
+ ...(props.placeholder ? [cmPlaceholder(props.placeholder)] : []),
255
+ keymap.of([
256
+ ...standardKeymap,
257
+ ...historyKeymap,
258
+ { key: 'Mod-ArrowLeft', run: cursorLineBoundaryBackward, shift: selectLineBoundaryBackward },
259
+ { key: 'Mod-ArrowRight', run: cursorLineBoundaryForward, shift: selectLineBoundaryForward },
260
+ {
261
+ key: 'Mod-Shift-l',
262
+ run: view => {
263
+ const selectedLines = new Set();
264
+ for (const range of view.state.selection.ranges) {
265
+ for (let line = view.state.doc.lineAt(range.from).number; line <= view.state.doc.lineAt(range.empty ? range.to : Math.max(range.to - 1, range.from)).number; line++)
266
+ selectedLines.add(line);
267
+ }
268
+ if (!selectedLines.size || (selectedLines.size === 1 && view.state.selection.ranges.length === 1 && view.state.selection.main.empty))
269
+ return false;
270
+ view.dispatch({
271
+ selection: EditorSelection.create(Array.from(selectedLines, line => EditorSelection.cursor(view.state.doc.line(line).to))),
272
+ scrollIntoView: true,
273
+ userEvent: 'select',
274
+ });
275
+ return true;
276
+ },
277
+ },
278
+ { key: 'Alt-ArrowUp', run: view => moveLineUp(view) },
279
+ { key: 'Alt-ArrowDown', run: view => moveLineDown(view) },
280
+ { key: 'Shift-Alt-ArrowUp', run: view => copyLineUp(view) },
281
+ { key: 'Shift-Alt-ArrowDown', run: view => copyLineDown(view) },
282
+ indentWithTab,
283
+ ]),
284
+ ...(locked || src ? [EditorState.readOnly.of(true), EditorView.editable.of(false)] : []),
285
+ ...(Array.isArray(exts) ? exts : []),
286
+ EditorView.updateListener.of(u => {
287
+ const lineSet = new Set();
288
+ for (const r of u.state.selection.ranges) {
289
+ for (let n = u.state.doc.lineAt(r.from).number - 1; n <= u.state.doc.lineAt(r.empty ? r.to : Math.max(r.to - 1, r.from)).number - 1; n++)
290
+ lineSet.add(n);
291
+ }
292
+ if (lineSet.size > 1) {
293
+ u.view.dom.setAttribute('data-docs-multicursor', JSON.stringify({ lines: Array.from(lineSet).sort((a, b) => a - b) }));
294
+ }
295
+ else
296
+ u.view.dom.removeAttribute('data-docs-multicursor');
297
+ if (!u.docChanged || props.tone !== 'edit' || src || props.readOnly)
298
+ return;
299
+ codeRef.current = u.state.doc.toString();
300
+ chgRef.current?.(codeRef.current);
301
+ }),
302
+ EditorView.domEventHandlers({
303
+ blur: () => {
304
+ if (props.tone !== 'edit' || props.readOnly)
305
+ return;
306
+ cmtRef.current?.(codeRef.current, langRef.current);
307
+ },
308
+ paste: (evt, v) => {
309
+ if (props.tone !== 'edit' || props.readOnly)
310
+ return false;
311
+ if (!evt.clipboardData)
312
+ return false;
313
+ const html = evt.clipboardData.getData('text/html'), plain = evt.clipboardData.getData('text/plain'), types = Array.from(evt.clipboardData.types ?? []), isVSCode = types.includes('vscode-editor-data');
314
+ if (html && !isVSCode) {
315
+ const md = htmlToMd(html);
316
+ if (md && md !== plain) {
317
+ evt.preventDefault();
318
+ v.dispatch({
319
+ changes: { from: v.state.selection.main.from, to: v.state.selection.main.to, insert: md },
320
+ selection: { anchor: v.state.selection.main.from + md.length },
321
+ scrollIntoView: true,
322
+ });
323
+ return true;
324
+ }
325
+ }
326
+ if (plain) {
327
+ let transformed = plain, changed = false;
328
+ if (transformed.includes('/`/`/`'))
329
+ transformed = transformed.replaceAll('/`/`/`', '```');
330
+ changed = true;
331
+ if (transformed.includes('&grave;'))
332
+ transformed = transformed.replaceAll('&grave;', '&amp;grave;');
333
+ changed = true;
334
+ const table = mdTableToHtml(transformed);
335
+ if (table) {
336
+ transformed = table;
337
+ changed = true;
338
+ }
339
+ if (changed) {
340
+ evt.preventDefault();
341
+ v.dispatch({
342
+ changes: { from: v.state.selection.main.from, to: v.state.selection.main.to, insert: transformed },
343
+ selection: { anchor: v.state.selection.main.from + transformed.length },
344
+ scrollIntoView: true,
345
+ });
346
+ return true;
347
+ }
348
+ }
349
+ return false;
350
+ },
351
+ }),
352
+ ],
353
+ }),
354
+ });
355
+ const codeInput = editorView.contentDOM;
356
+ const onCodeEnter = (event) => {
357
+ if (event.key !== 'Enter' || props.tone !== 'edit' || props.readOnly || src)
358
+ return;
359
+ const activeView = view.current;
360
+ if (!activeView)
361
+ return;
362
+ event.preventDefault();
363
+ event.stopImmediatePropagation();
364
+ const { from, to } = activeView.state.selection.main;
365
+ activeView.dispatch({ changes: { from, to, insert: '\n' }, selection: { anchor: from + 1 }, scrollIntoView: true, userEvent: 'input.type' });
366
+ };
367
+ activeEnterHandler = onCodeEnter;
368
+ codeInput.addEventListener('keydown', onCodeEnter, true);
369
+ view.current = editorView;
370
+ editorView.dom.cmView = { view: editorView };
371
+ if (expAll) {
372
+ expand(view.current);
373
+ queueMicrotask(() => {
374
+ expand(view.current);
375
+ });
376
+ requestAnimationFrame(() => {
377
+ expand(view.current);
378
+ view.current?.requestMeasure();
379
+ setTimeout(() => {
380
+ expand(view.current);
381
+ view.current?.requestMeasure();
382
+ }, 250);
383
+ });
384
+ }
385
+ else
386
+ requestAnimationFrame(() => view.current?.requestMeasure());
387
+ if (document.fonts) {
388
+ try {
389
+ await document.fonts.ready;
390
+ }
391
+ catch {
392
+ // Font readiness is an optional measurement optimization.
393
+ }
394
+ }
395
+ if (a)
396
+ view.current?.requestMeasure();
397
+ hydration.release();
398
+ })();
399
+ return () => {
400
+ a = false;
401
+ hydration.release();
402
+ if (view.current) {
403
+ if (activeEnterHandler)
404
+ view.current.contentDOM.removeEventListener('keydown', activeEnterHandler, true);
405
+ delete view.current.dom.cmView;
406
+ }
407
+ view.current?.destroy();
408
+ view.current = null;
409
+ };
410
+ }, [expAll, locked, props.language, props.tone, src]);
411
+ useEffect(() => {
412
+ return $transition.listen(i => {
413
+ if (!i && view.current)
414
+ requestAnimationFrame(() => {
415
+ if (expAll)
416
+ expand(view.current);
417
+ view.current?.requestMeasure();
418
+ setTimeout(() => {
419
+ if (expAll)
420
+ expand(view.current);
421
+ view.current?.requestMeasure();
422
+ }, 250);
423
+ });
424
+ });
425
+ }, [expAll]);
426
+ useEffect(() => {
427
+ if (typeof window === 'undefined')
428
+ return;
429
+ /**
430
+ * Synchronises the editor theme with the system preference.
431
+ *
432
+ * @returns Nothing.
433
+ */
434
+ const m = window.matchMedia('(prefers-color-scheme: dark)'), sync = () => {
435
+ if (!view.current)
436
+ return;
437
+ view.current.dispatch({ effects: theme.current.reconfigure(isDarkMode() ? dark : light) });
438
+ };
439
+ sync();
440
+ m.addEventListener('change', sync);
441
+ return () => {
442
+ m.removeEventListener('change', sync);
443
+ };
444
+ }, []);
445
+ useEffect(() => {
446
+ const n = codeVal();
447
+ if (!view.current || view.current?.state.doc.toString() === n)
448
+ return;
449
+ view.current.dispatch({ changes: { from: 0, to: view.current.state.doc.length, insert: n } });
450
+ codeRef.current = n;
451
+ if (expAll)
452
+ expand(view.current);
453
+ view.current.requestMeasure();
454
+ }, [expAll, props.code]);
455
+ useEffect(() => {
456
+ if (!src || !view.current || view.current?.state.doc.toString() === resCode)
457
+ return;
458
+ view.current.dispatch({ changes: { from: 0, to: view.current.state.doc.length, insert: resCode } });
459
+ codeRef.current = resCode;
460
+ if (expAll)
461
+ expand(view.current);
462
+ view.current.requestMeasure();
463
+ }, [expAll, resCode, src]);
464
+ useLayoutEffect(() => {
465
+ if (received.current && received.current.textContent !== resCode)
466
+ received.current.textContent = resCode;
467
+ }, [resCode]);
468
+ useEffect(() => {
469
+ if (!host.current || typeof ResizeObserver === 'undefined')
470
+ return;
471
+ let frame = 0;
472
+ const obs = new ResizeObserver(() => {
473
+ cancelAnimationFrame(frame);
474
+ frame = requestAnimationFrame(() => view.current?.requestMeasure());
475
+ });
476
+ obs.observe(host.current);
477
+ return () => {
478
+ cancelAnimationFrame(frame);
479
+ obs.disconnect();
480
+ };
481
+ }, []);
482
+ // RENDER
483
+ return (_jsx(ErrorBoundary, { name: 'CodeBlock', children: _jsxs("div", { className: cn('docs-code-block relative mb-10 mt-0 flow-root w-full max-w-full overflow-hidden rounded-sm border border-primary-6 bg-primary-1', '[&_.cm-editor]:!h-auto [&_.cm-editor]:!max-h-none [&_.cm-editor]:!bg-primary-1', '[&_.cm-scroller]:!h-auto [&_.cm-scroller]:!max-h-none [&_.cm-scroller]:overflow-x-auto [&_.cm-scroller]:overflow-y-hidden', '[&_.cm-scroller]:!text-[13px] [&_.cm-scroller]:!leading-[16px]', '[&_.cm-content]:!my-0 [&_.cm-content]:!min-h-0 [&_.cm-content]:whitespace-pre [&_.cm-content]:break-normal', '[&_.cm-line]:!min-h-[16px]', '[&_.cm-gutters]:!border-r [&_.cm-gutters]:!border-r-primary-6 [&_.cm-gutters]:!bg-primary-1 [&_.cm-gutters]:!text-primary-10', '[&_.cm-gutterElement]:!font-mono [&_.cm-gutterElement]:!text-[13px] [&_.cm-gutterElement]:!tabular-nums', fullHeight && 'flex min-h-[50vh] flex-col [&_.cm-editor]:!min-h-[calc(50vh-1.75rem)] [&_.cm-scroller]:!min-h-[calc(50vh-1.75rem)]', 'transition-all duration-200', props.className), "data-docs-code-block": props.tone, "data-docs-code-editor": true, "data-docs-code-source": src || 'local', contentEditable: props.tone === 'edit' ? false : undefined, suppressContentEditableWarning: true, children: [_jsxs("div", { className: 'docs-code-block-header flex items-center justify-between gap-2 border-b border-primary-6 bg-primary-2 px-2 py-px', children: [props.tone === 'view' || !(props.tone === 'edit' ? props.languageEditable !== false && !src : false) ? (_jsx("p", { className: '!my-0 text-xs font-medium text-primary-11', children: langOf(curLang) })) : (_jsxs(Select, { size: 'xs', value: curLang, onValueChange: v => {
484
+ langRef.current = langOf(v);
485
+ props.onLanguageChange?.(langRef.current, codeRef.current);
486
+ }, children: [_jsx(SelectTrigger, { "aria-label": 'Select code language', children: _jsx("span", { "aria-label": curLang, children: langOf(curLang) }) }), _jsx(SelectContent, { align: 'start', children: (LANGS.includes(langOf(props.language)) ? LANGS : [...LANGS, langOf(props.language)]).map(v => (_jsx(SelectItem, { value: v, children: langOf(v) }, v))) })] })), _jsx(Button, { variant: 'outline', size: 'xs', className: 'aspect-square size-6', "aria-label": copied ? 'Copied' : 'Copy', title: copied ? 'Copied' : 'Copy', onClick: () => {
487
+ void navigator.clipboard.writeText(src ? received.current?.textContent || resCode : resCode).then(() => {
488
+ setCopied(true);
489
+ window.setTimeout(() => setCopied(false), 1200);
490
+ });
491
+ }, children: copied ? _jsx(CheckIcon, { "aria-hidden": 'true' }) : _jsx(CopyIcon, { "aria-hidden": 'true' }) })] }), _jsx("div", { ...(!src && { ref: host }), className: cn('docs-code-block-body w-full max-w-full overflow-x-auto overflow-y-hidden text-inherit', fullHeight && 'min-h-0 flex-1'), children: src ? (_jsxs("div", { className: 'min-w-0 max-w-full', "data-docs-code-source": src, "data-state": receivedState, children: [_jsx("div", { hidden: receivedState !== 'loading', className: 'p-3', children: _jsx(BlockSkeleton, { source: src }) }), _jsx("div", { hidden: receivedState !== 'error', children: _jsx(AlertError, { title: 'API value unavailable', description: receivedErr }) }), _jsx("code", { ref: received, hidden: receivedState !== 'received', className: 'block whitespace-pre p-3', "data-docs-code-received": true, "data-docs-code-source": src, "data-state": receivedState })] })) : (_jsx("div", { className: 'min-w-0 max-w-full overflow-x-auto overflow-y-hidden', children:
492
+ /* prettier-ignore */ props.tone === 'view' ? (_jsx("div", { className: 'docs-code-block-fb m-0 flex max-w-full flex-col overflow-x-auto overflow-y-hidden bg-transparent p-0 text-sm leading-6', "data-docs-code-fb": 'true', children: (props.tone === 'view' ? resCode.replace(TerraQualityRegex.REGEX_R_N_G_REGEX(), '\n').split('\n') : []).map((l, i) => (_jsxs("div", { className: 'docs-code-block-fallback-line flex min-w-full text-sm leading-6', children: [_jsx("div", { className: 'min-w-10 shrink-0 select-none border-r border-primary-6 px-2 text-right font-mono tabular-nums leading-6 text-primary-10', children: i + 1 }), _jsx("span", { className: 'block whitespace-pre px-1 leading-6 text-inherit', children: l || ' ' })] }, i))) })) : _jsx("div", { className: 'docs-code-block-fb m-0 max-w-full overflow-x-auto overflow-y-hidden whitespace-pre bg-transparent p-0 text-inherit', "data-docs-code-fb": 'true', children: resCode }) })) })] }) }));
493
+ }
494
+ //# sourceMappingURL=_CodeBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_CodeBlock.js","sourceRoot":"","sources":["../../../../src/terra/editor/docs/_CodeBlock.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /** Docs code block renderer with view and edit modes. */
2
+ import type { DocsBlock, PortableTextBlockRendererProps } from '../types.js';
3
+ /** Sanity Portable Text code-block fields used by the docs editor. */
4
+ type CodeBlockData = DocsBlock<'code'>;
5
+ /** Adapts Portable Text's block-object contract to the code renderer. */
6
+ /**
7
+ * Renders the renderCode component.
8
+ *
9
+ * @param props - Portable Text renderer attributes, nested children, code block node, path, and read-only mode.
10
+ * @returns The code block renderer in editable or read-only mode.
11
+ */
12
+ export declare function renderCode({ attributes: attrs, children, node, path, readOnly }: PortableTextBlockRendererProps<CodeBlockData>): JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=_DocsCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_DocsCode.d.ts","sourceRoot":"","sources":["../../../../src/terra/editor/docs/_DocsCode.tsx"],"names":[],"mappings":"AACA,yDAAyD;AAYzD,OAAO,KAAK,EAAE,SAAS,EAAgC,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAE3G,sEAAsE;AACtE,KAAK,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAcvC,yEAAyE;AACzE;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,8BAA8B,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,OAAO,CAE5I"}