@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
@@ -9,58 +9,35 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  IMPORTS
10
10
  //////////////////////////////////////////////////*/
11
11
  // API
12
- import { $unsavedDrafts, clearTransition, download, extractAllNodeIds, getStableKey, isIndexFile, memoryDrafts, resetEditorMounts, runMutation, sanitizeName, setTransition, uploadAssetChunked, useAtom, } from './_helpers.js';
13
- import { actions } from '../../runtime/action-proxy.js';
14
- import { bName, cTitle, dirname, docsPath, docsRootPath, toNodeLabel, toPaths } from '../../runtime/shared.js';
15
- import { cn, notify } from '../../runtime/runtime.js';
16
- import { toPortableBody } from '../../runtime/leaf.js';
17
- import { toHeadingId } from '../../editor/docs/heading.js';
12
+ import { $unsavedDrafts, clearTransition, memoryDrafts, resetEditorMounts, setTransition, useAtom, } from '../../../../lib/terra/docs/state.js';
13
+ import { extractAllNodeIds, getStableKey, isIndexFile, sanitizeName, } from '../../../../lib/terra/docs/tree.js';
14
+ import { runMutation } from '../../../../lib/terra/docs/mutations.js';
15
+ import { download, uploadAssetChunked } from '../../../../lib/terra/docs/assets.js';
16
+ import { actions } from '../../../../lib/terra/runtime/action-proxy.js';
17
+ import { bName, cTitle, dirname, docsPath, docsRootPath, toNodeLabel, toPaths, } from '../../../../lib/terra/runtime/shared.js';
18
+ import { cn, notify } from '../../../../lib/terra/runtime/runtime.js';
19
+ import { toPortableBody } from '../../../../lib/terra/runtime/leaf.js';
20
+ import { Toc } from './_toc.js';
18
21
  import { toast } from 'sonner';
19
22
  import { useEffect, useRef, useState } from 'react';
20
23
  // COMPONENTS
21
- import * as TerraQualityRegex from '../../regex.mjs';
24
+ import * as TerraQualityRegex from '../../../../lib/terra/regex.mjs';
22
25
  import React, { Fragment } from 'react';
23
- import { Add as AddIcon, ArrowUpRight as PopOutIcon, Box as BoxIcon, Copy as CopyIcon, Doc as DocumentIcon, Download as DownloadIcon, Draggable as DragIcon, Edit as EditIcon, Link as LinkIcon, MagicWand as MagicIcon, OverflowMenuVertical as OverflowMenuIcon, TrashCan as TrashIcon, } from '@carbon/icons-react';
24
- import { Button, ButtonLink } from '@terra-symposium/styling/ui/terra-original';
25
- import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from '@terra-symposium/styling/ui/terra-original';
26
- import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from '@terra-symposium/styling/ui/terra-original';
27
- import { ErrorBoundary } from '../../runtime/ui.js';
28
- import { SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubItem } from '@terra-symposium/styling/ui/terra-original';
26
+ import { Add as AddIcon, ArrowUpRight as PopOutIcon, Box as BoxIcon, Copy as CopyIcon, Doc as DocumentIcon, Download as DownloadIcon, Draggable as DragIcon, Edit as EditIcon, Link as LinkIcon, MagicWand as MagicIcon, TrashCan as TrashIcon, } from '@carbon/icons-react';
27
+ import { Button } from '@terra-symposium/styling/ui';
28
+ import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, } from '@terra-symposium/styling/ui';
29
+ import { ErrorBoundary } from '../../ui.js';
30
+ import { SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, } from '@terra-symposium/styling/ui';
29
31
  // DATA
30
- import { REORDER } from '../../runtime/shared.js';
32
+ import { REORDER } from '../../../../lib/terra/runtime/shared.js';
31
33
  /*//////////////////////////////////////////////////
32
34
  CONFIG
33
35
  //////////////////////////////////////////////////*/
34
36
  // DATA
35
37
  /** Validated interactive literal mappings explicitly capturing action intents. */
36
- const UI = { add: { doc: 'Add page', group: 'Add group' }, open: 'bg-primary-3 text-primary-12' };
37
- /** Returns the rendered Docs mode shell used by navigation and the table of contents. */
38
- const docsShellOf = () => Array.from(document.querySelectorAll('[data-docs-shell]')).find(e => {
39
- const style = window.getComputedStyle(e);
40
- return (e.dataset.docsMode === (new URL(window.location.href).searchParams.get('mode') || 'view') &&
41
- style.display !== 'none' &&
42
- style.visibility !== 'hidden' &&
43
- e.dataset.loading !== 'true' &&
44
- e.querySelector('[data-docs-transition-content]')?.getAttribute('aria-hidden') !== 'true' &&
45
- e.getClientRects().length > 0);
46
- }) ?? null;
47
- /**
48
- * Handles navigate heading.
49
- *
50
- * @param id - Tree node identifier used to create the link target.
51
- * @param text - Tree node label displayed to the reader.
52
- */
53
- const navigateHeading = (id, text) => {
54
- const shell = docsShellOf();
55
- const root = shell?.dataset.docsMode === 'view'
56
- ? shell.querySelector('[data-docs-view-root], [data-docs-body-content]')
57
- : shell?.dataset.docsMode === 'edit'
58
- ? shell.querySelector('[data-docs-body-editor], [data-docs-body-content]')
59
- : null;
60
- Array.from(root?.querySelectorAll('h2') ?? [])
61
- .find(e => e.id === id || e.textContent?.trim() === text)
62
- ?.scrollIntoView({ behavior: 'auto', block: 'start' });
63
- window.history.pushState(null, '', `#${id}`);
38
+ const UI = {
39
+ add: { doc: 'Add page', group: 'Add group' },
40
+ open: 'bg-primary-3 text-primary-12',
64
41
  };
65
42
  // TYPES
66
43
  /*//////////////////////////////////////////////////
@@ -95,8 +72,16 @@ export function Menu({ actions }) {
95
72
  function Link({ active: a, contexting = false, dragging = false, renaming = false, node, trailing, mode, transitioning = false, }) {
96
73
  const unsaved = useAtom($unsavedDrafts);
97
74
  const asset = node.type === 'leaf' && node.asset === true;
98
- const isDirty = node.type === 'leaf' && (unsaved[(node.type === 'leaf' ? node.path : '') ?? ''] || unsaved[(node.type === 'leaf' ? node.url : '') ?? '']);
99
- return (_jsx(SidebarMenuButton, { asChild: true, isActive: a, className: cn('group h-auto justify-between py-0 transition-colors', contexting && UI.open, renaming && 'ring-1 ring-ring', isDirty && 'pl-1.5'), children: _jsxs("div", { className: 'flex w-full items-center gap-1', children: [_jsxs("a", { href: asset ? (node.type === 'leaf' && node.url ? node.url : '') : 'url' in node && node.url ? node.url : '', target: asset || (node.type === 'leaf' && node.fileType === 'pdf') ? '_blank' : '_self', rel: asset || (node.type === 'leaf' && node.fileType === 'pdf') ? 'noreferrer' : undefined, className: cn('flex min-w-0 flex-1 items-center gap-1.5', dragging && 'pointer-events-none'), draggable: false, onDragStart: e => {
75
+ const isDirty = node.type === 'leaf' &&
76
+ (unsaved[(node.type === 'leaf' ? node.path : '') ?? ''] ||
77
+ unsaved[(node.type === 'leaf' ? node.url : '') ?? '']);
78
+ return (_jsx(SidebarMenuButton, { asChild: true, isActive: a, className: cn('group h-auto justify-between py-0 transition-colors', contexting && UI.open, renaming && 'ring-1 ring-ring', isDirty && 'pl-1.5'), children: _jsxs("div", { className: "flex w-full items-center gap-1", children: [_jsxs("a", { href: asset
79
+ ? node.type === 'leaf' && node.url
80
+ ? node.url
81
+ : ''
82
+ : 'url' in node && node.url
83
+ ? node.url
84
+ : '', target: asset || (node.type === 'leaf' && node.fileType === 'pdf') ? '_blank' : '_self', rel: asset || (node.type === 'leaf' && node.fileType === 'pdf') ? 'noreferrer' : undefined, className: cn('flex min-w-0 flex-1 items-center gap-1.5', dragging && 'pointer-events-none'), draggable: false, onDragStart: (e) => {
100
85
  e.preventDefault();
101
86
  }, onClick: async (e) => {
102
87
  if (asset || (node.type === 'leaf' && node.fileType === 'pdf'))
@@ -111,7 +96,10 @@ function Link({ active: a, contexting = false, dragging = false, renaming = fals
111
96
  setTransition('local');
112
97
  let data;
113
98
  try {
114
- const result = (await actions.read.doc.get({ path: node.path }));
99
+ const result = (await actions.read.doc.get({
100
+ id: node.origName,
101
+ pathname: node.url,
102
+ }));
115
103
  if (!result.error)
116
104
  data = result.data;
117
105
  }
@@ -125,7 +113,7 @@ function Link({ active: a, contexting = false, dragging = false, renaming = fals
125
113
  }
126
114
  const content = toPortableBody(data.content);
127
115
  resetEditorMounts(node.path, ['root']);
128
- await new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(() => {
116
+ await new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(() => {
129
117
  resolve();
130
118
  })));
131
119
  const url = new URL(node.url, window.location.origin);
@@ -139,9 +127,10 @@ function Link({ active: a, contexting = false, dragging = false, renaming = fals
139
127
  url.searchParams.delete('mode');
140
128
  // PIPELINE: sidebar navigation carries stored JSON; View never compiles Markdown.
141
129
  window.history.pushState(null, '', url.toString());
130
+ const route = `${url.pathname}${url.search}${url.hash}`;
142
131
  // prettier-ignore
143
- document.dispatchEvent(new CustomEvent('docs:navigate', { detail: { url: url.pathname + url.search, pathname: url.pathname + url.search, path: node.path, title: data.title || node.title, description: data.description ?? node.description, contributors: node.contributors, updatedAt: node.updatedAt, source: data.source, content, compiledMDX: '' } }));
144
- }, children: [isDirty && _jsx("span", { className: 'size-1.5 shrink-0 rounded-full bg-yellow-500', title: 'Unsaved changes' }), _jsx("span", { className: 'line-clamp-1', children: cTitle(toNodeLabel(node.title || node.origName)) }), asset && _jsx(PopOutIcon, { className: 'ml-auto size-3.5 shrink-0 text-primary-10', "aria-hidden": 'true' })] }), trailing] }) }));
132
+ document.dispatchEvent(new CustomEvent('docs:navigate', { detail: { url: route, pathname: route, path: node.path, title: data.title || node.title, description: data.description ?? node.description, ...(Array.isArray(node.contributors) ? { contributors: node.contributors } : {}), ...(node.updatedAt ? { updatedAt: node.updatedAt } : {}), source: data.source, content, compiledMDX: '' } }));
133
+ }, children: [isDirty && (_jsx("span", { className: "size-1.5 shrink-0 rounded-full bg-yellow-500", title: "Unsaved changes" })), _jsx("span", { className: "line-clamp-1", children: cTitle(toNodeLabel(node.title || node.origName)) }), asset && (_jsx(PopOutIcon, { className: "ml-auto size-3.5 shrink-0 text-primary-10", "aria-hidden": "true" }))] }), trailing] }) }));
145
134
  }
146
135
  /*//////////////////////////////////////////////////
147
136
  COMPONENTS
@@ -158,13 +147,13 @@ COMPONENTS
158
147
  *
159
148
  * @return The draggable reorder button, hidden or disabled when reordering is unavailable.
160
149
  */
161
- function DragHandle({ disabled, isVisible, onDragStart, onDragEnd }) {
162
- return (_jsx(Button, { variant: 'ghost', size: 'icon', "aria-label": 'Reorder item', draggable: true, className: cn(REORDER.handle, isVisible && !disabled ? 'opacity-100' : 'opacity-0 disabled:opacity-0'), disabled: disabled, onClick: e => {
150
+ function DragHandle({ disabled, isVisible, onDragStart, onDragEnd, }) {
151
+ return (_jsx(Button, { variant: "ghost", size: "icon", "aria-label": "Reorder item", draggable: true, className: cn(REORDER.handle, isVisible && !disabled ? 'opacity-100' : 'opacity-0 disabled:opacity-0'), disabled: disabled, onClick: (e) => {
163
152
  e.preventDefault();
164
- }, onDragStart: e => {
153
+ }, onDragStart: (e) => {
165
154
  e.stopPropagation();
166
155
  onDragStart(e);
167
- }, onDragEnd: onDragEnd, title: 'Drag', children: _jsx(DragIcon, { className: 'size-3', "aria-hidden": 'true' }) }));
156
+ }, onDragEnd: onDragEnd, title: "Drag", children: _jsx(DragIcon, { className: "size-3", "aria-hidden": "true" }) }));
168
157
  }
169
158
  /*//////////////////////////////////////////////////
170
159
  TOC COMPONENTS
@@ -178,169 +167,9 @@ TOC COMPONENTS
178
167
  * @return A table of contents for discovered headings, or `null` when there are no headings to navigate.
179
168
  */
180
169
  const TREE_COMPONENTS = {
181
- Toc({ title }) {
182
- const [heads, setHeads] = useState([]);
183
- const [a, setActive] = useState(null);
184
- useEffect(() => {
185
- const syncState = { frame: 0, tries: 0, els: [], observedRoot: null, threshold: 0 };
186
- const surfaceObserver = new MutationObserver(() => syncLifecycle.sync());
187
- const bodyObserver = new MutationObserver(() => {
188
- syncLifecycle.sync();
189
- if (syncState.observedRoot)
190
- bodyObserver.disconnect();
191
- });
192
- /**
193
- * Sync active.
194
- */
195
- const syncLifecycle = {
196
- syncActive: () => {
197
- if (!syncState.els.length) {
198
- setActive(null);
199
- return;
200
- }
201
- syncState.threshold = window.innerWidth >= 768 ? 160 : 112;
202
- for (let i = syncState.els.length - 1; i >= 0; i--) {
203
- const el = syncState.els[i];
204
- if (el && el.getBoundingClientRect().top <= syncState.threshold) {
205
- setActive(el.id);
206
- return;
207
- }
208
- }
209
- setActive(syncState.els[0]?.id ?? null);
210
- },
211
- /*
212
- * Queue active.
213
- */
214
- queueActive: () => {
215
- cancelAnimationFrame(syncState.frame);
216
- syncState.frame = requestAnimationFrame(syncLifecycle.syncActive);
217
- },
218
- /*
219
- * Synchronizes the current view state with the source data.
220
- */
221
- sync: () => {
222
- try {
223
- const seen = new Set();
224
- const shell = docsShellOf();
225
- let root = null;
226
- for (const e of document.querySelectorAll(shell?.dataset.docsMode === 'view'
227
- ? '[data-docs-view-root], [data-docs-body-content]'
228
- : '[data-docs-body-editor], [data-docs-body-content]')) {
229
- const style = window.getComputedStyle(e);
230
- if (style.display !== 'none' && style.visibility !== 'hidden' && e.getClientRects().length > 0) {
231
- root = e;
232
- break;
233
- }
234
- }
235
- if (!root)
236
- return;
237
- if (root !== syncState.observedRoot) {
238
- surfaceObserver.disconnect();
239
- surfaceObserver.observe(root, { childList: true, characterData: true, subtree: true });
240
- syncState.observedRoot = root;
241
- }
242
- const lowerTitle = title ? title.toLowerCase() : null;
243
- const validEls = [];
244
- const headsList = [];
245
- for (const e of Array.from(root.querySelectorAll('h2') ?? [])) {
246
- if (e.closest('[data-placeholder], [data-tabs-placeholder]') || e.closest('[hidden]'))
247
- continue;
248
- let text = '';
249
- for (const child of Array.from(e.childNodes)) {
250
- if (child instanceof Element && child.classList.contains('heading-anchor-icon'))
251
- continue;
252
- text += child.textContent || '';
253
- }
254
- text = text.trim();
255
- if (lowerTitle && text.toLowerCase() === lowerTitle)
256
- continue;
257
- const id = e.id || (e.id = toHeadingId(text));
258
- if (!id || seen.has(id))
259
- continue;
260
- seen.add(id);
261
- validEls.push(e);
262
- headsList.push({ id, text });
263
- }
264
- syncState.els = validEls;
265
- if (!syncState.els.length) {
266
- setHeads([]);
267
- setActive(null);
268
- return;
269
- }
270
- setHeads(headsList);
271
- syncLifecycle.queueActive();
272
- }
273
- catch {
274
- /* ignore */
275
- }
276
- },
277
- /*
278
- * Re-reads headings until the surface has mounted them.
279
- *
280
- */
281
- pump: () => {
282
- syncLifecycle.sync();
283
- if (syncState.els.length || syncState.tries++ >= 60)
284
- return;
285
- syncState.frame = requestAnimationFrame(syncLifecycle.pump);
286
- },
287
- /*
288
- * Handles navigate.
289
- *
290
- * @param e - Pointer event received from the tree interaction.
291
- */
292
- navigate: (e) => {
293
- const link = e.target instanceof Element ? e.target.closest('[data-docs-toc-heading]') : null;
294
- const id = link?.dataset.docsTocId;
295
- const text = link?.dataset.docsTocHeading;
296
- if (!id || !text)
297
- return;
298
- e.preventDefault();
299
- navigateHeading(id, text);
300
- },
301
- };
302
- syncLifecycle.pump();
303
- if (!syncState.observedRoot)
304
- bodyObserver.observe(document.body, { childList: true, subtree: true });
305
- window.addEventListener('click', syncLifecycle.navigate, true);
306
- document.addEventListener('docs:surface-ready', syncLifecycle.sync);
307
- document.addEventListener('astro:after-swap', syncLifecycle.sync);
308
- window.addEventListener('hashchange', syncLifecycle.sync);
309
- window.addEventListener('resize', syncLifecycle.queueActive);
310
- window.addEventListener('scroll', syncLifecycle.queueActive, { passive: true });
311
- return () => {
312
- window.removeEventListener('click', syncLifecycle.navigate, true);
313
- document.removeEventListener('docs:surface-ready', syncLifecycle.sync);
314
- document.removeEventListener('astro:after-swap', syncLifecycle.sync);
315
- window.removeEventListener('hashchange', syncLifecycle.sync);
316
- window.removeEventListener('resize', syncLifecycle.queueActive);
317
- window.removeEventListener('scroll', syncLifecycle.queueActive);
318
- bodyObserver.disconnect();
319
- surfaceObserver.disconnect();
320
- cancelAnimationFrame(syncState.frame);
321
- };
322
- }, [title]);
323
- useEffect(() => {
324
- const id = decodeURIComponent(window.location.hash.slice(1));
325
- if (!id)
326
- return;
327
- let heading;
328
- for (const i of heads) {
329
- if (i.id === id) {
330
- heading = i;
331
- break;
332
- }
333
- }
334
- if (heading)
335
- navigateHeading(id, heading.text);
336
- }, [heads]);
337
- if (!heads?.length)
338
- return null;
339
- return (_jsx("nav", { "aria-label": 'Table of contents', children: _jsx(SidebarMenuSub, { className: 'mr-0 pr-0', children: heads.map(h => (_jsx(SidebarMenuSubItem, { children: _jsx(ButtonLink, { "data-docs-toc-id": h.id, "data-docs-toc-heading": h.text, href: `#${h.id}`, variant: 'ghost', size: 'xs', "aria-label": `Jump to ${h.text}`, className: cn('relative w-full justify-start truncate pl-4 before:absolute before:left-1.5 before:top-1/2 before:size-1 before:-translate-y-1/2 before:rounded-full before:content-[""] hover:!bg-transparent', a === h.id ? 'text-primary-12 before:bg-current' : 'text-primary-11 before:bg-primary-11 before:opacity-0 hover:before:opacity-100'), children: h.text }) }, h.id))) }) }));
340
- },
341
170
  /*//////////////////////////////////////////////////
342
- LEAF COMPONENTS
343
- //////////////////////////////////////////////////*/
171
+ LEAF COMPONENTS
172
+ //////////////////////////////////////////////////*/
344
173
  /**
345
174
  * Renders the leaf component.
346
175
  *
@@ -429,7 +258,12 @@ LEAF COMPONENTS
429
258
  if (!isIdx && isMd)
430
259
  continue;
431
260
  const sNode = siblingByPath.get(p);
432
- sisList.push({ name: bName(p), path: p, title: sNode && sNode.type === 'leaf' ? sNode.title : undefined, isMd });
261
+ sisList.push({
262
+ name: bName(p),
263
+ path: p,
264
+ title: sNode && sNode.type === 'leaf' ? sNode.title : undefined,
265
+ isMd,
266
+ });
433
267
  }
434
268
  setSis(sisList);
435
269
  }
@@ -473,7 +307,10 @@ LEAF COMPONENTS
473
307
  return;
474
308
  }
475
309
  try {
476
- const { data: res, error: resErr } = await actions.read.doc.resolvePath({ path: node.path, title: nTitle });
310
+ const { data: res, error: resErr } = await actions.read.doc.resolvePath({
311
+ path: node.path,
312
+ title: nTitle,
313
+ });
477
314
  if (resErr || !res)
478
315
  throw resErr || new Error('Failed to resolve path');
479
316
  const nPath = res.path;
@@ -493,13 +330,21 @@ LEAF COMPONENTS
493
330
  cur: node.path,
494
331
  next: nPath,
495
332
  title: nTitle,
496
- source: docData && typeof docData === 'object' && 'source' in docData && typeof docData.source === 'string' ? docData.source : '',
333
+ source: docData &&
334
+ typeof docData === 'object' &&
335
+ 'source' in docData &&
336
+ typeof docData.source === 'string'
337
+ ? docData.source
338
+ : '',
497
339
  });
498
340
  if (err)
499
341
  throw err;
500
342
  }
501
343
  else {
502
- const { error: writeErr } = await actions.write.doc.editor({ path: nPath, title: nTitle });
344
+ const { error: writeErr } = await actions.write.doc.editor({
345
+ path: nPath,
346
+ title: nTitle,
347
+ });
503
348
  if (writeErr)
504
349
  throw writeErr;
505
350
  }
@@ -628,7 +473,7 @@ LEAF COMPONENTS
628
473
  continue;
629
474
  const tmpId = `temp-${Date.now()}-${i}`;
630
475
  const isMdFile = TerraQualityRegex.REGEX_MD_MDX_I_REGEX().test(file.name);
631
- setSis(p => [...p, { id: tmpId, path: tmpId, name: file.name, isMd: isMdFile }]);
476
+ setSis((p) => [...p, { id: tmpId, path: tmpId, name: file.name, isMd: isMdFile }]);
632
477
  const finalAsset = await uploadAssetChunked(file, node.path, {
633
478
  onProgress: ({ bytes }) => {
634
479
  uploadedSize += bytes;
@@ -637,10 +482,10 @@ LEAF COMPONENTS
637
482
  });
638
483
  const fPath = finalAsset.path || finalAsset.src || tmpId;
639
484
  const nName = fPath.split('/').pop() || file.name;
640
- setSis(p => {
641
- if (p.some(s => s.name === nName && s.id !== tmpId))
642
- return p.filter(s => s.id !== tmpId);
643
- return p.map(s => (s.id === tmpId ? { ...s, path: fPath, name: nName, isMd: isMdFile } : s));
485
+ setSis((p) => {
486
+ if (p.some((s) => s.name === nName && s.id !== tmpId))
487
+ return p.filter((s) => s.id !== tmpId);
488
+ return p.map((s) => s.id === tmpId ? { ...s, path: fPath, name: nName, isMd: isMdFile } : s);
644
489
  });
645
490
  }
646
491
  toast.success('Files attached successfully.');
@@ -669,13 +514,16 @@ LEAF COMPONENTS
669
514
  label: 'New name',
670
515
  value: s.name.replace(TerraQualityRegex.REGEX_I_REGEX(), ''),
671
516
  onCancel: () => { },
672
- onSave: nName => runMutation(async () => {
673
- const fileName = { extension: s.name.match(TerraQualityRegex.REGEX_I_REGEX())?.[0] ?? '', stem: sanitizeName(nName) };
517
+ onSave: (nName) => runMutation(async () => {
518
+ const fileName = {
519
+ extension: s.name.match(TerraQualityRegex.REGEX_I_REGEX())?.[0] ?? '',
520
+ stem: sanitizeName(nName),
521
+ };
674
522
  const nFilename = `${fileName.stem}${fileName.extension}`;
675
523
  const dir = dirname(s.path);
676
524
  const nPath = `${dir && dir !== '.' ? `${dir}/` : ''}${nFilename}`;
677
525
  // optimistic UI update
678
- setSis(p => p.map(x => (x.path === s.path ? { ...x, path: nPath, name: nFilename } : x)));
526
+ setSis((p) => p.map((x) => (x.path === s.path ? { ...x, path: nPath, name: nFilename } : x)));
679
527
  ctx.setInputDlg(null);
680
528
  try {
681
529
  if (s.isMd) {
@@ -683,16 +531,26 @@ LEAF COMPONENTS
683
531
  const { error } = await actions.write.doc.commit({
684
532
  cur: s.path,
685
533
  next: nPath,
686
- source: docData && typeof docData === 'object' && 'source' in docData && typeof docData.source === 'string' ? docData.source : '',
534
+ source: docData &&
535
+ typeof docData === 'object' &&
536
+ 'source' in docData &&
537
+ typeof docData.source === 'string'
538
+ ? docData.source
539
+ : '',
687
540
  });
688
541
  if (error)
689
542
  throw error;
690
543
  }
691
544
  else {
692
- const { data: buf, error: readErr } = await actions.read.asset.get({ path: s.path });
545
+ const { data: buf, error: readErr } = await actions.read.asset.get({
546
+ path: s.path,
547
+ });
693
548
  if (readErr || !buf)
694
549
  throw readErr || new Error('Failed to read asset');
695
- const { error: writeErr } = await actions.write.asset.raw({ bytes: buf, path: nPath });
550
+ const { error: writeErr } = await actions.write.asset.raw({
551
+ bytes: buf,
552
+ path: nPath,
553
+ });
696
554
  if (writeErr)
697
555
  throw writeErr;
698
556
  await actions.write.doc.rm({ path: s.path, type: 'asset', assets: false });
@@ -701,7 +559,7 @@ LEAF COMPONENTS
701
559
  }
702
560
  catch (err) {
703
561
  // revert on failure
704
- setSis(p => p.map(x => (x.path === nPath ? { ...x, path: s.path, name: s.name } : x)));
562
+ setSis((p) => p.map((x) => (x.path === nPath ? { ...x, path: s.path, name: s.name } : x)));
705
563
  throw err;
706
564
  }
707
565
  }, 'Failed to rename attachment.'),
@@ -721,7 +579,7 @@ LEAF COMPONENTS
721
579
  label: 'New name',
722
580
  value: `${s.name.replace(TerraQualityRegex.REGEX_I_REGEX(), '')}-copy`,
723
581
  onCancel: () => { },
724
- onSave: n => runMutation(async () => {
582
+ onSave: (n) => runMutation(async () => {
725
583
  const tgt = { path: s.path, stem: sanitizeName(n) };
726
584
  const { data: docData, error: err } = await actions.read.doc.get({ path: tgt.path });
727
585
  if (err || !docData)
@@ -729,15 +587,24 @@ LEAF COMPONENTS
729
587
  const nPath = `${dirname(tgt.path)}/${tgt.stem}.mdx`;
730
588
  const { data, error: wErr } = await actions.write.doc.save({
731
589
  path: nPath,
732
- source: typeof docData === 'object' && 'source' in docData && typeof docData.source === 'string' ? docData.source : '',
590
+ source: typeof docData === 'object' &&
591
+ 'source' in docData &&
592
+ typeof docData.source === 'string'
593
+ ? docData.source
594
+ : '',
733
595
  });
734
596
  if (wErr || !data)
735
597
  throw wErr || new Error('Failed to write doc.');
736
598
  const sisterDetails = {
737
599
  name: nPath.split('/').pop() || '',
738
- title: typeof data === 'object' && 'title' in data && typeof data.title === 'string' ? data.title : undefined,
600
+ title: typeof data === 'object' && 'title' in data && typeof data.title === 'string'
601
+ ? data.title
602
+ : undefined,
739
603
  };
740
- setSis(p => [...p, { path: nPath, name: sisterDetails.name, isMd: true, title: sisterDetails.title }]);
604
+ setSis((p) => [
605
+ ...p,
606
+ { path: nPath, name: sisterDetails.name, isMd: true, title: sisterDetails.title },
607
+ ]);
741
608
  ctx.setInputDlg(null);
742
609
  }, 'Failed to duplicate.'),
743
610
  });
@@ -754,13 +621,17 @@ LEAF COMPONENTS
754
621
  return;
755
622
  const deletion = {
756
623
  previousSisters: [...sis],
757
- remove: () => setSis(p => p.filter(x => x.path !== s.path)),
624
+ remove: () => setSis((p) => p.filter((x) => x.path !== s.path)),
758
625
  restore: () => setSis(deletion.previousSisters),
759
626
  };
760
627
  deletion.remove();
761
628
  runMutation(async () => {
762
629
  try {
763
- const { error } = await actions.write.doc.rm({ assets: false, path: s.path, type: s.isMd ? 'doc' : 'asset' });
630
+ const { error } = await actions.write.doc.rm({
631
+ assets: false,
632
+ path: s.path,
633
+ type: s.isMd ? 'doc' : 'asset',
634
+ });
764
635
  if (error)
765
636
  throw error;
766
637
  }
@@ -786,12 +657,12 @@ LEAF COMPONENTS
786
657
  },
787
658
  };
788
659
  // RENDER
789
- return (_jsxs(SidebarMenuItem, { ref: leafRef, children: [!!node.path && !isSimulated ? (_jsxs(ContextMenu, { onOpenChange: setContexting, children: [_jsx("input", { ref: fileRef, type: 'file', className: 'hidden', multiple: true, onChange: e => void add(e.currentTarget.files), disabled: disabled }), _jsx(ContextMenuTrigger, { asChild: true, children: _jsx("div", { "data-docs-drop": drop, "data-docs-parent": bPath, className: cn('relative rounded-md', dState?.key === drop && dState.position === 'before' && REORDER.before, dState?.key === drop && dState.position === 'after' && REORDER.after, (isMultiSel || isDragOverFile) && 'bg-primary-4/50 ring-2 ring-primary-8', progress !== null && 'pointer-events-none opacity-70'), onMouseEnter: () => {
660
+ return (_jsxs(SidebarMenuItem, { ref: leafRef, children: [!!node.path && !isSimulated ? (_jsxs(ContextMenu, { onOpenChange: setContexting, children: [_jsx("input", { ref: fileRef, type: "file", className: "hidden", multiple: true, onChange: (e) => void add(e.currentTarget.files), disabled: disabled }), _jsx(ContextMenuTrigger, { asChild: true, children: _jsx("div", { "data-docs-drop": drop, "data-docs-parent": bPath, className: cn('relative rounded-md', dState?.key === drop && dState.position === 'before' && REORDER.before, dState?.key === drop && dState.position === 'after' && REORDER.after, (isMultiSel || isDragOverFile) && 'bg-primary-4/50 ring-2 ring-primary-8', progress !== null && 'pointer-events-none opacity-70'), onMouseEnter: () => {
790
661
  ctx.setHovered(drop);
791
662
  }, onMouseLeave: () => {
792
663
  if (ctx.hovered === drop)
793
664
  ctx.setHovered(null);
794
- }, onClickCapture: e => {
665
+ }, onClickCapture: (e) => {
795
666
  if (e.metaKey || e.ctrlKey || e.shiftKey) {
796
667
  e.preventDefault();
797
668
  e.stopPropagation();
@@ -799,13 +670,13 @@ LEAF COMPONENTS
799
670
  }
800
671
  else if (ctx.selectedLeaves.length > 0)
801
672
  ctx.clearSelection();
802
- }, onDragEnter: e => {
673
+ }, onDragEnter: (e) => {
803
674
  if (permission === 'write' && !drag && e.dataTransfer.types.includes('Files')) {
804
675
  e.preventDefault();
805
676
  e.stopPropagation();
806
677
  setIsDragOverFile(true);
807
678
  }
808
- }, onDragOver: e => {
679
+ }, onDragOver: (e) => {
809
680
  if (permission !== 'write')
810
681
  return;
811
682
  if (!drag && e.dataTransfer.types.includes('Files')) {
@@ -843,14 +714,14 @@ LEAF COMPONENTS
843
714
  const pos = e.clientY < rect.top + rect.height / 2 ? 'before' : 'after';
844
715
  if (dState?.key !== drop || dState.position !== pos)
845
716
  ctx.setDState({ key: drop, position: pos });
846
- }, onDragLeave: e => {
717
+ }, onDragLeave: (e) => {
847
718
  if (isDragOverFile)
848
719
  setIsDragOverFile(false);
849
720
  if (e.currentTarget.contains(e.relatedTarget))
850
721
  return;
851
722
  if (dState?.key === drop)
852
723
  ctx.setDState(null);
853
- }, onDrop: e => {
724
+ }, onDrop: (e) => {
854
725
  e.preventDefault();
855
726
  e.stopPropagation();
856
727
  if (e.dataTransfer.files?.length && !drag) {
@@ -865,13 +736,21 @@ LEAF COMPONENTS
865
736
  return;
866
737
  }
867
738
  const dPath = e.dataTransfer.getData('application/docs-path');
868
- const move = drag ?? (e.dataTransfer.getData('application/docs-kind') === 'leaf' && dPath ? { kind: 'leaf', path: dPath } : null);
739
+ const move = drag ??
740
+ (e.dataTransfer.getData('application/docs-kind') === 'leaf' && dPath
741
+ ? { kind: 'leaf', path: dPath }
742
+ : null);
869
743
  if (!move || move.kind !== 'leaf' || !node.path)
870
744
  return;
871
745
  const rect = e.currentTarget.getBoundingClientRect();
872
- void ctx.mvLeaf({ path: move.path, tPosition: e.clientY < rect.top + rect.height / 2 ? 'before' : 'after', tTarget: node.path, tpath: bPath });
746
+ void ctx.mvLeaf({
747
+ path: move.path,
748
+ tPosition: e.clientY < rect.top + rect.height / 2 ? 'before' : 'after',
749
+ tTarget: node.path,
750
+ tpath: bPath,
751
+ });
873
752
  ctx.setDrag(null);
874
- }, children: _jsx(Link, { active: a, contexting: contexting || dState?.key === drop, dragging: drag?.kind === 'leaf', renaming: renaming, node: node, mode: mode, trailing: _jsxs("div", { className: 'flex items-center gap-2', children: [progress !== null && _jsxs("span", { className: 'text-xs font-medium text-primary-10', children: [progress, "%"] }), _jsx(DragHandle, { disabled: disabled, isVisible: hovered === drop, onDragStart: e => {
753
+ }, children: _jsx(Link, { active: a, contexting: contexting || dState?.key === drop, dragging: drag?.kind === 'leaf', renaming: renaming, node: node, mode: mode, trailing: _jsxs("div", { className: "flex items-center gap-2", children: [progress !== null && (_jsxs("span", { className: "text-xs font-medium text-primary-10", children: [progress, "%"] })), _jsx(DragHandle, { disabled: disabled, isVisible: hovered === drop, onDragStart: (e) => {
875
754
  ctx.setDrag({ active: a, kind: 'leaf', path });
876
755
  e.dataTransfer.effectAllowed = 'move';
877
756
  e.dataTransfer.setData('application/docs-kind', 'leaf');
@@ -880,7 +759,16 @@ LEAF COMPONENTS
880
759
  e.dataTransfer.setData('text/plain', path);
881
760
  }, onDragEnd: () => {
882
761
  ctx.setDrag(null);
883
- } })] }) }) }) }), _jsx(ContextMenuContent, { children: permission !== 'write' ? (_jsx(Menu, { actions: [{ icon: _jsx(LinkIcon, {}), label: 'Copy link', onSelect: () => { void navigator.clipboard.writeText(new URL(node.url || docsPath(path), window.location.origin).href); toast.success('Link copied'); } }] })) : isMultiSel && ctx.selectedLeaves.length > 1 ? (_jsx(Menu, { actions: [
762
+ } })] }) }) }) }), _jsx(ContextMenuContent, { children: permission !== 'write' ? (_jsx(Menu, { actions: [
763
+ {
764
+ icon: _jsx(LinkIcon, {}),
765
+ label: 'Copy link',
766
+ onSelect: () => {
767
+ void navigator.clipboard.writeText(new URL(node.url || docsPath(path), window.location.origin).href);
768
+ toast.success('Link copied');
769
+ },
770
+ },
771
+ ] })) : isMultiSel && ctx.selectedLeaves.length > 1 ? (_jsx(Menu, { actions: [
884
772
  {
885
773
  disabled: disabled,
886
774
  icon: _jsx(DocumentIcon, {}),
@@ -963,11 +851,11 @@ LEAF COMPONENTS
963
851
  { icon: _jsx(PopOutIcon, {}), label: 'Make asset', disabled: disabled || !(permission === 'write' && !node.asset && !isSimulated && !!path), onSelect: () => { ctx.setAssetTarget({ path, title: cTitle(toNodeLabel(node.title || node.origName)) || bName(path) }); } },
964
852
  { icon: _jsx(DownloadIcon, {}), label: 'Download page', disabled: disabled, onSelect: () => { ctx.setExportTarget({ paths: [path], rootDir: path, filename: sanitizeName(node.title || bName(path)), title: cTitle(toNodeLabel(node.title || node.origName)) || 'Document' }); } },
965
853
  { destructive: true, disabled: disabled, icon: _jsx(TrashIcon, {}), label: 'Delete page', onSelect: () => { ctx.setDelTarget({ kind: 'leaf', path: node.path, bPath, active: a, title: node.title || node.path }); } },
966
- ] })) })] })) : (_jsx(Link, { active: a, node: node, mode: mode })), a && _jsx(TREE_COMPONENTS.Toc, { title: node.title })] }));
854
+ ] })) })] })) : (_jsx(Link, { active: a, node: node, mode: mode })), a && _jsx(Toc, { title: node.title })] }));
967
855
  },
968
856
  /*//////////////////////////////////////////////////
969
- TREE COMPONENTS
970
- //////////////////////////////////////////////////*/
857
+ TREE COMPONENTS
858
+ //////////////////////////////////////////////////*/
971
859
  /**
972
860
  * Main recursive tree mapping structural layers evaluating context dependencies natively.
973
861
  *
@@ -1017,9 +905,11 @@ TREE COMPONENTS
1017
905
  return;
1018
906
  }
1019
907
  // optimistic UI mutation bypasses global loading sweep
1020
- ctx.setTree(c => {
908
+ ctx.setTree((c) => {
1021
909
  const updatedTree = [...c];
1022
- const titleFrames = [{ nodes: updatedTree, index: 0 }];
910
+ const titleFrames = [
911
+ { nodes: updatedTree, index: 0 },
912
+ ];
1023
913
  while (titleFrames.length) {
1024
914
  const frame = titleFrames[titleFrames.length - 1];
1025
915
  if (!frame)
@@ -1047,7 +937,10 @@ TREE COMPONENTS
1047
937
  });
1048
938
  ctx.setInputDlg(null);
1049
939
  try {
1050
- const { error: err } = await actions.write.doc.editor({ path: node.origName, title: nName });
940
+ const { error: err } = await actions.write.doc.editor({
941
+ path: node.origName,
942
+ title: nName,
943
+ });
1051
944
  if (err)
1052
945
  throw err;
1053
946
  toast.success('Group renamed successfully.');
@@ -1108,22 +1001,77 @@ TREE COMPONENTS
1108
1001
  // RENDER
1109
1002
  // leaf
1110
1003
  if (node.type === 'leaf')
1111
- return (_jsx(ErrorBoundary, { name: 'Tree', children: _jsx(TREE_COMPONENTS.Leaf, { active: pathname !== '' && pathname === nodeUrl, bPath: bPath, node: node, ctx: ctx, siblings: sibs }) }));
1004
+ return (_jsx(ErrorBoundary, { name: "Tree", children: _jsx(TREE_COMPONENTS.Leaf, { active: pathname !== '' && pathname === nodeUrl, bPath: bPath, node: node, ctx: ctx, siblings: sibs }) }));
1112
1005
  // branch
1113
1006
  const branchActions = [
1114
- { disabled, icon: _jsx(LinkIcon, {}), label: 'Copy link', onSelect: () => { void navigator.clipboard.writeText(`${window.location.origin}${nodeUrl}`); toast.success('Link copied'); } },
1115
- { disabled, icon: _jsx(AddIcon, {}), label: 'Add page', onSelect: () => { ctx.openCreate(fPath, node.origName); } },
1116
- { disabled, icon: _jsx(BoxIcon, {}), label: 'Manage attachments', onSelect: () => { ctx.setManageAttTgt({ path: slugPath, title: node.title || slugPath, scope: 'group', node }); } },
1117
- { disabled, icon: _jsx(DownloadIcon, {}), label: 'Download group', onSelect: () => { ctx.setExportTarget({ paths: toPaths(node.children), rootDir: slugPath, filename: sanitizeName(cTitle(toNodeLabel(node.title || node.origName)) || node.origName), title: `${cTitle(toNodeLabel(node.title || node.origName))} docs`, nodeIds: extractAllNodeIds([node]) }); } },
1007
+ {
1008
+ disabled,
1009
+ icon: _jsx(LinkIcon, {}),
1010
+ label: 'Copy link',
1011
+ onSelect: () => {
1012
+ void navigator.clipboard.writeText(`${window.location.origin}${nodeUrl}`);
1013
+ toast.success('Link copied');
1014
+ },
1015
+ },
1016
+ {
1017
+ disabled,
1018
+ icon: _jsx(AddIcon, {}),
1019
+ label: 'Add page',
1020
+ onSelect: () => {
1021
+ ctx.openCreate(fPath, node.origName);
1022
+ },
1023
+ },
1024
+ {
1025
+ disabled,
1026
+ icon: _jsx(BoxIcon, {}),
1027
+ label: 'Manage attachments',
1028
+ onSelect: () => {
1029
+ ctx.setManageAttTgt({
1030
+ path: slugPath,
1031
+ title: node.title || slugPath,
1032
+ scope: 'group',
1033
+ node,
1034
+ });
1035
+ },
1036
+ },
1037
+ {
1038
+ disabled,
1039
+ icon: _jsx(DownloadIcon, {}),
1040
+ label: 'Download group',
1041
+ onSelect: () => {
1042
+ ctx.setExportTarget({
1043
+ paths: toPaths(node.children),
1044
+ rootDir: slugPath,
1045
+ filename: sanitizeName(cTitle(toNodeLabel(node.title || node.origName)) || node.origName),
1046
+ title: `${cTitle(toNodeLabel(node.title || node.origName))} docs`,
1047
+ nodeIds: extractAllNodeIds([node]),
1048
+ });
1049
+ },
1050
+ },
1118
1051
  { disabled, icon: _jsx(EditIcon, {}), label: 'Rename group', onSelect: treeActions.renameNode },
1119
- { separator: true, destructive: true, disabled, icon: _jsx(TrashIcon, {}), label: 'Delete group', onSelect: () => { ctx.setDelTarget({ kind: 'branch', path: fPath, bPath, slugPath, title: node.title || slugPath }); } },
1052
+ {
1053
+ separator: true,
1054
+ destructive: true,
1055
+ disabled,
1056
+ icon: _jsx(TrashIcon, {}),
1057
+ label: 'Delete group',
1058
+ onSelect: () => {
1059
+ ctx.setDelTarget({
1060
+ kind: 'branch',
1061
+ path: fPath,
1062
+ bPath,
1063
+ slugPath,
1064
+ title: node.title || slugPath,
1065
+ });
1066
+ },
1067
+ },
1120
1068
  ];
1121
- const label = (_jsx(SidebarGroupLabel, { asChild: true, className: 'p-0', children: _jsxs("div", { "data-docs-drop": drop, className: cn('group flex w-full items-center gap-1 rounded-md px-2 py-1 text-left text-primary-11', dState?.key === drop && dState.position === 'before' && REORDER.before, dState?.key === drop && dState.position === 'after' && REORDER.after, contexting && UI.open, renaming && 'ring-1 ring-ring'), onMouseEnter: () => {
1069
+ const label = (_jsx(SidebarGroupLabel, { asChild: true, className: "p-0", children: _jsxs("div", { "data-docs-drop": drop, className: cn('flex w-full items-center gap-1 rounded-md px-2 py-1 text-left text-primary-11', dState?.key === drop && dState.position === 'before' && REORDER.before, dState?.key === drop && dState.position === 'after' && REORDER.after, contexting && UI.open, renaming && 'ring-1 ring-ring'), onMouseEnter: () => {
1122
1070
  setHovered(drop);
1123
1071
  }, onMouseLeave: () => {
1124
1072
  if (hovered === drop)
1125
1073
  setHovered(null);
1126
- }, onDragOver: treeActions.handleDragOver, onDragLeave: treeActions.handleDragLeave, onDrop: e => {
1074
+ }, onDragOver: treeActions.handleDragOver, onDragLeave: treeActions.handleDragLeave, onDrop: (e) => {
1127
1075
  e.preventDefault();
1128
1076
  e.stopPropagation();
1129
1077
  if (e.dataTransfer.files?.length && !drag) {
@@ -1148,9 +1096,15 @@ TREE COMPONENTS
1148
1096
  if (move.kind === 'leaf')
1149
1097
  void ctx.mvLeaf({ path: move.path, tPosition: tPos, tTarget: fPath, tpath: bPath });
1150
1098
  else
1151
- void ctx.mvBranch({ fPath: move.fPath, pPath: move.pPath, tpath: bPath, tPosition: tPos, tTarget: fPath });
1099
+ void ctx.mvBranch({
1100
+ fPath: move.fPath,
1101
+ pPath: move.pPath,
1102
+ tpath: bPath,
1103
+ tPosition: tPos,
1104
+ tTarget: fPath,
1105
+ });
1152
1106
  ctx.setDrag(null);
1153
- }, children: [_jsx("span", { className: 'min-w-0 flex-1 truncate', children: cTitle(toNodeLabel(node.title || node.origName)) }), permission === 'write' && !node.simulated && (_jsx(DragHandle, { disabled: disabled, isVisible: hovered === drop, onDragStart: e => {
1107
+ }, children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: cTitle(toNodeLabel(node.title || node.origName)) }), permission === 'write' && !node.simulated && (_jsx(DragHandle, { disabled: disabled, isVisible: hovered === drop, onDragStart: (e) => {
1154
1108
  ctx.setDrag({ fPath, kind: 'branch', pPath: bPath });
1155
1109
  e.dataTransfer.effectAllowed = 'move';
1156
1110
  e.dataTransfer.setData('application/docs-kind', 'branch');
@@ -1159,8 +1113,9 @@ TREE COMPONENTS
1159
1113
  e.dataTransfer.setData('text/plain', fPath);
1160
1114
  }, onDragEnd: () => {
1161
1115
  ctx.setDrag(null);
1162
- } })), permission === 'write' && !node.simulated && (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: 'ghost', size: 'xs', "aria-label": `Actions for group ${cTitle(toNodeLabel(node.title || node.origName))}`, className: 'h-6 w-6 shrink-0 px-1 opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100', onClick: event => event.stopPropagation(), children: _jsx(OverflowMenuIcon, { size: 16 }) }) }), _jsx(DropdownMenuContent, { align: 'end', children: branchActions.map((action, index) => (_jsxs(Fragment, { children: [action.separator && _jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { disabled: action.disabled, onSelect: () => action.onSelect?.(), className: action.destructive ? 'text-destructive focus:text-destructive' : undefined, children: [action.icon, action.label] })] }, `${action.label}-${index}`))) })] }))] }) }));
1163
- return (_jsx(ErrorBoundary, { name: 'Tree', children: _jsxs(SidebarGroup, { className: cn('p-0', !bPath.includes('/') && 'mt-4 first:mt-0'), children: [permission === 'write' && !node.simulated ? (_jsxs(ContextMenu, { onOpenChange: setContexting, children: [_jsx(ContextMenuTrigger, { asChild: true, children: label }), _jsx(ContextMenuContent, { children: _jsx(Menu, { actions: branchActions }) })] })) : (label), _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: node.type === 'branch' && node.children?.map(c => _jsx(TREE_COMPONENTS.Tree, { bPath: fPath, node: c, ctx: ctx, siblings: node.children }, getStableKey(c))) }) })] }) }));
1116
+ } }))] }) }));
1117
+ return (_jsx(ErrorBoundary, { name: "Tree", children: _jsxs(SidebarGroup, { className: cn('p-0', !bPath.includes('/') && 'mt-4 first:mt-0'), children: [permission === 'write' && !node.simulated ? (_jsxs(ContextMenu, { onOpenChange: setContexting, children: [_jsx(ContextMenuTrigger, { asChild: true, children: label }), _jsx(ContextMenuContent, { children: _jsx(Menu, { actions: branchActions }) })] })) : (label), _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: node.type === 'branch' &&
1118
+ node.children?.map((c) => (_jsx(TREE_COMPONENTS.Tree, { bPath: fPath, node: c, ctx: ctx, siblings: node.children }, getStableKey(c)))) }) })] }) }));
1164
1119
  },
1165
1120
  };
1166
1121
  export const { Tree } = TREE_COMPONENTS;