@sanurb/ringi 0.2.1 → 0.3.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 (418) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cli.mjs +505 -114
  3. package/dist/cli.mjs.map +1 -1
  4. package/dist/mcp.mjs +35 -39
  5. package/dist/mcp.mjs.map +1 -1
  6. package/dist/runtime.mjs +569 -428
  7. package/dist/runtime.mjs.map +1 -1
  8. package/package.json +13 -13
  9. package/server/nitro.json +17 -0
  10. package/server/public/assets/ClientOnly-QdfAxyFs.js +1 -0
  11. package/server/public/assets/_reviewId-CmXHvWLn.js +1 -0
  12. package/server/public/assets/_reviewId-DdOpDx4U.js +1 -0
  13. package/server/public/assets/abap-B1dkBSPn.js +1 -0
  14. package/server/public/assets/action-bar-DLRNvLjj.js +45 -0
  15. package/server/public/assets/actionscript-3-BT4ibYlP.js +1 -0
  16. package/server/public/assets/ada-CD92zeps.js +1 -0
  17. package/server/public/assets/andromeeda-DqSmgxi0.js +1 -0
  18. package/server/public/assets/angular-html-BDC0PfKr.js +1 -0
  19. package/server/public/assets/angular-ts-B9yoQMtj.js +1 -0
  20. package/server/public/assets/apache-D5suuoa_.js +1 -0
  21. package/server/public/assets/apex-BL-m4VHy.js +1 -0
  22. package/server/public/assets/apl-CldhY0Pn.js +1 -0
  23. package/server/public/assets/applescript-CLiBqvKT.js +1 -0
  24. package/server/public/assets/ara-LdDF8cmv.js +1 -0
  25. package/server/public/assets/asciidoc-2DZ9hC2N.js +1 -0
  26. package/server/public/assets/asm-0ZPGRSUy.js +1 -0
  27. package/server/public/assets/astro-DR6labZJ.js +1 -0
  28. package/server/public/assets/aurora-x-Da7Zfvbg.js +1 -0
  29. package/server/public/assets/awk-Bn0gn_B_.js +1 -0
  30. package/server/public/assets/ayu-dark-bqYKoqpM.js +1 -0
  31. package/server/public/assets/ayu-light-C45jTIzZ.js +1 -0
  32. package/server/public/assets/ayu-mirage-BV_FCTQi.js +1 -0
  33. package/server/public/assets/ballerina-D2nw_w8Q.js +1 -0
  34. package/server/public/assets/bat-ByUBN5gS.js +1 -0
  35. package/server/public/assets/beancount-BTb2W6Mp.js +1 -0
  36. package/server/public/assets/berry-5SO2uITG.js +1 -0
  37. package/server/public/assets/bibtex-CDBTNfUI.js +1 -0
  38. package/server/public/assets/bicep-fgxG_4rP.js +1 -0
  39. package/server/public/assets/bird2-BCwzDhwX.js +1 -0
  40. package/server/public/assets/blade-BBTRu2-g.js +1 -0
  41. package/server/public/assets/bsl-CG-fq4sc.js +1 -0
  42. package/server/public/assets/c-CEvNj7xl.js +1 -0
  43. package/server/public/assets/c3-Dlaci63_.js +1 -0
  44. package/server/public/assets/cadence-DHbRuEmm.js +1 -0
  45. package/server/public/assets/cairo-Ds0kTeYT.js +1 -0
  46. package/server/public/assets/catppuccin-frappe-DrL1fUuH.js +1 -0
  47. package/server/public/assets/catppuccin-latte-C0REgVjl.js +1 -0
  48. package/server/public/assets/catppuccin-macchiato-ChQpylWO.js +1 -0
  49. package/server/public/assets/catppuccin-mocha-Dd0JU1T0.js +1 -0
  50. package/server/public/assets/clarity-DMoTOm4G.js +1 -0
  51. package/server/public/assets/clojure-DBhE3PpS.js +1 -0
  52. package/server/public/assets/cmake-DwMc40Or.js +1 -0
  53. package/server/public/assets/cobol-BdNJSMRt.js +1 -0
  54. package/server/public/assets/codeowners-1lVr8wqV.js +1 -0
  55. package/server/public/assets/codeql-DWflolvo.js +1 -0
  56. package/server/public/assets/coffee-RA4xA24H.js +1 -0
  57. package/server/public/assets/common-lisp-CrVQ5xT-.js +1 -0
  58. package/server/public/assets/compiler-runtime-DZXZ41-q.js +1 -0
  59. package/server/public/assets/coq-CjfoyYSh.js +1 -0
  60. package/server/public/assets/cpp-BoW7e2Ow.js +1 -0
  61. package/server/public/assets/createServerFn-DTk395iP.js +9 -0
  62. package/server/public/assets/crystal-CYKRo3F9.js +1 -0
  63. package/server/public/assets/csharp-C7bIWP5y.js +1 -0
  64. package/server/public/assets/css-Ck2tii2d.js +1 -0
  65. package/server/public/assets/csv-DsAkDVtA.js +1 -0
  66. package/server/public/assets/cue-BWmQgbOB.js +1 -0
  67. package/server/public/assets/cypher-D-jVC50Q.js +1 -0
  68. package/server/public/assets/d-CaviyOrm.js +1 -0
  69. package/server/public/assets/dark-plus-DIrnwZt9.js +1 -0
  70. package/server/public/assets/dart-CZEi7JgC.js +1 -0
  71. package/server/public/assets/dax-BK-8zffy.js +1 -0
  72. package/server/public/assets/desktop-D3cjbL4D.js +1 -0
  73. package/server/public/assets/diff-sHAzLvlp.js +1 -0
  74. package/server/public/assets/docker--xs2Ng3w.js +1 -0
  75. package/server/public/assets/dotenv-Cm4nwcJ7.js +1 -0
  76. package/server/public/assets/dracula-CAUSusef.js +1 -0
  77. package/server/public/assets/dracula-soft-cjNkMFza.js +1 -0
  78. package/server/public/assets/dream-maker-fjmWTFCO.js +1 -0
  79. package/server/public/assets/edge-DxycC9wl.js +1 -0
  80. package/server/public/assets/elixir-B-50Er3p.js +1 -0
  81. package/server/public/assets/elm-B4-ygIVo.js +1 -0
  82. package/server/public/assets/emacs-lisp-CJzqStIa.js +1 -0
  83. package/server/public/assets/erb-DJvYE1L1.js +1 -0
  84. package/server/public/assets/erlang-C-m_88FN.js +1 -0
  85. package/server/public/assets/everforest-dark-DBpaSMx1.js +1 -0
  86. package/server/public/assets/everforest-light-CiGrXwia.js +1 -0
  87. package/server/public/assets/fennel-DRaXF7k8.js +1 -0
  88. package/server/public/assets/file-tree-CI3Xwwid.js +1907 -0
  89. package/server/public/assets/fish-Bn-Yh3Jj.js +1 -0
  90. package/server/public/assets/fluent-DF5F8Ks_.js +1 -0
  91. package/server/public/assets/fortran-fixed-form-Cx1lv7HN.js +1 -0
  92. package/server/public/assets/fortran-free-form-hCQHRqew.js +1 -0
  93. package/server/public/assets/fsharp-DC5k9sy2.js +1 -0
  94. package/server/public/assets/gdresource-D0EsKdgH.js +1 -0
  95. package/server/public/assets/gdscript-_C9_Hi_w.js +1 -0
  96. package/server/public/assets/gdshader-BW7b1X1Y.js +1 -0
  97. package/server/public/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2 +0 -0
  98. package/server/public/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2 +0 -0
  99. package/server/public/assets/geist-latin-wght-normal-Dm3htQBi.woff2 +0 -0
  100. package/server/public/assets/genie-Ch_6TCHd.js +1 -0
  101. package/server/public/assets/gherkin-CaNUsmTq.js +1 -0
  102. package/server/public/assets/git-commit-BcFsuO5E.js +1 -0
  103. package/server/public/assets/git-rebase-ChGA-z50.js +1 -0
  104. package/server/public/assets/github-dark-B9ygjgg6.js +1 -0
  105. package/server/public/assets/github-dark-default-Br2bgYSx.js +1 -0
  106. package/server/public/assets/github-dark-dimmed-CmtqpPJ-.js +1 -0
  107. package/server/public/assets/github-dark-high-contrast-fSfmrZcC.js +1 -0
  108. package/server/public/assets/github-light-BZjUqfZl.js +1 -0
  109. package/server/public/assets/github-light-default-lIytXXhR.js +1 -0
  110. package/server/public/assets/github-light-high-contrast-BRrjFb7n.js +1 -0
  111. package/server/public/assets/gleam-DALMDpNs.js +1 -0
  112. package/server/public/assets/glimmer-js-maLb6ysA.js +1 -0
  113. package/server/public/assets/glimmer-ts-DGNr-OBA.js +1 -0
  114. package/server/public/assets/glsl-CmplqyQ1.js +1 -0
  115. package/server/public/assets/gn-DGjqrYN9.js +1 -0
  116. package/server/public/assets/gnuplot-BYckvgQI.js +1 -0
  117. package/server/public/assets/go-JycvP538.js +1 -0
  118. package/server/public/assets/graphql-VhP7n4--.js +1 -0
  119. package/server/public/assets/groovy-D5qMRONT.js +1 -0
  120. package/server/public/assets/gruvbox-dark-hard-M1dj1e6V.js +1 -0
  121. package/server/public/assets/gruvbox-dark-medium-cqq_ncQu.js +1 -0
  122. package/server/public/assets/gruvbox-dark-soft-B4QwL2a9.js +1 -0
  123. package/server/public/assets/gruvbox-light-hard-DLayMKOQ.js +1 -0
  124. package/server/public/assets/gruvbox-light-medium-D52XgPKf.js +1 -0
  125. package/server/public/assets/gruvbox-light-soft-Dola3KdD.js +1 -0
  126. package/server/public/assets/hack-BVSQ2bxM.js +1 -0
  127. package/server/public/assets/haml-CwTtRHoj.js +1 -0
  128. package/server/public/assets/handlebars-CcO01SVo.js +1 -0
  129. package/server/public/assets/haskell-ys7wPPEd.js +1 -0
  130. package/server/public/assets/haxe-94kiChn7.js +1 -0
  131. package/server/public/assets/hcl-DmHt_-wq.js +1 -0
  132. package/server/public/assets/hjson-xMmoJ0Gx.js +1 -0
  133. package/server/public/assets/hlsl-b-Pskdze.js +1 -0
  134. package/server/public/assets/horizon-BKMqttiR.js +1 -0
  135. package/server/public/assets/horizon-bright-HNkBlnm5.js +1 -0
  136. package/server/public/assets/houston-BkBSBSOQ.js +1 -0
  137. package/server/public/assets/html-derivative-Cz-cKMi2.js +1 -0
  138. package/server/public/assets/html-zQbUS8Is.js +1 -0
  139. package/server/public/assets/http-CaGQ9BgA.js +1 -0
  140. package/server/public/assets/hurl-BBoki9bg.js +1 -0
  141. package/server/public/assets/hxml-iQTOTWpM.js +1 -0
  142. package/server/public/assets/hy-DKl1XhBq.js +1 -0
  143. package/server/public/assets/imba-DPxkOTAg.js +1 -0
  144. package/server/public/assets/ini-lkLGq_1x.js +1 -0
  145. package/server/public/assets/java-LAx6oszV.js +1 -0
  146. package/server/public/assets/javascript-COqx-gKX.js +1 -0
  147. package/server/public/assets/jinja-x-G_qSCP.js +1 -0
  148. package/server/public/assets/jison-7oSeVkKJ.js +1 -0
  149. package/server/public/assets/json-sTLOVXhc.js +1 -0
  150. package/server/public/assets/json5-Cy6ypJuJ.js +1 -0
  151. package/server/public/assets/jsonc-Cw2ugYAK.js +1 -0
  152. package/server/public/assets/jsonl-Dp5_qBVH.js +1 -0
  153. package/server/public/assets/jsonnet-BTbmg_-u.js +1 -0
  154. package/server/public/assets/jssm-CnT7nPea.js +1 -0
  155. package/server/public/assets/jsx-zXeIBQLI.js +1 -0
  156. package/server/public/assets/julia-E-6Xm9nd.js +1 -0
  157. package/server/public/assets/just-D9n74gZy.js +1 -0
  158. package/server/public/assets/kanagawa-dragon-CxsBnuhV.js +1 -0
  159. package/server/public/assets/kanagawa-lotus-vHdxDDOS.js +1 -0
  160. package/server/public/assets/kanagawa-wave-CIkfTKWk.js +1 -0
  161. package/server/public/assets/kdl-BwK60g80.js +1 -0
  162. package/server/public/assets/kotlin-Dbd9Vi-v.js +1 -0
  163. package/server/public/assets/kusto-BuTk9usc.js +1 -0
  164. package/server/public/assets/laserwave-C0wf_d3o.js +1 -0
  165. package/server/public/assets/latex-D0t4RtEU.js +1 -0
  166. package/server/public/assets/lean-CYAW8bRN.js +1 -0
  167. package/server/public/assets/less-D4uen21c.js +1 -0
  168. package/server/public/assets/light-plus-oqYyWKEE.js +1 -0
  169. package/server/public/assets/liquid-BzXN12F6.js +1 -0
  170. package/server/public/assets/llvm-Z1xJzteV.js +1 -0
  171. package/server/public/assets/log-BGUxlsk3.js +1 -0
  172. package/server/public/assets/logo-wVUhvQ1b.js +1 -0
  173. package/server/public/assets/lua-B0Cg8RP4.js +1 -0
  174. package/server/public/assets/luau-rPFZzCmq.js +1 -0
  175. package/server/public/assets/main-FvxVz-kD.js +15 -0
  176. package/server/public/assets/make-BmPf6m0P.js +1 -0
  177. package/server/public/assets/markdown-AseU6zcW.js +1 -0
  178. package/server/public/assets/marko-BlRPXWOe.js +1 -0
  179. package/server/public/assets/material-theme-6_W6rQhR.js +1 -0
  180. package/server/public/assets/material-theme-darker-VPEo3Sem.js +1 -0
  181. package/server/public/assets/material-theme-lighter-CUhzCcZ9.js +1 -0
  182. package/server/public/assets/material-theme-ocean-B2JdsaGb.js +1 -0
  183. package/server/public/assets/material-theme-palenight-DhY-sklA.js +1 -0
  184. package/server/public/assets/matlab-BOj_BDQv.js +1 -0
  185. package/server/public/assets/mdc-FiVDZSZ4.js +1 -0
  186. package/server/public/assets/mdx-Cm6cDkDI.js +1 -0
  187. package/server/public/assets/mermaid-DLO-R4hv.js +1 -0
  188. package/server/public/assets/min-dark-D34a_pX7.js +1 -0
  189. package/server/public/assets/min-light-Cdd4KORE.js +1 -0
  190. package/server/public/assets/mipsasm-DYpHF-GA.js +1 -0
  191. package/server/public/assets/mojo-DqYVFv_G.js +1 -0
  192. package/server/public/assets/monokai-CDR4sQ2n.js +1 -0
  193. package/server/public/assets/moonbit-DRKee9wk.js +1 -0
  194. package/server/public/assets/move-DbRk6Vn9.js +1 -0
  195. package/server/public/assets/narrat-IOfmaXfb.js +1 -0
  196. package/server/public/assets/new-DOyplRwM.js +1 -0
  197. package/server/public/assets/nextflow-D-Ec_bsY.js +1 -0
  198. package/server/public/assets/nextflow-groovy-EYl0c2BQ.js +1 -0
  199. package/server/public/assets/nginx-3JLAqmJa.js +1 -0
  200. package/server/public/assets/night-owl-light-Bedht9b4.js +1 -0
  201. package/server/public/assets/night-owl-yQJ3-I0I.js +1 -0
  202. package/server/public/assets/nim-DyjFVMzT.js +1 -0
  203. package/server/public/assets/nix-C2IovEl2.js +1 -0
  204. package/server/public/assets/nord-BjZ63GNL.js +1 -0
  205. package/server/public/assets/nushell-BflTrRB5.js +1 -0
  206. package/server/public/assets/objective-c-GRClK1S7.js +1 -0
  207. package/server/public/assets/objective-cpp-l3qYw-v5.js +1 -0
  208. package/server/public/assets/ocaml-BBDyhyMH.js +1 -0
  209. package/server/public/assets/odin-jCJ7Js99.js +1 -0
  210. package/server/public/assets/one-dark-pro-PIx2Diul.js +1 -0
  211. package/server/public/assets/one-light-BFMEz49S.js +1 -0
  212. package/server/public/assets/openscad-Drf0LgCX.js +1 -0
  213. package/server/public/assets/pascal-BT2XAUTl.js +1 -0
  214. package/server/public/assets/perl-Dr47G_2Q.js +1 -0
  215. package/server/public/assets/php-BhBDWTJe.js +1 -0
  216. package/server/public/assets/pierre-dark-CTXzTLfO.js +1 -0
  217. package/server/public/assets/pierre-light-C_5rlJRo.js +1 -0
  218. package/server/public/assets/pkl-ML-dWShO.js +1 -0
  219. package/server/public/assets/plastic-BFI-Z5Z2.js +1 -0
  220. package/server/public/assets/plsql-0vd5cLro.js +1 -0
  221. package/server/public/assets/po-CbZ_uqQA.js +1 -0
  222. package/server/public/assets/poimandres-Cayhd01L.js +1 -0
  223. package/server/public/assets/polar-C4hfV8Nc.js +1 -0
  224. package/server/public/assets/postcss-osFUbTLw.js +1 -0
  225. package/server/public/assets/powerquery-CTlGUQPj.js +1 -0
  226. package/server/public/assets/powershell-DyZsOmuq.js +1 -0
  227. package/server/public/assets/preload-helper-D7oT-Xwl.js +20 -0
  228. package/server/public/assets/prisma-SS92PO_I.js +1 -0
  229. package/server/public/assets/prolog-B1O1NNVC.js +1 -0
  230. package/server/public/assets/proto-BWu3eZTs.js +1 -0
  231. package/server/public/assets/pug-Dij_IK5w.js +1 -0
  232. package/server/public/assets/puppet-tvtRVdr6.js +1 -0
  233. package/server/public/assets/purescript-Dtbpb7D-.js +1 -0
  234. package/server/public/assets/python-Dlk0Acio.js +1 -0
  235. package/server/public/assets/qml-qUwk3nhh.js +1 -0
  236. package/server/public/assets/qmldir-B-iEOngH.js +1 -0
  237. package/server/public/assets/qss-Ba0p-aHw.js +1 -0
  238. package/server/public/assets/r-WmtNicKM.js +1 -0
  239. package/server/public/assets/racket-BXDsxf2U.js +1 -0
  240. package/server/public/assets/raku-Dw1WWFXK.js +1 -0
  241. package/server/public/assets/razor-DaqiVx3Q.js +1 -0
  242. package/server/public/assets/red-BC3Ds49b.js +1 -0
  243. package/server/public/assets/reg-DXFHGaM4.js +1 -0
  244. package/server/public/assets/regexp-CiSWN5Ne.js +1 -0
  245. package/server/public/assets/rel-Dc5_Ytx2.js +1 -0
  246. package/server/public/assets/reviews-CJvVXRLH.js +1 -0
  247. package/server/public/assets/reviews-CfbuF6ib.js +1 -0
  248. package/server/public/assets/riscv-ZgswiWij.js +1 -0
  249. package/server/public/assets/ron-YghabWAH.js +1 -0
  250. package/server/public/assets/rose-pine-ByWLnVr3.js +1 -0
  251. package/server/public/assets/rose-pine-dawn-DBmeySrz.js +1 -0
  252. package/server/public/assets/rose-pine-moon-B9J-N3nK.js +1 -0
  253. package/server/public/assets/rosmsg-DTKmAsVH.js +1 -0
  254. package/server/public/assets/routes-DNxq1Fba.js +1 -0
  255. package/server/public/assets/routes-Dp0ODZ55.js +2 -0
  256. package/server/public/assets/rst-CP6xOYlY.js +1 -0
  257. package/server/public/assets/ruby-BXYLc1CM.js +1 -0
  258. package/server/public/assets/rust-nfXwuE6F.js +1 -0
  259. package/server/public/assets/sas-CFdtZutF.js +1 -0
  260. package/server/public/assets/sass-CbRjkld3.js +1 -0
  261. package/server/public/assets/scala-BzD3eypx.js +1 -0
  262. package/server/public/assets/scheme-D4d1PV1y.js +1 -0
  263. package/server/public/assets/scss-D8KhdObH.js +1 -0
  264. package/server/public/assets/sdbl-Cf-Ydnvx.js +1 -0
  265. package/server/public/assets/shaderlab-DGohHMiF.js +1 -0
  266. package/server/public/assets/shellscript-BHdEbumI.js +1 -0
  267. package/server/public/assets/shellsession-Dh-bxrap.js +1 -0
  268. package/server/public/assets/slack-dark-MszIyPZ2.js +1 -0
  269. package/server/public/assets/slack-ochin-tQ3Q0gE9.js +1 -0
  270. package/server/public/assets/smalltalk-_uWoArwn.js +1 -0
  271. package/server/public/assets/snazzy-light-9sniMEk5.js +1 -0
  272. package/server/public/assets/solarized-dark-CdD0Hxzv.js +1 -0
  273. package/server/public/assets/solarized-light-C-nsEdqF.js +1 -0
  274. package/server/public/assets/solidity-D6uC-xwP.js +1 -0
  275. package/server/public/assets/soy-cDuODfbT.js +1 -0
  276. package/server/public/assets/sparql-BgU2QITA.js +1 -0
  277. package/server/public/assets/splunk-LQYHRu14.js +1 -0
  278. package/server/public/assets/sql-CKZpK620.js +1 -0
  279. package/server/public/assets/ssh-config-B7BUl8Rd.js +1 -0
  280. package/server/public/assets/stata-BLJTbKOO.js +1 -0
  281. package/server/public/assets/styles-UDowwF7S.css +2 -0
  282. package/server/public/assets/stylus-Byjxdx_q.js +1 -0
  283. package/server/public/assets/surrealql-C96KvYaj.js +1 -0
  284. package/server/public/assets/svelte-Qnbj2GWx.js +1 -0
  285. package/server/public/assets/swift-BexLlMrU.js +1 -0
  286. package/server/public/assets/synthwave-84-BxMBwQMS.js +1 -0
  287. package/server/public/assets/system-verilog-DVGwm0mw.js +1 -0
  288. package/server/public/assets/systemd-H2IT3-p5.js +1 -0
  289. package/server/public/assets/talonscript-mKZIGM8n.js +1 -0
  290. package/server/public/assets/tasl-B7he_Ugr.js +1 -0
  291. package/server/public/assets/tcl-5mT3RxHH.js +1 -0
  292. package/server/public/assets/templ-CQPDll3D.js +1 -0
  293. package/server/public/assets/terraform-BZP0GLsT.js +1 -0
  294. package/server/public/assets/test-D7JRfog1.js +1 -0
  295. package/server/public/assets/tex-97QNLoBJ.js +1 -0
  296. package/server/public/assets/tokyo-night-CTPVdZt9.js +1 -0
  297. package/server/public/assets/toml-CTFA98he.js +1 -0
  298. package/server/public/assets/ts-tags-B8zlXe2n.js +1 -0
  299. package/server/public/assets/tsv-BayJtYdY.js +1 -0
  300. package/server/public/assets/tsx-VqRU8NCz.js +1 -0
  301. package/server/public/assets/turtle-TVCBh_kY.js +1 -0
  302. package/server/public/assets/twig-FTTF8rVk.js +1 -0
  303. package/server/public/assets/typescript-CuX0hIVY.js +1 -0
  304. package/server/public/assets/typespec-BUvaJDLF.js +1 -0
  305. package/server/public/assets/typst-8NBaY7Ec.js +1 -0
  306. package/server/public/assets/useStore-M3H8PB1v.js +1 -0
  307. package/server/public/assets/utils-DElCu2hq.js +1 -0
  308. package/server/public/assets/v-VihyTigi.js +1 -0
  309. package/server/public/assets/vala-DyFAPyX6.js +1 -0
  310. package/server/public/assets/vb-Dg1Iqi4J.js +1 -0
  311. package/server/public/assets/verilog-D2Xc-vhD.js +1 -0
  312. package/server/public/assets/vesper-DJbtqYNr.js +1 -0
  313. package/server/public/assets/vhdl-CU3BVeE7.js +1 -0
  314. package/server/public/assets/viml-hG2shuOW.js +1 -0
  315. package/server/public/assets/vitesse-black-DbG2gsc0.js +1 -0
  316. package/server/public/assets/vitesse-dark-B6WV4xXH.js +1 -0
  317. package/server/public/assets/vitesse-light-DC1pdD02.js +1 -0
  318. package/server/public/assets/vue-DXwaEU0U.js +1 -0
  319. package/server/public/assets/vue-html-QD7AJ6JJ.js +1 -0
  320. package/server/public/assets/vue-vine-Bh2m1D2Z.js +1 -0
  321. package/server/public/assets/vyper-C1wojIuk.js +1 -0
  322. package/server/public/assets/wasm-C6Y0s02M.js +1 -0
  323. package/server/public/assets/wasm-qTvCOSHz.js +1 -0
  324. package/server/public/assets/wenyan-BG5vPQF0.js +1 -0
  325. package/server/public/assets/wgsl-DrVb-Cub.js +1 -0
  326. package/server/public/assets/wikitext-PRC4s8sH.js +1 -0
  327. package/server/public/assets/wit-ChW5qvg_.js +1 -0
  328. package/server/public/assets/wolfram-B8mKuZSQ.js +1 -0
  329. package/server/public/assets/xml-BK-rcb5a.js +1 -0
  330. package/server/public/assets/xsl-dt-d2R7p.js +1 -0
  331. package/server/public/assets/yaml-UiXU3hGj.js +1 -0
  332. package/server/public/assets/zenscript-C-jEPC9j.js +1 -0
  333. package/server/public/assets/zig-EbnRGjcz.js +1 -0
  334. package/server/public/favicon.ico +0 -0
  335. package/server/public/logo192.png +0 -0
  336. package/server/public/logo512.png +0 -0
  337. package/server/public/manifest.json +25 -0
  338. package/server/public/robots.txt +3 -0
  339. package/server/public/tanstack-circle-logo.png +0 -0
  340. package/server/public/tanstack-word-logo-white.svg +1 -0
  341. package/server/server/_chunks/ssr-renderer.mjs +15 -0
  342. package/server/server/_libs/@floating-ui/core+[...].mjs +698 -0
  343. package/server/server/_libs/@floating-ui/dom+[...].mjs +644 -0
  344. package/server/server/_libs/@floating-ui/react-dom+[...].mjs +839 -0
  345. package/server/server/_libs/@pierre/diffs+[...].mjs +18578 -0
  346. package/server/server/_libs/@radix-ui/react-arrow+[...].mjs +174 -0
  347. package/server/server/_libs/@radix-ui/react-collection+[...].mjs +162 -0
  348. package/server/server/_libs/@radix-ui/react-dialog+[...].mjs +1666 -0
  349. package/server/server/_libs/@radix-ui/react-popper+[...].mjs +289 -0
  350. package/server/server/_libs/@radix-ui/react-radio-group+[...].mjs +420 -0
  351. package/server/server/_libs/@radix-ui/react-select+[...].mjs +990 -0
  352. package/server/server/_libs/@tanstack/react-router+[...].mjs +14113 -0
  353. package/server/server/_libs/_.mjs +2 -0
  354. package/server/server/_libs/chokidar+readdirp.mjs +1599 -0
  355. package/server/server/_libs/class-variance-authority+clsx.mjs +69 -0
  356. package/server/server/_libs/effect+[...].mjs +34047 -0
  357. package/server/server/_libs/h3+rou3+srvx.mjs +1195 -0
  358. package/server/server/_libs/hookable.mjs +41 -0
  359. package/server/server/_libs/lucide-react.mjs +298 -0
  360. package/server/server/_libs/pierre__theme.mjs +2668 -0
  361. package/server/server/_libs/radix-ui__number.mjs +6 -0
  362. package/server/server/_libs/radix-ui__primitive.mjs +9 -0
  363. package/server/server/_libs/radix-ui__react-direction.mjs +11 -0
  364. package/server/server/_libs/shiki.mjs +16 -0
  365. package/server/server/_libs/shikijs__langs.mjs +1355 -0
  366. package/server/server/_libs/shikijs__themes.mjs +262 -0
  367. package/server/server/_libs/tailwind-merge.mjs +1962 -0
  368. package/server/server/_libs/tanstack__history.mjs +342 -0
  369. package/server/server/_libs/tanstack__router-core.mjs +6 -0
  370. package/server/server/_libs/ufo.mjs +64 -0
  371. package/server/server/_reviewId-AWnOGz5k.mjs +33 -0
  372. package/server/server/_reviewId-Com4yOlc.mjs +29 -0
  373. package/server/server/_reviewId-DAhmekJ2.mjs +277 -0
  374. package/server/server/_reviewId-p9mhYVwa.mjs +18 -0
  375. package/server/server/_runtime.mjs +35 -0
  376. package/server/server/_ssr/action-bar-C68xGnWW.mjs +592 -0
  377. package/server/server/_ssr/api-handler-CstW2n82.mjs +189 -0
  378. package/server/server/_ssr/client-runtime-BoPuAEoA.mjs +245 -0
  379. package/server/server/_ssr/createServerRpc--0mcGlWK.mjs +12 -0
  380. package/server/server/_ssr/createSsrRpc-AwdiLXmF.mjs +16 -0
  381. package/server/server/_ssr/domain-rpc-3Ds9DPr0.mjs +287 -0
  382. package/server/server/_ssr/file-tree-CQ5w2GHh.mjs +1951 -0
  383. package/server/server/_ssr/load-scoped-diff-NL2XAcdz.mjs +45 -0
  384. package/server/server/_ssr/new-BKl_G2Ks.mjs +37 -0
  385. package/server/server/_ssr/new-BREdMFAM.mjs +12 -0
  386. package/server/server/_ssr/new-DCz5eHkb.mjs +137 -0
  387. package/server/server/_ssr/reviews-BL5Nsgst.mjs +7 -0
  388. package/server/server/_ssr/reviews-BoaEgGKs.mjs +100 -0
  389. package/server/server/_ssr/reviews-C7_NIhY8.mjs +19 -0
  390. package/server/server/_ssr/reviews-Dd69YBDa.mjs +12 -0
  391. package/server/server/_ssr/router-DLxN8FOm.mjs +415 -0
  392. package/server/server/_ssr/routes-D25G8OuS.mjs +80 -0
  393. package/server/server/_ssr/routes-lz0AN75A.mjs +929 -0
  394. package/server/server/_ssr/runtime-D9IbnMlF.mjs +1401 -0
  395. package/server/server/_ssr/server-runtime-D99qpmma.mjs +12 -0
  396. package/server/server/_ssr/ssr.mjs +5318 -0
  397. package/server/server/_ssr/start-BIQfOZtj.mjs +4 -0
  398. package/server/server/_ssr/test-CQdMYlqa.mjs +6 -0
  399. package/server/server/_ssr/todo-m_uUvxca.mjs +88 -0
  400. package/server/server/_ssr/use-keyboard-shortcuts-D5b1Mxpq.mjs +25 -0
  401. package/server/server/_ssr/utils-BuOt9_LA.mjs +8 -0
  402. package/server/server/_tanstack-start-manifest_v-CnL10NRH.mjs +71 -0
  403. package/server/server/index.mjs +2615 -0
  404. package/server/server/node_modules/detect-libc/lib/detect-libc.js +313 -0
  405. package/server/server/node_modules/detect-libc/lib/elf.js +39 -0
  406. package/server/server/node_modules/detect-libc/lib/filesystem.js +51 -0
  407. package/server/server/node_modules/detect-libc/lib/process.js +24 -0
  408. package/server/server/node_modules/detect-libc/package.json +44 -0
  409. package/server/server/node_modules/msgpackr-extract/index.js +1 -0
  410. package/server/server/node_modules/msgpackr-extract/package.json +50 -0
  411. package/server/server/node_modules/node-gyp-build-optional-packages/index.js +6 -0
  412. package/server/server/node_modules/node-gyp-build-optional-packages/node-gyp-build.js +236 -0
  413. package/server/server/node_modules/node-gyp-build-optional-packages/package.json +32 -0
  414. package/server/server/node_modules/tslib/modules/index.js +70 -0
  415. package/server/server/node_modules/tslib/modules/package.json +3 -0
  416. package/server/server/node_modules/tslib/package.json +47 -0
  417. package/server/server/node_modules/tslib/tslib.js +484 -0
  418. package/server/server/package.json +12 -0
@@ -0,0 +1,189 @@
1
+ import { C as consolePretty, Mt as makeMemoMap, Nt as mergeAll, Pt as provide, bt as runSync, d as layer, dt as gen, n as layerHttp, o as layerNdjson, ot as catchTags, st as die, u as group, v as toWebHandler, w as layer$1, y as layerServices } from "../_libs/effect+[...].mjs";
2
+ import { a as GitService, i as ExportService, l as getDiffSummary, n as CoreLive, o as ReviewService, r as EventService, s as TodoService, t as CommentService, u as parseDiff } from "./runtime-D9IbnMlF.mjs";
3
+ import { n as DomainRpc, r as ReviewsRpc, t as DomainApi } from "./domain-rpc-3Ds9DPr0.mjs";
4
+ //#region node_modules/.nitro/vite/services/ssr/assets/api-handler-CstW2n82.js
5
+ var CommentsApiLive = group(DomainApi, "comments", (handlers) => handlers.handle("getByReview", (_) => gen(function* CommentsApiLive() {
6
+ const svc = yield* CommentService;
7
+ const { filePath } = _.query;
8
+ if (filePath) return yield* svc.getByFile(_.params.reviewId, filePath);
9
+ return yield* svc.getByReview(_.params.reviewId);
10
+ })).handle("getById", (_) => gen(function* CommentsApiLive() {
11
+ return yield* (yield* CommentService).getById(_.params.id);
12
+ })).handle("create", (_) => gen(function* CommentsApiLive() {
13
+ return yield* (yield* CommentService).create(_.params.reviewId, _.payload);
14
+ })).handle("update", (_) => gen(function* CommentsApiLive() {
15
+ return yield* (yield* CommentService).update(_.params.id, _.payload);
16
+ })).handle("resolve", (_) => gen(function* CommentsApiLive() {
17
+ return yield* (yield* CommentService).resolve(_.params.id);
18
+ })).handle("unresolve", (_) => gen(function* CommentsApiLive() {
19
+ return yield* (yield* CommentService).unresolve(_.params.id);
20
+ })).handle("remove", (_) => gen(function* CommentsApiLive() {
21
+ return yield* (yield* CommentService).remove(_.params.id);
22
+ })).handle("stats", (_) => gen(function* CommentsApiLive() {
23
+ return yield* (yield* CommentService).getStats(_.params.reviewId);
24
+ })));
25
+ var loadScopedDiff = (scope) => gen(function* loadScopedDiffEffect() {
26
+ const git = yield* GitService;
27
+ let diffText = "";
28
+ switch (scope) {
29
+ case "uncommitted":
30
+ diffText = yield* git.getUncommittedDiff;
31
+ break;
32
+ case "unstaged":
33
+ diffText = yield* git.getUnstagedDiff;
34
+ break;
35
+ case "last-commit":
36
+ diffText = yield* git.getLastCommitDiff;
37
+ break;
38
+ default:
39
+ diffText = yield* git.getStagedDiff;
40
+ break;
41
+ }
42
+ const files = parseDiff(diffText);
43
+ const summary = getDiffSummary(files);
44
+ return {
45
+ files,
46
+ repository: yield* git.getRepositoryInfo,
47
+ summary
48
+ };
49
+ });
50
+ var DiffApiLive = group(DomainApi, "diff", (handlers) => handlers.handle("staged", (_) => loadScopedDiff("staged").pipe(catchTags({ GitError: (error) => die(error) }))).handle("unstaged", (_) => loadScopedDiff("unstaged").pipe(catchTags({ GitError: (error) => die(error) }))).handle("scoped", (_) => loadScopedDiff(_.query.scope).pipe(catchTags({ GitError: (error) => die(error) }))).handle("files", (_) => gen(function* loadDiffFiles() {
51
+ const stagedFiles = yield* (yield* GitService).getStagedFiles;
52
+ return {
53
+ files: stagedFiles,
54
+ hasStagedChanges: stagedFiles.length > 0
55
+ };
56
+ }).pipe(catchTags({ GitError: (error) => die(error) }))));
57
+ var ReviewFilesApiLive = group(DomainApi, "reviewFiles", (handlers) => handlers.handle("hunks", (_) => gen(function* loadReviewFileHunks() {
58
+ return { hunks: yield* (yield* ReviewService).getFileHunks(_.params.reviewId, _.query.path) };
59
+ }).pipe(catchTags({ GitError: (error) => die(error) }))));
60
+ var EventsApiLive = group(DomainApi, "events", (handlers) => handlers.handle("notify", (_) => gen(function* EventsApiLive() {
61
+ yield* (yield* EventService).broadcast(_.payload.type, { action: _.payload.action });
62
+ return { success: true };
63
+ })).handle("clients", (_) => gen(function* EventsApiLive() {
64
+ return { count: yield* (yield* EventService).getClientCount() };
65
+ })));
66
+ var ExportApiLive = group(DomainApi, "export", (handlers) => handlers.handle("markdown", (_) => gen(function* ExportApiLive() {
67
+ return yield* (yield* ExportService).exportReview(_.params.id);
68
+ })));
69
+ var GitApiLive = group(DomainApi, "git", (handlers) => handlers.handle("info", (_) => gen(function* GitApiLive() {
70
+ return yield* (yield* GitService).getRepositoryInfo;
71
+ }).pipe(catchTags({ GitError: (e) => die(e) }))).handle("branches", (_) => gen(function* GitApiLive() {
72
+ return yield* (yield* GitService).getBranches;
73
+ }).pipe(catchTags({ GitError: (e) => die(e) }))).handle("commits", (_) => gen(function* GitApiLive() {
74
+ return yield* (yield* GitService).getCommits({});
75
+ }).pipe(catchTags({ GitError: (e) => die(e) }))).handle("staged", (_) => gen(function* GitApiLive() {
76
+ return { hasStagedChanges: (yield* (yield* GitService).getStagedFiles).length > 0 };
77
+ }).pipe(catchTags({ GitError: (e) => die(e) }))).handle("stage", (_) => gen(function* GitApiLive() {
78
+ return {
79
+ staged: [...yield* (yield* GitService).stageFiles(_.payload.files)],
80
+ success: true
81
+ };
82
+ }).pipe(catchTags({ GitError: (e) => die(e) }))).handle("stageAll", (_) => gen(function* GitApiLive() {
83
+ return {
84
+ staged: [...yield* (yield* GitService).stageAll],
85
+ success: true
86
+ };
87
+ }).pipe(catchTags({ GitError: (e) => die(e) }))).handle("unstage", (_) => gen(function* GitApiLive() {
88
+ return {
89
+ success: true,
90
+ unstaged: [...yield* (yield* GitService).unstageFiles(_.payload.files)]
91
+ };
92
+ }).pipe(catchTags({ GitError: (e) => die(e) }))));
93
+ /**
94
+ * Wires HttpApiBuilder handlers for the ReviewsApiGroup.
95
+ */
96
+ var ReviewsApiLive = group(DomainApi, "reviews", (handlers) => handlers.handle("list", () => gen(function* () {
97
+ return yield* (yield* ReviewService).list({});
98
+ })).handle("getById", (_) => gen(function* () {
99
+ return yield* (yield* ReviewService).getById(_.params.id);
100
+ })).handle("create", (_) => gen(function* () {
101
+ return yield* (yield* ReviewService).create(_.payload);
102
+ }).pipe(catchTags({
103
+ GitError: (e) => die(e),
104
+ ReviewError: (e) => die(e)
105
+ }))).handle("update", (_) => gen(function* () {
106
+ return yield* (yield* ReviewService).update(_.params.id, _.payload);
107
+ })).handle("remove", (_) => gen(function* () {
108
+ return yield* (yield* ReviewService).remove(_.params.id);
109
+ })).handle("stats", () => gen(function* () {
110
+ return yield* (yield* ReviewService).getStats();
111
+ })));
112
+ /**
113
+ * Wires RPC handlers for ReviewsRpc.
114
+ *
115
+ * ReviewService leaks ReviewRepo, ReviewFileRepo, and GitService as runtime
116
+ * requirements. Those must be provided by the caller.
117
+ */
118
+ var ReviewsRpcLive = ReviewsRpc.toLayer({
119
+ reviews_create: (_) => gen(function* reviews_create() {
120
+ return yield* (yield* ReviewService).create(_.input);
121
+ }).pipe(catchTags({
122
+ GitError: (e) => die(e),
123
+ ReviewError: (e) => die(e)
124
+ })),
125
+ reviews_getById: (_) => gen(function* reviews_getById() {
126
+ return yield* (yield* ReviewService).getById(_.id);
127
+ }),
128
+ reviews_list: (_) => gen(function* reviews_list() {
129
+ return yield* (yield* ReviewService).list({
130
+ page: _.page,
131
+ pageSize: _.pageSize,
132
+ status: _.status
133
+ });
134
+ }),
135
+ reviews_remove: (_) => gen(function* reviews_remove() {
136
+ return yield* (yield* ReviewService).remove(_.id);
137
+ }),
138
+ reviews_stats: (_) => gen(function* reviews_stats() {
139
+ return yield* (yield* ReviewService).getStats();
140
+ }),
141
+ reviews_update: (_) => gen(function* reviews_update() {
142
+ return yield* (yield* ReviewService).update(_.id, _.input);
143
+ })
144
+ });
145
+ var TodosApiLive = group(DomainApi, "todos", (handlers) => handlers.handle("list", (_) => gen(function* TodosApiLive() {
146
+ return yield* (yield* TodoService).list({});
147
+ })).handle("getById", (_) => gen(function* TodosApiLive() {
148
+ return yield* (yield* TodoService).getById(_.params.id);
149
+ })).handle("create", (_) => gen(function* TodosApiLive() {
150
+ return yield* (yield* TodoService).create(_.payload);
151
+ })).handle("update", (_) => gen(function* TodosApiLive() {
152
+ return yield* (yield* TodoService).update(_.params.id, _.payload);
153
+ })).handle("toggle", (_) => gen(function* TodosApiLive() {
154
+ return yield* (yield* TodoService).toggle(_.params.id);
155
+ })).handle("remove", (_) => gen(function* TodosApiLive() {
156
+ return yield* (yield* TodoService).remove(_.params.id);
157
+ })).handle("removeCompleted", (_) => gen(function* TodosApiLive() {
158
+ return yield* (yield* TodoService).removeCompleted();
159
+ })).handle("reorder", (_) => gen(function* TodosApiLive() {
160
+ return yield* (yield* TodoService).reorder(_.payload.orderedIds);
161
+ })).handle("move", (_) => gen(function* TodosApiLive() {
162
+ return yield* (yield* TodoService).move(_.params.id, _.payload.position);
163
+ })).handle("stats", (_) => gen(function* TodosApiLive() {
164
+ return yield* (yield* TodoService).getStats();
165
+ })));
166
+ var ServiceLayers = CoreLive;
167
+ var AllRoutes = mergeAll(layerHttp({
168
+ group: DomainRpc,
169
+ path: "/api/rpc",
170
+ spanPrefix: "rpc"
171
+ }).pipe(provide(ReviewsRpcLive), provide(layerNdjson)), layer(DomainApi).pipe(provide(ReviewsApiLive), provide(CommentsApiLive), provide(TodosApiLive), provide(DiffApiLive), provide(ReviewFilesApiLive), provide(GitApiLive), provide(EventsApiLive), provide(ExportApiLive), provide(layerServices))).pipe(provide(ServiceLayers), provide(layer$1([consolePretty()])));
172
+ /**
173
+ * Initialize the Effect HTTP + RPC handler.
174
+ * Called lazily on first API request to avoid blocking SSR module evaluation.
175
+ */
176
+ var initApiHandler = async () => {
177
+ const { handler, dispose: disposeHandler } = toWebHandler(AllRoutes, { memoMap: runSync(makeMemoMap) });
178
+ const { serverRuntime } = await import("./server-runtime-D99qpmma.mjs");
179
+ const dispose = async () => {
180
+ await disposeHandler();
181
+ await serverRuntime.dispose();
182
+ };
183
+ return {
184
+ handler,
185
+ dispose
186
+ };
187
+ };
188
+ //#endregion
189
+ export { initApiHandler };
@@ -0,0 +1,245 @@
1
+ import { i as __toESM } from "../_runtime.mjs";
2
+ import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
3
+ import { n as require_jsx_runtime } from "../_libs/@pierre/diffs+[...].mjs";
4
+ import { At as exponential, O as isStream, Pt as provide, Rt as Service, S as make$2, a as make, b as filterStatusOk, dt as gen, ft as isEffect, i as layerProtocolHttp, jt as effect, k as tapCause$1, l as make$1, o as layerNdjson, pt as logError, t as layer, wt as tapCause, x as retryTransient } from "../_libs/effect+[...].mjs";
5
+ import { n as DomainRpc, t as DomainApi } from "./domain-rpc-3Ds9DPr0.mjs";
6
+ //#region node_modules/.nitro/vite/services/ssr/assets/client-runtime-BoPuAEoA.js
7
+ var import_react = /* @__PURE__ */ __toESM(require_react());
8
+ var import_jsx_runtime = require_jsx_runtime();
9
+ /** Ordered list: default first. IDs must match `data-ringi-palette` in `ringi-palettes.css`. */
10
+ var RINGI_PALETTES = [
11
+ {
12
+ description: "Ringi default — cool neutral surfaces, blue accent.",
13
+ id: "ringi",
14
+ label: "Ringi",
15
+ swatches: [
16
+ "#0d0d0d",
17
+ "#3d6ad6",
18
+ "#3fb950",
19
+ "#f85149"
20
+ ]
21
+ },
22
+ {
23
+ description: "Classic Dracula-inspired contrast with green accent.",
24
+ id: "dracula",
25
+ label: "Dracula",
26
+ swatches: [
27
+ "#282a36",
28
+ "#50fa7b",
29
+ "#8be9fd",
30
+ "#ff5555"
31
+ ]
32
+ },
33
+ {
34
+ description: "Tokyo Night — deep blue-violet editor tones.",
35
+ id: "tokyo-night",
36
+ label: "Tokyo Night",
37
+ swatches: [
38
+ "#1a1b26",
39
+ "#7aa2f7",
40
+ "#9ece6a",
41
+ "#f7768e"
42
+ ]
43
+ },
44
+ {
45
+ description: "Catppuccin Mocha — soft pastel accents on dark base.",
46
+ id: "catppuccin",
47
+ label: "Catppuccin",
48
+ swatches: [
49
+ "#1e1e2e",
50
+ "#89dceb",
51
+ "#a6e3a1",
52
+ "#f38ba8"
53
+ ]
54
+ },
55
+ {
56
+ description: "Gruvbox — warm paper-like dark UI.",
57
+ id: "gruvbox",
58
+ label: "Gruvbox",
59
+ swatches: [
60
+ "#282828",
61
+ "#d79921",
62
+ "#b8bb26",
63
+ "#fb4934"
64
+ ]
65
+ },
66
+ {
67
+ description: "Rosé Pine — muted mauve and sage atmosphere.",
68
+ id: "rose-pine",
69
+ label: "Rosé Pine",
70
+ swatches: [
71
+ "#191724",
72
+ "#ebbcba",
73
+ "#9ccfd8",
74
+ "#eb6f92"
75
+ ]
76
+ },
77
+ {
78
+ description: "Monokai-inspired greens and magentas.",
79
+ id: "monokai",
80
+ label: "Monokai",
81
+ swatches: [
82
+ "#272822",
83
+ "#a6e22e",
84
+ "#66d9ef",
85
+ "#f92672"
86
+ ]
87
+ },
88
+ {
89
+ description: "Synthwave hints — coral accent on midnight plum.",
90
+ id: "synthwave",
91
+ label: "Synthwave",
92
+ swatches: [
93
+ "#1a1625",
94
+ "#f97e72",
95
+ "#34d3c6",
96
+ "#b794f6"
97
+ ]
98
+ }
99
+ ];
100
+ var RINGI_PREFERENCES_STORAGE_KEY = "ringi.preferences.v1";
101
+ var DEFAULT_RINGI_PREFERENCES = {
102
+ appearance: "system",
103
+ palette: "ringi"
104
+ };
105
+ var PALETTE_IDS = new Set(RINGI_PALETTES.map((p) => p.id));
106
+ var isAppearanceMode = (v) => v === "dark" || v === "light" || v === "system";
107
+ var isPaletteId = (v) => typeof v === "string" && PALETTE_IDS.has(v);
108
+ var parseRingiPreferences = (raw) => {
109
+ if (!raw) return DEFAULT_RINGI_PREFERENCES;
110
+ try {
111
+ const data = JSON.parse(raw);
112
+ const { appearance } = data;
113
+ const { palette } = data;
114
+ return {
115
+ appearance: isAppearanceMode(appearance) ? appearance : DEFAULT_RINGI_PREFERENCES.appearance,
116
+ palette: isPaletteId(palette) ? palette : DEFAULT_RINGI_PREFERENCES.palette
117
+ };
118
+ } catch {
119
+ return DEFAULT_RINGI_PREFERENCES;
120
+ }
121
+ };
122
+ var readRingiPreferencesFromStorage = () => {
123
+ if (typeof window === "undefined") return DEFAULT_RINGI_PREFERENCES;
124
+ return parseRingiPreferences(localStorage.getItem(RINGI_PREFERENCES_STORAGE_KEY));
125
+ };
126
+ var writeRingiPreferencesToStorage = (prefs) => {
127
+ if (typeof window === "undefined") return;
128
+ localStorage.setItem(RINGI_PREFERENCES_STORAGE_KEY, JSON.stringify(prefs));
129
+ };
130
+ /** Inline script for <head>: applies class + palette before paint (must stay in sync with read logic). */
131
+ var getRingiThemeBootScript = () => {
132
+ return `(function(){try{var k=${JSON.stringify(RINGI_PREFERENCES_STORAGE_KEY)};var ok=${`{${RINGI_PALETTES.map((x) => `${JSON.stringify(x.id)}:1`).join(",")}}`};var d=JSON.parse(localStorage.getItem(k)||'null');var a=d&&d.appearance;var p=d&&d.palette;var appearance=a==='dark'||a==='light'||a==='system'?a:'system';var pal=ok[p]?p:'ringi';var dark=appearance==='dark'||(appearance==='system'&&window.matchMedia('(prefers-color-scheme: dark)').matches);document.documentElement.classList.toggle('dark',dark);document.documentElement.dataset.ringiPalette=pal;}catch(e){document.documentElement.classList.add('dark');document.documentElement.dataset.ringiPalette='ringi';}})();`;
133
+ };
134
+ var resolveDarkAppearance = (appearance) => {
135
+ if (appearance === "dark") return true;
136
+ if (appearance === "light") return false;
137
+ if (typeof window === "undefined") return true;
138
+ return window.matchMedia("(prefers-color-scheme: dark)").matches;
139
+ };
140
+ var applyRingiThemeToDocument = (doc, appearance, palette) => {
141
+ const root = doc.documentElement;
142
+ root.classList.toggle("dark", resolveDarkAppearance(appearance));
143
+ root.dataset.ringiPalette = palette;
144
+ };
145
+ var RingiThemeContext = (0, import_react.createContext)(null);
146
+ var useRingiTheme = () => {
147
+ const ctx = (0, import_react.use)(RingiThemeContext);
148
+ if (!ctx) throw new Error("useRingiTheme must be used within RingiThemeProvider");
149
+ return ctx;
150
+ };
151
+ var RingiThemeProvider = ({ children }) => {
152
+ const [appearance, setAppearanceState] = (0, import_react.useState)(() => readRingiPreferencesFromStorage().appearance);
153
+ const [palette, setPaletteState] = (0, import_react.useState)(() => readRingiPreferencesFromStorage().palette);
154
+ const applyDom = (0, import_react.useEffectEvent)(() => {
155
+ applyRingiThemeToDocument(document, appearance, palette);
156
+ });
157
+ (0, import_react.useEffect)(() => {
158
+ applyDom();
159
+ }, [appearance, palette]);
160
+ (0, import_react.useEffect)(() => {
161
+ if (appearance !== "system") return;
162
+ const mql = window.matchMedia("(prefers-color-scheme: dark)");
163
+ const onChange = () => {
164
+ applyDom();
165
+ };
166
+ mql.addEventListener("change", onChange);
167
+ return () => mql.removeEventListener("change", onChange);
168
+ }, [appearance]);
169
+ (0, import_react.useEffect)(() => {
170
+ writeRingiPreferencesToStorage({
171
+ appearance,
172
+ palette
173
+ });
174
+ }, [appearance, palette]);
175
+ const value = (0, import_react.useMemo)(() => ({
176
+ appearance,
177
+ palette,
178
+ setAppearance: (mode) => {
179
+ (0, import_react.startTransition)(() => setAppearanceState(mode));
180
+ },
181
+ setPalette: (id) => {
182
+ (0, import_react.startTransition)(() => setPaletteState(id));
183
+ },
184
+ setPreferences: (next) => {
185
+ (0, import_react.startTransition)(() => {
186
+ setAppearanceState(next.appearance);
187
+ setPaletteState(next.palette);
188
+ });
189
+ }
190
+ }), [appearance, palette]);
191
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RingiThemeContext.Provider, {
192
+ value,
193
+ children
194
+ });
195
+ };
196
+ var addRpcErrorLogging = (client) => {
197
+ const wrapCall = (fn, path) => {
198
+ const rpcId = path.join(".");
199
+ const logCause = (cause) => logError(`[API] ${rpcId} failed`, cause);
200
+ return function wrappedCall(...args) {
201
+ const result = fn.apply(this, args);
202
+ if (isEffect(result)) return result.pipe(tapCause(logCause));
203
+ if (isStream(result)) return result.pipe(tapCause$1(logCause));
204
+ return result;
205
+ };
206
+ };
207
+ const visit = (node, path) => {
208
+ if (node && typeof node === "object") for (const [key, value] of Object.entries(node)) {
209
+ const nextPath = [...path, key];
210
+ if (typeof value === "function") {
211
+ node[key] = wrapCall(value, nextPath);
212
+ continue;
213
+ }
214
+ visit(value, nextPath);
215
+ }
216
+ return node;
217
+ };
218
+ return visit(client, []);
219
+ };
220
+ var getBaseUrl = () => typeof window === "undefined" ? "http://localhost:3000" : window.location.origin;
221
+ var RpcConfigLive = layerProtocolHttp({ url: `${getBaseUrl()}/api/rpc` }).pipe(provide([layer, layerNdjson]));
222
+ var ApiClient = class ApiClient extends Service()("ApiClient") {
223
+ static Default = effect(ApiClient, gen(function* () {
224
+ const rpcClient = yield* make(DomainRpc);
225
+ const httpClient = yield* make$1(DomainApi, {
226
+ baseUrl: getBaseUrl(),
227
+ transformClient: (client) => client.pipe(filterStatusOk, retryTransient({
228
+ schedule: exponential("1 second"),
229
+ times: 3
230
+ }))
231
+ });
232
+ return ApiClient.of({
233
+ http: httpClient,
234
+ rpc: addRpcErrorLogging(rpcClient)
235
+ });
236
+ })).pipe(provide(RpcConfigLive), provide(layer));
237
+ };
238
+ var runtime = make$2(ApiClient.Default);
239
+ var clientRuntime = {
240
+ ...runtime,
241
+ runFork: runtime.runFork,
242
+ runPromise: runtime.runPromise
243
+ };
244
+ //#endregion
245
+ export { getRingiThemeBootScript as a, clientRuntime as i, RINGI_PALETTES as n, useRingiTheme as o, RingiThemeProvider as r, ApiClient as t };
@@ -0,0 +1,12 @@
1
+ import { t as TSS_SERVER_FUNCTION } from "./ssr.mjs";
2
+ //#region node_modules/.nitro/vite/services/ssr/assets/createServerRpc--0mcGlWK.js
3
+ var createServerRpc = (serverFnMeta, splitImportFn) => {
4
+ const url = "/_serverFn/" + serverFnMeta.id;
5
+ return Object.assign(splitImportFn, {
6
+ url,
7
+ serverFnMeta,
8
+ [TSS_SERVER_FUNCTION]: true
9
+ });
10
+ };
11
+ //#endregion
12
+ export { createServerRpc as t };
@@ -0,0 +1,16 @@
1
+ import { i as getServerFnById, t as TSS_SERVER_FUNCTION } from "./ssr.mjs";
2
+ //#region node_modules/.nitro/vite/services/ssr/assets/createSsrRpc-AwdiLXmF.js
3
+ var createSsrRpc = (functionId, importer) => {
4
+ const url = "/_serverFn/" + functionId;
5
+ const serverFnMeta = { id: functionId };
6
+ const fn = async (...args) => {
7
+ return (importer ? await importer() : await getServerFnById(functionId))(...args);
8
+ };
9
+ return Object.assign(fn, {
10
+ url,
11
+ serverFnMeta,
12
+ [TSS_SERVER_FUNCTION]: true
13
+ });
14
+ };
15
+ //#endregion
16
+ export { createSsrRpc as t };