vue-stream-markdown 0.1.4 → 0.1.6

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 (196) hide show
  1. package/README.md +3 -1
  2. package/dist/arrow-left-DiHYz8df.js +25 -0
  3. package/dist/{blockquote-DdEg2gww.js → blockquote-CxA1dQZe.js} +4 -11
  4. package/dist/{button-jFTF378X.js → button-B2ebQt7R.js} +2 -3
  5. package/dist/button-C6zIegam.js +5 -0
  6. package/dist/{code-BxWvKFxG.js → code-CPG6B2Cw.js} +12 -20
  7. package/dist/code-block--1wFjtmu.js +9 -0
  8. package/dist/{code-block-uZcUI59D.js → code-block-I_Yd1Flg.js} +62 -67
  9. package/dist/{composables-Cx0nvyHl.js → composables-DWipZHuF.js} +1119 -840
  10. package/dist/corner-down-left-jxlwq3ox.js +24 -0
  11. package/dist/{delete-BdWzKJCy.js → delete-DQ21z5-F.js} +4 -11
  12. package/dist/dist-CYkm26BF.js +119 -0
  13. package/dist/dropdown-CtWjJiAf.js +5 -0
  14. package/dist/{emphasis-CTuGt1Ok.js → emphasis-BjLkIDQB.js} +4 -11
  15. package/dist/{en-US-Bfc50l3I.js → en-US-K7SXR3gy.js} +8 -1
  16. package/dist/{error-component-Bhl770lu.js → error-component-DSOVrE5J.js} +1 -1
  17. package/dist/error-component-DtcRn_0A.js +4 -0
  18. package/dist/flip-horizontal-CEf7aAdM.js +25 -0
  19. package/dist/footnote-definition-BmS8hchP.js +103 -0
  20. package/dist/footnote-reference-Z2tITeCE.js +86 -0
  21. package/dist/{heading-2vpQQtTH.js → heading-BwBFJB_E.js} +4 -11
  22. package/dist/{html-DL0PcUXX.js → html-DFU0myJP.js} +2 -10
  23. package/dist/image-BLlap3ce.js +242 -0
  24. package/dist/{image-BDtPwitR.js → image-IKvFWz2r.js} +43 -78
  25. package/dist/image-aT9xxnwh.js +8 -0
  26. package/dist/index.css +69 -64
  27. package/dist/index.d.ts +192 -82
  28. package/dist/index.js +291 -65
  29. package/dist/{inline-code-CBoqhfz7.js → inline-code-Bqu84Yyu.js} +2 -10
  30. package/dist/{inline-math-CAqboT7h.js → inline-math-C2Ryxm-K.js} +4 -12
  31. package/dist/{link-C8BSlPhZ.js → link-BXl7E_6o.js} +6 -14
  32. package/dist/{list-BCiFKGaz.js → list-DLcwTZns.js} +4 -11
  33. package/dist/{list-item-p-OLUR_9.js → list-item-H0eYeIdB.js} +4 -11
  34. package/dist/{math-CT1TB2pK.js → math-C-0d5PaJ.js} +4 -12
  35. package/dist/{mermaid-CYrA8rCl.js → mermaid-0x6C2MY5.js} +12 -18
  36. package/dist/modal-BDgfKnFl.js +4 -0
  37. package/dist/modal-CEqU9Ubu.js +94 -0
  38. package/dist/{node-list-CGr_EVtn.js → node-list--v2wbxOo.js} +19 -26
  39. package/dist/node-list-CHvX62Zh.js +4 -0
  40. package/dist/{paragraph-DYjqr_Sa.js → paragraph-DRPfp6DV.js} +4 -11
  41. package/dist/previewers-DsN-cTwd.js +10 -0
  42. package/dist/rotate-ccw-square-5sO65BY9.js +24 -0
  43. package/dist/segmented-DIVDGfR5.js +6 -0
  44. package/dist/{segmented-DBW9ignu.js → segmented-Drf8EBQD.js} +1 -1
  45. package/dist/{shiki-bQYWLdW3.js → shiki-CkwRD3TS.js} +6 -14
  46. package/dist/spin-DWkKEP0G.js +3 -0
  47. package/dist/{strong-CvOjLZiq.js → strong-D6V4fCRG.js} +4 -11
  48. package/dist/table-B2mghd3l.js +3 -0
  49. package/dist/{table-l_3z210v.js → table-DLUgGL5Q.js} +13 -18
  50. package/dist/{text-DuONUqRA.js → text-DoY1TIw3.js} +2 -10
  51. package/dist/{thematic-break-CcNPEI9Y.js → thematic-break-DXDZ5dcO.js} +2 -10
  52. package/dist/tooltip-Bdt9-aQx.js +68 -0
  53. package/dist/tooltip-DQ1-yPia.js +4 -0
  54. package/dist/{vanilla-CFWVwBvD.js → vanilla-BSgZTIo9.js} +1 -1
  55. package/dist/vanilla-DUbuBied.js +4 -0
  56. package/dist/{yaml-DJHrmzSe.js → yaml-3cd5rdJj.js} +3 -11
  57. package/dist/{zh-CN-CL1XGe0H.js → zh-CN-CykTNqF_.js} +9 -2
  58. package/dist/zoom-container-D2DxS8V5.js +6 -0
  59. package/dist/{zoom-container-gjQ0EMyk.js → zoom-container-f44XxzOI.js} +52 -23
  60. package/package.json +9 -10
  61. package/dist/button-D6ccVxGm.js +0 -5
  62. package/dist/code-block-B72JfFy-.js +0 -9
  63. package/dist/dropdown-oiCw8QVq.js +0 -5
  64. package/dist/error-component-8y13-fYG.js +0 -4
  65. package/dist/modal-CuQR21UD.js +0 -71
  66. package/dist/modal-DcpxxDDX.js +0 -3
  67. package/dist/node-list-lgY1wbfQ.js +0 -3
  68. package/dist/previewers-ByaS2Ksa.js +0 -10
  69. package/dist/segmented-B4IEw3wg.js +0 -6
  70. package/dist/spin-Bz4zGBEo.js +0 -3
  71. package/dist/table-CZLbUHiJ.js +0 -3
  72. package/dist/tooltip-3UDC9mw-.js +0 -71
  73. package/dist/tooltip-CAoc_U1X.js +0 -4
  74. package/dist/vanilla-De7W3PpS.js +0 -4
  75. package/dist/zoom-container-DBgGdbJS.js +0 -6
  76. /package/dist/{angular-Chs-UKBr.js → angular-CEQtRU3N.js} +0 -0
  77. /package/dist/{angular-component-Cc_FANXU.js → angular-component-QEWXDi5W.js} +0 -0
  78. /package/dist/{apache-COYnc6xR.js → apache-D1WYHuA2.js} +0 -0
  79. /package/dist/{asciidoc-BabXBDAL.js → asciidoc-BbV_Tvaj.js} +0 -0
  80. /package/dist/{assembly-CDqKhexW.js → assembly-DOdgqSeT.js} +0 -0
  81. /package/dist/{astro-C9kftzFG.js → astro-I7-Zr25r.js} +0 -0
  82. /package/dist/{bash-Ce4pNIkV.js → bash-BC7HOdMh.js} +0 -0
  83. /package/dist/{batch-CHQBRjFL.js → batch-XAv7F3kV.js} +0 -0
  84. /package/dist/{bicep-8jxWtuBF.js → bicep-B9IAZzHb.js} +0 -0
  85. /package/dist/{c-FBUef746.js → c-B3pMu4KG.js} +0 -0
  86. /package/dist/{check-C4xOk8um.js → check-BjAiKMbo.js} +0 -0
  87. /package/dist/{chevron-down-cnOJ4h1g.js → chevron-down-B4lkjpIC.js} +0 -0
  88. /package/dist/{circle-alert-CLX-h5rZ.js → circle-alert-DlAafH7h.js} +0 -0
  89. /package/dist/{clojure-BulUroSy.js → clojure-DwxK-YDX.js} +0 -0
  90. /package/dist/{cmake-CW3vz1Mo.js → cmake-DtnmI6Z6.js} +0 -0
  91. /package/dist/{cobol-CIn3oFju.js → cobol--wWeXL_f.js} +0 -0
  92. /package/dist/{code-D8LSp8rK.js → code-lfRPXNJI.js} +0 -0
  93. /package/dist/{codeowners-CJggXF_b.js → codeowners-Dtwyh-5g.js} +0 -0
  94. /package/dist/{coffeescript-CBrVvzGY.js → coffeescript-BlF7y2QG.js} +0 -0
  95. /package/dist/{copy-Cabve0xf.js → copy-BTFPPhff.js} +0 -0
  96. /package/dist/{cpp-BTKeuyd-.js → cpp-D_TbJeEH.js} +0 -0
  97. /package/dist/{crystal-DyIYvZbm.js → crystal-lJ2ZzJQu.js} +0 -0
  98. /package/dist/{csharp-NqZ1vyF9.js → csharp-D-5hlCJT.js} +0 -0
  99. /package/dist/{css-BpR5Lajb.js → css-Drykp8uH.js} +0 -0
  100. /package/dist/{csv-eCMFnKKK.js → csv-oLjD_o9N.js} +0 -0
  101. /package/dist/{cue-TY97dGOQ.js → cue-BBe_9OA4.js} +0 -0
  102. /package/dist/{d-NftUsdTd.js → d-CPNK2-3G.js} +0 -0
  103. /package/dist/{dart-DJpwZZbk.js → dart-BNaQZJdJ.js} +0 -0
  104. /package/dist/{database-aZwE71Px.js → database-DRAhifbf.js} +0 -0
  105. /package/dist/{diff-CYRzypaU.js → diff-D_vIvULL.js} +0 -0
  106. /package/dist/{docker-CxHBuukH.js → docker-BgJkkqCD.js} +0 -0
  107. /package/dist/{download-Bnn7rtYw.js → download-Bk2mYZyf.js} +0 -0
  108. /package/dist/{elixir-BKSxVc1h.js → elixir-CTx5aScS.js} +0 -0
  109. /package/dist/{elm-DScuAf3X.js → elm-nHy9iRuu.js} +0 -0
  110. /package/dist/{env-CDAKsodl.js → env-CrWzDcwP.js} +0 -0
  111. /package/dist/{erlang-D2M1ZL3m.js → erlang-CxR4-Qdt.js} +0 -0
  112. /package/dist/{eye-CdeX8PhP.js → eye-DpAj1af-.js} +0 -0
  113. /package/dist/{fortran-CORyQ0wt.js → fortran-DhUZYzo3.js} +0 -0
  114. /package/dist/{fsharp-BJz_Jgpl.js → fsharp-DyIvnsyH.js} +0 -0
  115. /package/dist/{git-DgrlTr1E.js → git-D4qjCZtd.js} +0 -0
  116. /package/dist/{gleam-t_xad9Kw.js → gleam-D-ovCBt_.js} +0 -0
  117. /package/dist/{go-Cvlh1xtL.js → go-CEH2y3pJ.js} +0 -0
  118. /package/dist/{graphql-ApIm0mDD.js → graphql-DbV-8_AJ.js} +0 -0
  119. /package/dist/{groovy-CaLnK8PV.js → groovy-B-_VVp4c.js} +0 -0
  120. /package/dist/{haml-MwijEO_6.js → haml-Cnm_v56B.js} +0 -0
  121. /package/dist/{handlebars-CKdUPI9h.js → handlebars-8EEQS0El.js} +0 -0
  122. /package/dist/{haskell-NPOXEnck.js → haskell-cLvKQFrd.js} +0 -0
  123. /package/dist/{haxe-DyKBMsDE.js → haxe-DtCGwrr1.js} +0 -0
  124. /package/dist/{html-CMgES1dE.js → html-C2NHp3i4.js} +0 -0
  125. /package/dist/{http-B9FFNmUr.js → http-DYO1Ugj7.js} +0 -0
  126. /package/dist/{image-CMZAakWu.js → image-DDiNDOKJ.js} +0 -0
  127. /package/dist/{java-iU-L9wJz.js → java-it6UCC5M.js} +0 -0
  128. /package/dist/{javascript-DtnWdTFC.js → javascript-DVxfoa-a.js} +0 -0
  129. /package/dist/{jinja-CoWszo_D.js → jinja-CUKX2CXM.js} +0 -0
  130. /package/dist/{json-C80qKCnh.js → json-O68iFOiu.js} +0 -0
  131. /package/dist/{julia-DG2BCBLx.js → julia-Dq3BwHeZ.js} +0 -0
  132. /package/dist/{kdl-7twRfIlJ.js → kdl-CFVZba8u.js} +0 -0
  133. /package/dist/{kotlin-BjrOgP7R.js → kotlin-BKhxhG0q.js} +0 -0
  134. /package/dist/{latex-DIQfUvG8.js → latex-B3hQqfJO.js} +0 -0
  135. /package/dist/{less-BJ1yEAWt.js → less-Bw2JZJkw.js} +0 -0
  136. /package/dist/{link-DeV4CQOB.js → link-DCaSecEI.js} +0 -0
  137. /package/dist/{liquid-BqKFZ1wQ.js → liquid-BsGDMxjJ.js} +0 -0
  138. /package/dist/{lisp-oekhB2ti.js → lisp-CnrazyOe.js} +0 -0
  139. /package/dist/{log-D1XEqR9q.js → log-BuRjhdbZ.js} +0 -0
  140. /package/dist/{lua-C5Q97-1D.js → lua-CA97s0xX.js} +0 -0
  141. /package/dist/{luau-BT8KwqZ2.js → luau-hq6gk9_N.js} +0 -0
  142. /package/dist/{makefile-B4a0ciG4.js → makefile-mNhrnPWo.js} +0 -0
  143. /package/dist/{markdown-DvNyKsiJ.js → markdown-El6B7b99.js} +0 -0
  144. /package/dist/{marko-BzsIf6bg.js → marko-8nTOMumd.js} +0 -0
  145. /package/dist/{matlab-cMBkmDhQ.js → matlab-DuqengFv.js} +0 -0
  146. /package/dist/{maximize-4PIqBONS.js → maximize-B1-N6kOL.js} +0 -0
  147. /package/dist/{mermaid-8JIH2gkQ.js → mermaid-Byu8TsQE.js} +0 -0
  148. /package/dist/{minimize-BJ8htyDF.js → minimize-CVVLdf2H.js} +0 -0
  149. /package/dist/{nextflow-DNmqU1xg.js → nextflow-DRCOPmGT.js} +0 -0
  150. /package/dist/{nginx-DDfYF_rj.js → nginx-DTgW--wm.js} +0 -0
  151. /package/dist/{nim-D9xEmy4k.js → nim-r-ftp-xj.js} +0 -0
  152. /package/dist/{nix-BV1Deshw.js → nix-BdWPBS1Z.js} +0 -0
  153. /package/dist/{ocaml-BkFn4LL3.js → ocaml-vXi6ujuu.js} +0 -0
  154. /package/dist/{perl-BytUHDE7.js → perl-C_g5vs30.js} +0 -0
  155. /package/dist/{php-BImJJtNM.js → php-C_b0sjdl.js} +0 -0
  156. /package/dist/{postcss-CrZ9_0sT.js → postcss-Bsz3PPjI.js} +0 -0
  157. /package/dist/{powershell-DYSGu7TM.js → powershell-D0kxdwKl.js} +0 -0
  158. /package/dist/{prisma-BhRvcOFY.js → prisma-BocqbK7a.js} +0 -0
  159. /package/dist/{prolog-DuaCKek_.js → prolog-D-zd1rzT.js} +0 -0
  160. /package/dist/{properties-BbIJwuP-.js → properties-Dds-063G.js} +0 -0
  161. /package/dist/{proto-CE0aVW11.js → proto-CzD9trm_.js} +0 -0
  162. /package/dist/{pug-B1-IC-Tc.js → pug-B1V2RxQS.js} +0 -0
  163. /package/dist/{puppet-8nYquiMG.js → puppet-BcnVd0q5.js} +0 -0
  164. /package/dist/{python-DhRyfBrD.js → python-BcZnB7mH.js} +0 -0
  165. /package/dist/{r-Cjje17IA.js → r-CxSFFuvL.js} +0 -0
  166. /package/dist/{racket-Dx0gMnpg.js → racket-DJ_82PRG.js} +0 -0
  167. /package/dist/{razor-DPht_bdD.js → razor-D7IkXHVQ.js} +0 -0
  168. /package/dist/{ruby-B8RxtCzI.js → ruby-Cidk52Rl.js} +0 -0
  169. /package/dist/{rust-Cjtli6yf.js → rust-DJvcpkbm.js} +0 -0
  170. /package/dist/{sass-Dv3DMzjs.js → sass-DTFDeixE.js} +0 -0
  171. /package/dist/{scala-B7bZGKXq.js → scala-GlHhGi5O.js} +0 -0
  172. /package/dist/{scheme-B2PsEdVN.js → scheme-rNcj5mL9.js} +0 -0
  173. /package/dist/{shader-BZzu3zGr.js → shader-Df9eByRK.js} +0 -0
  174. /package/dist/{shiki-token-renderer-D164wC7Y.js → shiki-token-renderer-BMveKuYt.js} +0 -0
  175. /package/dist/{solidity-CLieFYpL.js → solidity-CfuYjRuT.js} +0 -0
  176. /package/dist/{spin-Ds5W7qC_.js → spin-D4Oi_m7j.js} +0 -0
  177. /package/dist/{stata-C0yUiO47.js → stata-BB5c_hbh.js} +0 -0
  178. /package/dist/{svelte-rtF4yNGL.js → svelte-2ISqxu6B.js} +0 -0
  179. /package/dist/{swift-CzvYoIM0.js → swift-wpybyudn.js} +0 -0
  180. /package/dist/{table-4ec9FVB_.js → table-iNA4la0w.js} +0 -0
  181. /package/dist/{terraform-CD_BZGb-.js → terraform-CLzhaCaX.js} +0 -0
  182. /package/dist/{text-D1-vbZ7l.js → text-C0mKr3tC.js} +0 -0
  183. /package/dist/{toml-C6jUF0Xd.js → toml-DImd1uev.js} +0 -0
  184. /package/dist/{twig-C4dfP84J.js → twig-DEBVmtOq.js} +0 -0
  185. /package/dist/{typescript-Bk-pp-cK.js → typescript-Xo5tgeOd.js} +0 -0
  186. /package/dist/{typst-DPCpaVSH.js → typst-_Ui0vNYP.js} +0 -0
  187. /package/dist/{v-nRGMJ2Ki.js → v-Ch6vEAHG.js} +0 -0
  188. /package/dist/{vala-B78bKcY0.js → vala-Ds_Ad1cC.js} +0 -0
  189. /package/dist/{verilog-CRpkl76S.js → verilog-CUqRomTC.js} +0 -0
  190. /package/dist/{vim-DpKnut7b.js → vim-BFUPh6oM.js} +0 -0
  191. /package/dist/{vue-D5eadhjo.js → vue-DzgIlbJ2.js} +0 -0
  192. /package/dist/{xml-Dvx5F-hl.js → xml-CmbQxaqc.js} +0 -0
  193. /package/dist/{yaml-n1S8nAOh.js → yaml-BhwCoLnZ.js} +0 -0
  194. /package/dist/{zig-R-iFzxfW.js → zig-Bmrmp8vo.js} +0 -0
  195. /package/dist/{zoomIn-CEukuh3x.js → zoomIn-CCKcyIEv.js} +0 -0
  196. /package/dist/{zoomOut-qlzQyQli.js → zoomOut-BrSwLQZ_.js} +0 -0
@@ -1,10 +1,6 @@
1
- import { computed, defineAsyncComponent, inject, onBeforeUnmount, provide, ref, toValue, unref, watch, watchEffect } from "vue";
2
- import { useStyleTag } from "@vueuse/core";
3
- import { setDefaultProps } from "vue-tippy";
4
- import "tippy.js/dist/tippy.css";
5
- import "tippy.js/themes/light.css";
6
- import "tippy.js/dist/border.css";
7
- import "tippy.js/dist/svg-arrow.css";
1
+ import { computed, defineAsyncComponent, inject, nextTick, onBeforeUnmount, provide, ref, toValue, unref, watch, watchEffect } from "vue";
2
+ import { autoUpdate, flip, offset, shift, useFloating } from "@floating-ui/vue";
3
+ import { useEventListener, useStyleTag } from "@vueuse/core";
8
4
 
9
5
  //#region src/composables/use-code-options.ts
10
6
  function useCodeOptions(options) {
@@ -12,7 +8,11 @@ function useCodeOptions(options) {
12
8
  const codeOptions = computed(() => unref(options.codeOptions));
13
9
  const languageCodeOptions = computed(() => {
14
10
  var _codeOptions$value;
15
- return ((_codeOptions$value = codeOptions.value) === null || _codeOptions$value === void 0 || (_codeOptions$value = _codeOptions$value.language) === null || _codeOptions$value === void 0 ? void 0 : _codeOptions$value[language.value]) ?? codeOptions.value;
11
+ const specificOptions = (_codeOptions$value = codeOptions.value) === null || _codeOptions$value === void 0 || (_codeOptions$value = _codeOptions$value.language) === null || _codeOptions$value === void 0 ? void 0 : _codeOptions$value[language.value];
12
+ return {
13
+ ...codeOptions.value,
14
+ ...specificOptions ?? {}
15
+ };
16
16
  });
17
17
  return {
18
18
  languageCodeOptions,
@@ -36,8 +36,11 @@ function useCodeOptions(options) {
36
36
  const CONTEXT_KEY = Symbol("stream-markdown-context");
37
37
  function useContext() {
38
38
  const context = injectContext();
39
+ const mode = computed(() => unref(context.mode) ?? "streaming");
39
40
  const icons = computed(() => unref(context.icons) ?? {});
40
41
  const isDark = computed(() => unref(context.isDark) ?? false);
42
+ const enableAnimate = computed(() => unref(context.enableAnimate));
43
+ const parsedNodes = computed(() => unref(context.parsedNodes) ?? []);
41
44
  function provideContext(ctx) {
42
45
  provide(CONTEXT_KEY, {
43
46
  ...injectContext(),
@@ -51,8 +54,11 @@ function useContext() {
51
54
  context,
52
55
  provideContext,
53
56
  injectContext,
57
+ mode,
54
58
  icons,
55
59
  isDark,
60
+ enableAnimate,
61
+ parsedNodes,
56
62
  get getContainer() {
57
63
  return context.getContainer || (() => void 0);
58
64
  },
@@ -95,560 +101,163 @@ function useControls(options) {
95
101
  }
96
102
 
97
103
  //#endregion
98
- //#region src/constants/code.ts
99
- const DEFAULT_LIGHT_THEME = "github-light";
100
- const DEFAULT_DARK_THEME = "github-dark";
101
- const LANGUAGE_ALIAS = {};
102
- const LANGUAGE_EXTENSIONS = {
103
- "1c-query": "1cq",
104
- "1c": "1c",
105
- "abap": "abap",
106
- "actionscript-3": "as",
107
- "ada": "ada",
108
- "adoc": "adoc",
109
- "angular-html": "html",
110
- "angular-ts": "ts",
111
- "apache": "conf",
112
- "apex": "cls",
113
- "apl": "apl",
114
- "applescript": "applescript",
115
- "ara": "ara",
116
- "asciidoc": "adoc",
117
- "asm": "asm",
118
- "astro": "astro",
119
- "awk": "awk",
120
- "ballerina": "bal",
121
- "bash": "sh",
122
- "bat": "bat",
123
- "batch": "bat",
124
- "be": "be",
125
- "beancount": "beancount",
126
- "berry": "berry",
127
- "bibtex": "bib",
128
- "bicep": "bicep",
129
- "blade": "blade.php",
130
- "bsl": "bsl",
131
- "c": "c",
132
- "c#": "cs",
133
- "c++": "cpp",
134
- "cadence": "cdc",
135
- "cairo": "cairo",
136
- "cdc": "cdc",
137
- "clarity": "clar",
138
- "clj": "clj",
139
- "clojure": "clj",
140
- "closure-templates": "soy",
141
- "cmake": "cmake",
142
- "cmd": "cmd",
143
- "cobol": "cob",
144
- "codeowners": "CODEOWNERS",
145
- "codeql": "ql",
146
- "coffee": "coffee",
147
- "coffeescript": "coffee",
148
- "common-lisp": "lisp",
149
- "console": "sh",
150
- "coq": "v",
151
- "cpp": "cpp",
152
- "cql": "cql",
153
- "crystal": "cr",
154
- "cs": "cs",
155
- "csharp": "cs",
156
- "css": "css",
157
- "csv": "csv",
158
- "cue": "cue",
159
- "cypher": "cql",
160
- "d": "d",
161
- "dart": "dart",
162
- "dax": "dax",
163
- "desktop": "desktop",
164
- "diff": "diff",
165
- "docker": "dockerfile",
166
- "dockerfile": "dockerfile",
167
- "dotenv": "env",
168
- "dream-maker": "dm",
169
- "edge": "edge",
170
- "elisp": "el",
171
- "elixir": "ex",
172
- "elm": "elm",
173
- "emacs-lisp": "el",
174
- "erb": "erb",
175
- "erl": "erl",
176
- "erlang": "erl",
177
- "f": "f",
178
- "f#": "fs",
179
- "f03": "f03",
180
- "f08": "f08",
181
- "f18": "f18",
182
- "f77": "f77",
183
- "f90": "f90",
184
- "f95": "f95",
185
- "fennel": "fnl",
186
- "fish": "fish",
187
- "fluent": "ftl",
188
- "for": "for",
189
- "fortran-fixed-form": "f",
190
- "fortran-free-form": "f90",
191
- "fs": "fs",
192
- "fsharp": "fs",
193
- "fsl": "fsl",
194
- "ftl": "ftl",
195
- "gdresource": "tres",
196
- "gdscript": "gd",
197
- "gdshader": "gdshader",
198
- "genie": "gs",
199
- "gherkin": "feature",
200
- "git-commit": "gitcommit",
201
- "git-rebase": "gitrebase",
202
- "gjs": "js",
203
- "gleam": "gleam",
204
- "glimmer-js": "js",
205
- "glimmer-ts": "ts",
206
- "glsl": "glsl",
207
- "gnuplot": "plt",
208
- "go": "go",
209
- "gql": "gql",
210
- "graphql": "graphql",
211
- "groovy": "groovy",
212
- "gts": "gts",
213
- "hack": "hack",
214
- "haml": "haml",
215
- "handlebars": "hbs",
216
- "haskell": "hs",
217
- "haxe": "hx",
218
- "hbs": "hbs",
219
- "hcl": "hcl",
220
- "hjson": "hjson",
221
- "hlsl": "hlsl",
222
- "hs": "hs",
223
- "html-derivative": "html",
224
- "html": "html",
225
- "http": "http",
226
- "hxml": "hxml",
227
- "hy": "hy",
228
- "imba": "imba",
229
- "ini": "ini",
230
- "jade": "jade",
231
- "java": "java",
232
- "javascript": "js",
233
- "jinja": "jinja",
234
- "jison": "jison",
235
- "jl": "jl",
236
- "js": "js",
237
- "json": "json",
238
- "json5": "json5",
239
- "jsonc": "jsonc",
240
- "jsonl": "jsonl",
241
- "jsonnet": "jsonnet",
242
- "jssm": "jssm",
243
- "jsx": "jsx",
244
- "julia": "jl",
245
- "kotlin": "kt",
246
- "kql": "kql",
247
- "kt": "kt",
248
- "kts": "kts",
249
- "kusto": "kql",
250
- "latex": "tex",
251
- "lean": "lean",
252
- "lean4": "lean",
253
- "less": "less",
254
- "liquid": "liquid",
255
- "lisp": "lisp",
256
- "lit": "lit",
257
- "llvm": "ll",
258
- "log": "log",
259
- "logo": "logo",
260
- "lua": "lua",
261
- "luau": "luau",
262
- "make": "mak",
263
- "makefile": "mak",
264
- "markdown": "md",
265
- "marko": "marko",
266
- "matlab": "m",
267
- "md": "md",
268
- "mdc": "mdc",
269
- "mdx": "mdx",
270
- "mediawiki": "wiki",
271
- "mermaid": "mmd",
272
- "mips": "s",
273
- "mipsasm": "s",
274
- "mmd": "mmd",
275
- "mojo": "mojo",
276
- "move": "move",
277
- "nar": "nar",
278
- "narrat": "narrat",
279
- "nextflow": "nf",
280
- "nf": "nf",
281
- "nginx": "conf",
282
- "nim": "nim",
283
- "nix": "nix",
284
- "nu": "nu",
285
- "nushell": "nu",
286
- "objc": "m",
287
- "objective-c": "m",
288
- "objective-cpp": "mm",
289
- "ocaml": "ml",
290
- "pascal": "pas",
291
- "perl": "pl",
292
- "perl6": "p6",
293
- "php": "php",
294
- "plsql": "pls",
295
- "po": "po",
296
- "polar": "polar",
297
- "postcss": "pcss",
298
- "pot": "pot",
299
- "potx": "potx",
300
- "powerquery": "pq",
301
- "powershell": "ps1",
302
- "prisma": "prisma",
303
- "prolog": "pl",
304
- "properties": "properties",
305
- "proto": "proto",
306
- "protobuf": "proto",
307
- "ps": "ps",
308
- "ps1": "ps1",
309
- "pug": "pug",
310
- "puppet": "pp",
311
- "purescript": "purs",
312
- "py": "py",
313
- "python": "py",
314
- "ql": "ql",
315
- "qml": "qml",
316
- "qmldir": "qmldir",
317
- "qss": "qss",
318
- "r": "r",
319
- "racket": "rkt",
320
- "raku": "raku",
321
- "razor": "cshtml",
322
- "rb": "rb",
323
- "reg": "reg",
324
- "regex": "regex",
325
- "regexp": "regexp",
326
- "rel": "rel",
327
- "riscv": "s",
328
- "rs": "rs",
329
- "rst": "rst",
330
- "ruby": "rb",
331
- "rust": "rs",
332
- "sas": "sas",
333
- "sass": "sass",
334
- "scala": "scala",
335
- "scheme": "scm",
336
- "scss": "scss",
337
- "sdbl": "sdbl",
338
- "sh": "sh",
339
- "shader": "shader",
340
- "shaderlab": "shader",
341
- "shell": "sh",
342
- "shellscript": "sh",
343
- "shellsession": "sh",
344
- "smalltalk": "st",
345
- "solidity": "sol",
346
- "soy": "soy",
347
- "sparql": "rq",
348
- "spl": "spl",
349
- "splunk": "spl",
350
- "sql": "sql",
351
- "ssh-config": "config",
352
- "stata": "do",
353
- "styl": "styl",
354
- "stylus": "styl",
355
- "svelte": "svelte",
356
- "swift": "swift",
357
- "system-verilog": "sv",
358
- "systemd": "service",
359
- "talon": "talon",
360
- "talonscript": "talon",
361
- "tasl": "tasl",
362
- "tcl": "tcl",
363
- "templ": "templ",
364
- "terraform": "tf",
365
- "tex": "tex",
366
- "tf": "tf",
367
- "tfvars": "tfvars",
368
- "toml": "toml",
369
- "ts-tags": "ts",
370
- "ts": "ts",
371
- "tsp": "tsp",
372
- "tsv": "tsv",
373
- "tsx": "tsx",
374
- "turtle": "ttl",
375
- "twig": "twig",
376
- "typ": "typ",
377
- "typescript": "ts",
378
- "typespec": "tsp",
379
- "typst": "typ",
380
- "v": "v",
381
- "vala": "vala",
382
- "vb": "vb",
383
- "verilog": "v",
384
- "vhdl": "vhdl",
385
- "vim": "vim",
386
- "viml": "vim",
387
- "vimscript": "vim",
388
- "vue-html": "html",
389
- "vue-vine": "vine",
390
- "vue": "vue",
391
- "vy": "vy",
392
- "vyper": "vy",
393
- "wasm": "wasm",
394
- "wenyan": "wy",
395
- "wgsl": "wgsl",
396
- "wiki": "wiki",
397
- "wikitext": "wiki",
398
- "wit": "wit",
399
- "wl": "wl",
400
- "wolfram": "wl",
401
- "xml": "xml",
402
- "xsl": "xsl",
403
- "yaml": "yaml",
404
- "yml": "yml",
405
- "zenscript": "zs",
406
- "zig": "zig",
407
- "zsh": "zsh",
408
- "文言": "wy"
409
- };
410
- const LANGUAGE_ICONS = {
411
- "adoc": defineAsyncComponent(() => import("./asciidoc-BabXBDAL.js")),
412
- "angular-html": defineAsyncComponent(() => import("./angular-Chs-UKBr.js")),
413
- "angular-ts": defineAsyncComponent(() => import("./angular-component-Cc_FANXU.js")),
414
- "apache": defineAsyncComponent(() => import("./apache-COYnc6xR.js")),
415
- "asciidoc": defineAsyncComponent(() => import("./asciidoc-BabXBDAL.js")),
416
- "asm": defineAsyncComponent(() => import("./assembly-CDqKhexW.js")),
417
- "astro": defineAsyncComponent(() => import("./astro-C9kftzFG.js")),
418
- "bash": defineAsyncComponent(() => import("./bash-Ce4pNIkV.js")),
419
- "bat": defineAsyncComponent(() => import("./batch-CHQBRjFL.js")),
420
- "batch": defineAsyncComponent(() => import("./batch-CHQBRjFL.js")),
421
- "bicep": defineAsyncComponent(() => import("./bicep-8jxWtuBF.js")),
422
- "c": defineAsyncComponent(() => import("./c-FBUef746.js")),
423
- "c#": defineAsyncComponent(() => import("./csharp-NqZ1vyF9.js")),
424
- "c++": defineAsyncComponent(() => import("./cpp-BTKeuyd-.js")),
425
- "cjs": defineAsyncComponent(() => import("./javascript-DtnWdTFC.js")),
426
- "clj": defineAsyncComponent(() => import("./clojure-BulUroSy.js")),
427
- "clojure": defineAsyncComponent(() => import("./clojure-BulUroSy.js")),
428
- "cmake": defineAsyncComponent(() => import("./cmake-CW3vz1Mo.js")),
429
- "cmd": defineAsyncComponent(() => import("./batch-CHQBRjFL.js")),
430
- "cobol": defineAsyncComponent(() => import("./cobol-CIn3oFju.js")),
431
- "codeowners": defineAsyncComponent(() => import("./codeowners-CJggXF_b.js")),
432
- "coffee": defineAsyncComponent(() => import("./coffeescript-CBrVvzGY.js")),
433
- "coffeescript": defineAsyncComponent(() => import("./coffeescript-CBrVvzGY.js")),
434
- "cpp": defineAsyncComponent(() => import("./cpp-BTKeuyd-.js")),
435
- "crystal": defineAsyncComponent(() => import("./crystal-DyIYvZbm.js")),
436
- "cs": defineAsyncComponent(() => import("./csharp-NqZ1vyF9.js")),
437
- "csharp": defineAsyncComponent(() => import("./csharp-NqZ1vyF9.js")),
438
- "css": defineAsyncComponent(() => import("./css-BpR5Lajb.js")),
439
- "csv": defineAsyncComponent(() => import("./csv-eCMFnKKK.js")),
440
- "cts": defineAsyncComponent(() => import("./typescript-Bk-pp-cK.js")),
441
- "cue": defineAsyncComponent(() => import("./cue-TY97dGOQ.js")),
442
- "d": defineAsyncComponent(() => import("./d-NftUsdTd.js")),
443
- "dart": defineAsyncComponent(() => import("./dart-DJpwZZbk.js")),
444
- "diff": defineAsyncComponent(() => import("./diff-CYRzypaU.js")),
445
- "docker": defineAsyncComponent(() => import("./docker-CxHBuukH.js")),
446
- "dockerfile": defineAsyncComponent(() => import("./docker-CxHBuukH.js")),
447
- "dotenv": defineAsyncComponent(() => import("./env-CDAKsodl.js")),
448
- "elixir": defineAsyncComponent(() => import("./elixir-BKSxVc1h.js")),
449
- "elm": defineAsyncComponent(() => import("./elm-DScuAf3X.js")),
450
- "erb": defineAsyncComponent(() => import("./ruby-B8RxtCzI.js")),
451
- "erl": defineAsyncComponent(() => import("./erlang-D2M1ZL3m.js")),
452
- "erlang": defineAsyncComponent(() => import("./erlang-D2M1ZL3m.js")),
453
- "f": defineAsyncComponent(() => import("./fortran-CORyQ0wt.js")),
454
- "f#": defineAsyncComponent(() => import("./fsharp-BJz_Jgpl.js")),
455
- "f03": defineAsyncComponent(() => import("./fortran-CORyQ0wt.js")),
456
- "f08": defineAsyncComponent(() => import("./fortran-CORyQ0wt.js")),
457
- "f18": defineAsyncComponent(() => import("./fortran-CORyQ0wt.js")),
458
- "f77": defineAsyncComponent(() => import("./fortran-CORyQ0wt.js")),
459
- "f90": defineAsyncComponent(() => import("./fortran-CORyQ0wt.js")),
460
- "f95": defineAsyncComponent(() => import("./fortran-CORyQ0wt.js")),
461
- "for": defineAsyncComponent(() => import("./fortran-CORyQ0wt.js")),
462
- "fortran-fixed-form": defineAsyncComponent(() => import("./fortran-CORyQ0wt.js")),
463
- "fortran-free-form": defineAsyncComponent(() => import("./fortran-CORyQ0wt.js")),
464
- "fs": defineAsyncComponent(() => import("./fsharp-BJz_Jgpl.js")),
465
- "fsharp": defineAsyncComponent(() => import("./fsharp-BJz_Jgpl.js")),
466
- "git-commit": defineAsyncComponent(() => import("./git-DgrlTr1E.js")),
467
- "git-rebase": defineAsyncComponent(() => import("./git-DgrlTr1E.js")),
468
- "gleam": defineAsyncComponent(() => import("./gleam-t_xad9Kw.js")),
469
- "go": defineAsyncComponent(() => import("./go-Cvlh1xtL.js")),
470
- "gql": defineAsyncComponent(() => import("./graphql-ApIm0mDD.js")),
471
- "graphql": defineAsyncComponent(() => import("./graphql-ApIm0mDD.js")),
472
- "groovy": defineAsyncComponent(() => import("./groovy-CaLnK8PV.js")),
473
- "haml": defineAsyncComponent(() => import("./haml-MwijEO_6.js")),
474
- "handlebars": defineAsyncComponent(() => import("./handlebars-CKdUPI9h.js")),
475
- "haskell": defineAsyncComponent(() => import("./haskell-NPOXEnck.js")),
476
- "haxe": defineAsyncComponent(() => import("./haxe-DyKBMsDE.js")),
477
- "hbs": defineAsyncComponent(() => import("./handlebars-CKdUPI9h.js")),
478
- "hs": defineAsyncComponent(() => import("./haskell-NPOXEnck.js")),
479
- "html": defineAsyncComponent(() => import("./html-CMgES1dE.js")),
480
- "http": defineAsyncComponent(() => import("./http-B9FFNmUr.js")),
481
- "jade": defineAsyncComponent(() => import("./pug-B1-IC-Tc.js")),
482
- "java": defineAsyncComponent(() => import("./java-iU-L9wJz.js")),
483
- "javascript": defineAsyncComponent(() => import("./javascript-DtnWdTFC.js")),
484
- "jinja": defineAsyncComponent(() => import("./jinja-CoWszo_D.js")),
485
- "jl": defineAsyncComponent(() => import("./julia-DG2BCBLx.js")),
486
- "js": defineAsyncComponent(() => import("./javascript-DtnWdTFC.js")),
487
- "json": defineAsyncComponent(() => import("./json-C80qKCnh.js")),
488
- "json5": defineAsyncComponent(() => import("./json-C80qKCnh.js")),
489
- "jsonc": defineAsyncComponent(() => import("./json-C80qKCnh.js")),
490
- "jsonl": defineAsyncComponent(() => import("./json-C80qKCnh.js")),
491
- "jsx": defineAsyncComponent(() => import("./javascript-DtnWdTFC.js")),
492
- "julia": defineAsyncComponent(() => import("./julia-DG2BCBLx.js")),
493
- "kdl": defineAsyncComponent(() => import("./kdl-7twRfIlJ.js")),
494
- "kotlin": defineAsyncComponent(() => import("./kotlin-BjrOgP7R.js")),
495
- "kt": defineAsyncComponent(() => import("./kotlin-BjrOgP7R.js")),
496
- "kts": defineAsyncComponent(() => import("./kotlin-BjrOgP7R.js")),
497
- "latex": defineAsyncComponent(() => import("./latex-DIQfUvG8.js")),
498
- "less": defineAsyncComponent(() => import("./less-BJ1yEAWt.js")),
499
- "liquid": defineAsyncComponent(() => import("./liquid-BqKFZ1wQ.js")),
500
- "lisp": defineAsyncComponent(() => import("./lisp-oekhB2ti.js")),
501
- "log": defineAsyncComponent(() => import("./log-D1XEqR9q.js")),
502
- "lua": defineAsyncComponent(() => import("./lua-C5Q97-1D.js")),
503
- "luau": defineAsyncComponent(() => import("./luau-BT8KwqZ2.js")),
504
- "make": defineAsyncComponent(() => import("./makefile-B4a0ciG4.js")),
505
- "makefile": defineAsyncComponent(() => import("./makefile-B4a0ciG4.js")),
506
- "markdown": defineAsyncComponent(() => import("./markdown-DvNyKsiJ.js")),
507
- "marko": defineAsyncComponent(() => import("./marko-BzsIf6bg.js")),
508
- "matlab": defineAsyncComponent(() => import("./matlab-cMBkmDhQ.js")),
509
- "md": defineAsyncComponent(() => import("./markdown-DvNyKsiJ.js")),
510
- "mdc": defineAsyncComponent(() => import("./markdown-DvNyKsiJ.js")),
511
- "mdx": defineAsyncComponent(() => import("./markdown-DvNyKsiJ.js")),
512
- "mermaid": defineAsyncComponent(() => import("./mermaid-8JIH2gkQ.js")),
513
- "mjs": defineAsyncComponent(() => import("./javascript-DtnWdTFC.js")),
514
- "mmd": defineAsyncComponent(() => import("./mermaid-8JIH2gkQ.js")),
515
- "mts": defineAsyncComponent(() => import("./typescript-Bk-pp-cK.js")),
516
- "nextflow": defineAsyncComponent(() => import("./nextflow-DNmqU1xg.js")),
517
- "nf": defineAsyncComponent(() => import("./nextflow-DNmqU1xg.js")),
518
- "nginx": defineAsyncComponent(() => import("./nginx-DDfYF_rj.js")),
519
- "nim": defineAsyncComponent(() => import("./nim-D9xEmy4k.js")),
520
- "nix": defineAsyncComponent(() => import("./nix-BV1Deshw.js")),
521
- "ocaml": defineAsyncComponent(() => import("./ocaml-BkFn4LL3.js")),
522
- "perl": defineAsyncComponent(() => import("./perl-BytUHDE7.js")),
523
- "php": defineAsyncComponent(() => import("./php-BImJJtNM.js")),
524
- "postcss": defineAsyncComponent(() => import("./postcss-CrZ9_0sT.js")),
525
- "powershell": defineAsyncComponent(() => import("./powershell-DYSGu7TM.js")),
526
- "prisma": defineAsyncComponent(() => import("./prisma-BhRvcOFY.js")),
527
- "prolog": defineAsyncComponent(() => import("./prolog-DuaCKek_.js")),
528
- "properties": defineAsyncComponent(() => import("./properties-BbIJwuP-.js")),
529
- "proto": defineAsyncComponent(() => import("./proto-CE0aVW11.js")),
530
- "protobuf": defineAsyncComponent(() => import("./proto-CE0aVW11.js")),
531
- "ps": defineAsyncComponent(() => import("./powershell-DYSGu7TM.js")),
532
- "ps1": defineAsyncComponent(() => import("./powershell-DYSGu7TM.js")),
533
- "pug": defineAsyncComponent(() => import("./pug-B1-IC-Tc.js")),
534
- "puppet": defineAsyncComponent(() => import("./puppet-8nYquiMG.js")),
535
- "py": defineAsyncComponent(() => import("./python-DhRyfBrD.js")),
536
- "python": defineAsyncComponent(() => import("./python-DhRyfBrD.js")),
537
- "r": defineAsyncComponent(() => import("./r-Cjje17IA.js")),
538
- "racket": defineAsyncComponent(() => import("./racket-Dx0gMnpg.js")),
539
- "razor": defineAsyncComponent(() => import("./razor-DPht_bdD.js")),
540
- "rb": defineAsyncComponent(() => import("./ruby-B8RxtCzI.js")),
541
- "rs": defineAsyncComponent(() => import("./rust-Cjtli6yf.js")),
542
- "ruby": defineAsyncComponent(() => import("./ruby-B8RxtCzI.js")),
543
- "rust": defineAsyncComponent(() => import("./rust-Cjtli6yf.js")),
544
- "sass": defineAsyncComponent(() => import("./sass-Dv3DMzjs.js")),
545
- "scala": defineAsyncComponent(() => import("./scala-B7bZGKXq.js")),
546
- "scheme": defineAsyncComponent(() => import("./scheme-B2PsEdVN.js")),
547
- "scss": defineAsyncComponent(() => import("./sass-Dv3DMzjs.js")),
548
- "sh": defineAsyncComponent(() => import("./bash-Ce4pNIkV.js")),
549
- "shader": defineAsyncComponent(() => import("./shader-BZzu3zGr.js")),
550
- "shell": defineAsyncComponent(() => import("./bash-Ce4pNIkV.js")),
551
- "shellscript": defineAsyncComponent(() => import("./bash-Ce4pNIkV.js")),
552
- "solidity": defineAsyncComponent(() => import("./solidity-CLieFYpL.js")),
553
- "sql": defineAsyncComponent(() => import("./database-aZwE71Px.js")),
554
- "stata": defineAsyncComponent(() => import("./stata-C0yUiO47.js")),
555
- "styl": defineAsyncComponent(() => import("./sass-Dv3DMzjs.js")),
556
- "stylus": defineAsyncComponent(() => import("./sass-Dv3DMzjs.js")),
557
- "svelte": defineAsyncComponent(() => import("./svelte-rtF4yNGL.js")),
558
- "swift": defineAsyncComponent(() => import("./swift-CzvYoIM0.js")),
559
- "terraform": defineAsyncComponent(() => import("./terraform-CD_BZGb-.js")),
560
- "tex": defineAsyncComponent(() => import("./latex-DIQfUvG8.js")),
561
- "text": defineAsyncComponent(() => import("./text-D1-vbZ7l.js")),
562
- "tf": defineAsyncComponent(() => import("./terraform-CD_BZGb-.js")),
563
- "tfvars": defineAsyncComponent(() => import("./terraform-CD_BZGb-.js")),
564
- "toml": defineAsyncComponent(() => import("./toml-C6jUF0Xd.js")),
565
- "ts": defineAsyncComponent(() => import("./typescript-Bk-pp-cK.js")),
566
- "tsv": defineAsyncComponent(() => import("./csv-eCMFnKKK.js")),
567
- "tsx": defineAsyncComponent(() => import("./typescript-Bk-pp-cK.js")),
568
- "twig": defineAsyncComponent(() => import("./twig-C4dfP84J.js")),
569
- "typ": defineAsyncComponent(() => import("./typst-DPCpaVSH.js")),
570
- "typescript": defineAsyncComponent(() => import("./typescript-Bk-pp-cK.js")),
571
- "typst": defineAsyncComponent(() => import("./typst-DPCpaVSH.js")),
572
- "v": defineAsyncComponent(() => import("./v-nRGMJ2Ki.js")),
573
- "vala": defineAsyncComponent(() => import("./vala-B78bKcY0.js")),
574
- "verilog": defineAsyncComponent(() => import("./verilog-CRpkl76S.js")),
575
- "vim": defineAsyncComponent(() => import("./vim-DpKnut7b.js")),
576
- "viml": defineAsyncComponent(() => import("./vim-DpKnut7b.js")),
577
- "vimscript": defineAsyncComponent(() => import("./vim-DpKnut7b.js")),
578
- "vue-html": defineAsyncComponent(() => import("./vue-D5eadhjo.js")),
579
- "vue-vine": defineAsyncComponent(() => import("./vue-D5eadhjo.js")),
580
- "vue": defineAsyncComponent(() => import("./vue-D5eadhjo.js")),
581
- "xml": defineAsyncComponent(() => import("./xml-Dvx5F-hl.js")),
582
- "xsl": defineAsyncComponent(() => import("./xml-Dvx5F-hl.js")),
583
- "yaml": defineAsyncComponent(() => import("./yaml-n1S8nAOh.js")),
584
- "yml": defineAsyncComponent(() => import("./yaml-n1S8nAOh.js")),
585
- "zig": defineAsyncComponent(() => import("./zig-R-iFzxfW.js")),
586
- "zsh": defineAsyncComponent(() => import("./bash-Ce4pNIkV.js"))
587
- };
588
-
589
- //#endregion
590
- //#region src/constants/harden.ts
591
- const DEFAULT_HARDEN_OPTIONS = {
592
- allowedLinkPrefixes: ["*"],
593
- allowedImagePrefixes: ["*"],
594
- allowedProtocols: ["*"],
595
- allowDataImages: true
596
- };
104
+ //#region src/composables/use-floating-element.ts
105
+ function useFloatingElement(options) {
106
+ const trigger = computed(() => unref(options.trigger) ?? "hover");
107
+ const placement = computed(() => unref(options.placement) ?? "top");
108
+ const delay = computed(() => unref(options.delay) ?? [100, 100]);
109
+ const referenceEl = ref();
110
+ const floatingEl = ref();
111
+ let showTimer = null;
112
+ let hideTimer = null;
113
+ const open = ref(false);
114
+ const parentEl = computed(() => {
115
+ var _referenceEl$value;
116
+ return ((_referenceEl$value = referenceEl.value) === null || _referenceEl$value === void 0 ? void 0 : _referenceEl$value.parentElement) || null;
117
+ });
118
+ const appendTo = computed(() => {
119
+ var _options$getContainer;
120
+ const target = ((_options$getContainer = options.getContainer) === null || _options$getContainer === void 0 ? void 0 : _options$getContainer.call(options)) || parentEl.value;
121
+ if (target instanceof HTMLElement && !document.body.contains(target)) return "body";
122
+ return target || "body";
123
+ });
124
+ const { x, y, strategy, update } = useFloating(referenceEl, floatingEl, {
125
+ placement,
126
+ middleware: [
127
+ offset(6),
128
+ flip(),
129
+ shift({ padding: 5 })
130
+ ],
131
+ whileElementsMounted: autoUpdate
132
+ });
133
+ const floatingStyle = computed(() => ({
134
+ position: strategy.value,
135
+ top: `${y.value ?? 0}px`,
136
+ left: `${x.value ?? 0}px`
137
+ }));
138
+ function show() {
139
+ clearTimers();
140
+ const { show: showDelay } = getDelay();
141
+ showTimer = window.setTimeout(() => {
142
+ open.value = true;
143
+ update();
144
+ }, showDelay);
145
+ }
146
+ function hide() {
147
+ clearTimers();
148
+ const { hide: hideDelay } = getDelay();
149
+ hideTimer = window.setTimeout(() => {
150
+ open.value = false;
151
+ }, hideDelay);
152
+ }
153
+ function toggle() {
154
+ open.value = !open.value;
155
+ update();
156
+ }
157
+ function onMouseEnter() {
158
+ if (trigger.value === "hover") show();
159
+ }
160
+ function onMouseLeave() {
161
+ if (trigger.value === "hover") hide();
162
+ }
163
+ function onClick() {
164
+ if (trigger.value === "click") toggle();
165
+ }
166
+ function getDelay() {
167
+ if (Array.isArray(delay.value)) return {
168
+ show: delay.value[0] ?? 0,
169
+ hide: delay.value[1] ?? 0
170
+ };
171
+ return {
172
+ show: delay.value ?? 0,
173
+ hide: delay.value ?? 0
174
+ };
175
+ }
176
+ function handleClickOutside(event) {
177
+ var _referenceEl$value2, _floatingEl$value;
178
+ if (!open.value) return;
179
+ const target = event.target;
180
+ if (!(((_referenceEl$value2 = referenceEl.value) === null || _referenceEl$value2 === void 0 ? void 0 : _referenceEl$value2.contains(target)) || ((_floatingEl$value = floatingEl.value) === null || _floatingEl$value === void 0 ? void 0 : _floatingEl$value.contains(target)))) open.value = false;
181
+ }
182
+ function onFloatingEnter() {
183
+ if (hideTimer) {
184
+ clearTimeout(hideTimer);
185
+ hideTimer = null;
186
+ }
187
+ }
188
+ function onFloatingLeave() {
189
+ const { hide: hideDelay } = getDelay();
190
+ if (trigger.value === "hover") hideTimer = window.setTimeout(() => {
191
+ hide();
192
+ }, hideDelay);
193
+ }
194
+ function clearTimers() {
195
+ if (showTimer) {
196
+ clearTimeout(showTimer);
197
+ showTimer = null;
198
+ }
199
+ if (hideTimer) {
200
+ clearTimeout(hideTimer);
201
+ hideTimer = null;
202
+ }
203
+ }
204
+ useEventListener(document, "click", handleClickOutside);
205
+ return {
206
+ referenceEl,
207
+ floatingEl,
208
+ open,
209
+ appendTo,
210
+ floatingStyle,
211
+ show,
212
+ hide,
213
+ onMouseEnter,
214
+ onMouseLeave,
215
+ onClick,
216
+ onFloatingEnter,
217
+ onFloatingLeave
218
+ };
219
+ }
597
220
 
598
221
  //#endregion
599
- //#region src/constants/icons.ts
600
- const ICONS = {
601
- check: defineAsyncComponent(() => import("./check-C4xOk8um.js")),
602
- code: defineAsyncComponent(() => import("./code-D8LSp8rK.js")),
603
- collapse: defineAsyncComponent(() => import("./chevron-down-cnOJ4h1g.js")),
604
- copy: defineAsyncComponent(() => import("./copy-Cabve0xf.js")),
605
- download: defineAsyncComponent(() => import("./download-Bnn7rtYw.js")),
606
- error: defineAsyncComponent(() => import("./circle-alert-CLX-h5rZ.js")),
607
- image: defineAsyncComponent(() => import("./image-CMZAakWu.js")),
608
- link: defineAsyncComponent(() => import("./link-DeV4CQOB.js")),
609
- maximize: defineAsyncComponent(() => import("./maximize-4PIqBONS.js")),
610
- mermaid: defineAsyncComponent(() => import("./mermaid-8JIH2gkQ.js")),
611
- minimize: defineAsyncComponent(() => import("./minimize-BJ8htyDF.js")),
612
- preview: defineAsyncComponent(() => import("./eye-CdeX8PhP.js")),
613
- zoomIn: defineAsyncComponent(() => import("./zoomIn-CEukuh3x.js")),
614
- zoomOut: defineAsyncComponent(() => import("./zoomOut-qlzQyQli.js"))
222
+ //#region src/locales/index.ts
223
+ const SUPPORT_LANGUAGES = ["en-US", "zh-CN"];
224
+ const localesGlob = {
225
+ "./en-US.json": () => import("./en-US-K7SXR3gy.js"),
226
+ "./zh-CN.json": () => import("./zh-CN-CykTNqF_.js")
615
227
  };
228
+ const localeMessages = ref();
229
+ const currentLocale = ref("en-US");
230
+ async function loadLocaleMessages(language) {
231
+ const load = async (language$1) => {
232
+ localeMessages.value = await localesGlob[`./${language$1}.json`]();
233
+ currentLocale.value = language$1;
234
+ };
235
+ try {
236
+ if (typeof language === "string") await load(language);
237
+ else localeMessages.value = language;
238
+ } catch {
239
+ await load("en-US");
240
+ }
241
+ }
242
+ loadLocaleMessages("en-US");
616
243
 
617
244
  //#endregion
618
- //#region src/constants/theme.ts
619
- const SHADCN_SCHEMAS = [
620
- "background",
621
- "foreground",
622
- "card",
623
- "card-foreground",
624
- "popover",
625
- "popover-foreground",
626
- "primary",
627
- "primary-foreground",
628
- "secondary",
629
- "secondary-foreground",
630
- "muted",
631
- "muted-foreground",
632
- "accent",
633
- "accent-foreground",
634
- "destructive",
635
- "border",
636
- "input",
637
- "ring",
638
- "chart-1",
639
- "chart-2",
640
- "chart-3",
641
- "chart-4",
642
- "chart-5",
643
- "sidebar",
644
- "sidebar-foreground",
645
- "sidebar-primary",
646
- "sidebar-primary-foreground",
647
- "sidebar-accent",
648
- "sidebar-accent-foreground",
649
- "sidebar-border",
650
- "sidebar-ring"
651
- ];
245
+ //#region src/composables/use-i18n.ts
246
+ function useI18n() {
247
+ function getI18nText(key) {
248
+ try {
249
+ const messages = localeMessages.value;
250
+ if (!messages) return key;
251
+ const result = key.split(".").reduce((obj, k) => {
252
+ if (obj && typeof obj === "object" && k in obj) return obj[k];
253
+ }, messages);
254
+ return typeof result === "string" ? result : key;
255
+ } catch {
256
+ return key;
257
+ }
258
+ }
259
+ return { t: getI18nText };
260
+ }
652
261
 
653
262
  //#endregion
654
263
  //#region src/utils/harden.ts
@@ -734,6 +343,7 @@ function transformUrl(url, allowedPrefixes, defaultOrigin, allowDataImages = fal
734
343
 
735
344
  //#endregion
736
345
  //#region src/utils/helper.ts
346
+ const fileExtensionPattern = /\.[^/.]+$/;
737
347
  function flow(fns) {
738
348
  return (input) => fns.reduce((acc, fn) => fn(acc), input);
739
349
  }
@@ -748,6 +358,25 @@ function save(filename, content, mimeType) {
748
358
  document.body.removeChild(a);
749
359
  URL.revokeObjectURL(url);
750
360
  }
361
+ async function saveImage(url, alt) {
362
+ const blob = await (await fetch(url)).blob();
363
+ const originalFilename = new URL(url, window.location.origin).pathname.split("/").pop() || "";
364
+ const extension = originalFilename.split(".").pop();
365
+ const hasExtension = originalFilename.includes(".") && extension !== void 0 && extension.length <= 4;
366
+ let filename = "";
367
+ if (hasExtension) filename = originalFilename;
368
+ else {
369
+ const mimeType = blob.type;
370
+ let fileExtension = "png";
371
+ if (mimeType.includes("jpeg") || mimeType.includes("jpg")) fileExtension = "jpg";
372
+ else if (mimeType.includes("png")) fileExtension = "png";
373
+ else if (mimeType.includes("svg")) fileExtension = "svg";
374
+ else if (mimeType.includes("gif")) fileExtension = "gif";
375
+ else if (mimeType.includes("webp")) fileExtension = "webp";
376
+ filename = `${(alt || originalFilename || "image").replace(fileExtensionPattern, "")}.${fileExtension}`;
377
+ }
378
+ save(filename, blob, blob.type);
379
+ }
751
380
  function svgToPngBlob(svgString, options) {
752
381
  const scale = (options === null || options === void 0 ? void 0 : options.scale) ?? 5;
753
382
  return new Promise((resolve, reject) => {
@@ -969,73 +598,6 @@ function tableDataToMarkdown(data) {
969
598
  return markdownRows.join("\n");
970
599
  }
971
600
 
972
- //#endregion
973
- //#region src/composables/use-harden-sanitizers.ts
974
- function useHardenSanitizers(options) {
975
- const hardenOptions = computed(() => unref(options.hardenOptions) ?? DEFAULT_HARDEN_OPTIONS);
976
- const loading = computed(() => unref(options.loading) ?? false);
977
- const allowedLinkPrefixes = computed(() => hardenOptions.value.allowedLinkPrefixes ?? ["*"]);
978
- const allowedImagePrefixes = computed(() => hardenOptions.value.allowedImagePrefixes ?? ["*"]);
979
- const allowedProtocols = computed(() => hardenOptions.value.allowedProtocols ?? ["*"]);
980
- const allowDataImages = computed(() => hardenOptions.value.allowDataImages ?? true);
981
- const defaultOrigin = computed(() => hardenOptions.value.defaultOrigin ?? "");
982
- const isImage = computed(() => unref(options.isImage) ?? false);
983
- const url = computed(() => unref(options.url) ?? "");
984
- const transformedUrl = computed(() => transformHardenUrl(url.value));
985
- const isHardenUrl = computed(() => transformedUrl.value === null);
986
- function transformHardenUrl(url$1) {
987
- if (!url$1 || loading.value) return url$1;
988
- return transformUrl(url$1, isImage.value ? allowedImagePrefixes.value : allowedLinkPrefixes.value, defaultOrigin.value, allowDataImages.value, isImage.value, allowedProtocols.value);
989
- }
990
- return {
991
- hardenOptions,
992
- transformHardenUrl,
993
- transformedUrl,
994
- isHardenUrl
995
- };
996
- }
997
-
998
- //#endregion
999
- //#region src/locales/index.ts
1000
- const SUPPORT_LANGUAGES = ["en-US", "zh-CN"];
1001
- const localesGlob = {
1002
- "./en-US.json": () => import("./en-US-Bfc50l3I.js"),
1003
- "./zh-CN.json": () => import("./zh-CN-CL1XGe0H.js")
1004
- };
1005
- const localeMessages = ref();
1006
- const currentLocale = ref("en-US");
1007
- async function loadLocaleMessages(language) {
1008
- const load = async (language$1) => {
1009
- localeMessages.value = await localesGlob[`./${language$1}.json`]();
1010
- currentLocale.value = language$1;
1011
- };
1012
- try {
1013
- if (typeof language === "string") await load(language);
1014
- else localeMessages.value = language;
1015
- } catch {
1016
- await load("en-US");
1017
- }
1018
- }
1019
- loadLocaleMessages("en-US");
1020
-
1021
- //#endregion
1022
- //#region src/composables/use-i18n.ts
1023
- function useI18n() {
1024
- function getI18nText(key) {
1025
- try {
1026
- const messages = localeMessages.value;
1027
- if (!messages) return key;
1028
- const result = key.split(".").reduce((obj, k) => {
1029
- if (obj && typeof obj === "object" && k in obj) return obj[k];
1030
- }, messages);
1031
- return typeof result === "string" ? result : key;
1032
- } catch {
1033
- return key;
1034
- }
1035
- }
1036
- return { t: getI18nText };
1037
- }
1038
-
1039
601
  //#endregion
1040
602
  //#region src/composables/use-katex.ts
1041
603
  let existingKatex = false;
@@ -1218,200 +780,935 @@ var Queue = class {
1218
780
  while (_classPrivateFieldGet2(_head, this)) yield this.dequeue();
1219
781
  }
1220
782
  };
1221
- /**
1222
- * Throttle execution of a function. Especially useful for rate limiting
1223
- * execution of handlers on events like resize and scroll.
1224
- *
1225
- * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)
1226
- * are most useful.
1227
- * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,
1228
- * as-is, to `callback` when the throttled-function is executed.
1229
- * @param {object} [options] - An object to configure options.
1230
- * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds
1231
- * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed
1232
- * one final time after the last throttled-function call. (After the throttled-function has not been called for
1233
- * `delay` milliseconds, the internal counter is reset).
1234
- * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback
1235
- * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that
1236
- * callback will never executed if both noLeading = true and noTrailing = true.
1237
- * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is
1238
- * false (at end), schedule `callback` to execute after `delay` ms.
1239
- *
1240
- * @returns {Function} A new, throttled, function.
1241
- */
1242
- function throttle$1(delay, callback, options) {
1243
- var _ref = options || {}, _ref$noTrailing = _ref.noTrailing, noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing, _ref$noLeading = _ref.noLeading, noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading, _ref$debounceMode = _ref.debounceMode, debounceMode = _ref$debounceMode === void 0 ? void 0 : _ref$debounceMode;
1244
- var timeoutID;
1245
- var cancelled = false;
1246
- var lastExec = 0;
1247
- function clearExistingTimeout() {
1248
- if (timeoutID) clearTimeout(timeoutID);
1249
- }
1250
- function cancel(options$1) {
1251
- var _ref2$upcomingOnly = (options$1 || {}).upcomingOnly, upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;
1252
- clearExistingTimeout();
1253
- cancelled = !upcomingOnly;
1254
- }
1255
- function wrapper() {
1256
- for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) arguments_[_key] = arguments[_key];
1257
- var self = this;
1258
- var elapsed = Date.now() - lastExec;
1259
- if (cancelled) return;
1260
- function exec() {
1261
- lastExec = Date.now();
1262
- callback.apply(self, arguments_);
1263
- }
1264
- function clear() {
1265
- timeoutID = void 0;
1266
- }
1267
- if (!noLeading && debounceMode && !timeoutID) exec();
1268
- clearExistingTimeout();
1269
- if (debounceMode === void 0 && elapsed > delay) if (noLeading) {
1270
- lastExec = Date.now();
1271
- if (!noTrailing) timeoutID = setTimeout(debounceMode ? clear : exec, delay);
1272
- } else exec();
1273
- else if (noTrailing !== true) timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === void 0 ? delay - elapsed : delay);
1274
- }
1275
- wrapper.cancel = cancel;
1276
- return wrapper;
1277
- }
1278
- function throttle(...args) {
1279
- return throttle$1(...args);
1280
- }
783
+ /**
784
+ * Throttle execution of a function. Especially useful for rate limiting
785
+ * execution of handlers on events like resize and scroll.
786
+ *
787
+ * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)
788
+ * are most useful.
789
+ * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,
790
+ * as-is, to `callback` when the throttled-function is executed.
791
+ * @param {object} [options] - An object to configure options.
792
+ * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds
793
+ * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed
794
+ * one final time after the last throttled-function call. (After the throttled-function has not been called for
795
+ * `delay` milliseconds, the internal counter is reset).
796
+ * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback
797
+ * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that
798
+ * callback will never executed if both noLeading = true and noTrailing = true.
799
+ * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is
800
+ * false (at end), schedule `callback` to execute after `delay` ms.
801
+ *
802
+ * @returns {Function} A new, throttled, function.
803
+ */
804
+ function throttle$1(delay, callback, options) {
805
+ var _ref = options || {}, _ref$noTrailing = _ref.noTrailing, noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing, _ref$noLeading = _ref.noLeading, noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading, _ref$debounceMode = _ref.debounceMode, debounceMode = _ref$debounceMode === void 0 ? void 0 : _ref$debounceMode;
806
+ var timeoutID;
807
+ var cancelled = false;
808
+ var lastExec = 0;
809
+ function clearExistingTimeout() {
810
+ if (timeoutID) clearTimeout(timeoutID);
811
+ }
812
+ function cancel(options$1) {
813
+ var _ref2$upcomingOnly = (options$1 || {}).upcomingOnly, upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;
814
+ clearExistingTimeout();
815
+ cancelled = !upcomingOnly;
816
+ }
817
+ function wrapper() {
818
+ for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) arguments_[_key] = arguments[_key];
819
+ var self = this;
820
+ var elapsed = Date.now() - lastExec;
821
+ if (cancelled) return;
822
+ function exec() {
823
+ lastExec = Date.now();
824
+ callback.apply(self, arguments_);
825
+ }
826
+ function clear() {
827
+ timeoutID = void 0;
828
+ }
829
+ if (!noLeading && debounceMode && !timeoutID) exec();
830
+ clearExistingTimeout();
831
+ if (debounceMode === void 0 && elapsed > delay) if (noLeading) {
832
+ lastExec = Date.now();
833
+ if (!noTrailing) timeoutID = setTimeout(debounceMode ? clear : exec, delay);
834
+ } else exec();
835
+ else if (noTrailing !== true) timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === void 0 ? delay - elapsed : delay);
836
+ }
837
+ wrapper.cancel = cancel;
838
+ return wrapper;
839
+ }
840
+ function throttle(...args) {
841
+ return throttle$1(...args);
842
+ }
843
+
844
+ //#endregion
845
+ //#region src/composables/use-math-renderer.ts
846
+ function useMathRenderer(options) {
847
+ const { installed, render: renderKatex } = useKatex();
848
+ const renderFlag = ref(false);
849
+ const renderingCode = ref("");
850
+ const html = ref("");
851
+ const errorMessage = ref("");
852
+ const node = computed(() => unref(options.node));
853
+ const katexOptions = computed(() => {
854
+ var _unref;
855
+ return ((_unref = unref(options.katexOptions)) === null || _unref === void 0 ? void 0 : _unref.config) ?? {};
856
+ });
857
+ const throttleTime = computed(() => unref(options.throttle) ?? 150);
858
+ const code = computed(() => node.value.value);
859
+ const loading = computed(() => node.value.loading);
860
+ const isDisplayMode = computed(() => node.value.type !== "inlineMath");
861
+ const error = computed(() => {
862
+ if (!installed.value) return true;
863
+ if (errorMessage.value && renderFlag.value && renderingCode.value === code.value) return true;
864
+ return false;
865
+ });
866
+ watch(() => [code.value, loading.value], throttle(throttleTime, async () => {
867
+ const { html: data, error: error$1 } = await renderKatex(code.value, {
868
+ ...katexOptions,
869
+ displayMode: isDisplayMode.value
870
+ });
871
+ renderFlag.value = true;
872
+ if (data) {
873
+ html.value = data;
874
+ errorMessage.value = "";
875
+ return;
876
+ }
877
+ if (error$1) errorMessage.value = error$1;
878
+ else errorMessage.value = "";
879
+ }), { immediate: true });
880
+ return {
881
+ html,
882
+ error,
883
+ errorMessage
884
+ };
885
+ }
886
+
887
+ //#endregion
888
+ //#region src/composables/use-medium-zoom.ts
889
+ function useMediumZoom(options) {
890
+ const margin = computed(() => unref(options.margin) ?? 0);
891
+ const elementRef = ref();
892
+ const clonedElementRef = ref();
893
+ const zoomElementRef = ref();
894
+ const isAnimating = ref(false);
895
+ const showClonedElement = ref(false);
896
+ const initialTransform = ref("");
897
+ const targetTransform = ref("");
898
+ const elementStyle = computed(() => ({ opacity: showClonedElement.value ? 0 : 1 }));
899
+ function cloneElement() {
900
+ const original = elementRef.value;
901
+ if (!original) return;
902
+ const cloned = original.cloneNode(true);
903
+ const rect = original.getBoundingClientRect();
904
+ cloned.style.position = "fixed";
905
+ cloned.style.top = `${rect.top}px`;
906
+ cloned.style.left = `${rect.left}px`;
907
+ cloned.style.width = `${rect.width}px`;
908
+ cloned.style.height = `${rect.height}px`;
909
+ cloned.style.margin = "0";
910
+ cloned.style.padding = "0";
911
+ cloned.style.pointerEvents = "none";
912
+ cloned.style.zIndex = "10000";
913
+ cloned.style.willChange = "transform";
914
+ cloned.style.transformOrigin = "top left";
915
+ if (original instanceof HTMLImageElement && original.currentSrc) cloned.src = original.currentSrc;
916
+ return cloned;
917
+ }
918
+ function calculateTransforms() {
919
+ const original = elementRef.value;
920
+ if (!original || !clonedElementRef.value) return;
921
+ const rect = original.getBoundingClientRect();
922
+ const viewportWidth = window.innerWidth;
923
+ const viewportHeight = window.innerHeight;
924
+ const naturalWidth = original.naturalWidth || rect.width;
925
+ const naturalHeight = original.naturalHeight || rect.height;
926
+ const maxWidth = viewportWidth - margin.value * 2;
927
+ const maxHeight = viewportHeight - margin.value * 2;
928
+ const scaleX = Math.min(maxWidth / rect.width, naturalWidth / rect.width);
929
+ const scaleY = Math.min(maxHeight / rect.height, naturalHeight / rect.height);
930
+ const scale = Math.min(scaleX, scaleY, 1);
931
+ const targetX = (viewportWidth - rect.width * scale) / 2;
932
+ const targetY = (viewportHeight - rect.height * scale) / 2;
933
+ const translateX = targetX - rect.left;
934
+ const translateY = targetY - rect.top;
935
+ initialTransform.value = `translate3d(0, 0, 0) scale(1)`;
936
+ targetTransform.value = `translate3d(${translateX}px, ${translateY}px, 0) scale(${scale})`;
937
+ }
938
+ async function zoomIn() {
939
+ var _clonedElementRef$val, _options$open;
940
+ const el = elementRef.value;
941
+ if (!el) return;
942
+ const cloned = cloneElement();
943
+ if (!cloned) return;
944
+ el.style.visibility = "hidden";
945
+ document.body.appendChild(cloned);
946
+ clonedElementRef.value = cloned;
947
+ showClonedElement.value = true;
948
+ await nextTick();
949
+ calculateTransforms();
950
+ if (clonedElementRef.value) {
951
+ clonedElementRef.value.style.transform = initialTransform.value;
952
+ clonedElementRef.value.style.transition = "none";
953
+ }
954
+ (_clonedElementRef$val = clonedElementRef.value) === null || _clonedElementRef$val === void 0 || _clonedElementRef$val.offsetHeight;
955
+ await nextTick();
956
+ isAnimating.value = true;
957
+ if (clonedElementRef.value) {
958
+ clonedElementRef.value.style.transition = "transform 0.3s cubic-bezier(0.2, 0, 0.2, 1)";
959
+ clonedElementRef.value.style.transform = targetTransform.value;
960
+ }
961
+ (_options$open = options.open) === null || _options$open === void 0 || _options$open.call(options);
962
+ const handleAnimationEnd = () => {
963
+ isAnimating.value = false;
964
+ if (clonedElementRef.value) clonedElementRef.value.style.opacity = "0";
965
+ showClonedElement.value = false;
966
+ cloned.removeEventListener("transitionend", handleAnimationEnd);
967
+ };
968
+ cloned.addEventListener("transitionend", handleAnimationEnd, { once: true });
969
+ }
970
+ async function zoomOut() {
971
+ if (!clonedElementRef.value) {
972
+ var _options$close;
973
+ (_options$close = options.close) === null || _options$close === void 0 || _options$close.call(options);
974
+ return;
975
+ }
976
+ await nextTick();
977
+ showClonedElement.value = true;
978
+ if (clonedElementRef.value) clonedElementRef.value.style.opacity = "1";
979
+ await nextTick();
980
+ if (!clonedElementRef.value) return;
981
+ const el = elementRef.value;
982
+ const zoomEl = zoomElementRef.value;
983
+ if (!el || !zoomEl) return;
984
+ const originalRect = el.getBoundingClientRect();
985
+ const zoomRect = zoomEl.getBoundingClientRect();
986
+ const cloned = clonedElementRef.value;
987
+ const currentTransform = window.getComputedStyle(zoomEl).transform || "none";
988
+ const currentCenterX = zoomRect.left + zoomRect.width / 2;
989
+ const currentCenterY = zoomRect.top + zoomRect.height / 2;
990
+ const targetCenterX = originalRect.left + originalRect.width / 2;
991
+ const targetCenterY = originalRect.top + originalRect.height / 2;
992
+ const scale = Math.min(originalRect.width / zoomRect.width, originalRect.height / zoomRect.height);
993
+ cloned.style.top = `${zoomRect.top}px`;
994
+ cloned.style.left = `${zoomRect.left}px`;
995
+ cloned.style.width = `${zoomRect.width}px`;
996
+ cloned.style.height = `${zoomRect.height}px`;
997
+ cloned.style.transform = currentTransform !== "none" ? currentTransform : "translate3d(0, 0, 0) scale(1)";
998
+ cloned.style.transformOrigin = "center center";
999
+ cloned.style.transition = "none";
1000
+ cloned.offsetHeight;
1001
+ await nextTick();
1002
+ isAnimating.value = true;
1003
+ const translateX = targetCenterX - currentCenterX;
1004
+ const translateY = targetCenterY - currentCenterY;
1005
+ cloned.style.transition = "transform 0.3s cubic-bezier(0.2, 0, 0.2, 1)";
1006
+ if (currentTransform !== "none") try {
1007
+ const inverseMatrix = new DOMMatrix(currentTransform).inverse();
1008
+ const transformedPoint = new DOMPoint(translateX, translateY).matrixTransform(inverseMatrix);
1009
+ cloned.style.transform = `${currentTransform} translate3d(${transformedPoint.x}px, ${transformedPoint.y}px, 0) scale(${scale})`;
1010
+ } catch {
1011
+ cloned.style.transform = `${currentTransform} translate3d(${translateX}px, ${translateY}px, 0) scale(${scale})`;
1012
+ }
1013
+ else cloned.style.transform = `translate3d(${translateX}px, ${translateY}px, 0) scale(${scale})`;
1014
+ const handleAnimationEnd = () => {
1015
+ var _options$close2;
1016
+ const cloned$1 = clonedElementRef.value;
1017
+ if (cloned$1 && cloned$1.parentNode) cloned$1.parentNode.removeChild(cloned$1);
1018
+ clonedElementRef.value = void 0;
1019
+ if (elementRef.value) elementRef.value.style.visibility = "visible";
1020
+ (_options$close2 = options.close) === null || _options$close2 === void 0 || _options$close2.call(options);
1021
+ isAnimating.value = false;
1022
+ showClonedElement.value = false;
1023
+ };
1024
+ cloned.addEventListener("transitionend", handleAnimationEnd, { once: true });
1025
+ }
1026
+ return {
1027
+ isAnimating,
1028
+ elementStyle,
1029
+ elementRef,
1030
+ zoomElementRef,
1031
+ zoomIn,
1032
+ zoomOut
1033
+ };
1034
+ }
1035
+
1036
+ //#endregion
1037
+ //#region src/composables/use-mermaid.ts
1038
+ let mermaid = null;
1039
+ function useMermaid(options) {
1040
+ const installed = ref(false);
1041
+ const mermaidConfig = computed(() => {
1042
+ var _unref;
1043
+ return ((_unref = unref(options === null || options === void 0 ? void 0 : options.mermaidOptions)) === null || _unref === void 0 ? void 0 : _unref.config) ?? {};
1044
+ });
1045
+ const mermaidTheme = computed(() => {
1046
+ var _unref2;
1047
+ return ((_unref2 = unref(options === null || options === void 0 ? void 0 : options.mermaidOptions)) === null || _unref2 === void 0 ? void 0 : _unref2.theme) ?? ["neutral", "dark"];
1048
+ });
1049
+ const isDark = computed(() => unref(options === null || options === void 0 ? void 0 : options.isDark) ?? false);
1050
+ const lightTheme = computed(() => mermaidTheme.value[0] ?? "neutral");
1051
+ const darkTheme = computed(() => mermaidTheme.value[1] ?? "dark");
1052
+ const theme = computed(() => isDark.value ? darkTheme.value : lightTheme.value);
1053
+ const chart = ref("");
1054
+ async function getMermaid() {
1055
+ if (mermaid) return mermaid;
1056
+ const { default: module } = await import("mermaid");
1057
+ module.initialize({
1058
+ startOnLoad: false,
1059
+ securityLevel: "loose",
1060
+ ...mermaidConfig.value
1061
+ });
1062
+ mermaid = module;
1063
+ return mermaid;
1064
+ }
1065
+ function wrapThemeCode(code) {
1066
+ if (code.startsWith("%%{")) return code;
1067
+ return `${`%%{init: {"theme": "${theme.value}"}}%%\n`}${code}`;
1068
+ }
1069
+ async function parseMermaid(code) {
1070
+ try {
1071
+ const mermaid$1 = await getMermaid();
1072
+ chart.value = wrapThemeCode(code);
1073
+ await mermaid$1.parse(chart.value);
1074
+ return true;
1075
+ } catch {
1076
+ return false;
1077
+ }
1078
+ }
1079
+ async function renderMermaid(code) {
1080
+ if (!await parseMermaid(code)) return null;
1081
+ const id = `mermaid-${randomStr()}`;
1082
+ try {
1083
+ return (await (await getMermaid()).render(id, wrapThemeCode(code))).svg;
1084
+ } catch {
1085
+ const element = document.getElementById(`d${id}`);
1086
+ if (element) element.remove();
1087
+ return null;
1088
+ }
1089
+ }
1090
+ async function saveMermaid(format, code = chart.value, onError) {
1091
+ try {
1092
+ const svg = await renderMermaid(code);
1093
+ if (!svg) {
1094
+ onError === null || onError === void 0 || onError(/* @__PURE__ */ new Error("SVG not found. Please wait for the diagram to render."));
1095
+ return;
1096
+ }
1097
+ if (format === "svg") save("diagram.svg", svg, "image/svg+xml");
1098
+ if (format === "png") save("diagram.png", await svgToPngBlob(svg), "image/png");
1099
+ } catch (error) {
1100
+ onError === null || onError === void 0 || onError(error);
1101
+ }
1102
+ }
1103
+ async function preload() {
1104
+ if (mermaid) return;
1105
+ installed.value = await hasMermaid();
1106
+ if (installed.value) await getMermaid();
1107
+ }
1108
+ function dispose() {
1109
+ chart.value = "";
1110
+ }
1111
+ (async () => {
1112
+ if (mermaid) {
1113
+ installed.value = true;
1114
+ return;
1115
+ }
1116
+ installed.value = await hasMermaid();
1117
+ })();
1118
+ return {
1119
+ installed,
1120
+ getMermaid,
1121
+ parseMermaid,
1122
+ renderMermaid,
1123
+ saveMermaid,
1124
+ preload,
1125
+ dispose
1126
+ };
1127
+ }
1128
+
1129
+ //#endregion
1130
+ //#region src/constants/code.ts
1131
+ const DEFAULT_LIGHT_THEME = "github-light";
1132
+ const DEFAULT_DARK_THEME = "github-dark";
1133
+ const LANGUAGE_ALIAS = {};
1134
+ const LANGUAGE_EXTENSIONS = {
1135
+ "1c-query": "1cq",
1136
+ "1c": "1c",
1137
+ "abap": "abap",
1138
+ "actionscript-3": "as",
1139
+ "ada": "ada",
1140
+ "adoc": "adoc",
1141
+ "angular-html": "html",
1142
+ "angular-ts": "ts",
1143
+ "apache": "conf",
1144
+ "apex": "cls",
1145
+ "apl": "apl",
1146
+ "applescript": "applescript",
1147
+ "ara": "ara",
1148
+ "asciidoc": "adoc",
1149
+ "asm": "asm",
1150
+ "astro": "astro",
1151
+ "awk": "awk",
1152
+ "ballerina": "bal",
1153
+ "bash": "sh",
1154
+ "bat": "bat",
1155
+ "batch": "bat",
1156
+ "be": "be",
1157
+ "beancount": "beancount",
1158
+ "berry": "berry",
1159
+ "bibtex": "bib",
1160
+ "bicep": "bicep",
1161
+ "blade": "blade.php",
1162
+ "bsl": "bsl",
1163
+ "c": "c",
1164
+ "c#": "cs",
1165
+ "c++": "cpp",
1166
+ "cadence": "cdc",
1167
+ "cairo": "cairo",
1168
+ "cdc": "cdc",
1169
+ "clarity": "clar",
1170
+ "clj": "clj",
1171
+ "clojure": "clj",
1172
+ "closure-templates": "soy",
1173
+ "cmake": "cmake",
1174
+ "cmd": "cmd",
1175
+ "cobol": "cob",
1176
+ "codeowners": "CODEOWNERS",
1177
+ "codeql": "ql",
1178
+ "coffee": "coffee",
1179
+ "coffeescript": "coffee",
1180
+ "common-lisp": "lisp",
1181
+ "console": "sh",
1182
+ "coq": "v",
1183
+ "cpp": "cpp",
1184
+ "cql": "cql",
1185
+ "crystal": "cr",
1186
+ "cs": "cs",
1187
+ "csharp": "cs",
1188
+ "css": "css",
1189
+ "csv": "csv",
1190
+ "cue": "cue",
1191
+ "cypher": "cql",
1192
+ "d": "d",
1193
+ "dart": "dart",
1194
+ "dax": "dax",
1195
+ "desktop": "desktop",
1196
+ "diff": "diff",
1197
+ "docker": "dockerfile",
1198
+ "dockerfile": "dockerfile",
1199
+ "dotenv": "env",
1200
+ "dream-maker": "dm",
1201
+ "edge": "edge",
1202
+ "elisp": "el",
1203
+ "elixir": "ex",
1204
+ "elm": "elm",
1205
+ "emacs-lisp": "el",
1206
+ "erb": "erb",
1207
+ "erl": "erl",
1208
+ "erlang": "erl",
1209
+ "f": "f",
1210
+ "f#": "fs",
1211
+ "f03": "f03",
1212
+ "f08": "f08",
1213
+ "f18": "f18",
1214
+ "f77": "f77",
1215
+ "f90": "f90",
1216
+ "f95": "f95",
1217
+ "fennel": "fnl",
1218
+ "fish": "fish",
1219
+ "fluent": "ftl",
1220
+ "for": "for",
1221
+ "fortran-fixed-form": "f",
1222
+ "fortran-free-form": "f90",
1223
+ "fs": "fs",
1224
+ "fsharp": "fs",
1225
+ "fsl": "fsl",
1226
+ "ftl": "ftl",
1227
+ "gdresource": "tres",
1228
+ "gdscript": "gd",
1229
+ "gdshader": "gdshader",
1230
+ "genie": "gs",
1231
+ "gherkin": "feature",
1232
+ "git-commit": "gitcommit",
1233
+ "git-rebase": "gitrebase",
1234
+ "gjs": "js",
1235
+ "gleam": "gleam",
1236
+ "glimmer-js": "js",
1237
+ "glimmer-ts": "ts",
1238
+ "glsl": "glsl",
1239
+ "gnuplot": "plt",
1240
+ "go": "go",
1241
+ "gql": "gql",
1242
+ "graphql": "graphql",
1243
+ "groovy": "groovy",
1244
+ "gts": "gts",
1245
+ "hack": "hack",
1246
+ "haml": "haml",
1247
+ "handlebars": "hbs",
1248
+ "haskell": "hs",
1249
+ "haxe": "hx",
1250
+ "hbs": "hbs",
1251
+ "hcl": "hcl",
1252
+ "hjson": "hjson",
1253
+ "hlsl": "hlsl",
1254
+ "hs": "hs",
1255
+ "html-derivative": "html",
1256
+ "html": "html",
1257
+ "http": "http",
1258
+ "hxml": "hxml",
1259
+ "hy": "hy",
1260
+ "imba": "imba",
1261
+ "ini": "ini",
1262
+ "jade": "jade",
1263
+ "java": "java",
1264
+ "javascript": "js",
1265
+ "jinja": "jinja",
1266
+ "jison": "jison",
1267
+ "jl": "jl",
1268
+ "js": "js",
1269
+ "json": "json",
1270
+ "json5": "json5",
1271
+ "jsonc": "jsonc",
1272
+ "jsonl": "jsonl",
1273
+ "jsonnet": "jsonnet",
1274
+ "jssm": "jssm",
1275
+ "jsx": "jsx",
1276
+ "julia": "jl",
1277
+ "kotlin": "kt",
1278
+ "kql": "kql",
1279
+ "kt": "kt",
1280
+ "kts": "kts",
1281
+ "kusto": "kql",
1282
+ "latex": "tex",
1283
+ "lean": "lean",
1284
+ "lean4": "lean",
1285
+ "less": "less",
1286
+ "liquid": "liquid",
1287
+ "lisp": "lisp",
1288
+ "lit": "lit",
1289
+ "llvm": "ll",
1290
+ "log": "log",
1291
+ "logo": "logo",
1292
+ "lua": "lua",
1293
+ "luau": "luau",
1294
+ "make": "mak",
1295
+ "makefile": "mak",
1296
+ "markdown": "md",
1297
+ "marko": "marko",
1298
+ "matlab": "m",
1299
+ "md": "md",
1300
+ "mdc": "mdc",
1301
+ "mdx": "mdx",
1302
+ "mediawiki": "wiki",
1303
+ "mermaid": "mmd",
1304
+ "mips": "s",
1305
+ "mipsasm": "s",
1306
+ "mmd": "mmd",
1307
+ "mojo": "mojo",
1308
+ "move": "move",
1309
+ "nar": "nar",
1310
+ "narrat": "narrat",
1311
+ "nextflow": "nf",
1312
+ "nf": "nf",
1313
+ "nginx": "conf",
1314
+ "nim": "nim",
1315
+ "nix": "nix",
1316
+ "nu": "nu",
1317
+ "nushell": "nu",
1318
+ "objc": "m",
1319
+ "objective-c": "m",
1320
+ "objective-cpp": "mm",
1321
+ "ocaml": "ml",
1322
+ "pascal": "pas",
1323
+ "perl": "pl",
1324
+ "perl6": "p6",
1325
+ "php": "php",
1326
+ "plsql": "pls",
1327
+ "po": "po",
1328
+ "polar": "polar",
1329
+ "postcss": "pcss",
1330
+ "pot": "pot",
1331
+ "potx": "potx",
1332
+ "powerquery": "pq",
1333
+ "powershell": "ps1",
1334
+ "prisma": "prisma",
1335
+ "prolog": "pl",
1336
+ "properties": "properties",
1337
+ "proto": "proto",
1338
+ "protobuf": "proto",
1339
+ "ps": "ps",
1340
+ "ps1": "ps1",
1341
+ "pug": "pug",
1342
+ "puppet": "pp",
1343
+ "purescript": "purs",
1344
+ "py": "py",
1345
+ "python": "py",
1346
+ "ql": "ql",
1347
+ "qml": "qml",
1348
+ "qmldir": "qmldir",
1349
+ "qss": "qss",
1350
+ "r": "r",
1351
+ "racket": "rkt",
1352
+ "raku": "raku",
1353
+ "razor": "cshtml",
1354
+ "rb": "rb",
1355
+ "reg": "reg",
1356
+ "regex": "regex",
1357
+ "regexp": "regexp",
1358
+ "rel": "rel",
1359
+ "riscv": "s",
1360
+ "rs": "rs",
1361
+ "rst": "rst",
1362
+ "ruby": "rb",
1363
+ "rust": "rs",
1364
+ "sas": "sas",
1365
+ "sass": "sass",
1366
+ "scala": "scala",
1367
+ "scheme": "scm",
1368
+ "scss": "scss",
1369
+ "sdbl": "sdbl",
1370
+ "sh": "sh",
1371
+ "shader": "shader",
1372
+ "shaderlab": "shader",
1373
+ "shell": "sh",
1374
+ "shellscript": "sh",
1375
+ "shellsession": "sh",
1376
+ "smalltalk": "st",
1377
+ "solidity": "sol",
1378
+ "soy": "soy",
1379
+ "sparql": "rq",
1380
+ "spl": "spl",
1381
+ "splunk": "spl",
1382
+ "sql": "sql",
1383
+ "ssh-config": "config",
1384
+ "stata": "do",
1385
+ "styl": "styl",
1386
+ "stylus": "styl",
1387
+ "svelte": "svelte",
1388
+ "swift": "swift",
1389
+ "system-verilog": "sv",
1390
+ "systemd": "service",
1391
+ "talon": "talon",
1392
+ "talonscript": "talon",
1393
+ "tasl": "tasl",
1394
+ "tcl": "tcl",
1395
+ "templ": "templ",
1396
+ "terraform": "tf",
1397
+ "tex": "tex",
1398
+ "tf": "tf",
1399
+ "tfvars": "tfvars",
1400
+ "toml": "toml",
1401
+ "ts-tags": "ts",
1402
+ "ts": "ts",
1403
+ "tsp": "tsp",
1404
+ "tsv": "tsv",
1405
+ "tsx": "tsx",
1406
+ "turtle": "ttl",
1407
+ "twig": "twig",
1408
+ "typ": "typ",
1409
+ "typescript": "ts",
1410
+ "typespec": "tsp",
1411
+ "typst": "typ",
1412
+ "v": "v",
1413
+ "vala": "vala",
1414
+ "vb": "vb",
1415
+ "verilog": "v",
1416
+ "vhdl": "vhdl",
1417
+ "vim": "vim",
1418
+ "viml": "vim",
1419
+ "vimscript": "vim",
1420
+ "vue-html": "html",
1421
+ "vue-vine": "vine",
1422
+ "vue": "vue",
1423
+ "vy": "vy",
1424
+ "vyper": "vy",
1425
+ "wasm": "wasm",
1426
+ "wenyan": "wy",
1427
+ "wgsl": "wgsl",
1428
+ "wiki": "wiki",
1429
+ "wikitext": "wiki",
1430
+ "wit": "wit",
1431
+ "wl": "wl",
1432
+ "wolfram": "wl",
1433
+ "xml": "xml",
1434
+ "xsl": "xsl",
1435
+ "yaml": "yaml",
1436
+ "yml": "yml",
1437
+ "zenscript": "zs",
1438
+ "zig": "zig",
1439
+ "zsh": "zsh",
1440
+ "文言": "wy"
1441
+ };
1442
+ const LANGUAGE_ICONS = {
1443
+ "adoc": defineAsyncComponent(() => import("./asciidoc-BbV_Tvaj.js")),
1444
+ "angular-html": defineAsyncComponent(() => import("./angular-CEQtRU3N.js")),
1445
+ "angular-ts": defineAsyncComponent(() => import("./angular-component-QEWXDi5W.js")),
1446
+ "apache": defineAsyncComponent(() => import("./apache-D1WYHuA2.js")),
1447
+ "asciidoc": defineAsyncComponent(() => import("./asciidoc-BbV_Tvaj.js")),
1448
+ "asm": defineAsyncComponent(() => import("./assembly-DOdgqSeT.js")),
1449
+ "astro": defineAsyncComponent(() => import("./astro-I7-Zr25r.js")),
1450
+ "bash": defineAsyncComponent(() => import("./bash-BC7HOdMh.js")),
1451
+ "bat": defineAsyncComponent(() => import("./batch-XAv7F3kV.js")),
1452
+ "batch": defineAsyncComponent(() => import("./batch-XAv7F3kV.js")),
1453
+ "bicep": defineAsyncComponent(() => import("./bicep-B9IAZzHb.js")),
1454
+ "c": defineAsyncComponent(() => import("./c-B3pMu4KG.js")),
1455
+ "c#": defineAsyncComponent(() => import("./csharp-D-5hlCJT.js")),
1456
+ "c++": defineAsyncComponent(() => import("./cpp-D_TbJeEH.js")),
1457
+ "cjs": defineAsyncComponent(() => import("./javascript-DVxfoa-a.js")),
1458
+ "clj": defineAsyncComponent(() => import("./clojure-DwxK-YDX.js")),
1459
+ "clojure": defineAsyncComponent(() => import("./clojure-DwxK-YDX.js")),
1460
+ "cmake": defineAsyncComponent(() => import("./cmake-DtnmI6Z6.js")),
1461
+ "cmd": defineAsyncComponent(() => import("./batch-XAv7F3kV.js")),
1462
+ "cobol": defineAsyncComponent(() => import("./cobol--wWeXL_f.js")),
1463
+ "codeowners": defineAsyncComponent(() => import("./codeowners-Dtwyh-5g.js")),
1464
+ "coffee": defineAsyncComponent(() => import("./coffeescript-BlF7y2QG.js")),
1465
+ "coffeescript": defineAsyncComponent(() => import("./coffeescript-BlF7y2QG.js")),
1466
+ "cpp": defineAsyncComponent(() => import("./cpp-D_TbJeEH.js")),
1467
+ "crystal": defineAsyncComponent(() => import("./crystal-lJ2ZzJQu.js")),
1468
+ "cs": defineAsyncComponent(() => import("./csharp-D-5hlCJT.js")),
1469
+ "csharp": defineAsyncComponent(() => import("./csharp-D-5hlCJT.js")),
1470
+ "css": defineAsyncComponent(() => import("./css-Drykp8uH.js")),
1471
+ "csv": defineAsyncComponent(() => import("./csv-oLjD_o9N.js")),
1472
+ "cts": defineAsyncComponent(() => import("./typescript-Xo5tgeOd.js")),
1473
+ "cue": defineAsyncComponent(() => import("./cue-BBe_9OA4.js")),
1474
+ "d": defineAsyncComponent(() => import("./d-CPNK2-3G.js")),
1475
+ "dart": defineAsyncComponent(() => import("./dart-BNaQZJdJ.js")),
1476
+ "diff": defineAsyncComponent(() => import("./diff-D_vIvULL.js")),
1477
+ "docker": defineAsyncComponent(() => import("./docker-BgJkkqCD.js")),
1478
+ "dockerfile": defineAsyncComponent(() => import("./docker-BgJkkqCD.js")),
1479
+ "dotenv": defineAsyncComponent(() => import("./env-CrWzDcwP.js")),
1480
+ "elixir": defineAsyncComponent(() => import("./elixir-CTx5aScS.js")),
1481
+ "elm": defineAsyncComponent(() => import("./elm-nHy9iRuu.js")),
1482
+ "erb": defineAsyncComponent(() => import("./ruby-Cidk52Rl.js")),
1483
+ "erl": defineAsyncComponent(() => import("./erlang-CxR4-Qdt.js")),
1484
+ "erlang": defineAsyncComponent(() => import("./erlang-CxR4-Qdt.js")),
1485
+ "f": defineAsyncComponent(() => import("./fortran-DhUZYzo3.js")),
1486
+ "f#": defineAsyncComponent(() => import("./fsharp-DyIvnsyH.js")),
1487
+ "f03": defineAsyncComponent(() => import("./fortran-DhUZYzo3.js")),
1488
+ "f08": defineAsyncComponent(() => import("./fortran-DhUZYzo3.js")),
1489
+ "f18": defineAsyncComponent(() => import("./fortran-DhUZYzo3.js")),
1490
+ "f77": defineAsyncComponent(() => import("./fortran-DhUZYzo3.js")),
1491
+ "f90": defineAsyncComponent(() => import("./fortran-DhUZYzo3.js")),
1492
+ "f95": defineAsyncComponent(() => import("./fortran-DhUZYzo3.js")),
1493
+ "for": defineAsyncComponent(() => import("./fortran-DhUZYzo3.js")),
1494
+ "fortran-fixed-form": defineAsyncComponent(() => import("./fortran-DhUZYzo3.js")),
1495
+ "fortran-free-form": defineAsyncComponent(() => import("./fortran-DhUZYzo3.js")),
1496
+ "fs": defineAsyncComponent(() => import("./fsharp-DyIvnsyH.js")),
1497
+ "fsharp": defineAsyncComponent(() => import("./fsharp-DyIvnsyH.js")),
1498
+ "git-commit": defineAsyncComponent(() => import("./git-D4qjCZtd.js")),
1499
+ "git-rebase": defineAsyncComponent(() => import("./git-D4qjCZtd.js")),
1500
+ "gleam": defineAsyncComponent(() => import("./gleam-D-ovCBt_.js")),
1501
+ "go": defineAsyncComponent(() => import("./go-CEH2y3pJ.js")),
1502
+ "gql": defineAsyncComponent(() => import("./graphql-DbV-8_AJ.js")),
1503
+ "graphql": defineAsyncComponent(() => import("./graphql-DbV-8_AJ.js")),
1504
+ "groovy": defineAsyncComponent(() => import("./groovy-B-_VVp4c.js")),
1505
+ "haml": defineAsyncComponent(() => import("./haml-Cnm_v56B.js")),
1506
+ "handlebars": defineAsyncComponent(() => import("./handlebars-8EEQS0El.js")),
1507
+ "haskell": defineAsyncComponent(() => import("./haskell-cLvKQFrd.js")),
1508
+ "haxe": defineAsyncComponent(() => import("./haxe-DtCGwrr1.js")),
1509
+ "hbs": defineAsyncComponent(() => import("./handlebars-8EEQS0El.js")),
1510
+ "hs": defineAsyncComponent(() => import("./haskell-cLvKQFrd.js")),
1511
+ "html": defineAsyncComponent(() => import("./html-C2NHp3i4.js")),
1512
+ "http": defineAsyncComponent(() => import("./http-DYO1Ugj7.js")),
1513
+ "jade": defineAsyncComponent(() => import("./pug-B1V2RxQS.js")),
1514
+ "java": defineAsyncComponent(() => import("./java-it6UCC5M.js")),
1515
+ "javascript": defineAsyncComponent(() => import("./javascript-DVxfoa-a.js")),
1516
+ "jinja": defineAsyncComponent(() => import("./jinja-CUKX2CXM.js")),
1517
+ "jl": defineAsyncComponent(() => import("./julia-Dq3BwHeZ.js")),
1518
+ "js": defineAsyncComponent(() => import("./javascript-DVxfoa-a.js")),
1519
+ "json": defineAsyncComponent(() => import("./json-O68iFOiu.js")),
1520
+ "json5": defineAsyncComponent(() => import("./json-O68iFOiu.js")),
1521
+ "jsonc": defineAsyncComponent(() => import("./json-O68iFOiu.js")),
1522
+ "jsonl": defineAsyncComponent(() => import("./json-O68iFOiu.js")),
1523
+ "jsx": defineAsyncComponent(() => import("./javascript-DVxfoa-a.js")),
1524
+ "julia": defineAsyncComponent(() => import("./julia-Dq3BwHeZ.js")),
1525
+ "kdl": defineAsyncComponent(() => import("./kdl-CFVZba8u.js")),
1526
+ "kotlin": defineAsyncComponent(() => import("./kotlin-BKhxhG0q.js")),
1527
+ "kt": defineAsyncComponent(() => import("./kotlin-BKhxhG0q.js")),
1528
+ "kts": defineAsyncComponent(() => import("./kotlin-BKhxhG0q.js")),
1529
+ "latex": defineAsyncComponent(() => import("./latex-B3hQqfJO.js")),
1530
+ "less": defineAsyncComponent(() => import("./less-Bw2JZJkw.js")),
1531
+ "liquid": defineAsyncComponent(() => import("./liquid-BsGDMxjJ.js")),
1532
+ "lisp": defineAsyncComponent(() => import("./lisp-CnrazyOe.js")),
1533
+ "log": defineAsyncComponent(() => import("./log-BuRjhdbZ.js")),
1534
+ "lua": defineAsyncComponent(() => import("./lua-CA97s0xX.js")),
1535
+ "luau": defineAsyncComponent(() => import("./luau-hq6gk9_N.js")),
1536
+ "make": defineAsyncComponent(() => import("./makefile-mNhrnPWo.js")),
1537
+ "makefile": defineAsyncComponent(() => import("./makefile-mNhrnPWo.js")),
1538
+ "markdown": defineAsyncComponent(() => import("./markdown-El6B7b99.js")),
1539
+ "marko": defineAsyncComponent(() => import("./marko-8nTOMumd.js")),
1540
+ "matlab": defineAsyncComponent(() => import("./matlab-DuqengFv.js")),
1541
+ "md": defineAsyncComponent(() => import("./markdown-El6B7b99.js")),
1542
+ "mdc": defineAsyncComponent(() => import("./markdown-El6B7b99.js")),
1543
+ "mdx": defineAsyncComponent(() => import("./markdown-El6B7b99.js")),
1544
+ "mermaid": defineAsyncComponent(() => import("./mermaid-Byu8TsQE.js")),
1545
+ "mjs": defineAsyncComponent(() => import("./javascript-DVxfoa-a.js")),
1546
+ "mmd": defineAsyncComponent(() => import("./mermaid-Byu8TsQE.js")),
1547
+ "mts": defineAsyncComponent(() => import("./typescript-Xo5tgeOd.js")),
1548
+ "nextflow": defineAsyncComponent(() => import("./nextflow-DRCOPmGT.js")),
1549
+ "nf": defineAsyncComponent(() => import("./nextflow-DRCOPmGT.js")),
1550
+ "nginx": defineAsyncComponent(() => import("./nginx-DTgW--wm.js")),
1551
+ "nim": defineAsyncComponent(() => import("./nim-r-ftp-xj.js")),
1552
+ "nix": defineAsyncComponent(() => import("./nix-BdWPBS1Z.js")),
1553
+ "ocaml": defineAsyncComponent(() => import("./ocaml-vXi6ujuu.js")),
1554
+ "perl": defineAsyncComponent(() => import("./perl-C_g5vs30.js")),
1555
+ "php": defineAsyncComponent(() => import("./php-C_b0sjdl.js")),
1556
+ "postcss": defineAsyncComponent(() => import("./postcss-Bsz3PPjI.js")),
1557
+ "powershell": defineAsyncComponent(() => import("./powershell-D0kxdwKl.js")),
1558
+ "prisma": defineAsyncComponent(() => import("./prisma-BocqbK7a.js")),
1559
+ "prolog": defineAsyncComponent(() => import("./prolog-D-zd1rzT.js")),
1560
+ "properties": defineAsyncComponent(() => import("./properties-Dds-063G.js")),
1561
+ "proto": defineAsyncComponent(() => import("./proto-CzD9trm_.js")),
1562
+ "protobuf": defineAsyncComponent(() => import("./proto-CzD9trm_.js")),
1563
+ "ps": defineAsyncComponent(() => import("./powershell-D0kxdwKl.js")),
1564
+ "ps1": defineAsyncComponent(() => import("./powershell-D0kxdwKl.js")),
1565
+ "pug": defineAsyncComponent(() => import("./pug-B1V2RxQS.js")),
1566
+ "puppet": defineAsyncComponent(() => import("./puppet-BcnVd0q5.js")),
1567
+ "py": defineAsyncComponent(() => import("./python-BcZnB7mH.js")),
1568
+ "python": defineAsyncComponent(() => import("./python-BcZnB7mH.js")),
1569
+ "r": defineAsyncComponent(() => import("./r-CxSFFuvL.js")),
1570
+ "racket": defineAsyncComponent(() => import("./racket-DJ_82PRG.js")),
1571
+ "razor": defineAsyncComponent(() => import("./razor-D7IkXHVQ.js")),
1572
+ "rb": defineAsyncComponent(() => import("./ruby-Cidk52Rl.js")),
1573
+ "rs": defineAsyncComponent(() => import("./rust-DJvcpkbm.js")),
1574
+ "ruby": defineAsyncComponent(() => import("./ruby-Cidk52Rl.js")),
1575
+ "rust": defineAsyncComponent(() => import("./rust-DJvcpkbm.js")),
1576
+ "sass": defineAsyncComponent(() => import("./sass-DTFDeixE.js")),
1577
+ "scala": defineAsyncComponent(() => import("./scala-GlHhGi5O.js")),
1578
+ "scheme": defineAsyncComponent(() => import("./scheme-rNcj5mL9.js")),
1579
+ "scss": defineAsyncComponent(() => import("./sass-DTFDeixE.js")),
1580
+ "sh": defineAsyncComponent(() => import("./bash-BC7HOdMh.js")),
1581
+ "shader": defineAsyncComponent(() => import("./shader-Df9eByRK.js")),
1582
+ "shell": defineAsyncComponent(() => import("./bash-BC7HOdMh.js")),
1583
+ "shellscript": defineAsyncComponent(() => import("./bash-BC7HOdMh.js")),
1584
+ "solidity": defineAsyncComponent(() => import("./solidity-CfuYjRuT.js")),
1585
+ "sql": defineAsyncComponent(() => import("./database-DRAhifbf.js")),
1586
+ "stata": defineAsyncComponent(() => import("./stata-BB5c_hbh.js")),
1587
+ "styl": defineAsyncComponent(() => import("./sass-DTFDeixE.js")),
1588
+ "stylus": defineAsyncComponent(() => import("./sass-DTFDeixE.js")),
1589
+ "svelte": defineAsyncComponent(() => import("./svelte-2ISqxu6B.js")),
1590
+ "swift": defineAsyncComponent(() => import("./swift-wpybyudn.js")),
1591
+ "terraform": defineAsyncComponent(() => import("./terraform-CLzhaCaX.js")),
1592
+ "tex": defineAsyncComponent(() => import("./latex-B3hQqfJO.js")),
1593
+ "text": defineAsyncComponent(() => import("./text-C0mKr3tC.js")),
1594
+ "tf": defineAsyncComponent(() => import("./terraform-CLzhaCaX.js")),
1595
+ "tfvars": defineAsyncComponent(() => import("./terraform-CLzhaCaX.js")),
1596
+ "toml": defineAsyncComponent(() => import("./toml-DImd1uev.js")),
1597
+ "ts": defineAsyncComponent(() => import("./typescript-Xo5tgeOd.js")),
1598
+ "tsv": defineAsyncComponent(() => import("./csv-oLjD_o9N.js")),
1599
+ "tsx": defineAsyncComponent(() => import("./typescript-Xo5tgeOd.js")),
1600
+ "twig": defineAsyncComponent(() => import("./twig-DEBVmtOq.js")),
1601
+ "typ": defineAsyncComponent(() => import("./typst-_Ui0vNYP.js")),
1602
+ "typescript": defineAsyncComponent(() => import("./typescript-Xo5tgeOd.js")),
1603
+ "typst": defineAsyncComponent(() => import("./typst-_Ui0vNYP.js")),
1604
+ "v": defineAsyncComponent(() => import("./v-Ch6vEAHG.js")),
1605
+ "vala": defineAsyncComponent(() => import("./vala-Ds_Ad1cC.js")),
1606
+ "verilog": defineAsyncComponent(() => import("./verilog-CUqRomTC.js")),
1607
+ "vim": defineAsyncComponent(() => import("./vim-BFUPh6oM.js")),
1608
+ "viml": defineAsyncComponent(() => import("./vim-BFUPh6oM.js")),
1609
+ "vimscript": defineAsyncComponent(() => import("./vim-BFUPh6oM.js")),
1610
+ "vue-html": defineAsyncComponent(() => import("./vue-DzgIlbJ2.js")),
1611
+ "vue-vine": defineAsyncComponent(() => import("./vue-DzgIlbJ2.js")),
1612
+ "vue": defineAsyncComponent(() => import("./vue-DzgIlbJ2.js")),
1613
+ "xml": defineAsyncComponent(() => import("./xml-CmbQxaqc.js")),
1614
+ "xsl": defineAsyncComponent(() => import("./xml-CmbQxaqc.js")),
1615
+ "yaml": defineAsyncComponent(() => import("./yaml-BhwCoLnZ.js")),
1616
+ "yml": defineAsyncComponent(() => import("./yaml-BhwCoLnZ.js")),
1617
+ "zig": defineAsyncComponent(() => import("./zig-Bmrmp8vo.js")),
1618
+ "zsh": defineAsyncComponent(() => import("./bash-BC7HOdMh.js"))
1619
+ };
1620
+
1621
+ //#endregion
1622
+ //#region src/constants/harden.ts
1623
+ const DEFAULT_HARDEN_OPTIONS = {
1624
+ allowedLinkPrefixes: ["*"],
1625
+ allowedImagePrefixes: ["*"],
1626
+ allowedProtocols: ["*"],
1627
+ allowDataImages: true
1628
+ };
1629
+
1630
+ //#endregion
1631
+ //#region src/constants/icons.ts
1632
+ const ICONS = {
1633
+ arrowLeft: defineAsyncComponent(() => import("./arrow-left-DiHYz8df.js")),
1634
+ check: defineAsyncComponent(() => import("./check-BjAiKMbo.js")),
1635
+ code: defineAsyncComponent(() => import("./code-lfRPXNJI.js")),
1636
+ collapse: defineAsyncComponent(() => import("./chevron-down-B4lkjpIC.js")),
1637
+ copy: defineAsyncComponent(() => import("./copy-BTFPPhff.js")),
1638
+ cornerDownLeft: defineAsyncComponent(() => import("./corner-down-left-jxlwq3ox.js")),
1639
+ download: defineAsyncComponent(() => import("./download-Bk2mYZyf.js")),
1640
+ error: defineAsyncComponent(() => import("./circle-alert-DlAafH7h.js")),
1641
+ flipHorizontal: defineAsyncComponent(() => import("./flip-horizontal-CEf7aAdM.js")),
1642
+ image: defineAsyncComponent(() => import("./image-DDiNDOKJ.js")),
1643
+ link: defineAsyncComponent(() => import("./link-DCaSecEI.js")),
1644
+ maximize: defineAsyncComponent(() => import("./maximize-B1-N6kOL.js")),
1645
+ mermaid: defineAsyncComponent(() => import("./mermaid-Byu8TsQE.js")),
1646
+ minimize: defineAsyncComponent(() => import("./minimize-CVVLdf2H.js")),
1647
+ preview: defineAsyncComponent(() => import("./eye-DpAj1af-.js")),
1648
+ rotateLeft: defineAsyncComponent(() => import("./rotate-ccw-square-5sO65BY9.js")),
1649
+ zoomIn: defineAsyncComponent(() => import("./zoomIn-CCKcyIEv.js")),
1650
+ zoomOut: defineAsyncComponent(() => import("./zoomOut-BrSwLQZ_.js"))
1651
+ };
1281
1652
 
1282
1653
  //#endregion
1283
- //#region src/composables/use-math-renderer.ts
1284
- function useMathRenderer(options) {
1285
- const { installed, render: renderKatex } = useKatex();
1286
- const renderFlag = ref(false);
1287
- const renderingCode = ref("");
1288
- const html = ref("");
1289
- const errorMessage = ref("");
1290
- const node = computed(() => unref(options.node));
1291
- const katexOptions = computed(() => {
1292
- var _unref;
1293
- return ((_unref = unref(options.katexOptions)) === null || _unref === void 0 ? void 0 : _unref.config) ?? {};
1294
- });
1295
- const throttleTime = computed(() => unref(options.throttle) ?? 150);
1296
- const code = computed(() => node.value.value);
1297
- const loading = computed(() => node.value.loading);
1298
- const isDisplayMode = computed(() => node.value.type !== "inlineMath");
1299
- const error = computed(() => {
1300
- if (!installed.value) return true;
1301
- if (errorMessage.value && renderFlag.value && renderingCode.value === code.value) return true;
1302
- return false;
1303
- });
1304
- watch(() => [code.value, loading.value], throttle(throttleTime, async () => {
1305
- const { html: data, error: error$1 } = await renderKatex(code.value, {
1306
- ...katexOptions,
1307
- displayMode: isDisplayMode.value
1308
- });
1309
- renderFlag.value = true;
1310
- if (data) {
1311
- html.value = data;
1312
- errorMessage.value = "";
1313
- return;
1314
- }
1315
- if (error$1) errorMessage.value = error$1;
1316
- else errorMessage.value = "";
1317
- }), { immediate: true });
1318
- return {
1319
- html,
1320
- error,
1321
- errorMessage
1322
- };
1323
- }
1654
+ //#region src/constants/theme.ts
1655
+ const SHADCN_SCHEMAS = [
1656
+ "background",
1657
+ "foreground",
1658
+ "card",
1659
+ "card-foreground",
1660
+ "popover",
1661
+ "popover-foreground",
1662
+ "primary",
1663
+ "primary-foreground",
1664
+ "secondary",
1665
+ "secondary-foreground",
1666
+ "muted",
1667
+ "muted-foreground",
1668
+ "accent",
1669
+ "accent-foreground",
1670
+ "destructive",
1671
+ "border",
1672
+ "input",
1673
+ "ring",
1674
+ "chart-1",
1675
+ "chart-2",
1676
+ "chart-3",
1677
+ "chart-4",
1678
+ "chart-5",
1679
+ "sidebar",
1680
+ "sidebar-foreground",
1681
+ "sidebar-primary",
1682
+ "sidebar-primary-foreground",
1683
+ "sidebar-accent",
1684
+ "sidebar-accent-foreground",
1685
+ "sidebar-border",
1686
+ "sidebar-ring"
1687
+ ];
1324
1688
 
1325
1689
  //#endregion
1326
- //#region src/composables/use-mermaid.ts
1327
- let mermaid = null;
1328
- function useMermaid(options) {
1329
- const installed = ref(false);
1330
- const mermaidConfig = computed(() => {
1331
- var _unref;
1332
- return ((_unref = unref(options === null || options === void 0 ? void 0 : options.mermaidOptions)) === null || _unref === void 0 ? void 0 : _unref.config) ?? {};
1333
- });
1334
- const mermaidTheme = computed(() => {
1335
- var _unref2;
1336
- return ((_unref2 = unref(options === null || options === void 0 ? void 0 : options.mermaidOptions)) === null || _unref2 === void 0 ? void 0 : _unref2.theme) ?? ["neutral", "dark"];
1337
- });
1338
- const isDark = computed(() => unref(options === null || options === void 0 ? void 0 : options.isDark) ?? false);
1339
- const lightTheme = computed(() => mermaidTheme.value[0] ?? "neutral");
1340
- const darkTheme = computed(() => mermaidTheme.value[1] ?? "dark");
1341
- const theme = computed(() => isDark.value ? darkTheme.value : lightTheme.value);
1342
- const chart = ref("");
1343
- async function getMermaid() {
1344
- if (mermaid) return mermaid;
1345
- const { default: module } = await import("mermaid");
1346
- module.initialize({
1347
- startOnLoad: false,
1348
- securityLevel: "loose",
1349
- ...mermaidConfig.value
1350
- });
1351
- mermaid = module;
1352
- return mermaid;
1353
- }
1354
- function wrapThemeCode(code) {
1355
- if (code.startsWith("%%{")) return code;
1356
- return `${`%%{init: {"theme": "${theme.value}"}}%%\n`}${code}`;
1357
- }
1358
- async function parseMermaid(code) {
1359
- try {
1360
- const mermaid$1 = await getMermaid();
1361
- chart.value = wrapThemeCode(code);
1362
- await mermaid$1.parse(chart.value);
1363
- return true;
1364
- } catch {
1365
- return false;
1366
- }
1367
- }
1368
- async function renderMermaid(code) {
1369
- if (!await parseMermaid(code)) return null;
1370
- const id = `mermaid-${randomStr()}`;
1371
- try {
1372
- return (await (await getMermaid()).render(id, wrapThemeCode(code))).svg;
1373
- } catch {
1374
- const element = document.getElementById(`d${id}`);
1375
- if (element) element.remove();
1376
- return null;
1377
- }
1378
- }
1379
- async function saveMermaid(format, code = chart.value, onError) {
1380
- try {
1381
- const svg = await renderMermaid(code);
1382
- if (!svg) {
1383
- onError === null || onError === void 0 || onError(/* @__PURE__ */ new Error("SVG not found. Please wait for the diagram to render."));
1384
- return;
1385
- }
1386
- if (format === "svg") save("diagram.svg", svg, "image/svg+xml");
1387
- if (format === "png") save("diagram.png", await svgToPngBlob(svg), "image/png");
1388
- } catch (error) {
1389
- onError === null || onError === void 0 || onError(error);
1390
- }
1391
- }
1392
- async function preload() {
1393
- if (mermaid) return;
1394
- installed.value = await hasMermaid();
1395
- if (installed.value) await getMermaid();
1396
- }
1397
- function dispose() {
1398
- chart.value = "";
1690
+ //#region src/composables/use-sanitizers.ts
1691
+ function useSanitizers(options) {
1692
+ const hardenOptions = computed(() => unref(options.hardenOptions) ?? DEFAULT_HARDEN_OPTIONS);
1693
+ const loading = computed(() => unref(options.loading) ?? false);
1694
+ const allowedLinkPrefixes = computed(() => hardenOptions.value.allowedLinkPrefixes ?? ["*"]);
1695
+ const allowedImagePrefixes = computed(() => hardenOptions.value.allowedImagePrefixes ?? ["*"]);
1696
+ const allowedProtocols = computed(() => hardenOptions.value.allowedProtocols ?? ["*"]);
1697
+ const allowDataImages = computed(() => hardenOptions.value.allowDataImages ?? true);
1698
+ const defaultOrigin = computed(() => hardenOptions.value.defaultOrigin ?? "");
1699
+ const isImage = computed(() => unref(options.isImage) ?? false);
1700
+ const url = computed(() => unref(options.url) ?? "");
1701
+ const transformedUrl = computed(() => transformHardenUrl(url.value));
1702
+ const isHardenUrl = computed(() => transformedUrl.value === null);
1703
+ function transformHardenUrl(url$1) {
1704
+ if (!url$1 || loading.value) return url$1;
1705
+ return transformUrl(url$1, isImage.value ? allowedImagePrefixes.value : allowedLinkPrefixes.value, defaultOrigin.value, allowDataImages.value, isImage.value, allowedProtocols.value);
1399
1706
  }
1400
- (async () => {
1401
- if (mermaid) {
1402
- installed.value = true;
1403
- return;
1404
- }
1405
- installed.value = await hasMermaid();
1406
- })();
1407
1707
  return {
1408
- installed,
1409
- getMermaid,
1410
- parseMermaid,
1411
- renderMermaid,
1412
- saveMermaid,
1413
- preload,
1414
- dispose
1708
+ hardenOptions,
1709
+ transformHardenUrl,
1710
+ transformedUrl,
1711
+ isHardenUrl
1415
1712
  };
1416
1713
  }
1417
1714
 
@@ -1428,17 +1725,21 @@ function useShiki(options) {
1428
1725
  });
1429
1726
  const lightTheme = computed(() => shikiTheme.value[0] ?? DEFAULT_LIGHT_THEME);
1430
1727
  const darkTheme = computed(() => shikiTheme.value[1] ?? DEFAULT_DARK_THEME);
1431
- const langAlias = computed(() => {
1728
+ const langs = computed(() => {
1432
1729
  var _unref2;
1433
- const data = ((_unref2 = unref(options === null || options === void 0 ? void 0 : options.shikiOptions)) === null || _unref2 === void 0 ? void 0 : _unref2.langAlias) ?? {};
1730
+ return ((_unref2 = unref(options === null || options === void 0 ? void 0 : options.shikiOptions)) === null || _unref2 === void 0 ? void 0 : _unref2.langs) ?? [];
1731
+ });
1732
+ const langAlias = computed(() => {
1733
+ var _unref3;
1734
+ const data = ((_unref3 = unref(options === null || options === void 0 ? void 0 : options.shikiOptions)) === null || _unref3 === void 0 ? void 0 : _unref3.langAlias) ?? {};
1434
1735
  return {
1435
1736
  ...LANGUAGE_ALIAS,
1436
1737
  ...data
1437
1738
  };
1438
1739
  });
1439
1740
  const codeToTokenOptions = computed(() => {
1440
- var _unref3;
1441
- return ((_unref3 = unref(options === null || options === void 0 ? void 0 : options.shikiOptions)) === null || _unref3 === void 0 ? void 0 : _unref3.codeToTokenOptions) ?? {};
1741
+ var _unref4;
1742
+ return ((_unref4 = unref(options === null || options === void 0 ? void 0 : options.shikiOptions)) === null || _unref4 === void 0 ? void 0 : _unref4.codeToTokenOptions) ?? {};
1442
1743
  });
1443
1744
  const isDark = computed(() => unref(options === null || options === void 0 ? void 0 : options.isDark) ?? false);
1444
1745
  async function getThemes() {
@@ -1479,7 +1780,7 @@ function useShiki(options) {
1479
1780
  const { createHighlighter } = await import("shiki");
1480
1781
  return createHighlighter({
1481
1782
  themes: [await getTheme()],
1482
- langs: [await getLanguage()],
1783
+ langs: langs.value,
1483
1784
  langAlias: langAlias.value
1484
1785
  });
1485
1786
  })();
@@ -1561,28 +1862,6 @@ function useTailwindV3Theme(options) {
1561
1862
  };
1562
1863
  }
1563
1864
 
1564
- //#endregion
1565
- //#region src/composables/use-tippy.ts
1566
- function useTippy(options) {
1567
- const isDark = computed(() => unref(options === null || options === void 0 ? void 0 : options.isDark) ?? false);
1568
- const tippyOptions = computed(() => unref(options === null || options === void 0 ? void 0 : options.options) ?? {});
1569
- function initTippy() {
1570
- setDefaultProps({
1571
- allowHTML: true,
1572
- delay: [100, 100],
1573
- theme: isDark.value ? "" : "light",
1574
- ...tippyOptions
1575
- });
1576
- watchEffect(() => {
1577
- setDefaultProps({
1578
- theme: isDark.value ? "" : "light",
1579
- ...tippyOptions.value
1580
- });
1581
- });
1582
- }
1583
- return { initTippy };
1584
- }
1585
-
1586
1865
  //#endregion
1587
1866
  //#region src/composables/use-zoom.ts
1588
1867
  function useZoom(options = {}) {
@@ -1746,4 +2025,4 @@ function useZoom(options = {}) {
1746
2025
  }
1747
2026
 
1748
2027
  //#endregion
1749
- export { transformUrl as A, useContext as B, findNodeParent as C, flow as D, hasShiki as E, DEFAULT_LIGHT_THEME as F, LANGUAGE_ALIAS as I, LANGUAGE_EXTENSIONS as L, ICONS as M, DEFAULT_HARDEN_OPTIONS as N, save as O, DEFAULT_DARK_THEME as P, LANGUAGE_ICONS as R, findLastLeafNode as S, hasMermaid as T, useCodeOptions as V, escapeMarkdownTableCell as _, useMermaid as a, tableDataToMarkdown as b, _defineProperty as c, SUPPORT_LANGUAGES as d, currentLocale as f, useHardenSanitizers as g, localesGlob as h, useShiki as i, SHADCN_SCHEMAS as j, svgToPngBlob as k, useKatex as l, localeMessages as m, useTippy as n, useMathRenderer as o, loadLocaleMessages as p, useTailwindV3Theme as r, throttle as s, useZoom as t, useI18n as u, extractTableDataFromElement as v, hasKatex as w, tableDataToTSV as x, tableDataToCSV as y, useControls as z };
2028
+ export { save as A, useFloatingElement as B, tableDataToTSV as C, hasMermaid as D, hasKatex as E, SUPPORT_LANGUAGES as F, useContext as H, currentLocale as I, loadLocaleMessages as L, svgToPngBlob as M, transformUrl as N, hasShiki as O, useI18n as P, localeMessages as R, tableDataToMarkdown as S, findNodeParent as T, useCodeOptions as U, useControls as V, _defineProperty as _, SHADCN_SCHEMAS as a, extractTableDataFromElement as b, DEFAULT_DARK_THEME as c, LANGUAGE_EXTENSIONS as d, LANGUAGE_ICONS as f, throttle as g, useMathRenderer as h, useSanitizers as i, saveImage as j, flow as k, DEFAULT_LIGHT_THEME as l, useMediumZoom as m, useTailwindV3Theme as n, ICONS as o, useMermaid as p, useShiki as r, DEFAULT_HARDEN_OPTIONS as s, useZoom as t, LANGUAGE_ALIAS as u, useKatex as v, findLastLeafNode as w, tableDataToCSV as x, escapeMarkdownTableCell as y, localesGlob as z };