@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,404 @@
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/pages/docs/_editable.tsx
5
+ * JSON draft state and persistence provider for Docs View, Edit, and Attachments modes.
6
+ */
7
+ /*//////////////////////////////////////////////////
8
+ IMPORTS
9
+ //////////////////////////////////////////////////*/
10
+ // API
11
+ import { $editReadyPath, $editorMounts, $hydrating, $mode, $surfaceReady, $toolbar, clearTransition, isDocBody, transitionStore, uploadAssetChunked, useAtom, useTransitionState } from './_helpers.js';
12
+ import { actions } from '../../runtime/action-proxy.js';
13
+ import { cn } from '../../runtime/runtime.js';
14
+ import { getImg } from '../../runtime/runtime.js';
15
+ import { toast } from 'sonner';
16
+ import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
17
+ import { getDocsHostAdapter } from '../../../host-runtime.js';
18
+ // COMPONENTS
19
+ import React from 'react';
20
+ import { EditStateCtx, EditorSurfaceCtx, TransitionCtx } from './_helpers.js';
21
+ import { ErrorBoundary } from '../../runtime/ui.js';
22
+ import { Progress } from '@terra-symposium/styling/ui/terra-original';
23
+ // DATA
24
+ import { IMG_RESPONSIVE } from '../../runtime/ui.js';
25
+ /*//////////////////////////////////////////////////
26
+ CONFIG
27
+ //////////////////////////////////////////////////*/
28
+ /*//////////////////////////////////////////////////
29
+ HELPERS
30
+ //////////////////////////////////////////////////*/
31
+ /**
32
+ * Renders the loader component.
33
+ *
34
+ * @param props - Optional styling for the loading indicator while a Docs route or editor is resolving.
35
+ * @param className - Additional CSS classes merged into loader.
36
+ *
37
+ * @return The accessible loading indicator used by Docs transitions.
38
+ */
39
+ export function Loader({ className }) {
40
+ const mounts = useAtom($editorMounts);
41
+ return (_jsx(ErrorBoundary, { name: 'Loader', children: _jsxs("div", { "aria-live": 'polite', "aria-label": 'Loading document blocks', className: cn('flex size-full flex-col items-center justify-center gap-5 bg-primary-1', className), "data-docs-loading-overlay": true, role: 'status', children: [_jsx("img", { alt: '', src: getImg('image-1e365a8f99a0859fa0ad38617b1b399520b32767-984x984', 1200)?.url(), className: cn('size-40', IMG_RESPONSIVE) }), _jsx(Progress, { className: 'h-3 w-56', value: Math.max(8, mounts.expected.length ? (mounts.mounted.length / mounts.expected.length) * 100 : 0) }), _jsxs("span", { className: 'sr-only', children: ["Loading document blocks: ", mounts.mounted.length, "/", mounts.expected.length] })] }) }));
42
+ }
43
+ /**
44
+ * Orchestrates layout math and hydration visibility to prevent FOUC during navigation.
45
+ *
46
+ * @param props - Child content, visual class, navigation mode, and optional route key for the Docs page transition.
47
+ * @param children - Child content nested inside transition shell's rendered output.
48
+ * @param className - Additional CSS classes merged into transition shell.
49
+ * @param mode - Mode input supplied to transition shell's operation.
50
+ * @param path - Source or route path resolved for transition shell.
51
+ *
52
+ * @return A transition wrapper that keeps page visibility synchronized with route hydration.
53
+ */
54
+ export function TransitionShell({ children, className, mode, path }) {
55
+ // STATE
56
+ const container = useRef(null);
57
+ const mounts = useAtom($editorMounts);
58
+ const transition = useTransitionState();
59
+ const pending = useRef(false);
60
+ const reported = useRef(false);
61
+ const [state, setState] = useState({ armed: false, loading: true, ready: false });
62
+ // LIFECYCLE
63
+ // enforces loading guard during cross-page transitions to prevent layout shifts
64
+ useEffect(() => {
65
+ if (transition === 'idle')
66
+ return;
67
+ reported.current = false;
68
+ pending.current = true;
69
+ $editReadyPath.set(null);
70
+ $surfaceReady.set(null);
71
+ setState(p => ({ ...p, armed: false, loading: true, ready: false }));
72
+ }, [transition]);
73
+ useEffect(() => {
74
+ if (mode === 'edit')
75
+ return;
76
+ setState(p => (p.armed ? p : { ...p, armed: true }));
77
+ }, [mode]);
78
+ // A missing editor readiness event must not leave the document hidden without feedback.
79
+ useEffect(() => {
80
+ if (!state.loading || !state.armed)
81
+ return;
82
+ let a = true;
83
+ window.setTimeout(() => {
84
+ if (!a || reported.current)
85
+ return;
86
+ reported.current = true;
87
+ toast.error('Document blocks did not finish loading. The available content is shown below.');
88
+ pending.current = false;
89
+ clearTransition();
90
+ setState(p => ({ ...p, loading: false, ready: true }));
91
+ }, 5_000);
92
+ return () => {
93
+ a = false;
94
+ };
95
+ }, [state.armed, state.loading]);
96
+ // releases layout lock once the internal editor or viewer confirms mounting
97
+ useEffect(() => {
98
+ if (transition === 'idle' || !state.ready || pending.current)
99
+ return;
100
+ const tgt = transition === 'local' ? null : transition === 'p' ? '__pending__' : (typeof transition === 'string' ? transition.slice(3) : '');
101
+ if (tgt && tgt !== '__pending__' && tgt !== mode)
102
+ return;
103
+ const frames = [];
104
+ frames.push(window.requestAnimationFrame(() => {
105
+ frames.push(window.requestAnimationFrame(clearTransition));
106
+ }));
107
+ return () => {
108
+ frames.forEach(frame => window.cancelAnimationFrame(frame));
109
+ };
110
+ }, [mode, state.ready, transition]);
111
+ // SYNCHRONIZATION
112
+ // Keeps the transition lock aligned with the structured editor lifecycle.
113
+ useEffect(() => {
114
+ const root = container.current;
115
+ if (!root)
116
+ return;
117
+ /**
118
+ * Handles check.
119
+ */
120
+ const check = () => {
121
+ const tgt = typeof transition === 'string' && transition.startsWith('to-') ? transition.slice(3) : mode;
122
+ const mounts = $editorMounts.get();
123
+ const ready = $surfaceReady.get() === tgt &&
124
+ $hydrating.get() === 0 &&
125
+ (tgt !== 'edit' ||
126
+ ($editReadyPath.get() === path &&
127
+ mounts.path === path &&
128
+ mounts.expected.length === mounts.mounted.length &&
129
+ !!root.querySelector('[data-docs-body-editor][data-docs-editor-initialized="true"]')));
130
+ if (ready)
131
+ pending.current = false;
132
+ setState(p => (p.ready === ready && p.loading === !ready ? p : { ...p, ready, loading: !ready }));
133
+ };
134
+ const stop = [$surfaceReady.listen(check), $editReadyPath.listen(check), $editorMounts.listen(check), $hydrating.listen(check)];
135
+ check();
136
+ return () => {
137
+ for (let i = 0; i < stop.length; i++)
138
+ stop[i]();
139
+ };
140
+ }, [mode, path, transition]);
141
+ // restores cursor or scroll position globally once shell unlocks
142
+ useEffect(() => {
143
+ transitionStore.restore?.();
144
+ }, [state.loading, state.ready, transition]);
145
+ const setLoading = useCallback((l) => {
146
+ setState(p => (p.loading === l ? p : { ...p, loading: l }));
147
+ }, []);
148
+ const setSrcReady = useCallback((a) => {
149
+ setState(p => (p.armed === a ? p : { ...p, armed: a }));
150
+ }, []);
151
+ const loading = transition !== 'idle' || state.loading;
152
+ // RENDER
153
+ return (_jsx(ErrorBoundary, { name: 'TransitionShell', children: _jsx(TransitionCtx.Provider, { value: useMemo(() => ({ setLoading, setSourceReady: setSrcReady }), [setLoading, setSrcReady]), children: _jsxs("div", { ref: container, suppressHydrationWarning: true, className: cn('visible relative size-full min-w-0 max-w-none overflow-visible text-inherit print:m-0 print:h-auto print:min-h-0 print:w-full print:overflow-visible print:p-0', className), "data-docs-shell": '', "data-docs-mounted": mounts.mounted.length, "data-docs-expected": mounts.expected.length, "data-docs-mode": mode, "data-loading": loading, children: [_jsx("div", { "aria-hidden": loading ? 'true' : 'false', className: cn(loading ? 'hidden' : 'block'), "data-docs-transition-content": true, children: children }), loading && _jsx(Loader, { className: 'absolute inset-0 z-10' })] }) }) }));
154
+ }
155
+ /**
156
+ * Renders the editable component.
157
+ *
158
+ * @param props - Document content, title, path, source, and permission state that determine whether the page is editable or read-only.
159
+ * @param children - Child content nested inside editable's rendered output.
160
+ * @param content - Content input supplied to editable's operation.
161
+ * @param description - Supporting text shown in editable.
162
+ * @param path - Source or route path resolved for editable.
163
+ * @param permission - Permission input supplied to editable's operation.
164
+ * @param pathname - Pathname input supplied to editable's operation.
165
+ * @param title - Heading text shown in editable.
166
+ * @param source - Source node identifier for the connection drawn by editable.
167
+ *
168
+ * @return The document editor or read-only view configured for the supplied document and permission.
169
+ */
170
+ export default function Editable({ children, content = [], description = '', path, permission, pathname, title = 'Untitled', source: src = '', }) {
171
+ // STATES
172
+ const mode = useAtom($mode);
173
+ const transition = useContext(TransitionCtx);
174
+ const refs = useRef({
175
+ blob: null,
176
+ body: null,
177
+ code: '',
178
+ dirty: false,
179
+ editor: null,
180
+ lastMd: '',
181
+ load: { ignoreInitialChange: false, pendingContent: '' },
182
+ norm: { force: false, markdown: '', replay: false, structural: false },
183
+ previews: new Map(),
184
+ reparse: '',
185
+ replacements: new Map(),
186
+ route: { path, pathname },
187
+ saved: '',
188
+ selection: null,
189
+ uploads: new Map(),
190
+ version: null,
191
+ });
192
+ const saving = useRef(false);
193
+ const [err, setErr] = useState(null);
194
+ // prettier-ignore
195
+ const [state, setState] = useState({ busy: null, dirty: false, draft: { content, description, path: path || pathname, source: src, title }, loaded: Boolean(content.length || !src), optimistic: false, version: 0, });
196
+ const draftContent = isDocBody(state.draft.content) ? state.draft.content : [];
197
+ // INIT
198
+ useEffect(() => {
199
+ refs.current.route = { path, pathname };
200
+ setState(p => ({
201
+ ...p,
202
+ draft: { ...p.draft, content, description, path: path || pathname, source: src, title },
203
+ dirty: false,
204
+ loaded: Boolean(content.length || !src),
205
+ version: p.version + 1,
206
+ }));
207
+ }, [content, description, path, pathname, src, title]);
208
+ useEffect(() => {
209
+ if (content.length || !src)
210
+ return;
211
+ let a = true;
212
+ void actions.read.source.body({ source: src }).then(({ data: d, error: err }) => {
213
+ if (!a)
214
+ return;
215
+ if (err || !d) {
216
+ setErr(err?.message || 'Unable to convert source to document blocks.');
217
+ setState(p => ({ ...p, loaded: true }));
218
+ }
219
+ else if (isDocBody(d))
220
+ setState(p => ({ ...p, draft: { ...p.draft, content: d }, loaded: true }));
221
+ else {
222
+ setErr('Converted source did not return valid document blocks.');
223
+ setState(p => ({ ...p, loaded: true }));
224
+ }
225
+ });
226
+ return () => {
227
+ a = false;
228
+ };
229
+ }, [content.length, src]);
230
+ useEffect(() => {
231
+ transition?.setSourceReady(Boolean(state.loaded || draftContent.length || !state.draft.source));
232
+ }, [draftContent.length, state.draft.source, state.loaded, transition]);
233
+ const update = useCallback((v) => {
234
+ setState(p => ({ ...p, dirty: true, draft: { ...p.draft, ...v } }));
235
+ }, []);
236
+ const setCode = useCallback((c) => {
237
+ setState(p => (c === p.draft.source ? p : { ...p, dirty: true, draft: { ...p.draft, source: c } }));
238
+ }, []);
239
+ const save = useCallback(async () => {
240
+ const draft = state.draft;
241
+ if (!draft.path || saving.current)
242
+ return;
243
+ saving.current = true;
244
+ setState(p => ({ ...p, busy: 'saving' }));
245
+ try {
246
+ const { data, error: err } = await actions.write.doc.save({
247
+ description: draft.description,
248
+ content: isDocBody(draft.content) ? draft.content : [],
249
+ path: draft.path,
250
+ title: draft.title,
251
+ });
252
+ if (err || !data)
253
+ throw err || new Error('Unable to save document.');
254
+ const saved = data;
255
+ setState(p => ({
256
+ ...p,
257
+ busy: null,
258
+ dirty: false,
259
+ draft: {
260
+ ...p.draft,
261
+ ...(Array.isArray(saved.content) ? { content: saved.content } : {}),
262
+ ...(typeof saved.source === 'string' ? { source: saved.source } : {}),
263
+ },
264
+ }));
265
+ }
266
+ catch (err) {
267
+ console.error('[Docs:save] failed', err);
268
+ setState(p => ({ ...p, busy: null }));
269
+ toast.error(err instanceof Error ? err.message : 'Unable to save document.');
270
+ }
271
+ finally {
272
+ saving.current = false;
273
+ }
274
+ }, [state.draft]);
275
+ // HELPRES
276
+ const setMode = useCallback(async (n) => {
277
+ if (n === 'edit') {
278
+ const loadDraft = getDocsHostAdapter()?.loadDraft;
279
+ const draftPath = state.draft.path || path || pathname;
280
+ if (loadDraft && draftPath) {
281
+ const hostedDraft = await loadDraft(draftPath);
282
+ if (hostedDraft) {
283
+ const hostedContent = Array.isArray(hostedDraft.content) ? hostedDraft.content : [];
284
+ setState(p => ({
285
+ ...p,
286
+ dirty: false,
287
+ loaded: Boolean(hostedContent.length || !hostedDraft.source),
288
+ draft: {
289
+ ...p.draft,
290
+ content: hostedContent,
291
+ ...(hostedDraft.description !== undefined ? { description: hostedDraft.description } : {}),
292
+ ...(hostedDraft.source !== undefined ? { source: hostedDraft.source } : {}),
293
+ ...(hostedDraft.title !== undefined ? { title: hostedDraft.title } : {}),
294
+ },
295
+ }));
296
+ $mode.set(n);
297
+ return;
298
+ }
299
+ }
300
+ }
301
+ if (n === 'edit' && !draftContent.length && state.draft.source) {
302
+ const { data, error: err } = await actions.read.source.body({ source: state.draft.source });
303
+ if (err || !data) {
304
+ setErr(err?.message || 'Unable to convert source to document blocks.');
305
+ return;
306
+ }
307
+ if (!isDocBody(data)) {
308
+ setErr('Converted source did not return valid document blocks.');
309
+ return;
310
+ }
311
+ update({ content: data });
312
+ }
313
+ $mode.set(n);
314
+ }, [draftContent.length, state.draft.source, update]);
315
+ const insert = useCallback((m, _replace = false, s) => {
316
+ void actions.read.source
317
+ .body({ source: m })
318
+ .then(({ data: d, error: err }) => {
319
+ if (err || !d) {
320
+ toast.error(err?.message || 'Unable to convert pasted Markdown.');
321
+ return;
322
+ }
323
+ if (!isDocBody(d)) {
324
+ toast.error('Converted Markdown did not return valid document blocks.');
325
+ return;
326
+ }
327
+ update({ content: Boolean(s?.text?.trim()) && s?.text?.trim().length === (refs.current.body?.innerText.trim() || '').length ? d : [...draftContent, ...d] });
328
+ })
329
+ .catch(e => toast.error(e instanceof Error ? e.message : 'Unable to convert pasted Markdown.'));
330
+ }, [draftContent, refs, update]);
331
+ const controls = useMemo(() => ({
332
+ applySearchText: setCode,
333
+ busy: state.busy,
334
+ dirty: state.dirty,
335
+ discard: () => {
336
+ setState(p => ({ ...p, dirty: false }));
337
+ },
338
+ insert,
339
+ optimistic: state.optimistic,
340
+ path: state.draft.path,
341
+ permission,
342
+ prettier: () => undefined,
343
+ readSearchText: async () => state.draft.source,
344
+ save: () => save(),
345
+ setMode,
346
+ toggleList: () => undefined,
347
+ }), [insert, permission, save, setCode, setMode, state]);
348
+ useEffect(() => {
349
+ $toolbar.set(controls);
350
+ return () => {
351
+ $toolbar.set(null);
352
+ };
353
+ }, [controls]);
354
+ const onBodyChange = useCallback((c) => {
355
+ setState(p => {
356
+ if (JSON.stringify(p.draft.content) === JSON.stringify(c))
357
+ return p;
358
+ return { ...p, dirty: true, draft: { ...p.draft, content: c, source: '' } };
359
+ });
360
+ }, []);
361
+ const attachFiles = useCallback(async (v) => {
362
+ if (!path || !v.length)
363
+ return;
364
+ await Promise.all(v.map(f => uploadAssetChunked(f, path)));
365
+ toast.success(`${v.length} attachment${v.length === 1 ? '' : 's'} added.`);
366
+ }, [path]);
367
+ // RENDER
368
+ return (_jsx(ErrorBoundary, { name: 'Editable', children: _jsx(EditStateCtx.Provider, { value: useMemo(() => ({
369
+ busy: state.busy,
370
+ code: state.draft.source,
371
+ draft: state.draft,
372
+ dirty: state.dirty,
373
+ loaded: state.loaded,
374
+ mark: () => {
375
+ setState(p => ({ ...p, dirty: true }));
376
+ },
377
+ references: refs,
378
+ save: (code) => void save(code),
379
+ setCode,
380
+ setSrc: setCode,
381
+ source: state.draft.source,
382
+ state,
383
+ update,
384
+ }), [refs, save, setCode, state, update]), children: _jsx(EditorSurfaceCtx.Provider, { value: useMemo(() => ({
385
+ controls,
386
+ editor: state,
387
+ insert,
388
+ mode,
389
+ onBodyChange,
390
+ onMdChange: setCode,
391
+ onVisualError: err => {
392
+ setErr(err);
393
+ },
394
+ parseError: err,
395
+ path,
396
+ pathname,
397
+ refs,
398
+ save,
399
+ setMode,
400
+ attachFiles,
401
+ uploadImage: async () => '',
402
+ }), [attachFiles, controls, err, insert, mode, onBodyChange, path, pathname, refs, save, setCode, setMode, state]), children: children }) }) }));
403
+ }
404
+ //# sourceMappingURL=_editable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_editable.js","sourceRoot":"","sources":["../../../../src/terra/pages/docs/_editable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * astro/src/pages/docs/_export-dialog.tsx
3
+ */
4
+ import type { DocsExportOpts as ExportOptions, ExportTgt } from '../../runtime/types.js';
5
+ import type { ReactElement } from 'react';
6
+ /**
7
+ * Renders the export dialog component.
8
+ *
9
+ * @param props - Export target, document data, and dialog state callbacks.
10
+ *
11
+ * @return Dialog for exporting documentation content.
12
+ */
13
+ export declare function ExportDialog({ target: tgt, setTarget: setTgt, disabled, onExport, }: {
14
+ target: ExportTgt;
15
+ setTarget: (val: ExportTgt) => void;
16
+ disabled?: boolean;
17
+ onExport: (tgt: Exclude<ExportTgt, null>, opts: ExportOptions, progress: (val: number) => void) => Promise<void>;
18
+ }): ReactElement | null;
19
+ //# sourceMappingURL=_export-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_export-dialog.d.ts","sourceRoot":"","sources":["../../../../src/terra/pages/docs/_export-dialog.tsx"],"names":[],"mappings":"AACA;;GAEG;AAkBH,OAAO,KAAK,EAAE,cAAc,IAAI,aAAa,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAa1C;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC5B,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,MAAM,EACjB,QAAQ,EACR,QAAQ,GACR,EAAE;IACF,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjH,GAAG,YAAY,GAAG,IAAI,CA6ItB"}
@@ -0,0 +1,78 @@
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ // @ts-nocheck -- source-preserving extraction; public host contracts are typed in src/host.ts.
3
+ /**
4
+ * astro/src/pages/docs/_export-dialog.tsx
5
+ */
6
+ /*//////////////////////////////////////////////////
7
+ IMPORTS
8
+ //////////////////////////////////////////////////*/
9
+ // API
10
+ import { useState } from 'react';
11
+ // COMPONENTS
12
+ import { Button } from '@terra-symposium/styling/ui/terra-original';
13
+ import { Checkbox } from '@terra-symposium/styling/ui/terra-original';
14
+ import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@terra-symposium/styling/ui/terra-original';
15
+ import { ErrorBoundary } from '../../runtime/ui.js';
16
+ import { Label } from '@terra-symposium/styling/ui/terra-original';
17
+ import { Progress } from '@terra-symposium/styling/ui/terra-original';
18
+ /*//////////////////////////////////////////////////
19
+ CLASSES
20
+ //////////////////////////////////////////////////*/
21
+ const TEXT_SM_FONT_MEDIUM_TEXT_PRIMARY_12_CLASS = 'text-sm font-medium text-primary-12';
22
+ const FLEX_ITEMS_CENTER_SPACE_X_2_CLASS = 'flex items-center space-x-2';
23
+ /*//////////////////////////////////////////////////
24
+ HELPERS
25
+ //////////////////////////////////////////////////*/
26
+ /**
27
+ * Renders the export dialog component.
28
+ *
29
+ * @param props - Export target, document data, and dialog state callbacks.
30
+ *
31
+ * @return Dialog for exporting documentation content.
32
+ */
33
+ export function ExportDialog({ target: tgt, setTarget: setTgt, disabled, onExport, }) {
34
+ const [opts, setOpts] = useState({
35
+ flatten: false,
36
+ format: 'raw',
37
+ filters: { pages: true, pdfs: true, images: true, youtube: true, tsdocs: true, other: true },
38
+ merges: { pages: false, pdfs: false, images: false, youtube: false, tsdocs: false },
39
+ });
40
+ const [busy, setBusy] = useState(false);
41
+ const [progress, setProgress] = useState(0);
42
+ if (!tgt)
43
+ return null;
44
+ const content = [
45
+ { key: 'pages', label: 'Text' },
46
+ { key: 'pdfs', label: 'PDFs' },
47
+ { key: 'images', label: 'Images' },
48
+ { key: 'youtube', label: 'YouTube Transcripts' },
49
+ { key: 'tsdocs', label: 'TSDocs' },
50
+ { key: 'other', label: 'Other' },
51
+ ];
52
+ return (_jsx(ErrorBoundary, { name: 'ExportDialog', children: _jsx(Dialog, { open: true, onOpenChange: o => !busy && !o && setTgt(null), children: _jsxs(DialogContent, { className: 'text-foreground bg-background dark:bg-zinc-950 dark:text-zinc-50', size: 'sm', "aria-busy": busy, children: [_jsxs(DialogHeader, { children: [_jsxs(DialogTitle, { children: ["Export ", tgt.title] }), _jsx(DialogDescription, { children: "Select the content and formats to include in your export." })] }), _jsxs("div", { className: 'space-y-6 py-4', children: [_jsxs("div", { className: 'space-y-3', role: 'group', "aria-labelledby": 'export-include-content-heading', children: [_jsx("h4", { id: 'export-include-content-heading', className: TEXT_SM_FONT_MEDIUM_TEXT_PRIMARY_12_CLASS, children: "Include Content" }), _jsx("div", { className: 'grid grid-cols-2 gap-3', children: content.map(i => (_jsxs("div", { className: FLEX_ITEMS_CENTER_SPACE_X_2_CLASS, children: [_jsx(Checkbox, { id: `filter-${i.key}`, checked: opts.filters[i.key], disabled: disabled || busy, onCheckedChange: c => {
53
+ setOpts(p => ({ ...p, filters: { ...p.filters, [i.key]: !!c } }));
54
+ } }), _jsx(Label, { htmlFor: `filter-${i.key}`, children: i.label })] }, i.key))) })] }), _jsxs("div", { className: 'space-y-3', role: 'group', "aria-labelledby": 'export-merge-heading', children: [_jsx("h4", { id: 'export-merge-heading', className: TEXT_SM_FONT_MEDIUM_TEXT_PRIMARY_12_CLASS, children: "Merge" }), _jsx("div", { className: 'grid grid-cols-2 gap-3', children: content
55
+ .filter(i => i.key !== 'other')
56
+ .map(i => (_jsxs("div", { className: FLEX_ITEMS_CENTER_SPACE_X_2_CLASS, children: [_jsx(Checkbox, { id: `merge-${i.key}`, checked: opts.merges[i.key] && opts.filters[i.key], disabled: disabled || busy || !opts.filters[i.key], onCheckedChange: c => {
57
+ setOpts(p => ({ ...p, merges: { ...p.merges, [i.key]: !!c } }));
58
+ } }), _jsx(Label, { htmlFor: `merge-${i.key}`, className: !opts.filters[i.key] ? 'opacity-50' : '', children: i.label })] }, i.key))) })] }), _jsxs("div", { className: 'space-y-3', role: 'group', "aria-labelledby": 'export-processing-heading', children: [_jsx("h4", { id: 'export-processing-heading', className: TEXT_SM_FONT_MEDIUM_TEXT_PRIMARY_12_CLASS, children: "Processing Options" }), _jsxs("div", { className: 'flex flex-col gap-3', children: [_jsxs("div", { className: FLEX_ITEMS_CENTER_SPACE_X_2_CLASS, children: [_jsx(Checkbox, { id: 'opt-flatten', checked: opts.flatten, disabled: disabled || busy, onCheckedChange: c => {
59
+ setOpts(p => ({ ...p, flatten: !!c }));
60
+ } }), _jsx(Label, { htmlFor: 'opt-flatten', children: "Flatten folder structure" })] }), _jsxs("div", { className: FLEX_ITEMS_CENTER_SPACE_X_2_CLASS, children: [_jsx(Checkbox, { id: 'opt-format', checked: opts.format === 'pdf', disabled: disabled || busy || !opts.filters.pages, onCheckedChange: c => {
61
+ setOpts(p => ({ ...p, format: c ? 'pdf' : 'raw' }));
62
+ } }), _jsx(Label, { htmlFor: 'opt-format', children: "Convert Pages to PDF" })] })] })] })] }), _jsx(DialogFooter, { children: busy ? (_jsxs("div", { className: 'flex w-full items-center gap-4', role: 'status', "aria-live": 'polite', children: [_jsx(Progress, { value: progress, className: 'h-2 flex-1', "aria-label": `Exporting ${tgt.title} progress`, "aria-valuetext": `${progress}%` }), _jsxs("span", { className: 'font-mono text-sm', children: [progress, "%"] })] })) : (_jsxs(_Fragment, { children: [_jsx(Button, { variant: 'ghost', onClick: () => {
63
+ setTgt(null);
64
+ }, children: "Cancel" }), _jsx(Button, { onClick: () => {
65
+ void (async () => {
66
+ setBusy(true);
67
+ setProgress(0);
68
+ try {
69
+ await onExport(tgt, opts, setProgress);
70
+ setTgt(null);
71
+ }
72
+ finally {
73
+ setBusy(false);
74
+ }
75
+ })();
76
+ }, disabled: !Object.values(opts.filters).some(Boolean), children: "Download ZIP" })] })) })] }) }) }));
77
+ }
78
+ //# sourceMappingURL=_export-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_export-dialog.js","sourceRoot":"","sources":["../../../../src/terra/pages/docs/_export-dialog.tsx"],"names":[],"mappings":"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"}