@ai-projector/ide 0.0.0-stage → 0.11.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 (877) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -2
  3. package/bin/install-desktop +17 -0
  4. package/bin/install-desktop.cmd +11 -0
  5. package/bin/projector +22 -0
  6. package/bin/projector.cmd +11 -0
  7. package/dist/assets/CodeViewer-BAgvP3Yx.js +1 -0
  8. package/dist/assets/CodeViewer-QIU6uQDH.css +1 -0
  9. package/dist/assets/DiscussionView-83kZBzfq.js +2 -0
  10. package/dist/assets/DiscussionView-kEJZ0OhC.css +1 -0
  11. package/dist/assets/EditorSettings-CPklwfT-.js +13 -0
  12. package/dist/assets/EditorSettings-DVhn0sGg.css +1 -0
  13. package/dist/assets/HtmlViewer-C3Mf1IEK.css +1 -0
  14. package/dist/assets/HtmlViewer-CGHhO9bM.js +2 -0
  15. package/dist/assets/ImageViewport-BXN_-Ztv.css +1 -0
  16. package/dist/assets/ImageViewport-lPITcKgO.js +1 -0
  17. package/dist/assets/IssueView-CfdeTTKs.js +1 -0
  18. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  19. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  20. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  21. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  22. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  23. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  24. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  25. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  26. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  27. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  28. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  29. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  30. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  31. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  32. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  33. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  34. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  35. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  36. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  37. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  38. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  39. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  40. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  41. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  42. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  43. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  44. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  45. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  46. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  47. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  48. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  49. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  50. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  51. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  52. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  53. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  54. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  55. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  56. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  57. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  58. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  59. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  60. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  61. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  62. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  63. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  64. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  65. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  66. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  67. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  68. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  69. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  70. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  71. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  72. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  73. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  74. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  75. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  76. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  77. package/dist/assets/MarkdownViewer-3VG5ygRT.css +1 -0
  78. package/dist/assets/MarkdownViewer-DKZvt6XG.js +2 -0
  79. package/dist/assets/PullRequestView-Bce3nQML.js +3 -0
  80. package/dist/assets/PullRequestView-F_M37BOq.css +1 -0
  81. package/dist/assets/ReleaseView-BKH8Kb3T.css +1 -0
  82. package/dist/assets/ReleaseView-DO-R7ktE.js +2 -0
  83. package/dist/assets/SplitPanes-BJR26w00.css +1 -0
  84. package/dist/assets/SplitPanes-DR126xV8.js +1 -0
  85. package/dist/assets/SvgViewer-CEIl2Ob2.js +2 -0
  86. package/dist/assets/SvgViewer-DyAp20sd.css +1 -0
  87. package/dist/assets/TerminalView-CDAJ5gmT.js +16 -0
  88. package/dist/assets/TerminalView-DnkOpsvR.css +1 -0
  89. package/dist/assets/TrackerDetail-CV0Qqzx3.js +1 -0
  90. package/dist/assets/TrackerDetail-OFp4ONUm.css +1 -0
  91. package/dist/assets/UiPanel-CND7Qs_n.js +1 -0
  92. package/dist/assets/UiPanel-CS77nWcC.css +1 -0
  93. package/dist/assets/UiViewerPage-BOvnLith.css +1 -0
  94. package/dist/assets/UiViewerPage-z_s1uFHO.js +2 -0
  95. package/dist/assets/VisualMarkdownEditor-CcbKSvtd.css +1 -0
  96. package/dist/assets/VisualMarkdownEditor-CwwWF0eb.js +1069 -0
  97. package/dist/assets/_plugin-vue_export-helper-C4wFX7Eq.js +24 -0
  98. package/dist/assets/apl-gfMMiTNf.js +1 -0
  99. package/dist/assets/asciiarmor-C_eisQCp.js +1 -0
  100. package/dist/assets/asn1-DCl_8MCW.js +1 -0
  101. package/dist/assets/asterisk-BEn0Cwpx.js +1 -0
  102. package/dist/assets/brainfuck-D5EjA2JK.js +1 -0
  103. package/dist/assets/clike-xvONpD0Z.js +1 -0
  104. package/dist/assets/clojure-BflJGmDX.js +1 -0
  105. package/dist/assets/cmake-84nbDH0I.js +1 -0
  106. package/dist/assets/cobol-DHLQUbN7.js +1 -0
  107. package/dist/assets/coffeescript-De_zI4J0.js +1 -0
  108. package/dist/assets/commonlisp-DgAKBe0r.js +1 -0
  109. package/dist/assets/compiler-dom.esm-bundler-B0iuTsih.js +9 -0
  110. package/dist/assets/crystal-Bl6YKCG_.js +1 -0
  111. package/dist/assets/css-CnaYoQib.js +1 -0
  112. package/dist/assets/cypher-p9eYesGn.js +1 -0
  113. package/dist/assets/d-DWkQyNnU.js +1 -0
  114. package/dist/assets/diff-ChtP43wD.js +1 -0
  115. package/dist/assets/dist-23D313r2.js +13 -0
  116. package/dist/assets/dist-9YLT-RM-.js +11 -0
  117. package/dist/assets/dist-9guQ6tUS.js +1 -0
  118. package/dist/assets/dist-B1XyTjRF.js +1 -0
  119. package/dist/assets/dist-BA_HKdx1.js +2 -0
  120. package/dist/assets/dist-BVEl6uFx.js +1 -0
  121. package/dist/assets/dist-B_hKnsNE.js +1 -0
  122. package/dist/assets/dist-BnsBZm0f.js +1 -0
  123. package/dist/assets/dist-Br4AY_oy.js +1 -0
  124. package/dist/assets/dist-BuiJgwGF.js +9 -0
  125. package/dist/assets/dist-C-1XYtJO.js +1 -0
  126. package/dist/assets/dist-C1mn-4rn.js +1 -0
  127. package/dist/assets/dist-CRLdLpSX.js +2 -0
  128. package/dist/assets/dist-CpgyHBvu.js +1 -0
  129. package/dist/assets/dist-CrRIwgTS.js +1 -0
  130. package/dist/assets/dist-CxoUUhWx.js +1 -0
  131. package/dist/assets/dist-CyRvGpIP.js +1 -0
  132. package/dist/assets/dist-Dqsd8MyB.js +1 -0
  133. package/dist/assets/dist-DrZek4TY.js +1 -0
  134. package/dist/assets/dist-DzAS050M.js +23 -0
  135. package/dist/assets/dist-NMUsQt1c.js +1 -0
  136. package/dist/assets/dist-b78ZWHZy.js +1 -0
  137. package/dist/assets/dist-dwBOnDaY.js +2 -0
  138. package/dist/assets/dist-gPzXCSJV.js +6 -0
  139. package/dist/assets/dist-p1Xy77w3.js +1 -0
  140. package/dist/assets/dist-tNJpR9Y1.js +1 -0
  141. package/dist/assets/dockerfile-DJkHQgkl.js +1 -0
  142. package/dist/assets/dtd-DTF72YNO.js +1 -0
  143. package/dist/assets/dylan-S7ucR4pR.js +1 -0
  144. package/dist/assets/ebnf-D4c0_ac3.js +1 -0
  145. package/dist/assets/ecl-BVIeWmwY.js +1 -0
  146. package/dist/assets/editor-theme-DuQQ8n56.js +1 -0
  147. package/dist/assets/eiffel-BEjRio4Q.js +1 -0
  148. package/dist/assets/elm-Cshzl8qu.js +1 -0
  149. package/dist/assets/erlang-BV0c4Hdn.js +1 -0
  150. package/dist/assets/events.worker-C2Opu9Sc.js +1 -0
  151. package/dist/assets/external-link-BFTqPI03.js +1 -0
  152. package/dist/assets/factor-LKH5gN8L.js +1 -0
  153. package/dist/assets/fcl-ClOhbFR7.js +1 -0
  154. package/dist/assets/forth-D6RzAl64.js +1 -0
  155. package/dist/assets/fortran-Bt6PBEDR.js +1 -0
  156. package/dist/assets/gas-BHEdbvp9.js +1 -0
  157. package/dist/assets/gherkin-oBAE_ms0.js +1 -0
  158. package/dist/assets/github-emoji-C2UmmDoA.js +169 -0
  159. package/dist/assets/github-emoji-qJihbtN6.css +1 -0
  160. package/dist/assets/groovy-CUrWKPia.js +1 -0
  161. package/dist/assets/haskell-BRsoo5mP.js +1 -0
  162. package/dist/assets/haxe-DjVOVvNP.js +1 -0
  163. package/dist/assets/http-CLVgA2GD.js +1 -0
  164. package/dist/assets/hub-rvbmNftk.js +1 -0
  165. package/dist/assets/idl-BUZw3wgd.js +1 -0
  166. package/dist/assets/javascript-lS2r2ifg.js +1 -0
  167. package/dist/assets/julia-CQfgDRfP.js +1 -0
  168. package/dist/assets/livescript-BXxG0Yva.js +1 -0
  169. package/dist/assets/lua-DPCEkfD_.js +1 -0
  170. package/dist/assets/main-CgMl4Qjs.css +1 -0
  171. package/dist/assets/main-DEEGhxlk.js +186 -0
  172. package/dist/assets/mathematica-u8YMmbU0.js +1 -0
  173. package/dist/assets/mbox-BEMVcqjs.js +1 -0
  174. package/dist/assets/mirc-C9zpzAZU.js +1 -0
  175. package/dist/assets/mllike-B45xgp2S.js +1 -0
  176. package/dist/assets/modelica-CqHI_q-D.js +1 -0
  177. package/dist/assets/mscgen-qgSLujhx.js +1 -0
  178. package/dist/assets/mumps-BSzj6Xyz.js +1 -0
  179. package/dist/assets/nginx-C-ORUuei.js +1 -0
  180. package/dist/assets/nsis-viPvXFiq.js +1 -0
  181. package/dist/assets/ntriples-CzMBulkp.js +1 -0
  182. package/dist/assets/octave-D2Q8cUp1.js +1 -0
  183. package/dist/assets/oz-BwTct_5T.js +1 -0
  184. package/dist/assets/pascal-Dp_KdFgX.js +1 -0
  185. package/dist/assets/perl-BkSkiI9m.js +1 -0
  186. package/dist/assets/pig-AF4Hwhju.js +1 -0
  187. package/dist/assets/powershell-D8WpQPaX.js +1 -0
  188. package/dist/assets/preload-helper-BLdHbfdN.js +1 -0
  189. package/dist/assets/properties-C357ku5U.js +1 -0
  190. package/dist/assets/protobuf-D1ij_kNL.js +1 -0
  191. package/dist/assets/pug-BqCHZ5xT.js +1 -0
  192. package/dist/assets/puppet-BZyAS7I4.js +1 -0
  193. package/dist/assets/python-B_1Jd8HM.js +1 -0
  194. package/dist/assets/q-B9NhS7L_.js +1 -0
  195. package/dist/assets/r-CxDmU1I4.js +1 -0
  196. package/dist/assets/rpm-gpDK5sbt.js +1 -0
  197. package/dist/assets/ruby-ChfNwlCY.js +1 -0
  198. package/dist/assets/sas-C2OyD2Y6.js +1 -0
  199. package/dist/assets/scheme-D9qYN0V5.js +1 -0
  200. package/dist/assets/shared.esm-bundler-EUzHGNqQ.js +2 -0
  201. package/dist/assets/shared.worker-DpKROrNH.js +1 -0
  202. package/dist/assets/shell-DwuoZtxw.js +1 -0
  203. package/dist/assets/sieve-tLWDfEkZ.js +1 -0
  204. package/dist/assets/simple-mode-DXiLM1-G.js +1 -0
  205. package/dist/assets/smalltalk-BLp5-jwC.js +1 -0
  206. package/dist/assets/solr-B78wSQJQ.js +1 -0
  207. package/dist/assets/sparql-Dz-mlCAC.js +1 -0
  208. package/dist/assets/spreadsheet-CTIncYxj.js +1 -0
  209. package/dist/assets/sql-DuQMFDvy.js +1 -0
  210. package/dist/assets/stex-DNzd62Q_.js +1 -0
  211. package/dist/assets/styles-C07CLvbW.js +2 -0
  212. package/dist/assets/styles-CX3Ni7dk.css +1 -0
  213. package/dist/assets/stylus-BOVgKnng.js +1 -0
  214. package/dist/assets/swift-DKB6_1j6.js +1 -0
  215. package/dist/assets/tcl-BGfruO1u.js +1 -0
  216. package/dist/assets/textile-C4jVoHG1.js +1 -0
  217. package/dist/assets/tiddlywiki-VlUiK86J.js +1 -0
  218. package/dist/assets/tiki-CvUEFusT.js +1 -0
  219. package/dist/assets/toml-BPTmHmyx.js +1 -0
  220. package/dist/assets/troff-C2dAgh7P.js +1 -0
  221. package/dist/assets/ttcn-PPSTk1ow.js +1 -0
  222. package/dist/assets/ttcn-cfg-2b4Gb5sE.js +1 -0
  223. package/dist/assets/turtle-Cx3rYX2g.js +1 -0
  224. package/dist/assets/vb-BthdM_4N.js +1 -0
  225. package/dist/assets/vbscript-D9f6rSsU.js +1 -0
  226. package/dist/assets/velocity-CqftRsjg.js +1 -0
  227. package/dist/assets/verilog-CjI9Y6RI.js +1 -0
  228. package/dist/assets/vhdl-kS471soi.js +1 -0
  229. package/dist/assets/webidl-D5jiJvOU.js +1 -0
  230. package/dist/assets/xquery-BKJx4mf9.js +1 -0
  231. package/dist/assets/yacas-CXXgtw0p.js +1 -0
  232. package/dist/assets/z80-Co3PbHdE.js +1 -0
  233. package/dist/favicon.svg +5 -0
  234. package/dist/file-icons/LICENSE-lucide.txt +43 -0
  235. package/dist/file-icons/NOTICE.md +8 -0
  236. package/dist/file-icons/icons/archive.svg +1 -0
  237. package/dist/file-icons/icons/assets.svg +1 -0
  238. package/dist/file-icons/icons/audio.svg +1 -0
  239. package/dist/file-icons/icons/c.svg +1 -0
  240. package/dist/file-icons/icons/components.svg +1 -0
  241. package/dist/file-icons/icons/config.svg +1 -0
  242. package/dist/file-icons/icons/cpp.svg +1 -0
  243. package/dist/file-icons/icons/css.svg +1 -0
  244. package/dist/file-icons/icons/database.svg +1 -0
  245. package/dist/file-icons/icons/docker.svg +1 -0
  246. package/dist/file-icons/icons/env.svg +1 -0
  247. package/dist/file-icons/icons/executable.svg +1 -0
  248. package/dist/file-icons/icons/file.svg +1 -0
  249. package/dist/file-icons/icons/folder-open.svg +1 -0
  250. package/dist/file-icons/icons/folder.svg +1 -0
  251. package/dist/file-icons/icons/font.svg +1 -0
  252. package/dist/file-icons/icons/git.svg +1 -0
  253. package/dist/file-icons/icons/go.svg +1 -0
  254. package/dist/file-icons/icons/graphql.svg +1 -0
  255. package/dist/file-icons/icons/html.svg +1 -0
  256. package/dist/file-icons/icons/ignore.svg +1 -0
  257. package/dist/file-icons/icons/image.svg +1 -0
  258. package/dist/file-icons/icons/java.svg +1 -0
  259. package/dist/file-icons/icons/javascript.svg +1 -0
  260. package/dist/file-icons/icons/json.svg +1 -0
  261. package/dist/file-icons/icons/kotlin.svg +1 -0
  262. package/dist/file-icons/icons/license.svg +1 -0
  263. package/dist/file-icons/icons/lock.svg +1 -0
  264. package/dist/file-icons/icons/markdown.svg +1 -0
  265. package/dist/file-icons/icons/package.svg +1 -0
  266. package/dist/file-icons/icons/php.svg +1 -0
  267. package/dist/file-icons/icons/python.svg +1 -0
  268. package/dist/file-icons/icons/react.svg +1 -0
  269. package/dist/file-icons/icons/ruby.svg +1 -0
  270. package/dist/file-icons/icons/rust.svg +1 -0
  271. package/dist/file-icons/icons/sass.svg +1 -0
  272. package/dist/file-icons/icons/shell.svg +1 -0
  273. package/dist/file-icons/icons/source.svg +1 -0
  274. package/dist/file-icons/icons/svelte.svg +1 -0
  275. package/dist/file-icons/icons/swift.svg +1 -0
  276. package/dist/file-icons/icons/tests.svg +1 -0
  277. package/dist/file-icons/icons/toml.svg +1 -0
  278. package/dist/file-icons/icons/typescript.svg +1 -0
  279. package/dist/file-icons/icons/video.svg +1 -0
  280. package/dist/file-icons/icons/vite.svg +1 -0
  281. package/dist/file-icons/icons/vue.svg +1 -0
  282. package/dist/file-icons/icons/yaml.svg +1 -0
  283. package/dist/file-icons/theme.json +572 -0
  284. package/dist/file-icons/theme.schema.json +137 -0
  285. package/dist/github.svg +1 -0
  286. package/dist/gitlab.svg +1 -0
  287. package/dist/hub.html +19 -0
  288. package/dist/icons/apple-touch-icon.png +0 -0
  289. package/dist/icons/icon-192.png +0 -0
  290. package/dist/icons/icon-512.png +0 -0
  291. package/dist/icons/maskable-512.png +0 -0
  292. package/dist/index.html +39 -0
  293. package/dist/manifest.webmanifest +37 -0
  294. package/dist/sw.js +81 -0
  295. package/package.json +61 -3
  296. package/packages/cli/app/agent-host.js +163 -0
  297. package/packages/cli/app/desktop.js +77 -0
  298. package/packages/cli/app/fix-node-pty.js +52 -0
  299. package/packages/cli/app/import-companion-key.js +57 -0
  300. package/packages/cli/app/install-desktop.js +4 -0
  301. package/packages/cli/app/launch.js +134 -0
  302. package/packages/cli/app/restart.js +32 -0
  303. package/packages/cli/commands/logs.js +10 -0
  304. package/packages/cli/commands/open.js +49 -0
  305. package/packages/cli/commands/projects.js +18 -0
  306. package/packages/cli/commands/run.js +39 -0
  307. package/packages/cli/commands/search.js +19 -0
  308. package/packages/cli/commands/server.js +32 -0
  309. package/packages/cli/commands/status.js +42 -0
  310. package/packages/cli/common/output.js +13 -0
  311. package/packages/cli/modules/api/index.js +60 -0
  312. package/packages/cli/modules/arguments/index.js +188 -0
  313. package/packages/cli/modules/command-runtime/index.js +24 -0
  314. package/packages/cli/modules/projects/index.js +118 -0
  315. package/packages/cli/modules/server/index.js +226 -0
  316. package/packages/cli/modules/server-process/index.js +204 -0
  317. package/packages/core/modules/agent-features/index.js +8 -0
  318. package/packages/core/modules/agent-judge/index.js +73 -0
  319. package/packages/core/modules/agent-read/index.js +25 -0
  320. package/packages/core/modules/agent-role/index.js +187 -0
  321. package/packages/core/modules/agent-task/contract.js +34 -0
  322. package/packages/core/modules/agent-task/index.js +1 -0
  323. package/packages/core/modules/agent-widgets/bars/index.js +11 -0
  324. package/packages/core/modules/agent-widgets/button/index.js +19 -0
  325. package/packages/core/modules/agent-widgets/card/index.js +13 -0
  326. package/packages/core/modules/agent-widgets/checks/index.js +19 -0
  327. package/packages/core/modules/agent-widgets/chips/index.js +15 -0
  328. package/packages/core/modules/agent-widgets/columns/index.js +12 -0
  329. package/packages/core/modules/agent-widgets/donut/index.js +11 -0
  330. package/packages/core/modules/agent-widgets/field/index.js +39 -0
  331. package/packages/core/modules/agent-widgets/form/index.js +18 -0
  332. package/packages/core/modules/agent-widgets/git-info/index.js +29 -0
  333. package/packages/core/modules/agent-widgets/image/index.js +22 -0
  334. package/packages/core/modules/agent-widgets/inline-icon/index.js +45 -0
  335. package/packages/core/modules/agent-widgets/input/index.js +16 -0
  336. package/packages/core/modules/agent-widgets/intelligent-form/index.js +32 -0
  337. package/packages/core/modules/agent-widgets/line/index.js +12 -0
  338. package/packages/core/modules/agent-widgets/row/index.js +11 -0
  339. package/packages/core/modules/agent-widgets/safe-secret-show/index.js +21 -0
  340. package/packages/core/modules/agent-widgets/slider/index.js +18 -0
  341. package/packages/core/modules/agent-widgets/stat/index.js +16 -0
  342. package/packages/core/modules/agent-widgets/steps/index.js +14 -0
  343. package/packages/core/modules/agent-widgets/tab/index.js +12 -0
  344. package/packages/core/modules/agent-widgets/tabs/index.js +24 -0
  345. package/packages/core/modules/agents-integration/claude/index.js +1 -0
  346. package/packages/core/modules/agents-integration/codex/index.js +1 -0
  347. package/packages/core/modules/agents-integration/cursor/index.js +1 -0
  348. package/packages/core/modules/agents-integration/kimi/index.js +1 -0
  349. package/packages/core/modules/agents-integration/opencode/index.js +1 -0
  350. package/packages/core/modules/app-paths/index.js +14 -0
  351. package/packages/core/modules/app-paths/logs.js +194 -0
  352. package/packages/core/modules/app-paths/network-mode.js +24 -0
  353. package/packages/core/modules/app-paths/paths.js +40 -0
  354. package/packages/core/modules/app-paths/server-mode.js +18 -0
  355. package/packages/core/modules/appearance/index.js +35 -0
  356. package/packages/core/modules/browser/index.js +86 -0
  357. package/packages/core/modules/devcontainer/classify.js +101 -0
  358. package/packages/core/modules/devcontainer/contract.js +1 -0
  359. package/packages/core/modules/devcontainer/index.js +1 -0
  360. package/packages/core/modules/directories/contract.js +1 -0
  361. package/packages/core/modules/directories/index.js +1 -0
  362. package/packages/core/modules/docker/contract.js +1 -0
  363. package/packages/core/modules/docker/index.js +1 -0
  364. package/packages/core/modules/editor-themes/index.js +17 -0
  365. package/packages/core/modules/environment/index.js +1 -0
  366. package/packages/core/modules/file-icons/contract.js +177 -0
  367. package/packages/core/modules/file-icons/index.js +1 -0
  368. package/packages/core/modules/github/index.js +23 -0
  369. package/packages/core/modules/gitlab/index.js +164 -0
  370. package/packages/core/modules/hub/index.js +1 -0
  371. package/packages/core/modules/hub/protocol.js +19 -0
  372. package/packages/core/modules/ide/agent-command.js +48 -0
  373. package/packages/core/modules/ide/command-help.js +73 -0
  374. package/packages/core/modules/ide/commands.js +191 -0
  375. package/packages/core/modules/ide/index.js +6 -0
  376. package/packages/core/modules/ide/keybinding-editor.js +34 -0
  377. package/packages/core/modules/ide/keybindings.js +45 -0
  378. package/packages/core/modules/ide/palette.js +33 -0
  379. package/packages/core/modules/ide/safety.js +10 -0
  380. package/packages/core/modules/launcher/actions.js +5 -0
  381. package/packages/core/modules/launcher/index.js +5 -0
  382. package/packages/core/modules/launcher/launcher-model.js +236 -0
  383. package/packages/core/modules/launcher/launcher.js +76 -0
  384. package/packages/core/modules/launcher/query.js +42 -0
  385. package/packages/core/modules/network-mode/index.js +3 -0
  386. package/packages/core/modules/network-mode/network-mode.js +8 -0
  387. package/packages/core/modules/os/bash.js +11 -0
  388. package/packages/core/modules/os/contract.js +1 -0
  389. package/packages/core/modules/os/index.js +3 -0
  390. package/packages/core/modules/os/modules/darwin/catalog.js +108 -0
  391. package/packages/core/modules/os/modules/darwin/directories.js +40 -0
  392. package/packages/core/modules/os/modules/darwin/docker.js +15 -0
  393. package/packages/core/modules/os/modules/darwin/gtk.js +6 -0
  394. package/packages/core/modules/os/modules/darwin/helper.swift +172 -0
  395. package/packages/core/modules/os/modules/darwin/index.js +12 -0
  396. package/packages/core/modules/os/modules/darwin/install-desktop.js +135 -0
  397. package/packages/core/modules/os/modules/darwin/processes.js +97 -0
  398. package/packages/core/modules/os/modules/darwin/resident.js +235 -0
  399. package/packages/core/modules/os/modules/darwin/secrets.js +53 -0
  400. package/packages/core/modules/os/modules/darwin/shell.js +105 -0
  401. package/packages/core/modules/os/modules/darwin/shortcut.js +61 -0
  402. package/packages/core/modules/os/modules/darwin/tools.js +52 -0
  403. package/packages/core/modules/os/modules/darwin/windows.js +135 -0
  404. package/packages/core/modules/os/modules/linux/bus.js +48 -0
  405. package/packages/core/modules/os/modules/linux/catalog.js +47 -0
  406. package/packages/core/modules/os/modules/linux/directories.js +49 -0
  407. package/packages/core/modules/os/modules/linux/docker.js +48 -0
  408. package/packages/core/modules/os/modules/linux/index.js +53 -0
  409. package/packages/core/modules/os/modules/linux/install-desktop.js +66 -0
  410. package/packages/core/modules/os/modules/linux/processes.js +85 -0
  411. package/packages/core/modules/os/modules/linux/resident.js +139 -0
  412. package/packages/core/modules/os/modules/linux/secrets.js +118 -0
  413. package/packages/core/modules/os/modules/linux/shortcut.js +124 -0
  414. package/packages/core/modules/os/modules/linux/tools.js +14 -0
  415. package/packages/core/modules/os/modules/linux/tray.js +190 -0
  416. package/packages/core/modules/os/modules/linux/windows.js +187 -0
  417. package/packages/core/modules/os/modules/windows/agent-process.js +60 -0
  418. package/packages/core/modules/os/modules/windows/alert.js +20 -0
  419. package/packages/core/modules/os/modules/windows/catalog.js +91 -0
  420. package/packages/core/modules/os/modules/windows/color-scheme.js +26 -0
  421. package/packages/core/modules/os/modules/windows/directories.js +101 -0
  422. package/packages/core/modules/os/modules/windows/docker.js +17 -0
  423. package/packages/core/modules/os/modules/windows/git.js +42 -0
  424. package/packages/core/modules/os/modules/windows/hwnd.js +275 -0
  425. package/packages/core/modules/os/modules/windows/index.js +28 -0
  426. package/packages/core/modules/os/modules/windows/install-desktop.js +140 -0
  427. package/packages/core/modules/os/modules/windows/kill-tree.js +26 -0
  428. package/packages/core/modules/os/modules/windows/processes.js +300 -0
  429. package/packages/core/modules/os/modules/windows/ps.js +73 -0
  430. package/packages/core/modules/os/modules/windows/resident-pipe.js +206 -0
  431. package/packages/core/modules/os/modules/windows/resident.js +286 -0
  432. package/packages/core/modules/os/modules/windows/secrets.js +110 -0
  433. package/packages/core/modules/os/modules/windows/shell.js +288 -0
  434. package/packages/core/modules/os/modules/windows/shortcut.js +82 -0
  435. package/packages/core/modules/os/modules/windows/tools.js +273 -0
  436. package/packages/core/modules/os/modules/windows/windows.js +133 -0
  437. package/packages/core/modules/os/os.js +175 -0
  438. package/packages/core/modules/os/session-env.js +11 -0
  439. package/packages/core/modules/os-posix/agent-process.js +105 -0
  440. package/packages/core/modules/os-posix/contract.js +1 -0
  441. package/packages/core/modules/os-posix/git.js +26 -0
  442. package/packages/core/modules/os-posix/index.js +4 -0
  443. package/packages/core/modules/os-posix/tools.js +258 -0
  444. package/packages/core/modules/os-posix/xdg.js +8 -0
  445. package/packages/core/modules/project/contract.js +1 -0
  446. package/packages/core/modules/project/index.js +1 -0
  447. package/packages/core/modules/project/ref.js +126 -0
  448. package/packages/core/modules/server-mode/index.js +3 -0
  449. package/packages/core/modules/server-mode/server-mode.js +13 -0
  450. package/packages/core/modules/terminal/contract.js +1 -0
  451. package/packages/core/modules/terminal/index.js +1 -0
  452. package/packages/core/modules/usage-analytics/index.js +80 -0
  453. package/packages/core/modules/widget-catalog/guide.js +76 -0
  454. package/packages/core/modules/widget-catalog/index.js +219 -0
  455. package/packages/core/modules/workspace/changes.js +114 -0
  456. package/packages/core/modules/workspace/contract.js +1 -0
  457. package/packages/core/modules/workspace/file-size.js +12 -0
  458. package/packages/core/modules/workspace/files-exclude.js +119 -0
  459. package/packages/core/modules/workspace/git-decorations.js +4 -0
  460. package/packages/core/modules/workspace/git-graph.js +35 -0
  461. package/packages/core/modules/workspace/index.js +11 -0
  462. package/packages/core/modules/workspace/paths.js +16 -0
  463. package/packages/core/modules/workspace/pipeline-status.js +86 -0
  464. package/packages/core/modules/workspace/pull-requests.js +1 -0
  465. package/packages/core/modules/workspace/pull-status.js +56 -0
  466. package/packages/core/modules/workspace/scope.js +34 -0
  467. package/packages/core/modules/workspace/search.js +28 -0
  468. package/packages/core/modules/workspace/tree-page.js +25 -0
  469. package/packages/server/app/agents.js +30 -0
  470. package/packages/server/app/api.js +159 -0
  471. package/packages/server/app/claude-runner.js +17 -0
  472. package/packages/server/app/dev-plugin.js +76 -0
  473. package/packages/server/app/dev-runtime.js +119 -0
  474. package/packages/server/app/features.js +35 -0
  475. package/packages/server/app/plugin.js +140 -0
  476. package/packages/server/app/projector-runner.js +15 -0
  477. package/packages/server/app/runtime-contract.js +1 -0
  478. package/packages/server/app/standalone.js +42 -0
  479. package/packages/server/app/static.js +57 -0
  480. package/packages/server/app/widgets-mcp.js +36 -0
  481. package/packages/server/app/widgets.js +54 -0
  482. package/packages/server/middlewares/local-origin.js +4 -0
  483. package/packages/server/modules/access/access.js +118 -0
  484. package/packages/server/modules/access/connections.js +36 -0
  485. package/packages/server/modules/access/http.js +93 -0
  486. package/packages/server/modules/access/hub.js +19 -0
  487. package/packages/server/modules/access/index.js +6 -0
  488. package/packages/server/modules/access/lan-url.js +21 -0
  489. package/packages/server/modules/access/password.js +68 -0
  490. package/packages/server/modules/access/session.js +38 -0
  491. package/packages/server/modules/agent/agent-host.js +46 -0
  492. package/packages/server/modules/agent/agent-runs.js +162 -0
  493. package/packages/server/modules/agent/attachments.js +88 -0
  494. package/packages/server/modules/agent/backend.js +1 -0
  495. package/packages/server/modules/agent/chat-archive.js +67 -0
  496. package/packages/server/modules/agent/command-bridge.js +94 -0
  497. package/packages/server/modules/agent/controls.js +10 -0
  498. package/packages/server/modules/agent/event-streams.js +40 -0
  499. package/packages/server/modules/agent/history-store.js +320 -0
  500. package/packages/server/modules/agent/history.js +160 -0
  501. package/packages/server/modules/agent/hosted-process.js +279 -0
  502. package/packages/server/modules/agent/hosted-run.js +85 -0
  503. package/packages/server/modules/agent/hosted-runner.js +126 -0
  504. package/packages/server/modules/agent/index.js +35 -0
  505. package/packages/server/modules/agent/injection.js +14 -0
  506. package/packages/server/modules/agent/jobs-diff.js +114 -0
  507. package/packages/server/modules/agent/jobs-files.js +65 -0
  508. package/packages/server/modules/agent/jobs-followup.js +66 -0
  509. package/packages/server/modules/agent/jobs-live.js +180 -0
  510. package/packages/server/modules/agent/jobs-store.js +59 -0
  511. package/packages/server/modules/agent/jobs-worktree.js +161 -0
  512. package/packages/server/modules/agent/jobs.js +316 -0
  513. package/packages/server/modules/agent/judge-store.js +21 -0
  514. package/packages/server/modules/agent/lens-request.js +34 -0
  515. package/packages/server/modules/agent/queue-store.js +21 -0
  516. package/packages/server/modules/agent/recent-chats.js +63 -0
  517. package/packages/server/modules/agent/registry.js +108 -0
  518. package/packages/server/modules/agent/replay.js +84 -0
  519. package/packages/server/modules/agent/request.js +132 -0
  520. package/packages/server/modules/agent/role-store.js +21 -0
  521. package/packages/server/modules/agent/run-hub.js +105 -0
  522. package/packages/server/modules/agent/run-request.js +208 -0
  523. package/packages/server/modules/agent/secret-show.js +108 -0
  524. package/packages/server/modules/agent/side-request.js +142 -0
  525. package/packages/server/modules/agent/usage-history.js +62 -0
  526. package/packages/server/modules/agent/worktrees.js +136 -0
  527. package/packages/server/modules/agent-features/catalog.js +18 -0
  528. package/packages/server/modules/agent-features/index.js +2 -0
  529. package/packages/server/modules/agent-features/store.js +172 -0
  530. package/packages/server/modules/agent-mcp/index.js +106 -0
  531. package/packages/server/modules/agent-roles/index.js +3 -0
  532. package/packages/server/modules/agent-roles/project.js +231 -0
  533. package/packages/server/modules/agent-roles/runtime.js +68 -0
  534. package/packages/server/modules/agent-roles/store.js +190 -0
  535. package/packages/server/modules/agents/acp/acp-backend.js +320 -0
  536. package/packages/server/modules/agents/acp/acp-client.js +153 -0
  537. package/packages/server/modules/agents/acp/acp-controls.js +179 -0
  538. package/packages/server/modules/agents/acp/acp-dialect.js +82 -0
  539. package/packages/server/modules/agents/acp/acp-elicitation.js +135 -0
  540. package/packages/server/modules/agents/acp/acp-events.js +340 -0
  541. package/packages/server/modules/agents/acp/acp-process.js +78 -0
  542. package/packages/server/modules/agents/acp/acp-programs.js +11 -0
  543. package/packages/server/modules/agents/acp/acp-tools.js +208 -0
  544. package/packages/server/modules/agents/acp/index.js +4 -0
  545. package/packages/server/modules/agents/acp/mcp-config.js +100 -0
  546. package/packages/server/modules/agents/claude-code/claude-code-backend.js +342 -0
  547. package/packages/server/modules/agents/claude-code/claude-code-checkpoints.js +97 -0
  548. package/packages/server/modules/agents/claude-code/claude-code-env.js +46 -0
  549. package/packages/server/modules/agents/claude-code/claude-code-events.js +299 -0
  550. package/packages/server/modules/agents/claude-code/claude-code-input.js +97 -0
  551. package/packages/server/modules/agents/claude-code/claude-code-replay.js +71 -0
  552. package/packages/server/modules/agents/claude-code/claude-code-sessions.js +207 -0
  553. package/packages/server/modules/agents/claude-code/claude-code-times.js +42 -0
  554. package/packages/server/modules/agents/claude-code/index.js +2 -0
  555. package/packages/server/modules/agents/claude-code/questions.js +51 -0
  556. package/packages/server/modules/agents/codex/dialect.js +130 -0
  557. package/packages/server/modules/agents/codex/forms.js +24 -0
  558. package/packages/server/modules/agents/codex/index.js +17 -0
  559. package/packages/server/modules/agents/cursor/dialect.js +66 -0
  560. package/packages/server/modules/agents/cursor/images.js +12 -0
  561. package/packages/server/modules/agents/cursor/index.js +30 -0
  562. package/packages/server/modules/agents/cursor/plan.js +44 -0
  563. package/packages/server/modules/agents/cursor/questions.js +37 -0
  564. package/packages/server/modules/agents/cursor/selection.js +29 -0
  565. package/packages/server/modules/agents/cursor/task.js +32 -0
  566. package/packages/server/modules/agents/cursor/todos.js +69 -0
  567. package/packages/server/modules/agents/ide-mcp/config.js +40 -0
  568. package/packages/server/modules/agents/ide-mcp/index.js +1 -0
  569. package/packages/server/modules/agents/ide-mcp/server.js +154 -0
  570. package/packages/server/modules/agents/kimi/dialect.js +18 -0
  571. package/packages/server/modules/agents/kimi/index.js +11 -0
  572. package/packages/server/modules/agents/opencode/dialect.js +232 -0
  573. package/packages/server/modules/agents/opencode/index.js +21 -0
  574. package/packages/server/modules/agents/opencode/read.js +46 -0
  575. package/packages/server/modules/agents/opencode/sessions.js +69 -0
  576. package/packages/server/modules/agents/projector/agent-lens.js +110 -0
  577. package/packages/server/modules/agents/projector/agent-tools.js +290 -0
  578. package/packages/server/modules/agents/projector/answer-doctor.js +32 -0
  579. package/packages/server/modules/agents/projector/form-doctor.js +33 -0
  580. package/packages/server/modules/agents/projector/index.js +12 -0
  581. package/packages/server/modules/agents/projector/project-instructions.js +34 -0
  582. package/packages/server/modules/agents/projector/projector-backend.js +350 -0
  583. package/packages/server/modules/agents/projector/projector-budget.js +70 -0
  584. package/packages/server/modules/agents/projector/projector-compaction.js +128 -0
  585. package/packages/server/modules/agents/projector/projector-controls.js +70 -0
  586. package/packages/server/modules/agents/projector/projector-guard.js +196 -0
  587. package/packages/server/modules/agents/projector/projector-history.js +87 -0
  588. package/packages/server/modules/agents/projector/projector-hooks.js +201 -0
  589. package/packages/server/modules/agents/projector/projector-input.js +40 -0
  590. package/packages/server/modules/agents/projector/projector-mcp-config.js +1 -0
  591. package/packages/server/modules/agents/projector/projector-mcp.js +119 -0
  592. package/packages/server/modules/agents/projector/projector-memory.js +92 -0
  593. package/packages/server/modules/agents/projector/projector-retry.js +52 -0
  594. package/packages/server/modules/agents/projector/projector-review.js +40 -0
  595. package/packages/server/modules/agents/projector/projector-side.js +56 -0
  596. package/packages/server/modules/agents/projector/projector-skills.js +143 -0
  597. package/packages/server/modules/agents/projector/projector-task.js +235 -0
  598. package/packages/server/modules/agents/projector/projector-usage.js +19 -0
  599. package/packages/server/modules/agents/projector/projector-web-search.js +76 -0
  600. package/packages/server/modules/agents/projector/projector-web.js +172 -0
  601. package/packages/server/modules/agents/projector/prompts.js +46 -0
  602. package/packages/server/modules/agents/projector/secrets/secret-destination.js +226 -0
  603. package/packages/server/modules/agents/projector/secrets/secret-show.js +23 -0
  604. package/packages/server/modules/agents/projector/secrets/secret-tools.js +124 -0
  605. package/packages/server/modules/agents/projector/tool-spec.js +4 -0
  606. package/packages/server/modules/agents/projector/tool-specs.js +167 -0
  607. package/packages/server/modules/agents/projector/widgets.js +4 -0
  608. package/packages/server/modules/agents/widgets-mcp/config.js +34 -0
  609. package/packages/server/modules/agents/widgets-mcp/index.js +1 -0
  610. package/packages/server/modules/agents-integration/_/usage-cache.js +19 -0
  611. package/packages/server/modules/agents-integration/claude/client.js +33 -0
  612. package/packages/server/modules/agents-integration/claude/index.js +1 -0
  613. package/packages/server/modules/agents-integration/claude/usage.js +49 -0
  614. package/packages/server/modules/agents-integration/codex/cli.js +86 -0
  615. package/packages/server/modules/agents-integration/codex/index.js +1 -0
  616. package/packages/server/modules/agents-integration/codex/usage.js +45 -0
  617. package/packages/server/modules/agents-integration/cursor/client.js +40 -0
  618. package/packages/server/modules/agents-integration/cursor/credentials.js +34 -0
  619. package/packages/server/modules/agents-integration/cursor/index.js +1 -0
  620. package/packages/server/modules/agents-integration/cursor/usage.js +59 -0
  621. package/packages/server/modules/agents-integration/kimi/client.js +48 -0
  622. package/packages/server/modules/agents-integration/kimi/credential-config.js +167 -0
  623. package/packages/server/modules/agents-integration/kimi/credentials.js +261 -0
  624. package/packages/server/modules/agents-integration/kimi/index.js +1 -0
  625. package/packages/server/modules/agents-integration/kimi/usage.js +149 -0
  626. package/packages/server/modules/agents-integration/opencode/client.js +30 -0
  627. package/packages/server/modules/agents-integration/opencode/credentials.js +36 -0
  628. package/packages/server/modules/agents-integration/opencode/index.js +1 -0
  629. package/packages/server/modules/agents-integration/opencode/usage.js +47 -0
  630. package/packages/server/modules/appearance/index.js +38 -0
  631. package/packages/server/modules/browser/cookies.js +112 -0
  632. package/packages/server/modules/browser/guard.js +55 -0
  633. package/packages/server/modules/browser/index.js +2 -0
  634. package/packages/server/modules/browser/key.js +34 -0
  635. package/packages/server/modules/browser/proxy.js +255 -0
  636. package/packages/server/modules/browser/rewrite.js +82 -0
  637. package/packages/server/modules/devcontainer/discovery.js +85 -0
  638. package/packages/server/modules/devcontainer/exec.js +81 -0
  639. package/packages/server/modules/devcontainer/index.js +4 -0
  640. package/packages/server/modules/devcontainer/launch.js +51 -0
  641. package/packages/server/modules/devcontainer/state.js +68 -0
  642. package/packages/server/modules/devcontainer/trust.js +41 -0
  643. package/packages/server/modules/directories/directories.js +34 -0
  644. package/packages/server/modules/directories/index.js +1 -0
  645. package/packages/server/modules/docker/actions.js +121 -0
  646. package/packages/server/modules/docker/daemon.js +72 -0
  647. package/packages/server/modules/docker/index.js +4 -0
  648. package/packages/server/modules/docker/settings.js +127 -0
  649. package/packages/server/modules/docker/snapshot.js +105 -0
  650. package/packages/server/modules/environments/execution.js +125 -0
  651. package/packages/server/modules/environments/index.js +3 -0
  652. package/packages/server/modules/environments/reconcile.js +62 -0
  653. package/packages/server/modules/environments/settings.js +58 -0
  654. package/packages/server/modules/events/implementation.js +85 -0
  655. package/packages/server/modules/events/index.js +1 -0
  656. package/packages/server/modules/folder-picker/index.js +1 -0
  657. package/packages/server/modules/folder-picker/pick-folder.js +2 -0
  658. package/packages/server/modules/git-import/clone.js +47 -0
  659. package/packages/server/modules/git-import/container.js +57 -0
  660. package/packages/server/modules/git-import/import.js +82 -0
  661. package/packages/server/modules/git-import/index.js +4 -0
  662. package/packages/server/modules/git-import/jobs.js +68 -0
  663. package/packages/server/modules/github/api.js +260 -0
  664. package/packages/server/modules/github/browser.js +185 -0
  665. package/packages/server/modules/github/clone.js +55 -0
  666. package/packages/server/modules/github/container.js +15 -0
  667. package/packages/server/modules/github/discussions.js +141 -0
  668. package/packages/server/modules/github/emojis.js +14 -0
  669. package/packages/server/modules/github/history.js +205 -0
  670. package/packages/server/modules/github/index.js +11 -0
  671. package/packages/server/modules/github/issues.js +81 -0
  672. package/packages/server/modules/github/navigation.js +35 -0
  673. package/packages/server/modules/github/pipelines.js +266 -0
  674. package/packages/server/modules/github/pulls.js +111 -0
  675. package/packages/server/modules/github/releases.js +241 -0
  676. package/packages/server/modules/gitlab/api.js +257 -0
  677. package/packages/server/modules/gitlab/base.js +24 -0
  678. package/packages/server/modules/gitlab/blob-search.js +110 -0
  679. package/packages/server/modules/gitlab/browser.js +296 -0
  680. package/packages/server/modules/gitlab/clone.js +78 -0
  681. package/packages/server/modules/gitlab/compare.js +68 -0
  682. package/packages/server/modules/gitlab/connection.js +55 -0
  683. package/packages/server/modules/gitlab/container.js +15 -0
  684. package/packages/server/modules/gitlab/history.js +127 -0
  685. package/packages/server/modules/gitlab/icon.js +67 -0
  686. package/packages/server/modules/gitlab/index.js +14 -0
  687. package/packages/server/modules/gitlab/issues.js +61 -0
  688. package/packages/server/modules/gitlab/merge-requests.js +287 -0
  689. package/packages/server/modules/gitlab/navigation.js +187 -0
  690. package/packages/server/modules/gitlab/oauth.js +250 -0
  691. package/packages/server/modules/gitlab/pipelines.js +240 -0
  692. package/packages/server/modules/gitlab/releases.js +226 -0
  693. package/packages/server/modules/gitlab/search.js +75 -0
  694. package/packages/server/modules/gitlab/trackers.js +96 -0
  695. package/packages/server/modules/http/download.js +50 -0
  696. package/packages/server/modules/http/http.js +8 -0
  697. package/packages/server/modules/http/index.js +2 -0
  698. package/packages/server/modules/hub/connector.js +114 -0
  699. package/packages/server/modules/hub/hub.js +142 -0
  700. package/packages/server/modules/hub/index.js +1 -0
  701. package/packages/server/modules/ide/editor-settings.js +37 -0
  702. package/packages/server/modules/ide/index.js +3 -0
  703. package/packages/server/modules/ide/keybindings.js +37 -0
  704. package/packages/server/modules/ide/mcp-bridge.js +150 -0
  705. package/packages/server/modules/instance/index.js +2 -0
  706. package/packages/server/modules/instance/instance.js +50 -0
  707. package/packages/server/modules/integration-store/index.js +2 -0
  708. package/packages/server/modules/integration-store/list.js +12 -0
  709. package/packages/server/modules/integration-store/store.js +141 -0
  710. package/packages/server/modules/judge/approval.js +35 -0
  711. package/packages/server/modules/judge/index.js +3 -0
  712. package/packages/server/modules/judge/settings.js +35 -0
  713. package/packages/server/modules/judge/verdict.js +141 -0
  714. package/packages/server/modules/launcher/browse.js +29 -0
  715. package/packages/server/modules/launcher/folders.js +138 -0
  716. package/packages/server/modules/launcher/hosted-search.js +43 -0
  717. package/packages/server/modules/launcher/index.js +12 -0
  718. package/packages/server/modules/launcher/launcher.js +352 -0
  719. package/packages/server/modules/launcher/potential.js +70 -0
  720. package/packages/server/modules/launcher/project-entries.js +165 -0
  721. package/packages/server/modules/network/eu-context.js +29 -0
  722. package/packages/server/modules/network/index.js +1 -0
  723. package/packages/server/modules/openai-gateway/config.js +125 -0
  724. package/packages/server/modules/openai-gateway/gateway.js +178 -0
  725. package/packages/server/modules/openai-gateway/index.js +7 -0
  726. package/packages/server/modules/preferences/index.js +7 -0
  727. package/packages/server/modules/preferences/preferences.js +142 -0
  728. package/packages/server/modules/processes/index.js +6 -0
  729. package/packages/server/modules/processes/processes.js +174 -0
  730. package/packages/server/modules/project-presentation/implementation.js +130 -0
  731. package/packages/server/modules/project-presentation/index.js +1 -0
  732. package/packages/server/modules/project-widgets/index.js +210 -0
  733. package/packages/server/modules/projects/discovery.js +179 -0
  734. package/packages/server/modules/projects/favicon.js +180 -0
  735. package/packages/server/modules/projects/index.js +11 -0
  736. package/packages/server/modules/projects/inspect.js +148 -0
  737. package/packages/server/modules/projects/remote-icon.js +39 -0
  738. package/packages/server/modules/projects/store.js +41 -0
  739. package/packages/server/modules/projects/types.js +1 -0
  740. package/packages/server/modules/providers/atomic-file.js +29 -0
  741. package/packages/server/modules/providers/balance.js +125 -0
  742. package/packages/server/modules/providers/index.js +15 -0
  743. package/packages/server/modules/providers/kinds.js +24 -0
  744. package/packages/server/modules/providers/model-list.js +16 -0
  745. package/packages/server/modules/providers/models.js +124 -0
  746. package/packages/server/modules/providers/openai-client.js +40 -0
  747. package/packages/server/modules/providers/provider-seeds.js +39 -0
  748. package/packages/server/modules/providers/provider-store.js +317 -0
  749. package/packages/server/modules/providers/quiet-model.js +36 -0
  750. package/packages/server/modules/providers/secret-obfuscation.js +48 -0
  751. package/packages/server/modules/providers/thinking.js +105 -0
  752. package/packages/server/modules/providers/types.js +1 -0
  753. package/packages/server/modules/restart/index.js +1 -0
  754. package/packages/server/modules/restart/restart.js +56 -0
  755. package/packages/server/modules/secrets/index.js +1 -0
  756. package/packages/server/modules/secrets/vault.js +51 -0
  757. package/packages/server/modules/spend/index.js +2 -0
  758. package/packages/server/modules/spend/ledger.js +82 -0
  759. package/packages/server/modules/spend/store.js +92 -0
  760. package/packages/server/modules/terminal/drop-files.js +42 -0
  761. package/packages/server/modules/terminal/index.js +15 -0
  762. package/packages/server/modules/terminal/link-files.js +44 -0
  763. package/packages/server/modules/terminal/scenario-folder.js +20 -0
  764. package/packages/server/modules/terminal/session-state.js +85 -0
  765. package/packages/server/modules/terminal/socket.js +159 -0
  766. package/packages/server/modules/terminal/terminal-activity.js +56 -0
  767. package/packages/server/modules/terminal/terminal-file.js +32 -0
  768. package/packages/server/modules/terminal/terminal-mouse.js +29 -0
  769. package/packages/server/modules/terminal/terminal.js +308 -0
  770. package/packages/server/modules/terminal/terminate.js +68 -0
  771. package/packages/server/modules/terminal-control/control.js +75 -0
  772. package/packages/server/modules/terminal-control/handlers.js +10 -0
  773. package/packages/server/modules/terminal-control/index.js +3 -0
  774. package/packages/server/modules/terminal-control/shared-socket.js +319 -0
  775. package/packages/server/modules/terminal-control/socket.js +153 -0
  776. package/packages/server/modules/transport/implementation.js +24 -0
  777. package/packages/server/modules/transport/index.js +2 -0
  778. package/packages/server/modules/transport/router.js +16 -0
  779. package/packages/server/modules/transport/types.js +1 -0
  780. package/packages/server/modules/usage-analytics/index.js +4 -0
  781. package/packages/server/modules/usage-analytics/limits.js +144 -0
  782. package/packages/server/modules/usage-analytics/overview.js +117 -0
  783. package/packages/server/modules/usage-analytics/providers.js +120 -0
  784. package/packages/server/modules/usage-analytics/store.js +152 -0
  785. package/packages/server/modules/window/desktop.js +24 -0
  786. package/packages/server/modules/window/index.js +8 -0
  787. package/packages/server/modules/window/window.js +86 -0
  788. package/packages/server/modules/workspace/archive.py +109 -0
  789. package/packages/server/modules/workspace/external-files.js +22 -0
  790. package/packages/server/modules/workspace/files-exclude.js +73 -0
  791. package/packages/server/modules/workspace/files.js +332 -0
  792. package/packages/server/modules/workspace/find-paths.js +92 -0
  793. package/packages/server/modules/workspace/git-branches.js +159 -0
  794. package/packages/server/modules/workspace/git-compare.js +121 -0
  795. package/packages/server/modules/workspace/git-history.js +182 -0
  796. package/packages/server/modules/workspace/git-sync.js +245 -0
  797. package/packages/server/modules/workspace/git-tree.js +126 -0
  798. package/packages/server/modules/workspace/git.js +276 -0
  799. package/packages/server/modules/workspace/ignored.js +23 -0
  800. package/packages/server/modules/workspace/import.js +190 -0
  801. package/packages/server/modules/workspace/index.js +15 -0
  802. package/packages/server/modules/workspace/paths.js +38 -0
  803. package/packages/server/modules/workspace/reveal.js +14 -0
  804. package/packages/server/modules/workspace/search.js +136 -0
  805. package/packages/server/modules/workspace/site.js +62 -0
  806. package/packages/server/modules/workspace/watcher.js +176 -0
  807. package/packages/server/routes/api/agent-answer-repair.js +35 -0
  808. package/packages/server/routes/api/agent-chats.js +77 -0
  809. package/packages/server/routes/api/agent-features.js +36 -0
  810. package/packages/server/routes/api/agent-form-repair.js +35 -0
  811. package/packages/server/routes/api/agent-hooks.js +35 -0
  812. package/packages/server/routes/api/agent-jobs.js +322 -0
  813. package/packages/server/routes/api/agent-judge.js +33 -0
  814. package/packages/server/routes/api/agent-lens.js +27 -0
  815. package/packages/server/routes/api/agent-mcp.js +41 -0
  816. package/packages/server/routes/api/agent-memory.js +33 -0
  817. package/packages/server/routes/api/agent-project-roles.js +112 -0
  818. package/packages/server/routes/api/agent-project-widgets.js +67 -0
  819. package/packages/server/routes/api/agent-roles.js +106 -0
  820. package/packages/server/routes/api/agent-secret-show.js +87 -0
  821. package/packages/server/routes/api/agent-side.js +70 -0
  822. package/packages/server/routes/api/agent-skills.js +31 -0
  823. package/packages/server/routes/api/agent-web.js +27 -0
  824. package/packages/server/routes/api/agent-worktrees.js +49 -0
  825. package/packages/server/routes/api/agent.js +269 -0
  826. package/packages/server/routes/api/analytics.js +21 -0
  827. package/packages/server/routes/api/app/hide.js +12 -0
  828. package/packages/server/routes/api/app/mode.js +49 -0
  829. package/packages/server/routes/api/app/network.js +54 -0
  830. package/packages/server/routes/api/app/open.js +33 -0
  831. package/packages/server/routes/api/app/quit.js +14 -0
  832. package/packages/server/routes/api/app/restart.js +18 -0
  833. package/packages/server/routes/api/appearance.js +70 -0
  834. package/packages/server/routes/api/browser.js +27 -0
  835. package/packages/server/routes/api/claude.js +15 -0
  836. package/packages/server/routes/api/codex.js +15 -0
  837. package/packages/server/routes/api/cursor.js +15 -0
  838. package/packages/server/routes/api/directories.js +16 -0
  839. package/packages/server/routes/api/docker.js +74 -0
  840. package/packages/server/routes/api/events.js +25 -0
  841. package/packages/server/routes/api/health.js +20 -0
  842. package/packages/server/routes/api/hub.js +26 -0
  843. package/packages/server/routes/api/ide/commands.js +72 -0
  844. package/packages/server/routes/api/ide/editor.js +37 -0
  845. package/packages/server/routes/api/ide/files-exclude.js +37 -0
  846. package/packages/server/routes/api/ide/keybindings.js +37 -0
  847. package/packages/server/routes/api/inspect.js +21 -0
  848. package/packages/server/routes/api/integrations/[...action].js +201 -0
  849. package/packages/server/routes/api/integrations/github-browse.js +190 -0
  850. package/packages/server/routes/api/kimi.js +15 -0
  851. package/packages/server/routes/api/launcher/icon.js +16 -0
  852. package/packages/server/routes/api/launcher/launch.js +27 -0
  853. package/packages/server/routes/api/launcher/search.js +20 -0
  854. package/packages/server/routes/api/launcher/settings.js +68 -0
  855. package/packages/server/routes/api/openai.js +94 -0
  856. package/packages/server/routes/api/opencode.js +15 -0
  857. package/packages/server/routes/api/pick-folder.js +12 -0
  858. package/packages/server/routes/api/preview-icon.js +21 -0
  859. package/packages/server/routes/api/projects/[id]/index.js +240 -0
  860. package/packages/server/routes/api/projects/[id]/site.js +59 -0
  861. package/packages/server/routes/api/projects/[id]/terminals.js +38 -0
  862. package/packages/server/routes/api/projects/[id]/workspace-read.js +126 -0
  863. package/packages/server/routes/api/projects/[id]/workspace.js +147 -0
  864. package/packages/server/routes/api/projects/index.js +62 -0
  865. package/packages/server/routes/api/providers/active.js +12 -0
  866. package/packages/server/routes/api/providers/balance.js +15 -0
  867. package/packages/server/routes/api/providers/models.js +19 -0
  868. package/packages/server/routes/api/providers.js +23 -0
  869. package/packages/server/routes/api/status.js +11 -0
  870. package/resources/icons/128.png +0 -0
  871. package/resources/icons/16.png +0 -0
  872. package/resources/icons/256.png +0 -0
  873. package/resources/icons/32.png +0 -0
  874. package/resources/icons/48.png +0 -0
  875. package/resources/icons/512.png +0 -0
  876. package/resources/icons/64.png +0 -0
  877. package/resources/icons/projector.svg +5 -0
@@ -0,0 +1 @@
1
+ .xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.environment-ports[data-v-da8ac272]{gap:var(--sp-3);padding:var(--sp-2);font:var(--fs-xs) var(--mono);color:var(--muted);display:flex}.terminal-view[data-v-da8ac272]{background:var(--bg-2)}.status[data-v-da8ac272]{font-size:var(--fs-2xs);color:var(--faint);margin:0;padding:4px 12px}.error[data-v-da8ac272]{color:var(--err);font-size:var(--fs-xs);margin:0;padding:10px 12px}.clipboard-error[data-v-da8ac272]{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.screen-wrap[data-v-da8ac272]{touch-action:none;overscroll-behavior:none;flex:1;min-height:0;padding:12px 12px 0;position:relative}.drop-hint[data-v-da8ac272]{z-index:5;pointer-events:none;border:1px dashed var(--focus);background:color-mix(in srgb, var(--bg) 82%, transparent);color:var(--text);font-size:var(--fs-sm);place-items:center;display:grid;position:absolute;inset:4px}.selection-chat[data-v-da8ac272]{z-index:6;border:1px solid var(--line-strong);border-radius:var(--r-full);background:var(--bg-3);min-height:26px;box-shadow:var(--shadow-popover);color:var(--text);font:var(--fs-xs) var(--sans);cursor:pointer;align-items:center;padding:0 10px;display:inline-flex;position:absolute}.selection-chat[data-v-da8ac272]:hover{background:var(--bg-4)}.selection-chat[data-v-da8ac272]:focus-visible{border-color:var(--focus);background:var(--bg-4)}.screen[data-v-da8ac272]{height:100%}
@@ -0,0 +1 @@
1
+ import{$ as e,H as t,S as n,V as r,Z as i,_ as a,ct as o,dt as s,f as c,g as l,h as u,m as d,t as f,v as p,w as m,x as h,z as g}from"./_plugin-vue_export-helper-C4wFX7Eq.js";import{E as _,N as v,a as y,k as b}from"./styles-C07CLvbW.js";import{X as x,q as S,tt as C}from"./shared.esm-bundler-EUzHGNqQ.js";import{A as w}from"./dist-dwBOnDaY.js";import{a as T,n as E,t as D}from"./github-emoji-C2UmmDoA.js";import{a as O,i as k,n as A,r as j,s as M,t as N}from"./UiViewerPage-z_s1uFHO.js";import{h as P}from"./main-DEEGhxlk.js";import{t as F}from"./VisualMarkdownEditor-CwwWF0eb.js";function I(e,t,n,r){let a=s(),c=o(!1),l=o(``),u=o(0);return i(()=>[e(),t(),u.value],async([e,t],i,o)=>{let s=new AbortController,u=!0;o(()=>{u=!1,s.abort()}),c.value=!0,l.value=``,a.value=void 0;try{let r=await w(e,n,{number:String(t)},s.signal);u&&(a.value=r)}catch(e){u&&(l.value=e instanceof Error?e.message:r)}finally{u&&(c.value=!1)}},{immediate:!0}),{detail:a,loading:c,error:l,reload:()=>u.value++}}var L=m({__name:`TrackerAuthor`,props:{author:{type:Object,required:!0},size:{type:Number,required:!0}},setup(e,{expose:t}){t();let n={UiInline:b,UiAvatar:M};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}});function R(t,r,i,a,o,s){return g(),l(a.UiInline,{as:`span`,inline:``,gap:1.25,justify:`normal`,class:`author`},{default:e(()=>[n(a.UiAvatar,{src:i.author.avatarUrl,alt:i.author.login,size:i.size},null,8,[`src`,`alt`,`size`]),h(` `+C(i.author.login),1)]),_:1})}var z=f(L,[[`render`,R],[`__scopeId`,`data-v-c39da821`],[`__file`,`/run/media/zede/general/pr/my/image-gen/projector/packages/client/modules/workspace/modules/viewers/ui/TrackerAuthor.vue`]]),B=m({__name:`TrackerReactions`,props:{reactions:{type:Array,required:!0}},setup(e,{expose:t}){t();let n={emojis:T(),UiInline:b,get REACTION_EMOJI(){return D},get REACTION_LABEL(){return E}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),V={key:0,class:`reactions`,"aria-label":`Реакции`},H=[`src`,`alt`],U={key:1};function W(t,n,i,o,s,u){return i.reactions.length?(g(),p(`ul`,V,[(g(!0),p(c,null,r(i.reactions,t=>(g(),l(o.UiInline,{as:`li`,inline:``,gap:1,justify:`normal`,key:t.content,title:`${o.REACTION_LABEL[t.content]}: ${t.count}`},{default:e(()=>[o.emojis[o.REACTION_EMOJI[t.content]]?(g(),p(`img`,{key:0,class:`github-emoji`,src:o.emojis[o.REACTION_EMOJI[t.content]],alt:o.REACTION_LABEL[t.content],loading:`lazy`},null,8,H)):(g(),p(`span`,U,C(o.REACTION_LABEL[t.content]),1)),h(` `+C(t.count),1)]),_:2},1032,[`title`]))),128))])):a(`v-if`,!0)}var G=f(B,[[`render`,W],[`__scopeId`,`data-v-be82172a`],[`__file`,`/run/media/zede/general/pr/my/image-gen/projector/packages/client/modules/workspace/modules/viewers/ui/TrackerReactions.vue`]]),K=m({__name:`TrackerComments`,props:{projectId:{type:String,required:!0},title:{type:String,required:!0},empty:{type:String,required:!1},items:{type:Array,required:!0}},emits:[`open`],setup(e,{expose:t,emit:n}){t();let r={emit:n,UiCard:y,UiHint:_,UiHeading:v,get absoluteTime(){return k},get relativeTime(){return O},TrackerAuthor:z,UiInline:b,TrackerReactions:G,VisualMarkdownEditor:F};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),q={key:1,class:`comment-list`},J=[`title`];function Y(t,i,o,s,u,d){return g(),p(c,null,[n(s.UiHeading,{as:`h3`,size:`sm`,tone:`secondary`,"space-before":4,"space-after":2},{default:e(()=>[h(C(o.title),1)]),_:1}),o.items.length?(g(),p(`ul`,q,[(g(!0),p(c,null,r(o.items,t=>(g(),l(s.UiCard,{as:`li`,appearance:`frame`,key:t.id,class:S({reply:t.depth}),style:x(t.depth?{marginLeft:`calc(var(--sp-4) * ${t.depth})`}:void 0)},{default:e(()=>[n(s.UiInline,{as:`p`,class:`comment-meta`,align:`stretch`},{default:e(()=>[n(s.TrackerAuthor,{author:t.author,size:16},null,8,[`author`]),t.badge?(g(),p(`span`,{key:0,class:S(t.badgeClass)},C(t.badge),3)):a(`v-if`,!0),t.at?(g(),p(`span`,{key:1,title:s.absoluteTime(t.at)},C(s.relativeTime(t.at)),9,J)):a(`v-if`,!0)]),_:2},1024),t.body?(g(),l(s.VisualMarkdownEditor,{key:0,content:t.body,path:``,"project-id":o.projectId,editable:!1,compact:``,onOpen:i[0]||=e=>s.emit(`open`,e)},null,8,[`content`,`project-id`])):a(`v-if`,!0),n(s.TrackerReactions,{reactions:t.reactions??[]},null,8,[`reactions`])]),_:2},1032,[`class`,`style`]))),128))])):(g(),l(s.UiHint,{key:0,size:`xs`,leading:`inherit`,"space-before":2,class:`note`},{default:e(()=>[h(C(o.empty),1)]),_:1}))],64)}var X=f(K,[[`render`,Y],[`__scopeId`,`data-v-e8e095f5`],[`__file`,`/run/media/zede/general/pr/my/image-gen/projector/packages/client/modules/workspace/modules/viewers/ui/TrackerComments.vue`]]),Z=m({__name:`TrackerDetail`,props:{projectId:{type:String,required:!0},loading:{type:Boolean,required:!0},error:{type:String,required:!0},ready:{type:Boolean,required:!0},noun:{type:String,required:!0},state:{type:String,required:!0},stateLabel:{type:String,required:!0},title:{type:String,required:!0},number:{type:Number,required:!0},author:{type:Object,required:!0},createdAt:{type:String,required:!0},htmlUrl:{type:String,required:!0},labels:{type:Array,required:!0},body:{type:String,required:!0},reactions:{type:Array,required:!0},host:{type:String,required:!1,default:`GitHub`}},emits:[`open`],setup(e,{expose:t,emit:n}){t();let r=e,i={props:r,stateTone:d(()=>r.state===`open`?`success`:r.state===`merged`||r.state===`answered`?`accent`:`neutral`),emit:n,UiArticle:j,UiDetailHeader:A,UiHint:_,UiViewerPage:N,get absoluteTime(){return k},get relativeTime(){return O},TrackerAuthor:z,EmojiText:P,TrackerReactions:G,VisualMarkdownEditor:F};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),Q=[`title`],$={key:0,class:`labels`};function ee(i,o,s,d,f,m){return g(),l(d.UiViewerPage,null,{default:e(()=>[s.loading?(g(),l(d.UiHint,{key:0,size:`xs`,leading:`inherit`,"space-before":2,class:`note`,role:`status`},{default:e(()=>[h(`загрузка: `+C(s.noun)+`…`,1)]),_:1})):s.error?(g(),l(d.UiHint,{key:1,size:`xs`,leading:`inherit`,"space-before":2,class:`note error`,role:`alert`},{default:e(()=>[h(C(s.error),1)]),_:1})):s.ready?(g(),l(d.UiArticle,{key:2},{default:e(()=>[n(d.UiDetailHeader,{state:s.stateLabel,tone:d.stateTone,number:s.number,"external-href":s.htmlUrl,host:s.host},{title:e(()=>[n(d.EmojiText,{text:s.title},null,8,[`text`])]),meta:e(()=>[n(d.TrackerAuthor,{author:s.author,size:18},null,8,[`author`]),t(i.$slots,`meta`,{},void 0,!0),u(`span`,{title:d.absoluteTime(s.createdAt)},`открыт `+C(d.relativeTime(s.createdAt)),9,Q)]),_:3},8,[`state`,`tone`,`number`,`external-href`,`host`]),t(i.$slots,`stats`,{},void 0,!0),t(i.$slots,`summary`,{},void 0,!0),s.labels.length?(g(),p(`ul`,$,[(g(!0),p(c,null,r(s.labels,e=>(g(),p(`li`,{key:e.name,style:x({borderColor:e.color?`#${e.color}`:void 0})},[n(d.EmojiText,{text:e.name},null,8,[`text`])],4))),128))])):a(`v-if`,!0),s.body?(g(),l(d.VisualMarkdownEditor,{key:1,class:`body`,content:s.body,path:``,"project-id":s.projectId,editable:!1,compact:``,onOpen:o[0]||=e=>d.emit(`open`,e)},null,8,[`content`,`project-id`])):(g(),l(d.UiHint,{key:2,size:`xs`,leading:`inherit`,"space-before":2,class:`note`},{default:e(()=>[...o[1]||=[h(`Без описания`,-1)]]),_:1})),n(d.TrackerReactions,{reactions:s.reactions},null,8,[`reactions`]),t(i.$slots,`default`,{},void 0,!0)]),_:3})):a(`v-if`,!0)]),_:3})}var te=f(Z,[[`render`,ee],[`__scopeId`,`data-v-e20bcf5f`],[`__file`,`/run/media/zede/general/pr/my/image-gen/projector/packages/client/modules/workspace/modules/viewers/ui/TrackerDetail.vue`]]);export{X as n,I as r,te as t};
@@ -0,0 +1 @@
1
+ .author[data-v-c39da821]{font-family:var(--mono);color:var(--text-2)}.reactions[data-v-be82172a]{gap:var(--sp-2);margin:var(--sp-2) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.reactions li[data-v-be82172a]{padding:1px var(--sp-2);border:1px solid var(--line);border-radius:var(--r-full);color:var(--text-2);font:var(--fs-2xs) var(--mono)}.comment-list[data-v-e8e095f5]{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.comment-list li.reply[data-v-e8e095f5]{background:var(--active)}.comment-meta[data-v-e8e095f5]{margin:0 0 var(--sp-2);color:var(--muted);font-size:var(--fs-2xs)}.approved[data-v-e8e095f5],.answer[data-v-e8e095f5]{color:var(--run)}.changes_requested[data-v-e8e095f5]{color:var(--err)}.labels[data-v-e20bcf5f]{gap:var(--sp-2);margin:var(--sp-3) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.labels li[data-v-e20bcf5f]{padding:1px var(--sp-2);border:1px solid var(--line);border-radius:var(--r-full);color:var(--text-2);font-size:var(--fs-2xs)}.body[data-v-e20bcf5f]{margin-top:var(--sp-3);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md)}
@@ -0,0 +1 @@
1
+ import{$ as e,H as t,W as n,dt as r,g as i,t as a,w as o,z as s}from"./_plugin-vue_export-helper-C4wFX7Eq.js";import{q as c}from"./shared.esm-bundler-EUzHGNqQ.js";var l=o({__name:`UiPanel`,props:{as:{type:String,required:!1},sizing:{type:String,required:!1}},setup(e,{expose:t}){let n=r();t({get element(){return n.value??void 0}});let i={element:n};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}});function u(r,a,o,l,u,d){return s(),i(n(o.as??`section`),{ref:`element`,class:c([`ui-panel`,{flex:o.sizing===`flex`}])},{default:e(()=>[t(r.$slots,`default`,{},void 0,!0)]),_:3},8,[`class`])}var d=a(l,[[`render`,u],[`__scopeId`,`data-v-37da7917`],[`__file`,`/run/media/zede/general/pr/my/image-gen/projector/packages/client/common/ui/UiPanel.vue`]]);export{d as t};
@@ -0,0 +1 @@
1
+ .ui-panel[data-v-37da7917]{flex-direction:column;height:100%;min-height:0;display:flex}.ui-panel.flex[data-v-37da7917]{flex:1;min-width:0;height:auto}
@@ -0,0 +1 @@
1
+ .ui-avatar[data-v-eb38d2b9]{border-radius:var(--r-full);background:var(--active);color:var(--muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.ui-avatar img[data-v-eb38d2b9]{object-fit:cover;width:100%;height:100%}.fallback[data-v-eb38d2b9]{font-size:var(--fs-2xs);font-weight:500}.article[data-v-12b96e69]{margin:0 auto}.state[data-v-e4d81fd5]{padding:1px var(--sp-2);border-radius:var(--r-full);background:var(--active);color:var(--muted);font-size:var(--fs-2xs)}.state.success[data-v-e4d81fd5]{background:color-mix(in srgb, var(--run) 22%, transparent);color:var(--run)}.state.warning[data-v-e4d81fd5]{background:color-mix(in srgb, var(--warn) 22%, transparent);color:var(--warn)}.state.danger[data-v-e4d81fd5]{background:color-mix(in srgb, var(--err) 22%, transparent);color:var(--err)}.state.accent[data-v-e4d81fd5]{background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--accent)}.number[data-v-e4d81fd5]{color:var(--muted);font:var(--fs-xs) var(--mono)}.subtitle[data-v-e4d81fd5]{margin:var(--sp-1) 0 0;color:var(--muted);font:var(--fs-2xs) var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.meta[data-v-e4d81fd5]{margin:var(--sp-2) 0 0;color:var(--muted);font-size:var(--fs-xs)}.external[data-v-e4d81fd5]{color:var(--text-2)}.external svg[data-v-e4d81fd5]{width:13px;height:13px}.viewer-page[data-v-98a21569]{height:100%;padding:var(--sp-4);box-sizing:border-box;overflow:auto}
@@ -0,0 +1,2 @@
1
+ import{$ as e,B as t,H as n,P as r,S as i,Z as a,_ as o,ct as s,f as c,g as l,k as u,t as d,v as f,w as p,x as m,z as h}from"./_plugin-vue_export-helper-C4wFX7Eq.js";import{N as g,k as _}from"./styles-C07CLvbW.js";import{X as v,q as y,tt as b}from"./shared.esm-bundler-EUzHGNqQ.js";import{t as x}from"./external-link-BFTqPI03.js";var S=new Map,C=Symbol(`tab-readout`);function w(e){let t=e?S.get(e):void 0;if(t)for(let e of t)try{let t=e();if(t)return t}catch{}}function T(e,t){let n=S.get(e)??[];return n.push(t),S.set(e,n),()=>{let n=S.get(e),r=n?n.lastIndexOf(t):-1;n&&r!==-1&&(n.splice(r,1),n.length||S.delete(e))}}function E(e){let t=u(C,void 0);if(!t)return;let n=T(t(),e);r(n)}function D(e){t(C,e)}function O(...e){return e.filter(e=>!!e).join(`
2
+ `)}var k=p({__name:`UiAvatar`,props:{src:{type:String,required:!1,default:``},alt:{type:String,required:!1,default:``},size:{type:Number,required:!1,default:16}},setup(e,{expose:t}){t();let n=e,r=s(!1);a(()=>n.src,()=>{r.value=!1});function i(){return(n.alt||`?`).trim().slice(0,1).toUpperCase()||`?`}let o={props:n,failed:r,initial:i};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),A=[`src`,`alt`],j={key:1,class:`fallback`,"aria-hidden":`true`};function M(e,t,n,r,i,a){return h(),f(`span`,{class:`ui-avatar`,style:v({width:`${n.size}px`,height:`${n.size}px`})},[n.src&&!r.failed?(h(),f(`img`,{key:0,src:n.src,alt:n.alt,loading:`lazy`,onError:t[0]||=e=>r.failed=!0},null,40,A)):(h(),f(`span`,j,b(r.initial()),1))],4)}var N=d(k,[[`render`,M],[`__scopeId`,`data-v-eb38d2b9`],[`__file`,`/run/media/zede/general/pr/my/image-gen/projector/packages/client/common/ui/UiAvatar.vue`]]),P=[[`year`,31536e3],[`month`,2592e3],[`week`,604800],[`day`,86400],[`hour`,3600],[`minute`,60]],F=new Intl.RelativeTimeFormat(`ru`,{numeric:`auto`,style:`short`}),I=new Intl.DateTimeFormat(`ru`,{dateStyle:`long`,timeStyle:`short`}),L=e=>e.slice(0,7);function R(e,t=Date.now()){let n=Math.round((t-Date.parse(e))/1e3);if(!Number.isFinite(n))return``;for(let[e,t]of P)if(n>=t)return F.format(-Math.floor(n/t),e);return n<45?`только что`:F.format(-1,`minute`)}function z(e){let t=Date.parse(e);return Number.isFinite(t)?I.format(t):``}var B=p({__name:`UiArticle`,props:{width:{type:Number,required:!1,default:880}},setup(e,{expose:t}){t();let n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}});function V(e,t,r,i,a,o){return h(),f(`article`,{class:`article`,style:v({maxWidth:`${r.width}px`})},[n(e.$slots,`default`,{},void 0,!0)],4)}var H=d(B,[[`render`,V],[`__scopeId`,`data-v-12b96e69`],[`__file`,`/run/media/zede/general/pr/my/image-gen/projector/packages/client/common/ui/UiArticle.vue`]]),U=p({__name:`UiDetailHeader`,props:{title:{type:String,required:!1},state:{type:String,required:!1},tone:{type:String,required:!1,default:`neutral`},number:{type:[String,Number],required:!1},subtitle:{type:String,required:!1},externalHref:{type:String,required:!1},host:{type:String,required:!1}},setup(e,{expose:t}){t();let n={UiHeading:g,UiInline:_,get IconExternal(){return x}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),W={key:0,class:`number`},G=[`title`];function K(t,r,a,s,u,d){return h(),f(c,null,[i(s.UiInline,{as:`header`,class:`head`,align:`baseline`,wrap:``,justify:`normal`},{default:e(()=>[a.state?(h(),f(`span`,{key:0,class:y([`state`,a.tone])},b(a.state),3)):o(`v-if`,!0),i(s.UiHeading,{as:`h2`,size:`lg`,weight:`semibold`,"space-after":0},{default:e(()=>[n(t.$slots,`title`,{},()=>[m(b(a.title),1)],!0),a.number===void 0?o(`v-if`,!0):(h(),f(`span`,W,`#`+b(a.number),1))]),_:3})]),_:3}),a.subtitle?(h(),f(`p`,{key:0,class:`subtitle`,title:a.subtitle},b(a.subtitle),9,G)):o(`v-if`,!0),i(s.UiInline,{as:`p`,class:`meta`,wrap:``},{default:e(()=>[n(t.$slots,`meta`,{},void 0,!0),a.externalHref?(h(),l(s.UiInline,{key:0,as:`a`,inline:``,gap:1,justify:`normal`,class:`external`,href:a.externalHref,target:`_blank`,rel:`noopener noreferrer`},{default:e(()=>[i(s.IconExternal,{"aria-hidden":`true`}),m(`на `+b(a.host),1)]),_:1},8,[`href`])):o(`v-if`,!0)]),_:3})],64)}var q=d(U,[[`render`,K],[`__scopeId`,`data-v-e4d81fd5`],[`__file`,`/run/media/zede/general/pr/my/image-gen/projector/packages/client/common/ui/UiDetailHeader.vue`]]),J={},Y={class:`viewer-page`};function X(e,t){return h(),f(`div`,Y,[n(e.$slots,`default`,{},void 0,!0)])}var Z=d(J,[[`render`,X],[`__scopeId`,`data-v-98a21569`],[`__file`,`/run/media/zede/general/pr/my/image-gen/projector/packages/client/common/ui/UiViewerPage.vue`]]);export{R as a,D as c,E as d,z as i,w as l,q as n,L as o,H as r,N as s,Z as t,O as u};
@@ -0,0 +1 @@
1
+ .ProseMirror{word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;font-feature-settings:"liga" 0;position:relative}.ProseMirror pre{white-space:pre-wrap}.ProseMirror li{position:relative}.ProseMirror-hideselection ::selection{background:0 0}.ProseMirror-hideselection ::selection{background:0 0}.ProseMirror-hideselection{caret-color:#0000}.ProseMirror [draggable][contenteditable=false]{-webkit-user-select:text;user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";pointer-events:none;border:2px solid #8cf;position:absolute;inset:-2px -2px -2px -32px}img.ProseMirror-separator{border:none!important;margin:0!important;display:inline!important}.milkdown{position:relative}.milkdown *{box-sizing:border-box;margin:0;padding:0}.milkdown button,.milkdown input{box-shadow:none;background:0 0;border:none}.milkdown button:focus,.milkdown input:focus,.milkdown :focus-visible{outline:none}.milkdown{font-family:var(--crepe-font-default);font-size:var(--crepe-base-font-size,16px);color:var(--crepe-color-on-background);background:var(--crepe-color-background)}.milkdown .milkdown-icon{justify-content:center;align-items:center;display:inline-flex}.milkdown .ProseMirror-focused{outline:none}.milkdown .ProseMirror{padding:60px 120px}.milkdown .ProseMirror ::selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}.milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:0 0}.milkdown .ProseMirror li.ProseMirror-selectednode::selection{background:0 0}.milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}.milkdown .ProseMirror .ProseMirror-selectednode{background:var(--crepe-color-selected);background:color-mix(in srgb, var(--crepe-color-selected), transparent 60%);outline:none}.milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:0 0}.milkdown .ProseMirror .ProseMirror-selectednode::selection{background:0 0}.milkdown .ProseMirror[data-dragging=true]::-moz-selection{background:0 0}.milkdown .ProseMirror[data-dragging=true] ::-moz-selection{background:0 0}.milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode{background:0 0}.milkdown .ProseMirror[data-dragging=true]::selection{background:0 0}.milkdown .ProseMirror[data-dragging=true] ::selection{background:0 0}.milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}.milkdown .ProseMirror img.ProseMirror-selectednode{outline:2px solid var(--crepe-color-primary);background:0 0}.milkdown .ProseMirror h1,.milkdown .ProseMirror h2,.milkdown .ProseMirror h3,.milkdown .ProseMirror h4,.milkdown .ProseMirror h5,.milkdown .ProseMirror h6{font-family:var(--crepe-font-title);padding:2px 0;font-weight:400}.milkdown .ProseMirror h1{margin-top:32px;font-size:2.625em;line-height:1.1905}.milkdown .ProseMirror h2{margin-top:28px;font-size:2.25em;line-height:1.2222}.milkdown .ProseMirror h3{margin-top:24px;font-size:2em;line-height:1.25}.milkdown .ProseMirror h4{margin-top:20px;font-size:1.75em;line-height:1.2857}.milkdown .ProseMirror h5{margin-top:16px;font-size:1.5em;line-height:1.3333}.milkdown .ProseMirror h6{margin-top:16px;font-size:1.125em;font-weight:700;line-height:1.5556}.milkdown .ProseMirror p{padding:4px 0;font-size:1em;line-height:1.5}.milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb, var(--crepe-color-inline-area), transparent 40%);font-family:var(--crepe-font-code);border-radius:4px;padding:0 2px;font-size:87.5%;line-height:1.4286;display:inline-block}.milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}.milkdown .ProseMirror pre{background:color-mix(in srgb, var(--crepe-color-inline-area), transparent 40%);border-radius:4px;padding:10px}.milkdown .ProseMirror pre code{background:0 0;padding:0}.milkdown .ProseMirror blockquote{box-sizing:content-box;margin:4px 0;padding-top:0;padding-bottom:0;padding-left:40px;position:relative}.milkdown .ProseMirror blockquote:before{content:"";background:var(--crepe-color-selected);border-radius:100px;width:4px;position:absolute;top:4px;bottom:4px;left:0}.milkdown .ProseMirror blockquote hr{margin-bottom:16px}.milkdown .ProseMirror hr{background-color:color-mix(in srgb, var(--crepe-color-outline), transparent 80%);background-clip:content-box;border:none;height:13px;padding:6px 0;position:relative}.milkdown .ProseMirror hr.ProseMirror-selectednode{background-color:color-mix(in srgb, var(--crepe-color-outline), transparent 20%);background-clip:content-box;outline:none}.milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:"";background-color:color-mix(in srgb, var(--crepe-color-outline), transparent 80%);pointer-events:none;position:absolute;inset:0}.milkdown .ProseMirror ul,.milkdown .ProseMirror ol{padding:0}.milkdown .milkdown-block-handle[data-show=false]{opacity:0;pointer-events:none}.milkdown .milkdown-block-handle{cursor:pointer;justify-content:center;align-items:center;gap:2px;transition:all .2s;display:flex;position:absolute}.milkdown .milkdown-block-handle .operation-item{border-radius:4px;width:32px;height:32px;padding:4px}.milkdown .milkdown-block-handle .operation-item svg{width:24px;height:24px;fill:var(--crepe-color-outline)}.milkdown .milkdown-block-handle .operation-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-block-handle .operation-item.active{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu[data-show=false]{display:none}.milkdown .milkdown-slash-menu{z-index:10;font-family:var(--crepe-font-default);color:var(--crepe-color-on-surface);background:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-1);border-radius:12px;display:block;position:absolute}.milkdown .milkdown-slash-menu ul{list-style-type:none}.milkdown .milkdown-slash-menu ul li{cursor:pointer;border-radius:8px}.milkdown .milkdown-slash-menu .tab-group{border-bottom:1px solid color-mix(in srgb, var(--crepe-color-outline), transparent 80%);padding:12px 12px 0}.milkdown .milkdown-slash-menu .tab-group ul{flex-wrap:nowrap;gap:10px;padding:8px 10px;display:flex}.milkdown .milkdown-slash-menu .tab-group ul li{font-size:calc(var(--crepe-base-font-size,16px) * .875);padding:6px 10px;font-style:normal;font-weight:600;line-height:20px}.milkdown .milkdown-slash-menu .tab-group ul li:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-slash-menu .tab-group ul li.selected{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu .menu-groups{overscroll-behavior:contain;scroll-behavior:smooth;max-height:420px;padding:0 12px 12px;overflow:auto}.milkdown .milkdown-slash-menu .menu-groups .menu-group h6{font-size:calc(var(--crepe-base-font-size,16px) * .875);text-transform:uppercase;color:color-mix(in srgb, var(--crepe-color-on-surface), transparent 40%);padding:14px 10px;font-style:normal;font-weight:600;line-height:20px}.milkdown .milkdown-slash-menu .menu-groups .menu-group li{justify-content:flex-start;align-items:center;gap:16px;min-width:220px;padding:14px 10px;display:flex}.milkdown .milkdown-slash-menu .menu-groups .menu-group li.hover{background:var(--crepe-color-hover)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li.active{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li svg{width:24px;height:24px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li>span{font-size:calc(var(--crepe-base-font-size,16px) * .875);font-style:normal;font-weight:600;line-height:20px}.milkdown .milkdown-slash-menu .menu-groups .menu-group+.menu-group:before{content:"";background:color-mix(in srgb, var(--crepe-color-outline), transparent 80%);height:1px;margin:0 10px;display:block}.milkdown .milkdown-code-block{background:var(--crepe-color-surface);margin:4px 0;padding:8px 20px 20px;display:block;position:relative}.milkdown .milkdown-code-block .language-picker{z-index:999;width:max-content;padding-top:10px;position:absolute}.milkdown .milkdown-code-block .hidden{display:none!important}.milkdown .milkdown-code-block.selected{outline:1px solid var(--crepe-color-primary)}.milkdown .milkdown-code-block .milkdown-code-block-placeholder{font-family:var(--crepe-font-code,monospace);font-size:calc(var(--crepe-base-font-size,16px) * .875);white-space:pre-wrap;word-break:break-all;margin:0;padding:4px 0;line-height:1.5}.milkdown .milkdown-code-block .milkdown-code-block-placeholder code{font-family:inherit}.milkdown .milkdown-code-block .cm-editor{background:var(--crepe-color-surface);outline:none!important}.milkdown .milkdown-code-block .cm-gutters{background:var(--crepe-color-surface);border-right:none}.milkdown .milkdown-code-block .cm-panel{font-family:var(--crepe-font-default);background:var(--crepe-color-surface);color:var(--crepe-color-on-surface)}.milkdown .milkdown-code-block .cm-panel input{caret-color:var(--crepe-color-outline);background:var(--crepe-color-surface-low);border-radius:4px}.milkdown .milkdown-code-block .cm-panel>button{text-transform:capitalize;background:var(--crepe-color-surface-low);color:var(--crepe-color-on-surface-variant);border:1px solid var(--crepe-color-outline);cursor:pointer;border-radius:4px;font-weight:600}.milkdown .milkdown-code-block .cm-panel>button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .cm-panel>label{text-transform:capitalize;align-items:center;display:inline-flex}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]{cursor:pointer;appearance:none;background:var(--crepe-color-surface-low);border:1px solid var(--crepe-color-outline);border-radius:4px;place-content:center;width:1.15em;height:1.15em;display:grid}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]:before{content:"";transform-origin:0 100%;width:.65em;height:.65em;box-shadow:inset 1em 1em var(--crepe-color-outline);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);transition:transform .12s ease-in-out;transform:scale(0)}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]:checked:before{transform:scale(1)}.milkdown .milkdown-code-block .tools{justify-content:space-between;align-items:center;display:flex}.milkdown .milkdown-code-block .tools input{caret-color:var(--crepe-color-outline)}.milkdown .milkdown-code-block .tools .tools-button-group{gap:2px;display:flex}.milkdown .milkdown-code-block .tools .tools-button-group button{background:var(--crepe-color-secondary);color:var(--crepe-color-on-surface-variant);opacity:0;cursor:pointer;font-size:calc(var(--crepe-base-font-size,16px) * .75);font-weight:600;line-height:16px;font-family:var(--crepe-font-default);border-radius:4px;justify-content:center;align-items:center;gap:4px;padding:4px 10px;transition:opacity .2s ease-in-out;display:flex}.milkdown .milkdown-code-block .tools .tools-button-group button svg{width:14px;height:14px;fill:var(--crepe-color-on-surface-variant)}.milkdown .milkdown-code-block .tools .tools-button-group button:first-child{border-top-left-radius:100px;border-bottom-left-radius:100px}.milkdown .milkdown-code-block .tools .tools-button-group button:last-child{border-top-right-radius:100px;border-bottom-right-radius:100px}.milkdown .milkdown-code-block .tools .language-button{font-family:var(--crepe-font-default);background:var(--crepe-color-surface-low);color:var(--crepe-color-on-surface-variant);font-size:calc(var(--crepe-base-font-size,16px) * .75);opacity:0;cursor:pointer;border-radius:4px;align-items:center;gap:6px;margin-bottom:8px;padding:2px 4px 2px 8px;font-weight:600;line-height:16px;transition:opacity .2s ease-in-out;display:flex}.milkdown .milkdown-code-block .tools .language-button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .tools .language-button .expand-icon{justify-content:center;align-items:center;width:18px;height:18px;transition:transform .2s ease-in-out;display:flex}.milkdown .milkdown-code-block .tools .language-button .expand-icon svg{width:14px;height:14px;color:var(--crepe-color-outline)}.milkdown .milkdown-code-block .tools .language-button[data-expanded=true] .expand-icon{transform:rotate(180deg)}.milkdown .milkdown-code-block .tools .language-button .expand-icon svg:focus,.milkdown .milkdown-code-block .tools .language-button .expand-icon:focus-visible{outline:none}.milkdown .milkdown-code-block:hover .language-button,.milkdown .milkdown-code-block:hover .tools-button-group>button{opacity:1}.milkdown .milkdown-code-block .list-wrapper{background:var(--crepe-color-surface-low);box-shadow:var(--crepe-shadow-1);border-radius:12px;width:240px;padding-top:12px}.milkdown .milkdown-code-block .language-list{overscroll-behavior:contain;height:410px;margin:0;padding:0;overflow-y:auto}.milkdown .milkdown-code-block .language-list-item{cursor:pointer;font-size:calc(var(--crepe-base-font-size,16px) * .875);align-items:center;gap:8px;margin:0;padding:4px 22px;font-weight:600;line-height:20px;display:flex}.milkdown .milkdown-code-block .language-list-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .language-list-item:focus-visible{background:var(--crepe-color-hover);outline:none}.milkdown .milkdown-code-block .language-list-item .leading,.milkdown .milkdown-code-block .language-list-item .leading svg{width:24px;height:24px}.milkdown .milkdown-code-block .language-list-item.no-result{cursor:default;opacity:.6}.milkdown .milkdown-code-block .language-list-item.no-result:hover{background:0 0}.milkdown .milkdown-code-block .search-box{outline:1px solid var(--crepe-color-primary);background:0 0;border-radius:4px;align-items:center;gap:8px;margin:0 12px 8px;padding:6px 10px;display:flex}.milkdown .milkdown-code-block .search-box:has(input:focus){outline:2px solid var(--crepe-color-primary)}.milkdown .milkdown-code-block .search-box .search-input{width:100%;color:var(--crepe-color-on-surface)}.milkdown .milkdown-code-block .search-box .search-icon{display:none}.milkdown .milkdown-code-block .search-box .clear-icon{cursor:pointer;width:20px;height:20px}.milkdown .milkdown-code-block .search-box .clear-icon svg{width:20px;height:20px;color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}.milkdown .milkdown-code-block .search-box .clear-icon:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .search-box input{font-family:var(--crepe-font-default);font-size:calc(var(--crepe-base-font-size,16px) * .875);background:0 0;line-height:20px}.milkdown .milkdown-code-block .search-box input:focus{outline:none}.milkdown .milkdown-code-block .preview-panel .preview-divider{opacity:.2;background:var(--crepe-color-outline);height:1px;margin:6px 0}.milkdown .milkdown-code-block .preview-panel .preview-label{font-size:calc(var(--crepe-base-font-size,16px) * .75);color:color-mix(in srgb, var(--crepe-color-on-surface), transparent 40%);text-transform:uppercase;font-weight:600;font-family:var(--crepe-font-default);margin:6px 0}.milkdown .milkdown-code-block .preview-panel .preview{text-align:center;overflow-x:auto}.ProseMirror-gapcursor{pointer-events:none;display:none;position:absolute}.ProseMirror-gapcursor:after{content:"";border-top:1px solid #000;width:20px;animation:1.1s steps(2,start) infinite ProseMirror-cursor-blink;display:block;position:absolute;top:-2px}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.ProseMirror.virtual-cursor-enabled{caret-color:#0000}.ProseMirror-focused{--prosemirror-virtual-cursor-color:red}.ProseMirror .prosemirror-virtual-cursor{cursor:text;pointer-events:none;-webkit-user-select:none;user-select:none;border-left:2px solid var(--prosemirror-virtual-cursor-color);position:absolute;transform:translate(-1px)}.ProseMirror .prosemirror-virtual-cursor-left{border-bottom:2px solid var(--prosemirror-virtual-cursor-color);border-right:2px solid var(--prosemirror-virtual-cursor-color);border-left:none;width:1ch;transform:translate(calc(-1ch - 1px))}.ProseMirror .prosemirror-virtual-cursor-right{border-bottom:2px solid var(--prosemirror-virtual-cursor-color);border-left:2px solid var(--prosemirror-virtual-cursor-color);border-right:none;width:1ch}.ProseMirror-focused .prosemirror-virtual-cursor-animation{animation:1s linear .5s infinite prosemirror-virtual-cursor-blink}@keyframes prosemirror-virtual-cursor-blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}.milkdown .crepe-drop-cursor{background-color:color-mix(in srgb, var(--crepe-color-outline), transparent 50%);opacity:.5;pointer-events:none;transition:all .2s}.milkdown .ProseMirror-gapcursor:after{box-sizing:border-box;border-top:1px solid var(--crepe-color-on-background)}.milkdown .ProseMirror-focused{--prosemirror-virtual-cursor-color:var(--crepe-color-outline)}.milkdown .milkdown-image-inline{vertical-align:text-bottom;outline:none;display:inline-flex}.milkdown .milkdown-image-inline input{caret-color:var(--crepe-color-outline);background:0 0;border:0;outline:none}.milkdown .milkdown-image-inline>.empty-image-inline{display:inline-flex}.milkdown .milkdown-image-inline>.empty-image-inline .confirm{cursor:pointer}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer{flex:1;position:relative}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer>.link-input-area{width:208px;color:var(--crepe-color-on-background);display:flex}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer .placeholder{cursor:text;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer .placeholder .uploader{cursor:pointer;display:flex}.milkdown .milkdown-image-inline .hidden{display:none!important}.milkdown .milkdown-image-inline.empty.selected{background:0 0;outline:none}.milkdown .milkdown-image-inline.empty.selected .empty-image-inline{box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-image-inline.selected{outline:1px solid var(--crepe-color-primary);background:0 0}.milkdown .milkdown-image-inline.selected :not(input)::-moz-selection{background:0 0}.milkdown .milkdown-image-inline.selected :not(input)::selection{background:0 0}.milkdown .milkdown-image-inline .empty-image-inline{background:var(--crepe-color-surface);font-family:var(--crepe-font-default);font-size:var(--crepe-base-font-size,16px);border-radius:8px;align-items:center;gap:10px;padding:4px 10px}.milkdown .milkdown-image-inline .empty-image-inline .image-icon svg{width:18px;height:18px;fill:var(--crepe-color-outline)}.milkdown .milkdown-image-inline .empty-image-inline .image-icon{width:24px;height:24px;padding:3px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer{height:24px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder{color:color-mix(in srgb, var(--crepe-color-on-background), transparent 60%)}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder :not(input)::-moz-selection{background:0 0}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder :not(input)::selection{background:0 0}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .link-input-area{line-height:24px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .uploader{color:var(--crepe-color-primary);font-family:var(--crepe-font-default);justify-content:center;gap:8px;transition:color .2s}.milkdown .milkdown-image-inline .empty-image-inline .link-importer.focus .placeholder .uploader{color:unset}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .uploader:hover{color:var(--crepe-color-primary)}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .text{margin-left:8px}.milkdown .milkdown-image-inline .empty-image-inline .confirm svg{width:18px;height:18px}.milkdown .milkdown-image-inline .empty-image-inline .confirm{width:24px;height:24px;color:var(--crepe-color-primary);border-radius:8px;padding:3px;display:flex}.milkdown .milkdown-image-inline .empty-image-inline .confirm:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-image-block{outline:none;margin:4px 0;display:block}.milkdown .milkdown-image-block>.image-wrapper{width:fit-content;min-width:100px;margin:0 auto;position:relative}.milkdown .milkdown-image-block>.image-wrapper .operation{display:flex;position:absolute}.milkdown .milkdown-image-block>.image-wrapper .operation>.operation-item{cursor:pointer}.milkdown .milkdown-image-block>.image-wrapper img{-o-object-fit:cover;object-fit:cover;max-width:100%;min-height:100px;display:block}.milkdown .milkdown-image-block>.image-wrapper>.image-resize-handle{position:absolute;left:50%;transform:translate(-50%)}.milkdown .milkdown-image-block>.image-wrapper>.image-resize-handle:hover{cursor:row-resize}.milkdown .milkdown-image-block input{caret-color:var(--crepe-color-outline);background:0 0;border:0;outline:none}.milkdown .milkdown-image-block>.caption-input{text-align:center;width:100%;color:var(--crepe-color-on-background);display:block}.milkdown .milkdown-image-block>.image-edit{display:flex}.milkdown .milkdown-image-block>.image-edit .confirm{cursor:pointer}.milkdown .milkdown-image-block>.image-edit .link-importer{flex:1;position:relative}.milkdown .milkdown-image-block>.image-edit .link-importer>.link-input-area{width:100%}.milkdown .milkdown-image-block>.image-edit .link-importer .placeholder{cursor:text;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0}.milkdown .milkdown-image-block>.image-edit .link-importer .placeholder .uploader{cursor:pointer;display:flex}.milkdown .milkdown-image-block .hidden{display:none!important}.milkdown .milkdown-image-block.selected>.image-edit:not(:has(input:focus)){position:relative}.milkdown .milkdown-image-block.selected>.image-edit:not(:has(input:focus)):before{content:"";background:color-mix(in srgb, var(--crepe-color-selected), transparent 60%);pointer-events:none;position:absolute;inset:0}.milkdown .milkdown-image-block.selected>.image-wrapper{position:relative}.milkdown .milkdown-image-block.selected>.image-wrapper:before{content:"";background:color-mix(in srgb, var(--crepe-color-selected), transparent 60%);position:absolute;inset:0}.milkdown .milkdown-image-block.selected :not(input)::-moz-selection{background:0 0}.milkdown .milkdown-image-block.selected :not(input)::selection{background:0 0}.milkdown .milkdown-image-block .image-wrapper{justify-content:center;align-items:center;display:flex}.milkdown .milkdown-image-block .image-wrapper .operation{opacity:0;gap:12px;transition:all .2s;top:12px;right:12px}.milkdown .milkdown-image-block:hover>.image-wrapper .operation{opacity:1}.milkdown .milkdown-image-block .image-wrapper .operation>.operation-item{color:var(--crepe-color-on-inverse);background:var(--crepe-color-inverse);opacity:.6;border-radius:50%;width:32px;height:32px;padding:4px}.milkdown .milkdown-image-block .image-wrapper .operation>.operation-item svg{width:24px;height:24px}.milkdown .milkdown-image-block .image-wrapper .image-resize-handle{background:var(--crepe-color-outline);opacity:0;border-radius:4px;width:100%;max-width:160px;height:4px;transition:all .2s;bottom:-2px}.milkdown .milkdown-image-block:hover>.image-wrapper .image-resize-handle{opacity:1}.milkdown .milkdown-image-block .caption-input{font-family:var(--crepe-font-default);margin:4px auto}.milkdown .milkdown-image-block .image-edit{background:var(--crepe-color-surface);align-items:center;gap:16px;height:56px;padding:16px 24px}.milkdown .milkdown-image-block .image-edit .image-icon{color:var(--crepe-color-outline)}.milkdown .milkdown-image-block .image-edit .image-icon svg{width:24px;height:24px;fill:var(--crepe-color-outline);justify-content:center;align-items:center;display:flex}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder{color:color-mix(in srgb, var(--crepe-color-on-background), transparent 60%)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder :not(input)::-moz-selection{background:0 0}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder :not(input)::selection{background:0 0}.milkdown .milkdown-image-block .image-edit .link-importer .link-input-area{color:var(--crepe-color-on-background);line-height:24px}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .uploader{color:var(--crepe-color-primary);justify-content:center;gap:8px;font-weight:600;transition:color .2s}.milkdown .milkdown-image-block .image-edit .link-importer.focus .placeholder .uploader{color:unset}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .uploader:hover{color:var(--crepe-color-primary)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .text{margin-left:8px}.milkdown .milkdown-image-block .image-edit .confirm{background:var(--crepe-color-secondary);color:var(--crepe-color-on-secondary);line-height:40px;font-size:calc(var(--crepe-base-font-size,16px) * .875);border-radius:100px;padding:0 24px;font-weight:600}.milkdown .milkdown-image-block .image-edit .confirm:hover{background:linear-gradient(0deg, #1d192b14 0%, #1d192b14 100%), var(--crepe-color-secondary)}.milkdown .milkdown-link-preview{z-index:10;position:absolute}.milkdown .milkdown-link-preview[data-show=false]{display:none}.milkdown .milkdown-link-preview>.link-preview{background:var(--crepe-color-surface);cursor:pointer;height:32px;box-shadow:var(--crepe-shadow-1);border-radius:8px;justify-content:center;gap:10px;padding:4px 10px;display:flex}.milkdown .milkdown-link-preview>.link-preview>.link-display{color:unset;text-decoration:none}.milkdown .milkdown-link-preview>.link-preview>.link-display:hover:before{display:block}.milkdown .milkdown-link-preview>.link-preview>.link-icon>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-preview>.link-preview>.link-icon{border-radius:8px;padding:3px;line-height:24px}.milkdown .milkdown-link-preview>.link-preview>.link-icon:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-preview>.link-preview>.link-display{text-overflow:ellipsis;width:240px;line-height:24px;font-size:calc(var(--crepe-base-font-size,16px) * .875);white-space:nowrap;overflow:hidden}.milkdown .milkdown-link-preview>.link-preview>.link-display:hover{text-decoration:underline}.milkdown .milkdown-link-preview>.link-preview>.button>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-preview>.link-preview>.button{border-radius:8px;padding:3px;line-height:24px}.milkdown .milkdown-link-preview>.link-preview>.button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-edit{z-index:10;position:absolute}.milkdown .milkdown-link-edit[data-show=false]{display:none}.milkdown .milkdown-link-edit>.link-edit{background:var(--crepe-color-surface);height:32px;box-shadow:var(--crepe-shadow-1);border-radius:8px;justify-content:center;gap:8px;padding:4px 10px 4px 20px;display:flex}.milkdown .milkdown-link-edit>.link-edit>.input-area{width:200px;font-size:calc(var(--crepe-base-font-size,16px) * .875);color:var(--crepe-color-on-background);background:0 0;outline:none}.milkdown .milkdown-link-edit>.link-edit>.button>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-edit>.link-edit>.button{cursor:pointer;font-size:calc(var(--crepe-base-font-size,16px) * .75);border-radius:8px;padding:3px;line-height:24px}.milkdown .milkdown-link-edit>.link-edit>.button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-edit>.link-edit>.button.hidden{visibility:hidden}.milkdown .milkdown-list-item-block{padding:0;display:block}.milkdown .milkdown-list-item-block>.list-item{align-items:flex-start;display:flex}.milkdown .milkdown-list-item-block>.list-item>.children{flex:1;min-width:0}.milkdown .milkdown-list-item-block li{gap:10px}.milkdown .milkdown-list-item-block li .label-wrapper{color:var(--crepe-color-outline)}.milkdown .milkdown-list-item-block li .label-wrapper svg{fill:var(--crepe-color-outline)}.milkdown .milkdown-list-item-block li .label-wrapper{justify-content:center;align-items:center;width:24px;height:32px;display:flex}.milkdown .milkdown-list-item-block li .label-wrapper .label{text-align:right;width:24px;height:32px;padding:4px 0}.milkdown .milkdown-list-item-block li .label-wrapper .checked,.milkdown .milkdown-list-item-block li .label-wrapper .unchecked{cursor:pointer}.milkdown .milkdown-list-item-block li .label-wrapper .readonly{cursor:not-allowed}.milkdown .crepe-placeholder:before{color:color-mix(in srgb, var(--crepe-color-on-background), transparent 60%);pointer-events:none;content:attr(data-placeholder);height:0;position:absolute}:is(.milkdown:has(.milkdown-link-preview[data-show=true]) .milkdown-toolbar,.milkdown:has(.milkdown-link-edit[data-show=true]) .milkdown-toolbar),.milkdown .milkdown-toolbar[data-show=false]{display:none}.milkdown .milkdown-toolbar{z-index:10;background:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-1);border-radius:8px;display:flex;position:absolute;overflow:hidden}.milkdown .milkdown-toolbar .divider{background:color-mix(in srgb, var(--crepe-color-outline), transparent 80%);width:1px;height:24px;margin:10px}.milkdown .milkdown-toolbar .toolbar-item{cursor:pointer;border-radius:4px;width:32px;height:32px;margin:6px;padding:4px}.milkdown .milkdown-toolbar .toolbar-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-toolbar .toolbar-item:active{background:var(--crepe-color-selected)}.milkdown .milkdown-toolbar .toolbar-item svg{width:24px;height:24px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-toolbar .toolbar-item.active svg{color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}.ProseMirror .tableWrapper{overflow-x:auto}.ProseMirror table{border-collapse:collapse;table-layout:fixed;width:100%;overflow:hidden}.ProseMirror td,.ProseMirror th{vertical-align:top;box-sizing:border-box;position:relative}.ProseMirror td:not([data-colwidth]):not(.column-resize-dragging),.ProseMirror th:not([data-colwidth]):not(.column-resize-dragging){min-width:var(--default-cell-min-width)}.ProseMirror .column-resize-handle{z-index:20;pointer-events:none;background-color:#adf;width:4px;position:absolute;top:0;bottom:0;right:-2px}.ProseMirror.resize-cursor{cursor:ew-resize;cursor:col-resize}.ProseMirror .selectedCell:after{z-index:2;content:"";pointer-events:none;background:#c8c8ff66;position:absolute;inset:0}.milkdown .milkdown-table-block{margin:4px 0;display:block}.milkdown .milkdown-table-block th,.milkdown .milkdown-table-block td{border:1px solid color-mix(in srgb, var(--crepe-color-outline), transparent 80%);padding:4px 16px}.milkdown .milkdown-table-block th .ProseMirror-selectednode,.milkdown .milkdown-table-block td .ProseMirror-selectednode{background-color:#0000!important}:is(.milkdown .milkdown-table-block th:has(.ProseMirror-selectednode),.milkdown .milkdown-table-block td:has(.ProseMirror-selectednode)){outline:1px solid var(--crepe-color-primary);outline-offset:-1px}.milkdown .milkdown-table-block .selectedCell:after{background-color:var(--crepe-color-selected);opacity:.4}.milkdown .milkdown-table-block .selectedCell ::selection{background:0 0}.milkdown .milkdown-table-block .drag-preview{background-color:var(--crepe-color-surface);opacity:.4;z-index:100;outline:1px solid var(--crepe-color-primary);outline-offset:-1px;flex-direction:column;display:flex;position:absolute}.milkdown .milkdown-table-block .drag-preview[data-show=false]{display:none}:is(.milkdown .milkdown-table-block .drag-preview th:has(.ProseMirror-selectednode),.milkdown .milkdown-table-block .drag-preview td:has(.ProseMirror-selectednode)){outline:none}.milkdown .milkdown-table-block .handle{font-size:calc(var(--crepe-base-font-size,16px) * .875);transition:opacity .2s ease-in-out;position:absolute}.milkdown .milkdown-table-block .handle[data-show=false]{opacity:0}.milkdown .milkdown-table-block svg{fill:var(--crepe-color-outline)}.milkdown .milkdown-table-block .cell-handle{z-index:50;cursor:grab;background-color:var(--crepe-color-surface);color:var(--crepe-color-outline);box-shadow:var(--crepe-shadow-1);border-radius:100px;transition:background-color .2s ease-in-out;top:-999px;left:-999px}.milkdown .milkdown-table-block .cell-handle:hover{background-color:var(--crepe-color-hover)}.milkdown .milkdown-table-block .cell-handle:has(.button-group:hover){background-color:var(--crepe-color-surface)}.milkdown .milkdown-table-block .cell-handle[data-role=col-drag-handle]{width:28px;height:16px;padding:0 6px;transform:translateY(50%)}.milkdown .milkdown-table-block .cell-handle[data-role=row-drag-handle]{width:16px;height:28px;padding:6px 0;transform:translate(50%)}.milkdown .milkdown-table-block .cell-handle .button-group{background-color:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-1);border-radius:8px;display:flex;position:absolute;top:-52px;left:50%;transform:translate(-50%)}.milkdown .milkdown-table-block .cell-handle .button-group:after{content:"";background-color:#0000;width:100%;height:8px;position:absolute;bottom:-8px}.milkdown .milkdown-table-block .cell-handle .button-group[data-show=false]{display:none}.milkdown .milkdown-table-block .cell-handle .button-group button{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;margin:6px;padding:4px;display:flex}.milkdown .milkdown-table-block .cell-handle .button-group button svg{width:24px;height:24px}.milkdown .milkdown-table-block .cell-handle .button-group button:hover{background-color:var(--crepe-color-hover);border-radius:8px}.milkdown .milkdown-table-block .cell-handle .button-group button:active{background:var(--crepe-color-selected)}.milkdown .milkdown-table-block .cell-handle:hover{opacity:1}.milkdown .milkdown-table-block .line-handle{z-index:20;background-color:var(--crepe-color-primary)}.milkdown .milkdown-table-block .line-handle:hover{opacity:1}.milkdown .milkdown-table-block .line-handle .add-button{cursor:pointer;background-color:var(--crepe-color-surface);color:var(--crepe-color-outline);box-shadow:var(--crepe-shadow-1);border-radius:100px;transition:background-color .2s ease-in-out}.milkdown .milkdown-table-block .line-handle .add-button svg{width:16px;height:16px}.milkdown .milkdown-table-block .line-handle .add-button:hover{background-color:var(--crepe-color-hover)}.milkdown .milkdown-table-block .line-handle .add-button:active{background:var(--crepe-color-selected)}.milkdown .milkdown-table-block .line-handle[data-role=x-line-drag-handle]{z-index:2;height:1px}.milkdown .milkdown-table-block .line-handle[data-role=x-line-drag-handle] .add-button{width:16px;height:28px;padding:6px 0;position:absolute;transform:translate(-50%)translateY(-50%)}.milkdown .milkdown-table-block .line-handle[data-role=y-line-drag-handle]{z-index:1;width:1px}.milkdown .milkdown-table-block .line-handle[data-role=y-line-drag-handle] .add-button{width:28px;height:16px;padding:0 6px;position:absolute;transform:translateY(-50%)translate(-50%)}.milkdown .milkdown-table-block .line-handle[data-display-type=indicator] .add-button,.milkdown .milkdown-table-block.readonly .handle{display:none}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2)format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff)format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff)format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff)format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2)format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff)format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2)format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff)format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2)format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff)format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2)format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff)format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2)format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff)format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2)format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff)format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff)format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff)format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff)format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2)format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff)format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2)format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff)format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2)format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff)format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC)format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff)format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2)format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff)format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2)format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff)format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,math,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.18.10"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{white-space:nowrap;width:min-content;position:relative}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .katex-vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .katex-thinbox{flex-direction:row;width:0;max-width:0;display:inline-flex}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.katex-root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .katex-stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .reflectbox{display:inline-block;transform:scaleX(-1)}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}.milkdown span[data-type=math_inline]{vertical-align:bottom;color:var(--crepe-color-primary);padding:0 4px;display:inline-block}.milkdown .milkdown-latex-inline-edit[data-show=false]{display:none}.milkdown .milkdown-latex-inline-edit{background:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-1);border-radius:8px;padding:2px 6px 2px 12px;position:absolute}.milkdown .milkdown-latex-inline-edit .container{align-items:flex-start;gap:6px;display:flex}.milkdown .milkdown-latex-inline-edit .container button{cursor:pointer;border-radius:8px;width:24px;height:24px}.milkdown .milkdown-latex-inline-edit .container button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-latex-inline-edit .ProseMirror{min-width:174px;max-width:294px;font-family:var(--crepe-font-code);padding:0}.milkdown .milkdown-top-bar{z-index:10;background:var(--crepe-color-surface);border-bottom:1px solid color-mix(in srgb, var(--crepe-color-outline), transparent 80%);flex-wrap:wrap;align-items:center;min-height:44px;padding:0 12px;display:flex;position:sticky;top:0}.milkdown .milkdown-top-bar .top-bar-inner{flex-wrap:wrap;align-items:center;width:100%;display:flex}.milkdown .milkdown-top-bar .top-bar-divider{background:color-mix(in srgb, var(--crepe-color-outline), transparent 80%);flex-shrink:0;width:1px;height:24px;margin:10px}.milkdown .milkdown-top-bar .top-bar-heading-selector{flex-shrink:0;padding:6px;position:relative}.milkdown .milkdown-top-bar .top-bar-heading-button{text-align:left;cursor:pointer;box-sizing:border-box;border-radius:4px;align-items:center;height:32px;padding:4px 4px 4px 10px;display:flex}.milkdown .milkdown-top-bar .top-bar-heading-button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-top-bar .top-bar-heading-button .top-bar-heading-label{font-family:var(--crepe-font-default);font-size:calc(var(--crepe-base-font-size,16px) * .875);letter-spacing:.1px;color:var(--crepe-color-on-surface);white-space:nowrap;min-width:80px;font-weight:600;line-height:20px}.milkdown .milkdown-top-bar .top-bar-heading-button .top-bar-chevron{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.milkdown .milkdown-top-bar .top-bar-heading-button .top-bar-chevron svg{width:16px;height:16px;color:var(--crepe-color-outline);stroke:var(--crepe-color-outline);fill:none}.milkdown .milkdown-top-bar .top-bar-heading-dropdown{z-index:20;background:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-2);border-radius:8px;min-width:160px;padding:8px 4px 4px;position:absolute;top:100%;left:0}.milkdown .milkdown-top-bar .top-bar-heading-option{text-align:left;cursor:pointer;width:100%;font-family:var(--crepe-font-default);font-size:calc(var(--crepe-base-font-size,16px) * .875);color:var(--crepe-color-on-surface);white-space:nowrap;border-radius:4px;justify-content:flex-start;align-items:center;padding:8px 12px;font-weight:400;line-height:20px;display:flex}.milkdown .milkdown-top-bar .top-bar-heading-option:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-top-bar .top-bar-heading-option.active{color:var(--crepe-color-primary);font-weight:600}.milkdown .milkdown-top-bar .top-bar-item{cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin:6px;padding:4px;display:flex}.milkdown .milkdown-top-bar .top-bar-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-top-bar .top-bar-item:active{background:var(--crepe-color-selected)}.milkdown .milkdown-top-bar .top-bar-item svg{width:24px;height:24px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-top-bar .top-bar-item.active svg{color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}.milkdown{--crepe-color-diff-added:#22c55e;--crepe-color-diff-removed:#ef4444;--crepe-color-diff-added-bg:color-mix(in srgb, var(--crepe-color-diff-added), transparent 88%);--crepe-color-diff-added-text:color-mix(in srgb, var(--crepe-color-diff-added), var(--crepe-color-on-background) 40%);--crepe-color-diff-removed-bg:color-mix(in srgb, var(--crepe-color-diff-removed), transparent 88%);--crepe-color-diff-removed-text:color-mix(in srgb, var(--crepe-color-diff-removed), var(--crepe-color-on-background) 40%)}.milkdown .milkdown-diff-removed{background-color:var(--crepe-color-diff-removed-bg);color:var(--crepe-color-diff-removed-text);text-decoration:line-through}.milkdown .milkdown-diff-removed-block{opacity:.45;outline-offset:2px;background-color:var(--crepe-color-diff-removed-bg);border-radius:4px;position:relative;outline:2px dashed var(--crepe-color-diff-removed)!important}.milkdown .milkdown-diff-added{background-color:var(--crepe-color-diff-added-bg);color:var(--crepe-color-diff-added-text);border-radius:2px;padding:0 2px}.milkdown .milkdown-diff-added-block{background-color:var(--crepe-color-diff-added-bg);border-left:3px solid var(--crepe-color-diff-added);border-radius:4px;margin:8px 0;padding:8px 12px;display:block}.milkdown .milkdown-diff-added-block h1,.milkdown .milkdown-diff-added-block h2,.milkdown .milkdown-diff-added-block h3,.milkdown .milkdown-diff-added-block h4,.milkdown .milkdown-diff-added-block h5,.milkdown .milkdown-diff-added-block h6,.milkdown .milkdown-diff-added-block p{color:var(--crepe-color-diff-added-text);margin:4px 0}.milkdown .milkdown-diff-added-block ul,.milkdown .milkdown-diff-added-block ol{color:var(--crepe-color-diff-added-text);margin:4px 0;padding-left:20px}.milkdown .milkdown-diff-added-block li{margin:2px 0}.milkdown .milkdown-diff-added-block table{border-collapse:collapse;width:100%;margin:4px 0}.milkdown .milkdown-diff-added-block th,.milkdown .milkdown-diff-added-block td{border:1px solid color-mix(in srgb, var(--crepe-color-diff-added), transparent 50%);text-align:left;padding:6px 12px}.milkdown .milkdown-diff-added-block th{font-weight:600}.milkdown .milkdown-diff-added-block img{border-radius:4px;max-width:100%}.milkdown .milkdown-diff-added-block pre,.milkdown .milkdown-diff-added-block code{background:color-mix(in srgb, var(--crepe-color-diff-added), transparent 94%);font-family:var(--crepe-font-code);font-size:calc(var(--crepe-base-font-size,16px) * .8125);white-space:pre;border-radius:4px;padding:8px 12px;display:block;overflow-x:auto}.milkdown .milkdown-diff-controls{vertical-align:middle;white-space:nowrap;gap:3px;margin:0 4px;display:inline-flex}.milkdown .milkdown-diff-controls button{font-family:var(--crepe-font-default);font-size:calc(var(--crepe-base-font-size,16px) * .6875);cursor:pointer;border:1px solid;border-radius:3px;padding:2px 6px;font-weight:500;line-height:1}.milkdown .milkdown-diff-controls-block{gap:4px;margin:4px 0;display:flex}.milkdown .milkdown-diff-accept{background-color:color-mix(in srgb, var(--crepe-color-diff-added), var(--crepe-color-background) 85%);color:var(--crepe-color-diff-added-text);border-color:color-mix(in srgb, var(--crepe-color-diff-added), transparent 50%)}.milkdown .milkdown-diff-accept:hover{background-color:color-mix(in srgb, var(--crepe-color-diff-added), var(--crepe-color-background) 75%)}.milkdown .milkdown-diff-reject{background-color:color-mix(in srgb, var(--crepe-color-diff-removed), var(--crepe-color-background) 85%);color:var(--crepe-color-diff-removed-text);border-color:color-mix(in srgb, var(--crepe-color-diff-removed), transparent 50%)}.milkdown .milkdown-diff-reject:hover{background-color:color-mix(in srgb, var(--crepe-color-diff-removed), var(--crepe-color-background) 75%)}.milkdown .milkdown-ai-instruction{z-index:10;position:absolute}.milkdown .milkdown-ai-instruction[data-show=false]{display:none}.milkdown .milkdown-ai-instruction>.ai-instruction{background:var(--crepe-color-surface);width:360px;box-shadow:var(--crepe-shadow-2);font-family:var(--crepe-font-default);font-size:calc(var(--crepe-base-font-size,16px) * .875);color:var(--crepe-color-on-background);border-radius:12px;overflow:hidden}.milkdown .ai-instruction-input{background:var(--crepe-color-background);border:1px solid color-mix(in srgb, var(--crepe-color-primary) 35%, transparent);border-radius:999px;align-items:center;gap:8px;margin:8px;padding:4px 4px 4px 12px;display:flex}.milkdown .ai-instruction-input-prefix{color:var(--crepe-color-primary);flex-shrink:0;align-items:center;display:inline-flex}.milkdown .ai-instruction-input-prefix svg{width:18px;height:18px;color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}.milkdown .ai-instruction-input-field{min-width:0;font-family:inherit;font-size:calc(var(--crepe-base-font-size,16px) * .875);color:var(--crepe-color-on-background);background:0 0;border:none;outline:none;flex:1;padding:4px 0;line-height:20px}.milkdown .ai-instruction-input-field::placeholder{color:var(--crepe-color-outline)}.milkdown .ai-instruction-submit{background:var(--crepe-color-primary);width:28px;height:28px;color:var(--crepe-color-on-inverse);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.milkdown .ai-instruction-submit svg{width:16px;height:16px;color:var(--crepe-color-on-inverse);fill:var(--crepe-color-on-inverse)}.milkdown .ai-instruction-submit:hover:not(:disabled){background:color-mix(in srgb, var(--crepe-color-primary) 85%, white)}.milkdown .ai-instruction-submit:disabled{opacity:.4;cursor:not-allowed}.milkdown .ai-instruction-list{max-height:320px;padding-bottom:6px;overflow-y:auto}.milkdown .ai-instruction-back{appearance:none;text-align:left;cursor:pointer;width:100%;color:var(--crepe-color-outline);font-family:inherit;font-size:calc(var(--crepe-base-font-size,16px) * .75);-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;gap:6px;padding:6px 12px 4px;font-weight:500;display:flex}.milkdown .ai-instruction-back:hover{color:var(--crepe-color-on-background)}.milkdown .ai-instruction-back-icon{display:inline-flex}.milkdown .ai-instruction-back-icon svg{stroke:currentColor;width:16px;height:16px}.milkdown .ai-instruction-section{flex-direction:column;display:flex}.milkdown .ai-instruction-section-header{font-size:calc(var(--crepe-base-font-size,16px) * .6875);letter-spacing:.08em;color:var(--crepe-color-outline);text-transform:uppercase;-webkit-user-select:none;user-select:none;padding:6px 16px 4px;font-weight:600}.milkdown .ai-instruction-item{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--crepe-color-on-background);align-items:center;gap:12px;padding:8px 16px;display:flex}.milkdown .ai-instruction-item.active{background:var(--crepe-color-hover)}.milkdown .ai-instruction-item-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.milkdown .ai-instruction-item-icon svg{width:18px;height:18px;color:var(--crepe-color-on-surface-variant);fill:var(--crepe-color-on-surface-variant);stroke:var(--crepe-color-on-surface-variant)}.milkdown .ai-instruction-item-label{font-size:calc(var(--crepe-base-font-size,16px) * .875);text-overflow:ellipsis;white-space:nowrap;flex:1;line-height:20px;overflow:hidden}.milkdown .ai-instruction-item-label mark{background:var(--crepe-color-secondary);color:inherit;border-radius:2px;padding:0 1px}.milkdown .ai-instruction-item-arrow{color:var(--crepe-color-outline);flex-shrink:0;display:inline-flex}.milkdown .ai-instruction-item-arrow svg{stroke:currentColor;width:14px;height:14px}.milkdown .ai-instruction-item-prompt .ai-instruction-item-label{color:var(--crepe-color-primary)}.milkdown .ai-instruction-item-prompt .ai-instruction-item-icon svg{color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}.milkdown .ai-instruction-item-quote{font-weight:500}.milkdown .ai-instruction-item-shortcut{background:var(--crepe-color-surface-low);min-width:24px;height:20px;color:var(--crepe-color-outline);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.milkdown .ai-instruction-item-shortcut svg{width:14px;height:14px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-ai-streaming-indicator{border:1px solid color-mix(in srgb, var(--crepe-color-primary) 20%, transparent);background:var(--crepe-color-surface);vertical-align:middle;white-space:nowrap;-webkit-user-select:none;user-select:none;font-family:var(--crepe-font-default);border-radius:999px;align-items:center;gap:8px;margin:4px 0;padding:4px 6px 4px 12px;display:inline-flex}.milkdown .milkdown-ai-streaming-spinner{border:1.5px solid color-mix(in srgb, var(--crepe-color-primary) 25%, transparent);border-top-color:var(--crepe-color-primary);will-change:transform;border-radius:50%;flex-shrink:0;width:14px;height:14px}.milkdown .milkdown-ai-streaming-label{font-size:calc(var(--crepe-base-font-size,16px) * .8125);color:var(--crepe-color-on-background);line-height:18px}.milkdown .milkdown-ai-streaming-esc{font-family:var(--crepe-font-code,ui-monospace, monospace);font-size:calc(var(--crepe-base-font-size,16px) * .6875);background:var(--crepe-color-surface-low);color:var(--crepe-color-outline);border-radius:999px;padding:4px 8px;line-height:1}.milkdown .milkdown-ai-diff-actions{z-index:11;background:var(--crepe-color-surface);border:1px solid color-mix(in srgb, var(--crepe-color-primary) 18%, transparent);box-shadow:var(--crepe-shadow-2);font-family:var(--crepe-font-default);-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:4px;padding:6px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.milkdown .milkdown-ai-diff-actions[data-show=false]{display:none}.milkdown .milkdown-ai-diff-actions-btn{font-family:inherit;font-size:calc(var(--crepe-base-font-size,16px) * .8125);color:var(--crepe-color-on-background);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-weight:500;line-height:1;display:inline-flex}.milkdown .milkdown-ai-diff-actions-btn:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-ai-diff-actions-btn:disabled{opacity:.4;cursor:not-allowed}.milkdown .milkdown-ai-diff-actions-btn:disabled:hover{background:0 0}.milkdown .milkdown-ai-diff-actions-icon{justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.milkdown .milkdown-ai-diff-actions-icon svg{color:currentColor;fill:currentColor;width:16px;height:16px}.milkdown .milkdown-ai-diff-actions-btn-retry{color:var(--crepe-color-on-surface-variant)}.milkdown .milkdown-ai-diff-actions-btn-reject{color:var(--crepe-color-diff-removed-text,#ba1a1a);background:color-mix(in srgb, var(--crepe-color-diff-removed,#ef4444) 8%, transparent)}.milkdown .milkdown-ai-diff-actions-btn-reject:hover{background:color-mix(in srgb, var(--crepe-color-diff-removed,#ef4444) 16%, transparent)}.milkdown .milkdown-ai-diff-actions-btn-accept{color:var(--crepe-color-diff-added-text,#166534);background:color-mix(in srgb, var(--crepe-color-diff-added,#22c55e) 12%, transparent)}.milkdown .milkdown-ai-diff-actions-btn-accept:hover{background:color-mix(in srgb, var(--crepe-color-diff-added,#22c55e) 22%, transparent)}.milkdown .milkdown-ai-diff-actions-shortcut{background:color-mix(in srgb, var(--crepe-color-diff-added,#22c55e) 14%, transparent);font-family:var(--crepe-font-code,ui-monospace, monospace);font-size:calc(var(--crepe-base-font-size,16px) * .6875);color:inherit;border-radius:4px;align-items:center;gap:2px;margin-left:4px;padding:3px 6px;display:inline-flex}.milkdown .milkdown-ai-diff-actions-shortcut-icon{display:inline-flex}.milkdown .milkdown-ai-diff-actions-shortcut-icon svg{color:currentColor;fill:currentColor;width:12px;height:12px}.milkdown{--crepe-color-background:#1f1b16;--crepe-color-on-background:#eae1d9;--crepe-color-surface:#18120b;--crepe-color-surface-low:#201b13;--crepe-color-on-surface:#ede0d4;--crepe-color-on-surface-variant:#d3c4b4;--crepe-color-outline:#9c8f80;--crepe-color-primary:#f4bd6f;--crepe-color-secondary:#56442a;--crepe-color-on-secondary:#fbdebc;--crepe-color-inverse:#ede0d4;--crepe-color-on-inverse:#362f27;--crepe-color-inline-code:#ffb4ab;--crepe-color-error:#ffb4ab;--crepe-color-hover:#251f17;--crepe-color-selected:#3b342b;--crepe-color-inline-area:#3f3830;--crepe-base-font-size:16px;--crepe-font-title:Georgia, Cambria, "Times New Roman", Times, serif;--crepe-font-default:"Open Sans", Arial, Helvetica, sans-serif;--crepe-font-code:Fira Code, Menlo, Monaco, "Courier New", Courier, monospace;--crepe-shadow-1:0px 1px 2px 0px #ffffff4d, 0px 1px 3px 1px #ffffff26;--crepe-shadow-2:0px 1px 2px 0px #ffffff4d, 0px 2px 6px 2px #ffffff26}.visual-markdown[data-v-74596a6c]{min-width:0;height:100%;min-height:0;overflow:auto}.editor-loading[data-v-74596a6c]{color:var(--muted);padding:var(--sp-4) var(--sp-5);font-size:var(--fs-xs)}.visual-markdown-root[data-v-74596a6c]{min-height:100%}.frontmatter[data-v-74596a6c]{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-2);width:calc(100% - 2*clamp(32px,4vw,56px));max-width:calc(820px - 2*clamp(32px,4vw,56px));font-size:var(--fs-sm);margin:28px auto -12px}.frontmatter summary[data-v-74596a6c]{padding:var(--sp-2) var(--sp-3);color:var(--muted);font-size:var(--fs-xs);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.frontmatter-edit[data-v-74596a6c]{color:var(--muted);text-decoration:underline}.frontmatter-edit[data-v-74596a6c]:hover{color:var(--text)}.frontmatter dl[data-v-74596a6c]{gap:var(--sp-1) var(--sp-4);padding:var(--sp-1) var(--sp-3) var(--sp-3);border-top:1px solid var(--line);padding-top:var(--sp-3);grid-template-columns:max-content 1fr;margin:0;display:grid}.frontmatter dt[data-v-74596a6c]{color:var(--muted);font-family:var(--mono);font-size:var(--fs-xs);line-height:1.6}.frontmatter dd[data-v-74596a6c]{white-space:pre-line;overflow-wrap:anywhere;min-width:0;margin:0;line-height:1.6}.frontmatter dt[data-v-74596a6c]{align-items:flex-start;gap:var(--sp-1);display:flex}.frontmatter-remove[data-v-74596a6c]{color:var(--faint);opacity:0;line-height:1.6}.frontmatter dt:hover .frontmatter-remove[data-v-74596a6c],.frontmatter-remove[data-v-74596a6c]:focus-visible{opacity:1}.frontmatter-remove[data-v-74596a6c]:hover{color:var(--err)}.frontmatter textarea[data-v-74596a6c]{width:100%;min-height:0;padding:0 var(--sp-1);margin:0 calc(-1 * var(--sp-1));border-radius:var(--r-sm);color:inherit;font:inherit;resize:none;field-sizing:content;background:0 0;border:1px solid #0000;line-height:1.6;display:block}.frontmatter textarea[data-v-74596a6c]:hover{border-color:var(--line)}.frontmatter textarea[data-v-74596a6c]:focus{border-color:var(--info);background:var(--bg-sunken);outline:none}.frontmatter-add[data-v-74596a6c]{padding:0 var(--sp-3) var(--sp-2);font-size:var(--fs-xs)}.frontmatter-add button[data-v-74596a6c]{color:var(--muted)}.frontmatter-add button[data-v-74596a6c]:hover{color:var(--text)}.frontmatter-add input[data-v-74596a6c]{width:200px;font-family:var(--mono);font-size:var(--fs-xs)}.frontmatter-empty[data-v-74596a6c]{padding:var(--sp-2) var(--sp-3);color:var(--muted);margin:0}@media (width<=700px){.frontmatter[data-v-74596a6c]{margin:var(--sp-4) var(--sp-4) 0;width:auto}.frontmatter dl[data-v-74596a6c]{grid-template-columns:1fr}}.visual-markdown[data-v-74596a6c] .milkdown{--crepe-color-background:var(--bg);--crepe-color-on-background:var(--text);--crepe-color-surface:var(--bg-2);--crepe-color-surface-low:var(--bg-3);--crepe-color-on-surface:var(--text);--crepe-color-on-surface-variant:var(--muted);--crepe-color-outline:var(--muted);--crepe-color-primary:var(--info);--crepe-color-secondary:var(--bg-4);--crepe-color-on-secondary:var(--text);--crepe-color-hover:var(--bg-3);--crepe-color-selected:var(--selection);--crepe-color-inline-area:var(--bg-3);--crepe-font-title:var(--sans);--crepe-font-default:var(--sans);--crepe-font-code:var(--mono);--crepe-shadow-1:var(--shadow-popover);--crepe-shadow-2:var(--shadow-popover);min-height:100%;font-size:var(--fs-md);container-type:inline-size}.visual-markdown[data-v-74596a6c] .ProseMirror{outline:none;max-width:820px;min-height:100%;margin:0 auto;padding:28px clamp(32px,4vw,56px) 80px;line-height:1.8}.visual-markdown[data-v-74596a6c] .ProseMirror-focused{--prosemirror-virtual-cursor-color:var(--text)}.visual-markdown[data-v-74596a6c] .prosemirror-virtual-cursor{z-index:1}.visual-markdown[data-v-74596a6c] .ProseMirror h1,.visual-markdown[data-v-74596a6c] .ProseMirror h2{border-bottom:1px solid var(--line);letter-spacing:-.02em;padding-bottom:.35em;font-weight:650}.visual-markdown[data-v-74596a6c] .ProseMirror h1{font-size:var(--fs-xl);line-height:1.35}.visual-markdown[data-v-74596a6c] .ProseMirror h2{font-size:var(--fs-lg);line-height:1.4}.visual-markdown[data-v-74596a6c] .ProseMirror p{font-size:var(--fs-md);line-height:1.8}.visual-markdown[data-v-74596a6c] .ProseMirror a{color:var(--info);text-underline-offset:3px}.visual-markdown[data-v-74596a6c] .ProseMirror blockquote{border-left:3px solid var(--line-strong);background:var(--bg-2);padding:4px 20px}.visual-markdown[data-v-74596a6c] .ProseMirror img{max-width:100%}.visual-markdown[data-v-74596a6c] .milkdown-table-block{width:max-content;min-width:100%;max-width:max(100%, calc(100% + (100cqw - 100%) / 2 - var(--sp-5)));position:relative}.visual-markdown[data-v-74596a6c] .milkdown-table-block .table-wrapper{position:relative;overflow:auto hidden}.visual-markdown[data-v-74596a6c] .milkdown-table-block table{table-layout:auto;width:max-content;min-width:100%}.visual-markdown[data-v-74596a6c] .milkdown-table-block th,.visual-markdown[data-v-74596a6c] .milkdown-table-block td{overflow-wrap:normal;word-break:normal;vertical-align:top;min-width:7em;max-width:34em}.visual-markdown[data-v-74596a6c] .markdown-html{max-width:100%;display:inline-block}.visual-markdown[data-v-74596a6c] .markdown-html p{margin:0}.visual-markdown[data-v-74596a6c] .markdown-html table{table-layout:auto;width:100%}.visual-markdown[data-v-74596a6c] .markdown-html th,.visual-markdown[data-v-74596a6c] .markdown-html td{padding:2px var(--sp-2);vertical-align:top}.visual-markdown[data-v-74596a6c] img.github-emoji{vertical-align:-.15em;width:1.1em;height:1.1em}.visual-markdown[data-v-74596a6c] input[type=checkbox]{width:auto;accent-color:var(--run)}.visual-markdown[data-v-74596a6c] .milkdown .milkdown-code-block{margin:var(--sp-3) 0;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-sunken);transition:border-color var(--t-fast);padding:0}:is(.visual-markdown[data-v-74596a6c] .milkdown-code-block:has(.mermaid-diagram) .codemirror-host,.visual-markdown[data-v-74596a6c] .milkdown-code-block:has(.mermaid-diagram) .preview-toggle-button,.visual-markdown[data-v-74596a6c] .milkdown-code-block:has(.mermaid-diagram) .preview-divider,.visual-markdown[data-v-74596a6c] .milkdown-code-block:has(.mermaid-diagram) .preview-label){display:none}.visual-markdown[data-v-74596a6c] .milkdown .milkdown-code-block:hover{border-color:var(--line-strong)}.visual-markdown[data-v-74596a6c] .milkdown .milkdown-code-block.selected{border-color:var(--info);outline:none}.visual-markdown[data-v-74596a6c] .milkdown-code-block .tools{min-height:32px;padding:0 var(--sp-2) 0 var(--sp-1);border-bottom:1px solid var(--line);border-radius:var(--r-md) var(--r-md) 0 0;background:var(--bg-2)}.visual-markdown[data-v-74596a6c] .milkdown-code-block .cm-editor{border-radius:0 0 var(--r-md) var(--r-md)}.visual-markdown[data-v-74596a6c] .milkdown-code-block .tools .language-button{padding:2px var(--sp-1) 2px var(--sp-2);border-radius:var(--r-sm);color:var(--muted);font:var(--fs-2xs) var(--mono);letter-spacing:var(--track-label);text-transform:lowercase;opacity:1;background:0 0;margin:0;font-weight:500}.visual-markdown[data-v-74596a6c] .milkdown-code-block .tools .language-button:hover{background:var(--hover);color:var(--text)}.visual-markdown[data-v-74596a6c] .milkdown-code-block .tools .tools-button-group button{padding:2px var(--sp-2);border-radius:var(--r-sm);color:var(--muted);font:var(--fs-2xs) var(--sans);opacity:0;transition:opacity var(--t-fast), background var(--t-fast), color var(--t-fast);background:0 0}.visual-markdown[data-v-74596a6c] .milkdown-code-block .tools .tools-button-group button svg{fill:currentColor}.visual-markdown[data-v-74596a6c] .milkdown-code-block .tools .tools-button-group button:hover,.visual-markdown[data-v-74596a6c] .milkdown-code-block .tools .tools-button-group button:focus-visible{background:var(--hover);color:var(--text);opacity:1}.visual-markdown[data-v-74596a6c] .milkdown-code-block:hover .tools-button-group>button,.visual-markdown[data-v-74596a6c] .milkdown-code-block:focus-within .tools-button-group>button{opacity:1}.visual-markdown[data-v-74596a6c] .milkdown-code-block .cm-editor,.visual-markdown[data-v-74596a6c] .milkdown-code-block .cm-gutters{background:0 0}.visual-markdown[data-v-74596a6c] .milkdown-code-block .list-wrapper{z-index:var(--z-popover)}.visual-markdown[data-v-74596a6c] .milkdown-code-block .cm-scroller{padding:var(--sp-2) 0;line-height:1.6}.visual-markdown[data-v-74596a6c] .milkdown-code-block .cm-content{font:var(--fs-sm) var(--mono)}.visual-markdown.readonly[data-v-74596a6c] .milkdown-code-block .tools .language-button,.visual-markdown.readonly[data-v-74596a6c] .milkdown-code-block .cm-gutters,.visual-markdown.compact.readonly[data-v-74596a6c] .milkdown-code-block .tools{display:none}.visual-markdown.readonly[data-v-74596a6c] .milkdown-code-block .cm-content{padding-left:var(--sp-3)}.visual-markdown[data-v-74596a6c] .milkdown-code-block .cm-gutters{color:var(--faint);font:var(--fs-2xs) var(--mono)}.visual-markdown[data-v-74596a6c] .milkdown-code-block .cm-activeLine,.visual-markdown[data-v-74596a6c] .milkdown-code-block .cm-activeLineGutter{background:var(--hover)}.visual-markdown[data-v-74596a6c] .milkdown-code-block .cm-selectionBackground{background:var(--selection)}.visual-markdown[data-v-74596a6c] .ProseMirror :not(pre)>code{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-2);color:var(--text);font:.9em var(--mono);padding:1px 6px}.visual-markdown.compact[data-v-74596a6c]{height:auto;overflow:visible}.visual-markdown.compact .visual-markdown-root[data-v-74596a6c]{min-height:0}.visual-markdown.compact[data-v-74596a6c] .milkdown{min-height:0;font-size:var(--fs-sm)}.visual-markdown.compact[data-v-74596a6c] .ProseMirror{max-width:none;min-height:0;margin:0;padding:0;line-height:1.6}.visual-markdown.compact[data-v-74596a6c] .ProseMirror h1,.visual-markdown.compact[data-v-74596a6c] .ProseMirror h2{font-size:var(--fs-md);border-bottom:0;padding-bottom:0}.visual-markdown.compact[data-v-74596a6c] .ProseMirror p{font-size:inherit;line-height:1.6}@media (width<=700px),(width<=1050px) and (height<=500px) and (pointer:coarse){.visual-markdown[data-v-74596a6c] .ProseMirror{padding:var(--sp-4) var(--sp-4) var(--sp-6)}.visual-markdown[data-v-74596a6c] .ProseMirror>:first-child{margin-top:0}.visual-markdown[data-v-74596a6c] .ProseMirror blockquote{padding-inline:var(--sp-3)}}