@terra-symposium/docs 0.1.17 → 0.1.72

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 (565) hide show
  1. package/README.md +26 -7
  2. package/bin/terra-docs.mjs +187 -0
  3. package/lib-dist/assets/fonts/AUTHENTICSans-130.woff +0 -0
  4. package/lib-dist/assets/fonts/AUTHENTICSans-130.woff2 +0 -0
  5. package/lib-dist/assets/fonts/AUTHENTICSans-150.woff +0 -0
  6. package/lib-dist/assets/fonts/AUTHENTICSans-150.woff2 +0 -0
  7. package/lib-dist/assets/fonts/AUTHENTICSans-90.woff +0 -0
  8. package/lib-dist/assets/fonts/AUTHENTICSans-90.woff2 +0 -0
  9. package/lib-dist/assets/fonts/Avara-Bold.woff +0 -0
  10. package/lib-dist/assets/fonts/Avara-BoldItalic.woff +0 -0
  11. package/lib-dist/assets/fonts/InterVariable-Italic-latin-20260728.woff2 +0 -0
  12. package/lib-dist/assets/fonts/InterVariable-latin-20260728.woff2 +0 -0
  13. package/lib-dist/assets/fonts/README.md +7 -0
  14. package/lib-dist/assets/fonts/licenses/Inter-OFL-1.1.txt +92 -0
  15. package/lib-dist/assets/fonts/licenses/OFL-1.1.txt +93 -0
  16. package/lib-dist/{Docs.d.ts → components/Docs.d.ts} +1 -1
  17. package/lib-dist/components/Docs.d.ts.map +1 -0
  18. package/lib-dist/components/Docs.js +9 -0
  19. package/lib-dist/components/Docs.js.map +1 -0
  20. package/lib-dist/{LocalDocsWorkspace.d.ts → components/LocalDocsWorkspace.d.ts} +9 -2
  21. package/lib-dist/components/LocalDocsWorkspace.d.ts.map +1 -0
  22. package/lib-dist/{LocalDocsWorkspace.js → components/LocalDocsWorkspace.js} +83 -24
  23. package/lib-dist/components/LocalDocsWorkspace.js.map +1 -0
  24. package/lib-dist/components/NotFound.d.ts +8 -0
  25. package/lib-dist/components/NotFound.d.ts.map +1 -0
  26. package/lib-dist/components/NotFound.js +6 -0
  27. package/lib-dist/components/NotFound.js.map +1 -0
  28. package/lib-dist/components/SiteLayout.d.ts +25 -0
  29. package/lib-dist/components/SiteLayout.d.ts.map +1 -0
  30. package/lib-dist/components/SiteLayout.js +12 -0
  31. package/lib-dist/components/SiteLayout.js.map +1 -0
  32. package/lib-dist/{StaticWorkspace.d.ts → components/StaticWorkspace.d.ts} +7 -3
  33. package/lib-dist/components/StaticWorkspace.d.ts.map +1 -0
  34. package/lib-dist/{StaticWorkspace.js → components/StaticWorkspace.js} +106 -34
  35. package/lib-dist/components/StaticWorkspace.js.map +1 -0
  36. package/lib-dist/components/StrictLocalWorkspaceHarness.d.ts +10 -0
  37. package/lib-dist/components/StrictLocalWorkspaceHarness.d.ts.map +1 -0
  38. package/lib-dist/components/StrictLocalWorkspaceHarness.js +12 -0
  39. package/lib-dist/components/StrictLocalWorkspaceHarness.js.map +1 -0
  40. package/lib-dist/components/blocks.d.ts.map +1 -0
  41. package/lib-dist/{blocks.js → components/blocks.js} +88 -13
  42. package/lib-dist/components/blocks.js.map +1 -0
  43. package/lib-dist/{navigation.d.ts → components/navigation.d.ts} +3 -1
  44. package/lib-dist/components/navigation.d.ts.map +1 -0
  45. package/lib-dist/components/navigation.js.map +1 -0
  46. package/lib-dist/{terra → components/terra}/Workspace.d.ts +1 -1
  47. package/lib-dist/components/terra/Workspace.d.ts.map +1 -0
  48. package/lib-dist/components/terra/Workspace.js +190 -0
  49. package/lib-dist/components/terra/Workspace.js.map +1 -0
  50. package/lib-dist/components/terra/editor/TerraContentEditor.d.ts +16 -0
  51. package/lib-dist/components/terra/editor/TerraContentEditor.d.ts.map +1 -0
  52. package/lib-dist/components/terra/editor/TerraContentEditor.js +358 -0
  53. package/lib-dist/components/terra/editor/TerraContentEditor.js.map +1 -0
  54. package/lib-dist/{terra → components/terra}/editor/_blocks.d.ts +3 -4
  55. package/lib-dist/components/terra/editor/_blocks.d.ts.map +1 -0
  56. package/lib-dist/components/terra/editor/_blocks.js +120 -0
  57. package/lib-dist/components/terra/editor/_blocks.js.map +1 -0
  58. package/lib-dist/components/terra/editor/docs/BlockContext.d.ts +7 -0
  59. package/lib-dist/components/terra/editor/docs/BlockContext.d.ts.map +1 -0
  60. package/lib-dist/components/terra/editor/docs/BlockContext.js +60 -0
  61. package/lib-dist/components/terra/editor/docs/BlockContext.js.map +1 -0
  62. package/lib-dist/components/terra/editor/docs/DocsAttachmentPicker.d.ts +12 -0
  63. package/lib-dist/components/terra/editor/docs/DocsAttachmentPicker.d.ts.map +1 -0
  64. package/lib-dist/components/terra/editor/docs/DocsAttachmentPicker.js +66 -0
  65. package/lib-dist/components/terra/editor/docs/DocsAttachmentPicker.js.map +1 -0
  66. package/lib-dist/components/terra/editor/docs/TerraToolbar.d.ts +12 -0
  67. package/lib-dist/components/terra/editor/docs/TerraToolbar.d.ts.map +1 -0
  68. package/lib-dist/components/terra/editor/docs/TerraToolbar.js +169 -0
  69. package/lib-dist/components/terra/editor/docs/TerraToolbar.js.map +1 -0
  70. package/lib-dist/{terra → components/terra}/editor/docs/_Callout.d.ts +1 -1
  71. package/lib-dist/components/terra/editor/docs/_Callout.d.ts.map +1 -0
  72. package/lib-dist/{terra → components/terra}/editor/docs/_Callout.js +11 -7
  73. package/lib-dist/components/terra/editor/docs/_Callout.js.map +1 -0
  74. package/lib-dist/components/terra/editor/docs/_CodeBlock.d.ts.map +1 -0
  75. package/lib-dist/{terra → components/terra}/editor/docs/_CodeBlock.js +111 -46
  76. package/lib-dist/components/terra/editor/docs/_CodeBlock.js.map +1 -0
  77. package/lib-dist/{terra → components/terra}/editor/docs/_DocsCode.d.ts +1 -1
  78. package/lib-dist/components/terra/editor/docs/_DocsCode.d.ts.map +1 -0
  79. package/lib-dist/{terra → components/terra}/editor/docs/_DocsCode.js +47 -14
  80. package/lib-dist/components/terra/editor/docs/_DocsCode.js.map +1 -0
  81. package/lib-dist/{terra → components/terra}/editor/docs/_DocsImage.d.ts +1 -1
  82. package/lib-dist/components/terra/editor/docs/_DocsImage.d.ts.map +1 -0
  83. package/lib-dist/components/terra/editor/docs/_DocsImage.js +62 -0
  84. package/lib-dist/components/terra/editor/docs/_DocsImage.js.map +1 -0
  85. package/lib-dist/{terra → components/terra}/editor/docs/_Embed.d.ts +3 -1
  86. package/lib-dist/components/terra/editor/docs/_Embed.d.ts.map +1 -0
  87. package/lib-dist/components/terra/editor/docs/_Embed.js +73 -0
  88. package/lib-dist/components/terra/editor/docs/_Embed.js.map +1 -0
  89. package/lib-dist/{terra → components/terra}/editor/docs/_Math.d.ts +2 -2
  90. package/lib-dist/components/terra/editor/docs/_Math.d.ts.map +1 -0
  91. package/lib-dist/{terra → components/terra}/editor/docs/_Math.js +29 -17
  92. package/lib-dist/components/terra/editor/docs/_Math.js.map +1 -0
  93. package/lib-dist/{terra → components/terra}/editor/docs/_Nodes.d.ts +1 -1
  94. package/lib-dist/components/terra/editor/docs/_Nodes.d.ts.map +1 -0
  95. package/lib-dist/components/terra/editor/docs/_Nodes.js +62 -0
  96. package/lib-dist/components/terra/editor/docs/_Nodes.js.map +1 -0
  97. package/lib-dist/{terra → components/terra}/editor/docs/_Raw.d.ts +1 -1
  98. package/lib-dist/components/terra/editor/docs/_Raw.d.ts.map +1 -0
  99. package/lib-dist/{terra → components/terra}/editor/docs/_Raw.js +8 -3
  100. package/lib-dist/components/terra/editor/docs/_Raw.js.map +1 -0
  101. package/lib-dist/{terra → components/terra}/editor/docs/_Table.d.ts +1 -1
  102. package/lib-dist/components/terra/editor/docs/_Table.d.ts.map +1 -0
  103. package/lib-dist/components/terra/editor/docs/_Table.js +99 -0
  104. package/lib-dist/components/terra/editor/docs/_Table.js.map +1 -0
  105. package/lib-dist/{terra → components/terra}/editor/docs/_Tabs.d.ts +1 -1
  106. package/lib-dist/components/terra/editor/docs/_Tabs.d.ts.map +1 -0
  107. package/lib-dist/{terra → components/terra}/editor/docs/_Tabs.js +36 -15
  108. package/lib-dist/components/terra/editor/docs/_Tabs.js.map +1 -0
  109. package/lib-dist/{terra → components/terra}/editor/docs/_TsDocs.d.ts +1 -1
  110. package/lib-dist/components/terra/editor/docs/_TsDocs.d.ts.map +1 -0
  111. package/lib-dist/{terra → components/terra}/editor/docs/_TsDocs.js +16 -14
  112. package/lib-dist/components/terra/editor/docs/_TsDocs.js.map +1 -0
  113. package/lib-dist/{terra → components/terra}/editor/docs/_math_inline.d.ts +1 -1
  114. package/lib-dist/components/terra/editor/docs/_math_inline.d.ts.map +1 -0
  115. package/lib-dist/{terra → components/terra}/editor/docs/_math_inline.js +2 -2
  116. package/lib-dist/components/terra/editor/docs/_math_inline.js.map +1 -0
  117. package/lib-dist/{terra → components/terra}/editor/docs/heading.d.ts +1 -1
  118. package/lib-dist/components/terra/editor/docs/heading.d.ts.map +1 -0
  119. package/lib-dist/{terra → components/terra}/editor/docs/heading.js +8 -5
  120. package/lib-dist/components/terra/editor/docs/heading.js.map +1 -0
  121. package/lib-dist/components/terra/editor/docs/index.d.ts.map +1 -0
  122. package/lib-dist/components/terra/editor/docs/index.js.map +1 -0
  123. package/lib-dist/components/terra/editor/terra-content.styles.d.ts +3 -0
  124. package/lib-dist/components/terra/editor/terra-content.styles.d.ts.map +1 -0
  125. package/lib-dist/components/terra/editor/terra-content.styles.js +3 -0
  126. package/lib-dist/components/terra/editor/terra-content.styles.js.map +1 -0
  127. package/lib-dist/{terra → components/terra}/editor/types.d.ts +2 -2
  128. package/lib-dist/components/terra/editor/types.d.ts.map +1 -0
  129. package/lib-dist/{terra → components/terra}/editor/types.js +1 -1
  130. package/lib-dist/components/terra/editor/types.js.map +1 -0
  131. package/lib-dist/{terra → components/terra}/flow/Nodes.d.ts +2 -3
  132. package/lib-dist/components/terra/flow/Nodes.d.ts.map +1 -0
  133. package/lib-dist/{terra → components/terra}/flow/Nodes.js +213 -106
  134. package/lib-dist/components/terra/flow/Nodes.js.map +1 -0
  135. package/lib-dist/{terra → components/terra}/flow/_chrome.d.ts +7 -9
  136. package/lib-dist/components/terra/flow/_chrome.d.ts.map +1 -0
  137. package/lib-dist/{terra → components/terra}/flow/_chrome.js +329 -118
  138. package/lib-dist/components/terra/flow/_chrome.js.map +1 -0
  139. package/lib-dist/components/terra/flow/menuContext.d.ts.map +1 -0
  140. package/lib-dist/components/terra/flow/menuContext.js.map +1 -0
  141. package/lib-dist/{terra → components/terra}/pages/docs/_attachments.d.ts +1 -1
  142. package/lib-dist/components/terra/pages/docs/_attachments.d.ts.map +1 -0
  143. package/lib-dist/{terra → components/terra}/pages/docs/_attachments.js +375 -131
  144. package/lib-dist/components/terra/pages/docs/_attachments.js.map +1 -0
  145. package/lib-dist/components/terra/pages/docs/_blocks.d.ts.map +1 -0
  146. package/lib-dist/{terra → components/terra}/pages/docs/_blocks.js +42 -31
  147. package/lib-dist/components/terra/pages/docs/_blocks.js.map +1 -0
  148. package/lib-dist/{terra → components/terra}/pages/docs/_editable.d.ts +2 -3
  149. package/lib-dist/components/terra/pages/docs/_editable.d.ts.map +1 -0
  150. package/lib-dist/{terra → components/terra}/pages/docs/_editable.js +82 -44
  151. package/lib-dist/components/terra/pages/docs/_editable.js.map +1 -0
  152. package/lib-dist/{terra → components/terra}/pages/docs/_export-dialog.d.ts +1 -1
  153. package/lib-dist/components/terra/pages/docs/_export-dialog.d.ts.map +1 -0
  154. package/lib-dist/{terra → components/terra}/pages/docs/_export-dialog.js +17 -17
  155. package/lib-dist/components/terra/pages/docs/_export-dialog.js.map +1 -0
  156. package/lib-dist/components/terra/pages/docs/_icons.d.ts.map +1 -0
  157. package/lib-dist/components/terra/pages/docs/_icons.js.map +1 -0
  158. package/lib-dist/{terra → components/terra}/pages/docs/_main.d.ts +10 -7
  159. package/lib-dist/components/terra/pages/docs/_main.d.ts.map +1 -0
  160. package/lib-dist/components/terra/pages/docs/_main.js +710 -0
  161. package/lib-dist/components/terra/pages/docs/_main.js.map +1 -0
  162. package/lib-dist/components/terra/pages/docs/_manage-attachments-dialog.d.ts +10 -0
  163. package/lib-dist/components/terra/pages/docs/_manage-attachments-dialog.d.ts.map +1 -0
  164. package/lib-dist/components/terra/pages/docs/_manage-attachments-dialog.js +597 -0
  165. package/lib-dist/components/terra/pages/docs/_manage-attachments-dialog.js.map +1 -0
  166. package/lib-dist/{terra → components/terra}/pages/docs/_sidebar.d.ts +3 -12
  167. package/lib-dist/components/terra/pages/docs/_sidebar.d.ts.map +1 -0
  168. package/lib-dist/components/terra/pages/docs/_sidebar.js +1437 -0
  169. package/lib-dist/components/terra/pages/docs/_sidebar.js.map +1 -0
  170. package/lib-dist/components/terra/pages/docs/_toc.d.ts +4 -0
  171. package/lib-dist/components/terra/pages/docs/_toc.d.ts.map +1 -0
  172. package/lib-dist/components/terra/pages/docs/_toc.js +212 -0
  173. package/lib-dist/components/terra/pages/docs/_toc.js.map +1 -0
  174. package/lib-dist/components/terra/pages/docs/_toolbar-find-replace.d.ts +15 -0
  175. package/lib-dist/components/terra/pages/docs/_toolbar-find-replace.d.ts.map +1 -0
  176. package/lib-dist/components/terra/pages/docs/_toolbar-find-replace.js +207 -0
  177. package/lib-dist/components/terra/pages/docs/_toolbar-find-replace.js.map +1 -0
  178. package/lib-dist/{terra → components/terra}/pages/docs/_toolbar.d.ts +3 -5
  179. package/lib-dist/components/terra/pages/docs/_toolbar.d.ts.map +1 -0
  180. package/lib-dist/{terra → components/terra}/pages/docs/_toolbar.js +318 -350
  181. package/lib-dist/components/terra/pages/docs/_toolbar.js.map +1 -0
  182. package/lib-dist/{terra → components/terra}/pages/docs/_tree.d.ts +1 -4
  183. package/lib-dist/components/terra/pages/docs/_tree.d.ts.map +1 -0
  184. package/lib-dist/{terra → components/terra}/pages/docs/_tree.js +219 -264
  185. package/lib-dist/components/terra/pages/docs/_tree.js.map +1 -0
  186. package/lib-dist/components/terra/pages/docs/use-block-nav.d.ts +5 -0
  187. package/lib-dist/components/terra/pages/docs/use-block-nav.d.ts.map +1 -0
  188. package/lib-dist/components/terra/pages/docs/use-block-nav.js +1306 -0
  189. package/lib-dist/components/terra/pages/docs/use-block-nav.js.map +1 -0
  190. package/lib-dist/components/terra/pages/docs/use-media-paste.d.ts +5 -0
  191. package/lib-dist/components/terra/pages/docs/use-media-paste.d.ts.map +1 -0
  192. package/lib-dist/components/terra/pages/docs/use-media-paste.js +391 -0
  193. package/lib-dist/components/terra/pages/docs/use-media-paste.js.map +1 -0
  194. package/lib-dist/components/terra/pages/docs/use-render-tripwire.d.ts +2 -0
  195. package/lib-dist/components/terra/pages/docs/use-render-tripwire.d.ts.map +1 -0
  196. package/lib-dist/components/terra/pages/docs/use-render-tripwire.js +25 -0
  197. package/lib-dist/components/terra/pages/docs/use-render-tripwire.js.map +1 -0
  198. package/lib-dist/{terra/runtime → components/terra}/ui.d.ts +2 -5
  199. package/lib-dist/components/terra/ui.d.ts.map +1 -0
  200. package/lib-dist/components/terra/ui.js +20 -0
  201. package/lib-dist/components/terra/ui.js.map +1 -0
  202. package/lib-dist/components/workspace-demo-fixture.d.ts +35 -0
  203. package/lib-dist/components/workspace-demo-fixture.d.ts.map +1 -0
  204. package/lib-dist/components/workspace-demo-fixture.js +820 -0
  205. package/lib-dist/components/workspace-demo-fixture.js.map +1 -0
  206. package/lib-dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  207. package/lib-dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  208. package/lib-dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  209. package/lib-dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  210. package/lib-dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  211. package/lib-dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  212. package/lib-dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  213. package/lib-dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  214. package/lib-dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  215. package/lib-dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  216. package/lib-dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  217. package/lib-dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  218. package/lib-dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  219. package/lib-dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  220. package/lib-dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  221. package/lib-dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  222. package/lib-dist/fonts/KaTeX_Main-Bold.woff +0 -0
  223. package/lib-dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  224. package/lib-dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  225. package/lib-dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  226. package/lib-dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  227. package/lib-dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  228. package/lib-dist/fonts/KaTeX_Main-Italic.woff +0 -0
  229. package/lib-dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  230. package/lib-dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  231. package/lib-dist/fonts/KaTeX_Main-Regular.woff +0 -0
  232. package/lib-dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  233. package/lib-dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  234. package/lib-dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  235. package/lib-dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  236. package/lib-dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  237. package/lib-dist/fonts/KaTeX_Math-Italic.woff +0 -0
  238. package/lib-dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  239. package/lib-dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  240. package/lib-dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  241. package/lib-dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  242. package/lib-dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  243. package/lib-dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  244. package/lib-dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  245. package/lib-dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  246. package/lib-dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  247. package/lib-dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  248. package/lib-dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  249. package/lib-dist/fonts/KaTeX_Script-Regular.woff +0 -0
  250. package/lib-dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  251. package/lib-dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  252. package/lib-dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  253. package/lib-dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  254. package/lib-dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  255. package/lib-dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  256. package/lib-dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  257. package/lib-dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  258. package/lib-dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  259. package/lib-dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  260. package/lib-dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  261. package/lib-dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  262. package/lib-dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  263. package/lib-dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  264. package/lib-dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  265. package/lib-dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  266. package/lib-dist/lib/astro.d.ts +8 -0
  267. package/lib-dist/lib/astro.d.ts.map +1 -0
  268. package/lib-dist/lib/astro.js +27 -0
  269. package/lib-dist/lib/astro.js.map +1 -0
  270. package/lib-dist/lib/docs-theme.d.ts +7 -0
  271. package/lib-dist/lib/docs-theme.d.ts.map +1 -0
  272. package/lib-dist/lib/docs-theme.js +51 -0
  273. package/lib-dist/lib/docs-theme.js.map +1 -0
  274. package/lib-dist/lib/host-runtime.d.ts.map +1 -0
  275. package/lib-dist/{host-runtime.js → lib/host-runtime.js} +4 -2
  276. package/lib-dist/lib/host-runtime.js.map +1 -0
  277. package/lib-dist/{host.d.ts → lib/host.d.ts} +20 -0
  278. package/lib-dist/lib/host.d.ts.map +1 -0
  279. package/lib-dist/lib/host.js.map +1 -0
  280. package/lib-dist/lib/index.d.ts +34 -0
  281. package/lib-dist/lib/index.d.ts.map +1 -0
  282. package/lib-dist/lib/index.js +27 -0
  283. package/lib-dist/lib/index.js.map +1 -0
  284. package/lib-dist/{markdown-model.d.ts → lib/markdown-model.d.ts} +3 -3
  285. package/lib-dist/lib/markdown-model.d.ts.map +1 -0
  286. package/lib-dist/lib/markdown-model.js +2030 -0
  287. package/lib-dist/lib/markdown-model.js.map +1 -0
  288. package/lib-dist/lib/markdown.d.ts +3 -0
  289. package/lib-dist/lib/markdown.d.ts.map +1 -0
  290. package/lib-dist/lib/markdown.js +222 -0
  291. package/lib-dist/lib/markdown.js.map +1 -0
  292. package/lib-dist/{schema.d.ts → lib/schema.d.ts} +55 -23
  293. package/lib-dist/lib/schema.d.ts.map +1 -0
  294. package/lib-dist/{schema.js → lib/schema.js} +26 -18
  295. package/lib-dist/lib/schema.js.map +1 -0
  296. package/lib-dist/{terra/pages/docs/_custom.d.ts → lib/terra/custom-components.d.ts} +2 -2
  297. package/lib-dist/lib/terra/custom-components.d.ts.map +1 -0
  298. package/lib-dist/{terra/pages/docs/_custom.js → lib/terra/custom-components.js} +1 -1
  299. package/lib-dist/lib/terra/custom-components.js.map +1 -0
  300. package/lib-dist/lib/terra/docs/archive.d.ts +3 -0
  301. package/lib-dist/lib/terra/docs/archive.d.ts.map +1 -0
  302. package/lib-dist/lib/terra/docs/archive.js +654 -0
  303. package/lib-dist/lib/terra/docs/archive.js.map +1 -0
  304. package/lib-dist/lib/terra/docs/assets.d.ts +26 -0
  305. package/lib-dist/lib/terra/docs/assets.d.ts.map +1 -0
  306. package/lib-dist/lib/terra/docs/assets.js +74 -0
  307. package/lib-dist/lib/terra/docs/assets.js.map +1 -0
  308. package/lib-dist/lib/terra/docs/attachments.d.ts +4 -0
  309. package/lib-dist/lib/terra/docs/attachments.d.ts.map +1 -0
  310. package/lib-dist/lib/terra/docs/attachments.js +5 -0
  311. package/lib-dist/lib/terra/docs/attachments.js.map +1 -0
  312. package/lib-dist/lib/terra/docs/editor-dom.d.ts +50 -0
  313. package/lib-dist/lib/terra/docs/editor-dom.d.ts.map +1 -0
  314. package/lib-dist/lib/terra/docs/editor-dom.js +236 -0
  315. package/lib-dist/lib/terra/docs/editor-dom.js.map +1 -0
  316. package/lib-dist/lib/terra/docs/mutations.d.ts +10 -0
  317. package/lib-dist/lib/terra/docs/mutations.d.ts.map +1 -0
  318. package/lib-dist/lib/terra/docs/mutations.js +105 -0
  319. package/lib-dist/lib/terra/docs/mutations.js.map +1 -0
  320. package/lib-dist/lib/terra/docs/navigation.d.ts +6 -0
  321. package/lib-dist/lib/terra/docs/navigation.d.ts.map +1 -0
  322. package/lib-dist/lib/terra/docs/navigation.js +21 -0
  323. package/lib-dist/lib/terra/docs/navigation.js.map +1 -0
  324. package/lib-dist/lib/terra/docs/state.d.ts +185 -0
  325. package/lib-dist/lib/terra/docs/state.d.ts.map +1 -0
  326. package/lib-dist/lib/terra/docs/state.js +254 -0
  327. package/lib-dist/lib/terra/docs/state.js.map +1 -0
  328. package/lib-dist/lib/terra/docs/toolbar.d.ts +11 -0
  329. package/lib-dist/lib/terra/docs/toolbar.d.ts.map +1 -0
  330. package/lib-dist/lib/terra/docs/toolbar.js +41 -0
  331. package/lib-dist/lib/terra/docs/toolbar.js.map +1 -0
  332. package/lib-dist/lib/terra/docs/tree.d.ts +15 -0
  333. package/lib-dist/lib/terra/docs/tree.d.ts.map +1 -0
  334. package/lib-dist/lib/terra/docs/tree.js +61 -0
  335. package/lib-dist/lib/terra/docs/tree.js.map +1 -0
  336. package/lib-dist/{terra/pages/docs/_helpers.d.ts → lib/terra/docs/workspace.d.ts} +6 -8
  337. package/lib-dist/lib/terra/docs/workspace.d.ts.map +1 -0
  338. package/lib-dist/{terra/pages/docs/_helpers.js → lib/terra/docs/workspace.js} +39 -28
  339. package/lib-dist/lib/terra/docs/workspace.js.map +1 -0
  340. package/lib-dist/lib/terra/flow/_layout.d.ts.map +1 -0
  341. package/lib-dist/{terra → lib/terra}/flow/_layout.js +16 -6
  342. package/lib-dist/lib/terra/flow/_layout.js.map +1 -0
  343. package/lib-dist/{terra → lib/terra}/flow/powerSource.d.ts +1 -2
  344. package/lib-dist/lib/terra/flow/powerSource.d.ts.map +1 -0
  345. package/lib-dist/{terra → lib/terra}/flow/powerSource.js +10 -4
  346. package/lib-dist/lib/terra/flow/powerSource.js.map +1 -0
  347. package/lib-dist/{terra → lib/terra}/regex.mjs +11 -6
  348. package/lib-dist/lib/terra/runtime/action-proxy.d.ts +45 -0
  349. package/lib-dist/lib/terra/runtime/action-proxy.d.ts.map +1 -0
  350. package/lib-dist/{terra → lib/terra}/runtime/action-proxy.js +1 -1
  351. package/lib-dist/lib/terra/runtime/action-proxy.js.map +1 -0
  352. package/lib-dist/lib/terra/runtime/content/block-jsx.d.ts +23 -0
  353. package/lib-dist/lib/terra/runtime/content/block-jsx.d.ts.map +1 -0
  354. package/lib-dist/lib/terra/runtime/content/block-jsx.js +225 -0
  355. package/lib-dist/lib/terra/runtime/content/block-jsx.js.map +1 -0
  356. package/lib-dist/lib/terra/runtime/content/document-markdown.d.ts +41 -0
  357. package/lib-dist/lib/terra/runtime/content/document-markdown.d.ts.map +1 -0
  358. package/lib-dist/lib/terra/runtime/content/document-markdown.js +536 -0
  359. package/lib-dist/lib/terra/runtime/content/document-markdown.js.map +1 -0
  360. package/lib-dist/lib/terra/runtime/content/markdown.d.ts +109 -0
  361. package/lib-dist/lib/terra/runtime/content/markdown.d.ts.map +1 -0
  362. package/lib-dist/lib/terra/runtime/content/markdown.js +428 -0
  363. package/lib-dist/lib/terra/runtime/content/markdown.js.map +1 -0
  364. package/lib-dist/lib/terra/runtime/content.d.ts.map +1 -0
  365. package/lib-dist/{terra → lib/terra}/runtime/content.js +147 -62
  366. package/lib-dist/lib/terra/runtime/content.js.map +1 -0
  367. package/lib-dist/lib/terra/runtime/leaf.d.ts.map +1 -0
  368. package/lib-dist/{terra → lib/terra}/runtime/leaf.js +1 -1
  369. package/lib-dist/lib/terra/runtime/leaf.js.map +1 -0
  370. package/lib-dist/lib/terra/runtime/nodes.d.ts.map +1 -0
  371. package/lib-dist/{terra → lib/terra}/runtime/nodes.js +103 -31
  372. package/lib-dist/lib/terra/runtime/nodes.js.map +1 -0
  373. package/lib-dist/{terra → lib/terra}/runtime/runtime.d.ts +8 -2
  374. package/lib-dist/lib/terra/runtime/runtime.d.ts.map +1 -0
  375. package/lib-dist/lib/terra/runtime/runtime.js +86 -0
  376. package/lib-dist/lib/terra/runtime/runtime.js.map +1 -0
  377. package/lib-dist/lib/terra/runtime/shared.d.ts.map +1 -0
  378. package/lib-dist/{terra → lib/terra}/runtime/shared.js +56 -11
  379. package/lib-dist/lib/terra/runtime/shared.js.map +1 -0
  380. package/lib-dist/lib/terra/runtime/types.d.ts +529 -0
  381. package/lib-dist/lib/terra/runtime/types.d.ts.map +1 -0
  382. package/lib-dist/{terra → lib/terra}/runtime/types.js +28 -2
  383. package/lib-dist/lib/terra/runtime/types.js.map +1 -0
  384. package/lib-dist/lib/workspace-types.d.ts +32 -0
  385. package/lib-dist/lib/workspace-types.d.ts.map +1 -0
  386. package/lib-dist/lib/workspace-types.js +2 -0
  387. package/lib-dist/lib/workspace-types.js.map +1 -0
  388. package/lib-dist/style.css +237 -1
  389. package/package.json +63 -38
  390. package/site/astro.config.mjs +67 -0
  391. package/site/docs-content-plugin.mjs +62 -0
  392. package/site/src/components/DocsSiteSearch.tsx +108 -0
  393. package/site/src/lib/catalog.ts +151 -0
  394. package/site/src/pages/404.astro +38 -0
  395. package/site/src/pages/[...slug].astro +49 -0
  396. package/site/src/styles/search.css +56 -0
  397. package/src/components/NotFound.astro +6 -0
  398. package/src/components/NotFound.tsx +48 -0
  399. package/src/{SiteLayout.astro → components/SiteLayout.astro} +17 -5
  400. package/src/{navigation.tsx → components/navigation.tsx} +3 -1
  401. package/lib-dist/Docs.d.ts.map +0 -1
  402. package/lib-dist/Docs.js +0 -60
  403. package/lib-dist/Docs.js.map +0 -1
  404. package/lib-dist/LocalDocsWorkspace.d.ts.map +0 -1
  405. package/lib-dist/LocalDocsWorkspace.js.map +0 -1
  406. package/lib-dist/SiteLayout.d.ts +0 -30
  407. package/lib-dist/SiteLayout.d.ts.map +0 -1
  408. package/lib-dist/SiteLayout.js +0 -34
  409. package/lib-dist/SiteLayout.js.map +0 -1
  410. package/lib-dist/StaticWorkspace.d.ts.map +0 -1
  411. package/lib-dist/StaticWorkspace.js.map +0 -1
  412. package/lib-dist/_Toolbar.d.ts +0 -7
  413. package/lib-dist/_Toolbar.d.ts.map +0 -1
  414. package/lib-dist/_Toolbar.js +0 -85
  415. package/lib-dist/_Toolbar.js.map +0 -1
  416. package/lib-dist/blocks.d.ts.map +0 -1
  417. package/lib-dist/blocks.js.map +0 -1
  418. package/lib-dist/docs-catalog.d.ts +0 -5
  419. package/lib-dist/docs-catalog.d.ts.map +0 -1
  420. package/lib-dist/docs-catalog.js +0 -38
  421. package/lib-dist/docs-catalog.js.map +0 -1
  422. package/lib-dist/docs-style.css +0 -31
  423. package/lib-dist/fonts/README.md +0 -5
  424. package/lib-dist/host-runtime.d.ts.map +0 -1
  425. package/lib-dist/host-runtime.js.map +0 -1
  426. package/lib-dist/host.d.ts.map +0 -1
  427. package/lib-dist/host.js.map +0 -1
  428. package/lib-dist/index.d.ts +0 -35
  429. package/lib-dist/index.d.ts.map +0 -1
  430. package/lib-dist/index.js +0 -28
  431. package/lib-dist/index.js.map +0 -1
  432. package/lib-dist/markdown-model.d.ts.map +0 -1
  433. package/lib-dist/markdown-model.js +0 -181
  434. package/lib-dist/markdown-model.js.map +0 -1
  435. package/lib-dist/markdown.d.ts +0 -3
  436. package/lib-dist/markdown.d.ts.map +0 -1
  437. package/lib-dist/markdown.js +0 -83
  438. package/lib-dist/markdown.js.map +0 -1
  439. package/lib-dist/navigation.d.ts.map +0 -1
  440. package/lib-dist/navigation.js.map +0 -1
  441. package/lib-dist/schema.d.ts.map +0 -1
  442. package/lib-dist/schema.js.map +0 -1
  443. package/lib-dist/terra/Workspace.d.ts.map +0 -1
  444. package/lib-dist/terra/Workspace.js +0 -9
  445. package/lib-dist/terra/Workspace.js.map +0 -1
  446. package/lib-dist/terra/editor/TerraContentEditor.d.ts +0 -10
  447. package/lib-dist/terra/editor/TerraContentEditor.d.ts.map +0 -1
  448. package/lib-dist/terra/editor/TerraContentEditor.js +0 -47
  449. package/lib-dist/terra/editor/TerraContentEditor.js.map +0 -1
  450. package/lib-dist/terra/editor/_blocks.d.ts.map +0 -1
  451. package/lib-dist/terra/editor/_blocks.js +0 -110
  452. package/lib-dist/terra/editor/_blocks.js.map +0 -1
  453. package/lib-dist/terra/editor/docs/_Callout.d.ts.map +0 -1
  454. package/lib-dist/terra/editor/docs/_Callout.js.map +0 -1
  455. package/lib-dist/terra/editor/docs/_CodeBlock.d.ts.map +0 -1
  456. package/lib-dist/terra/editor/docs/_CodeBlock.js.map +0 -1
  457. package/lib-dist/terra/editor/docs/_DocsCode.d.ts.map +0 -1
  458. package/lib-dist/terra/editor/docs/_DocsCode.js.map +0 -1
  459. package/lib-dist/terra/editor/docs/_DocsImage.d.ts.map +0 -1
  460. package/lib-dist/terra/editor/docs/_DocsImage.js +0 -62
  461. package/lib-dist/terra/editor/docs/_DocsImage.js.map +0 -1
  462. package/lib-dist/terra/editor/docs/_Embed.d.ts.map +0 -1
  463. package/lib-dist/terra/editor/docs/_Embed.js +0 -27
  464. package/lib-dist/terra/editor/docs/_Embed.js.map +0 -1
  465. package/lib-dist/terra/editor/docs/_Math.d.ts.map +0 -1
  466. package/lib-dist/terra/editor/docs/_Math.js.map +0 -1
  467. package/lib-dist/terra/editor/docs/_Nodes.d.ts.map +0 -1
  468. package/lib-dist/terra/editor/docs/_Nodes.js +0 -52
  469. package/lib-dist/terra/editor/docs/_Nodes.js.map +0 -1
  470. package/lib-dist/terra/editor/docs/_Raw.d.ts.map +0 -1
  471. package/lib-dist/terra/editor/docs/_Raw.js.map +0 -1
  472. package/lib-dist/terra/editor/docs/_Table.d.ts.map +0 -1
  473. package/lib-dist/terra/editor/docs/_Table.js +0 -71
  474. package/lib-dist/terra/editor/docs/_Table.js.map +0 -1
  475. package/lib-dist/terra/editor/docs/_Tabs.d.ts.map +0 -1
  476. package/lib-dist/terra/editor/docs/_Tabs.js.map +0 -1
  477. package/lib-dist/terra/editor/docs/_TsDocs.d.ts.map +0 -1
  478. package/lib-dist/terra/editor/docs/_TsDocs.js.map +0 -1
  479. package/lib-dist/terra/editor/docs/_math_inline.d.ts.map +0 -1
  480. package/lib-dist/terra/editor/docs/_math_inline.js.map +0 -1
  481. package/lib-dist/terra/editor/docs/heading.d.ts.map +0 -1
  482. package/lib-dist/terra/editor/docs/heading.js.map +0 -1
  483. package/lib-dist/terra/editor/docs/index.d.ts.map +0 -1
  484. package/lib-dist/terra/editor/docs/index.js.map +0 -1
  485. package/lib-dist/terra/editor/types.d.ts.map +0 -1
  486. package/lib-dist/terra/editor/types.js.map +0 -1
  487. package/lib-dist/terra/flow/Nodes.d.ts.map +0 -1
  488. package/lib-dist/terra/flow/Nodes.js.map +0 -1
  489. package/lib-dist/terra/flow/_chrome.d.ts.map +0 -1
  490. package/lib-dist/terra/flow/_chrome.js.map +0 -1
  491. package/lib-dist/terra/flow/_layout.d.ts.map +0 -1
  492. package/lib-dist/terra/flow/_layout.js.map +0 -1
  493. package/lib-dist/terra/flow/menuContext.d.ts.map +0 -1
  494. package/lib-dist/terra/flow/menuContext.js.map +0 -1
  495. package/lib-dist/terra/flow/powerSource.d.ts.map +0 -1
  496. package/lib-dist/terra/flow/powerSource.js.map +0 -1
  497. package/lib-dist/terra/pages/docs/_attachments.d.ts.map +0 -1
  498. package/lib-dist/terra/pages/docs/_attachments.js.map +0 -1
  499. package/lib-dist/terra/pages/docs/_blocks.d.ts.map +0 -1
  500. package/lib-dist/terra/pages/docs/_blocks.js.map +0 -1
  501. package/lib-dist/terra/pages/docs/_custom.d.ts.map +0 -1
  502. package/lib-dist/terra/pages/docs/_custom.js.map +0 -1
  503. package/lib-dist/terra/pages/docs/_editable.d.ts.map +0 -1
  504. package/lib-dist/terra/pages/docs/_editable.js.map +0 -1
  505. package/lib-dist/terra/pages/docs/_export-dialog.d.ts.map +0 -1
  506. package/lib-dist/terra/pages/docs/_export-dialog.js.map +0 -1
  507. package/lib-dist/terra/pages/docs/_helpers.d.ts.map +0 -1
  508. package/lib-dist/terra/pages/docs/_helpers.js.map +0 -1
  509. package/lib-dist/terra/pages/docs/_icons.d.ts.map +0 -1
  510. package/lib-dist/terra/pages/docs/_icons.js.map +0 -1
  511. package/lib-dist/terra/pages/docs/_main.d.ts.map +0 -1
  512. package/lib-dist/terra/pages/docs/_main.js +0 -1959
  513. package/lib-dist/terra/pages/docs/_main.js.map +0 -1
  514. package/lib-dist/terra/pages/docs/_sidebar.d.ts.map +0 -1
  515. package/lib-dist/terra/pages/docs/_sidebar.js +0 -2450
  516. package/lib-dist/terra/pages/docs/_sidebar.js.map +0 -1
  517. package/lib-dist/terra/pages/docs/_toolbar.d.ts.map +0 -1
  518. package/lib-dist/terra/pages/docs/_toolbar.js.map +0 -1
  519. package/lib-dist/terra/pages/docs/_tree.d.ts.map +0 -1
  520. package/lib-dist/terra/pages/docs/_tree.js.map +0 -1
  521. package/lib-dist/terra/runtime/action-proxy.d.ts +0 -5
  522. package/lib-dist/terra/runtime/action-proxy.d.ts.map +0 -1
  523. package/lib-dist/terra/runtime/action-proxy.js.map +0 -1
  524. package/lib-dist/terra/runtime/content.d.ts.map +0 -1
  525. package/lib-dist/terra/runtime/content.js.map +0 -1
  526. package/lib-dist/terra/runtime/leaf.d.ts.map +0 -1
  527. package/lib-dist/terra/runtime/leaf.js.map +0 -1
  528. package/lib-dist/terra/runtime/nodes.d.ts.map +0 -1
  529. package/lib-dist/terra/runtime/nodes.js.map +0 -1
  530. package/lib-dist/terra/runtime/runtime.d.ts.map +0 -1
  531. package/lib-dist/terra/runtime/runtime.js +0 -50
  532. package/lib-dist/terra/runtime/runtime.js.map +0 -1
  533. package/lib-dist/terra/runtime/shared.d.ts.map +0 -1
  534. package/lib-dist/terra/runtime/shared.js.map +0 -1
  535. package/lib-dist/terra/runtime/types.d.ts +0 -266
  536. package/lib-dist/terra/runtime/types.d.ts.map +0 -1
  537. package/lib-dist/terra/runtime/types.js.map +0 -1
  538. package/lib-dist/terra/runtime/ui.d.ts.map +0 -1
  539. package/lib-dist/terra/runtime/ui.js +0 -16
  540. package/lib-dist/terra/runtime/ui.js.map +0 -1
  541. package/lib-dist/workspace.d.ts +0 -78
  542. package/lib-dist/workspace.d.ts.map +0 -1
  543. package/lib-dist/workspace.js +0 -151
  544. package/lib-dist/workspace.js.map +0 -1
  545. package/src/style.css +0 -733
  546. /package/lib-dist/{fonts → assets/fonts}/Avara-Bold.woff2 +0 -0
  547. /package/lib-dist/{fonts → assets/fonts}/Avara-BoldItalic.woff2 +0 -0
  548. /package/lib-dist/{fonts → assets/fonts}/OFL-1.1.txt +0 -0
  549. /package/lib-dist/{blocks.d.ts → components/blocks.d.ts} +0 -0
  550. /package/lib-dist/{navigation.js → components/navigation.js} +0 -0
  551. /package/lib-dist/{terra → components/terra}/editor/docs/_CodeBlock.d.ts +0 -0
  552. /package/lib-dist/{terra → components/terra}/editor/docs/index.d.ts +0 -0
  553. /package/lib-dist/{terra → components/terra}/editor/docs/index.js +0 -0
  554. /package/lib-dist/{terra → components/terra}/flow/menuContext.d.ts +0 -0
  555. /package/lib-dist/{terra → components/terra}/flow/menuContext.js +0 -0
  556. /package/lib-dist/{terra → components/terra}/pages/docs/_blocks.d.ts +0 -0
  557. /package/lib-dist/{terra → components/terra}/pages/docs/_icons.d.ts +0 -0
  558. /package/lib-dist/{terra → components/terra}/pages/docs/_icons.js +0 -0
  559. /package/lib-dist/{host-runtime.d.ts → lib/host-runtime.d.ts} +0 -0
  560. /package/lib-dist/{host.js → lib/host.js} +0 -0
  561. /package/lib-dist/{terra → lib/terra}/flow/_layout.d.ts +0 -0
  562. /package/lib-dist/{terra → lib/terra}/runtime/content.d.ts +0 -0
  563. /package/lib-dist/{terra → lib/terra}/runtime/leaf.d.ts +0 -0
  564. /package/lib-dist/{terra → lib/terra}/runtime/nodes.d.ts +0 -0
  565. /package/lib-dist/{terra → lib/terra}/runtime/shared.d.ts +0 -0
package/package.json CHANGED
@@ -1,53 +1,90 @@
1
1
  {
2
2
  "name": "@terra-symposium/docs",
3
- "version": "0.1.17",
4
- "description": "Reusable React document editor and viewer.",
5
- "repository": "https://github.com/Terra-Symposium/docs",
3
+ "version": "0.1.72",
4
+ "description": "Terra Docs workspace and Markdown site generator.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/Terra-Symposium/docs.git"
8
+ },
6
9
  "type": "module",
10
+ "packageManager": "pnpm@10.30.3",
7
11
  "engines": {
8
12
  "node": ">=24.12.0"
9
13
  },
10
14
  "files": [
11
15
  "lib-dist",
12
- "src/style.css",
13
- "src/navigation.tsx",
14
- "src/SiteLayout.astro"
16
+ "bin",
17
+ "site",
18
+ "src/components/navigation.tsx",
19
+ "src/components/SiteLayout.astro",
20
+ "src/components/NotFound.astro",
21
+ "src/components/NotFound.tsx"
15
22
  ],
16
23
  "exports": {
17
24
  ".": {
18
- "types": "./lib-dist/index.d.ts",
19
- "import": "./lib-dist/index.js"
25
+ "types": "./lib-dist/lib/index.d.ts",
26
+ "import": "./lib-dist/lib/index.js"
20
27
  },
21
28
  "./style.css": "./lib-dist/style.css",
22
- "./site-layout.astro": "./src/SiteLayout.astro"
29
+ "./astro": {
30
+ "types": "./lib-dist/lib/astro.d.ts",
31
+ "import": "./lib-dist/lib/astro.js"
32
+ },
33
+ "./local-workspace": {
34
+ "types": "./lib-dist/components/LocalDocsWorkspace.d.ts",
35
+ "import": "./lib-dist/components/LocalDocsWorkspace.js"
36
+ },
37
+ "./site-layout.astro": "./src/components/SiteLayout.astro",
38
+ "./not-found.astro": "./src/components/NotFound.astro"
23
39
  },
24
- "peerDependencies": {
25
- "@terra-symposium/styling": "^0.1.6",
26
- "react": "^19.0.0",
27
- "react-dom": "^19.0.0"
40
+ "bin": {
41
+ "terra-docs": "bin/terra-docs.mjs"
42
+ },
43
+ "scripts": {
44
+ "dev": "terra-quality-dev -- vite --host 127.0.0.1 --open",
45
+ "docs:dev": "pnpm build && node bin/terra-docs.mjs dev --title 'Terra Docs'",
46
+ "docs:build": "pnpm build && node bin/terra-docs.mjs build --title 'Terra Docs'",
47
+ "docs:preview": "pnpm docs:build && node bin/terra-docs.mjs preview --title 'Terra Docs'",
48
+ "dev:library": "tsc --watch",
49
+ "build": "rm -rf lib-dist && tsc && tailwindcss --postcss tailwind.postcss.config.cjs -c tailwind.docs.config.mjs -i src/styles/style.css -o lib-dist/style.css --minify && tailwindcss --postcss tailwind.postcss.config.cjs -c tailwind.docs.config.mjs -i src/styles/workspace.css -o lib-dist/workspace.css --minify && node scripts/copy-runtime.mjs",
50
+ "build:demo": "vite build",
51
+ "typecheck": "tsc --noEmit && tsc -p tsconfig.demo.json",
52
+ "lint": "eslint .",
53
+ "format": "prettier --write .",
54
+ "format:check": "prettier --check .",
55
+ "check": "pnpm run format:check && pnpm run lint && pnpm run typecheck",
56
+ "test": "pnpm build && node --test test/*.test.mjs",
57
+ "test:browser": "pnpm docs:build && node scripts/acquire-playwright-port.mjs && playwright test",
58
+ "test:report:slides": "node scripts/generate-screenshot-deck.mjs",
59
+ "prepare": "husky",
60
+ "changeset": "changeset",
61
+ "version-packages": "changeset version"
28
62
  },
29
63
  "devDependencies": {
30
- "@astrojs/react": "^7.1.0",
64
+ "@changesets/cli": "^3.0.3",
31
65
  "@eslint/js": "10.0.1",
32
66
  "@playwright/test": "^1.64.1",
67
+ "@terra-symposium/standards-reporting": "0.6.2",
33
68
  "@types/katex": "^0.16.8",
34
69
  "@types/node": "^24.19.2",
35
70
  "@types/react": "19.3.0",
36
71
  "@types/react-dom": "19.3.0",
37
- "@terra-symposium/styling": "file:vendor/terra-symposium-styling-0.1.6.tgz",
38
72
  "@types/sanitize-html": "^2.16.2",
39
- "tailwindcss": "^3.4.3",
73
+ "@terra-symposium/standards-quality": "2.1.0",
40
74
  "@vitejs/plugin-react": "6.1.2",
41
- "astro": "^7.4.2",
42
75
  "eslint": "10.13.0",
76
+ "husky": "^9.1.7",
77
+ "postcss": "8.5.31",
78
+ "postcss-import": "15.1.0",
43
79
  "prettier": "3.9.10",
44
- "react": "19.3.1",
45
- "react-dom": "19.3.1",
80
+ "tailwindcss": "^3.4.3",
46
81
  "typescript": "5.9.3",
47
82
  "typescript-eslint": "8.71.2",
48
83
  "vite": "8.3.4"
49
84
  },
50
85
  "dependencies": {
86
+ "@astrojs/mdx": "8.1.2",
87
+ "@astrojs/react": "^7.1.0",
51
88
  "@carbon/icons-react": "11.90.0",
52
89
  "@codemirror/commands": "^6.10.0",
53
90
  "@codemirror/lang-markdown": "^6.1.3",
@@ -63,31 +100,19 @@
63
100
  "@radix-ui/react-select": "2.4.1",
64
101
  "@uiw/codemirror-theme-github": "^4.25.9",
65
102
  "@xyflow/react": "^12.3.6",
103
+ "@terra-symposium/styling": "0.1.34",
104
+ "astro": "^7.4.2",
105
+ "jszip": "^3.10.1",
66
106
  "katex": "^0.19.1",
67
107
  "lexical": "^0.35.0",
68
108
  "marked": "^18.1.1",
69
109
  "nanostores": "^1.3.0",
70
110
  "pdf-lib": "^1.17.1",
111
+ "react": "^19.3.1",
112
+ "react-dom": "^19.3.1",
71
113
  "sanitize-html": "^2.18.1",
72
114
  "sonner": "^1.4.41",
73
- "jszip": "^3.10.1",
74
115
  "yaml": "^2.7.0"
75
116
  },
76
- "license": "Apache-2.0",
77
- "scripts": {
78
- "dev": "vite --host 127.0.0.1 --open",
79
- "docs:dev": "astro dev --host 127.0.0.1 --open",
80
- "docs:build": "pnpm build && astro build",
81
- "docs:preview": "astro preview --host 127.0.0.1",
82
- "dev:library": "tsc --watch",
83
- "build": "tsc && tailwindcss -c tailwind.docs.config.mjs -i src/style.css -o lib-dist/docs-style.css --minify && node scripts/copy-runtime.mjs",
84
- "build:demo": "vite build",
85
- "typecheck": "tsc --noEmit && tsc -p tsconfig.demo.json",
86
- "lint": "eslint .",
87
- "format": "prettier --write .",
88
- "format:check": "prettier --check .",
89
- "check": "pnpm run format:check && pnpm run lint && pnpm run typecheck",
90
- "test": "pnpm build && node --test test/*.test.mjs",
91
- "test:browser": "pnpm docs:build && playwright test"
92
- }
93
- }
117
+ "license": "Apache-2.0"
118
+ }
@@ -0,0 +1,67 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ import { resolve } from 'node:path';
3
+ import { readFileSync } from 'node:fs';
4
+ import { createRequire } from 'node:module';
5
+ import { defineConfig } from 'astro/config';
6
+ import mdx from '@astrojs/mdx';
7
+ import react from '@astrojs/react';
8
+ import { docsContentPlugin } from './docs-content-plugin.mjs';
9
+
10
+ const packageRoot = fileURLToPath(new URL('../', import.meta.url));
11
+ const requireFromPackage = createRequire(import.meta.url);
12
+ const projectRoot = process.env.TERRA_DOCS_ROOT ?? process.cwd();
13
+ const publicDir = resolve(projectRoot, '.terra-docs/public');
14
+ const outDir = resolve(projectRoot, process.env.TERRA_DOCS_OUT ?? 'docs-dist');
15
+ const site = process.env.TERRA_DOCS_SITE;
16
+ const projectManifest = (() => {
17
+ try {
18
+ return JSON.parse(readFileSync(resolve(projectRoot, 'package.json'), 'utf8'));
19
+ } catch {
20
+ return {};
21
+ }
22
+ })();
23
+
24
+ function packageExportAliases() {
25
+ if (!projectManifest.name || !projectManifest.exports) return [];
26
+ const escapeRegex = (value) => value.replace(/[|\\{}()[\]^$+?.]/g, '\\$&');
27
+ return Object.entries(projectManifest.exports).flatMap(([key, value]) => {
28
+ const target = typeof value === 'string' ? value : value?.import ?? value?.default;
29
+ if (!target?.startsWith('./')) return [];
30
+ const prefix = projectManifest.name + (key === '.' ? '' : key.slice(1));
31
+ if (key.includes('*')) {
32
+ const matcher = new RegExp(`^${escapeRegex(prefix).replace('*', '(.+)')}$`);
33
+ return [{ find: matcher, replacement: resolve(projectRoot, target.replace('*', '$1')) }];
34
+ }
35
+ return [{ find: new RegExp(`^${escapeRegex(prefix)}$`), replacement: resolve(projectRoot, target) }];
36
+ });
37
+ }
38
+
39
+ const packageDependencyResolver = {
40
+ name: 'terra-docs-package-dependencies',
41
+ enforce: 'pre',
42
+ resolveId(source) {
43
+ if (!/^(?:astro|@astrojs\/(?:mdx|react))(?:\/|$)/.test(source)) return null;
44
+ try {
45
+ return requireFromPackage.resolve(source);
46
+ } catch {
47
+ return null;
48
+ }
49
+ },
50
+ };
51
+
52
+ export default defineConfig({
53
+ root: projectRoot,
54
+ srcDir: resolve(packageRoot, 'site/src'),
55
+ publicDir,
56
+ outDir,
57
+ ...(site ? { site } : {}),
58
+ base: process.env.TERRA_DOCS_BASE ?? '/',
59
+ devToolbar: { enabled: false },
60
+ build: { format: 'directory' },
61
+ integrations: [react(), mdx()],
62
+ vite: {
63
+ plugins: [packageDependencyResolver, docsContentPlugin({ root: projectRoot, base: process.env.TERRA_DOCS_BASE ?? '/' })],
64
+ resolve: { alias: packageExportAliases() },
65
+ server: { fs: { allow: [projectRoot, packageRoot] } },
66
+ },
67
+ });
@@ -0,0 +1,62 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { extname, relative, resolve, sep } from 'node:path';
3
+
4
+ const markdownExtensions = new Set(['.md', '.mdx']);
5
+
6
+ function publicRoute(file, docsRoot, base) {
7
+ const path = relative(docsRoot, file).split(sep).join('/').replace(/\.(?:md|mdx)$/i, '');
8
+ const route = path.replace(/(?:^|\/)index$/i, '').replace(/^\/+|\/+$/g, '');
9
+ return `${base}${route ? `${route}/` : ''}`;
10
+ }
11
+
12
+ function rewriteTarget(rawTarget, sourceFile, docsRoot, base) {
13
+ const target = rawTarget.trim();
14
+ if (!target || /^(?:[a-z][a-z\d+.-]*:|\/\/|\/|#)/i.test(target)) return rawTarget;
15
+ const match = /^(<[^>]+>|[^\s]+)([\s\S]*)$/.exec(target);
16
+ if (!match) return rawTarget;
17
+ const bracketed = match[1].startsWith('<') && match[1].endsWith('>');
18
+ const pathname = bracketed ? match[1].slice(1, -1) : match[1];
19
+ const suffix = match[2];
20
+ const [filePath, ...hashParts] = pathname.split('#');
21
+ const [cleanPath, ...queryParts] = filePath.split('?');
22
+ let resolvedPath;
23
+ try {
24
+ resolvedPath = resolve(sourceFile, '..', decodeURIComponent(cleanPath));
25
+ } catch {
26
+ return rawTarget;
27
+ }
28
+ const relativePath = relative(docsRoot, resolvedPath);
29
+ if (relativePath.startsWith(`..${sep}`) || relativePath === '..' || !existsSync(resolvedPath)) return rawTarget;
30
+ const extension = extname(resolvedPath).toLowerCase();
31
+ const fragment = hashParts.length ? `#${hashParts.join('#')}` : '';
32
+ const query = queryParts.length ? `?${queryParts.join('?')}` : '';
33
+ const rewritten = markdownExtensions.has(extension)
34
+ ? publicRoute(resolvedPath, docsRoot, base)
35
+ : `${base}_terra-docs/assets/${relativePath.split(sep).join('/')}`;
36
+ return `${bracketed ? `<${rewritten}${query}${fragment}>` : `${rewritten}${query}${fragment}`}${suffix}`;
37
+ }
38
+
39
+ function mapOutsideCode(source, callback) {
40
+ const sections = source.split(/(```[\s\S]*?```|~~~[\s\S]*?~~~)/g);
41
+ return sections.map((section, index) => index % 2 ? section : callback(section)).join('');
42
+ }
43
+
44
+ export function docsContentPlugin({ root, base }) {
45
+ const docsRoot = resolve(root, 'docs');
46
+ return {
47
+ name: 'terra-docs-content-assets',
48
+ enforce: 'pre',
49
+ transform(source, id) {
50
+ if (id.includes('?') || !markdownExtensions.has(extname(id).toLowerCase())) return null;
51
+ const sourceFile = resolve(id);
52
+ const relativePath = relative(docsRoot, sourceFile);
53
+ if (relativePath.startsWith(`..${sep}`) || relativePath === '..') return null;
54
+ const withMarkdownLinks = source.replace(/(!?\[[^\]]*\]\()([^)]+)(\))/g, (_full, before, target, after) =>
55
+ `${before}${rewriteTarget(target, sourceFile, docsRoot, base)}${after}`,
56
+ );
57
+ return mapOutsideCode(withMarkdownLinks, (section) => section.replace(/\b(src|href)=(['"])(.*?)\2/g, (full, attribute, quote, target) =>
58
+ `${attribute}=${quote}${rewriteTarget(target, sourceFile, docsRoot, base)}${quote}`,
59
+ ));
60
+ },
61
+ };
62
+ }
@@ -0,0 +1,108 @@
1
+ import { useEffect, useMemo, useRef, useState } from 'react';
2
+
3
+ type SearchDocument = {
4
+ title: string;
5
+ description: string;
6
+ href: string;
7
+ text: string;
8
+ };
9
+
10
+ type Props = { base?: string };
11
+
12
+ function excerpt(text: string, query: string): string {
13
+ const normalized = text.replace(/\s+/g, ' ').trim();
14
+ const offset = normalized.toLowerCase().indexOf(query.toLowerCase());
15
+ const start = Math.max(0, offset - 72);
16
+ const end = Math.min(normalized.length, start + 190);
17
+ return `${start > 0 ? '…' : ''}${normalized.slice(start, end)}${end < normalized.length ? '…' : ''}`;
18
+ }
19
+
20
+ export function DocsSiteSearch({ base = '/' }: Props) {
21
+ const dialog = useRef<HTMLDialogElement>(null);
22
+ const input = useRef<HTMLInputElement>(null);
23
+ const [query, setQuery] = useState('');
24
+ const [documents, setDocuments] = useState<SearchDocument[]>([]);
25
+ const [loaded, setLoaded] = useState(false);
26
+ const [failed, setFailed] = useState(false);
27
+ const [opened, setOpened] = useState(false);
28
+ const normalizedBase = base.endsWith('/') ? base : `${base}/`;
29
+
30
+ const open = () => {
31
+ if (!dialog.current?.open) dialog.current?.showModal();
32
+ setOpened(true);
33
+ window.setTimeout(() => input.current?.focus(), 0);
34
+ };
35
+
36
+ useEffect(() => {
37
+ const onKeyDown = (event: KeyboardEvent) => {
38
+ if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'k') {
39
+ event.preventDefault();
40
+ open();
41
+ } else if (event.key === '/' && !/input|textarea|select/i.test((event.target as HTMLElement)?.tagName ?? '')) {
42
+ event.preventDefault();
43
+ open();
44
+ }
45
+ };
46
+ document.addEventListener('keydown', onKeyDown);
47
+ return () => document.removeEventListener('keydown', onKeyDown);
48
+ }, []);
49
+
50
+ useEffect(() => {
51
+ if (!opened || loaded) return;
52
+ fetch(`${normalizedBase}_terra-docs/search-index.json`)
53
+ .then((response) => {
54
+ if (!response.ok) throw new Error(`Search index returned ${response.status}`);
55
+ return response.json() as Promise<SearchDocument[]>;
56
+ })
57
+ .then((data) => {
58
+ setDocuments(data);
59
+ setLoaded(true);
60
+ })
61
+ .catch(() => setFailed(true));
62
+ }, [loaded, normalizedBase, opened]);
63
+
64
+ const results = useMemo(() => {
65
+ const terms = query.toLowerCase().trim().split(/\s+/).filter(Boolean);
66
+ if (!terms.length) return [];
67
+ return documents
68
+ .map((document) => {
69
+ const title = document.title.toLowerCase();
70
+ const text = `${document.description} ${document.text}`.toLowerCase();
71
+ const matches = terms.filter((term) => title.includes(term) || text.includes(term));
72
+ const score = matches.length * 10 + terms.filter((term) => title.includes(term)).length * 5;
73
+ return { document, score };
74
+ })
75
+ .filter((result) => result.score > 0)
76
+ .sort((left, right) => right.score - left.score || left.document.title.localeCompare(right.document.title))
77
+ .slice(0, 10);
78
+ }, [documents, query]);
79
+
80
+ return (
81
+ <div className="terra-docs-search">
82
+ <button className="terra-docs-search-trigger" type="button" onClick={open} aria-label="Search documentation">
83
+ <span aria-hidden="true">⌕</span><span>Search docs</span><kbd>⌘ K</kbd>
84
+ </button>
85
+ <dialog className="terra-docs-search-dialog" ref={dialog} onClose={() => setQuery('')}>
86
+ <div className="terra-docs-search-panel">
87
+ <label className="terra-docs-search-input-row">
88
+ <span aria-hidden="true">⌕</span>
89
+ <input ref={input} value={query} onChange={(event) => setQuery(event.currentTarget.value)} placeholder="Search documentation…" />
90
+ <button type="button" onClick={() => dialog.current?.close()} aria-label="Close search">Esc</button>
91
+ </label>
92
+ <div className="terra-docs-search-results" aria-live="polite">
93
+ {failed ? <p>Search is unavailable right now.</p> : null}
94
+ {!loaded && !failed ? <p>Loading search…</p> : null}
95
+ {loaded && query.trim() && results.length === 0 ? <p>No matching pages.</p> : null}
96
+ {results.map(({ document }) => (
97
+ <a key={document.href} href={document.href} onClick={() => dialog.current?.close()}>
98
+ <strong>{document.title}</strong>
99
+ {document.description ? <span>{document.description}</span> : null}
100
+ <small>{excerpt(document.text, query.trim().split(/\s+/)[0] ?? query)}</small>
101
+ </a>
102
+ ))}
103
+ </div>
104
+ </div>
105
+ </dialog>
106
+ </div>
107
+ );
108
+ }
@@ -0,0 +1,151 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ import type { DocsNavNode } from '../../../src/components/navigation.js';
4
+
5
+ type SidebarFrontmatter = {
6
+ label?: string;
7
+ order?: number;
8
+ hidden?: boolean;
9
+ };
10
+
11
+ type DocsFrontmatter = {
12
+ title?: string;
13
+ description?: string;
14
+ hue?: number | null;
15
+ label?: string;
16
+ order?: number;
17
+ hidden?: boolean;
18
+ visibility?: 'visible' | 'hidden';
19
+ sidebar?: SidebarFrontmatter;
20
+ };
21
+
22
+ type ContentModule = {
23
+ Content?: unknown;
24
+ default?: unknown;
25
+ frontmatter?: DocsFrontmatter;
26
+ };
27
+
28
+ export type SitePage = {
29
+ file: string;
30
+ slug: string;
31
+ title: string;
32
+ sidebarLabel?: string;
33
+ description: string;
34
+ hue?: number | null;
35
+ hidden: boolean;
36
+ order: number;
37
+ content: unknown;
38
+ markdown: string;
39
+ };
40
+
41
+ const modules = import.meta.glob<ContentModule>('/docs/**/*.{md,mdx}', { eager: true });
42
+ const sources = import.meta.glob<string>('/docs/**/*.{md,mdx}', {
43
+ query: '?raw',
44
+ import: 'default',
45
+ eager: true,
46
+ });
47
+ const base = import.meta.env.BASE_URL;
48
+
49
+ function titleFromSource(source: string, slug: string): string {
50
+ const body = source.replace(/^---\s*\n[\s\S]*?\n---\s*\n/, '');
51
+ const heading = /^#\s+(.+?)\s*#*\s*$/m.exec(body)?.[1]?.trim();
52
+ if (heading) return heading;
53
+ const name = slug.split('/').at(-1) || 'Overview';
54
+ return name.replace(/[-_]+/g, ' ').replace(/\b\p{L}/gu, (letter) => letter.toUpperCase());
55
+ }
56
+
57
+ function routeForFile(file: string): string {
58
+ const relative = file.replace(/^\/?docs\//, '').replace(/\.(?:md|mdx)$/i, '');
59
+ return relative.replace(/(?:^|\/)index$/i, '').replace(/^\/+|\/+$/g, '');
60
+ }
61
+
62
+ const routes = new Map<string, string>();
63
+ export const sitePages: SitePage[] = Object.entries(modules)
64
+ .map(([file, module]) => {
65
+ const slug = routeForFile(file);
66
+ const previous = routes.get(slug);
67
+ if (previous) {
68
+ throw new Error(`Duplicate Docs route "${slug || '/'}": ${previous} and ${file}`);
69
+ }
70
+ routes.set(slug, file);
71
+ const markdown = sources[file] ?? '';
72
+ const frontmatter = module.frontmatter ?? {};
73
+ return {
74
+ file,
75
+ slug,
76
+ title: frontmatter.title ?? titleFromSource(markdown, slug),
77
+ ...((frontmatter.sidebar?.label ?? frontmatter.label) ? { sidebarLabel: frontmatter.sidebar?.label ?? frontmatter.label } : {}),
78
+ description: frontmatter.description ?? '',
79
+ ...(frontmatter.hue !== undefined ? { hue: frontmatter.hue } : {}),
80
+ hidden: frontmatter.sidebar?.hidden ?? frontmatter.hidden ?? frontmatter.visibility === 'hidden',
81
+ order: frontmatter.sidebar?.order ?? frontmatter.order ?? Number.MAX_SAFE_INTEGER,
82
+ content: module.Content ?? module.default,
83
+ markdown: markdown.replace(/^---\s*\n[\s\S]*?\n---\s*\n/, ''),
84
+ };
85
+ })
86
+ .sort((left, right) => left.order - right.order || left.file.localeCompare(right.file));
87
+
88
+ if (sitePages.length === 0) {
89
+ throw new Error('No Markdown files found in docs/. Add docs/index.md to start a Terra Docs site.');
90
+ }
91
+
92
+ type MutableNode = Omit<DocsNavNode, 'children'> & { children: Map<string, MutableNode> };
93
+ const rootNodes = new Map<string, MutableNode>();
94
+
95
+ function label(value: string): string {
96
+ return value.replace(/[-_]+/g, ' ').replace(/\b\p{L}/gu, (letter) => letter.toUpperCase());
97
+ }
98
+
99
+ for (const page of sitePages.filter((item) => !item.hidden && item.slug !== '404')) {
100
+ const segments = page.slug.split('/').filter(Boolean);
101
+ let currentNodes = rootNodes;
102
+ let current: MutableNode | undefined;
103
+ let prefix = '';
104
+ if (segments.length === 0) {
105
+ const overview = currentNodes.get('overview') ?? {
106
+ id: 'overview', title: 'Overview', children: new Map(),
107
+ };
108
+ if (!currentNodes.has('overview')) currentNodes.set('overview', overview);
109
+ Object.assign(overview, pageMetadata(page, pageHref('', base)));
110
+ continue;
111
+ }
112
+ for (const segment of segments) {
113
+ prefix = prefix ? `${prefix}/${segment}` : segment;
114
+ let node = currentNodes.get(segment);
115
+ if (!node) {
116
+ node = { id: prefix, title: label(segment), children: new Map() };
117
+ currentNodes.set(segment, node);
118
+ }
119
+ current = node;
120
+ currentNodes = node.children;
121
+ }
122
+ if (current) Object.assign(current, pageMetadata(page, pageHref(page.slug, base)));
123
+ }
124
+
125
+ function pageMetadata(page: SitePage, href: string): Partial<MutableNode> {
126
+ return {
127
+ id: page.slug || 'index',
128
+ title: page.sidebarLabel ?? page.title,
129
+ href,
130
+ ...(page.description ? { description: page.description } : {}),
131
+ ...(page.hue !== undefined ? { hue: page.hue } : {}),
132
+ };
133
+ }
134
+
135
+ function materialize(nodes: Map<string, MutableNode>): DocsNavNode[] {
136
+ return [...nodes.values()].map(({ children, ...node }) => ({
137
+ ...node,
138
+ ...(children.size ? { children: materialize(children) } : {}),
139
+ }));
140
+ }
141
+
142
+ export const siteNavigation = materialize(rootNodes);
143
+
144
+ export function pageHref(slug: string, base = '/'): string {
145
+ const prefix = base === '/' ? '' : `/${base.replace(/^\/+|\/+$/g, '')}`;
146
+ return slug ? `${prefix}/${slug}/` : `${prefix}/`;
147
+ }
148
+
149
+ export function pageForSlug(slug: string): SitePage | undefined {
150
+ return sitePages.find((page) => page.slug === slug);
151
+ }
@@ -0,0 +1,38 @@
1
+ ---
2
+ import DocsNotFound from '../../../src/components/NotFound.astro';
3
+ import DocsSiteLayout from '../../../src/components/SiteLayout.astro';
4
+ import { pageForSlug, pageHref, siteNavigation } from '../lib/catalog.js';
5
+
6
+ const title = import.meta.env.PUBLIC_TERRA_DOCS_TITLE ?? 'Documentation';
7
+ const description = import.meta.env.PUBLIC_TERRA_DOCS_DESCRIPTION ?? '';
8
+ const base = import.meta.env.BASE_URL;
9
+ const page = pageForSlug('404');
10
+ const PageContent = page?.content;
11
+ ---
12
+
13
+ <html lang="en">
14
+ <head>
15
+ <meta charset="utf-8" />
16
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
17
+ <meta name="robots" content="noindex" />
18
+ <title>Page not found · {title}</title>
19
+ </head>
20
+ <body>
21
+ {PageContent ? (
22
+ <DocsSiteLayout
23
+ title={title}
24
+ homeHref={pageHref('', base)}
25
+ description={description}
26
+ pageTitle={page.title}
27
+ nodes={siteNavigation}
28
+ currentPath={`${base}404/`}
29
+ rootPath={pageHref('', base)}
30
+ searchBase={base}
31
+ >
32
+ <PageContent />
33
+ </DocsSiteLayout>
34
+ ) : (
35
+ <DocsNotFound appName={title} homeHref={pageHref('', base)} />
36
+ )}
37
+ </body>
38
+ </html>
@@ -0,0 +1,49 @@
1
+ ---
2
+ import DocsSiteLayout from '../../../src/components/SiteLayout.astro';
3
+ import { pageForSlug, pageHref, siteNavigation, sitePages } from '../lib/catalog.js';
4
+
5
+ const title = import.meta.env.PUBLIC_TERRA_DOCS_TITLE ?? 'Documentation';
6
+ const description = import.meta.env.PUBLIC_TERRA_DOCS_DESCRIPTION ?? '';
7
+ const base = import.meta.env.BASE_URL;
8
+
9
+ export function getStaticPaths() {
10
+ return sitePages.filter((page) => page.slug !== '404').map((page) => ({
11
+ params: { slug: page.slug || undefined },
12
+ props: { slug: page.slug },
13
+ }));
14
+ }
15
+
16
+ const { slug = '' } = Astro.props;
17
+ const page = pageForSlug(slug);
18
+ const PageContent = page?.content;
19
+ const currentPath = pageHref(slug, base);
20
+ ---
21
+
22
+ {page && PageContent ? (
23
+ <html lang="en">
24
+ <head>
25
+ <meta charset="utf-8" />
26
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
27
+ {page.description ? <meta name="description" content={page.description} /> : description ? <meta name="description" content={description} /> : null}
28
+ <title>{page.title} · {title}</title>
29
+ </head>
30
+ <body>
31
+ <DocsSiteLayout
32
+ title={title}
33
+ homeHref={pageHref('', base)}
34
+ description={description}
35
+ pageTitle={page.title}
36
+ nodes={siteNavigation}
37
+ currentPath={currentPath}
38
+ rootPath={pageHref('', base)}
39
+ searchBase={base}
40
+ >
41
+ <div class="terra-docs-page-content"><PageContent /></div>
42
+ </DocsSiteLayout>
43
+ </body>
44
+ </html>
45
+ ) : null}
46
+
47
+ <style is:global>
48
+ .terra-docs-page-content { max-width: 100%; }
49
+ </style>