@modern-js/module-tools-docs 2.59.0 → 2.60.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/doc_build/404.html +17 -0
  3. package/doc_build/api/config/build-config.html +1217 -0
  4. package/doc_build/api/config/build-preset.html +211 -0
  5. package/doc_build/api/config/dev.html +63 -0
  6. package/doc_build/api/config/plugins.html +54 -0
  7. package/doc_build/api/index.html +17 -0
  8. package/doc_build/api/plugin-api/plugin-hooks.html +395 -0
  9. package/doc_build/components/faq-build-exception.html +17 -0
  10. package/doc_build/components/faq-build-other.html +17 -0
  11. package/doc_build/components/faq-build-product.html +17 -0
  12. package/doc_build/components/faq-storybook.html +17 -0
  13. package/doc_build/components/publish-emo.html +17 -0
  14. package/doc_build/components/register-esbuild-plugin.html +27 -0
  15. package/doc_build/components/release-module-doc.html +17 -0
  16. package/doc_build/en/api/config/build-config.html +1220 -0
  17. package/doc_build/en/api/config/build-preset.html +206 -0
  18. package/doc_build/en/api/config/dev.html +63 -0
  19. package/doc_build/en/api/config/plugins.html +54 -0
  20. package/doc_build/en/api/index.html +17 -0
  21. package/doc_build/en/api/plugin-api/plugin-hooks.html +399 -0
  22. package/doc_build/en/components/faq-build-exception.html +17 -0
  23. package/doc_build/en/components/faq-build-other.html +17 -0
  24. package/doc_build/en/components/faq-build-product.html +17 -0
  25. package/doc_build/en/components/faq-storybook.html +17 -0
  26. package/doc_build/en/components/publish-emo.html +17 -0
  27. package/doc_build/en/components/register-esbuild-plugin.html +27 -0
  28. package/doc_build/en/components/release-module-doc.html +17 -0
  29. package/doc_build/en/guide/advance/asset.html +58 -0
  30. package/doc_build/en/guide/advance/build-umd.html +166 -0
  31. package/doc_build/en/guide/advance/copy.html +208 -0
  32. package/doc_build/en/guide/advance/external-dependency.html +62 -0
  33. package/doc_build/en/guide/advance/in-depth-about-build.html +302 -0
  34. package/doc_build/en/guide/advance/in-depth-about-dev-command.html +68 -0
  35. package/doc_build/en/guide/basic/before-getting-started.html +139 -0
  36. package/doc_build/en/guide/basic/command-preview.html +131 -0
  37. package/doc_build/en/guide/basic/modify-output-product.html +133 -0
  38. package/doc_build/en/guide/basic/publish-your-project.html +100 -0
  39. package/doc_build/en/guide/basic/use-micro-generator.html +54 -0
  40. package/doc_build/en/guide/basic/use-module-doc.html +397 -0
  41. package/doc_build/en/guide/basic/using-storybook.html +168 -0
  42. package/doc_build/en/guide/best-practices/components.html +198 -0
  43. package/doc_build/en/guide/best-practices/use-tailwindcss.html +243 -0
  44. package/doc_build/en/guide/faq/basic.html +23 -0
  45. package/doc_build/en/guide/faq/build.html +237 -0
  46. package/doc_build/en/guide/faq/index.html +23 -0
  47. package/doc_build/en/guide/faq/storybook.html +85 -0
  48. package/doc_build/en/guide/intro/getting-started.html +92 -0
  49. package/doc_build/en/guide/intro/welcome.html +27 -0
  50. package/doc_build/en/guide/intro/why-module-engineering-solution.html +25 -0
  51. package/doc_build/en/index.html +17 -0
  52. package/doc_build/en/plugins/guide/getting-started.html +70 -0
  53. package/doc_build/en/plugins/guide/plugin-object.html +74 -0
  54. package/doc_build/en/plugins/guide/setup-function.html +96 -0
  55. package/doc_build/en/plugins/official-list/overview.html +26 -0
  56. package/doc_build/en/plugins/official-list/plugin-babel.html +65 -0
  57. package/doc_build/en/plugins/official-list/plugin-banner.html +91 -0
  58. package/doc_build/en/plugins/official-list/plugin-import.html +111 -0
  59. package/doc_build/en/plugins/official-list/plugin-node-polyfill.html +128 -0
  60. package/doc_build/en/plugins/official-list/plugin-polyfill.html +72 -0
  61. package/doc_build/en/plugins/official-list/plugin-vue.html +66 -0
  62. package/doc_build/guide/advance/asset.html +55 -0
  63. package/doc_build/guide/advance/build-umd.html +170 -0
  64. package/doc_build/guide/advance/copy.html +208 -0
  65. package/doc_build/guide/advance/external-dependency.html +61 -0
  66. package/doc_build/guide/advance/in-depth-about-build.html +300 -0
  67. package/doc_build/guide/advance/in-depth-about-dev-command.html +68 -0
  68. package/doc_build/guide/basic/before-getting-started.html +139 -0
  69. package/doc_build/guide/basic/command-preview.html +131 -0
  70. package/doc_build/guide/basic/modify-output-product.html +134 -0
  71. package/doc_build/guide/basic/publish-your-project.html +99 -0
  72. package/doc_build/guide/basic/use-micro-generator.html +54 -0
  73. package/doc_build/guide/basic/use-module-doc.html +395 -0
  74. package/doc_build/guide/basic/using-storybook.html +177 -0
  75. package/doc_build/guide/best-practices/components.html +198 -0
  76. package/doc_build/guide/best-practices/use-tailwindcss.html +243 -0
  77. package/doc_build/guide/faq/basic.html +23 -0
  78. package/doc_build/guide/faq/build.html +234 -0
  79. package/doc_build/guide/faq/index.html +23 -0
  80. package/doc_build/guide/faq/storybook.html +85 -0
  81. package/doc_build/guide/intro/getting-started.html +89 -0
  82. package/doc_build/guide/intro/welcome.html +27 -0
  83. package/doc_build/guide/intro/why-module-engineering-solution.html +25 -0
  84. package/doc_build/index.html +17 -0
  85. package/doc_build/plugins/guide/getting-started.html +70 -0
  86. package/doc_build/plugins/guide/plugin-object.html +74 -0
  87. package/doc_build/plugins/guide/setup-function.html +95 -0
  88. package/doc_build/plugins/official-list/overview.html +26 -0
  89. package/doc_build/plugins/official-list/plugin-babel.html +64 -0
  90. package/doc_build/plugins/official-list/plugin-banner.html +94 -0
  91. package/doc_build/plugins/official-list/plugin-import.html +112 -0
  92. package/doc_build/plugins/official-list/plugin-node-polyfill.html +128 -0
  93. package/doc_build/plugins/official-list/plugin-polyfill.html +71 -0
  94. package/doc_build/plugins/official-list/plugin-vue.html +66 -0
  95. package/doc_build/static/css/styles.0b88df3a.css +1 -0
  96. package/doc_build/static/js/490.a066dbc0.js +6 -0
  97. package/doc_build/static/js/490.a066dbc0.js.LICENSE.txt +35 -0
  98. package/doc_build/static/js/async/1095.4ca5fdf0.js +1 -0
  99. package/doc_build/static/js/async/1148.ff6a84ca.js +1 -0
  100. package/doc_build/static/js/async/1306.8bc84d6b.js +1 -0
  101. package/doc_build/static/js/async/1507.fed31a58.js +1 -0
  102. package/doc_build/static/js/async/1527.4c6e53e2.js +1 -0
  103. package/doc_build/static/js/async/1657.d0d95d59.js +1 -0
  104. package/doc_build/static/js/async/1801.5d49a2fe.js +1 -0
  105. package/doc_build/static/js/async/1941.0b3cceee.js +1 -0
  106. package/doc_build/static/js/async/213.db8a0492.js +1 -0
  107. package/doc_build/static/js/async/2131.5dfdffa9.js +1 -0
  108. package/doc_build/static/js/async/2140.848412d7.js +1 -0
  109. package/doc_build/static/js/async/2206.f6b802b2.js +1 -0
  110. package/doc_build/static/js/async/2300.cba0106e.js +1 -0
  111. package/doc_build/static/js/async/2347.a480682f.js +1 -0
  112. package/doc_build/static/js/async/2365.daed0a9c.js +1 -0
  113. package/doc_build/static/js/async/2561.2e43400c.js +1 -0
  114. package/doc_build/static/js/async/2579.f7c71e6b.js +1 -0
  115. package/doc_build/static/js/async/2671.c711355f.js +1 -0
  116. package/doc_build/static/js/async/2704.561dadd9.js +1 -0
  117. package/doc_build/static/js/async/2712.5ffea5ba.js +1 -0
  118. package/doc_build/static/js/async/3023.5bef6325.js +1 -0
  119. package/doc_build/static/js/async/3039.3982622e.js +1 -0
  120. package/doc_build/static/js/async/3097.b043b3aa.js +1 -0
  121. package/doc_build/static/js/async/3213.df408a99.js +1 -0
  122. package/doc_build/static/js/async/3235.0c4d2c9b.js +1 -0
  123. package/doc_build/static/js/async/336.8387125c.js +1 -0
  124. package/doc_build/static/js/async/3493.5133deaa.js +1 -0
  125. package/doc_build/static/js/async/351.de7824af.js +1 -0
  126. package/doc_build/static/js/async/3597.cf46a69b.js +1 -0
  127. package/doc_build/static/js/async/36.eee0e8fe.js +1 -0
  128. package/doc_build/static/js/async/3628.726e3f10.js +1 -0
  129. package/doc_build/static/js/async/3724.bcc90bb4.js +1 -0
  130. package/doc_build/static/js/async/3761.949f5838.js +1 -0
  131. package/doc_build/static/js/async/4061.84ac839b.js +1 -0
  132. package/doc_build/static/js/async/4064.104b71cd.js +1 -0
  133. package/doc_build/static/js/async/4206.133ffe9e.js +1 -0
  134. package/doc_build/static/js/async/443.b519ce6b.js +1 -0
  135. package/doc_build/static/js/async/4501.c647ab73.js +1 -0
  136. package/doc_build/static/js/async/453.7358c1fd.js +1 -0
  137. package/doc_build/static/js/async/461.2d6ea16c.js +1 -0
  138. package/doc_build/static/js/async/4615.c4e5b749.js +1 -0
  139. package/doc_build/static/js/async/4655.bbe27e7b.js +1 -0
  140. package/doc_build/static/js/async/4812.ebd3f4cb.js +1 -0
  141. package/doc_build/static/js/async/4904.de72a299.js +1 -0
  142. package/doc_build/static/js/async/5105.28347c4d.js +1 -0
  143. package/doc_build/static/js/async/5453.87dcea50.js +1 -0
  144. package/doc_build/static/js/async/5455.9e038fda.js +1 -0
  145. package/doc_build/static/js/async/5493.3644c7b8.js +1 -0
  146. package/doc_build/static/js/async/5495.50aacc7e.js +1 -0
  147. package/doc_build/static/js/async/5555.40dabd12.js +1 -0
  148. package/doc_build/static/js/async/5558.073d18d0.js +1 -0
  149. package/doc_build/static/js/async/5844.b3a9d57a.js +1 -0
  150. package/doc_build/static/js/async/588.6de9811a.js +1 -0
  151. package/doc_build/static/js/async/5889.41a786b6.js +1 -0
  152. package/doc_build/static/js/async/5892.b0db6657.js +1 -0
  153. package/doc_build/static/js/async/5995.209e2925.js +1 -0
  154. package/doc_build/static/js/async/6046.963bbf59.js +1 -0
  155. package/doc_build/static/js/async/6308.6363792d.js +1 -0
  156. package/doc_build/static/js/async/6576.a753babb.js +1 -0
  157. package/doc_build/static/js/async/6615.154a2810.js +1 -0
  158. package/doc_build/static/js/async/6858.e2452605.js +1 -0
  159. package/doc_build/static/js/async/6975.be4ba201.js +1 -0
  160. package/doc_build/static/js/async/7080.1c684c7d.js +1 -0
  161. package/doc_build/static/js/async/7220.1c4ee8bb.js +1 -0
  162. package/doc_build/static/js/async/7406.b2acec42.js +1 -0
  163. package/doc_build/static/js/async/7521.ca744786.js +1 -0
  164. package/doc_build/static/js/async/7535.f50f0fd1.js +1 -0
  165. package/doc_build/static/js/async/7584.c3b673fd.js +1 -0
  166. package/doc_build/static/js/async/7600.03d9da89.js +1 -0
  167. package/doc_build/static/js/async/7663.86b79735.js +1 -0
  168. package/doc_build/static/js/async/769.2bc1c7b7.js +1 -0
  169. package/doc_build/static/js/async/7715.1bfe887f.js +1 -0
  170. package/doc_build/static/js/async/7837.5667c422.js +1 -0
  171. package/doc_build/static/js/async/8040.1cfb21ff.js +1 -0
  172. package/doc_build/static/js/async/8085.f9f71860.js +1 -0
  173. package/doc_build/static/js/async/8098.beeb77f3.js +1 -0
  174. package/doc_build/static/js/async/8134.068074a0.js +1 -0
  175. package/doc_build/static/js/async/8158.2834ced1.js +1 -0
  176. package/doc_build/static/js/async/8214.2fdfe2fe.js +1 -0
  177. package/doc_build/static/js/async/8233.24111213.js +1 -0
  178. package/doc_build/static/js/async/8451.5328c0c7.js +1 -0
  179. package/doc_build/static/js/async/8689.f8447ca1.js +1 -0
  180. package/doc_build/static/js/async/8694.077556c4.js +1 -0
  181. package/doc_build/static/js/async/8713.91395601.js +1 -0
  182. package/doc_build/static/js/async/8750.0f6872b3.js +1 -0
  183. package/doc_build/static/js/async/8802.463e3040.js +1 -0
  184. package/doc_build/static/js/async/9100.066e1017.js +1 -0
  185. package/doc_build/static/js/async/9250.8fb41a47.js +1 -0
  186. package/doc_build/static/js/async/9524.bb257861.js +1 -0
  187. package/doc_build/static/js/async/9611.b2543acb.js +1 -0
  188. package/doc_build/static/js/async/964.b00f3e9f.js +1 -0
  189. package/doc_build/static/js/async/9740.b27e6629.js +1 -0
  190. package/doc_build/static/js/index.6a5d779d.js +1 -0
  191. package/doc_build/static/js/lib-react.a93218f7.js +2 -0
  192. package/doc_build/static/js/lib-react.a93218f7.js.LICENSE.txt +39 -0
  193. package/doc_build/static/js/lib-router.f8d11890.js +2 -0
  194. package/doc_build/static/js/lib-router.f8d11890.js.LICENSE.txt +32 -0
  195. package/doc_build/static/js/styles.3f5a6140.js +1 -0
  196. package/doc_build/static/search_index.en.f19ea64b.json +1 -0
  197. package/doc_build/static/search_index.zh.e818eee4.json +1 -0
  198. package/doc_build/test-result.png +0 -0
  199. package/doc_build/why-module-solution.png +0 -0
  200. package/docs/en/api/config/dev.md +2 -2
  201. package/docs/en/guide/basic/command-preview.md +0 -16
  202. package/docs/en/guide/intro/welcome.md +0 -1
  203. package/docs/zh/api/config/dev.md +2 -2
  204. package/docs/zh/guide/basic/command-preview.md +0 -16
  205. package/docs/zh/guide/basic/using-storybook.mdx +1 -1
  206. package/docs/zh/guide/intro/welcome.md +0 -1
  207. package/package.json +4 -4
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+ <meta name="generator" content="Rspress v1.31.0">
9
+ <title data-rh="true">Vue 插件 - Modern.js Module</title><meta data-rh="true" name="description" content="模块工程解决方案"/>
10
+ <script>{;const saved = localStorage.getItem('rspress-theme-appearance');const preferDark = window.matchMedia('(prefers-color-scheme: dark)').matches;const isDark = !saved || saved === 'auto' ? preferDark : saved === 'dark';document.documentElement.classList.toggle('dark', isDark);document.documentElement.style.colorScheme = isDark ? 'dark' : 'light';}</script><link rel="icon" href="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/logo-1x-0104.png"><script defer src="/module-tools/static/js/styles.3f5a6140.js"></script><script defer src="/module-tools/static/js/lib-react.a93218f7.js"></script><script defer src="/module-tools/static/js/lib-router.f8d11890.js"></script><script defer src="/module-tools/static/js/490.a066dbc0.js"></script><script defer src="/module-tools/static/js/index.6a5d779d.js"></script><link href="/module-tools/static/css/styles.0b88df3a.css" rel="stylesheet"></head>
11
+
12
+ <body >
13
+ <div id="root"><div><div class="navContainer_f6cde rspress-nav px-6 " style="position:sticky"><div class="container_f6cde flex justify-between items-center h-full"><div class="navBarTitle_f6cde"><a href="/module-tools/" class="flex items-center w-full h-full text-base font-semibold transition-opacity duration-300 hover:opacity-60"><span>Modern.js Module</span></a></div><div class="flex flex-1 justify-end items-center"><div class="rightNav_f6cde"><div class="flex sm:flex-1 items-center sm:pl-4 sm:pr-2"><div class="rspress-nav-search-button navSearchButton_6e282"><button><svg width="18" height="18" viewBox="0 0 32 32"><path fill="var(--rp-c-gray)" d="m29 27.586-7.552-7.552a11.018 11.018 0 1 0-1.414 1.414L27.586 29ZM4 13a9 9 0 1 1 9 9 9.01 9.01 0 0 1-9-9Z"></path></svg><p class="searchWord_6e282">Search Docs</p><div style="opacity:0"><span></span><span>K</span></div></button></div><div class="mobileNavSearchButton_6e282"><svg width="24" height="24" viewBox="0 0 32 32"><path fill="var(--rp-c-gray)" d="m29 27.586-7.552-7.552a11.018 11.018 0 1 0-1.414 1.414L27.586 29ZM4 13a9 9 0 1 1 9 9 9.01 9.01 0 0 1-9-9Z"></path></svg></div></div><div class="rspress-nav-menu menu h-14"><a class="link_03735 cursor-pointer" target="" href="/module-tools/guide/intro/welcome.html"><div class="rspress-nav-menu-item singleItem_f6cde text-sm font-medium mx-1.5 px-3 py-2 flex items-center">指南</div></a><a class="link_03735 cursor-pointer" target="" href="/module-tools/api/index.html"><div class="rspress-nav-menu-item singleItem_f6cde text-sm font-medium mx-1.5 px-3 py-2 flex items-center">API</div></a><a class="link_03735 cursor-pointer" target="" href="/module-tools/plugins/guide/getting-started.html"><div class="rspress-nav-menu-item singleItem_f6cde activeItem_f6cde text-sm font-medium mx-1.5 px-3 py-2 flex items-center">插件</div></a><div class="mx-3 last:mr-0"><div class="relative flex-center h-14"><button class="rspress-nav-menu-group-button flex-center items-center font-medium text-sm text-text-1 hover:text-text-2 transition-colors duration-200"><span class="text-sm font-medium flex" style="margin-right:2px">v2.60.1</span><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M16 22 6 12l1.4-1.4 8.6 8.6 8.6-8.6L26 12z"></path></svg></button><div class="rspress-nav-menu-group-content absolute mx-0.8 transition-opacity duration-300" style="opacity:0;visibility:hidden;right:0;top:52px"><div class="p-3 pr-2 w-full h-full max-h-100vh whitespace-nowrap" style="box-shadow:var(--rp-shadow-3);z-index:100;border:1px solid var(--rp-c-divider-light);border-radius:var(--rp-radius-large);background:var(--rp-c-bg)"><div><div class="font-medium my-1"><a href="https://github.com/web-infra-dev/modern.js/tree/main/packages/solutions/module-tools/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="link_03735 "><div class="rounded-2xl hover:bg-mute" style="padding:0.4rem 1.5rem 0.4rem 0.75rem"><div class="flex"><span>更新日志</span></div></div></a></div></div><div><div class="font-medium my-1"><a href="https://modernjs.dev/en/community/contributing-guide.html" target="_blank" rel="noopener noreferrer" class="link_03735 "><div class="rounded-2xl hover:bg-mute" style="padding:0.4rem 1.5rem 0.4rem 0.75rem"><div class="flex"><span>贡献指南</span></div></div></a></div></div></div></div></div></div></div><div class="flex-center flex-row"><div class="translation menu-item_f6cde flex text-sm font-bold items-center px-3 py-2"><div><div class="relative flex-center h-14"><button class="rspress-nav-menu-group-button flex-center items-center font-medium text-sm text-text-1 hover:text-text-2 transition-colors duration-200"><span class="text-sm font-medium flex" style="margin-right:2px"><svg width="18" height="18" viewBox="0 0 32 32" style="width:18px;height:18px"><path fill="currentColor" d="M27.85 29H30l-6-15h-2.35l-6 15h2.15l1.6-4h6.85zm-7.65-6 2.62-6.56L25.45 23zM18 7V5h-7V2H9v3H2v2h10.74a14.71 14.71 0 0 1-3.19 6.18A13.5 13.5 0 0 1 7.26 9h-2.1a16.47 16.47 0 0 0 3 5.58A16.84 16.84 0 0 1 3 18l.75 1.86A18.47 18.47 0 0 0 9.53 16a16.92 16.92 0 0 0 5.76 3.84L16 18a14.48 14.48 0 0 1-5.12-3.37A17.64 17.64 0 0 0 14.8 7z"></path></svg></span><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M16 22 6 12l1.4-1.4 8.6 8.6 8.6-8.6L26 12z"></path></svg></button><div class="rspress-nav-menu-group-content absolute mx-0.8 transition-opacity duration-300" style="opacity:0;visibility:hidden;right:0;top:52px"><div class="p-3 pr-2 w-full h-full max-h-100vh whitespace-nowrap" style="box-shadow:var(--rp-shadow-3);z-index:100;border:1px solid var(--rp-c-divider-light);border-radius:var(--rp-radius-large);background:var(--rp-c-bg)"><div><div class="rounded-2xl my-1 flex" style="padding:0.4rem 1.5rem 0.4rem 0.75rem"><span class="text-brand">简体中文</span></div></div><div><div class="font-medium my-1"><a class="link_03735 cursor-pointer" target="" href="/module-tools/en/plugins/official-list/plugin-vue.html"><div class="rounded-2xl hover:bg-mute" style="padding:0.4rem 1.5rem 0.4rem 0.75rem"><div class="flex"><span>English</span></div></div></a></div></div></div></div></div></div></div><div class="mx-2"><div class="md:mr-2 rspress-nav-appearance"><div class="p-1 border border-solid border-gray-300 text-gray-400 cursor-pointer rounded-md hover:border-gray-600 hover:text-gray-600 dark:hover:border-gray-200 dark:hover:text-gray-200 transition-all duration-300 w-7 h-7"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" viewBox="0 0 24 24" class="dark:hidden" width="18" height="18" fill="currentColor"><path d="M12 18c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6zm0-10c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zM12 4c-.6 0-1-.4-1-1V1c0-.6.4-1 1-1s1 .4 1 1v2c0 .6-.4 1-1 1zM12 24c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1s1 .4 1 1v2c0 .6-.4 1-1 1zM5.6 6.6c-.3 0-.5-.1-.7-.3L3.5 4.9c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l1.4 1.4c.4.4.4 1 0 1.4-.1.2-.4.3-.7.3zM19.8 20.8c-.3 0-.5-.1-.7-.3l-1.4-1.4c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l1.4 1.4c.4.4.4 1 0 1.4-.2.2-.5.3-.7.3zM3 13H1c-.6 0-1-.4-1-1s.4-1 1-1h2c.6 0 1 .4 1 1s-.4 1-1 1zM23 13h-2c-.6 0-1-.4-1-1s.4-1 1-1h2c.6 0 1 .4 1 1s-.4 1-1 1zM4.2 20.8c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4l1.4-1.4c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-1.4 1.4c-.2.2-.4.3-.7.3zM18.4 6.6c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4l1.4-1.4c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-1.4 1.4c-.2.2-.5.3-.7.3z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" viewBox="0 0 24 24" class="hidden dark:block" width="18" height="18" fill="currentColor"><path d="M12.1 22h-.9c-5.5-.5-9.5-5.4-9-10.9.4-4.8 4.2-8.6 9-9 .4 0 .8.2 1 .5.2.3.2.8-.1 1.1-2 2.7-1.4 6.4 1.3 8.4 2.1 1.6 5 1.6 7.1 0 .3-.2.7-.3 1.1-.1.3.2.5.6.5 1-.2 2.7-1.5 5.1-3.6 6.8-1.9 1.4-4.1 2.2-6.4 2.2zM9.3 4.4c-2.9 1-5 3.6-5.2 6.8-.4 4.4 2.8 8.3 7.2 8.7 2.1.2 4.2-.4 5.8-1.8 1.1-.9 1.9-2.1 2.4-3.4-2.5.9-5.3.5-7.5-1.1-2.8-2.2-3.9-5.9-2.7-9.2z"></path></svg></div></div></div><div class="social-links menu-item_93d67 flex-center relative"><div class="flex-center h-full gap-x-4 transition-colors duration-300 md:mr-2"><a href="https://github.com/web-infra-dev/modern.js/tree/main/packages/solutions/module-tools" target="_blank" rel="noopener noreferrer" class="social-links"><div class="social-links-icon_93d67"><svg role="img" viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg></div></a></div></div></div></div><div class="mobileNavMenu_f6cde"><div class="navScreen_457e8 " id="navScreen"><div class="container_457e8"><div class="navMenu_457e8"><div class="navMenuItem_457e8 w-full"><a class="link_03735 cursor-pointer" target="" href="/module-tools/guide/intro/welcome.html"><div class="rspress-nav-menu-item singleItem_f6cde text-sm font-medium mx-1.5 px-3 py-2 flex items-center">指南</div></a></div><div class="navMenuItem_457e8 w-full"><a class="link_03735 cursor-pointer" target="" href="/module-tools/api/index.html"><div class="rspress-nav-menu-item singleItem_f6cde text-sm font-medium mx-1.5 px-3 py-2 flex items-center">API</div></a></div><div class="navMenuItem_457e8 w-full"><a class="link_03735 cursor-pointer" target="" href="/module-tools/plugins/guide/getting-started.html"><div class="rspress-nav-menu-item singleItem_f6cde activeItem_f6cde text-sm font-medium mx-1.5 px-3 py-2 flex items-center">插件</div></a></div><div class="navMenuItem_457e8 w-full"><div class="mx-3 last:mr-0"><div class=" navScreenMenuGroup_457e8 relative"><button class="button_457e8"><span class="buttonSpan_457e8">v2.60.1</span><svg width="1em" height="1em" viewBox="0 0 32 32" class=" down_457e8 "><path fill="currentColor" d="M16 22 6 12l1.4-1.4 8.6 8.6 8.6-8.6L26 12z"></path></svg></button><div><div class="items_457e8"><div><div class="py-1 font-medium"><a href="https://github.com/web-infra-dev/modern.js/tree/main/packages/solutions/module-tools/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="link_03735 "><div><div class="flex justify-center"><span>更新日志</span></div></div></a></div></div><div><div class="py-1 font-medium"><a href="https://modernjs.dev/en/community/contributing-guide.html" target="_blank" rel="noopener noreferrer" class="link_03735 "><div><div class="flex justify-center"><span>贡献指南</span></div></div></a></div></div></div></div></div></div></div></div><div class="flex-center flex-col gap-2"><div class="mt-2 navAppearance_457e8 flex justify-center"></div><div class="flex text-sm font-bold justify-center"><div class="mx-1.5 my-1"><div class=" navScreenMenuGroup_457e8 relative"><button class="button_457e8"><span class="buttonSpan_457e8"><svg width="18" height="18" viewBox="0 0 32 32" style="width:18px;height:18px"><path fill="currentColor" d="M27.85 29H30l-6-15h-2.35l-6 15h2.15l1.6-4h6.85zm-7.65-6 2.62-6.56L25.45 23zM18 7V5h-7V2H9v3H2v2h10.74a14.71 14.71 0 0 1-3.19 6.18A13.5 13.5 0 0 1 7.26 9h-2.1a16.47 16.47 0 0 0 3 5.58A16.84 16.84 0 0 1 3 18l.75 1.86A18.47 18.47 0 0 0 9.53 16a16.92 16.92 0 0 0 5.76 3.84L16 18a14.48 14.48 0 0 1-5.12-3.37A17.64 17.64 0 0 0 14.8 7z"></path></svg></span><svg width="1em" height="1em" viewBox="0 0 32 32" class=" down_457e8 "><path fill="currentColor" d="M16 22 6 12l1.4-1.4 8.6 8.6 8.6-8.6L26 12z"></path></svg></button><div><div class="items_457e8"><div><div class="p-1 text-center"><span class="text-brand">简体中文</span></div></div><div><div class="py-1 font-medium"><a class="link_03735 cursor-pointer" target="" href="/module-tools/en/plugins/official-list/plugin-vue.html"><div><div class="flex justify-center"><span>English</span></div></div></a></div></div></div></div></div></div></div><div class="social-links menu-item_93d67 flex-center relative"><div class="flex-center h-full gap-x-4 transition-colors duration-300 md:mr-2"><a href="https://github.com/web-infra-dev/modern.js/tree/main/packages/solutions/module-tools" target="_blank" rel="noopener noreferrer" class="social-links"><div class="social-links-icon_93d67"><svg role="img" viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg></div></a></div></div></div></div></div><button aria-label="mobile hamburger" class=" navHamburger_e7b06 text-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><circle cx="8" cy="16" r="2" fill="currentColor"></circle><circle cx="16" cy="16" r="2" fill="currentColor"></circle><circle cx="24" cy="16" r="2" fill="currentColor"></circle></svg></button></div></div></div></div><section><div class="docLayout_edeb4 pt-0"><div class="rspress-sidebar-menu"><button class="flex-center mr-auto"><div class="text-md mr-2"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M4 6h24v2H4zm0 18h24v2H4zm0-12h24v2H4zm0 6h24v2H4z"></path></svg></div><span class="text-sm">Menu</span></button><button class="flex-center ml-auto"><span class="text-sm">目录</span><div class="text-md mr-2" style="transform:rotate(0deg);transition:transform 0.2s ease-out;margin-top:2px"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></button></div><aside class="sidebar_71eca rspress-sidebar "><div class="navTitleMask_71eca"><div class="navBarTitle_f6cde"><a href="/module-tools/" class="flex items-center w-full h-full text-base font-semibold transition-opacity duration-300 hover:opacity-60"><span>Modern.js Module</span></a></div></div><div class="rspress-scrollbar sidebarContent_71eca"><nav class="pb-2"><section class="mt-0.5 block" style="margin-left:0"><div class="flex justify-between items-center menuItem_71eca" style="border-radius:0 var(--rp-radius) var(--rp-radius) 0;cursor:pointer"><h2 class="py-2 px-3 text-sm font-medium flex" style="font-size:14px;padding-left:24px;font-weight:bold"><span class="flex-center" style="font-size:14px">指南</span></h2><div class="collapseContainer_71eca p-2 rounded-xl"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(90deg)"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div class="transition-all duration-300 ease-in-out" style="overflow:hidden"><div class="rspress-sidebar-group transition-opacity duration-500 ease-in-out" style="opacity:1;margin-left:12px"><div><a class="link_03735 menuLink_71eca cursor-pointer" target="" href="/module-tools/plugins/guide/getting-started.html"><div class="menuItem_71eca mt-0.5 py-2 px-3 font-medium flex" style="font-size:13px;margin-left:18px;border-radius:0 var(--rp-radius) var(--rp-radius) 0"><span>快速开始</span></div></a></div><div><a class="link_03735 menuLink_71eca cursor-pointer" target="" href="/module-tools/plugins/guide/plugin-object.html"><div class="menuItem_71eca mt-0.5 py-2 px-3 font-medium flex" style="font-size:13px;margin-left:18px;border-radius:0 var(--rp-radius) var(--rp-radius) 0"><span>插件对象</span></div></a></div><div><a class="link_03735 menuLink_71eca cursor-pointer" target="" href="/module-tools/plugins/guide/setup-function.html"><div class="menuItem_71eca mt-0.5 py-2 px-3 font-medium flex" style="font-size:13px;margin-left:18px;border-radius:0 var(--rp-radius) var(--rp-radius) 0"><span>Setup 函数</span></div></a></div></div></div></section><section class="mt-0.5 block" style="margin-left:0"><div class="flex justify-between items-center menuItem_71eca" style="border-radius:0 var(--rp-radius) var(--rp-radius) 0;cursor:pointer"><h2 class="py-2 px-3 text-sm font-medium flex" style="font-size:14px;padding-left:24px;font-weight:bold"><span class="flex-center" style="font-size:14px">插件列表</span></h2><div class="collapseContainer_71eca p-2 rounded-xl"><div style="cursor:pointer;transition:transform 0.2s ease-out;transform:rotate(90deg)"><svg width="1em" height="1em" viewBox="0 0 32 32"><path fill="currentColor" d="M22 16 12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z"></path></svg></div></div></div><div class="transition-all duration-300 ease-in-out" style="overflow:hidden"><div class="rspress-sidebar-group transition-opacity duration-500 ease-in-out" style="opacity:1;margin-left:12px"><div><a class="link_03735 menuLink_71eca cursor-pointer" target="" href="/module-tools/plugins/official-list/overview.html"><div class="menuItem_71eca mt-0.5 py-2 px-3 font-medium flex" style="font-size:13px;margin-left:18px;border-radius:0 var(--rp-radius) var(--rp-radius) 0"><span>总览</span></div></a></div><div><a class="link_03735 menuLink_71eca cursor-pointer" target="" href="/module-tools/plugins/official-list/plugin-babel.html"><div class="menuItem_71eca mt-0.5 py-2 px-3 font-medium flex" style="font-size:13px;margin-left:18px;border-radius:0 var(--rp-radius) var(--rp-radius) 0"><span>Babel 插件</span></div></a></div><div><a class="link_03735 menuLink_71eca cursor-pointer" target="" href="/module-tools/plugins/official-list/plugin-banner.html"><div class="menuItem_71eca mt-0.5 py-2 px-3 font-medium flex" style="font-size:13px;margin-left:18px;border-radius:0 var(--rp-radius) var(--rp-radius) 0"><span>Banner 插件</span></div></a></div><div><a class="link_03735 menuLink_71eca cursor-pointer" target="" href="/module-tools/plugins/official-list/plugin-import.html"><div class="menuItem_71eca mt-0.5 py-2 px-3 font-medium flex" style="font-size:13px;margin-left:18px;border-radius:0 var(--rp-radius) var(--rp-radius) 0"><span>Import 插件</span></div></a></div><div><a class="link_03735 menuLink_71eca cursor-pointer" target="" href="/module-tools/plugins/official-list/plugin-node-polyfill.html"><div class="menuItem_71eca mt-0.5 py-2 px-3 font-medium flex" style="font-size:13px;margin-left:18px;border-radius:0 var(--rp-radius) var(--rp-radius) 0"><span>Node Polyfill 插件</span></div></a></div><div><a class="link_03735 menuLink_71eca cursor-pointer" target="" href="/module-tools/plugins/official-list/plugin-polyfill.html"><div class="menuItem_71eca mt-0.5 py-2 px-3 font-medium flex" style="font-size:13px;margin-left:18px;border-radius:0 var(--rp-radius) var(--rp-radius) 0"><span>Polyfill 插件</span></div></a></div><div><a class="link_03735 menuLink_71eca cursor-pointer" target="" href="/module-tools/plugins/official-list/plugin-vue.html"><div class="menuItemActive_71eca mt-0.5 py-2 px-3 font-medium flex" style="font-size:13px;margin-left:18px;border-radius:0 var(--rp-radius) var(--rp-radius) 0"><span>Vue 插件</span></div></a></div></div></div></section></nav></div></aside><div class="content_edeb4 rspress-doc-container flex flex-shrink-0 mx-auto"><div class="w-full flex-1"><div><div class="rspress-doc"><!--$--><h1 id="vue-插件" class="text-3xl mb-10 leading-10 tracking-tight title_3b154">Vue 插件<a class="link_3b154 header-anchor" aria-hidden="true" href="#vue-插件">#</a></h1>
14
+ <p class="my-4 leading-7">Vue 插件提供了对 Vue 3 组件构建的支持,插件内部集成了 <a target="_blank" rel="noopener noreferrer" href="https://github.com/pipe01/esbuild-plugin-vue3" class="link_03735 link_3b154 inline-link_3b154">esbuild-plugin-vue3</a> 和 <a target="_blank" rel="noopener noreferrer" href="https://github.com/vuejs/babel-plugin-jsx" class="link_03735 link_3b154 inline-link_3b154">@vue/babel-plugin-jsx</a>。</p>
15
+ <div class="rspress-directive warning"><div class="rspress-directive-title">WARNING</div><div class="rspress-directive-content"><p class="my-4 leading-7">请注意,此插件仍有一些用法限制:</p>
16
+ <ol class="list-decimal pl-5 my-4 leading-7">
17
+ <li class="[&amp;:not(:first-child)]:mt-2">目前此插件的实现是直接集成社区插件,因此不支持在 sfc 里写 jsx/tsx。</li>
18
+ <li class="[&amp;:not(:first-child)]:mt-2">如果要为组件生成 d.ts,请使用官方推荐方式 <a target="_blank" rel="noopener noreferrer" href="https://www.npmjs.com/package/vue-tsc" class="link_03735 link_3b154 inline-link_3b154">vue-tsc</a>。</li>
19
+ <li class="[&amp;:not(:first-child)]:mt-2">仅支持打包场景,推荐将 input 设置为 <code>[&#x27;src/**/*.vue&#x27;]</code> 或者 <code>[&#x27;src/index.ts&#x27;]</code>。</li>
20
+ </ol>
21
+ </div></div>
22
+ <h2 id="快速开始" class="mt-12 mb-6 pt-8 text-2xl tracking-tight border-t-[1px] border-divider-light title_3b154">快速开始<a class="link_3b154 header-anchor" aria-hidden="true" href="#快速开始">#</a></h2>
23
+ <h3 id="安装" class="mt-10 mb-2 leading-7 text-xl title_3b154">安装<a class="link_3b154 header-anchor" aria-hidden="true" href="#安装">#</a></h3>
24
+ <!-- -->
25
+ <div class="container_fa768"><div><div class="tab-list_fa768 no-scrollbar_fa768" style="justify-content:flex-start"><div class="tab_fa768 selected_fa768"><div style="display:flex;align-items:center;font-size:15px"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 256 256"><path fill="#C12127" d="M0 256V0h256v256z"></path><path fill="#FFF" d="M48 48h160v160h-32V80h-48v128H48z"></path></svg><span style="margin-left:6px;margin-bottom:2px">npm</span></div></div><div class="tab_fa768 not-selected_fa768"><div style="display:flex;align-items:center;font-size:15px"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 128 128"><g fill="#2c8ebb"><path d="M99.24 80.71C94.9 80.76 91.1 83 87.89 85c-6 3.71-9 3.47-9 3.47l-.1-.17c-.41-.67 1.92-6.68-.69-13.84c-2.82-7.83-7.3-9.72-6.94-10.32c1.53-2.59 5.36-6.7 6.89-14.36c.91-4.64.67-12.28-1.39-16.28c-.38-.74-3.78 1.24-3.78 1.24s-3.18-7.09-4.07-7.66c-2.87-1.84-6 7.61-6 7.61a14 14 0 0 0-11.71 4.5a9.64 9.64 0 0 1-3.85 2.27c-.41.14-.91.12-2.15 3.47c-1.9 5.07 3.24 10.81 3.24 10.81s-6.13 4.33-8.4 9.72a24.78 24.78 0 0 0-1.75 11.68s-4.36 3.78-4.64 7.68a12.87 12.87 0 0 0 1.77 7.83a1.94 1.94 0 0 0 2.63.91s-2.9 3.38-.19 4.81c2.47 1.29 6.63 2 8.83-.19c1.6-1.6 1.92-5.17 2.51-6.63c.14-.34.62.57 1.08 1a10 10 0 0 0 1.36 1s-3.9 1.68-2.3 5.51c.53 1.27 2.42 2.08 5.51 2.06c1.15 0 13.76-.72 17.12-1.53a4.33 4.33 0 0 0 2.61-1.46a63 63 0 0 0 15.49-7c4.74-3.09 6.68-3.93 10.51-4.84c3.16-.75 2.95-5.65-1.24-5.58z"></path><path d="M64 2a62 62 0 1 0 62 62A62 62 0 0 0 64 2zm37.3 87.83c-3.35.81-4.91 1.44-9.41 4.36a67 67 0 0 1-15.56 7.18a8.71 8.71 0 0 1-3.64 1.77c-3.81.93-16.88 1.63-17.91 1.63h-.24c-4 0-6.27-1.24-7.49-2.54c-3.4 1.7-7.8 1-11-.69a5.55 5.55 0 0 1-3-3.9a6 6 0 0 1 0-2.06a6.66 6.66 0 0 1-.79-1A16.38 16.38 0 0 1 30 84.52c.29-3.73 2.87-7.06 4.55-8.83A28.56 28.56 0 0 1 36.61 64a26.82 26.82 0 0 1 6.82-9c-1.65-2.78-3.33-7.06-1.7-11.42c1.17-3.11 2.13-4.84 4.24-5.58a6.84 6.84 0 0 0 2.51-1.34A17.65 17.65 0 0 1 60.34 31c.19-.48.41-1 .65-1.46c1.6-3.4 3.3-5.31 5.29-6a4.88 4.88 0 0 1 4.4.5c.65.43 1.48 1 3.9 6a4.69 4.69 0 0 1 2.85-.1a3.81 3.81 0 0 1 2.39 1.94c2.47 4.74 2.8 13.19 1.72 18.62a33.8 33.8 0 0 1-5.84 13.31a25.73 25.73 0 0 1 5.77 9.43a25.42 25.42 0 0 1 1.41 10.41A28.7 28.7 0 0 0 86 81.91c3.06-1.89 7.68-4.74 13.19-4.81a6.62 6.62 0 0 1 7 5.7a6.35 6.35 0 0 1-4.89 7.03z"></path></g></svg><span style="margin-left:6px;margin-bottom:2px">yarn</span></div></div><div class="tab_fa768 not-selected_fa768"><div style="display:flex;align-items:center;font-size:15px"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 128 128"><path fill="#f8ab00" d="M0 .004V40h39.996V.004Zm43.996 0V40h40V.004Zm44.008 0V40H128V.004Zm0 43.996v39.996H128V44Z"></path><path fill="#4c4c4c" d="M43.996 44v39.996h40V44ZM0 87.996v40h39.996v-40Zm43.996 0v40h40v-40Zm44.008 0v40H128v-40Z"></path></svg><span style="margin-left:6px;margin-bottom:2px">pnpm</span></div></div><div class="tab_fa768 not-selected_fa768"><div style="display:flex;align-items:center;font-size:15px"><svg id="Bun" width="1.2em" height="1.2em" viewBox="0 0 80 70"><path id="Shadow" d="M71.09,20.74c-.16-.17-.33-.34-.5-.5s-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5-.33-.34-.5-.5A26.46,26.46,0,0,1,75.5,35.7c0,16.57-16.82,30.05-37.5,30.05-11.58,0-21.94-4.23-28.83-10.86l.5.5.5.5.5.5.5.5.5.5.5.5.5.5C19.55,65.3,30.14,69.75,42,69.75c20.68,0,37.5-13.48,37.5-30C79.5,32.69,76.46,26,71.09,20.74Z"></path><g id="Body"><path id="Background" d="M73,35.7c0,15.21-15.67,27.54-35,27.54S3,50.91,3,35.7C3,26.27,9,17.94,18.22,13S33.18,3,38,3s8.94,4.13,19.78,10C67,17.94,73,26.27,73,35.7Z" style="fill:#fbf0df"></path><path id="Bottom_Shadow" data-name="Bottom Shadow" d="M73,35.7a21.67,21.67,0,0,0-.8-5.78c-2.73,33.3-43.35,34.9-59.32,24.94A40,40,0,0,0,38,63.24C57.3,63.24,73,50.89,73,35.7Z" style="fill:#f6dece"></path><path id="Light_Shine" data-name="Light Shine" d="M24.53,11.17C29,8.49,34.94,3.46,40.78,3.45A9.29,9.29,0,0,0,38,3c-2.42,0-5,1.25-8.25,3.13-1.13.66-2.3,1.39-3.54,2.15-2.33,1.44-5,3.07-8,4.7C8.69,18.13,3,26.62,3,35.7c0,.4,0,.8,0,1.19C9.06,15.48,20.07,13.85,24.53,11.17Z" style="fill:#fffefc"></path><path id="Top" d="M35.12,5.53A16.41,16.41,0,0,1,29.49,18c-.28.25-.06.73.3.59,3.37-1.31,7.92-5.23,6-13.14C35.71,5,35.12,5.12,35.12,5.53Zm2.27,0A16.24,16.24,0,0,1,39,19c-.12.35.31.65.55.36C41.74,16.56,43.65,11,37.93,5,37.64,4.74,37.19,5.14,37.39,5.49Zm2.76-.17A16.42,16.42,0,0,1,47,17.12a.33.33,0,0,0,.65.11c.92-3.49.4-9.44-7.17-12.53C40.08,4.54,39.82,5.08,40.15,5.32ZM21.69,15.76a16.94,16.94,0,0,0,10.47-9c.18-.36.75-.22.66.18-1.73,8-7.52,9.67-11.12,9.45C21.32,16.4,21.33,15.87,21.69,15.76Z" style="fill:#ccbea7;fill-rule:evenodd"></path><path id="Outline" d="M38,65.75C17.32,65.75.5,52.27.5,35.7c0-10,6.18-19.33,16.53-24.92,3-1.6,5.57-3.21,7.86-4.62,1.26-.78,2.45-1.51,3.6-2.19C32,1.89,35,.5,38,.5s5.62,1.2,8.9,3.14c1,.57,2,1.19,3.07,1.87,2.49,1.54,5.3,3.28,9,5.27C69.32,16.37,75.5,25.69,75.5,35.7,75.5,52.27,58.68,65.75,38,65.75ZM38,3c-2.42,0-5,1.25-8.25,3.13-1.13.66-2.3,1.39-3.54,2.15-2.33,1.44-5,3.07-8,4.7C8.69,18.13,3,26.62,3,35.7,3,50.89,18.7,63.25,38,63.25S73,50.89,73,35.7C73,26.62,67.31,18.13,57.78,13,54,11,51.05,9.12,48.66,7.64c-1.09-.67-2.09-1.29-3-1.84C42.63,4,40.42,3,38,3Z"></path></g><g id="Mouth"><g id="Background-2" data-name="Background"><path d="M45.05,43a8.93,8.93,0,0,1-2.92,4.71,6.81,6.81,0,0,1-4,1.88A6.84,6.84,0,0,1,34,47.71,8.93,8.93,0,0,1,31.12,43a.72.72,0,0,1,.8-.81H44.26A.72.72,0,0,1,45.05,43Z" style="fill:#b71422"></path></g><g id="Tongue"><path id="Background-3" data-name="Background" d="M34,47.79a6.91,6.91,0,0,0,4.12,1.9,6.91,6.91,0,0,0,4.11-1.9,10.63,10.63,0,0,0,1-1.07,6.83,6.83,0,0,0-4.9-2.31,6.15,6.15,0,0,0-5,2.78C33.56,47.4,33.76,47.6,34,47.79Z" style="fill:#ff6164"></path><path id="Outline-2" data-name="Outline" d="M34.16,47a5.36,5.36,0,0,1,4.19-2.08,6,6,0,0,1,4,1.69c.23-.25.45-.51.66-.77a7,7,0,0,0-4.71-1.93,6.36,6.36,0,0,0-4.89,2.36A9.53,9.53,0,0,0,34.16,47Z"></path></g><path id="Outline-3" data-name="Outline" d="M38.09,50.19a7.42,7.42,0,0,1-4.45-2,9.52,9.52,0,0,1-3.11-5.05,1.2,1.2,0,0,1,.26-1,1.41,1.41,0,0,1,1.13-.51H44.26a1.44,1.44,0,0,1,1.13.51,1.19,1.19,0,0,1,.25,1h0a9.52,9.52,0,0,1-3.11,5.05A7.42,7.42,0,0,1,38.09,50.19Zm-6.17-7.4c-.16,0-.2.07-.21.09a8.29,8.29,0,0,0,2.73,4.37A6.23,6.23,0,0,0,38.09,49a6.28,6.28,0,0,0,3.65-1.73,8.3,8.3,0,0,0,2.72-4.37.21.21,0,0,0-.2-.09Z"></path></g><g id="Face"><ellipse id="Right_Blush" data-name="Right Blush" cx="53.22" cy="40.18" rx="5.85" ry="3.44" style="fill:#febbd0"></ellipse><ellipse id="Left_Bluch" data-name="Left Bluch" cx="22.95" cy="40.18" rx="5.85" ry="3.44" style="fill:#febbd0"></ellipse><path id="Eyes" d="M25.7,38.8a5.51,5.51,0,1,0-5.5-5.51A5.51,5.51,0,0,0,25.7,38.8Zm24.77,0A5.51,5.51,0,1,0,45,33.29,5.5,5.5,0,0,0,50.47,38.8Z" style="fill-rule:evenodd"></path><path id="Iris" d="M24,33.64a2.07,2.07,0,1,0-2.06-2.07A2.07,2.07,0,0,0,24,33.64Zm24.77,0a2.07,2.07,0,1,0-2.06-2.07A2.07,2.07,0,0,0,48.75,33.64Z" style="fill:#fff;fill-rule:evenodd"></path></g></svg><span style="margin-left:6px;margin-bottom:2px">bun</span></div></div></div></div><div><div class="rounded px-2"><div class="language-js"><div class="rspress-code-content rspress-scrollbar"><div><pre class="code" style="background-color:inherit"><code class="language-js" style="white-space:pre"><span style="display:block;padding:0 1.25rem"><span>npm add @modern</span><span class="token operator">-</span><span>js</span><span class="token operator">/</span><span>plugin</span><span class="token operator">-</span><span>module</span><span class="token operator">-</span><span>vue </span><span class="token operator">-</span><span class="token" style="color:var(--code-token-constant)">D</span></span></code></pre></div><div class="code-button-group_15153"><button title="Toggle code wrap"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" class="icon-wrapped_15153"><path fill="#22a041" d="M21 5H3v2h18zM3 19h7v-2H3zm0-6h15c1 0 2 .43 2 2s-1 2-2 2h-2v-2l-4 3 4 3v-2h2c2.95 0 4-1.27 4-4 0-2.72-1-4-4-4H3z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" class="icon-wrap_15153"><path fill="currentColor" d="M16 7H3V5h13v2M3 19h13v-2H3v2m19-7-4-3v2H3v2h15v2l4-3Z"></path></svg></button><button class="code-copy-button_15153" title="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 30 30" class="icon-copy_15153"><path fill="currentColor" d="M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z"></path><path fill="currentColor" d="M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z"></path></svg><svg width="32" height="32" viewBox="0 0 30 30" class="icon-success_15153"><path fill="#49cd37" d="m13 24-9-9 1.414-1.414L13 21.171 26.586 7.586 28 9 13 24z"></path></svg></button></div></div></div></div></div></div>
26
+ <h3 id="注册插件" class="mt-10 mb-2 leading-7 text-xl title_3b154">注册插件<a class="link_3b154 header-anchor" aria-hidden="true" href="#注册插件">#</a></h3>
27
+ <p class="my-4 leading-7">在 Modern.js Module 中,你可以按照如下方式注册插件:</p>
28
+ <div class="language-ts"><div class="rspress-code-content rspress-scrollbar"><div><pre class="code" style="background-color:inherit"><code class="language-ts" style="white-space:pre"><span style="display:block;padding:0 1.25rem"><span class="token" style="color:var(--code-token-keyword)">import</span><span> </span><span class="token" style="color:var(--code-token-punctuation)">{</span><span> moduleTools</span><span class="token" style="color:var(--code-token-punctuation)">,</span><span> defineConfig </span><span class="token" style="color:var(--code-token-punctuation)">}</span><span> </span><span class="token" style="color:var(--code-token-keyword)">from</span><span> </span><span class="token" style="color:var(--code-token-string)">&#x27;@modern-js/module-tools&#x27;</span><span class="token" style="color:var(--code-token-punctuation)">;</span><span>
29
+ </span></span><span style="display:block;padding:0 1.25rem"><span></span><span class="token" style="color:var(--code-token-keyword)">import</span><span> </span><span class="token" style="color:var(--code-token-punctuation)">{</span><span> modulePluginVue </span><span class="token" style="color:var(--code-token-punctuation)">}</span><span> </span><span class="token" style="color:var(--code-token-keyword)">from</span><span> </span><span class="token" style="color:var(--code-token-string)">&#x27;@modern-js/plugin-module-vue&#x27;</span><span class="token" style="color:var(--code-token-punctuation)">;</span><span>
30
+ </span></span><span style="display:block;padding:0 1.25rem">
31
+ </span><span style="display:block;padding:0 1.25rem"><span></span><span class="token" style="color:var(--code-token-keyword)">export</span><span> </span><span class="token" style="color:var(--code-token-keyword)">default</span><span> </span><span class="token" style="color:var(--code-token-function)">defineConfig</span><span class="token" style="color:var(--code-token-punctuation)">(</span><span class="token" style="color:var(--code-token-punctuation)">{</span><span>
32
+ </span></span><span style="display:block;padding:0 1.25rem"><span> plugins</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-punctuation)">[</span><span class="token" style="color:var(--code-token-function)">moduleTools</span><span class="token" style="color:var(--code-token-punctuation)">(</span><span class="token" style="color:var(--code-token-punctuation)">)</span><span class="token" style="color:var(--code-token-punctuation)">,</span><span> </span><span class="token" style="color:var(--code-token-function)">modulePluginVue</span><span class="token" style="color:var(--code-token-punctuation)">(</span><span class="token" style="color:var(--code-token-punctuation)">)</span><span class="token" style="color:var(--code-token-punctuation)">]</span><span class="token" style="color:var(--code-token-punctuation)">,</span><span>
33
+ </span></span><span style="display:block;padding:0 1.25rem"><span> buildConfig</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-punctuation)">{</span><span>
34
+ </span></span><span style="display:block;padding:0 1.25rem"><span> buildType</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-string)">&#x27;bundle&#x27;</span><span class="token" style="color:var(--code-token-punctuation)">,</span><span>
35
+ </span></span><span style="display:block;padding:0 1.25rem"><span> format</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-string)">&#x27;esm&#x27;</span><span class="token" style="color:var(--code-token-punctuation)">,</span><span>
36
+ </span></span><span style="display:block;padding:0 1.25rem"><span> input</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-punctuation)">[</span><span class="token" style="color:var(--code-token-string)">&#x27;src/index.vue&#x27;</span><span class="token" style="color:var(--code-token-punctuation)">]</span><span class="token" style="color:var(--code-token-punctuation)">,</span><span>
37
+ </span></span><span style="display:block;padding:0 1.25rem"><span> dts</span><span class="token operator">:</span><span> </span><span class="token boolean">false</span><span class="token" style="color:var(--code-token-punctuation)">,</span><span>
38
+ </span></span><span style="display:block;padding:0 1.25rem"><span> </span><span class="token" style="color:var(--code-token-punctuation)">}</span><span class="token" style="color:var(--code-token-punctuation)">,</span><span>
39
+ </span></span><span style="display:block;padding:0 1.25rem"><span></span><span class="token" style="color:var(--code-token-punctuation)">}</span><span class="token" style="color:var(--code-token-punctuation)">)</span><span class="token" style="color:var(--code-token-punctuation)">;</span></span></code></pre></div><div class="code-button-group_15153"><button title="Toggle code wrap"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" class="icon-wrapped_15153"><path fill="#22a041" d="M21 5H3v2h18zM3 19h7v-2H3zm0-6h15c1 0 2 .43 2 2s-1 2-2 2h-2v-2l-4 3 4 3v-2h2c2.95 0 4-1.27 4-4 0-2.72-1-4-4-4H3z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" class="icon-wrap_15153"><path fill="currentColor" d="M16 7H3V5h13v2M3 19h13v-2H3v2m19-7-4-3v2H3v2h15v2l4-3Z"></path></svg></button><button class="code-copy-button_15153" title="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 30 30" class="icon-copy_15153"><path fill="currentColor" d="M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z"></path><path fill="currentColor" d="M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z"></path></svg><svg width="32" height="32" viewBox="0 0 30 30" class="icon-success_15153"><path fill="#49cd37" d="m13 24-9-9 1.414-1.414L13 21.171 26.586 7.586 28 9 13 24z"></path></svg></button></div></div></div>
40
+ <h2 id="配置" class="mt-12 mb-6 pt-8 text-2xl tracking-tight border-t-[1px] border-divider-light title_3b154">配置<a class="link_3b154 header-anchor" aria-hidden="true" href="#配置">#</a></h2>
41
+ <h3 id="vuejsxpluginoptions" class="mt-10 mb-2 leading-7 text-xl title_3b154">vueJsxPluginOptions<a class="link_3b154 header-anchor" aria-hidden="true" href="#vuejsxpluginoptions">#</a></h3>
42
+ <ul class="list-disc pl-5 my-4 leading-7">
43
+ <li class="[&amp;:not(:first-child)]:mt-2"><strong class="font-semibold">Type:</strong></li>
44
+ </ul>
45
+ <div class="language-ts"><div class="rspress-code-content rspress-scrollbar"><div><pre class="code" style="background-color:inherit"><code class="language-ts" style="white-space:pre"><span style="display:block;padding:0 1.25rem"><span class="token" style="color:var(--code-token-keyword)">type</span><span> </span><span class="token class-name">VueJSXPluginOptions</span><span> </span><span class="token operator">=</span><span> </span><span class="token" style="color:var(--code-token-punctuation)">{</span><span>
46
+ </span></span><span style="display:block;padding:0 1.25rem"><span> </span><span class="token" style="color:var(--code-token-comment)">/** transform `on: { click: xx }` to `onClick: xxx` */</span><span>
47
+ </span></span><span style="display:block;padding:0 1.25rem"><span> transformOn</span><span class="token operator">?</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-symbol)">boolean</span><span class="token" style="color:var(--code-token-punctuation)">;</span><span>
48
+ </span></span><span style="display:block;padding:0 1.25rem"><span> </span><span class="token" style="color:var(--code-token-comment)">/** enable optimization or not. */</span><span>
49
+ </span></span><span style="display:block;padding:0 1.25rem"><span> optimize</span><span class="token operator">?</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-symbol)">boolean</span><span class="token" style="color:var(--code-token-punctuation)">;</span><span>
50
+ </span></span><span style="display:block;padding:0 1.25rem"><span> </span><span class="token" style="color:var(--code-token-comment)">/** merge static and dynamic class / style attributes / onXXX handlers */</span><span>
51
+ </span></span><span style="display:block;padding:0 1.25rem"><span> mergeProps</span><span class="token operator">?</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-symbol)">boolean</span><span class="token" style="color:var(--code-token-punctuation)">;</span><span>
52
+ </span></span><span style="display:block;padding:0 1.25rem"><span> </span><span class="token" style="color:var(--code-token-comment)">/** configuring custom elements */</span><span>
53
+ </span></span><span style="display:block;padding:0 1.25rem"><span> isCustomElement</span><span class="token operator">?</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-punctuation)">(</span><span>tag</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-symbol)">string</span><span class="token" style="color:var(--code-token-punctuation)">)</span><span> </span><span class="token operator">=&gt;</span><span> </span><span class="token" style="color:var(--code-token-symbol)">boolean</span><span class="token" style="color:var(--code-token-punctuation)">;</span><span>
54
+ </span></span><span style="display:block;padding:0 1.25rem"><span> </span><span class="token" style="color:var(--code-token-comment)">/** enable object slots syntax */</span><span>
55
+ </span></span><span style="display:block;padding:0 1.25rem"><span> enableObjectSlots</span><span class="token operator">?</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-symbol)">boolean</span><span class="token" style="color:var(--code-token-punctuation)">;</span><span>
56
+ </span></span><span style="display:block;padding:0 1.25rem"><span> </span><span class="token" style="color:var(--code-token-comment)">/** Replace the function used when compiling JSX expressions */</span><span>
57
+ </span></span><span style="display:block;padding:0 1.25rem"><span> pragma</span><span class="token operator">?</span><span class="token operator">:</span><span> </span><span class="token" style="color:var(--code-token-symbol)">string</span><span class="token" style="color:var(--code-token-punctuation)">;</span><span>
58
+ </span></span><span style="display:block;padding:0 1.25rem"><span></span><span class="token" style="color:var(--code-token-punctuation)">}</span><span class="token" style="color:var(--code-token-punctuation)">;</span></span></code></pre></div><div class="code-button-group_15153"><button title="Toggle code wrap"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" class="icon-wrapped_15153"><path fill="#22a041" d="M21 5H3v2h18zM3 19h7v-2H3zm0-6h15c1 0 2 .43 2 2s-1 2-2 2h-2v-2l-4 3 4 3v-2h2c2.95 0 4-1.27 4-4 0-2.72-1-4-4-4H3z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" class="icon-wrap_15153"><path fill="currentColor" d="M16 7H3V5h13v2M3 19h13v-2H3v2m19-7-4-3v2H3v2h15v2l4-3Z"></path></svg></button><button class="code-copy-button_15153" title="Copy code"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 30 30" class="icon-copy_15153"><path fill="currentColor" d="M28 10v18H10V10h18m0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2Z"></path><path fill="currentColor" d="M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z"></path></svg><svg width="32" height="32" viewBox="0 0 30 30" class="icon-success_15153"><path fill="#49cd37" d="m13 24-9-9 1.414-1.414L13 21.171 26.586 7.586 28 9 13 24z"></path></svg></button></div></div></div>
59
+ <ul class="list-disc pl-5 my-4 leading-7">
60
+ <li class="[&amp;:not(:first-child)]:mt-2"><strong class="font-semibold">Default:</strong> <code>{}</code></li>
61
+ </ul>
62
+ <p class="my-4 leading-7">传递给 <code>@vue/babel-plugin-jsx</code> 的选项,请查阅 <a target="_blank" rel="noopener noreferrer" href="https://github.com/vuejs/babel-plugin-jsx" class="link_03735 link_3b154 inline-link_3b154">@vue/babel-plugin-jsx</a> 文档 来了解具体用法。</p><!--/$--></div><div class="rspress-doc-footer"><footer class="mt-8"><div class="xs:flex pb-5 px-2 justify-end items-center"></div><div class="flex flex-col"><a href="https://github.com/web-infra-dev/modern.js/tree/main/packages/document/module-doc/docs/zh/plugins/official-list/plugin-vue.mdx" target="_blank" class="editLink_2a169">Edit this page on GitHub</a></div><div class="flex flex-col sm:flex-row sm:justify-around gap-4 pt-6"><div class="prev_e7091 flex flex-col"><a class="link_03735 pager-link_9b9a7 cursor-pointer" target="" href="/module-tools/plugins/official-list/plugin-polyfill.html"><span class="desc_9b9a7">上一页</span><span class="title_9b9a7">Polyfill 插件</span></a></div><div class="next_e7091 flex flex-col"></div></div></footer></div></div></div><div class="aside-container_edeb4"><div><div class="flex flex-col"><div class="&lt;lg:hidden"><div id="aside-container" class="relative text-sm font-medium"><div class="leading-7 block text-sm font-semibold pl-3">目录</div><nav class="mt-1"><ul class="relative"><li><a href="#快速开始" title="快速开始" class="aside-link transition-all duration-300 hover:text-text-1 text-text-2 block" style="margin-left:0;font-weight:semibold"><span class="aside-link-text block">快速开始</span></a></li><li><a href="#安装" title="安装" class="aside-link transition-all duration-300 hover:text-text-1 text-text-2 block" style="margin-left:12px;font-weight:semibold"><span class="aside-link-text block">安装</span></a></li><li><a href="#注册插件" title="注册插件" class="aside-link transition-all duration-300 hover:text-text-1 text-text-2 block" style="margin-left:12px;font-weight:semibold"><span class="aside-link-text block">注册插件</span></a></li><li><a href="#配置" title="配置" class="aside-link transition-all duration-300 hover:text-text-1 text-text-2 block" style="margin-left:0;font-weight:semibold"><span class="aside-link-text block">配置</span></a></li><li><a href="#vuejsxpluginoptions" title="vueJsxPluginOptions" class="aside-link transition-all duration-300 hover:text-text-1 text-text-2 block" style="margin-left:12px;font-weight:semibold"><span class="aside-link-text block">vueJsxPluginOptions</span></a></li></ul></nav></div></div></div></div></div></div></div></section></div></div>
63
+ <div id="search-container"></div>
64
+ </body>
65
+
66
+ </html>
@@ -0,0 +1 @@
1
+ .medium-zoom-overlay,.medium-zoom-image--opened{z-index:999}:root{--rp-container-note-border:var(--rp-c-divider-light);--rp-container-note-text:var(--rp-c-text-1);--rp-container-note-bg:var(--rp-c-bg-soft);--rp-container-note-code-bg:#8080801a;--rp-container-note-link:var(--rp-c-link);--rp-container-tip-border:#079c7033;--rp-container-tip-text:#278359;--rp-container-tip-bg:#079c700f;--rp-container-tip-code-bg:#079c701a;--rp-container-info-border:#0095ff33;--rp-container-info-text:#07f;--rp-container-info-bg:#0095ff0f;--rp-container-info-code-bg:#0095ff1a;--rp-container-warning-border:#ffc51766;--rp-container-warning-text:#887233;--rp-container-warning-bg:#ffc5171a;--rp-container-warning-code-bg:#ffc5171a;--rp-container-danger-border:#ed3c5033;--rp-container-danger-text:#ab2131;--rp-container-danger-bg:#ed3c5014;--rp-container-danger-code-bg:#ed3c501a;--rp-container-details-border:var(--rp-c-divider-light);--rp-container-details-text:var(--rp-c-text-1);--rp-container-details-bg:var(--rp-c-bg-soft);--rp-container-details-code-bg:#8080801a;--rp-container-details-link:var(--rp-c-link)}.dark{--rp-container-tip-text:#3ec480;--rp-container-tip-bg:#079c701a;--rp-container-info-text:#66c2ff;--rp-container-info-bg:#0095ff1a;--rp-container-warning-text:#fbb451;--rp-container-warning-border:#ffc51740;--rp-container-warning-bg:#ffc5171f;--rp-container-danger-text:#f76e85;--rp-container-danger-border:#ed3c504d;--rp-container-danger-bg:#ed3c501f}.rspress-doc .rspress-directive{border-radius:var(--rp-radius);border:1px solid #0000;margin:24px 0;padding:20px 24px 12px;font-size:14px;font-weight:400;line-height:1.7}.rspress-doc .rspress-directive .rspress-directive-title{margin-bottom:8px;font-size:16px;font-weight:600}.rspress-doc .rspress-directive .rspress-directive-content p{margin:8px 0}.rspress-doc .rspress-directive .rspress-directive-icon{width:20px;height:20px;margin-right:3px;display:inline-block}.rspress-doc .rspress-directive p{margin:8px 0}.rspress-doc .rspress-directive code{color:inherit;font-size:13px}.rspress-doc .rspress-directive a{border-bottom:1px solid;font-weight:500;transition:color .25s}.rspress-doc .rspress-directive.note{border-color:var(--rp-container-note-border);background-color:var(--rp-container-note-bg)}.rspress-doc .rspress-directive.note .rspress-directive-title{color:var(--rp-container-note-text)}.rspress-doc .rspress-directive.note code{color:var(--rp-container-note-text);background-color:var(--rp-container-note-code-bg)}.rspress-doc .rspress-directive.note a{color:var(--rp-container-note-text)}.rspress-doc .rspress-directive.tip{border-color:var(--rp-container-tip-border);background-color:var(--rp-container-tip-bg)}.rspress-doc .rspress-directive.tip .rspress-directive-title{color:var(--rp-container-tip-text)}.rspress-doc .rspress-directive.tip code{color:var(--rp-container-tip-text);background-color:var(--rp-container-tip-code-bg)}.rspress-doc .rspress-directive.tip a{color:var(--rp-container-tip-text)}.rspress-doc .rspress-directive.info{border-color:var(--rp-container-info-border);background-color:var(--rp-container-info-bg)}.rspress-doc .rspress-directive.info .rspress-directive-title{color:var(--rp-container-info-text)}.rspress-doc .rspress-directive.info code{color:var(--rp-container-info-text);background-color:var(--rp-container-info-code-bg)}.rspress-doc .rspress-directive.info a{color:var(--rp-container-info-text)}.rspress-doc .rspress-directive.warning{border-color:var(--rp-container-warning-border);background-color:var(--rp-container-warning-bg)}.rspress-doc .rspress-directive.warning .rspress-directive-title{color:var(--rp-container-warning-text)}.rspress-doc .rspress-directive.warning code{color:var(--rp-container-warning-text);background-color:var(--rp-container-warning-code-bg)}.rspress-doc .rspress-directive.warning a{color:var(--rp-container-warning-text)}.rspress-doc .rspress-directive.caution,.rspress-doc .rspress-directive.danger{border-color:var(--rp-container-danger-border);background-color:var(--rp-container-danger-bg)}.rspress-doc .rspress-directive.caution .rspress-directive-title,.rspress-doc .rspress-directive.danger .rspress-directive-title{color:var(--rp-container-danger-text)}.rspress-doc .rspress-directive.caution code,.rspress-doc .rspress-directive.danger code{color:var(--rp-container-danger-text);background-color:var(--rp-container-danger-code-bg)}.rspress-doc .rspress-directive.caution a,.rspress-doc .rspress-directive.danger a{color:var(--rp-container-danger-text)}.rspress-doc .rspress-directive.details{border-color:var(--rp-container-details-border);background-color:var(--rp-container-details-bg)}.rspress-doc .rspress-directive.details .rspress-directive-title{color:var(--rp-container-details-text)}.rspress-doc .rspress-directive.details code{color:var(--rp-container-details-text);background-color:var(--rp-container-details-code-bg)}.rspress-doc .rspress-directive.details a{color:var(--rp-container-details-link)}:root{--rp-nav-height:72px;--rp-sidebar-width:320px;--rp-aside-width:268px;--rp-c-bg:#fff;--rp-c-bg-soft:#f9f9f9;--rp-c-bg-mute:#f1f1f1;--rp-c-divider:#3c3c3c4a;--rp-c-divider-light:#3c3c3c1a;--rp-c-text-1:#213547;--rp-c-text-2:#3c3c3ca8;--rp-c-text-3:#3c3c3c54;--rp-c-text-4:#3c3c3c2e;--rp-c-text-code:#476573;--rp-c-text-code-bg:#99a1b31a;--rp-c-brand:#0095ff;--rp-c-brand-light:#33adff;--rp-c-brand-lighter:#66c2ff;--rp-c-brand-dark:#07f;--rp-c-brand-darker:#005fcc;--rp-c-brand-tint:#7fa3ff29;--rp-c-gray:#8e8e8e;--rp-c-gray-light-1:#aeaeae;--rp-c-gray-light-2:#c7c7c7;--rp-c-gray-light-3:#d1d1d1;--rp-c-gray-light-4:#e5e5e5;--rp-c-gray-light-5:#f2f2f2;--rp-c-dark:#000;--rp-c-dark-light-1:#2f2f2f;--rp-c-dark-light-2:#3a3a3a;--rp-c-dark-light-3:#4a4a4a;--rp-c-dark-light-4:#5c5c5c;--rp-c-dark-light-5:#6b6b6b;--rp-radius:1rem;--rp-radius-small:.5rem;--rp-radius-large:1.5rem;--rp-c-link:var(--rp-c-brand-dark)}.dark{--rp-c-bg:#23272f;--rp-c-bg-soft:#292e37;--rp-c-bg-mute:#343a46;--rp-c-bg-alt:#000;--rp-c-divider:#545454a6;--rp-c-divider-light:#5454547a;--rp-c-text-1:#ffffffde;--rp-c-text-2:#ebebeb8f;--rp-c-text-3:#ebebeb61;--rp-c-text-4:#ebebeb2e;--rp-c-text-code:#c9def1;--rp-c-link:var(--rp-c-brand-light)}:root{--rp-z-index-local-nav:10;--rp-z-index-nav:20;--rp-z-index-backdrop:30;--rp-z-index-sidebar:40;--rp-shadow-1:0 1px 4px #00000005,0 1px 0 #0000000f;--rp-shadow-2:0 3px 12px #00000012,0 1px 4px #00000012;--rp-shadow-3:0 12px 32px #0000001a,0 2px 6px #00000014;--rp-shadow-4:0 14px 44px #0000001f,0 3px 9px #0000001f;--rp-shadow-5:0 18px 56px #00000029,0 4px 12px #00000029}*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{color:inherit;border-top-width:1px;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]{display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.bottom-0{bottom:0}.right-0{right:0}.top-8{top:2rem}.z-10{z-index:10}.z-\[1\]{z-index:1}.order-1{order:1}.order-2{order:2}.-m-1\.5{margin:-.375rem}.m-8{margin:2rem}.m-auto{margin:auto}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-12{margin-top:3rem;margin-bottom:3rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mb-10{margin-bottom:2.5rem}.mb-11{margin-bottom:2.75rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-auto{margin-right:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-14{height:3.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-\[50px\]{height:50px}.h-full{height:100%}.min-h-\[50vh\]{min-height:50vh}.w-12{width:3rem}.w-16{width:4rem}.w-32{width:8rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-\[50px\]{width:50px}.w-full{width:100%}.max-w-6xl{max-width:72rem}.max-w-xl{max-width:36rem}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-4{column-gap:1rem}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-4xl{border-radius:2rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-t,.border-t-\[1px\]{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-brand{border-color:var(--rp-c-brand)}.border-divider{border-color:var(--rp-c-divider)}.border-divider-light{border-color:var(--rp-c-divider-light)}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-gray-light-3{border-color:var(--rp-c-gray-light-3)}.border-transparent{border-color:#0000}.bg-gray-light-1{background-color:var(--rp-c-gray-light-1)}.bg-white{background-color:var(--rp-c-bg)}.p-1{padding:.25rem}.p-16{padding:4rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-12{padding-bottom:3rem}.pb-2{padding-bottom:.5rem}.pb-5{padding-bottom:1.25rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-2xl{font-size:1.625rem}.text-3xl{font-size:2rem}.text-6xl{font-size:3.75rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.25rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.375rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-10{line-height:2.5rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.text-brand{color:var(--rp-c-brand)}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-text-1{color:var(--rp-c-text-1)}.text-text-2{color:var(--rp-c-text-2)}.opacity-80{opacity:.8}.outline{outline-style:solid}.blur{--tw-blur:blur(8px);filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[counter-reset\:step\]{counter-reset:step}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--rp-nav-height);font-size:16px;line-height:1.7}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--rp-font-family-base);color:var(--rp-c-text-1);background-color:var(--rp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;direction:ltr;width:100%;min-width:320px;margin:0;font-size:16px;font-weight:400}button:focus{outline:none}button:focus-visible{outline:none}.visually-hidden{visibility:hidden}.flex-center{justify-content:center;align-items:center;display:flex}.menu{justify-content:space-around;align-items:center;font-size:.875rem;font-weight:700;line-height:1.25rem;display:flex}.rspress-logo{height:1.6rem}#nprogress .bar{background:var(--rp-c-brand);width:100%;height:2px;position:fixed;top:0;left:0}:root{--code-color-text:#414141;--code-color-background:transparent;--code-token-constant:#f59403;--code-token-string:#31a94d;--code-token-comment:#b6b4b4;--code-token-keyword:#cf2727;--code-token-parameter:#1976d2;--code-token-function:#7041c8;--code-token-string-expression:#218438;--code-token-punctuation:#242323;--code-token-link:#22863a;--code-token-variable:#1976d2;--code-token-symbol:#f59403;--code-token-deleted:#d32828;--code-token-inserted:#22863a}.dark{--code-color-text:#cac7c7;--code-token-constant:#6fb0fa;--code-token-string:#f9a86e;--code-token-comment:#6a727b;--code-token-keyword:#f47481;--code-token-parameter:#ff9800;--code-token-function:#ae8eeb;--code-token-string-expression:#4fb74d;--code-token-punctuation:#bbb;--code-token-link:#f9a76d;--code-token-variable:#6fb0fa;--code-token-symbol:#f9a86e;--code-token-deleted:#ee6d7a;--code-token-inserted:#36c47f}:root{--rp-font-family-base:"Inter var experimental","Inter var",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--rp-font-family-mono:Menlo,Monaco,Consolas,"Courier New",monospace}.first\:mt-2:first-child{margin-top:.5rem}.last\:mr-0:last-child{margin-right:0}.even\:bg-soft:nth-child(2n){background-color:var(--rp-c-bg-soft)}.hover\:border-brand-dark:hover{border-color:var(--rp-c-brand-dark)}.hover\:border-gray-600:hover{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.hover\:bg-mute:hover{background-color:var(--rp-c-bg-mute)}.hover\:text-brand-dark:hover{color:var(--rp-c-brand-dark)}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.hover\:text-text-1:hover{color:var(--rp-c-text-1)}.hover\:text-text-2:hover{color:var(--rp-c-text-2)}.hover\:opacity-60:hover{opacity:.6}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:border-divider:is(.dark *){border-color:var(--rp-c-divider)}.dark\:hover\:border-gray-200:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}@media (min-width:640px){.sm\:m-4{margin:1rem}.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:max-w-4xl{max-width:56rem}.sm\:max-w-xl{max-width:36rem}.sm\:flex-1{flex:1}.sm\:flex-row{flex-direction:row}.sm\:justify-around{justify-content:space-around}.sm\:p-8{padding:2rem}.sm\:px-16{padding-left:4rem;padding-right:4rem}.sm\:pb-2{padding-bottom:.5rem}.sm\:pb-40{padding-bottom:10rem}.sm\:pl-4{padding-left:1rem}.sm\:pr-2{padding-right:.5rem}.sm\:pt-10{padding-top:2.5rem}.sm\:pt-24{padding-top:6rem}.sm\:pt-8{padding-top:2rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:leading-8{line-height:2rem}}@media (min-width:768px){.md\:order-1{order:1}.md\:order-2{order:2}.md\:m-0{margin:0}.md\:ml-1{margin-left:.25rem}.md\:mr-2{margin-right:.5rem}.md\:flex{display:flex}.md\:flex-row{flex-direction:row}.md\:flex-wrap{flex-wrap:wrap}.md\:justify-center{justify-content:center}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:pb-16{padding-bottom:4rem}.md\:pb-3{padding-bottom:.75rem}.md\:pt-16{padding-top:4rem}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-\[1\.5rem\]{font-size:1.5rem}}@media (min-width:1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:pb-2{padding-bottom:.5rem}}.\[\&\:not\(\:first-child\)\]\:mt-2:not(:first-child){margin-top:.5rem}:root{--rp-code-font-size:14px;--rp-code-block-color:#2e3440;--rp-code-title-bg:#0063c70d;--rp-code-block-bg:#f6f8fa;--rp-code-line-highlight-color:#0063c71a;--rp-code-line-number-color:#ebebeb61;--rp-code-copy-code-hover-bg:#ffffff0d;--rp-code-wrap-code-hover-bg:#ffffff0d}.dark{--rp-code-block-color:#e5e7eb;--rp-code-block-bg:#242424;--rp-code-title-bg:#ffffff0a;--rp-code-line-highlight-color:#ffffff1a;--rp-code-line-number-color:#3c3c3c54}.rspress-doc :not(:-webkit-any(pre,h1,h2,h3,h4,h5,h6))>code{font-size:var(--rp-code-font-size)}.rspress-doc :not(:-moz-any(pre,h1,h2,h3,h4,h5,h6))>code{font-size:var(--rp-code-font-size)}.rspress-doc :not(:-webkit-any(pre,h1,h2,h3,h4,h5,h6))>code{font-size:var(--rp-code-font-size)}.rspress-doc :not(:-moz-any(pre,h1,h2,h3,h4,h5,h6))>code{font-size:var(--rp-code-font-size)}.rspress-doc :not(:is(pre,h1,h2,h3,h4,h5,h6))>code{font-size:var(--rp-code-font-size)}.rspress-doc :not(:-webkit-any(pre,div))>code{border-radius:var(--rp-radius-small);color:var(--rp-c-text-code);background-color:var(--rp-c-text-code-bg);overflow-wrap:break-word;padding:3px 6px}.rspress-doc :not(:-moz-any(pre,div))>code{border-radius:var(--rp-radius-small);color:var(--rp-c-text-code);background-color:var(--rp-c-text-code-bg);overflow-wrap:break-word;padding:3px 6px}.rspress-doc :not(:-webkit-any(pre,div))>code{border-radius:var(--rp-radius-small);color:var(--rp-c-text-code);background-color:var(--rp-c-text-code-bg);overflow-wrap:break-word;padding:3px 6px}.rspress-doc :not(:-moz-any(pre,div))>code{border-radius:var(--rp-radius-small);color:var(--rp-c-text-code);background-color:var(--rp-c-text-code-bg);overflow-wrap:break-word;padding:3px 6px}.rspress-doc :not(:is(pre,div))>code{border-radius:var(--rp-radius-small);color:var(--rp-c-text-code);background-color:var(--rp-c-text-code-bg);overflow-wrap:break-word;padding:3px 6px}.rspress-doc h1>code,.rspress-doc h2>code,.rspress-doc h3>code{font-size:.9em}.rspress-doc a>code{color:var(--rp-c-brand-dark);transition:color .25s}.rspress-doc a:hover>code{color:var(--rp-c-brand)}.rspress-doc div[class^=language-]{background-color:var(--rp-code-block-bg);margin:16px 0;transition:none;position:relative;overflow-x:auto}.rspress-doc .rspress-code-title{font-size:var(--rp-code-font-size);background-color:var(--rp-code-title-bg);padding:12px 16px;transition:background-color .5s}@media (min-width:640px){.rspress-doc div[class^=language-]{border-radius:var(--rp-radius);contain:content;margin:24px 0}}@media (max-width:640px){.rspress-doc li div[class^=language-]{border-radius:var(--rp-radius-small)0 0 var(--rp-radius-small)}}.rspress-doc [class^=language-] pre,.rspress-doc [class^=language-] code{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.rspress-doc [class^=language-] pre{z-index:1;background:0 0;margin:0;position:relative;overflow-x:auto}.rspress-doc [class^=language-] code{line-height:1.7;font-size:var(--rp-code-font-size);color:var(--rp-code-block-color);background-color:var(--rp-code-block-bg);width:-moz-fit-content;width:fit-content;min-width:100%;padding:16px 0;transition:color .5s;display:block}.rspress-doc [class^=language-] .rspress-code-content{position:relative}.rspress-doc [class^=language-] .rspress-code-content span.highlighted{background-color:var(--rp-code-line-highlight-color);padding-left:20px;display:block;position:absolute;left:0;right:0}.rspress-doc [class^=language-] .rspress-code-content>code{padding:16px 20px}.rspress-scrollbar{scrollbar-gutter:stable}.rspress-scrollbar::-webkit-scrollbar{width:12px;height:8px;transition:all .3s}.rspress-scrollbar::-webkit-scrollbar-track{background:0 0}.rspress-scrollbar::-webkit-scrollbar-thumb{border-radius:var(--rp-radius-small)}.rspress-scrollbar:hover::-webkit-scrollbar-thumb{background-color:var(--rp-c-text-4);background-clip:content-box;border:3px solid #0000}.rspress-scrollbar::-webkit-scrollbar-corner{background:0 0}.aside-link{border-radius:var(--rp-radius-small)0 0 var(--rp-radius-small);margin-bottom:1px;padding:.25rem 0}.aside-link:hover{background-color:var(--rp-c-bg-mute)}.aside-link.aside-active,.aside-link.aside-active:hover{color:var(--rp-c-link);background-color:var(--rp-c-brand-tint)}.aside-link-text{padding:0 12px;font-size:.8125rem;line-height:1.25rem}@media (min-width:640px){.pager_e7091{flex-direction:column;width:50%;display:flex}.pager_e7091.has-next_e7091{padding-top:0;padding-left:16px}}.prev_e7091,.next_e7091{width:100%}.rspress-sidebar-menu{z-index:var(--rp-z-index-local-nav);border-bottom:1px solid var(--rp-c-divider-light);border-top:1px solid var(--rp-c-divider-light);color:var(--rp-c-text-1);background-color:var(--rp-c-bg);justify-content:space-between;align-items:center;width:100%;padding-left:10px;display:flex;position:sticky;top:0;left:0}.rspress-sidebar-menu>button{background-color:#0000;padding:12px;transition:color .5s}.rspress-sidebar-menu>button:hover{color:var(--rp-c-text-3)}.rspress-sidebar-menu:empty{display:none}.rspress-sidebar-back-drop{z-index:var(--rp-z-index-backdrop);position:fixed;top:0;bottom:0;left:0;right:0}@media (min-width:960px){.rspress-sidebar-menu{display:none}}.rspress-local-toc-container{border-radius:var(--rp-radius-small);top:calc(var(--rp-nav-height) - 14px);background-color:var(--rp-c-bg-soft);max-height:calc(100vh - var(--rp-nav-height) - 20px);box-shadow:var(--rp-shadow-1);border:1px solid var(--rp-c-divider-light);padding:6px;position:absolute;left:20px;right:20px;overflow:scroll}.fly-in-enter{opacity:0;transform:translateY(-16px)}.fly-in-enter-active{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0)}.fly-in-exit,.fly-in-exit-active{opacity:0;transition:none}.aside-container_edeb4{margin-top:calc(var(--rp-nav-height)*-1 - 32px);padding-top:calc(var(--rp-nav-height) + 32px);scrollbar-width:none;max-height:calc(100vh - var(--rp-nav-height) + 32px);width:0;display:none;position:sticky;top:0;overflow:hidden auto}.aside-container_edeb4::-webkit-scrollbar{display:none}.rspress-doc{view-transition-name:flip;min-height:60vh}@keyframes fade-out_edeb4{0%{opacity:1}to{opacity:0;transform:translateY(20px)}}@keyframes fade-in_edeb4{0%{opacity:0;transform:translateY(20px)}to{opacity:1}}::view-transition-old(flip){animation-time:.25s}::view-transition-new(flip){animation-time:.25s}::view-transition-old(flip){transition-timing-function:ease-out;animation-name:fade-out_edeb4}::view-transition-new(flip){transition-timing-function:ease-in;animation-name:fade-in_edeb4;animation-delay:.18s}@media (max-width:960px){.docLayout_edeb4{position:relative}.content_edeb4{padding:36px 24px 72px}.rspress-doc{view-transition-name:none}}@media (min-width:960px){.docLayout_edeb4{width:100%;display:flex}.content_edeb4{width:calc(100% - var(--rp-sidebar-width));padding:48px 48px 72px max(24px,48px - var(--rp-sidebar-width))}.content_edeb4 .rspress-doc,.content_edeb4 .rspress-doc-footer{width:100%}.aside-container_edeb4{width:var(--rp-aside-width)}}@media (min-width:1280px){.aside-container_edeb4{width:var(--rp-aside-width);display:block}.content_edeb4{padding:48px 0 72px}.content_edeb4 .rspress-doc,.content_edeb4 .rspress-doc-footer{box-sizing:border-box;width:calc(100vw - var(--rp-sidebar-width) - var(--rp-aside-width));max-width:min(100%,1056px);margin:auto;padding:0 48px}}@media (min-width:1440px){.docLayout_edeb4{width:100%;margin-left:0}.content_edeb4 .rspress-doc,.content_edeb4 .rspress-doc-footer{box-sizing:border-box;width:calc(100vw - var(--rp-sidebar-width) - var(--rp-aside-width));max-width:min(100%,1056px);margin:auto;padding:0 48px}}:root{--rp-home-hero-name-color:transparent;--rp-home-hero-name-background:-webkit-linear-gradient(120deg,var(--rp-c-brand)30%,#42d392);--rp-home-hero-image-background-image:none;--rp-home-hero-image-filter:none;--rp-home-feature-bg:var(--rp-c-bg-soft);--rp-home-mask-background-image:conic-gradient(from 180deg at 50% 50%,var(--rp-c-brand)0deg,180deg,#42d392 1turn);--rp-home-hero-image-width-sm:250px;--rp-home-hero-image-width:375px;--rp-home-hero-text-max-width:40rem}.dark{--rp-home-bg:#000;--rp-home-feature-bg:var(--rp-c-bg-soft)}.title_3b154{outline:none;font-weight:600;position:relative}.title_3b154 .header-anchor{float:left;opacity:0;font-weight:500;font-size:inherit;margin-left:-.8em;transition:color .25s,opacity .25s}.title_3b154:hover .header-anchor,.title_3b154 .header-anchor:focus{opacity:1}.blockquote_3b154 p,summary .blockquote_3b154 p{color:var(--rp-c-text-2);margin:0;font-size:16px}.link_3b154:not(.header-anchor),summary .link_3b154:not(.header-anchor),summary a:not(.header-anchor){color:var(--rp-c-link);font-weight:500;transition:color .25s}.link_3b154:hover,summary .link_3b154:hover,summary a:hover{border-bottom:1px solid var(--rp-c-brand)}.header-anchor{color:var(--rp-c-brand)}.rspress-doc details{font-size:normal;cursor:pointer;margin:16px 0;padding:8px;transition:all .3s}.rspress-doc details p{margin:8px 0}.rspress-doc details:hover{background-color:var(--rp-c-bg-mute)}.inline-link_3b154{overflow-wrap:break-word;display:inline}span.code-line-highlighted{background-color:var(--rp-code-line-highlight-color)}.rspress-code-content:hover .code-button-group_15153>button{opacity:1}.code-button-group_15153{z-index:10;gap:10px;display:flex;position:absolute;top:20px;right:20px}.code-button-group_15153>button{opacity:0;background-color:#0000;justify-content:center;align-items:center;display:flex;position:relative}.code-button-group_15153 svg{opacity:inherit;color:var(--rp-c-text-3);width:20px;height:20px;transition:all .2s}.code-button-group_15153 svg:hover{color:var(--rp-c-text-2)}.code-copy-button_15153 .icon-success_15153{opacity:0;color:#00d600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.code-copied_15153 .icon-copy_15153{opacity:0;transform:scale(.33)}.code-copied_15153 .icon-success_15153{opacity:1;transition-delay:75ms;transform:translate(-50%,-50%)scale(1)}.icon-wrapped_15153{opacity:0;color:#00d600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.wrapped-btn_15153 .icon-wrap_15153{opacity:0;transform:scale(.33)}.wrapped-btn_15153 .icon-wrapped_15153{opacity:1;transition-delay:75ms;transform:translate(-50%,-50%)scale(1)}.badge_99dcf{padding:0 10px;font-size:12px;line-height:22px}.badge_99dcf.info_99dcf{color:#2e3440;background-color:#2e344029}.badge_99dcf.warning_99dcf{color:#ad850e;background-color:#ffc51729}.badge_99dcf.danger_99dcf{color:#ab2131;background-color:#ed3c5029}.button_72e53{text-align:center;white-space:nowrap;height:48px;font-weight:700;line-height:48px;display:inline-block}.button_72e53:active{transition:color .1s,border-color .1s,background-color .1s}.button_72e53.medium_72e53{border-radius:var(--rp-radius);height:38px;padding:0 20px;font-size:14px;line-height:38px}.button_72e53.big_72e53{border-radius:var(--rp-radius-large);min-width:142px;font-size:16px;font-weight:700}.button_72e53.brand_72e53,.button_72e53.brand_72e53:hover,.button_72e53.brand_72e53:active{opacity:1;color:#fff;transition:all .3s}.button_72e53.brand_72e53{background:linear-gradient(275deg,var(--rp-c-brand-dark)3%,var(--rp-c-brand-light)97%)}.button_72e53.brand_72e53:hover{background-color:var(--rp-c-brand-light);opacity:.8}.button_72e53.alt_72e53,.button_72e53.alt_72e53:hover,.button_72e53.alt_72e53:active{border:1px solid var(--rp-c-gray-light-3);color:var(--rp-c-text-1);background-color:var(--rp-c-gray-light-5);transition:all .3s}.dark .button_72e53.alt_72e53{background-color:var(--rp-c-bg-mute);color:var(--rp-c-text-1);border-color:#484848}.button_72e53.alt_72e53:hover{background-color:var(--rp-c-gray-light-4)}.dark .button_72e53.alt_72e53:hover{background-color:#484848}@media (max-width:768px){.button_72e53.big_72e53{min-width:100px;height:42px;font-size:14px;line-height:42px}}.editLink_2a169{color:var(--rp-c-brand);margin:20px 0;font-size:15px;font-weight:500;text-decoration:none;transition:all .2s ease-in-out}.editLink_2a169:hover{color:var(--rp-c-brand-dark)}@media (max-width:640px){.grid-2_d48e3,.grid-4_d48e3,.grid-6_d48e3{width:100%}}@media (min-width:640px){.grid-2_d48e3,.grid-4_d48e3,.grid-6_d48e3{width:50%}}@media (min-width:768px){.grid-2_d48e3,.grid-4_d48e3{width:50%}.grid-3_d48e3,.grid-6_d48e3{width:33.3333%}}@media (min-width:960px){.grid-3_d48e3{width:25%}.grid-4_d48e3{width:33.3333%}.grid-6_d48e3{width:50%}}.featureCard_d48e3{background:var(--rp-home-feature-bg);border:1px solid #0000;transition:all .3s}.featureCard_d48e3:hover{border:1px solid var(--rp-c-brand)}.clip_c867a{background:var(--rp-home-hero-name-background);-webkit-text-fill-color:var(--rp-home-hero-name-color);-webkit-background-clip:text;background-clip:text}.mask_c867a{background-image:var(--rp-home-mask-background-image);mixblendmode:normal;filter:blur(80px);opacity:.05;z-index:0;border-radius:100%;width:100%;max-width:500px;height:500px;margin-top:-250px;position:absolute;top:50%;transform:translate(-50%)}.dark .mask_c867a{opacity:.15}@media (min-width:640px){.rspress-home-hero-image{width:var(--rp-home-hero-image-width)}}@media (max-width:640px){.rspress-home-hero-image{max-width:var(--rp-home-hero-image-width-sm)}}@media (max-width:768px){.mask_c867a{display:none}}.link_03735{font-weight:500;transition:opacity .2s}.link_03735:hover{opacity:.85}.link_03735:active{opacity:.7}.rspress-nav-menu-group-button{background-color:#0000}.hidden_f6cde{opacity:0;background:0 0;transform:translateY(-100%)}.container_f6cde{margin:auto}.navContainer_f6cde{background:var(--rp-c-bg);height:var(--rp-nav-height);z-index:var(--rp-z-index-nav);transition:transform .3s,opacity .3s;top:0;left:0}.leftNav_f6cde,.rightNav_f6cde{display:none}.singleItem_f6cde{word-break:keep-all}.activeItem_f6cde,.singleItem_f6cde:hover{background-color:var(--rp-c-bg-mute);cursor:pointer;color:var(--rp-c-link);border-radius:var(--rp-radius)}.navBarTitle_f6cde{flex-shrink:0}.navContainer_f6cde *{pointer-events:all}.social-links-icon_f6cde{fill:currentColor;color:var(--rp-c-text-2);width:20px;height:100%;display:flex}.social-links-icon_f6cde:hover{color:var(--rp-c-text-1)}.menu-item_f6cde{margin:0 8px;display:none}@media (max-width:768px){:root{--rp-nav-height:56px}.menu-item_f6cde:before{display:none}.mobileNavMenu_f6cde{display:flex}}@media (min-width:768px){.menu-item_f6cde{display:flex}.leftNav_f6cde{flex-grow:1;align-items:center;margin:0 .5rem;display:flex}.rightNav_f6cde{align-items:center;display:flex}.mobileNavMenu_f6cde{display:none}}@media (min-width:960px){.mask_f6cde{width:100vw;height:30px;position:absolute;bottom:-30px;right:0}.mask_f6cde.docPage_f6cde{width:calc(100vw - var(--rp-sidebar-width) - 48px)}.mask_f6cde:before{background:linear-gradient(var(--rp-c-bg),transparent 60%);content:"";width:100%;height:30px;display:block}.leftNav_f6cde{margin:0 2rem}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}.dark::view-transition-new(root){z-index:1}::view-transition-new(root){z-index:9999}.dark::view-transition-old(root){z-index:9999}.social-links-icon_93d67{fill:currentColor;color:var(--rp-c-text-2);align-items:center;width:24px;height:24px;margin-left:.5rem;display:flex}.social-links-icon_93d67:hover{color:var(--rp-c-text-1)}@media (max-width:768px){.menu-item_93d67:before{display:none}a:only-child .social-links-icon_93d67{margin-left:0}}.navScreen_457e8{top:var(--rp-nav-height);background-color:var(--rp-c-bg);pointer-events:auto;z-index:20;width:100%;padding:32px;display:none;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.active_457e8{display:block}.container_457e8{max-width:248px;margin:0 auto;padding:24px 0 96px}.navMenu_457e8{flex-direction:column;justify-content:center;align-items:center;display:flex}.navMenuItem_457e8{color:var(--rp-c-text-1);border-bottom:1px solid var(--rp-c-divider-light);justify-content:center;padding:12px 0 11px;font-size:14px;font-weight:500;line-height:24px;transition:border-color .5s,color .25s;display:flex}.navAppearance_457e8{padding-right:0}.socialAndAppearance_457e8{padding:8px 0 7px}.navScreenMenuGroup_457e8{height:39px;transition:border-color .5s;overflow:hidden}.navScreenMenuGroup_457e8.open_457e8{height:auto;padding-bottom:10px}.button_457e8{color:var(--rp-c-text-1);background-color:#0000;justify-content:center;align-items:center;width:100%;padding:8px 0 7px;font-size:14px;font-weight:500;line-height:24px;transition:color .25s;display:flex}.buttonSpan_457e8{align-items:center;height:24px;padding-right:4px;display:flex}.navScreenMenuGroup_457e8 .items_457e8{visibility:hidden}.navScreenMenuGroup_457e8.open_457e8 .items_457e8{visibility:visible}.down_457e8{transition:all .5s}.open_457e8.down_457e8{transform:rotate(180deg)}.navHamburger_e7b06{background-color:#0000;justify-content:center;align-items:center;width:36px;height:56px;margin-left:6px;display:flex}@media (min-width:768px){.navHamburger_e7b06{display:none}}.container_e7b06{width:16px;height:14px;position:relative;overflow:hidden}.navHamburger_e7b06:hover .top_e7b06{top:0;left:0;transform:translate(4px)}.navHamburger_e7b06:hover .middle_e7b06{top:6px;left:0;transform:translate(0)}.navHamburger_e7b06:hover .bottom_e7b06{top:12px;left:0;transform:translate(8px)}.navHamburger_e7b06.active_e7b06 .top_e7b06{top:6px;transform:translate(0)rotate(225deg)}.navHamburger_e7b06.active_e7b06 .middle_e7b06{top:6px;transform:translate(16px)}.navHamburger_e7b06.active_e7b06 .bottom_e7b06{top:6px;transform:translate(0)rotate(135deg)}.navHamburger_e7b06.active_e7b06:hover .top_e7b06,.navHamburger_e7b06.active_e7b06:hover .middle_e7b06,.navHamburger_e7b06.active_e7b06:hover .bottom_e7b06{transition:top .25s,background-color .25s,transform .25s}.top_e7b06,.middle_e7b06,.bottom_e7b06{background-color:var(--rp-c-text-2);width:16px;height:1.5px;transition:top .25s,background-color .5s,transform .25s;position:absolute}.top_e7b06{top:0;left:0;transform:translate(0)}.middle_e7b06{top:6px;left:0;transform:translate(8px)}.bottom_e7b06{top:12px;left:0;transform:translate(4px)}.overview-index h1,.overview-index h2,.overview-index h3{font-weight:600}.overview-index h2,.overview-index h3{line-height:1}.overview-index h2{letter-spacing:-.02em;color:var(--rp-c-text-1);border-top:1px solid var(--rp-c-divider-light);margin:36px 0;padding-top:36px;font-size:24px;transition:color .5s}.overview-index h3,.overview-index h3>a{letter-spacing:-.01em;color:var(--rp-c-link);margin-bottom:1em;font-size:18px;font-weight:600;transition:color .5s}.overview-index h3>a{margin:0;line-height:1.3}.overview-index h3:before{display:none}.overview-index h1:hover .header-anchor_8f375,.overview-index h1:focus .header-anchor_8f375,.overview-index h2:hover .header-anchor_8f375,.overview-index h2:focus .header-anchor_8f375,.overview-index h3:hover .header-anchor_8f375,.overview-index h3:focus .header-anchor_8f375,.overview-index h4:hover .header-anchor_8f375,.overview-index h4:focus .header-anchor_8f375,.overview-index h5:hover .header-anchor_8f375,.overview-index h5:focus .header-anchor_8f375,.overview-index h6:hover .header-anchor_8f375,.overview-index h6:focus .header-anchor_8f375{opacity:1}.overview-index a.header-anchor_8f375{float:left;opacity:0;color:var(--rp-c-brand);margin-top:.125em;margin-left:-.87em;padding-right:.23em;font-size:.85em;font-weight:500;text-decoration-style:dotted;transition:color .25s}.overview-index a.header-anchor_8f375:hover,.overview-index a.header-anchor_8f375:focus{text-decoration:none}.overview-groups_8f375 a{color:var(--rp-c-text-code);overflow-wrap:break-word;margin-top:8px;font-size:15px;font-weight:500;line-height:1.6;transition:color .5s;display:block}.overview-group-li_8f375{position:relative}.overview-group-li_8f375.level-2_8f375{padding-left:1px}.overview-group-li_8f375.level-2_8f375:before{left:-.25rem}.overview-group-li_8f375.level-3_8f375{padding-left:8px}.overview-group-li_8f375.level-3_8f375:before{left:-.25rem}.overview-group-li_8f375.level-4_8f375{padding-left:16px}.overview-group-li_8f375.level-4_8f375:before{left:-.25rem}.overview-group_8f375{break-inside:avoid;background-color:var(--rp-c-bg-soft);border-radius:var(--rp-radius);margin-bottom:28px;padding:28px 32px;transition:background-color .5s}@media (max-width:768px){.overview-index{padding:42px 24px}.overview-index h1{margin-bottom:24px;font-size:32px}.overview-index h2{margin:42px 0 32px;padding-top:32px;font-size:22px}.overview-groups_8f375 a{font-size:14px}.header_8f375{display:block}}@media (min-width:768px){.overview-groups_8f375{columns:2}}@media (min-width:1024px){.overview-groups_8f375{columns:3}}.rspress-package-manager-tabs div[class*=language-] code{background-color:var(--rp-c-bg-mute)!important}.pager-link_9b9a7{border-radius:var(--rp-radius);width:100%;height:100%;padding:16px 20px;transition:border-color .25s;display:block;border:1px solid var(--rp-c-divider-light)!important}.pager-link_9b9a7:hover{border-color:var(--rp-c-brand)!important}.pager-link_9b9a7:hover .title_9b9a7{color:var(--rp-c-brand-dark)}.pager-link_9b9a7.next_9b9a7{text-align:right;margin-left:auto}.desc_9b9a7{color:var(--rp-c-text-2);font-size:12px;font-weight:500;line-height:20px;display:block}.title_9b9a7{color:var(--rp-c-brand);font-size:14px;font-weight:500;line-height:24px;transition:color .25s;display:block}.scroll-to-top_1a167{z-index:1;color:var(--rp-c-text-1);border-color:var(--rp-c-text-3);background-color:var(--rp-c-bg-soft);box-shadow:0 1px 3px 0 var(--rp-shadow-1),0 1px 2px 0 var(--rp-shadow-2);border-width:.1px;border-radius:9999px;padding:.5rem;transition-property:transform;transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,.2,1);position:fixed;bottom:1rem;right:1rem;transform:scale(0)}.scroll-to-top_1a167.entered_1a167{transform:scale(1)!important}.mask_6e282{z-index:100;background:#545454b3;position:fixed;top:0;bottom:0;left:0;right:0}.modal_6e282{background-color:var(--rp-c-bg-soft);border-radius:var(--rp-radius);max-width:560px;height:auto;margin:80px auto auto;padding:20px;position:relative}.inputForm_6e282{background-color:var(--rp-c-bg);border:1px solid var(--rp-c-brand);border-radius:var(--rp-radius-small);align-items:center;width:100%;height:55px;padding:0 12px;display:flex}.inputForm_6e282 .input_6e282{background-color:var(--rp-c-bg);outline:none;flex:1;width:80%;height:100%;padding-left:8px;font-size:20px;font-weight:500}.dark .inputForm_6e282 .input_6e282{color:var(--rp-c-text)}.close_6e282:hover{cursor:pointer;color:var(--rp-c-brand);transition:color .3s}.searchHits_6e282{max-height:calc(100vh - 230px);padding-right:2px;overflow:scroll}.searchHits_6e282 .groupTitle_6e282{background-color:var(--rp-c-bg-soft);color:var(--rp-c-brand-dark);margin:0;padding-top:6px;padding-bottom:6px;padding-left:2px;font-size:13px;font-weight:600;position:sticky;top:0;left:0}.navSearchButton_6e282{border-radius:var(--rp-radius);background-color:var(--rp-c-bg-mute);border:1px solid #0000;width:100%;height:40px;padding:0 10px;transition:border-color .3s;display:flex}.navSearchButton_6e282>button{cursor:pointer;background-color:#0000;justify-content:space-around;align-items:center;font-size:13px;display:flex}.navSearchButton_6e282>button .searchWord_6e282{white-space:nowrap;color:var(--rp-c-text-2);margin-left:5px;margin-right:40px;font-weight:500;transition:all .3s}.navSearchButton_6e282>button>div{border-radius:var(--rp-radius-small);color:var(--rp-c-gray);background-color:var(--rp-c-bg);width:43px;font-weight:500;transition:opacity .3s}.navSearchButton_6e282>button>div>span{margin-left:5px}.navSearchButton_6e282>button>div>span+span{margin-right:5px}.navSearchButton_6e282:hover{border:1px solid var(--rp-c-brand)}.navSearchButton_6e282:hover>button .searchWord_6e282{color:var(--rp-c-text-1)}.suggestItem_6e282{box-sizing:border-box;margin:5px 2px;list-style:none}.dark .suggestItem_6e282,.dark .suggestItem_6e282>a{box-shadow:none}.suggestItem_6e282>a{background-color:var(--rp-c-bg);border-radius:var(--rp-radius-small);color:var(--rp-c-black-soft);width:100%;padding-left:12px;display:flex;box-shadow:0 1px 3px #d4d9e1}.suggestItem_6e282>a .suggestItemContainer_6e282{align-items:center;width:100%;min-height:56px;padding-right:12px;font-weight:500;display:flex}.suggestItem_6e282>a .suggestItemContainer_6e282 .contentWrapper_6e282{width:100%;padding:6px 8px;font-size:14px;line-height:1.5}.suggestItem_6e282>a .suggestItemContainer_6e282 .contentWrapper_6e282 .mark_6e282{color:var(--rp-c-brand)}.suggestItem_6e282>a .suggestItemContainer_6e282 .contentWrapper_6e282 .titleForContent_6e282{color:var(--rp-c-gray-light-1);font-size:12px;font-weight:600}.suggestItem_6e282>a .suggestItemContainer_6e282 svg{color:var(--rp-c-gray-light-1)}.suggestItem_6e282>a .suggestItemContainer_6e282 .actionIcon_6e282{opacity:0}.suggestItem_6e282.current_6e282>a{background-color:var(--rp-c-brand);cursor:pointer;color:#fff}.suggestItem_6e282.current_6e282 .suggestItemContainer_6e282 svg{color:#fff}.suggestItem_6e282.current_6e282 .suggestItemContainer_6e282 .actionIcon_6e282{opacity:1}.suggestItem_6e282.current_6e282 .suggestItemContainer_6e282 .contentWrapper_6e282 .mark_6e282{color:#fff;text-decoration:underline}.suggestItem_6e282.current_6e282 .suggestItemContainer_6e282 .contentWrapper_6e282 .titleForContent_6e282{color:#fff}.tabClassName_6e282{background-color:var(--rp-c-bg-soft);padding-bottom:6px;position:sticky}.mobileNavSearchButton_6e282{cursor:pointer;justify-content:center;align-items:center;font-weight:500;display:none}@media (max-width:768px){.navSearchButton_6e282{display:none}.mobileNavSearchButton_6e282{display:flex}.modal_6e282{margin-top:0}.inputForm_6e282{height:40px}.inputForm_6e282 svg{width:16px;height:16px}.inputForm_6e282 .input_6e282{font-size:16px}}.container_fa768{background-color:var(--rp-code-block-bg);contain:content;border-radius:var(--rp-radius)}.container_fa768 div[class*=language-]{margin:6px 0}.container_fa768 div[class*=language-] code{background-color:var(--rp-c-bg)}.tab-list_fa768{min-width:100%;padding-top:4px;padding-left:8px;display:flex;overflow-x:scroll}.tab_fa768{color:var(--rp-c-text-2);box-sizing:border-box;-webkit-user-select:none;user-select:none;cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;margin-right:10px;padding:6px 12px;transition:all .2s ease-in-out}.tab_fa768:last-child{margin-right:0}.not-selected_fa768:hover{color:var(--rp-c-text-1);border-color:var(--rp-c-gray)}.selected_fa768{color:var(--rp-c-link);border-color:currentColor}.no-scrollbar_fa768::-webkit-scrollbar{display:none}.no-scrollbar_fa768{-ms-overflow-style:none;scrollbar-width:none}.navTitleMask_71eca{height:var(--rp-nav-height);align-items:center;padding-left:1.5rem;display:flex}.sidebar_71eca{z-index:var(--rp-z-index-sidebar);opacity:0;background:var(--rp-c-bg);width:calc(100vw - 64px);max-width:320px;transition:opacity .5s,transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebarContent_71eca{max-height:calc(100% - var(--rp-nav-height));overflow:hidden auto}.sidebar_71eca.open_71eca{opacity:1;visibility:visible;transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1);transform:translate(0)}@media (min-width:960px){.sidebar_71eca{z-index:5;opacity:1;visibility:visible;margin-top:calc(var(--rp-nav-height)*-1);width:var(--rp-sidebar-width);box-shadow:var(--rp-c-shadow-3);--webkit-mask-image:linear-gradient(270deg,#000 10px,transparent 0);height:100vh;position:sticky;transform:translate(0);-webkit-mask-image:linear-gradient(#0000,#000 20px),linear-gradient(270deg,#000 10px,#0000 0);mask-image:linear-gradient(#0000,#000 20px),linear-gradient(270deg,#000 10px,#0000 0)}}@media (min-width:1440px){.sidebar_71eca{width:var(--rp-sidebar-width)}}.menuLink_71eca{opacity:1}.menuLink_71eca:hover{color:inherit;transition:all .2s}.menuItem_71eca:hover{color:var(--rp-c-text-1);background-color:var(--rp-c-bg-mute);transition:all .2s}.collapseContainer_71eca:hover{background-color:#e5e5e566;transition:all .2s}.dark .menuItem_71eca:hover,.dark .collapseContainer_71eca:hover{background-color:var(--rp-c-bg-mute);transition:all .2s}.menuItem_71eca,.menuItemActive_71eca{border-radius:0 var(--rp-radius)var(--rp-radius)0;font-size:13px;line-height:19px}.menuItem_71eca{color:var(--rp-c-text-2);font-weight:500;transition:color .2s}.menuItemActive_71eca{background-color:var(--rp-c-brand-tint);color:var(--rp-c-link);font-weight:bolder;position:relative}.menuItemActive_71eca:before{content:"";background-color:var(--rp-c-brand);width:1px;height:100%;transition:all .2s;position:absolute;top:0;left:0}.menuGroupActive_71eca{background-color:var(--rp-c-bg-mute)}.rspress-sidebar-group{position:relative}.rspress-sidebar-group:before{content:"";background-color:var(--rp-c-gray-light-4);width:1px;height:100%;position:absolute;top:0;left:18px}.rspress-sidebar-section-header{align-items:center;padding:8px 0 8px 16px;display:flex}.rspress-sidebar-section-header>span{color:var(--rp-c-text-1);align-items:center;margin-left:8px;font-size:14px;font-weight:700;line-height:20px;display:flex}.dark .rspress-sidebar-group:before{background-color:var(--rp-c-bg-mute)}.dark .sidebar_71eca{box-shadow:var(--rp-shadow-1)}.sourceCode_bf1b0{fill:currentColor;color:var(--rp-c-text-2)}.sourceCode_bf1b0:hover{color:var(--rp-c-text-1)}.rspressSteps_38f64 h3{counter-increment:step;margin-top:3px}.rspressSteps_38f64 h3:before{content:counter(step);text-align:center;color:var(--rp-c-text-1);background-color:var(--rp-code-block-bg);border-width:1.5px;border-color:var(--rp-c-text-3);border-radius:9999px;width:30px;height:30px;margin-left:-41px;font-size:1.1rem;font-weight:400;position:absolute}.rspressSteps_38f64{border-color:var(--rp-c-text-3)}.rspressSteps_38f64 p{color:var(--rp-c-text-1)}.rspress-toc-link{border-radius:var(--rp-radius-small);transition:all .3s;display:block}.rspress-toc-link-text{white-space:nowrap;text-overflow:ellipsis;border-radius:var(--rp-radius-small);color:var(--rp-c-text-2);padding:6px 12px;transition:all .2s ease-in-out;overflow:hidden}.rspress-toc-link-text:hover{background-color:var(--rp-c-bg-mute);color:var(--rp-c-text-1)}#nprogress{pointer-events:none}#nprogress .bar{z-index:1031;background:#29d;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{opacity:1;width:100px;height:100%;display:block;position:absolute;right:0;transform:rotate(3deg)translateY(-4px);box-shadow:0 0 10px #29d,0 0 5px #29d}#nprogress .spinner{z-index:1031;display:block;position:fixed;top:15px;right:15px}#nprogress .spinner-icon{box-sizing:border-box;border:2px solid #0000;border-color:#29d #0000 #0000 #29d;border-radius:50%;width:18px;height:18px;animation:.4s linear infinite nprogress-spinner}.nprogress-custom-parent{position:relative;overflow:hidden}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}