@luna_ui/astra 0.3.0 → 0.17.1

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 (358) hide show
  1. package/README.md +52 -0
  2. package/bin/astra.js +58 -0
  3. package/dist/assets/scripts/lib.js +1 -0
  4. package/dist/assets/scripts/loader.js +170 -0
  5. package/{assets → dist/assets}/scripts/sidebar.js +2 -2
  6. package/dist/assets/scripts/sol-nav.js +1 -0
  7. package/{assets → dist/assets}/scripts/toc.js +1 -1
  8. package/dist/assets/scripts/wc-loader.js +1 -0
  9. package/dist/assets/styles/main.css +2896 -0
  10. package/{assets → dist/assets}/styles/markdown.css +5 -16
  11. package/dist/astra.js +57649 -0
  12. package/package.json +20 -37
  13. package/assets/scripts/loader.js +0 -1
  14. package/assets/scripts/wc-loader.js +0 -28
  15. package/assets/styles/main.css +0 -592
  16. package/bin/astra.mjs +0 -2
  17. package/dist/abap-4DRkXMJR.js +0 -1
  18. package/dist/actionscript-3-h0lqWyGv.js +0 -1
  19. package/dist/ada-B4-fQi6R.js +0 -1
  20. package/dist/andromeeda-DnfMDO_Y.js +0 -1
  21. package/dist/angular-html-CgTXg5Z6.js +0 -1
  22. package/dist/angular-html-d-0S-zLW.js +0 -1
  23. package/dist/angular-ts-CHhlLyrZ.js +0 -1
  24. package/dist/apache-CjmdmrNd.js +0 -1
  25. package/dist/apex-BQCmYrYs.js +0 -1
  26. package/dist/apl-BS7gisDH.js +0 -1
  27. package/dist/applescript-DmuENMYc.js +0 -1
  28. package/dist/ara-DSUvK8h0.js +0 -1
  29. package/dist/asciidoc-DtiaLqcg.js +0 -1
  30. package/dist/asm-vw4b_i9u.js +0 -1
  31. package/dist/astro-Cy9wZvxd.js +0 -1
  32. package/dist/aurora-x-LGMiQelM.js +0 -1
  33. package/dist/awk-CN3ZPsCY.js +0 -1
  34. package/dist/ayu-dark-8Z6NAin8.js +0 -1
  35. package/dist/ballerina-B4Fqjiam.js +0 -1
  36. package/dist/bat-DQvEQ0oY.js +0 -1
  37. package/dist/beancount-aKEgevoR.js +0 -1
  38. package/dist/berry-BOM3vuC7.js +0 -1
  39. package/dist/bibtex-CMp7yDWH.js +0 -1
  40. package/dist/bicep-BebJh39J.js +0 -1
  41. package/dist/blade-j7hZXB64.js +0 -1
  42. package/dist/bsl-DgkNvZZe.js +0 -1
  43. package/dist/c-87QmhLAV.js +0 -1
  44. package/dist/c-wmv-cFo9.js +0 -1
  45. package/dist/cadence-Cgd84A_0.js +0 -1
  46. package/dist/cairo-Dcrxjodq.js +0 -1
  47. package/dist/catppuccin-frappe-BpQ1lU1w.js +0 -1
  48. package/dist/catppuccin-latte-Cp48KXmS.js +0 -1
  49. package/dist/catppuccin-macchiato-Bpp0X-sF.js +0 -1
  50. package/dist/catppuccin-mocha-C2yaN9uG.js +0 -1
  51. package/dist/chunk-C91IYPK5.js +0 -1
  52. package/dist/clarity-pyieEWy3.js +0 -1
  53. package/dist/cli-BW7yFsYF.js +0 -637
  54. package/dist/cli.d.ts +0 -1
  55. package/dist/cli.js +0 -2
  56. package/dist/clojure-D2WDer8_.js +0 -1
  57. package/dist/cmake-CK9_JPOP.js +0 -1
  58. package/dist/cmake-Cdf80Fup.js +0 -1
  59. package/dist/cobol-DHzxMIfc.js +0 -1
  60. package/dist/codeowners-b6uQw4Jm.js +0 -1
  61. package/dist/codeql-04zjaa8t.js +0 -1
  62. package/dist/coffee-DCpHmt37.js +0 -1
  63. package/dist/common-lisp-DJpZd9nc.js +0 -1
  64. package/dist/coq-CqrhdPuQ.js +0 -1
  65. package/dist/cpp-DJwL1bmY.js +0 -1
  66. package/dist/cpp-bXmEu2fj.js +0 -1
  67. package/dist/crystal-QrrnajAZ.js +0 -1
  68. package/dist/csharp-CCkaXaBl.js +0 -1
  69. package/dist/csharp-DF2IH6Io.js +0 -1
  70. package/dist/css-B782H9QQ.js +0 -1
  71. package/dist/css-C3GPUY5d.js +0 -1
  72. package/dist/csv--xFxOZnZ.js +0 -1
  73. package/dist/csv-DwE9d_vs.js +0 -1
  74. package/dist/cue-Boddp5ou.js +0 -1
  75. package/dist/cypher-CJ-77cgQ.js +0 -1
  76. package/dist/d-D0I1dM2T.js +0 -1
  77. package/dist/dark-plus-BU3QBz56.js +0 -1
  78. package/dist/dart-BJ8cdcjB.js +0 -1
  79. package/dist/dax-flGRwOMk.js +0 -1
  80. package/dist/desktop-CKJBoUCX.js +0 -1
  81. package/dist/diff-D0R8227a.js +0 -1
  82. package/dist/diff-JYRIHEgk.js +0 -1
  83. package/dist/dist-Bx67DuWk.js +0 -12
  84. package/dist/docker-CaPT0nh2.js +0 -1
  85. package/dist/dotenv-Cl6daHtc.js +0 -1
  86. package/dist/dracula-Cw9IWaSN.js +0 -1
  87. package/dist/dracula-soft-BqgovASh.js +0 -1
  88. package/dist/dream-maker-B43zqZ9J.js +0 -1
  89. package/dist/edge-Ceyc3rVg.js +0 -1
  90. package/dist/elixir-Gvbortfm.js +0 -1
  91. package/dist/elm-DjLt6yAp.js +0 -1
  92. package/dist/emacs-lisp-D80T64tz.js +0 -1
  93. package/dist/erb-CXoLzZh0.js +0 -1
  94. package/dist/erlang-BogW8nFy.js +0 -1
  95. package/dist/everforest-dark-ogfM6sNR.js +0 -1
  96. package/dist/everforest-light-D6fPa5N4.js +0 -1
  97. package/dist/fennel-B2Zn_N77.js +0 -1
  98. package/dist/fish-COSG8aRZ.js +0 -1
  99. package/dist/fluent-D8gvH-iE.js +0 -1
  100. package/dist/fortran-fixed-form-D7puVArr.js +0 -1
  101. package/dist/fortran-free-form-AdpHkc55.js +0 -1
  102. package/dist/fortran-free-form-B-rZjaen.js +0 -1
  103. package/dist/fsharp-CFCe56st.js +0 -1
  104. package/dist/gdresource-CkuXen0_.js +0 -1
  105. package/dist/gdscript-B2-VFJAr.js +0 -1
  106. package/dist/gdscript-BgjbTSgo.js +0 -1
  107. package/dist/gdshader-CW5dzS3z.js +0 -1
  108. package/dist/gdshader-WTsPyo0L.js +0 -1
  109. package/dist/genie-C4I2dHj5.js +0 -1
  110. package/dist/gherkin-BqdToCRC.js +0 -1
  111. package/dist/git-commit-CtQHrkj3.js +0 -1
  112. package/dist/git-rebase-DZ7KYW5J.js +0 -1
  113. package/dist/github-dark-Dhw01-x_.js +0 -1
  114. package/dist/github-dark-default-DWGCwC0m.js +0 -1
  115. package/dist/github-dark-dimmed-euk1ld1c.js +0 -1
  116. package/dist/github-dark-high-contrast-BEHPWBGW.js +0 -1
  117. package/dist/github-light-DIH3R0Pp.js +0 -1
  118. package/dist/github-light-default-joSRi-P5.js +0 -1
  119. package/dist/github-light-high-contrast-BeJxmE-G.js +0 -1
  120. package/dist/gleam-ybdQKAnL.js +0 -1
  121. package/dist/glimmer-js-C7QvVTe0.js +0 -1
  122. package/dist/glimmer-ts-BtNjgeMZ.js +0 -1
  123. package/dist/glsl-Bl2rgVkF.js +0 -1
  124. package/dist/glsl-DK2LO5Ai.js +0 -1
  125. package/dist/gnuplot-DuihR3pv.js +0 -1
  126. package/dist/go-CafkwwfM.js +0 -1
  127. package/dist/go-DJYwhvJ3.js +0 -1
  128. package/dist/graphql-CWPKPXc6.js +0 -1
  129. package/dist/graphql-t4luSV8n.js +0 -1
  130. package/dist/groovy-ge4S-gf0.js +0 -1
  131. package/dist/gruvbox-dark-hard-Bn5BzspA.js +0 -1
  132. package/dist/gruvbox-dark-medium-c5nt2GVa.js +0 -1
  133. package/dist/gruvbox-dark-soft-CDQxnYqs.js +0 -1
  134. package/dist/gruvbox-light-hard-CYnE9iXs.js +0 -1
  135. package/dist/gruvbox-light-medium-Bib7X0I1.js +0 -1
  136. package/dist/gruvbox-light-soft-uNsFDxv8.js +0 -1
  137. package/dist/hack-CuBlwJsx.js +0 -1
  138. package/dist/haml-B8bmXhBu.js +0 -1
  139. package/dist/haml-DwxcKQb3.js +0 -1
  140. package/dist/handlebars-0vCF10JB.js +0 -1
  141. package/dist/haskell-BNCSquDI.js +0 -1
  142. package/dist/haxe-DCnwBaYO.js +0 -1
  143. package/dist/haxe-G7UefS7i.js +0 -1
  144. package/dist/hcl-BFNNInwi.js +0 -1
  145. package/dist/hjson-Dvt_015e.js +0 -1
  146. package/dist/hlsl-B8f0y-cZ.js +0 -1
  147. package/dist/hlsl-BjMfZaun.js +0 -1
  148. package/dist/houston-pqjsYGpQ.js +0 -1
  149. package/dist/html-CMGi1hjb.js +0 -1
  150. package/dist/html-DmY_wHSX.js +0 -1
  151. package/dist/html-derivative-BqkAHwxw.js +0 -1
  152. package/dist/html-derivative-GfNAXNvy.js +0 -1
  153. package/dist/http-DSNmXPmD.js +0 -1
  154. package/dist/hurl-CkrB6eSq.js +0 -1
  155. package/dist/hxml-BqY1UbIj.js +0 -1
  156. package/dist/hy-D60OpFH3.js +0 -1
  157. package/dist/imba-ebgbSwGz.js +0 -1
  158. package/dist/index.d.ts +0 -1
  159. package/dist/index.js +0 -1
  160. package/dist/ini-BYj6RmKB.js +0 -1
  161. package/dist/java-Bi_Y8Bsw.js +0 -1
  162. package/dist/java-CaqIw_Rf.js +0 -1
  163. package/dist/javascript-CGOaYlKm.js +0 -1
  164. package/dist/javascript-u1vot5QS.js +0 -1
  165. package/dist/jinja-D4fgt2Cy.js +0 -1
  166. package/dist/jison-BupbRSBu.js +0 -1
  167. package/dist/json-DgrvHR2v.js +0 -1
  168. package/dist/json-IYFshA56.js +0 -1
  169. package/dist/json5-aE0VX-pu.js +0 -1
  170. package/dist/jsonc-CqRuzQuA.js +0 -1
  171. package/dist/jsonl-SOOkn7Sw.js +0 -1
  172. package/dist/jsonnet-DIfu6phf.js +0 -1
  173. package/dist/jssm-hV0pDTDQ.js +0 -1
  174. package/dist/jsx-C0SH37ly.js +0 -1
  175. package/dist/jsx-CaJZmrVS.js +0 -1
  176. package/dist/julia-BLM7eaiW.js +0 -1
  177. package/dist/kanagawa-dragon-CAUDhvmI.js +0 -1
  178. package/dist/kanagawa-lotus-Cw3RzpRs.js +0 -1
  179. package/dist/kanagawa-wave-CTd7QKuU.js +0 -1
  180. package/dist/kdl-3xrhyk5W.js +0 -1
  181. package/dist/kotlin-BHOgCkyf.js +0 -1
  182. package/dist/kusto-BM-oAYAb.js +0 -1
  183. package/dist/laserwave-CCurWjd8.js +0 -1
  184. package/dist/latex-Bvx9pcFA.js +0 -1
  185. package/dist/lean-D8IaoOiI.js +0 -1
  186. package/dist/less-CN_5Yw0a.js +0 -1
  187. package/dist/less-DV0aDiBa.js +0 -1
  188. package/dist/light-plus-D4kPJKWS.js +0 -1
  189. package/dist/liquid-sRlgGzf6.js +0 -1
  190. package/dist/llvm-CsnYorVw.js +0 -1
  191. package/dist/log-C_SMGL8n.js +0 -1
  192. package/dist/logo-CVzLzsP_.js +0 -1
  193. package/dist/lua-DOWHA_3v.js +0 -1
  194. package/dist/lua-DeAY9K4r.js +0 -1
  195. package/dist/luau-CzkleyTz.js +0 -1
  196. package/dist/make-B6JGcnpP.js +0 -1
  197. package/dist/markdown-CdC2l-IK.js +0 -1
  198. package/dist/markdown-DreHh8L0.js +0 -1
  199. package/dist/marko-BjGFov7R.js +0 -1
  200. package/dist/material-theme-DkzQiX4t.js +0 -1
  201. package/dist/material-theme-darker-DrS-0NxT.js +0 -1
  202. package/dist/material-theme-lighter-BwuKMVjk.js +0 -1
  203. package/dist/material-theme-ocean-9ZbppIGx.js +0 -1
  204. package/dist/material-theme-palenight-D-DAK9fg.js +0 -1
  205. package/dist/matlab-Dp2q9iPw.js +0 -1
  206. package/dist/mdc-CsADJoGH.js +0 -1
  207. package/dist/mdx-CLUcPDI-.js +0 -1
  208. package/dist/mermaid-DNEhkuYX.js +0 -1
  209. package/dist/min-dark-xNYg2MGl.js +0 -1
  210. package/dist/min-light-DUAH99TS.js +0 -1
  211. package/dist/mipsasm-DXT2tkbK.js +0 -1
  212. package/dist/mojo-COYWEKP9.js +0 -1
  213. package/dist/monokai-B-RSj3wm.js +0 -1
  214. package/dist/move-5RTvQ45f.js +0 -1
  215. package/dist/narrat-DuS5ChKX.js +0 -1
  216. package/dist/nextflow-dyA9sMUO.js +0 -1
  217. package/dist/nginx-dAQvnBBp.js +0 -1
  218. package/dist/night-owl-CKeRuZRJ.js +0 -1
  219. package/dist/nim-BUtsSKRR.js +0 -1
  220. package/dist/nix-BeX24OEZ.js +0 -1
  221. package/dist/nord-0qyAcvdD.js +0 -1
  222. package/dist/nushell-Du0Lbu-r.js +0 -1
  223. package/dist/objective-c-BDvn_PS7.js +0 -1
  224. package/dist/objective-cpp-BYVs_lNu.js +0 -1
  225. package/dist/ocaml-Buvqlhqm.js +0 -1
  226. package/dist/one-dark-pro-D9S4sFLi.js +0 -1
  227. package/dist/one-light-Bk0kqEFW.js +0 -1
  228. package/dist/openscad--GnqXwNf.js +0 -1
  229. package/dist/pascal-C9zC3WeM.js +0 -1
  230. package/dist/perl-BILVogJG.js +0 -1
  231. package/dist/php-Cmx4iIMY.js +0 -1
  232. package/dist/php-yQ5AQvPM.js +0 -1
  233. package/dist/pkl-D1JQCIjP.js +0 -1
  234. package/dist/plastic-5fWCgqtU.js +0 -1
  235. package/dist/plsql-DUnoIwFl.js +0 -1
  236. package/dist/po-C-FGioO2.js +0 -1
  237. package/dist/poimandres-DdrZqqhm.js +0 -1
  238. package/dist/polar-Chc9BaLJ.js +0 -1
  239. package/dist/postcss-Bnn_pAAb.js +0 -1
  240. package/dist/postcss-WBt22Dkz.js +0 -1
  241. package/dist/powerquery-DZe8qDfI.js +0 -1
  242. package/dist/powershell-B4WW0YF3.js +0 -1
  243. package/dist/prisma-Db0IWuIE.js +0 -1
  244. package/dist/prolog-CzOU4qVi.js +0 -1
  245. package/dist/proto-CnyvvDd1.js +0 -1
  246. package/dist/pug-XN1V80yZ.js +0 -1
  247. package/dist/puppet-Dts2NQhA.js +0 -1
  248. package/dist/purescript-pfjd9EKT.js +0 -1
  249. package/dist/python-CgkbEA7j.js +0 -1
  250. package/dist/python-DA5VdOjf.js +0 -1
  251. package/dist/qml-BUG6hecM.js +0 -1
  252. package/dist/qmldir-Btbp-SnF.js +0 -1
  253. package/dist/qss-NWGc7ENo.js +0 -1
  254. package/dist/r-ChmFPS6K.js +0 -1
  255. package/dist/r-DqnCeWey.js +0 -1
  256. package/dist/racket-BWT8W4iy.js +0 -1
  257. package/dist/raku-C4oZa0Mf.js +0 -1
  258. package/dist/razor-CwlmIXoZ.js +0 -1
  259. package/dist/red-CqUJW53F.js +0 -1
  260. package/dist/reg-TtWpd5d3.js +0 -1
  261. package/dist/regexp-BQ5u4y-4.js +0 -1
  262. package/dist/regexp-j35UYMaY.js +0 -1
  263. package/dist/rel-DIWiXQ72.js +0 -1
  264. package/dist/riscv-Dv-Wobwn.js +0 -1
  265. package/dist/rose-pine-DAkiUkt-.js +0 -1
  266. package/dist/rose-pine-dawn-C4hAh4xD.js +0 -1
  267. package/dist/rose-pine-moon-DLFvs1dY.js +0 -1
  268. package/dist/rosmsg-Dpq0E4Hf.js +0 -1
  269. package/dist/rst-ByEkqHpT.js +0 -1
  270. package/dist/ruby-BN2fsjPD.js +0 -1
  271. package/dist/ruby-CWJ7HOvL.js +0 -1
  272. package/dist/rust-DXMWrjIS.js +0 -1
  273. package/dist/sas-CFRgJxyH.js +0 -1
  274. package/dist/sass-Dkc8z2U_.js +0 -1
  275. package/dist/scala-Ccn4twDa.js +0 -1
  276. package/dist/scheme-ByS7Ufpv.js +0 -1
  277. package/dist/scss-B2HK8b_u.js +0 -1
  278. package/dist/scss-BtLJrQgO.js +0 -1
  279. package/dist/sdbl-CDZiUoGO.js +0 -1
  280. package/dist/sdbl-DWnpuOvU.js +0 -1
  281. package/dist/shaderlab-Bp6E8wU4.js +0 -1
  282. package/dist/shellscript-4OkiSN-h.js +0 -1
  283. package/dist/shellscript-C1F1sLPK.js +0 -1
  284. package/dist/shellsession-2D4oxU8o.js +0 -1
  285. package/dist/slack-dark-pkdzBKrI.js +0 -1
  286. package/dist/slack-ochin-CoDz9ko7.js +0 -1
  287. package/dist/smalltalk-Kx-oUZNN.js +0 -1
  288. package/dist/snazzy-light-CIl1jIJ6.js +0 -1
  289. package/dist/solarized-dark-DPAo1TQR.js +0 -1
  290. package/dist/solarized-light-ZikhFtV6.js +0 -1
  291. package/dist/solidity-B6e3Bet0.js +0 -1
  292. package/dist/soy-DzHQLVPv.js +0 -1
  293. package/dist/sparql-2EdL4sGD.js +0 -1
  294. package/dist/splunk-4bEiKJQJ.js +0 -1
  295. package/dist/sql-0D3m0WTO.js +0 -1
  296. package/dist/sql-COwkzdcc.js +0 -1
  297. package/dist/ssh-config-DNAYfpA0.js +0 -1
  298. package/dist/stata-Dc9CpOk_.js +0 -1
  299. package/dist/stylus-CU84eN7i.js +0 -1
  300. package/dist/stylus-DMy4Ib1_.js +0 -1
  301. package/dist/svelte-Dt1uHIEv.js +0 -1
  302. package/dist/swift-CAb5ZoTR.js +0 -1
  303. package/dist/synthwave-84-CGqBU60R.js +0 -1
  304. package/dist/system-verilog-D1zBPwIR.js +0 -1
  305. package/dist/systemd-CB-JNMU1.js +0 -1
  306. package/dist/talonscript-C44n0Z1I.js +0 -1
  307. package/dist/tasl-DFJ5DyKD.js +0 -1
  308. package/dist/tcl-Cn_vgD48.js +0 -1
  309. package/dist/templ-D6cgJQ93.js +0 -1
  310. package/dist/terraform-C0GDw5Yx.js +0 -1
  311. package/dist/tex--evcwRaO.js +0 -1
  312. package/dist/tex-DI7k1i5h.js +0 -1
  313. package/dist/tokyo-night-C9P-hOUs.js +0 -1
  314. package/dist/toml-DygwKWiG.js +0 -1
  315. package/dist/ts-tags-BMyJSDRW.js +0 -1
  316. package/dist/tsv-D1hoG1dc.js +0 -1
  317. package/dist/tsx-FaowoCNQ.js +0 -1
  318. package/dist/tsx-MSa_uj0f.js +0 -1
  319. package/dist/turtle-DTVOEVyA.js +0 -1
  320. package/dist/turtle-bFO7CguV.js +0 -1
  321. package/dist/twig-B5SDCRaG.js +0 -1
  322. package/dist/typescript-B56_2R5P.js +0 -1
  323. package/dist/typescript-C9arBFtN.js +0 -1
  324. package/dist/typespec-Xs3M-L3I.js +0 -1
  325. package/dist/typst-aZyRVVhS.js +0 -1
  326. package/dist/v-U-avXm9a.js +0 -1
  327. package/dist/vala-C9DtP-IN.js +0 -1
  328. package/dist/vb-BiBM73OI.js +0 -1
  329. package/dist/verilog-2KJ23lmQ.js +0 -1
  330. package/dist/vesper-QUZLl-KU.js +0 -1
  331. package/dist/vhdl-BM_G-wqS.js +0 -1
  332. package/dist/viml-D9Wfp7kC.js +0 -1
  333. package/dist/vitesse-black-DaRTa0zW.js +0 -1
  334. package/dist/vitesse-dark-CK3JAXrr.js +0 -1
  335. package/dist/vitesse-light-irHM-N9L.js +0 -1
  336. package/dist/vue-8Qq1O0KV.js +0 -1
  337. package/dist/vue-BhuSGEdZ.js +0 -1
  338. package/dist/vue-html-CjTCw3jB.js +0 -1
  339. package/dist/vue-vine-B8fLyaUV.js +0 -1
  340. package/dist/vyper-JxCydtCC.js +0 -1
  341. package/dist/wasm-CEYKmQJi.js +0 -1
  342. package/dist/wasm-CeIBK_Mv.js +0 -1
  343. package/dist/wenyan-C6IMLxb9.js +0 -1
  344. package/dist/wgsl-DcM0fO4C.js +0 -1
  345. package/dist/wikitext-CicqHi8l.js +0 -1
  346. package/dist/wit-DXZYezGF.js +0 -1
  347. package/dist/wolfram-LDaaEKo9.js +0 -1
  348. package/dist/worker.d.ts +0 -1
  349. package/dist/worker.js +0 -306
  350. package/dist/wrapper-DlUP6cCH.js +0 -6
  351. package/dist/xml-D4S4eOp-.js +0 -1
  352. package/dist/xml-DI-vKJVc.js +0 -1
  353. package/dist/xsl-BBtAEwui.js +0 -1
  354. package/dist/yaml-BYGefRa5.js +0 -1
  355. package/dist/yaml-ryeB2S83.js +0 -1
  356. package/dist/zenscript-C6nOigZg.js +0 -1
  357. package/dist/zig-BZAkN6e6.js +0 -1
  358. /package/{assets → dist/assets}/scripts/theme.js +0 -0
package/package.json CHANGED
@@ -1,49 +1,32 @@
1
1
  {
2
2
  "name": "@luna_ui/astra",
3
- "version": "0.3.0",
3
+ "version": "0.17.1",
4
+ "private": false,
4
5
  "type": "module",
5
- "description": "MoonBit Island Architecture SSG Framework",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js"
12
- }
13
- },
14
6
  "bin": {
15
- "astra": "./bin/astra.mjs"
16
- },
17
- "scripts": {
18
- "prepublishOnly": "pnpm build",
19
- "build": "tsdown"
7
+ "astra": "./bin/astra.js"
20
8
  },
9
+ "main": "./bin/astra.js",
21
10
  "files": [
22
- "bin",
23
- "dist",
24
- "assets"
11
+ "bin/",
12
+ "dist/",
13
+ "README.md"
25
14
  ],
26
- "keywords": [
27
- "luna",
28
- "moonbit",
29
- "island",
30
- "ssg",
31
- "astra"
32
- ],
33
- "author": "mizchi",
34
- "license": "MIT",
35
- "repository": {
36
- "directory": "js/astra",
37
- "url": "https://github.com/mizchi/luna.mbt"
15
+ "scripts": {
16
+ "build": "node scripts/build-release.mjs",
17
+ "prepack": "node scripts/build-release.mjs"
38
18
  },
39
19
  "dependencies": {
40
- "@hono/node-server": "^1.14.0",
41
- "colorette": "^2.0.20",
42
- "gray-matter": "^4.0.3",
43
- "hono": "^4.7.0",
44
- "marked": "^15.0.0"
20
+ "colorette": "^2.0.20"
21
+ },
22
+ "description": "Astra — SSG / static-export companion for Sol (CLI wrapper)",
23
+ "license": "MIT",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/mizchi/luna.mbt.git",
27
+ "directory": "js/astra"
45
28
  },
46
- "devDependencies": {
47
- "tsdown": "^0.18.2"
29
+ "publishConfig": {
30
+ "access": "public"
48
31
  }
49
32
  }
@@ -1 +0,0 @@
1
- (function(){function setupTrigger(e,t,n){if(t==="load")document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>n(),{once:true}):n();else if(t==="idle")requestIdleCallback(()=>n());else if(t[0]==="v")new IntersectionObserver((r,o)=>{r.some(i=>i.isIntersecting)&&(o.disconnect(),n())},{rootMargin:"50px"}).observe(e);else if(t[0]==="m"){const r=matchMedia(t.slice(6)),o=()=>{r.matches&&(r.removeEventListener("change",o),n())};r.matches?n():r.addEventListener("change",o)}}function onReady(e){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:true}):e()}function observeAdditions(e,t){new MutationObserver(n=>n.forEach(r=>r.addedNodes.forEach(o=>{o.nodeType===1&&e(o)&&t(o)}))).observe(document.body??document.documentElement,{childList:true,subtree:true})}function createLoadedTracker(){const e=new Set;return{loaded:e,unload:t=>e.delete(t),clear:()=>e.clear()}}const d=document,w=window,S={},{loaded,unload,clear}=createLoadedTracker(),parseState=async e=>{const t=e.getAttribute("luna:state");if(t){if(t[0]==="#")return JSON.parse(d.getElementById(t.slice(1))?.textContent??"null");try{return JSON.parse(t)}catch{}}},hydrate=async e=>{const t=e.getAttribute("luna:id");if(!t||loaded.has(t))return;loaded.add(t);const n=e.getAttribute("luna:url");if(!n)return;S[t]=await parseState(e);const r=await import(n),o=e.getAttribute("luna:export");(o?r[o]:r.hydrate??r.default)?.(e,S[t],t)},setup=e=>{setupTrigger(e,e.getAttribute("luna:client-trigger")??"load",()=>hydrate(e))},scan=()=>{d.querySelectorAll("[luna\\:id]").forEach(setup)};d.querySelectorAll('script[type="luna/json"]').forEach(e=>{e.id&&(S[e.id]=JSON.parse(e.textContent??"{}"))});onReady(scan);observeAdditions(e=>e.hasAttribute("luna:id"),setup);const unloadAll=(e=d.body)=>{e.querySelectorAll("[luna\\:id]").forEach(t=>{const n=t.getAttribute("luna:id");n&&loaded.delete(n)})};w.__LUNA_STATE__=S;w.__LUNA_HYDRATE__=hydrate;w.__LUNA_SCAN__=scan;w.__LUNA_UNLOAD__=unload;w.__LUNA_UNLOAD_ALL__=unloadAll;w.__LUNA_CLEAR_LOADED__=clear})();
@@ -1,28 +0,0 @@
1
- (function(){
2
- function setupTrigger(el, t, cb) {
3
- if (t === 'load') document.readyState === 'loading' ? document.addEventListener('DOMContentLoaded', cb, {once:true}) : cb();
4
- else if (t === 'idle') requestIdleCallback(cb);
5
- else if (t[0] === 'v') new IntersectionObserver((e,o) => { if(e.some(x=>x.isIntersecting)){o.disconnect();cb();}}, {rootMargin:'50px'}).observe(el);
6
- else if (t[0] === 'm') { var mq = matchMedia(t.slice(6)); var h = () => { if(mq.matches){mq.removeEventListener('change',h);cb();}}; mq.matches ? cb() : mq.addEventListener('change',h);}
7
- }
8
- var loaded = new Set();
9
- async function hydrate(el) {
10
- var name = el.tagName.toLowerCase();
11
- if (loaded.has(name)) return;
12
- var url = el.getAttribute('luna:wc-url');
13
- if (!url) return;
14
- loaded.add(name);
15
- try {
16
- var mod = await import(url);
17
- var fn = mod.hydrate || mod.default;
18
- if (typeof fn === 'function') fn(el, {}, name);
19
- } catch(e) { console.error('[wc] Failed:', name, e); }
20
- }
21
- function setup(el) { setupTrigger(el, el.getAttribute('luna:wc-trigger') || 'load', () => hydrate(el)); }
22
- function scan() { document.querySelectorAll('[luna\\:wc-url]').forEach(setup); }
23
- if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', scan, {once:true});
24
- else scan();
25
- new MutationObserver(m => m.forEach(x => x.addedNodes.forEach(n => { if(n.nodeType === 1 && n.hasAttribute('luna:wc-url')) setup(n); }))).observe(document.body || document.documentElement, {childList:true,subtree:true});
26
- window.__LUNA_WC_SCAN__ = scan;
27
- window.__LUNA_WC_CLEAR_LOADED__ = () => loaded.clear();
28
- })();
@@ -1,592 +0,0 @@
1
- /* Luna SSG Default Theme - Moon-inspired colors */
2
- :root {
3
- --primary-color: #b45309;
4
- --text-color: #1f2937;
5
- --text-muted: #4b5563;
6
- --bg-color: #ffffff;
7
- --sidebar-bg: #fafafa;
8
- --border-color: #e5e7eb;
9
- --code-bg: #f3f4f6;
10
- --link-color: var(--primary-color);
11
- --nav-link-color: var(--text-muted);
12
- }
13
-
14
- /* Dark mode - controlled by .dark class on html */
15
- html.dark {
16
- --primary-color: #fbbf24;
17
- --text-color: #f3f4f6;
18
- --text-muted: #d1d5db;
19
- --bg-color: #0f0f0f;
20
- --sidebar-bg: #171717;
21
- --border-color: #2d2d2d;
22
- --code-bg: #1f1f1f;
23
- --nav-link-color: #e5e7eb;
24
- }
25
-
26
- /* Theme toggle button */
27
- .theme-toggle {
28
- display: flex;
29
- align-items: center;
30
- justify-content: center;
31
- width: 36px;
32
- height: 36px;
33
- padding: 0;
34
- border: 1px solid var(--border-color);
35
- border-radius: 6px;
36
- background: transparent;
37
- color: var(--text-color);
38
- cursor: pointer;
39
- transition: background 0.2s, border-color 0.2s;
40
- }
41
- .theme-toggle:hover {
42
- background: var(--sidebar-bg);
43
- }
44
-
45
- /* Theme icons - moon in light mode, sun in dark mode */
46
- .theme-icon-dark { display: block; }
47
- .theme-icon-light { display: none; }
48
- html.dark .theme-icon-dark { display: none; }
49
- html.dark .theme-icon-light { display: block; }
50
-
51
- /* View Transition API (MPA) */
52
- @view-transition {
53
- navigation: auto;
54
- }
55
-
56
- /* Disable root transition, only transition main content */
57
- ::view-transition-old(root),
58
- ::view-transition-new(root) {
59
- animation: none;
60
- mix-blend-mode: normal;
61
- }
62
-
63
- /* Main content transition */
64
- .doc-content {
65
- view-transition-name: main-content;
66
- }
67
-
68
- ::view-transition-old(main-content),
69
- ::view-transition-new(main-content) {
70
- animation-duration: 0.2s;
71
- animation-timing-function: ease-out;
72
- }
73
-
74
- /* Direction-based animations */
75
- @keyframes slide-out-to-left {
76
- from { transform: translateX(0); opacity: 1; }
77
- to { transform: translateX(-5%); opacity: 0; }
78
- }
79
- @keyframes slide-in-from-right {
80
- from { transform: translateX(5%); opacity: 0; }
81
- to { transform: translateX(0); opacity: 1; }
82
- }
83
- @keyframes slide-out-to-right {
84
- from { transform: translateX(0); opacity: 1; }
85
- to { transform: translateX(5%); opacity: 0; }
86
- }
87
- @keyframes slide-in-from-left {
88
- from { transform: translateX(-5%); opacity: 0; }
89
- to { transform: translateX(0); opacity: 1; }
90
- }
91
-
92
- html:active-view-transition-type(forwards) {
93
- &::view-transition-old(main-content) { animation-name: slide-out-to-right; }
94
- &::view-transition-new(main-content) { animation-name: slide-in-from-left; }
95
- }
96
- html:active-view-transition-type(backwards) {
97
- &::view-transition-old(main-content) { animation-name: slide-out-to-left; }
98
- &::view-transition-new(main-content) { animation-name: slide-in-from-right; }
99
- }
100
-
101
- * { box-sizing: border-box; margin: 0; padding: 0; }
102
-
103
- body {
104
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
105
- color: var(--text-color);
106
- background: var(--bg-color);
107
- line-height: 1.6;
108
- }
109
-
110
- /* Navigation */
111
- .nav-bar {
112
- position: sticky;
113
- top: 0;
114
- z-index: 100;
115
- background: var(--bg-color);
116
- border-bottom: 1px solid var(--border-color);
117
- padding: 0.75rem 1.5rem;
118
- }
119
-
120
- .nav-container {
121
- max-width: 1400px;
122
- margin: 0 auto;
123
- display: flex;
124
- justify-content: space-between;
125
- align-items: center;
126
- }
127
-
128
- .nav-home { text-decoration: none; font-weight: 600; color: var(--text-color); }
129
- .nav-logo { height: 32px; }
130
- .nav-title { font-size: 1.25rem; }
131
- .nav-links { display: flex; gap: 1.5rem; align-items: center; }
132
- .nav-link { color: var(--text-color); text-decoration: none; }
133
- .nav-link:hover { color: var(--primary-color); }
134
-
135
- /* Language Switcher */
136
- .lang-switcher {
137
- position: relative;
138
- margin-left: 0.5rem;
139
- }
140
- .lang-trigger {
141
- cursor: pointer;
142
- padding: 0.375rem 0.75rem;
143
- border: 1px solid var(--border-color);
144
- border-radius: 4px;
145
- font-size: 0.875rem;
146
- color: var(--text-color);
147
- list-style: none;
148
- display: flex;
149
- align-items: center;
150
- gap: 0.375rem;
151
- }
152
- .lang-trigger::-webkit-details-marker { display: none; }
153
- .lang-trigger::after {
154
- content: '';
155
- border-left: 4px solid transparent;
156
- border-right: 4px solid transparent;
157
- border-top: 5px solid currentColor;
158
- }
159
- .lang-switcher[open] .lang-trigger::after {
160
- border-top: none;
161
- border-bottom: 5px solid currentColor;
162
- }
163
- .lang-menu {
164
- position: absolute;
165
- top: 100%;
166
- right: 0;
167
- margin-top: 0.25rem;
168
- background: var(--bg-color);
169
- border: 1px solid var(--border-color);
170
- border-radius: 4px;
171
- box-shadow: 0 2px 8px rgba(0,0,0,0.1);
172
- min-width: 120px;
173
- z-index: 200;
174
- }
175
- .lang-item {
176
- display: block;
177
- padding: 0.5rem 0.75rem;
178
- color: var(--text-color);
179
- text-decoration: none;
180
- font-size: 0.875rem;
181
- }
182
- .lang-item:hover { background: var(--sidebar-bg); }
183
- .lang-item-active {
184
- color: var(--primary-color);
185
- font-weight: 500;
186
- }
187
-
188
- /* Social Links */
189
- .social-links {
190
- display: flex;
191
- align-items: center;
192
- gap: 0.5rem;
193
- }
194
- .social-link {
195
- display: flex;
196
- align-items: center;
197
- justify-content: center;
198
- color: var(--text-muted);
199
- padding: 0.375rem;
200
- border-radius: 4px;
201
- transition: color 0.2s, background 0.2s;
202
- }
203
- .social-link:hover {
204
- color: var(--text-color);
205
- background: var(--sidebar-bg);
206
- }
207
- .social-link svg {
208
- display: block;
209
- }
210
-
211
- /* Layout */
212
- .layout-doc { display: flex; flex-direction: column; min-height: 100vh; }
213
- .doc-container { display: flex; flex: 1; width: 100%; }
214
-
215
- /* Home Layout */
216
- .layout-home { min-height: 100vh; display: flex; flex-direction: column; }
217
- .home-content {
218
- flex: 1;
219
- max-width: 800px;
220
- margin: 0 auto;
221
- padding: 3rem 2rem;
222
- width: 100%;
223
- }
224
- .home-content h1:first-child {
225
- font-size: 2.5rem;
226
- text-align: center;
227
- margin-bottom: 1.5rem;
228
- border: none;
229
- }
230
- .home-content > p:first-of-type {
231
- font-size: 1.25rem;
232
- text-align: center;
233
- color: var(--text-muted);
234
- margin-bottom: 2rem;
235
- }
236
-
237
- /* Sidebar */
238
- .sidebar {
239
- position: fixed;
240
- left: 0;
241
- top: 60px;
242
- width: 260px;
243
- height: calc(100vh - 60px);
244
- background: var(--sidebar-bg);
245
- border-right: 1px solid var(--border-color);
246
- display: flex;
247
- flex-direction: column;
248
- transition: width 0.2s ease;
249
- z-index: 10;
250
- }
251
- .sidebar-collapsed .sidebar {
252
- width: 32px;
253
- }
254
- .sidebar-content {
255
- flex: 1;
256
- padding: 1rem 1.5rem;
257
- overflow-y: auto;
258
- }
259
- .sidebar-collapse-btn {
260
- display: flex;
261
- align-items: center;
262
- justify-content: center;
263
- padding: 0.75rem;
264
- border: none;
265
- border-top: 1px solid var(--border-color);
266
- background: transparent;
267
- cursor: pointer;
268
- color: var(--text-color);
269
- opacity: 0.6;
270
- transition: opacity 0.2s;
271
- margin-top: auto;
272
- }
273
- .sidebar-collapse-btn:hover { opacity: 1; }
274
- .collapse-icon::before {
275
- content: '«';
276
- font-size: 1.25rem;
277
- font-weight: bold;
278
- }
279
- .sidebar-collapsed .sidebar-content { display: none; }
280
- .sidebar-collapsed .sidebar .collapse-icon::before { content: '»'; }
281
-
282
- .sidebar-group { margin-bottom: 1rem; }
283
- .sidebar-group-title {
284
- font-weight: 600;
285
- margin-bottom: 0.5rem;
286
- color: var(--text-color);
287
- font-size: 0.875rem;
288
- text-transform: uppercase;
289
- letter-spacing: 0.05em;
290
- }
291
- .sidebar-items { list-style: none; margin: 0; padding: 0; }
292
- .sidebar-items-inner { list-style: none; margin: 0; padding: 0; }
293
- .sidebar-nested-group { list-style: none; }
294
- .sidebar-link {
295
- display: block;
296
- padding: 0.5rem 0.75rem;
297
- color: var(--text-color);
298
- text-decoration: none;
299
- font-size: 0.9375rem;
300
- border-radius: 0.375rem;
301
- transition: background-color 0.15s;
302
- }
303
- .sidebar-link:hover { background-color: var(--sidebar-bg); color: var(--primary-color); }
304
- .sidebar-link.active { color: var(--primary-color); font-weight: 600; background-color: var(--sidebar-bg); }
305
-
306
- /* Collapsible sidebar groups - Docusaurus style */
307
- .sidebar-collapse {
308
- border: none;
309
- margin-bottom: 0.25rem;
310
- }
311
- .sidebar-collapse summary {
312
- cursor: pointer;
313
- list-style: none;
314
- display: flex;
315
- align-items: center;
316
- justify-content: space-between;
317
- padding: 0.5rem 0.75rem;
318
- border-radius: 0.375rem;
319
- transition: background-color 0.15s;
320
- }
321
- .sidebar-collapse summary:hover {
322
- background-color: var(--sidebar-bg);
323
- }
324
- .sidebar-collapse summary::-webkit-details-marker { display: none; }
325
- .sidebar-group-link {
326
- color: var(--text-color);
327
- text-decoration: none;
328
- font-weight: 500;
329
- font-size: 0.9375rem;
330
- flex: 1;
331
- }
332
- .sidebar-group-link:hover { color: var(--primary-color); }
333
- .sidebar-group-link.active { color: var(--primary-color); }
334
- .sidebar-chevron {
335
- width: 24px;
336
- height: 24px;
337
- display: flex;
338
- align-items: center;
339
- justify-content: center;
340
- color: var(--nav-link-color);
341
- transition: transform 0.2s;
342
- flex-shrink: 0;
343
- }
344
- .sidebar-chevron::before {
345
- content: '';
346
- width: 0;
347
- height: 0;
348
- border-top: 5px solid transparent;
349
- border-bottom: 5px solid transparent;
350
- border-left: 6px solid currentColor;
351
- }
352
- .sidebar-collapse .sidebar-chevron {
353
- transition: transform 0.2s ease;
354
- }
355
- .sidebar-collapse[open] .sidebar-chevron {
356
- transform: rotate(90deg);
357
- }
358
- .sidebar-collapse.closing .sidebar-chevron {
359
- transform: rotate(0deg);
360
- }
361
- .sidebar-collapse .sidebar-items {
362
- display: grid;
363
- grid-template-rows: 0fr;
364
- transition: grid-template-rows 0.2s ease;
365
- }
366
- .sidebar-collapse[open] .sidebar-items {
367
- grid-template-rows: 1fr;
368
- }
369
- .sidebar-collapse.closing .sidebar-items {
370
- grid-template-rows: 0fr;
371
- }
372
- .sidebar-collapse .sidebar-items-inner {
373
- overflow: hidden;
374
- padding-left: 1rem;
375
- }
376
-
377
- /* Breadcrumb */
378
- .breadcrumb {
379
- display: flex;
380
- align-items: center;
381
- flex-wrap: wrap;
382
- gap: 0.25rem;
383
- font-size: 0.875rem;
384
- color: var(--text-muted);
385
- margin-bottom: 1rem;
386
- }
387
- .breadcrumb-link {
388
- color: var(--text-muted);
389
- text-decoration: none;
390
- transition: color 0.15s;
391
- }
392
- .breadcrumb-link:hover { color: var(--primary-color); }
393
- .breadcrumb-separator {
394
- color: var(--text-muted);
395
- opacity: 0.5;
396
- margin: 0 0.25rem;
397
- }
398
- .breadcrumb-current { color: var(--text-color); }
399
-
400
- /* Main Content */
401
- .doc-main { flex: 1; padding: 2rem; max-width: 800px; margin-left: 260px; margin-right: 220px; }
402
- .sidebar-collapsed .doc-main { margin-left: 32px; }
403
- .toc-collapsed .doc-main { margin-right: 32px; }
404
- .sidebar-collapsed.toc-collapsed .doc-main { margin-left: auto; margin-right: auto; padding-left: 48px; padding-right: 48px; }
405
- .doc-content { line-height: 1.7; }
406
-
407
- /* Typography */
408
- .heading { margin: 1.5rem 0 1rem; font-weight: 600; }
409
- .heading-1 { font-size: 2rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.5rem; }
410
- .heading-2 { font-size: 1.5rem; }
411
- .heading-3 { font-size: 1.25rem; }
412
-
413
- p { margin: 1rem 0; }
414
-
415
- a { color: var(--primary-color); }
416
-
417
- /* Markdown body container */
418
- .markdown-body {
419
- box-sizing: border-box;
420
- min-width: 200px;
421
- max-width: 980px;
422
- margin: 0 auto;
423
- }
424
-
425
- /* TOC */
426
- .toc {
427
- position: fixed;
428
- right: 0;
429
- top: 60px;
430
- width: 220px;
431
- height: calc(100vh - 60px);
432
- display: flex;
433
- flex-direction: column;
434
- border-left: 1px solid var(--border-color);
435
- background: var(--bg-color);
436
- transition: width 0.2s ease;
437
- }
438
- .toc-collapsed .toc {
439
- width: 32px;
440
- }
441
- .toc-content {
442
- flex: 1;
443
- padding: 1rem;
444
- overflow-y: auto;
445
- }
446
- .toc-collapse-btn {
447
- display: flex;
448
- align-items: center;
449
- justify-content: center;
450
- padding: 0.75rem;
451
- border: none;
452
- border-top: 1px solid var(--border-color);
453
- background: transparent;
454
- cursor: pointer;
455
- color: var(--text-color);
456
- opacity: 0.6;
457
- transition: opacity 0.2s;
458
- margin-top: auto;
459
- }
460
- .toc-collapse-btn:hover { opacity: 1; }
461
- .toc-collapse-icon::before { content: '»'; font-size: 1.25rem; font-weight: bold; }
462
- .toc-collapsed .toc-content { display: none; }
463
- .toc-collapsed .toc-collapse-icon::before { content: '«'; }
464
- .toc-title { font-weight: 600; margin-bottom: 0.5rem; font-size: 0.875rem; }
465
- .toc-list { list-style: none; font-size: 0.875rem; }
466
- .toc-item { padding: 0.25rem 0; }
467
- .toc-item a { color: var(--nav-link-color); text-decoration: none; transition: color 0.15s; }
468
- .toc-item a:hover { color: var(--primary-color); }
469
- .toc-item a.active { color: var(--primary-color); font-weight: 500; }
470
- .toc-level-3 { padding-left: 0.75rem; }
471
- .toc-level-4 { padding-left: 1.5rem; }
472
-
473
- /* Prev/Next */
474
- .prev-next {
475
- display: flex;
476
- justify-content: space-between;
477
- margin-top: 2rem;
478
- padding-top: 1rem;
479
- border-top: 1px solid var(--border-color);
480
- }
481
-
482
- .prev-link, .next-link {
483
- display: flex;
484
- flex-direction: column;
485
- text-decoration: none;
486
- }
487
-
488
- .prev-link .label, .next-link .label { font-size: 0.75rem; color: var(--text-muted); }
489
- .prev-link .title, .next-link .title { color: var(--primary-color); font-weight: 500; }
490
- .next-link { text-align: right; margin-left: auto; }
491
-
492
- /* Footer */
493
- .site-footer {
494
- padding: 3rem 2rem 2rem;
495
- border-top: 1px solid var(--border-color);
496
- color: var(--text-muted);
497
- font-size: 0.875rem;
498
- background: var(--sidebar-bg);
499
- }
500
- .footer-columns {
501
- display: grid;
502
- grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
503
- gap: 2rem;
504
- max-width: 1200px;
505
- margin: 0 auto 2rem;
506
- padding: 0 1rem;
507
- }
508
- .footer-column-title {
509
- font-size: 0.875rem;
510
- font-weight: 600;
511
- color: var(--text-color);
512
- margin: 0 0 0.75rem;
513
- text-transform: uppercase;
514
- letter-spacing: 0.05em;
515
- }
516
- .footer-links {
517
- list-style: none;
518
- padding: 0;
519
- margin: 0;
520
- }
521
- .footer-links li { margin: 0.5rem 0; }
522
- .footer-link {
523
- color: var(--text-muted);
524
- text-decoration: none;
525
- transition: color 0.2s;
526
- }
527
- .footer-link:hover { color: var(--primary-color); }
528
- .footer-bottom {
529
- text-align: center;
530
- padding-top: 2rem;
531
- border-top: 1px solid var(--border-color);
532
- }
533
- .footer-message, .footer-copyright { margin: 0.25rem 0; }
534
-
535
- /* Ensure dark mode styles work with system preference */
536
- @media (prefers-color-scheme: dark) {
537
- :root:not(.light) {
538
- --primary-color: #fbbf24;
539
- --text-color: #f3f4f6;
540
- --text-muted: #d1d5db;
541
- --bg-color: #0f0f0f;
542
- --sidebar-bg: #171717;
543
- --border-color: #2d2d2d;
544
- --code-bg: #1f1f1f;
545
- --nav-link-color: #e5e7eb;
546
- }
547
- }
548
-
549
- /* Mobile Sidebar Dropdown */
550
- .mobile-sidebar {
551
- display: none;
552
- margin-bottom: 1rem;
553
- border: 1px solid var(--border-color);
554
- border-radius: 8px;
555
- background: var(--sidebar-bg);
556
- }
557
- .mobile-sidebar-trigger {
558
- display: flex;
559
- justify-content: space-between;
560
- align-items: center;
561
- padding: 0.75rem 1rem;
562
- cursor: pointer;
563
- list-style: none;
564
- font-weight: 500;
565
- }
566
- .mobile-sidebar-trigger::-webkit-details-marker { display: none; }
567
- .mobile-sidebar-arrow {
568
- border-left: 5px solid transparent;
569
- border-right: 5px solid transparent;
570
- border-top: 6px solid currentColor;
571
- transition: transform 0.2s;
572
- }
573
- .mobile-sidebar[open] .mobile-sidebar-arrow {
574
- transform: rotate(180deg);
575
- }
576
- .mobile-sidebar-content {
577
- border-top: 1px solid var(--border-color);
578
- padding: 0.5rem 0;
579
- max-height: 60vh;
580
- overflow-y: auto;
581
- }
582
- .mobile-sidebar-content .sidebar-collapse { border: none; }
583
- .mobile-sidebar-content .sidebar-collapse summary { padding: 0.5rem 1rem; }
584
- .mobile-sidebar-content .sidebar-items { padding-left: 1.5rem; }
585
-
586
- /* Responsive */
587
- @media (max-width: 960px) {
588
- .sidebar-desktop { display: none; }
589
- .mobile-sidebar { display: block; }
590
- .toc { display: none; }
591
- .doc-main { margin-left: 0; margin-right: 0; max-width: none; }
592
- }
package/bin/astra.mjs DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import "../dist/cli.js";