mordoc 0.1.13 → 1.0.0

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 (431) hide show
  1. package/LICENSE +7 -0
  2. package/bin/cli.js +24 -71
  3. package/dist/cli/asset-rewrite.d.ts +40 -0
  4. package/dist/cli/asset-rewrite.d.ts.map +1 -0
  5. package/dist/cli/asset-rewrite.js +67 -0
  6. package/dist/cli/asset-rewrite.js.map +1 -0
  7. package/dist/cli/build.d.ts +45 -15
  8. package/dist/cli/build.d.ts.map +1 -1
  9. package/dist/cli/build.js +186 -101
  10. package/dist/cli/build.js.map +1 -1
  11. package/dist/cli/dev.d.ts +26 -14
  12. package/dist/cli/dev.d.ts.map +1 -1
  13. package/dist/cli/dev.js +116 -159
  14. package/dist/cli/dev.js.map +1 -1
  15. package/dist/cli/pagefind-indexer.d.ts +15 -0
  16. package/dist/cli/pagefind-indexer.d.ts.map +1 -0
  17. package/dist/cli/pagefind-indexer.js +68 -0
  18. package/dist/cli/pagefind-indexer.js.map +1 -0
  19. package/dist/cli/paths.d.ts +26 -0
  20. package/dist/cli/paths.d.ts.map +1 -0
  21. package/dist/cli/paths.js +32 -0
  22. package/dist/cli/paths.js.map +1 -0
  23. package/dist/cli/ssg-runner.d.ts +58 -0
  24. package/dist/cli/ssg-runner.d.ts.map +1 -0
  25. package/dist/cli/ssg-runner.js +126 -0
  26. package/dist/cli/ssg-runner.js.map +1 -0
  27. package/dist/config/assets-loader.d.ts +11 -0
  28. package/dist/config/assets-loader.d.ts.map +1 -0
  29. package/dist/config/assets-loader.js +46 -0
  30. package/dist/config/assets-loader.js.map +1 -0
  31. package/dist/config/language-loader.d.ts +11 -0
  32. package/dist/config/language-loader.d.ts.map +1 -0
  33. package/dist/config/language-loader.js +61 -0
  34. package/dist/config/language-loader.js.map +1 -0
  35. package/dist/config/language.d.ts +11 -0
  36. package/dist/config/language.d.ts.map +1 -0
  37. package/dist/config/language.js +61 -0
  38. package/dist/config/language.js.map +1 -0
  39. package/dist/config/sidenav-loader.d.ts +14 -0
  40. package/dist/config/sidenav-loader.d.ts.map +1 -0
  41. package/dist/config/sidenav-loader.js +78 -0
  42. package/dist/config/sidenav-loader.js.map +1 -0
  43. package/dist/config/site-loader.d.ts +11 -0
  44. package/dist/config/site-loader.d.ts.map +1 -0
  45. package/dist/config/site-loader.js +72 -0
  46. package/dist/config/site-loader.js.map +1 -0
  47. package/dist/config/site.d.ts +11 -0
  48. package/dist/config/site.d.ts.map +1 -0
  49. package/dist/config/site.js +72 -0
  50. package/dist/config/site.js.map +1 -0
  51. package/dist/config/topnav-loader.d.ts +10 -0
  52. package/dist/config/topnav-loader.d.ts.map +1 -0
  53. package/dist/config/topnav-loader.js +78 -0
  54. package/dist/config/topnav-loader.js.map +1 -0
  55. package/dist/config/translations-loader.d.ts +7 -0
  56. package/dist/config/translations-loader.d.ts.map +1 -0
  57. package/dist/config/translations-loader.js +51 -0
  58. package/dist/config/translations-loader.js.map +1 -0
  59. package/dist/content/content-loader.d.ts +16 -0
  60. package/dist/content/content-loader.d.ts.map +1 -0
  61. package/dist/content/content-loader.js +126 -0
  62. package/dist/content/content-loader.js.map +1 -0
  63. package/dist/content/content-parser.d.ts +12 -0
  64. package/dist/content/content-parser.d.ts.map +1 -0
  65. package/dist/content/content-parser.js +54 -0
  66. package/dist/content/content-parser.js.map +1 -0
  67. package/dist/content/content-transformer.d.ts +17 -0
  68. package/dist/content/content-transformer.d.ts.map +1 -0
  69. package/dist/content/content-transformer.js +94 -0
  70. package/dist/content/content-transformer.js.map +1 -0
  71. package/dist/content/markdoc-config.d.ts +13 -0
  72. package/dist/content/markdoc-config.d.ts.map +1 -0
  73. package/dist/content/markdoc-config.js +210 -0
  74. package/dist/content/markdoc-config.js.map +1 -0
  75. package/dist/content/slug.d.ts +26 -0
  76. package/dist/content/slug.d.ts.map +1 -0
  77. package/dist/content/slug.js +31 -0
  78. package/dist/content/slug.js.map +1 -0
  79. package/dist/pipeline.d.ts +61 -0
  80. package/dist/pipeline.d.ts.map +1 -0
  81. package/dist/pipeline.js +123 -0
  82. package/dist/pipeline.js.map +1 -0
  83. package/dist/types/assets.d.ts +15 -0
  84. package/dist/types/assets.d.ts.map +1 -0
  85. package/dist/types/assets.js +2 -0
  86. package/dist/types/assets.js.map +1 -0
  87. package/dist/types/content.d.ts +114 -32
  88. package/dist/types/content.d.ts.map +1 -1
  89. package/dist/types/content.js +1 -6
  90. package/dist/types/content.js.map +1 -1
  91. package/dist/types/language.d.ts +9 -0
  92. package/dist/types/language.d.ts.map +1 -0
  93. package/dist/types/language.js +2 -0
  94. package/dist/types/language.js.map +1 -0
  95. package/dist/types/navigation.d.ts +24 -36
  96. package/dist/types/navigation.d.ts.map +1 -1
  97. package/dist/types/navigation.js +1 -6
  98. package/dist/types/navigation.js.map +1 -1
  99. package/dist/types/pipeline.d.ts +70 -0
  100. package/dist/types/pipeline.d.ts.map +1 -0
  101. package/dist/types/pipeline.js +2 -0
  102. package/dist/types/pipeline.js.map +1 -0
  103. package/dist/types/site.d.ts +20 -0
  104. package/dist/types/site.d.ts.map +1 -0
  105. package/dist/types/site.js +2 -0
  106. package/dist/types/site.js.map +1 -0
  107. package/dist/utils/lang-utils.d.ts +23 -0
  108. package/dist/utils/lang-utils.d.ts.map +1 -0
  109. package/dist/utils/lang-utils.js +40 -0
  110. package/dist/utils/lang-utils.js.map +1 -0
  111. package/dist/utils/paths.d.ts +25 -0
  112. package/dist/utils/paths.d.ts.map +1 -0
  113. package/dist/utils/paths.js +31 -0
  114. package/dist/utils/paths.js.map +1 -0
  115. package/dist/vite/plugin.d.ts +93 -0
  116. package/dist/vite/plugin.d.ts.map +1 -0
  117. package/dist/vite/plugin.js +435 -0
  118. package/dist/vite/plugin.js.map +1 -0
  119. package/package.json +46 -61
  120. package/src/app/App.module.css +82 -0
  121. package/src/app/App.tsx +95 -0
  122. package/src/app/content/Content.module.css +357 -0
  123. package/src/app/content/Content.tsx +212 -0
  124. package/src/app/content/callout/Callout.module.css +110 -0
  125. package/src/app/content/callout/Callout.tsx +82 -0
  126. package/src/app/content/card/Card.module.css +146 -0
  127. package/src/app/content/card/Card.tsx +110 -0
  128. package/src/app/content/card/CardGrid.module.css +22 -0
  129. package/src/app/content/card/CardGrid.tsx +34 -0
  130. package/src/app/content/code-block/CodeBlock.module.css +237 -0
  131. package/src/app/content/code-block/CodeBlock.tsx +123 -0
  132. package/src/app/content/heading/Heading.module.css +52 -0
  133. package/src/app/content/heading/Heading.tsx +75 -0
  134. package/src/app/content/image/Image.module.css +113 -0
  135. package/src/app/content/image/Image.tsx +98 -0
  136. package/src/app/content/link/ContentLink.tsx +46 -0
  137. package/src/app/data-context.tsx +39 -0
  138. package/src/app/entry-server.tsx +58 -0
  139. package/src/app/footer/Footer.module.css +36 -0
  140. package/src/app/footer/Footer.tsx +28 -0
  141. package/src/app/globals.d.ts +40 -0
  142. package/src/app/header/Header.module.css +205 -0
  143. package/src/app/header/Header.tsx +188 -0
  144. package/src/app/header/LanguagePicker.module.css +97 -0
  145. package/src/app/header/LanguagePicker.tsx +174 -0
  146. package/src/app/header/SearchBar.module.css +92 -0
  147. package/src/app/header/SearchBar.tsx +37 -0
  148. package/src/app/header/SearchModal.module.css +185 -0
  149. package/src/app/header/SearchModal.tsx +245 -0
  150. package/src/app/header/Topnav.module.css +37 -0
  151. package/src/app/header/Topnav.tsx +30 -0
  152. package/src/app/index.css +119 -0
  153. package/src/app/index.html +13 -0
  154. package/src/app/landing/LandingPage.module.css +14 -0
  155. package/src/app/landing/LandingPage.tsx +62 -0
  156. package/src/app/landing/button/Button.module.css +37 -0
  157. package/src/app/landing/button/Button.tsx +50 -0
  158. package/src/app/landing/hero/Hero.module.css +108 -0
  159. package/src/app/landing/hero/Hero.tsx +81 -0
  160. package/src/app/landing/section/Section.module.css +100 -0
  161. package/src/app/landing/section/Section.tsx +61 -0
  162. package/src/app/lang-utils.ts +11 -0
  163. package/src/app/main.tsx +67 -0
  164. package/src/app/not-found/NotFound.module.css +92 -0
  165. package/src/app/not-found/NotFound.tsx +34 -0
  166. package/src/app/routes.tsx +86 -0
  167. package/src/app/sidenav/Sidenav.module.css +239 -0
  168. package/src/app/sidenav/Sidenav.tsx +182 -0
  169. package/src/app/skeleton/Skeleton.module.css +100 -0
  170. package/src/app/skeleton/Skeleton.tsx +75 -0
  171. package/src/app/toc/Toc.module.css +59 -0
  172. package/src/app/toc/Toc.tsx +77 -0
  173. package/src/app/tsconfig.json +18 -0
  174. package/src/app/virtual-modules.d.ts +74 -0
  175. package/dist/assets/fonts/inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
  176. package/dist/assets/fonts/inter/Inter-VariableFont_opsz,wght.ttf +0 -0
  177. package/dist/assets/fonts/inter/OFL.txt +0 -93
  178. package/dist/build/Builder.d.ts +0 -92
  179. package/dist/build/Builder.d.ts.map +0 -1
  180. package/dist/build/Builder.js +0 -394
  181. package/dist/build/Builder.js.map +0 -1
  182. package/dist/build/ClientBundler.d.ts +0 -48
  183. package/dist/build/ClientBundler.d.ts.map +0 -1
  184. package/dist/build/ClientBundler.js +0 -169
  185. package/dist/build/ClientBundler.js.map +0 -1
  186. package/dist/build/HtmlGenerator.d.ts +0 -46
  187. package/dist/build/HtmlGenerator.d.ts.map +0 -1
  188. package/dist/build/HtmlGenerator.js +0 -190
  189. package/dist/build/HtmlGenerator.js.map +0 -1
  190. package/dist/build/SearchIndexer.d.ts +0 -31
  191. package/dist/build/SearchIndexer.d.ts.map +0 -1
  192. package/dist/build/SearchIndexer.js +0 -116
  193. package/dist/build/SearchIndexer.js.map +0 -1
  194. package/dist/bundles/client.js +0 -126
  195. package/dist/cli/create-app.d.ts +0 -14
  196. package/dist/cli/create-app.d.ts.map +0 -1
  197. package/dist/cli/create-app.js +0 -241
  198. package/dist/cli/create-app.js.map +0 -1
  199. package/dist/client/App.d.ts +0 -17
  200. package/dist/client/App.d.ts.map +0 -1
  201. package/dist/client/App.js +0 -91
  202. package/dist/client/App.js.map +0 -1
  203. package/dist/client/contexts/ConfigContext.d.ts +0 -22
  204. package/dist/client/contexts/ConfigContext.d.ts.map +0 -1
  205. package/dist/client/contexts/ConfigContext.js +0 -27
  206. package/dist/client/contexts/ConfigContext.js.map +0 -1
  207. package/dist/client/contexts/ContentContext.d.ts +0 -31
  208. package/dist/client/contexts/ContentContext.d.ts.map +0 -1
  209. package/dist/client/contexts/ContentContext.js +0 -46
  210. package/dist/client/contexts/ContentContext.js.map +0 -1
  211. package/dist/client/contexts/SearchContext.d.ts +0 -38
  212. package/dist/client/contexts/SearchContext.d.ts.map +0 -1
  213. package/dist/client/contexts/SearchContext.js +0 -185
  214. package/dist/client/contexts/SearchContext.js.map +0 -1
  215. package/dist/client/contexts/ThemeContext.d.ts +0 -23
  216. package/dist/client/contexts/ThemeContext.d.ts.map +0 -1
  217. package/dist/client/contexts/ThemeContext.js +0 -53
  218. package/dist/client/contexts/ThemeContext.js.map +0 -1
  219. package/dist/client/hooks/useContent.d.ts +0 -12
  220. package/dist/client/hooks/useContent.d.ts.map +0 -1
  221. package/dist/client/hooks/useContent.js +0 -74
  222. package/dist/client/hooks/useContent.js.map +0 -1
  223. package/dist/client/hooks/useNavigation.d.ts +0 -15
  224. package/dist/client/hooks/useNavigation.d.ts.map +0 -1
  225. package/dist/client/hooks/useNavigation.js +0 -101
  226. package/dist/client/hooks/useNavigation.js.map +0 -1
  227. package/dist/client/hooks/useSearch.d.ts +0 -22
  228. package/dist/client/hooks/useSearch.d.ts.map +0 -1
  229. package/dist/client/hooks/useSearch.js +0 -64
  230. package/dist/client/hooks/useSearch.js.map +0 -1
  231. package/dist/client/main.d.ts +0 -5
  232. package/dist/client/main.d.ts.map +0 -1
  233. package/dist/client/main.js +0 -66
  234. package/dist/client/main.js.map +0 -1
  235. package/dist/components/Callout.d.ts +0 -9
  236. package/dist/components/Callout.d.ts.map +0 -1
  237. package/dist/components/Callout.js +0 -24
  238. package/dist/components/Callout.js.map +0 -1
  239. package/dist/components/Card.d.ts +0 -10
  240. package/dist/components/Card.d.ts.map +0 -1
  241. package/dist/components/Card.js +0 -15
  242. package/dist/components/Card.js.map +0 -1
  243. package/dist/components/CardGrid.d.ts +0 -8
  244. package/dist/components/CardGrid.d.ts.map +0 -1
  245. package/dist/components/CardGrid.js +0 -9
  246. package/dist/components/CardGrid.js.map +0 -1
  247. package/dist/components/CodeBlock.d.ts +0 -28
  248. package/dist/components/CodeBlock.d.ts.map +0 -1
  249. package/dist/components/CodeBlock.js +0 -80
  250. package/dist/components/CodeBlock.js.map +0 -1
  251. package/dist/components/ContentPage.d.ts +0 -9
  252. package/dist/components/ContentPage.d.ts.map +0 -1
  253. package/dist/components/ContentPage.js +0 -102
  254. package/dist/components/ContentPage.js.map +0 -1
  255. package/dist/components/Header.d.ts +0 -14
  256. package/dist/components/Header.d.ts.map +0 -1
  257. package/dist/components/Header.js +0 -30
  258. package/dist/components/Header.js.map +0 -1
  259. package/dist/components/Heading.d.ts +0 -16
  260. package/dist/components/Heading.d.ts.map +0 -1
  261. package/dist/components/Heading.js +0 -31
  262. package/dist/components/Heading.js.map +0 -1
  263. package/dist/components/Image.d.ts +0 -8
  264. package/dist/components/Image.d.ts.map +0 -1
  265. package/dist/components/Image.js +0 -24
  266. package/dist/components/Image.js.map +0 -1
  267. package/dist/components/Layout.d.ts +0 -14
  268. package/dist/components/Layout.d.ts.map +0 -1
  269. package/dist/components/Layout.js +0 -32
  270. package/dist/components/Layout.js.map +0 -1
  271. package/dist/components/MarkdocRenderer.d.ts +0 -15
  272. package/dist/components/MarkdocRenderer.d.ts.map +0 -1
  273. package/dist/components/MarkdocRenderer.js +0 -73
  274. package/dist/components/MarkdocRenderer.js.map +0 -1
  275. package/dist/components/MobileMenu.d.ts +0 -14
  276. package/dist/components/MobileMenu.d.ts.map +0 -1
  277. package/dist/components/MobileMenu.js +0 -45
  278. package/dist/components/MobileMenu.js.map +0 -1
  279. package/dist/components/PageNavigation.d.ts +0 -9
  280. package/dist/components/PageNavigation.d.ts.map +0 -1
  281. package/dist/components/PageNavigation.js +0 -23
  282. package/dist/components/PageNavigation.js.map +0 -1
  283. package/dist/components/SearchModal.d.ts +0 -9
  284. package/dist/components/SearchModal.d.ts.map +0 -1
  285. package/dist/components/SearchModal.js +0 -74
  286. package/dist/components/SearchModal.js.map +0 -1
  287. package/dist/components/SideNav.d.ts +0 -9
  288. package/dist/components/SideNav.d.ts.map +0 -1
  289. package/dist/components/SideNav.js +0 -66
  290. package/dist/components/SideNav.js.map +0 -1
  291. package/dist/components/TableOfContents.d.ts +0 -10
  292. package/dist/components/TableOfContents.d.ts.map +0 -1
  293. package/dist/components/TableOfContents.js +0 -151
  294. package/dist/components/TableOfContents.js.map +0 -1
  295. package/dist/config/ConfigLoader.d.ts +0 -50
  296. package/dist/config/ConfigLoader.d.ts.map +0 -1
  297. package/dist/config/ConfigLoader.js +0 -214
  298. package/dist/config/ConfigLoader.js.map +0 -1
  299. package/dist/config/StyleCompiler.d.ts +0 -17
  300. package/dist/config/StyleCompiler.d.ts.map +0 -1
  301. package/dist/config/StyleCompiler.js +0 -116
  302. package/dist/config/StyleCompiler.js.map +0 -1
  303. package/dist/config/ThemeGenerator.d.ts +0 -14
  304. package/dist/config/ThemeGenerator.d.ts.map +0 -1
  305. package/dist/config/ThemeGenerator.js +0 -129
  306. package/dist/config/ThemeGenerator.js.map +0 -1
  307. package/dist/content/ContentLoader.d.ts +0 -70
  308. package/dist/content/ContentLoader.d.ts.map +0 -1
  309. package/dist/content/ContentLoader.js +0 -146
  310. package/dist/content/ContentLoader.js.map +0 -1
  311. package/dist/content/ContentProcessor.d.ts +0 -84
  312. package/dist/content/ContentProcessor.d.ts.map +0 -1
  313. package/dist/content/ContentProcessor.js +0 -380
  314. package/dist/content/ContentProcessor.js.map +0 -1
  315. package/dist/content/RouteManager.d.ts +0 -69
  316. package/dist/content/RouteManager.d.ts.map +0 -1
  317. package/dist/content/RouteManager.js +0 -143
  318. package/dist/content/RouteManager.js.map +0 -1
  319. package/dist/styles/components/callout.d.ts +0 -11
  320. package/dist/styles/components/callout.d.ts.map +0 -1
  321. package/dist/styles/components/callout.js +0 -87
  322. package/dist/styles/components/callout.js.map +0 -1
  323. package/dist/styles/components/card.d.ts +0 -11
  324. package/dist/styles/components/card.d.ts.map +0 -1
  325. package/dist/styles/components/card.js +0 -179
  326. package/dist/styles/components/card.js.map +0 -1
  327. package/dist/styles/components/codeblock.d.ts +0 -11
  328. package/dist/styles/components/codeblock.d.ts.map +0 -1
  329. package/dist/styles/components/codeblock.js +0 -251
  330. package/dist/styles/components/codeblock.js.map +0 -1
  331. package/dist/styles/components/content.d.ts +0 -11
  332. package/dist/styles/components/content.d.ts.map +0 -1
  333. package/dist/styles/components/content.js +0 -197
  334. package/dist/styles/components/content.js.map +0 -1
  335. package/dist/styles/components/fonts.d.ts +0 -11
  336. package/dist/styles/components/fonts.d.ts.map +0 -1
  337. package/dist/styles/components/fonts.js +0 -34
  338. package/dist/styles/components/fonts.js.map +0 -1
  339. package/dist/styles/components/header.d.ts +0 -11
  340. package/dist/styles/components/header.d.ts.map +0 -1
  341. package/dist/styles/components/header.js +0 -293
  342. package/dist/styles/components/header.js.map +0 -1
  343. package/dist/styles/components/heading.d.ts +0 -11
  344. package/dist/styles/components/heading.d.ts.map +0 -1
  345. package/dist/styles/components/heading.js +0 -115
  346. package/dist/styles/components/heading.js.map +0 -1
  347. package/dist/styles/components/layout.d.ts +0 -11
  348. package/dist/styles/components/layout.d.ts.map +0 -1
  349. package/dist/styles/components/layout.js +0 -79
  350. package/dist/styles/components/layout.js.map +0 -1
  351. package/dist/styles/components/mobilemenu.d.ts +0 -11
  352. package/dist/styles/components/mobilemenu.d.ts.map +0 -1
  353. package/dist/styles/components/mobilemenu.js +0 -112
  354. package/dist/styles/components/mobilemenu.js.map +0 -1
  355. package/dist/styles/components/reset.d.ts +0 -11
  356. package/dist/styles/components/reset.d.ts.map +0 -1
  357. package/dist/styles/components/reset.js +0 -131
  358. package/dist/styles/components/reset.js.map +0 -1
  359. package/dist/styles/components/searchmodal.d.ts +0 -11
  360. package/dist/styles/components/searchmodal.d.ts.map +0 -1
  361. package/dist/styles/components/searchmodal.js +0 -333
  362. package/dist/styles/components/searchmodal.js.map +0 -1
  363. package/dist/styles/components/sidenav.d.ts +0 -11
  364. package/dist/styles/components/sidenav.d.ts.map +0 -1
  365. package/dist/styles/components/sidenav.js +0 -212
  366. package/dist/styles/components/sidenav.js.map +0 -1
  367. package/dist/styles/components/toc.d.ts +0 -11
  368. package/dist/styles/components/toc.d.ts.map +0 -1
  369. package/dist/styles/components/toc.js +0 -120
  370. package/dist/styles/components/toc.js.map +0 -1
  371. package/dist/styles/components/typography.d.ts +0 -11
  372. package/dist/styles/components/typography.d.ts.map +0 -1
  373. package/dist/styles/components/typography.js +0 -248
  374. package/dist/styles/components/typography.js.map +0 -1
  375. package/dist/styles/components/utility.d.ts +0 -11
  376. package/dist/styles/components/utility.d.ts.map +0 -1
  377. package/dist/styles/components/utility.js +0 -231
  378. package/dist/styles/components/utility.js.map +0 -1
  379. package/dist/styles/types.d.ts +0 -79
  380. package/dist/styles/types.d.ts.map +0 -1
  381. package/dist/styles/types.js +0 -7
  382. package/dist/styles/types.js.map +0 -1
  383. package/dist/styles/utils.d.ts +0 -21
  384. package/dist/styles/utils.d.ts.map +0 -1
  385. package/dist/styles/utils.js +0 -50
  386. package/dist/styles/utils.js.map +0 -1
  387. package/dist/styles/variables/main.d.ts +0 -15
  388. package/dist/styles/variables/main.d.ts.map +0 -1
  389. package/dist/styles/variables/main.js +0 -116
  390. package/dist/styles/variables/main.js.map +0 -1
  391. package/dist/types/config.d.ts +0 -43
  392. package/dist/types/config.d.ts.map +0 -1
  393. package/dist/types/config.js +0 -7
  394. package/dist/types/config.js.map +0 -1
  395. package/dist/utils/language-utils.d.ts +0 -41
  396. package/dist/utils/language-utils.d.ts.map +0 -1
  397. package/dist/utils/language-utils.js +0 -79
  398. package/dist/utils/language-utils.js.map +0 -1
  399. package/dist/utils/slugify.d.ts +0 -20
  400. package/dist/utils/slugify.d.ts.map +0 -1
  401. package/dist/utils/slugify.js +0 -44
  402. package/dist/utils/slugify.js.map +0 -1
  403. package/templates/default/config/favicon.ico +0 -0
  404. package/templates/default/config/logo-dark.png +0 -0
  405. package/templates/default/config/logo.png +0 -0
  406. package/templates/default/config/sidenav.yaml +0 -36
  407. package/templates/default/config/site.json +0 -16
  408. package/templates/default/config/styles/main.json +0 -6
  409. package/templates/default/config/styles/typography.json +0 -6
  410. package/templates/default/content/en/changelog.md +0 -35
  411. package/templates/default/content/en/faq.md +0 -50
  412. package/templates/default/content/en/field-manual/engines.md +0 -59
  413. package/templates/default/content/en/field-manual/relativity.md +0 -46
  414. package/templates/default/content/en/field-manual/safety.md +0 -44
  415. package/templates/default/content/en/field-manual.md +0 -22
  416. package/templates/default/content/en/flight-school/navigation.md +0 -61
  417. package/templates/default/content/en/flight-school/primer.md +0 -64
  418. package/templates/default/content/en/flight-school.md +0 -48
  419. package/templates/default/content/en/index.md +0 -83
  420. package/templates/default/content/en/ship-systems/flux-sails.md +0 -33
  421. package/templates/default/content/en/ship-systems/photonic-core.md +0 -39
  422. package/templates/default/content/en/ship-systems.md +0 -25
  423. package/templates/default/package.json +0 -21
  424. package/templates/default/public/icons/academy.svg +0 -15
  425. package/templates/default/public/icons/manual.svg +0 -16
  426. package/templates/default/public/icons/relativity.svg +0 -16
  427. package/templates/default/public/icons/systems.svg +0 -14
  428. package/templates/default/public/icons/warning.svg +0 -14
  429. package/templates/default/public/images/flux-sails.svg +0 -33
  430. package/templates/default/public/images/photonic-core.svg +0 -44
  431. package/templates/default/public/images/starwake.svg +0 -49
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Image = Image;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- function Image({ src, alt, ...rest }) {
6
- const handleClick = (e) => {
7
- const modal = document.createElement('div');
8
- modal.className = 'image-modal';
9
- modal.onclick = () => modal.remove();
10
- const closeBtn = document.createElement('button');
11
- closeBtn.className = 'image-modal-close';
12
- closeBtn.innerHTML = '×';
13
- closeBtn.onclick = () => modal.remove();
14
- const img = document.createElement('img');
15
- img.src = src;
16
- img.alt = alt || '';
17
- img.onclick = (e) => e.stopPropagation();
18
- modal.appendChild(closeBtn);
19
- modal.appendChild(img);
20
- document.body.appendChild(modal);
21
- };
22
- return ((0, jsx_runtime_1.jsx)("img", { ...rest, src: src, alt: alt || '', loading: "lazy", onClick: handleClick }));
23
- }
24
- //# sourceMappingURL=Image.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../src/components/Image.tsx"],"names":[],"mappings":";;AAQA,sBA8BC;;AA9BD,SAAgB,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAc;IACrD,MAAM,WAAW,GAAG,CAAC,CAAqC,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;QAChC,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAErC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClD,QAAQ,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACzC,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;QACzB,QAAQ,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAExC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;QACd,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;QACpB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAEzC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5B,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO,CACL,mCACM,IAAI,EACR,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,IAAI,EAAE,EACd,OAAO,EAAC,MAAM,EACd,OAAO,EAAE,WAAW,GACpB,CACH,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Layout - Main layout wrapper for all pages
3
- */
4
- import { ReactNode } from 'react';
5
- interface LayoutProps {
6
- children: ReactNode;
7
- showSidebar?: boolean;
8
- }
9
- /**
10
- * Main layout component
11
- */
12
- export declare function Layout({ children, showSidebar }: LayoutProps): import("react/jsx-runtime").JSX.Element;
13
- export default Layout;
14
- //# sourceMappingURL=Layout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../src/components/Layout.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAc,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAMnD,UAAU,WAAW;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAkB,EAAE,EAAE,WAAW,2CA6CnE;AAED,eAAe,MAAM,CAAC"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Layout = Layout;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- /**
9
- * Layout - Main layout wrapper for all pages
10
- */
11
- const react_1 = require("react");
12
- const Header_1 = __importDefault(require("./Header"));
13
- const SideNav_1 = __importDefault(require("./SideNav"));
14
- const MobileMenu_1 = __importDefault(require("./MobileMenu"));
15
- const ConfigContext_1 = require("../client/contexts/ConfigContext");
16
- /**
17
- * Main layout component
18
- */
19
- function Layout({ children, showSidebar = true }) {
20
- const { config } = (0, ConfigContext_1.useConfig)();
21
- const [isMobileMenuOpen, setIsMobileMenuOpen] = (0, react_1.useState)(false);
22
- const handleMobileMenuToggle = () => {
23
- setIsMobileMenuOpen(!isMobileMenuOpen);
24
- };
25
- const handleMobileMenuClose = () => {
26
- setIsMobileMenuOpen(false);
27
- };
28
- const hasSidenav = showSidebar && config.navigation.sidenav;
29
- return ((0, jsx_runtime_1.jsxs)("div", { className: "layout", children: [(0, jsx_runtime_1.jsx)(Header_1.default, { onMobileMenuToggle: hasSidenav ? handleMobileMenuToggle : undefined, showMobileMenu: !!hasSidenav }), (0, jsx_runtime_1.jsxs)("div", { className: "layout-container", children: [hasSidenav && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("aside", { className: "layout-sidebar", children: (0, jsx_runtime_1.jsx)(SideNav_1.default, {}) }), (0, jsx_runtime_1.jsx)(MobileMenu_1.default, { isOpen: isMobileMenuOpen, onClose: handleMobileMenuClose })] })), (0, jsx_runtime_1.jsx)("main", { className: "layout-main", children: (0, jsx_runtime_1.jsx)("div", { className: "layout-main-inner", children: children }) })] })] }));
30
- }
31
- exports.default = Layout;
32
- //# sourceMappingURL=Layout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../src/components/Layout.tsx"],"names":[],"mappings":";;;;;AAkBA,wBA6CC;;AA/DD;;GAEG;AAEH,iCAAmD;AACnD,sDAA8B;AAC9B,wDAAgC;AAChC,8DAAsC;AACtC,oEAA6D;AAO7D;;GAEG;AACH,SAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,EAAe;IAClE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,yBAAS,GAAE,CAAC;IAC/B,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,mBAAmB,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;IAE5D,OAAO,CACL,iCAAK,SAAS,EAAC,QAAQ,aACrB,uBAAC,gBAAM,IACL,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,EACnE,cAAc,EAAE,CAAC,CAAC,UAAU,GAC5B,EAEF,iCAAK,SAAS,EAAC,kBAAkB,aAC9B,UAAU,IAAI,CACb,6DAEE,kCAAO,SAAS,EAAC,gBAAgB,YAC/B,uBAAC,iBAAO,KAAG,GACL,EAGR,uBAAC,oBAAU,IACT,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,qBAAqB,GAC9B,IACD,CACJ,EAED,iCAAM,SAAS,EAAC,aAAa,YAC3B,gCAAK,SAAS,EAAC,mBAAmB,YAC/B,QAAQ,GACL,GACD,IACH,IACF,CACP,CAAC;AACJ,CAAC;AAED,kBAAe,MAAM,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * MarkdocRenderer - Renders Markdoc content as React components
3
- */
4
- import React from 'react';
5
- import { MarkdocRenderableNode } from '../types/content';
6
- interface MarkdocRendererProps {
7
- content: MarkdocRenderableNode;
8
- components?: Record<string, React.ComponentType<any>>;
9
- }
10
- /**
11
- * Renders Markdoc renderable tree as React components
12
- */
13
- export declare function MarkdocRenderer({ content, components }: MarkdocRendererProps): import("react/jsx-runtime").JSX.Element;
14
- export default MarkdocRenderer;
15
- //# sourceMappingURL=MarkdocRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdocRenderer.d.ts","sourceRoot":"","sources":["../../src/components/MarkdocRenderer.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAQzD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,UAAe,EAAE,EAAE,oBAAoB,2CAYjF;AAiED,eAAe,eAAe,CAAC"}
@@ -1,73 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MarkdocRenderer = MarkdocRenderer;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- /**
9
- * MarkdocRenderer - Renders Markdoc content as React components
10
- */
11
- const react_1 = __importDefault(require("react"));
12
- const markdoc_1 = __importDefault(require("@markdoc/markdoc"));
13
- const CodeBlock_1 = __importDefault(require("./CodeBlock"));
14
- const Heading_1 = __importDefault(require("./Heading"));
15
- const Image_1 = require("./Image");
16
- const Card_1 = __importDefault(require("./Card"));
17
- const CardGrid_1 = __importDefault(require("./CardGrid"));
18
- const Callout_1 = __importDefault(require("./Callout"));
19
- /**
20
- * Renders Markdoc renderable tree as React components
21
- */
22
- function MarkdocRenderer({ content, components = {} }) {
23
- // Markdoc's React renderer
24
- const rendered = markdoc_1.default.renderers.react(content, react_1.default, {
25
- components: {
26
- // Default HTML tag mappings
27
- ...getDefaultComponents(),
28
- // Custom component overrides
29
- ...components,
30
- },
31
- });
32
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: rendered });
33
- }
34
- /**
35
- * Default component mappings for HTML elements
36
- */
37
- function getDefaultComponents() {
38
- return {
39
- // Headings with anchor links
40
- h1: (props) => (0, jsx_runtime_1.jsx)(Heading_1.default, { level: 1, ...props }),
41
- h2: (props) => (0, jsx_runtime_1.jsx)(Heading_1.default, { level: 2, ...props }),
42
- h3: (props) => (0, jsx_runtime_1.jsx)(Heading_1.default, { level: 3, ...props }),
43
- h4: (props) => (0, jsx_runtime_1.jsx)(Heading_1.default, { level: 4, ...props }),
44
- h5: (props) => (0, jsx_runtime_1.jsx)(Heading_1.default, { level: 5, ...props }),
45
- h6: (props) => (0, jsx_runtime_1.jsx)(Heading_1.default, { level: 6, ...props }),
46
- //links
47
- a: (props) => {
48
- const { href, children, ...rest } = props;
49
- const isExternal = href?.startsWith('http://') || href?.startsWith('https://');
50
- return ((0, jsx_runtime_1.jsx)("a", { href: href, target: isExternal ? '_blank' : undefined, rel: isExternal ? 'noopener noreferrer' : undefined, ...rest, children: children }));
51
- },
52
- // Inline code (not highlighted)
53
- code: (props) => (0, jsx_runtime_1.jsx)("code", { className: "inline-code", ...props }),
54
- //tables
55
- table: (props) => ((0, jsx_runtime_1.jsx)("div", { className: "table-wrapper", children: (0, jsx_runtime_1.jsx)("table", { ...props }) })),
56
- //blockquote
57
- blockquote: (props) => (0, jsx_runtime_1.jsx)("blockquote", { className: "callout", ...props }),
58
- // Custom components
59
- // Maps 'Heading' string → Heading component
60
- Heading: Heading_1.default,
61
- // Code blocks with syntax highlighting
62
- CodeBlock: CodeBlock_1.default,
63
- // Images with click-to-expand
64
- Image: Image_1.Image,
65
- // Cards and card grid containers
66
- Card: Card_1.default,
67
- CardGrid: CardGrid_1.default,
68
- // Callout boxes
69
- Callout: Callout_1.default,
70
- };
71
- }
72
- exports.default = MarkdocRenderer;
73
- //# sourceMappingURL=MarkdocRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdocRenderer.js","sourceRoot":"","sources":["../../src/components/MarkdocRenderer.tsx"],"names":[],"mappings":";;;;;AAsBA,0CAYC;;AAlCD;;GAEG;AAEH,kDAA0B;AAC1B,+DAAuC;AAEvC,4DAAoC;AACpC,wDAAgC;AAChC,mCAAgC;AAChC,kDAA0B;AAC1B,0DAAkC;AAClC,wDAAgC;AAOhC;;GAEG;AACH,SAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,UAAU,GAAG,EAAE,EAAwB;IAChF,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,iBAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,eAAK,EAAE;QACvD,UAAU,EAAE;YACV,4BAA4B;YAC5B,GAAG,oBAAoB,EAAE;YACzB,6BAA6B;YAC7B,GAAG,UAAU;SACd;KACF,CAAC,CAAC;IAEH,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO;QACL,6BAA6B;QAC7B,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,uBAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,KAAM,KAAK,GAAI;QACpD,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,uBAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,KAAM,KAAK,GAAI;QACpD,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,uBAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,KAAM,KAAK,GAAI;QACpD,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,uBAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,KAAM,KAAK,GAAI;QACpD,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,uBAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,KAAM,KAAK,GAAI;QACpD,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,uBAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,KAAM,KAAK,GAAI;QAEpD,OAAO;QACP,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YAChB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;YAE/E,OAAO,CACL,8BACE,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACzC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,KAC/C,IAAI,YAEP,QAAQ,GACP,CACL,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,IAAI,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,iCAAM,SAAS,EAAC,aAAa,KAAK,KAAK,GAAI;QAEjE,QAAQ;QACR,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,CACrB,gCAAK,SAAS,EAAC,eAAe,YAC5B,qCAAW,KAAK,GAAI,GAChB,CACP;QAED,YAAY;QACZ,UAAU,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,uCAAY,SAAS,EAAC,SAAS,KAAK,KAAK,GAAI;QAEzE,oBAAoB;QACpB,4CAA4C;QAC5C,OAAO,EAAE,iBAAO;QAEhB,uCAAuC;QACvC,SAAS,EAAE,mBAAS;QAEpB,8BAA8B;QAC9B,KAAK,EAAE,aAAK;QAEZ,iCAAiC;QACjC,IAAI,EAAE,cAAI;QACV,QAAQ,EAAE,kBAAQ;QAElB,gBAAgB;QAChB,OAAO,EAAE,iBAAO;KAEjB,CAAC;AACJ,CAAC;AAED,kBAAe,eAAe,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * MobileMenu - Mobile drawer menu component
3
- * Displays sidenav in a slide-out drawer on mobile devices
4
- */
5
- interface MobileMenuProps {
6
- isOpen: boolean;
7
- onClose: () => void;
8
- }
9
- /**
10
- * Mobile menu drawer component
11
- */
12
- export declare function MobileMenu({ isOpen, onClose }: MobileMenuProps): import("react/jsx-runtime").JSX.Element | null;
13
- export default MobileMenu;
14
- //# sourceMappingURL=MobileMenu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MobileMenu.d.ts","sourceRoot":"","sources":["../../src/components/MobileMenu.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,UAAU,eAAe;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe,kDAoE9D;AAED,eAAe,UAAU,CAAC"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MobileMenu = MobileMenu;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- /**
9
- * MobileMenu - Mobile drawer menu component
10
- * Displays sidenav in a slide-out drawer on mobile devices
11
- */
12
- const react_1 = require("react");
13
- const SideNav_1 = __importDefault(require("./SideNav"));
14
- /**
15
- * Mobile menu drawer component
16
- */
17
- function MobileMenu({ isOpen, onClose }) {
18
- // Prevent body scroll when menu is open
19
- (0, react_1.useEffect)(() => {
20
- if (isOpen) {
21
- document.body.style.overflow = 'hidden';
22
- }
23
- else {
24
- document.body.style.overflow = '';
25
- }
26
- return () => {
27
- document.body.style.overflow = '';
28
- };
29
- }, [isOpen]);
30
- // Close on escape key
31
- (0, react_1.useEffect)(() => {
32
- const handleEscape = (e) => {
33
- if (e.key === 'Escape' && isOpen) {
34
- onClose();
35
- }
36
- };
37
- document.addEventListener('keydown', handleEscape);
38
- return () => document.removeEventListener('keydown', handleEscape);
39
- }, [isOpen, onClose]);
40
- if (!isOpen)
41
- return null;
42
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "mobile-menu-backdrop", onClick: onClose, "aria-hidden": "true" }), (0, jsx_runtime_1.jsxs)("aside", { className: "mobile-menu-drawer", role: "dialog", "aria-modal": "true", children: [(0, jsx_runtime_1.jsx)("div", { className: "mobile-menu-header", children: (0, jsx_runtime_1.jsx)("button", { className: "mobile-menu-close", onClick: onClose, "aria-label": "Close menu", children: (0, jsx_runtime_1.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [(0, jsx_runtime_1.jsx)("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), (0, jsx_runtime_1.jsx)("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }) }) }), (0, jsx_runtime_1.jsx)("div", { className: "mobile-menu-content", children: (0, jsx_runtime_1.jsx)(SideNav_1.default, {}) })] })] }));
43
- }
44
- exports.default = MobileMenu;
45
- //# sourceMappingURL=MobileMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MobileMenu.js","sourceRoot":"","sources":["../../src/components/MobileMenu.tsx"],"names":[],"mappings":";;;;;AAgBA,gCAoEC;;AApFD;;;GAGG;AAEH,iCAAyC;AACzC,wDAAgC;AAOhC;;GAEG;AACH,SAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAmB;IAC7D,wCAAwC;IACxC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACpC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,sBAAsB;IACtB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,CAAC,CAAgB,EAAE,EAAE;YACxC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACnD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtB,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,OAAO,CACL,6DAEE,gCACE,SAAS,EAAC,sBAAsB,EAChC,OAAO,EAAE,OAAO,iBACJ,MAAM,GAClB,EAGF,mCAAO,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAC,QAAQ,gBAAY,MAAM,aACnE,gCAAK,SAAS,EAAC,oBAAoB,YACjC,mCACE,SAAS,EAAC,mBAAmB,EAC7B,OAAO,EAAE,OAAO,gBACL,YAAY,YAEvB,iCACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,aAEtB,iCAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,GAAQ,EAC3C,iCAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAQ,IACvC,GACC,GACL,EAEN,gCAAK,SAAS,EAAC,qBAAqB,YAClC,uBAAC,iBAAO,KAAG,GACP,IACA,IACP,CACJ,CAAC;AACJ,CAAC;AAED,kBAAe,UAAU,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * PageNavigation - Previous/Next page links
3
- */
4
- /**
5
- * Page navigation component (prev/next links)
6
- */
7
- export declare function PageNavigation(): import("react/jsx-runtime").JSX.Element | null;
8
- export default PageNavigation;
9
- //# sourceMappingURL=PageNavigation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PageNavigation.d.ts","sourceRoot":"","sources":["../../src/components/PageNavigation.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,wBAAgB,cAAc,mDAqC7B;AAED,eAAe,cAAc,CAAC"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PageNavigation = PageNavigation;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_router_dom_1 = require("react-router-dom");
6
- const ContentContext_1 = require("../client/contexts/ContentContext");
7
- /**
8
- * Page navigation component (prev/next links)
9
- */
10
- function PageNavigation() {
11
- const { navigationContext } = (0, ContentContext_1.useContent)();
12
- if (!navigationContext || !navigationContext.pageNavigation) {
13
- return null;
14
- }
15
- const { prev, next } = navigationContext.pageNavigation;
16
- // Don't render if no prev or next
17
- if (!prev && !next) {
18
- return null;
19
- }
20
- return ((0, jsx_runtime_1.jsx)("nav", { className: "page-navigation", "aria-label": "Page navigation", children: (0, jsx_runtime_1.jsxs)("div", { className: "page-nav-container", children: [prev ? ((0, jsx_runtime_1.jsxs)(react_router_dom_1.Link, { to: prev.path, className: "page-nav-link page-nav-prev", children: [(0, jsx_runtime_1.jsx)("span", { className: "page-nav-direction", children: "\u2190 Previous" }), (0, jsx_runtime_1.jsx)("span", { className: "page-nav-label", children: prev.label })] })) : ((0, jsx_runtime_1.jsx)("div", { className: "page-nav-spacer" })), next ? ((0, jsx_runtime_1.jsxs)(react_router_dom_1.Link, { to: next.path, className: "page-nav-link page-nav-next", children: [(0, jsx_runtime_1.jsx)("span", { className: "page-nav-direction", children: "Next \u2192" }), (0, jsx_runtime_1.jsx)("span", { className: "page-nav-label", children: next.label })] })) : ((0, jsx_runtime_1.jsx)("div", { className: "page-nav-spacer" }))] }) }));
21
- }
22
- exports.default = PageNavigation;
23
- //# sourceMappingURL=PageNavigation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PageNavigation.js","sourceRoot":"","sources":["../../src/components/PageNavigation.tsx"],"names":[],"mappings":";;AAWA,wCAqCC;;AA3CD,uDAAwC;AACxC,sEAA+D;AAE/D;;GAEG;AACH,SAAgB,cAAc;IAC5B,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,2BAAU,GAAE,CAAC;IAE3C,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,cAAc,CAAC;IAExD,kCAAkC;IAClC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,gCAAK,SAAS,EAAC,iBAAiB,gBAAY,iBAAiB,YAC3D,iCAAK,SAAS,EAAC,oBAAoB,aAChC,IAAI,CAAC,CAAC,CAAC,CACN,wBAAC,uBAAI,IAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAC,6BAA6B,aAC1D,iCAAM,SAAS,EAAC,oBAAoB,gCAAkB,EACtD,iCAAM,SAAS,EAAC,gBAAgB,YAAE,IAAI,CAAC,KAAK,GAAQ,IAC/C,CACR,CAAC,CAAC,CAAC,CACF,gCAAK,SAAS,EAAC,iBAAiB,GAAG,CACpC,EAEA,IAAI,CAAC,CAAC,CAAC,CACN,wBAAC,uBAAI,IAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAC,6BAA6B,aAC1D,iCAAM,SAAS,EAAC,oBAAoB,4BAAc,EAClD,iCAAM,SAAS,EAAC,gBAAgB,YAAE,IAAI,CAAC,KAAK,GAAQ,IAC/C,CACR,CAAC,CAAC,CAAC,CACF,gCAAK,SAAS,EAAC,iBAAiB,GAAG,CACpC,IACG,GACF,CACP,CAAC;AACJ,CAAC;AAED,kBAAe,cAAc,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * SearchModal - Search modal with keyboard shortcuts
3
- */
4
- /**
5
- * Search modal component
6
- */
7
- export declare function SearchModal(): import("react/jsx-runtime").JSX.Element | null;
8
- export default SearchModal;
9
- //# sourceMappingURL=SearchModal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchModal.d.ts","sourceRoot":"","sources":["../../src/components/SearchModal.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,wBAAgB,WAAW,mDAiJ1B;AAED,eAAe,WAAW,CAAC"}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SearchModal = SearchModal;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- /**
6
- * SearchModal - Search modal with keyboard shortcuts
7
- */
8
- const react_1 = require("react");
9
- const useSearch_1 = require("../client/hooks/useSearch");
10
- const useNavigation_1 = require("../client/hooks/useNavigation");
11
- /**
12
- * Search modal component
13
- */
14
- function SearchModal() {
15
- const { isOpen, closeSearch, query, setQuery, results, isSearching, debouncedSearch, } = (0, useSearch_1.useSearch)();
16
- const { navigateToPath } = (0, useNavigation_1.useNavigation)();
17
- const inputRef = (0, react_1.useRef)(null);
18
- const [selectedIndex, setSelectedIndex] = (0, react_1.useState)(0);
19
- // Focus input when modal opens
20
- (0, react_1.useEffect)(() => {
21
- if (isOpen && inputRef.current) {
22
- inputRef.current.focus();
23
- setSelectedIndex(0);
24
- }
25
- }, [isOpen]);
26
- // Reset selected index when results change
27
- (0, react_1.useEffect)(() => {
28
- setSelectedIndex(0);
29
- }, [results]);
30
- // Handle input change with debounced search
31
- const handleInputChange = (e) => {
32
- const value = e.target.value;
33
- setQuery(value);
34
- debouncedSearch(value);
35
- };
36
- // Handle result click
37
- const handleResultClick = (url) => {
38
- closeSearch();
39
- navigateToPath(url);
40
- };
41
- // Handle backdrop click
42
- const handleBackdropClick = (e) => {
43
- if (e.target === e.currentTarget) {
44
- closeSearch();
45
- }
46
- };
47
- // Handle keyboard navigation
48
- const handleKeyDown = (e) => {
49
- if (results.length === 0)
50
- return;
51
- switch (e.key) {
52
- case 'ArrowDown':
53
- e.preventDefault();
54
- setSelectedIndex((prev) => (prev + 1) % results.length);
55
- break;
56
- case 'ArrowUp':
57
- e.preventDefault();
58
- setSelectedIndex((prev) => (prev - 1 + results.length) % results.length);
59
- break;
60
- case 'Enter':
61
- e.preventDefault();
62
- if (results[selectedIndex]) {
63
- handleResultClick(results[selectedIndex].url);
64
- }
65
- break;
66
- }
67
- };
68
- if (!isOpen) {
69
- return null;
70
- }
71
- return ((0, jsx_runtime_1.jsx)("div", { className: "search-modal-backdrop", onClick: handleBackdropClick, children: (0, jsx_runtime_1.jsxs)("div", { className: "search-modal", onKeyDown: handleKeyDown, children: [(0, jsx_runtime_1.jsxs)("div", { className: "search-input-container", children: [(0, jsx_runtime_1.jsxs)("svg", { className: "search-input-icon", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [(0, jsx_runtime_1.jsx)("circle", { cx: "11", cy: "11", r: "8" }), (0, jsx_runtime_1.jsx)("path", { d: "m21 21-4.3-4.3" })] }), (0, jsx_runtime_1.jsx)("input", { ref: inputRef, type: "text", className: "search-input", placeholder: "Search documentation...", value: query, onChange: handleInputChange, "aria-label": "Search" })] }), (0, jsx_runtime_1.jsx)("div", { className: "search-results", children: isSearching ? ((0, jsx_runtime_1.jsx)("div", { className: "search-loading", children: (0, jsx_runtime_1.jsx)("p", { children: "Searching..." }) })) : query.trim() === '' ? ((0, jsx_runtime_1.jsx)("div", { className: "search-empty", children: (0, jsx_runtime_1.jsx)("p", { className: "search-empty-text", children: "Start typing to search" }) })) : results.length === 0 ? ((0, jsx_runtime_1.jsxs)("div", { className: "search-no-results", children: [(0, jsx_runtime_1.jsxs)("p", { children: ["No results found for \"", query, "\""] }), (0, jsx_runtime_1.jsx)("p", { className: "search-help-text", children: "Try different keywords or check your spelling" })] })) : ((0, jsx_runtime_1.jsx)("ul", { className: "search-results-list", children: results.map((result, index) => ((0, jsx_runtime_1.jsx)("li", { className: "search-result-item", children: (0, jsx_runtime_1.jsxs)("button", { className: `search-result-link ${index === selectedIndex ? 'selected' : ''}`, onClick: () => handleResultClick(result.url), onMouseEnter: () => setSelectedIndex(index), children: [(0, jsx_runtime_1.jsx)("div", { className: "search-result-title", children: result.title }), (0, jsx_runtime_1.jsx)("div", { className: "search-result-excerpt", dangerouslySetInnerHTML: { __html: result.excerpt } }), (0, jsx_runtime_1.jsx)("div", { className: "search-result-url", children: result.url })] }) }, result.id))) })) })] }) }));
72
- }
73
- exports.default = SearchModal;
74
- //# sourceMappingURL=SearchModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchModal.js","sourceRoot":"","sources":["../../src/components/SearchModal.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * SideNav - Sidebar navigation component
3
- */
4
- /**
5
- * Sidebar navigation component
6
- */
7
- export declare function SideNav(): import("react/jsx-runtime").JSX.Element;
8
- export default SideNav;
9
- //# sourceMappingURL=SideNav.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SideNav.d.ts","sourceRoot":"","sources":["../../src/components/SideNav.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;GAEG;AACH,wBAAgB,OAAO,4CAqBtB;AAmID,eAAe,OAAO,CAAC"}
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SideNav = SideNav;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- /**
6
- * SideNav - Sidebar navigation component
7
- */
8
- const react_1 = require("react");
9
- const react_router_dom_1 = require("react-router-dom");
10
- const ConfigContext_1 = require("../client/contexts/ConfigContext");
11
- /**
12
- * Sidebar navigation component
13
- */
14
- function SideNav() {
15
- const { config } = (0, ConfigContext_1.useConfig)();
16
- const location = (0, react_router_dom_1.useLocation)();
17
- // TODO: Determine which sidenav to show based on current page or topnav selection
18
- const sidenavItems = config.navigation.sidenav || [];
19
- return ((0, jsx_runtime_1.jsx)("nav", { className: "sidenav", children: (0, jsx_runtime_1.jsx)("ul", { className: "sidenav-list", children: sidenavItems.map((item, index) => ((0, jsx_runtime_1.jsx)(SideNavItem, { item: item, currentPath: location.pathname, depth: 0 }, index))) }) }));
20
- }
21
- /**
22
- * Individual sidebar navigation item (recursive for nested items)
23
- */
24
- function SideNavItem({ item, currentPath, depth }) {
25
- const [isExpanded, setIsExpanded] = (0, react_1.useState)(true);
26
- const hasChildren = item.children && item.children.length > 0;
27
- // Check if current path matches this item
28
- const isActive = item.path === currentPath;
29
- // Check if any child is active
30
- const hasActiveChild = hasChildren && item.children.some(child => isPathActive(child, currentPath));
31
- const handleToggle = () => {
32
- if (hasChildren) {
33
- setIsExpanded(!isExpanded);
34
- }
35
- };
36
- // Handle click for parent items with links
37
- const handleLinkClick = (e) => {
38
- if (hasChildren) {
39
- // If this item is already active, toggle collapse/expand
40
- if (isActive) {
41
- setIsExpanded(!isExpanded);
42
- }
43
- else {
44
- // If navigating to a new page, ensure children stay expanded
45
- setIsExpanded(true);
46
- }
47
- // Don't prevent default - let the Link navigate
48
- }
49
- };
50
- const ChevronIcon = () => ((0, jsx_runtime_1.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 8 8", xmlns: "http://www.w3.org/2000/svg", className: `sidenav-chevron ${isExpanded ? 'expanded' : 'collapsed'}`, "aria-hidden": "true", children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M.606 2.334a.75.75 0 0 0-.022 1.06l2.875 3a.75.75 0 0 0 1.082 0L7.416 3.4a.75.75 0 0 0-1.082-1.038L4 4.79 1.667 2.357a.75.75 0 0 0-1.06-.022Z", fill: "currentColor" }) }));
51
- return ((0, jsx_runtime_1.jsxs)("li", { className: `sidenav-item sidenav-item-depth-${depth}`, children: [item.path ? (item.external ? ((0, jsx_runtime_1.jsxs)("a", { href: item.path, className: `sidenav-link ${isActive ? 'active' : ''}`, target: "_blank", rel: "noopener noreferrer", onClick: handleLinkClick, children: [item.icon && (0, jsx_runtime_1.jsx)("span", { className: "sidenav-icon", children: item.icon }), (0, jsx_runtime_1.jsx)("span", { className: "sidenav-label", children: item.label }), hasChildren && (0, jsx_runtime_1.jsx)(ChevronIcon, {})] })) : ((0, jsx_runtime_1.jsxs)(react_router_dom_1.Link, { to: item.path, className: `sidenav-link ${isActive ? 'active' : ''}`, onClick: handleLinkClick, children: [item.icon && (0, jsx_runtime_1.jsx)("span", { className: "sidenav-icon", children: item.icon }), (0, jsx_runtime_1.jsx)("span", { className: "sidenav-label", children: item.label }), hasChildren && (0, jsx_runtime_1.jsx)(ChevronIcon, {})] }))) : ((0, jsx_runtime_1.jsxs)("button", { className: `sidenav-link sidenav-group-label ${hasActiveChild ? 'has-active-child' : ''}`, onClick: handleToggle, children: [item.icon && (0, jsx_runtime_1.jsx)("span", { className: "sidenav-icon", children: item.icon }), (0, jsx_runtime_1.jsx)("span", { className: "sidenav-label", children: item.label }), hasChildren && (0, jsx_runtime_1.jsx)(ChevronIcon, {})] })), hasChildren && ((0, jsx_runtime_1.jsx)("div", { className: `sidenav-sublist-wrapper ${isExpanded ? 'expanded' : 'collapsed'}`, children: (0, jsx_runtime_1.jsx)("ul", { className: "sidenav-sublist", children: item.children.map((child, index) => ((0, jsx_runtime_1.jsx)(SideNavItem, { item: child, currentPath: currentPath, depth: depth + 1 }, index))) }) }))] }));
52
- }
53
- /**
54
- * Check if a navigation item or any of its children match the current path
55
- */
56
- function isPathActive(item, currentPath) {
57
- if (item.path === currentPath) {
58
- return true;
59
- }
60
- if (item.children && item.children.length > 0) {
61
- return item.children.some(child => isPathActive(child, currentPath));
62
- }
63
- return false;
64
- }
65
- exports.default = SideNav;
66
- //# sourceMappingURL=SideNav.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SideNav.js","sourceRoot":"","sources":["../../src/components/SideNav.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * TableOfContents - Displays page headings for quick navigation
3
- */
4
- import { TableOfContents as TocType } from '../types/content';
5
- interface TableOfContentsProps {
6
- toc: TocType;
7
- }
8
- export declare function TableOfContents({ toc }: TableOfContentsProps): import("react/jsx-runtime").JSX.Element;
9
- export default TableOfContents;
10
- //# sourceMappingURL=TableOfContents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableOfContents.d.ts","sourceRoot":"","sources":["../../src/components/TableOfContents.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,IAAI,OAAO,EAAY,MAAM,kBAAkB,CAAC;AAExE,UAAU,oBAAoB;IAC5B,GAAG,EAAE,OAAO,CAAC;CACd;AAED,wBAAgB,eAAe,CAAC,EAAE,GAAG,EAAE,EAAE,oBAAoB,2CAmL5D;AAED,eAAe,eAAe,CAAC"}