@coderminer/vue-markdown 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/LICENSE +21 -0
  3. package/README.md +579 -3
  4. package/README.zh-CN.md +547 -0
  5. package/dist/chunks/MarkdownBlockquote-DVXziX2t.js +18 -0
  6. package/dist/chunks/MarkdownBlockquote-DVXziX2t.js.map +1 -0
  7. package/dist/chunks/MarkdownBreak-BwCi2Itt.js +18 -0
  8. package/dist/chunks/MarkdownBreak-BwCi2Itt.js.map +1 -0
  9. package/dist/chunks/MarkdownCode-B1k9tmW5.js +65 -0
  10. package/dist/chunks/MarkdownCode-B1k9tmW5.js.map +1 -0
  11. package/dist/chunks/MarkdownConfigProvider-5N3ylrIu.js +51 -0
  12. package/dist/chunks/MarkdownConfigProvider-5N3ylrIu.js.map +1 -0
  13. package/dist/chunks/MarkdownContent-BAK6dqo7.js +15 -0
  14. package/dist/chunks/MarkdownContent-BAK6dqo7.js.map +1 -0
  15. package/dist/chunks/MarkdownCustomTag-BBdn3-WO.js +42 -0
  16. package/dist/chunks/MarkdownCustomTag-BBdn3-WO.js.map +1 -0
  17. package/dist/chunks/MarkdownEmphasis-CppivOEu.js +18 -0
  18. package/dist/chunks/MarkdownEmphasis-CppivOEu.js.map +1 -0
  19. package/dist/chunks/MarkdownEmpty-Av5k6bqa.js +16 -0
  20. package/dist/chunks/MarkdownEmpty-Av5k6bqa.js.map +1 -0
  21. package/dist/chunks/MarkdownError-C0sPs5W0.js +19 -0
  22. package/dist/chunks/MarkdownError-C0sPs5W0.js.map +1 -0
  23. package/dist/chunks/MarkdownFootnoteReference-Dy3Khwyj.js +24 -0
  24. package/dist/chunks/MarkdownFootnoteReference-Dy3Khwyj.js.map +1 -0
  25. package/dist/chunks/MarkdownFootnotes-BRPzkbXv.js +23 -0
  26. package/dist/chunks/MarkdownFootnotes-BRPzkbXv.js.map +1 -0
  27. package/dist/chunks/MarkdownHeading-DaNcP0_6.js +31 -0
  28. package/dist/chunks/MarkdownHeading-DaNcP0_6.js.map +1 -0
  29. package/dist/chunks/MarkdownHorizontalRule-QNe_cuUI.js +18 -0
  30. package/dist/chunks/MarkdownHorizontalRule-QNe_cuUI.js.map +1 -0
  31. package/dist/chunks/MarkdownHtml-66lYkvwM.js +15 -0
  32. package/dist/chunks/MarkdownHtml-66lYkvwM.js.map +1 -0
  33. package/dist/chunks/MarkdownImage-BRy76svs.js +53 -0
  34. package/dist/chunks/MarkdownImage-BRy76svs.js.map +1 -0
  35. package/dist/chunks/MarkdownInlineCode-MXZYFwex.js +18 -0
  36. package/dist/chunks/MarkdownInlineCode-MXZYFwex.js.map +1 -0
  37. package/dist/chunks/MarkdownLink-Dbx3NwgV.js +47 -0
  38. package/dist/chunks/MarkdownLink-Dbx3NwgV.js.map +1 -0
  39. package/dist/chunks/MarkdownList-BJ-_C71k.js +22 -0
  40. package/dist/chunks/MarkdownList-BJ-_C71k.js.map +1 -0
  41. package/dist/chunks/MarkdownListItem-Z1EHIY26.js +18 -0
  42. package/dist/chunks/MarkdownListItem-Z1EHIY26.js.map +1 -0
  43. package/dist/chunks/MarkdownLoading-D-RYtXxf.js +17 -0
  44. package/dist/chunks/MarkdownLoading-D-RYtXxf.js.map +1 -0
  45. package/dist/chunks/MarkdownParagraph-BxLSmSaG.js +18 -0
  46. package/dist/chunks/MarkdownParagraph-BxLSmSaG.js.map +1 -0
  47. package/dist/chunks/MarkdownRenderer-DLRRfsdI.js +416 -0
  48. package/dist/chunks/MarkdownRenderer-DLRRfsdI.js.map +1 -0
  49. package/dist/chunks/MarkdownRoot-DEE6iVfh.js +25 -0
  50. package/dist/chunks/MarkdownRoot-DEE6iVfh.js.map +1 -0
  51. package/dist/chunks/MarkdownStrikethrough-CblvbqDk.js +18 -0
  52. package/dist/chunks/MarkdownStrikethrough-CblvbqDk.js.map +1 -0
  53. package/dist/chunks/MarkdownStrong-uU5MzAoJ.js +18 -0
  54. package/dist/chunks/MarkdownStrong-uU5MzAoJ.js.map +1 -0
  55. package/dist/chunks/MarkdownTable-DmBTg_CR.js +18 -0
  56. package/dist/chunks/MarkdownTable-DmBTg_CR.js.map +1 -0
  57. package/dist/chunks/MarkdownTableCell-eiCJe847.js +33 -0
  58. package/dist/chunks/MarkdownTableCell-eiCJe847.js.map +1 -0
  59. package/dist/chunks/MarkdownTableRow-DuJaPntg.js +18 -0
  60. package/dist/chunks/MarkdownTableRow-DuJaPntg.js.map +1 -0
  61. package/dist/chunks/MarkdownTableSection-PFHz-R33.js +26 -0
  62. package/dist/chunks/MarkdownTableSection-PFHz-R33.js.map +1 -0
  63. package/dist/chunks/MarkdownTaskItem-BcmKo1lk.js +40 -0
  64. package/dist/chunks/MarkdownTaskItem-BcmKo1lk.js.map +1 -0
  65. package/dist/chunks/MarkdownToc-BdOHF-Yo.js +51 -0
  66. package/dist/chunks/MarkdownToc-BdOHF-Yo.js.map +1 -0
  67. package/dist/chunks/MarkdownTocItem-DT9mR3vL.js +27 -0
  68. package/dist/chunks/MarkdownTocItem-DT9mR3vL.js.map +1 -0
  69. package/dist/chunks/MermaidLiveEditor-W-qf3G-5.js +416 -0
  70. package/dist/chunks/MermaidLiveEditor-W-qf3G-5.js.map +1 -0
  71. package/dist/chunks/VueSyntaxHighlighter-DyLsYMwy.js +262 -0
  72. package/dist/chunks/VueSyntaxHighlighter-DyLsYMwy.js.map +1 -0
  73. package/dist/chunks/adapters-CMwX_NEI.js +28 -0
  74. package/dist/chunks/adapters-CMwX_NEI.js.map +1 -0
  75. package/dist/chunks/asyncToGenerator-ChigusFD.js +26 -0
  76. package/dist/chunks/blank-line-Cb-JBP_5.js +90 -0
  77. package/dist/chunks/blank-line-Cb-JBP_5.js.map +1 -0
  78. package/dist/chunks/codemirror-DyphMAEg.js +84 -0
  79. package/dist/chunks/codemirror-DyphMAEg.js.map +1 -0
  80. package/dist/chunks/config-aRYo2R8_.js +12 -0
  81. package/dist/chunks/config-aRYo2R8_.js.map +1 -0
  82. package/dist/chunks/context-8NfW6fxI.js +32 -0
  83. package/dist/chunks/context-8NfW6fxI.js.map +1 -0
  84. package/dist/chunks/default-DWVS-I_8.js +23 -0
  85. package/dist/chunks/default-DWVS-I_8.js.map +1 -0
  86. package/dist/chunks/diagnostics-CtHoJyiX.js +25 -0
  87. package/dist/chunks/diagnostics-CtHoJyiX.js.map +1 -0
  88. package/dist/chunks/export-DZQ3cUry.js +1575 -0
  89. package/dist/chunks/export-DZQ3cUry.js.map +1 -0
  90. package/dist/chunks/hast-nodes-C0bX3M5Z.js +35 -0
  91. package/dist/chunks/hast-nodes-C0bX3M5Z.js.map +1 -0
  92. package/dist/chunks/highlightjs-BEh-YwEG.js +6041 -0
  93. package/dist/chunks/highlightjs-BEh-YwEG.js.map +1 -0
  94. package/dist/chunks/identity-jZEhX2d5.js +6244 -0
  95. package/dist/chunks/identity-jZEhX2d5.js.map +1 -0
  96. package/dist/chunks/labels-BtHiUTQI.js +49 -0
  97. package/dist/chunks/labels-BtHiUTQI.js.map +1 -0
  98. package/dist/chunks/lib-BQiWGWpu.js +5087 -0
  99. package/dist/chunks/lib-BQiWGWpu.js.map +1 -0
  100. package/dist/chunks/lib-LwqA_W3J.js +127 -0
  101. package/dist/chunks/lib-LwqA_W3J.js.map +1 -0
  102. package/dist/chunks/longest-streak-DZE_EqsU.js +10 -0
  103. package/dist/chunks/longest-streak-DZE_EqsU.js.map +1 -0
  104. package/dist/chunks/micromark-factory-space-Db040TnW.js +139 -0
  105. package/dist/chunks/micromark-factory-space-Db040TnW.js.map +1 -0
  106. package/dist/chunks/normalize-CRYv3Wqt.js +220 -0
  107. package/dist/chunks/normalize-CRYv3Wqt.js.map +1 -0
  108. package/dist/chunks/objectSpread2-CtBNx0TF.js +57 -0
  109. package/dist/chunks/plugin-DqkFHyny.js +28 -0
  110. package/dist/chunks/plugin-DqkFHyny.js.map +1 -0
  111. package/dist/chunks/preset-BjaOuJUL.js +46 -0
  112. package/dist/chunks/preset-BjaOuJUL.js.map +1 -0
  113. package/dist/chunks/registry-DLjr93-V.js +6144 -0
  114. package/dist/chunks/registry-DLjr93-V.js.map +1 -0
  115. package/dist/chunks/render-Cs8iKrgz.js +1724 -0
  116. package/dist/chunks/render-Cs8iKrgz.js.map +1 -0
  117. package/dist/chunks/runtime-DJMnzjah.js +546 -0
  118. package/dist/chunks/runtime-DJMnzjah.js.map +1 -0
  119. package/dist/chunks/security-y4EwUyAs.js +214 -0
  120. package/dist/chunks/security-y4EwUyAs.js.map +1 -0
  121. package/dist/chunks/shared-DNAvZ-UY.js +76 -0
  122. package/dist/chunks/shared-DNAvZ-UY.js.map +1 -0
  123. package/dist/chunks/space-separated-tokens-CmBjEPdR.js +1099 -0
  124. package/dist/chunks/space-separated-tokens-CmBjEPdR.js.map +1 -0
  125. package/dist/chunks/url-D2BoivaE.js +26 -0
  126. package/dist/chunks/url-D2BoivaE.js.map +1 -0
  127. package/dist/chunks/useActiveHeading-BaGVMJnB.js +316 -0
  128. package/dist/chunks/useActiveHeading-BaGVMJnB.js.map +1 -0
  129. package/dist/components/CodeBlock.d.ts +73 -0
  130. package/dist/components/CodeBlock.js +1 -0
  131. package/dist/components/Icon.d.ts +6 -0
  132. package/dist/components/MarkdownBlockquote.d.ts +18 -0
  133. package/dist/components/MarkdownBlockquote.js +1 -0
  134. package/dist/components/MarkdownBreak.d.ts +8 -0
  135. package/dist/components/MarkdownBreak.js +1 -0
  136. package/dist/components/MarkdownChildren.d.ts +17 -0
  137. package/dist/components/MarkdownCode.d.ts +29 -0
  138. package/dist/components/MarkdownCode.js +1 -0
  139. package/dist/components/MarkdownConfigProvider.d.ts +33 -0
  140. package/dist/components/MarkdownConfigProvider.js +1 -0
  141. package/dist/components/MarkdownContent.d.ts +16 -0
  142. package/dist/components/MarkdownContent.js +1 -0
  143. package/dist/components/MarkdownCustomTag.d.ts +20 -0
  144. package/dist/components/MarkdownCustomTag.js +1 -0
  145. package/dist/components/MarkdownEmphasis.d.ts +18 -0
  146. package/dist/components/MarkdownEmphasis.js +1 -0
  147. package/dist/components/MarkdownEmpty.d.ts +8 -0
  148. package/dist/components/MarkdownEmpty.js +1 -0
  149. package/dist/components/MarkdownError.d.ts +11 -0
  150. package/dist/components/MarkdownError.js +1 -0
  151. package/dist/components/MarkdownFootnoteReference.d.ts +19 -0
  152. package/dist/components/MarkdownFootnoteReference.js +1 -0
  153. package/dist/components/MarkdownFootnotes.d.ts +17 -0
  154. package/dist/components/MarkdownFootnotes.js +1 -0
  155. package/dist/components/MarkdownHeading.d.ts +18 -0
  156. package/dist/components/MarkdownHeading.js +1 -0
  157. package/dist/components/MarkdownHorizontalRule.d.ts +8 -0
  158. package/dist/components/MarkdownHorizontalRule.js +1 -0
  159. package/dist/components/MarkdownHtml.d.ts +8 -0
  160. package/dist/components/MarkdownHtml.js +1 -0
  161. package/dist/components/MarkdownImage.d.ts +15 -0
  162. package/dist/components/MarkdownImage.js +1 -0
  163. package/dist/components/MarkdownInlineCode.d.ts +18 -0
  164. package/dist/components/MarkdownInlineCode.js +1 -0
  165. package/dist/components/MarkdownLink.d.ts +22 -0
  166. package/dist/components/MarkdownLink.js +1 -0
  167. package/dist/components/MarkdownList.d.ts +18 -0
  168. package/dist/components/MarkdownList.js +1 -0
  169. package/dist/components/MarkdownListItem.d.ts +18 -0
  170. package/dist/components/MarkdownListItem.js +1 -0
  171. package/dist/components/MarkdownLoading.d.ts +8 -0
  172. package/dist/components/MarkdownLoading.js +1 -0
  173. package/dist/components/MarkdownMath.d.ts +12 -0
  174. package/dist/components/MarkdownMath.js +1 -0
  175. package/dist/components/MarkdownMermaid.d.ts +78 -0
  176. package/dist/components/MarkdownMermaid.js +1 -0
  177. package/dist/components/MarkdownParagraph.d.ts +18 -0
  178. package/dist/components/MarkdownParagraph.js +1 -0
  179. package/dist/components/MarkdownRenderer.d.ts +170 -0
  180. package/dist/components/MarkdownRenderer.js +1 -0
  181. package/dist/components/MarkdownRoot.d.ts +24 -0
  182. package/dist/components/MarkdownRoot.js +1 -0
  183. package/dist/components/MarkdownStrikethrough.d.ts +18 -0
  184. package/dist/components/MarkdownStrikethrough.js +1 -0
  185. package/dist/components/MarkdownStrong.d.ts +18 -0
  186. package/dist/components/MarkdownStrong.js +1 -0
  187. package/dist/components/MarkdownTable.d.ts +18 -0
  188. package/dist/components/MarkdownTable.js +1 -0
  189. package/dist/components/MarkdownTableCell.d.ts +20 -0
  190. package/dist/components/MarkdownTableCell.js +1 -0
  191. package/dist/components/MarkdownTableRow.d.ts +18 -0
  192. package/dist/components/MarkdownTableRow.js +1 -0
  193. package/dist/components/MarkdownTableSection.d.ts +18 -0
  194. package/dist/components/MarkdownTableSection.js +1 -0
  195. package/dist/components/MarkdownTaskItem.d.ts +20 -0
  196. package/dist/components/MarkdownTaskItem.js +1 -0
  197. package/dist/components/MarkdownToc.d.ts +36 -0
  198. package/dist/components/MarkdownToc.js +1 -0
  199. package/dist/components/MarkdownTocItem.d.ts +14 -0
  200. package/dist/components/MarkdownTocItem.js +1 -0
  201. package/dist/components/MermaidBlock.d.ts +50 -0
  202. package/dist/components/MermaidBlock.js +1 -0
  203. package/dist/components/MermaidLiveEditor.d.ts +44 -0
  204. package/dist/components/MermaidLiveEditor.js +1 -0
  205. package/dist/components/VueSyntaxHighlighter.d.ts +39 -0
  206. package/dist/components/VueSyntaxHighlighter.js +1 -0
  207. package/dist/components/codeRegion.d.ts +14 -0
  208. package/dist/components/config.d.ts +7 -0
  209. package/dist/components/context.d.ts +45 -0
  210. package/dist/components/index.d.ts +42 -0
  211. package/dist/components/index.js +38 -0
  212. package/dist/components/render.d.ts +9 -0
  213. package/dist/components/scroll-lock.d.ts +7 -0
  214. package/dist/components/types.d.ts +29 -0
  215. package/dist/composables/useActiveHeading.d.ts +12 -0
  216. package/dist/composables/useCodeHighlighter.d.ts +30 -0
  217. package/dist/composables/useLineWindow.d.ts +38 -0
  218. package/dist/composables/useMarkdownDocument.d.ts +23 -0
  219. package/dist/core/adapters.d.ts +7 -0
  220. package/dist/core/config.d.ts +5 -0
  221. package/dist/core/diagnostics.d.ts +9 -0
  222. package/dist/core/finalize.d.ts +18 -0
  223. package/dist/core/hast-nodes.d.ts +6 -0
  224. package/dist/core/highlight-lines.d.ts +8 -0
  225. package/dist/core/identity.d.ts +4 -0
  226. package/dist/core/labels.d.ts +4 -0
  227. package/dist/core/manifest.d.ts +38 -0
  228. package/dist/core/memo.d.ts +5 -0
  229. package/dist/core/model-hast.d.ts +8 -0
  230. package/dist/core/model.d.ts +10 -0
  231. package/dist/core/normalize.d.ts +27 -0
  232. package/dist/core/parts.d.ts +135 -0
  233. package/dist/core/preset.d.ts +10 -0
  234. package/dist/core/run.d.ts +16 -0
  235. package/dist/core/search.d.ts +5 -0
  236. package/dist/core/security.d.ts +21 -0
  237. package/dist/core/slugger.d.ts +6 -0
  238. package/dist/core/types.d.ts +390 -0
  239. package/dist/core/url.d.ts +10 -0
  240. package/dist/editor/codemirror.d.ts +14 -0
  241. package/dist/editor/index.d.ts +2 -0
  242. package/dist/editor/index.js +1 -0
  243. package/dist/export/index.d.ts +6 -0
  244. package/dist/headless.d.ts +21 -0
  245. package/dist/headless.js +12 -0
  246. package/dist/highlight/highlightjs.d.ts +7 -0
  247. package/dist/highlight/index.d.ts +3 -0
  248. package/dist/highlight/index.js +3 -0
  249. package/dist/highlight/shared.d.ts +16 -0
  250. package/dist/highlight/shiki.d.ts +7 -0
  251. package/dist/highlight/shiki.js +76 -0
  252. package/dist/highlight/shiki.js.map +1 -0
  253. package/dist/html/index.d.ts +17 -0
  254. package/dist/html/index.js +13 -0
  255. package/dist/html/index.js.map +1 -0
  256. package/dist/index.d.ts +24 -0
  257. package/dist/index.js +55 -0
  258. package/dist/index.js.map +1 -0
  259. package/dist/math/index.d.ts +4 -0
  260. package/dist/math/index.js +583 -0
  261. package/dist/math/index.js.map +1 -0
  262. package/dist/math/katex.d.ts +4 -0
  263. package/dist/math/plugin.d.ts +20 -0
  264. package/dist/mermaid/index.d.ts +5 -0
  265. package/dist/mermaid/index.js +3 -0
  266. package/dist/mermaid/plugin.d.ts +14 -0
  267. package/dist/mermaid/runtime.d.ts +12 -0
  268. package/dist/mermaid/sanitize.d.ts +12 -0
  269. package/dist/node-components.d.ts +1 -0
  270. package/dist/node-components.js +39 -0
  271. package/dist/pipeline/custom.d.ts +8 -0
  272. package/dist/pipeline/identity.d.ts +12 -0
  273. package/dist/pipeline/index.d.ts +5 -0
  274. package/dist/pipeline/official.d.ts +6 -0
  275. package/dist/pipeline.d.ts +1 -0
  276. package/dist/pipeline.js +1 -0
  277. package/dist/plugins/builtin.d.ts +15 -0
  278. package/dist/plugins/define.d.ts +7 -0
  279. package/dist/plugins/registry.d.ts +16 -0
  280. package/dist/plugins/source.d.ts +7 -0
  281. package/dist/plugins.d.ts +3 -0
  282. package/dist/plugins.js +1 -0
  283. package/dist/presets.d.ts +3 -0
  284. package/dist/presets.js +1 -0
  285. package/dist/style.css +2 -0
  286. package/dist/styles/components.css +712 -0
  287. package/dist/styles/index.d.ts +1 -0
  288. package/dist/styles/math-full.css +3 -0
  289. package/dist/styles/math.css +18 -0
  290. package/dist/styles/tokens.css +96 -0
  291. package/package.json +211 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-separated-tokens-CmBjEPdR.js","names":["types","html","svg","htmlBase","svgBase","parse","stringify","__exportAll","Schema","normal","property","space","merge","definition","definitions","normalize","value","Info","attribute","types_exports","boolean","booleanish","commaOrSpaceSeparated","commaSeparated","number","overloadedBoolean","spaceSeparated","powers","increment","checks","DefinedInfo","index","mark","mask","check","key","create","properties","normals","info","aria","caseSensitiveTransform","attributes","caseInsensitiveTransform","html$1","svg$1","xlink","xmlns","xml","cap","dash","valid","find","Type","schema","rest","camelcase","dashes","kebab","$0","html","svg","parse$1","tokens","input","start","end","token","stringify$1","settings","options","values","parse","stringify"],"sources":["../../node_modules/property-information/lib/util/schema.js","../../node_modules/property-information/lib/util/merge.js","../../node_modules/property-information/lib/normalize.js","../../node_modules/property-information/lib/util/info.js","../../node_modules/property-information/lib/util/types.js","../../node_modules/property-information/lib/util/defined-info.js","../../node_modules/property-information/lib/util/create.js","../../node_modules/property-information/lib/aria.js","../../node_modules/property-information/lib/util/case-sensitive-transform.js","../../node_modules/property-information/lib/util/case-insensitive-transform.js","../../node_modules/property-information/lib/html.js","../../node_modules/property-information/lib/svg.js","../../node_modules/property-information/lib/xlink.js","../../node_modules/property-information/lib/xmlns.js","../../node_modules/property-information/lib/xml.js","../../node_modules/property-information/lib/find.js","../../node_modules/property-information/index.js","../../node_modules/comma-separated-tokens/index.js","../../node_modules/space-separated-tokens/index.js"],"sourcesContent":["/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alpha: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n closedBy: null,\n colorSpace: null,\n cols: number,\n colSpan: number,\n command: null,\n commandFor: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootCustomElementRegistry: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shadowRootSerializable: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n credentialless: boolean,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n exportParts: commaSeparated,\n part: spaceSeparated,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n maskType: 'mask-type',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskType: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ // src/core/url.ts
2
+ var e = /^(https?|ircs?|mailto|xmpp)$/i, t = /^data:image\/(?:png|jpe?g|gif|webp|avif|bmp|x-icon)(?:;[a-z0-9=._+-]+)*,/i;
3
+ function n(n, r = "href") {
4
+ if (typeof n != "string") return "";
5
+ let i = n.trim();
6
+ if (!i) return n;
7
+ if (i.startsWith("data:")) return r === "src" && t.test(i) ? i : "";
8
+ let a = i.indexOf(":");
9
+ if (a < 0) return i;
10
+ let o = i.indexOf("?"), s = i.indexOf("#"), c = i.indexOf("/");
11
+ return c > -1 && a > c || o > -1 && a > o || s > -1 && a > s || e.test(i.slice(0, a)) ? i : "";
12
+ }
13
+ function r(e) {
14
+ return /^(?:[a-z][a-z0-9+.-]*:)?\/\//i.test(e);
15
+ }
16
+ function i(e, t) {
17
+ if (!t || !e || e.startsWith("#") || e.startsWith("//") || /^[a-z][a-z0-9+.-]*:/i.test(e)) return e;
18
+ try {
19
+ return new URL(e, t).toString();
20
+ } catch (t) {
21
+ return e;
22
+ }
23
+ }
24
+ export { r as n, i as r, n as t };
25
+
26
+ //# sourceMappingURL=url-D2BoivaE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-D2BoivaE.js","names":["SAFE_PROTOCOL","SAFE_DATA_IMAGE","defaultUrlTransform","url","value","key","colon","questionMark","numberSign","slash","isExternalUrl","resolveUrl","baseUrl","_unused"],"sources":["../../src/core/url.ts"],"sourcesContent":["\r\nconst SAFE_PROTOCOL = /^(https?|ircs?|mailto|xmpp)$/i\r\nconst SAFE_DATA_IMAGE =\r\n /^data:image\\/(?:png|jpe?g|gif|webp|avif|bmp|x-icon)(?:;[a-z0-9=._+-]+)*,/i\r\n\r\n/**\r\n * react-markdown-compatible URL transform.\r\n *\r\n * Relative URLs and the documented protocol set pass through. Dangerous\r\n * protocols are removed. Image data URLs are accepted for raster formats only;\r\n * `image/svg+xml` is rejected because it can carry script.\r\n */\r\nexport function defaultUrlTransform(\r\n url: string,\r\n key = 'href',\r\n): string {\r\n if (typeof url !== 'string') return ''\r\n const value = url.trim()\r\n if (!value) return url\r\n\r\n if (value.startsWith('data:')) {\r\n if (key === 'src' && SAFE_DATA_IMAGE.test(value)) return value\r\n return ''\r\n }\r\n\r\n const colon = value.indexOf(':')\r\n if (colon < 0) return value\r\n\r\n const questionMark = value.indexOf('?')\r\n const numberSign = value.indexOf('#')\r\n const slash = value.indexOf('/')\r\n\r\n const relative =\r\n (slash > -1 && colon > slash) ||\r\n (questionMark > -1 && colon > questionMark) ||\r\n (numberSign > -1 && colon > numberSign)\r\n\r\n if (relative) return value\r\n return SAFE_PROTOCOL.test(value.slice(0, colon)) ? value : ''\r\n}\r\n\r\nexport function isExternalUrl(url: string): boolean {\r\n return /^(?:[a-z][a-z0-9+.-]*:)?\\/\\//i.test(url)\r\n}\r\n\r\nexport function resolveUrl(url: string, baseUrl: string | undefined): string {\r\n if (!baseUrl) return url\r\n if (!url || url.startsWith('#') || url.startsWith('//')) return url\r\n if (/^[a-z][a-z0-9+.-]*:/i.test(url)) return url\r\n try {\r\n return new URL(url, baseUrl).toString()\r\n } catch {\r\n return url\r\n }\r\n}\r\n\r\n"],"mappings":";AACA,IAAMA,IAAgB,iCAChBC,IACJ;AASF,SAAgBC,EACd,GACA,IAAM,QACE;CACR,IAAI,OAAOC,KAAQ,UAAU,OAAO;CACpC,IAAMC,IAAQD,EAAI,KAAK;CACvB,IAAI,CAACC,GAAO,OAAOD;CAEnB,IAAIC,EAAM,WAAW,OAAO,GAE1B,OADIC,MAAQ,SAASJ,EAAgB,KAAKG,CAAK,IAAUA,IAClD;CAGT,IAAME,IAAQF,EAAM,QAAQ,GAAG;CAC/B,IAAIE,IAAQ,GAAG,OAAOF;CAEtB,IAAMG,IAAeH,EAAM,QAAQ,GAAG,GAChCI,IAAaJ,EAAM,QAAQ,GAAG,GAC9BK,IAAQL,EAAM,QAAQ,GAAG;CAQ/B,OALGK,IAAQ,MAAMH,IAAQG,KACtBF,IAAe,MAAMD,IAAQC,KAC7BC,IAAa,MAAMF,IAAQE,KAGvBR,EAAc,KAAKI,EAAM,MAAM,GAAGE,CAAK,CAAC,IAD1BF,IACsC;AAC7D;AAEA,SAAgBM,EAAc,GAAsB;CAClD,OAAO,gCAAgC,KAAKP,CAAG;AACjD;AAEA,SAAgBQ,EAAW,GAAa,GAAqC;CAG3E,IAFI,CAACC,KACD,CAACT,KAAOA,EAAI,WAAW,GAAG,KAAKA,EAAI,WAAW,IAAI,KAClD,uBAAuB,KAAKA,CAAG,GAAG,OAAOA;CAC7C,IAAI;EACF,OAAO,IAAI,IAAIA,GAAKS,CAAO,CAAC,CAAC,SAAS;CACxC,SAAAC,GAAQ;EACN,OAAOV;CACT;AACF"}
@@ -0,0 +1,316 @@
1
+ import { n as e, t } from "./diagnostics-CtHoJyiX.js";
2
+ import { i as n, n as r, t as i } from "./normalize-CRYv3Wqt.js";
3
+ import { t as a } from "./objectSpread2-CtBNx0TF.js";
4
+ import { d as o, g as s, i as c, t as l } from "./registry-DLjr93-V.js";
5
+ import { a as u, c as d, n as f, r as p, t as m } from "./identity-jZEhX2d5.js";
6
+ import { t as h } from "./asyncToGenerator-ChigusFD.js";
7
+ import { computed as g, effectScope as _, getCurrentScope as v, onBeforeUnmount as y, onMounted as b, onScopeDispose as x, ref as S, shallowRef as C, toValue as w, watch as T } from "vue";
8
+ // src/core/model.ts
9
+ function E(e) {
10
+ return {
11
+ nodes: e.nodes,
12
+ toc: r(e.nodes),
13
+ customTags: i(e.nodes),
14
+ frontmatter: e.frontmatter,
15
+ plugins: e.plugins,
16
+ pipeline: e.pipeline
17
+ };
18
+ }
19
+ function D(e) {
20
+ return a(a({}, e), {}, {
21
+ toc: r(e.nodes),
22
+ customTags: i(e.nodes)
23
+ });
24
+ }
25
+ // src/core/slugger.ts
26
+ function O(e) {
27
+ let t = /* @__PURE__ */ new Set();
28
+ return {
29
+ slug(n) {
30
+ let r = e.slug(n), i = r, a = 1;
31
+ for (; t.has(i);) i = `${r}-${a}`, a += 1;
32
+ return t.add(i), i;
33
+ },
34
+ reset() {
35
+ var n;
36
+ t.clear(), (n = e.reset) == null || n.call(e);
37
+ }
38
+ };
39
+ }
40
+ // src/core/finalize.ts
41
+ function k(r) {
42
+ var i;
43
+ let { source: a, result: c, options: l, plugins: u, pipelineName: d, slugger: f, idPrefix: p, diagnostics: m } = r, h = E({
44
+ nodes: n(c.hast, {
45
+ slugger: f,
46
+ idPrefix: p,
47
+ urlTransform: l.urlTransform,
48
+ baseUrl: l.baseUrl,
49
+ allowedElements: l.allowedElements,
50
+ disallowedElements: l.disallowedElements,
51
+ unwrapDisallowed: l.unwrapDisallowed,
52
+ allowElement: l.allowElement,
53
+ diagnostics: m
54
+ }).nodes,
55
+ plugins: u.names,
56
+ pipeline: d,
57
+ frontmatter: c.frontmatter
58
+ }), g = o(a, l, m);
59
+ for (let n of u.plugins) if (n.transformDocument) try {
60
+ let e = n.transformDocument(h, g);
61
+ e && (h = e);
62
+ } catch (r) {
63
+ var _;
64
+ m.push(t("plugin-transform", e(r), {
65
+ phase: "document",
66
+ plugin: n.name
67
+ })), (_ = n.onError) == null || _.call(n, r, "document", g);
68
+ }
69
+ return (i = l.search) != null && (i = i.query) != null && i.trim() && (h = s(h, l.search)), D(h);
70
+ }
71
+ // node_modules/github-slugger/regex.js
72
+ var A = /[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g, j = Object.hasOwnProperty, M = class {
73
+ constructor() {
74
+ this.occurrences, this.reset();
75
+ }
76
+ slug(e, t) {
77
+ let n = this, r = N(e, t === !0), i = r;
78
+ for (; j.call(n.occurrences, r);) n.occurrences[i]++, r = i + "-" + n.occurrences[i];
79
+ return n.occurrences[r] = 0, r;
80
+ }
81
+ reset() {
82
+ this.occurrences = Object.create(null);
83
+ }
84
+ };
85
+ function N(e, t) {
86
+ return typeof e == "string" ? (t || (e = e.toLowerCase()), e.replace(A, "").replace(/ /g, "-")) : "";
87
+ }
88
+ // src/plugins/source.ts
89
+ function P(n, r, i, a, o) {
90
+ if (a.push(t(o, e(r), {
91
+ phase: "source",
92
+ plugin: n.name
93
+ })), n.onError) try {
94
+ n.onError(r, "source", i);
95
+ } catch (r) {
96
+ a.push(t("plugin-onerror", e(r), {
97
+ phase: "source",
98
+ plugin: n.name
99
+ }));
100
+ }
101
+ }
102
+ function F(e, t, n, r) {
103
+ let i = e, a = o(e, n, r);
104
+ for (let e of t) if (e.transformSource) {
105
+ a.source = i;
106
+ try {
107
+ let t = e.transformSource(i, a);
108
+ if (typeof t == "string") {
109
+ i = t;
110
+ continue;
111
+ }
112
+ P(e, /* @__PURE__ */ TypeError("transformSource must return a string."), a, r, "plugin-source");
113
+ } catch (t) {
114
+ P(e, t, a, r, "plugin-source");
115
+ }
116
+ }
117
+ return i;
118
+ }
119
+ // src/core/memo.ts
120
+ var I = 64, L = /* @__PURE__ */ new Map();
121
+ function R(e) {
122
+ let t = L.get(e);
123
+ if (t) return L.delete(e), L.set(e, t), t;
124
+ }
125
+ function z(e, t) {
126
+ for (L.has(e) && L.delete(e), L.set(e, t); L.size > I;) {
127
+ let e = L.keys().next().value;
128
+ if (e === void 0) break;
129
+ L.delete(e);
130
+ }
131
+ }
132
+ function B() {
133
+ L.clear();
134
+ }
135
+ function V() {
136
+ return L.size;
137
+ }
138
+ // src/composables/useMarkdownDocument.ts
139
+ function H(e) {
140
+ return e instanceof Error && /finished async|processSync.*async|async.*processSync/i.test(e.message);
141
+ }
142
+ function U(n, r = {}) {
143
+ let i = C(), s = C("idle"), y = C([]), b = C([]), S = g(() => {
144
+ var e;
145
+ return (e = w(r)) == null ? {} : e;
146
+ }), E = g(() => {
147
+ let e = w(n);
148
+ return typeof e == "string" ? e : "";
149
+ }), D = g(() => {
150
+ var e, t;
151
+ return l((e = S.value.plugins) == null ? c : e, (t = S.value.disablePlugins) == null ? [] : t);
152
+ }), A = g(() => u(S.value.pipeline)), j = g(() => A.value.pipeline), N = g(() => {
153
+ var e;
154
+ return [...D.value.remarkPlugins, ...(e = S.value.remarkPlugins) == null ? [] : e];
155
+ }), P = g(() => {
156
+ var e;
157
+ return [...D.value.rehypePlugins, ...(e = S.value.rehypePlugins) == null ? [] : e];
158
+ }), I = g(() => {
159
+ var e;
160
+ return a(a({}, D.value.remarkRehypeOptions), (e = S.value.remarkRehypeOptions) == null ? {} : e);
161
+ }), L = new M(), B = g(() => {
162
+ var e;
163
+ return (e = S.value.slugger) == null ? L : e;
164
+ }), V = g(() => O(B.value)), U = g(() => {
165
+ var e;
166
+ return (e = S.value.idPrefix) == null ? "" : e;
167
+ }), W = g(() => f({
168
+ pipelineName: j.value.name,
169
+ plugins: D.value.plugins,
170
+ remarkPlugins: N.value,
171
+ rehypePlugins: P.value,
172
+ remarkRehypeOptions: S.value.remarkRehypeOptions,
173
+ options: S.value
174
+ })), G = g(() => W.value), K = g(() => D.value.plugins.map((e) => d(e)).join(",")), q, J = [], ee = () => {
175
+ q == null || q.stop();
176
+ for (let e of J) try {
177
+ e();
178
+ } catch (e) {}
179
+ J = [], q = _(!0), b.value = [];
180
+ let n = o(E.value, S.value, b.value);
181
+ for (let i of D.value.plugins) if (i.setup) try {
182
+ let e = i.setup(n);
183
+ typeof e == "function" && J.push(e);
184
+ } catch (a) {
185
+ var r;
186
+ let o = t("plugin-setup", e(a), {
187
+ phase: "setup",
188
+ plugin: i.name
189
+ });
190
+ b.value = [...b.value, o], (r = i.onError) == null || r.call(i, a, "setup", n);
191
+ }
192
+ };
193
+ v() && x(() => {
194
+ var e, t;
195
+ q == null || q.stop();
196
+ for (let e of J) try {
197
+ e();
198
+ } catch (e) {}
199
+ J = [], (e = (t = j.value).dispose) == null || e.call(t);
200
+ });
201
+ let Y = (e) => {
202
+ i.value = e, s.value = "ready";
203
+ }, X = (e, t) => ({
204
+ source: e,
205
+ options: S.value,
206
+ plugins: D.value.plugins,
207
+ remarkPlugins: N.value,
208
+ rehypePlugins: P.value,
209
+ remarkRehypeOptions: I.value,
210
+ slugger: V.value,
211
+ idPrefix: U.value,
212
+ diagnostics: t
213
+ }), te = (e, t, n) => k({
214
+ source: e,
215
+ result: t,
216
+ options: S.value,
217
+ plugins: D.value,
218
+ pipelineName: j.value.name,
219
+ slugger: V.value,
220
+ idPrefix: U.value,
221
+ diagnostics: n
222
+ }), Z = 0, Q = (e, t, n, r, i) => {
223
+ let a = te(e, t, n);
224
+ y.value = n, i && z(r, a), Y(a);
225
+ }, ne = (n, r, i, a) => {
226
+ let o = j.value.processSync;
227
+ if (!o) return "async";
228
+ try {
229
+ var c, l;
230
+ (c = (l = V.value).reset) == null || c.call(l);
231
+ let e = p(o.call(j.value, n, X(n, a)));
232
+ return Q(n, e, a, r, i), "done";
233
+ } catch (n) {
234
+ return H(n) ? "async" : (s.value = "error", y.value = [...a, t("pipeline-sync", e(n), { phase: "pipeline" })], "done");
235
+ }
236
+ }, re = function() {
237
+ var n = h(function* (n, r, i, a, o) {
238
+ s.value = "pending";
239
+ try {
240
+ var c, l;
241
+ (c = (l = V.value).reset) == null || c.call(l);
242
+ let e = p(yield j.value.process(r, X(r, o)));
243
+ if (n !== Z) return;
244
+ Q(r, e, o, i, a);
245
+ } catch (r) {
246
+ if (n !== Z) return;
247
+ s.value = "error", y.value = [...o, t("pipeline-process", e(r), { phase: "pipeline" })];
248
+ }
249
+ });
250
+ return function(e, t, r, i, a) {
251
+ return n.apply(this, arguments);
252
+ };
253
+ }(), $ = (e = !1) => {
254
+ let t = ++Z, n = [
255
+ ...A.value.diagnostics,
256
+ ...D.value.diagnostics,
257
+ ...b.value
258
+ ], r = F(E.value, D.value.plugins, S.value, n), i = m(r, W.value);
259
+ if (!e) {
260
+ let e = R(i);
261
+ if (e) return y.value = n, Y(e), Promise.resolve();
262
+ }
263
+ return ne(r, i, !e, n) === "done" ? Promise.resolve() : re(t, r, i, !e, n);
264
+ };
265
+ return T(K, ee, { immediate: !0 }), T([E, G], () => void $()), $(), {
266
+ document: i,
267
+ toc: g(() => {
268
+ var e, t;
269
+ return (e = (t = i.value) == null ? void 0 : t.toc) == null ? [] : e;
270
+ }),
271
+ status: s,
272
+ diagnostics: y,
273
+ pipeline: g(() => j.value.name),
274
+ plugins: g(() => D.value.names),
275
+ resolvedComponents: g(() => D.value.components),
276
+ resolvedNodeComponents: g(() => D.value.nodeComponents),
277
+ resolvedRegions: g(() => D.value.regions),
278
+ resolvedLabels: g(() => D.value.labels),
279
+ resolvedTokens: g(() => D.value.tokens),
280
+ refresh: () => $(!0)
281
+ };
282
+ }
283
+ // src/composables/useActiveHeading.ts
284
+ function W(e, t) {
285
+ let n = e.getElementById;
286
+ if (typeof n == "function") return n.call(e, t);
287
+ let r = e.querySelectorAll("[id]");
288
+ for (let e = 0; e < r.length; e += 1) {
289
+ let n = r[e];
290
+ if (n.getAttribute("id") === t) return n;
291
+ }
292
+ return null;
293
+ }
294
+ function G(e, t = !0, n = {}) {
295
+ let r = S(), i, a = () => {
296
+ i == null || i.disconnect(), i = void 0;
297
+ }, o = () => {
298
+ var o;
299
+ if (a(), !w(t) || typeof window > "u" || typeof IntersectionObserver > "u") return;
300
+ let s = (o = w(n.root)) == null ? window.document : o, c = w(e).map((e) => W(s, e)).filter((e) => e !== null);
301
+ if (c.length !== 0) {
302
+ i = new IntersectionObserver((e) => {
303
+ let t = e.filter((e) => e.isIntersecting).sort((e, t) => e.boundingClientRect.top - t.boundingClientRect.top);
304
+ t[0] && (r.value = t[0].target.id);
305
+ }, {
306
+ rootMargin: "0px 0px -70% 0px",
307
+ threshold: 0
308
+ });
309
+ for (let e of c) i.observe(e);
310
+ }
311
+ };
312
+ return b(o), T(() => w(e).join(""), o), T(() => w(t), o), n.root && T(() => w(n.root), o), y(a), r;
313
+ }
314
+ export { R as a, F as c, O as d, E as f, B as i, M as l, G as n, z as o, D as p, U as r, V as s, W as t, k as u };
315
+
316
+ //# sourceMappingURL=useActiveHeading-BaGVMJnB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActiveHeading-BaGVMJnB.js","names":["GithubSlugger","errorMessage","normalizeHast","extractToc","collectCustomTags","_objectSpread2","createPluginContext","searchDocument","defaultPlugins","resolvePlugins","resolvePipeline","identityOf","createPipelineIdentity","assertPipelineResult","createMemoKey","_asyncToGenerator","buildDocument","options","withDerivedDocument","document","withUniqueSlugs","used","base","slugger","text","candidate","index","_slugger$reset","finalizeMarkdownDocument","_options$search","input","documentValue","result","plugins","pipelineName","context","source","diagnostics","plugin","transformed","error","_plugin$onError","createDiagnostic","regex","own","BananaSlug","self","slug","value","maintainCase","originalSlug","report","code","secondary","applySourceTransforms","current","next","MAX_ENTRIES","cache","memoGet","key","memoSet","oldest","memoClear","memoSize","isAsyncError","useMarkdownDocument","shallowRef","status","setupDiagnostics","optionsRef","computed","_toValue","toValue","sourceRef","resolved","_optionsRef$value$plu","_optionsRef$value$dis","pipelineResult","pipeline","remarkPlugins","_optionsRef$value$rem","rehypePlugins","_optionsRef$value$reh","remarkRehypeOptions","_optionsRef$value$rem2","defaultSlugger","baseSlugger","_optionsRef$value$slu","idPrefix","_optionsRef$value$idP","pipelineIdentity","parseKey","pluginSetupKey","scope","cleanups","setupPlugins","cleanup","_unused","effectScope","diagnostic","getCurrentScope","onScopeDispose","_pipeline$value$dispo","_pipeline$value","_unused2","apply","createContext","nextDiagnostics","finalize","runId","applyRun","runSync","sync","_slugger$value$reset","_slugger$value","runAsync","_ref","_slugger$value$reset2","_slugger$value2","id","run","force","cached","watch","_document$value$toc","_document$value","findElementById","byId","candidates","element","useActiveHeading","activeId","ref","observer","disconnect","connect","enabled","elements","ids","visible","entries","entry","a","b","onMounted","onBeforeUnmount"],"sources":["../../src/core/model.ts","../../src/core/slugger.ts","../../src/core/finalize.ts","../../node_modules/github-slugger/regex.js","../../node_modules/github-slugger/index.js","../../src/plugins/source.ts","../../src/core/memo.ts","../../src/composables/useMarkdownDocument.ts","../../src/composables/useActiveHeading.ts"],"sourcesContent":["import type { MarkdownDocument, MarkdownNode } from './types'\r\nimport { collectCustomTags, extractToc } from './normalize'\r\n\r\nexport interface BuildDocumentOptions {\r\n nodes: MarkdownNode[]\r\n plugins: string[]\r\n pipeline: string\r\n frontmatter?: Record<string, unknown>\r\n}\r\n\r\nexport function buildDocument(options: BuildDocumentOptions): MarkdownDocument {\r\n return {\r\n nodes: options.nodes,\r\n toc: extractToc(options.nodes),\r\n customTags: collectCustomTags(options.nodes),\r\n frontmatter: options.frontmatter,\r\n plugins: options.plugins,\r\n pipeline: options.pipeline,\r\n }\r\n}\r\n\r\n/** Recompute derived collections after a document transform. */\r\nexport function withDerivedDocument(\r\n document: MarkdownDocument,\r\n): MarkdownDocument {\r\n return {\r\n ...document,\r\n toc: extractToc(document.nodes),\r\n customTags: collectCustomTags(document.nodes),\r\n }\r\n}\r\n","import type { MarkdownSlugger } from './types'\r\n\r\n/**\r\n * Ensure a host slugger still produces unique heading IDs. The wrapper keeps\r\n * the host's formatting and appends a numeric suffix for duplicates.\r\n */\r\nexport function withUniqueSlugs(slugger: MarkdownSlugger): MarkdownSlugger {\r\n const used = new Set<string>()\r\n return {\r\n slug(text: string): string {\r\n const base = slugger.slug(text)\r\n let candidate = base\r\n let index = 1\r\n while (used.has(candidate)) {\r\n candidate = `${base}-${index}`\r\n index += 1\r\n }\r\n used.add(candidate)\r\n return candidate\r\n },\r\n reset(): void {\r\n used.clear()\r\n slugger.reset?.()\r\n },\r\n }\r\n}\r\n","import type {\r\n MarkdownDiagnostic,\r\n MarkdownDocument,\r\n MarkdownDocumentOptions,\r\n MarkdownSlugger,\r\n PipelineResult,\r\n} from './types'\r\nimport type { ResolvedPlugins } from '../plugins/registry'\r\nimport { createPluginContext } from '../plugins/define'\r\nimport { createDiagnostic, errorMessage } from './diagnostics'\r\nimport { buildDocument, withDerivedDocument } from './model'\r\nimport { normalizeHast } from './normalize'\r\nimport { searchDocument } from './search'\r\n\r\nexport interface FinalizeDocumentOptions {\r\n source: string\r\n result: PipelineResult\r\n options: MarkdownDocumentOptions\r\n plugins: ResolvedPlugins\r\n pipelineName: string\r\n slugger: MarkdownSlugger\r\n idPrefix: string\r\n diagnostics: MarkdownDiagnostic[]\r\n}\r\n\r\n/**\r\n * Turn a pipeline result into the public document model. Both the reactive\r\n * composable and static export use this path so filtering, URL policy, heading\r\n * IDs, and plugin document transforms cannot diverge.\r\n */\r\nexport function finalizeMarkdownDocument(\r\n input: FinalizeDocumentOptions,\r\n): MarkdownDocument {\r\n const {\r\n source,\r\n result,\r\n options,\r\n plugins,\r\n pipelineName,\r\n slugger,\r\n idPrefix,\r\n diagnostics,\r\n } = input\r\n\r\n const normalized = normalizeHast(result.hast, {\r\n slugger,\r\n idPrefix,\r\n urlTransform: options.urlTransform,\r\n baseUrl: options.baseUrl,\r\n allowedElements: options.allowedElements,\r\n disallowedElements: options.disallowedElements,\r\n unwrapDisallowed: options.unwrapDisallowed,\r\n allowElement: options.allowElement,\r\n diagnostics,\r\n })\r\n\r\n let documentValue = buildDocument({\r\n nodes: normalized.nodes,\r\n plugins: plugins.names,\r\n pipeline: pipelineName,\r\n frontmatter: result.frontmatter,\r\n })\r\n\r\n const context = createPluginContext(source, options, diagnostics)\r\n for (const plugin of plugins.plugins) {\r\n if (!plugin.transformDocument) continue\r\n try {\r\n const transformed = plugin.transformDocument(documentValue, context)\r\n if (transformed) documentValue = transformed\r\n } catch (error) {\r\n diagnostics.push(\r\n createDiagnostic('plugin-transform', errorMessage(error), {\r\n phase: 'document',\r\n plugin: plugin.name,\r\n }),\r\n )\r\n plugin.onError?.(error, 'document', context)\r\n }\r\n }\r\n\r\n // The host-level search option is the renderer-friendly form of the search\r\n // transform. Run it after plugin transforms so the explicit option wins when\r\n // both are present.\r\n if (options.search?.query?.trim()) {\r\n documentValue = searchDocument(documentValue, options.search)\r\n }\r\n\r\n return withDerivedDocument(documentValue)\r\n}\r\n","// This module is generated by `script/`.\n/* eslint-disable no-control-regex, no-misleading-character-class, no-useless-escape */\nexport const regex = /[\\0-\\x1F!-,\\.\\/:-@\\[-\\^`\\{-\\xA9\\xAB-\\xB4\\xB6-\\xB9\\xBB-\\xBF\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0378\\u0379\\u037E\\u0380-\\u0385\\u0387\\u038B\\u038D\\u03A2\\u03F6\\u0482\\u0530\\u0557\\u0558\\u055A-\\u055F\\u0589-\\u0590\\u05BE\\u05C0\\u05C3\\u05C6\\u05C8-\\u05CF\\u05EB-\\u05EE\\u05F3-\\u060F\\u061B-\\u061F\\u066A-\\u066D\\u06D4\\u06DD\\u06DE\\u06E9\\u06FD\\u06FE\\u0700-\\u070F\\u074B\\u074C\\u07B2-\\u07BF\\u07F6-\\u07F9\\u07FB\\u07FC\\u07FE\\u07FF\\u082E-\\u083F\\u085C-\\u085F\\u086B-\\u089F\\u08B5\\u08C8-\\u08D2\\u08E2\\u0964\\u0965\\u0970\\u0984\\u098D\\u098E\\u0991\\u0992\\u09A9\\u09B1\\u09B3-\\u09B5\\u09BA\\u09BB\\u09C5\\u09C6\\u09C9\\u09CA\\u09CF-\\u09D6\\u09D8-\\u09DB\\u09DE\\u09E4\\u09E5\\u09F2-\\u09FB\\u09FD\\u09FF\\u0A00\\u0A04\\u0A0B-\\u0A0E\\u0A11\\u0A12\\u0A29\\u0A31\\u0A34\\u0A37\\u0A3A\\u0A3B\\u0A3D\\u0A43-\\u0A46\\u0A49\\u0A4A\\u0A4E-\\u0A50\\u0A52-\\u0A58\\u0A5D\\u0A5F-\\u0A65\\u0A76-\\u0A80\\u0A84\\u0A8E\\u0A92\\u0AA9\\u0AB1\\u0AB4\\u0ABA\\u0ABB\\u0AC6\\u0ACA\\u0ACE\\u0ACF\\u0AD1-\\u0ADF\\u0AE4\\u0AE5\\u0AF0-\\u0AF8\\u0B00\\u0B04\\u0B0D\\u0B0E\\u0B11\\u0B12\\u0B29\\u0B31\\u0B34\\u0B3A\\u0B3B\\u0B45\\u0B46\\u0B49\\u0B4A\\u0B4E-\\u0B54\\u0B58-\\u0B5B\\u0B5E\\u0B64\\u0B65\\u0B70\\u0B72-\\u0B81\\u0B84\\u0B8B-\\u0B8D\\u0B91\\u0B96-\\u0B98\\u0B9B\\u0B9D\\u0BA0-\\u0BA2\\u0BA5-\\u0BA7\\u0BAB-\\u0BAD\\u0BBA-\\u0BBD\\u0BC3-\\u0BC5\\u0BC9\\u0BCE\\u0BCF\\u0BD1-\\u0BD6\\u0BD8-\\u0BE5\\u0BF0-\\u0BFF\\u0C0D\\u0C11\\u0C29\\u0C3A-\\u0C3C\\u0C45\\u0C49\\u0C4E-\\u0C54\\u0C57\\u0C5B-\\u0C5F\\u0C64\\u0C65\\u0C70-\\u0C7F\\u0C84\\u0C8D\\u0C91\\u0CA9\\u0CB4\\u0CBA\\u0CBB\\u0CC5\\u0CC9\\u0CCE-\\u0CD4\\u0CD7-\\u0CDD\\u0CDF\\u0CE4\\u0CE5\\u0CF0\\u0CF3-\\u0CFF\\u0D0D\\u0D11\\u0D45\\u0D49\\u0D4F-\\u0D53\\u0D58-\\u0D5E\\u0D64\\u0D65\\u0D70-\\u0D79\\u0D80\\u0D84\\u0D97-\\u0D99\\u0DB2\\u0DBC\\u0DBE\\u0DBF\\u0DC7-\\u0DC9\\u0DCB-\\u0DCE\\u0DD5\\u0DD7\\u0DE0-\\u0DE5\\u0DF0\\u0DF1\\u0DF4-\\u0E00\\u0E3B-\\u0E3F\\u0E4F\\u0E5A-\\u0E80\\u0E83\\u0E85\\u0E8B\\u0EA4\\u0EA6\\u0EBE\\u0EBF\\u0EC5\\u0EC7\\u0ECE\\u0ECF\\u0EDA\\u0EDB\\u0EE0-\\u0EFF\\u0F01-\\u0F17\\u0F1A-\\u0F1F\\u0F2A-\\u0F34\\u0F36\\u0F38\\u0F3A-\\u0F3D\\u0F48\\u0F6D-\\u0F70\\u0F85\\u0F98\\u0FBD-\\u0FC5\\u0FC7-\\u0FFF\\u104A-\\u104F\\u109E\\u109F\\u10C6\\u10C8-\\u10CC\\u10CE\\u10CF\\u10FB\\u1249\\u124E\\u124F\\u1257\\u1259\\u125E\\u125F\\u1289\\u128E\\u128F\\u12B1\\u12B6\\u12B7\\u12BF\\u12C1\\u12C6\\u12C7\\u12D7\\u1311\\u1316\\u1317\\u135B\\u135C\\u1360-\\u137F\\u1390-\\u139F\\u13F6\\u13F7\\u13FE-\\u1400\\u166D\\u166E\\u1680\\u169B-\\u169F\\u16EB-\\u16ED\\u16F9-\\u16FF\\u170D\\u1715-\\u171F\\u1735-\\u173F\\u1754-\\u175F\\u176D\\u1771\\u1774-\\u177F\\u17D4-\\u17D6\\u17D8-\\u17DB\\u17DE\\u17DF\\u17EA-\\u180A\\u180E\\u180F\\u181A-\\u181F\\u1879-\\u187F\\u18AB-\\u18AF\\u18F6-\\u18FF\\u191F\\u192C-\\u192F\\u193C-\\u1945\\u196E\\u196F\\u1975-\\u197F\\u19AC-\\u19AF\\u19CA-\\u19CF\\u19DA-\\u19FF\\u1A1C-\\u1A1F\\u1A5F\\u1A7D\\u1A7E\\u1A8A-\\u1A8F\\u1A9A-\\u1AA6\\u1AA8-\\u1AAF\\u1AC1-\\u1AFF\\u1B4C-\\u1B4F\\u1B5A-\\u1B6A\\u1B74-\\u1B7F\\u1BF4-\\u1BFF\\u1C38-\\u1C3F\\u1C4A-\\u1C4C\\u1C7E\\u1C7F\\u1C89-\\u1C8F\\u1CBB\\u1CBC\\u1CC0-\\u1CCF\\u1CD3\\u1CFB-\\u1CFF\\u1DFA\\u1F16\\u1F17\\u1F1E\\u1F1F\\u1F46\\u1F47\\u1F4E\\u1F4F\\u1F58\\u1F5A\\u1F5C\\u1F5E\\u1F7E\\u1F7F\\u1FB5\\u1FBD\\u1FBF-\\u1FC1\\u1FC5\\u1FCD-\\u1FCF\\u1FD4\\u1FD5\\u1FDC-\\u1FDF\\u1FED-\\u1FF1\\u1FF5\\u1FFD-\\u203E\\u2041-\\u2053\\u2055-\\u2070\\u2072-\\u207E\\u2080-\\u208F\\u209D-\\u20CF\\u20F1-\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F-\\u215F\\u2189-\\u24B5\\u24EA-\\u2BFF\\u2C2F\\u2C5F\\u2CE5-\\u2CEA\\u2CF4-\\u2CFF\\u2D26\\u2D28-\\u2D2C\\u2D2E\\u2D2F\\u2D68-\\u2D6E\\u2D70-\\u2D7E\\u2D97-\\u2D9F\\u2DA7\\u2DAF\\u2DB7\\u2DBF\\u2DC7\\u2DCF\\u2DD7\\u2DDF\\u2E00-\\u2E2E\\u2E30-\\u3004\\u3008-\\u3020\\u3030\\u3036\\u3037\\u303D-\\u3040\\u3097\\u3098\\u309B\\u309C\\u30A0\\u30FB\\u3100-\\u3104\\u3130\\u318F-\\u319F\\u31C0-\\u31EF\\u3200-\\u33FF\\u4DC0-\\u4DFF\\u9FFD-\\u9FFF\\uA48D-\\uA4CF\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA62C-\\uA63F\\uA673\\uA67E\\uA6F2-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA7C0\\uA7C1\\uA7CB-\\uA7F4\\uA828-\\uA82B\\uA82D-\\uA83F\\uA874-\\uA87F\\uA8C6-\\uA8CF\\uA8DA-\\uA8DF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA954-\\uA95F\\uA97D-\\uA97F\\uA9C1-\\uA9CE\\uA9DA-\\uA9DF\\uA9FF\\uAA37-\\uAA3F\\uAA4E\\uAA4F\\uAA5A-\\uAA5F\\uAA77-\\uAA79\\uAAC3-\\uAADA\\uAADE\\uAADF\\uAAF0\\uAAF1\\uAAF7-\\uAB00\\uAB07\\uAB08\\uAB0F\\uAB10\\uAB17-\\uAB1F\\uAB27\\uAB2F\\uAB5B\\uAB6A-\\uAB6F\\uABEB\\uABEE\\uABEF\\uABFA-\\uABFF\\uD7A4-\\uD7AF\\uD7C7-\\uD7CA\\uD7FC-\\uD7FF\\uE000-\\uF8FF\\uFA6E\\uFA6F\\uFADA-\\uFAFF\\uFB07-\\uFB12\\uFB18-\\uFB1C\\uFB29\\uFB37\\uFB3D\\uFB3F\\uFB42\\uFB45\\uFBB2-\\uFBD2\\uFD3E-\\uFD4F\\uFD90\\uFD91\\uFDC8-\\uFDEF\\uFDFC-\\uFDFF\\uFE10-\\uFE1F\\uFE30-\\uFE32\\uFE35-\\uFE4C\\uFE50-\\uFE6F\\uFE75\\uFEFD-\\uFF0F\\uFF1A-\\uFF20\\uFF3B-\\uFF3E\\uFF40\\uFF5B-\\uFF65\\uFFBF-\\uFFC1\\uFFC8\\uFFC9\\uFFD0\\uFFD1\\uFFD8\\uFFD9\\uFFDD-\\uFFFF]|\\uD800[\\uDC0C\\uDC27\\uDC3B\\uDC3E\\uDC4E\\uDC4F\\uDC5E-\\uDC7F\\uDCFB-\\uDD3F\\uDD75-\\uDDFC\\uDDFE-\\uDE7F\\uDE9D-\\uDE9F\\uDED1-\\uDEDF\\uDEE1-\\uDEFF\\uDF20-\\uDF2C\\uDF4B-\\uDF4F\\uDF7B-\\uDF7F\\uDF9E\\uDF9F\\uDFC4-\\uDFC7\\uDFD0\\uDFD6-\\uDFFF]|\\uD801[\\uDC9E\\uDC9F\\uDCAA-\\uDCAF\\uDCD4-\\uDCD7\\uDCFC-\\uDCFF\\uDD28-\\uDD2F\\uDD64-\\uDDFF\\uDF37-\\uDF3F\\uDF56-\\uDF5F\\uDF68-\\uDFFF]|\\uD802[\\uDC06\\uDC07\\uDC09\\uDC36\\uDC39-\\uDC3B\\uDC3D\\uDC3E\\uDC56-\\uDC5F\\uDC77-\\uDC7F\\uDC9F-\\uDCDF\\uDCF3\\uDCF6-\\uDCFF\\uDD16-\\uDD1F\\uDD3A-\\uDD7F\\uDDB8-\\uDDBD\\uDDC0-\\uDDFF\\uDE04\\uDE07-\\uDE0B\\uDE14\\uDE18\\uDE36\\uDE37\\uDE3B-\\uDE3E\\uDE40-\\uDE5F\\uDE7D-\\uDE7F\\uDE9D-\\uDEBF\\uDEC8\\uDEE7-\\uDEFF\\uDF36-\\uDF3F\\uDF56-\\uDF5F\\uDF73-\\uDF7F\\uDF92-\\uDFFF]|\\uD803[\\uDC49-\\uDC7F\\uDCB3-\\uDCBF\\uDCF3-\\uDCFF\\uDD28-\\uDD2F\\uDD3A-\\uDE7F\\uDEAA\\uDEAD-\\uDEAF\\uDEB2-\\uDEFF\\uDF1D-\\uDF26\\uDF28-\\uDF2F\\uDF51-\\uDFAF\\uDFC5-\\uDFDF\\uDFF7-\\uDFFF]|\\uD804[\\uDC47-\\uDC65\\uDC70-\\uDC7E\\uDCBB-\\uDCCF\\uDCE9-\\uDCEF\\uDCFA-\\uDCFF\\uDD35\\uDD40-\\uDD43\\uDD48-\\uDD4F\\uDD74\\uDD75\\uDD77-\\uDD7F\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDFF\\uDE12\\uDE38-\\uDE3D\\uDE3F-\\uDE7F\\uDE87\\uDE89\\uDE8E\\uDE9E\\uDEA9-\\uDEAF\\uDEEB-\\uDEEF\\uDEFA-\\uDEFF\\uDF04\\uDF0D\\uDF0E\\uDF11\\uDF12\\uDF29\\uDF31\\uDF34\\uDF3A\\uDF45\\uDF46\\uDF49\\uDF4A\\uDF4E\\uDF4F\\uDF51-\\uDF56\\uDF58-\\uDF5C\\uDF64\\uDF65\\uDF6D-\\uDF6F\\uDF75-\\uDFFF]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A-\\uDC5D\\uDC62-\\uDC7F\\uDCC6\\uDCC8-\\uDCCF\\uDCDA-\\uDD7F\\uDDB6\\uDDB7\\uDDC1-\\uDDD7\\uDDDE-\\uDDFF\\uDE41-\\uDE43\\uDE45-\\uDE4F\\uDE5A-\\uDE7F\\uDEB9-\\uDEBF\\uDECA-\\uDEFF\\uDF1B\\uDF1C\\uDF2C-\\uDF2F\\uDF3A-\\uDFFF]|\\uD806[\\uDC3B-\\uDC9F\\uDCEA-\\uDCFE\\uDD07\\uDD08\\uDD0A\\uDD0B\\uDD14\\uDD17\\uDD36\\uDD39\\uDD3A\\uDD44-\\uDD4F\\uDD5A-\\uDD9F\\uDDA8\\uDDA9\\uDDD8\\uDDD9\\uDDE2\\uDDE5-\\uDDFF\\uDE3F-\\uDE46\\uDE48-\\uDE4F\\uDE9A-\\uDE9C\\uDE9E-\\uDEBF\\uDEF9-\\uDFFF]|\\uD807[\\uDC09\\uDC37\\uDC41-\\uDC4F\\uDC5A-\\uDC71\\uDC90\\uDC91\\uDCA8\\uDCB7-\\uDCFF\\uDD07\\uDD0A\\uDD37-\\uDD39\\uDD3B\\uDD3E\\uDD48-\\uDD4F\\uDD5A-\\uDD5F\\uDD66\\uDD69\\uDD8F\\uDD92\\uDD99-\\uDD9F\\uDDAA-\\uDEDF\\uDEF7-\\uDFAF\\uDFB1-\\uDFFF]|\\uD808[\\uDF9A-\\uDFFF]|\\uD809[\\uDC6F-\\uDC7F\\uDD44-\\uDFFF]|[\\uD80A\\uD80B\\uD80E-\\uD810\\uD812-\\uD819\\uD824-\\uD82B\\uD82D\\uD82E\\uD830-\\uD833\\uD837\\uD839\\uD83D\\uD83F\\uD87B-\\uD87D\\uD87F\\uD885-\\uDB3F\\uDB41-\\uDBFF][\\uDC00-\\uDFFF]|\\uD80D[\\uDC2F-\\uDFFF]|\\uD811[\\uDE47-\\uDFFF]|\\uD81A[\\uDE39-\\uDE3F\\uDE5F\\uDE6A-\\uDECF\\uDEEE\\uDEEF\\uDEF5-\\uDEFF\\uDF37-\\uDF3F\\uDF44-\\uDF4F\\uDF5A-\\uDF62\\uDF78-\\uDF7C\\uDF90-\\uDFFF]|\\uD81B[\\uDC00-\\uDE3F\\uDE80-\\uDEFF\\uDF4B-\\uDF4E\\uDF88-\\uDF8E\\uDFA0-\\uDFDF\\uDFE2\\uDFE5-\\uDFEF\\uDFF2-\\uDFFF]|\\uD821[\\uDFF8-\\uDFFF]|\\uD823[\\uDCD6-\\uDCFF\\uDD09-\\uDFFF]|\\uD82C[\\uDD1F-\\uDD4F\\uDD53-\\uDD63\\uDD68-\\uDD6F\\uDEFC-\\uDFFF]|\\uD82F[\\uDC6B-\\uDC6F\\uDC7D-\\uDC7F\\uDC89-\\uDC8F\\uDC9A-\\uDC9C\\uDC9F-\\uDFFF]|\\uD834[\\uDC00-\\uDD64\\uDD6A-\\uDD6C\\uDD73-\\uDD7A\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDE41\\uDE45-\\uDFFF]|\\uD835[\\uDC55\\uDC9D\\uDCA0\\uDCA1\\uDCA3\\uDCA4\\uDCA7\\uDCA8\\uDCAD\\uDCBA\\uDCBC\\uDCC4\\uDD06\\uDD0B\\uDD0C\\uDD15\\uDD1D\\uDD3A\\uDD3F\\uDD45\\uDD47-\\uDD49\\uDD51\\uDEA6\\uDEA7\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3\\uDFCC\\uDFCD]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85-\\uDE9A\\uDEA0\\uDEB0-\\uDFFF]|\\uD838[\\uDC07\\uDC19\\uDC1A\\uDC22\\uDC25\\uDC2B-\\uDCFF\\uDD2D-\\uDD2F\\uDD3E\\uDD3F\\uDD4A-\\uDD4D\\uDD4F-\\uDEBF\\uDEFA-\\uDFFF]|\\uD83A[\\uDCC5-\\uDCCF\\uDCD7-\\uDCFF\\uDD4C-\\uDD4F\\uDD5A-\\uDFFF]|\\uD83B[\\uDC00-\\uDDFF\\uDE04\\uDE20\\uDE23\\uDE25\\uDE26\\uDE28\\uDE33\\uDE38\\uDE3A\\uDE3C-\\uDE41\\uDE43-\\uDE46\\uDE48\\uDE4A\\uDE4C\\uDE50\\uDE53\\uDE55\\uDE56\\uDE58\\uDE5A\\uDE5C\\uDE5E\\uDE60\\uDE63\\uDE65\\uDE66\\uDE6B\\uDE73\\uDE78\\uDE7D\\uDE7F\\uDE8A\\uDE9C-\\uDEA0\\uDEA4\\uDEAA\\uDEBC-\\uDFFF]|\\uD83C[\\uDC00-\\uDD2F\\uDD4A-\\uDD4F\\uDD6A-\\uDD6F\\uDD8A-\\uDFFF]|\\uD83E[\\uDC00-\\uDFEF\\uDFFA-\\uDFFF]|\\uD869[\\uDEDE-\\uDEFF]|\\uD86D[\\uDF35-\\uDF3F]|\\uD86E[\\uDC1E\\uDC1F]|\\uD873[\\uDEA2-\\uDEAF]|\\uD87A[\\uDFE1-\\uDFFF]|\\uD87E[\\uDE1E-\\uDFFF]|\\uD884[\\uDF4B-\\uDFFF]|\\uDB40[\\uDC00-\\uDCFF\\uDDF0-\\uDFFF]/g\n","import { regex } from './regex.js'\n\nconst own = Object.hasOwnProperty\n\n/**\n * Slugger.\n */\nexport default class BananaSlug {\n /**\n * Create a new slug class.\n */\n constructor () {\n /** @type {Record<string, number>} */\n // eslint-disable-next-line no-unused-expressions\n this.occurrences\n\n this.reset()\n }\n\n /**\n * Generate a unique slug.\n *\n * Tracks previously generated slugs: repeated calls with the same value\n * will result in different slugs.\n * Use the `slug` function to get same slugs.\n *\n * @param {string} value\n * String of text to slugify\n * @param {boolean} [maintainCase=false]\n * Keep the current case, otherwise make all lowercase\n * @return {string}\n * A unique slug string\n */\n slug (value, maintainCase) {\n const self = this\n let result = slug(value, maintainCase === true)\n const originalSlug = result\n\n while (own.call(self.occurrences, result)) {\n self.occurrences[originalSlug]++\n result = originalSlug + '-' + self.occurrences[originalSlug]\n }\n\n self.occurrences[result] = 0\n\n return result\n }\n\n /**\n * Reset - Forget all previous slugs\n *\n * @return void\n */\n reset () {\n this.occurrences = Object.create(null)\n }\n}\n\n/**\n * Generate a slug.\n *\n * Does not track previously generated slugs: repeated calls with the same value\n * will result in the exact same slug.\n * Use the `GithubSlugger` class to get unique slugs.\n *\n * @param {string} value\n * String of text to slugify\n * @param {boolean} [maintainCase=false]\n * Keep the current case, otherwise make all lowercase\n * @return {string}\n * A unique slug string\n */\nexport function slug (value, maintainCase) {\n if (typeof value !== 'string') return ''\n if (!maintainCase) value = value.toLowerCase()\n return value.replace(regex, '').replace(/ /g, '-')\n}\n","import type {\r\n MarkdownDiagnostic,\r\n MarkdownDocumentOptions,\r\n MarkdownPlugin,\r\n PluginContext,\r\n} from '../core/types'\r\nimport { createDiagnostic, errorMessage } from '../core/diagnostics'\r\nimport { createPluginContext } from './define'\r\n\r\nfunction report(\r\n plugin: MarkdownPlugin,\r\n error: unknown,\r\n context: PluginContext,\r\n diagnostics: MarkdownDiagnostic[],\r\n code: string,\r\n): void {\r\n diagnostics.push(\r\n createDiagnostic(code, errorMessage(error), {\r\n phase: 'source',\r\n plugin: plugin.name,\r\n }),\r\n )\r\n if (!plugin.onError) return\r\n try {\r\n plugin.onError(error, 'source', context)\r\n } catch (secondary) {\r\n diagnostics.push(\r\n createDiagnostic('plugin-onerror', errorMessage(secondary), {\r\n phase: 'source',\r\n plugin: plugin.name,\r\n }),\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Run plugin source transforms in resolved order before parsing. A transform\r\n * that throws or returns a non-string leaves the previous source intact and\r\n * reports a diagnostic instead of breaking the run.\r\n */\r\nexport function applySourceTransforms(\r\n source: string,\r\n plugins: readonly MarkdownPlugin[],\r\n options: MarkdownDocumentOptions,\r\n diagnostics: MarkdownDiagnostic[],\r\n): string {\r\n let current = source\r\n const context = createPluginContext(source, options, diagnostics)\r\n\r\n for (const plugin of plugins) {\r\n if (!plugin.transformSource) continue\r\n context.source = current\r\n try {\r\n const next = plugin.transformSource(current, context)\r\n if (typeof next === 'string') {\r\n current = next\r\n continue\r\n }\r\n report(\r\n plugin,\r\n new TypeError('transformSource must return a string.'),\r\n context,\r\n diagnostics,\r\n 'plugin-source',\r\n )\r\n } catch (error) {\r\n report(plugin, error, context, diagnostics, 'plugin-source')\r\n }\r\n }\r\n\r\n return current\r\n}\r\n","import type { MarkdownDocument } from './types'\r\n\r\nconst MAX_ENTRIES = 64\r\n\r\nconst cache = new Map<string, MarkdownDocument>()\r\n\r\nexport function memoGet(key: string): MarkdownDocument | undefined {\r\n const value = cache.get(key)\r\n if (!value) return undefined\r\n // Refresh LRU order.\r\n cache.delete(key)\r\n cache.set(key, value)\r\n return value\r\n}\r\n\r\nexport function memoSet(key: string, document: MarkdownDocument): void {\r\n if (cache.has(key)) cache.delete(key)\r\n cache.set(key, document)\r\n while (cache.size > MAX_ENTRIES) {\r\n const oldest = cache.keys().next().value\r\n if (oldest === undefined) break\r\n cache.delete(oldest)\r\n }\r\n}\r\n\r\nexport function memoClear(): void {\r\n cache.clear()\r\n}\r\n\r\nexport function memoSize(): number {\r\n return cache.size\r\n}\r\n","import GithubSlugger from 'github-slugger'\r\nimport {\r\n computed,\r\n effectScope,\r\n getCurrentScope,\r\n onScopeDispose,\r\n shallowRef,\r\n toValue,\r\n watch,\r\n type ComputedRef,\r\n type EffectScope,\r\n type MaybeRefOrGetter,\r\n type ShallowRef,\r\n} from 'vue'\r\nimport type { PluggableList } from 'unified'\r\nimport type {\r\n MarkdownDiagnostic,\r\n MarkdownDocument,\r\n MarkdownDocumentOptions,\r\n MarkdownLabels,\r\n MarkdownNodeComponents,\r\n MarkdownRegionComponents,\r\n MarkdownSlugger,\r\n MarkdownTagComponents,\r\n PipelineContext,\r\n PipelineResult,\r\n TocItem,\r\n} from '../core/types'\r\nimport { createDiagnostic, errorMessage } from '../core/diagnostics'\r\nimport { finalizeMarkdownDocument } from '../core/finalize'\r\nimport { identityOf } from '../core/identity'\r\nimport { memoGet, memoSet } from '../core/memo'\r\nimport { withUniqueSlugs } from '../core/slugger'\r\nimport { createPluginContext } from '../plugins/define'\r\nimport { applySourceTransforms } from '../plugins/source'\r\nimport { defaultPlugins } from '../plugins/builtin'\r\nimport { resolvePlugins } from '../plugins/registry'\r\nimport { assertPipelineResult, resolvePipeline } from '../pipeline/custom'\r\nimport { createMemoKey, createPipelineIdentity } from '../pipeline/identity'\r\n\r\nexport type MarkdownStatus = 'idle' | 'pending' | 'ready' | 'error'\r\n\r\nexport interface UseMarkdownDocumentReturn {\r\n document: ShallowRef<MarkdownDocument | undefined>\r\n toc: ComputedRef<TocItem[]>\r\n status: ShallowRef<MarkdownStatus>\r\n diagnostics: ShallowRef<MarkdownDiagnostic[]>\r\n pipeline: ComputedRef<string>\r\n plugins: ComputedRef<string[]>\r\n /** Tag components contributed by plugins; local props are merged by the host. */\r\n resolvedComponents: ComputedRef<MarkdownTagComponents>\r\n /** Semantic node components contributed by plugins. */\r\n resolvedNodeComponents: ComputedRef<MarkdownNodeComponents>\r\n /** Structural regions contributed by plugins. */\r\n resolvedRegions: ComputedRef<MarkdownRegionComponents>\r\n /** Labels contributed by plugins. */\r\n resolvedLabels: ComputedRef<Partial<MarkdownLabels>>\r\n /** Design tokens contributed by plugins. */\r\n resolvedTokens: ComputedRef<Record<string, string>>\r\n refresh: () => Promise<void>\r\n}\r\n\r\nfunction isAsyncError(error: unknown): boolean {\r\n return (\r\n error instanceof Error &&\r\n /finished async|processSync.*async|async.*processSync/i.test(error.message)\r\n )\r\n}\r\n\r\nexport function useMarkdownDocument(\r\n source: MaybeRefOrGetter<string>,\r\n options: MaybeRefOrGetter<MarkdownDocumentOptions> = {},\r\n): UseMarkdownDocumentReturn {\r\n const document = shallowRef<MarkdownDocument>()\r\n const status = shallowRef<MarkdownStatus>('idle')\r\n const diagnostics = shallowRef<MarkdownDiagnostic[]>([])\r\n const setupDiagnostics = shallowRef<MarkdownDiagnostic[]>([])\r\n const optionsRef = computed(() => toValue(options) ?? {})\r\n const sourceRef = computed(() => {\r\n const value = toValue(source)\r\n return typeof value === 'string' ? value : ''\r\n })\r\n\r\n const resolved = computed(() =>\r\n resolvePlugins(\r\n optionsRef.value.plugins ?? defaultPlugins,\r\n optionsRef.value.disablePlugins ?? [],\r\n ),\r\n )\r\n\r\n const pipelineResult = computed(() => resolvePipeline(optionsRef.value.pipeline))\r\n const pipeline = computed(() => pipelineResult.value.pipeline)\r\n\r\n const remarkPlugins = computed<PluggableList>(() => [\r\n ...resolved.value.remarkPlugins,\r\n ...(optionsRef.value.remarkPlugins ?? []),\r\n ])\r\n const rehypePlugins = computed<PluggableList>(() => [\r\n ...resolved.value.rehypePlugins,\r\n ...(optionsRef.value.rehypePlugins ?? []),\r\n ])\r\n const remarkRehypeOptions = computed(() => ({\r\n ...resolved.value.remarkRehypeOptions,\r\n ...(optionsRef.value.remarkRehypeOptions ?? {}),\r\n }))\r\n\r\n const defaultSlugger: MarkdownSlugger = new GithubSlugger()\r\n const baseSlugger = computed(() => optionsRef.value.slugger ?? defaultSlugger)\r\n const slugger = computed(() => withUniqueSlugs(baseSlugger.value))\r\n const idPrefix = computed(() => optionsRef.value.idPrefix ?? '')\r\n\r\n const pipelineIdentity = computed(() =>\r\n createPipelineIdentity({\r\n pipelineName: pipeline.value.name,\r\n plugins: resolved.value.plugins,\r\n remarkPlugins: remarkPlugins.value,\r\n rehypePlugins: rehypePlugins.value,\r\n remarkRehypeOptions: optionsRef.value.remarkRehypeOptions,\r\n options: optionsRef.value,\r\n }),\r\n )\r\n\r\n const parseKey = computed(() => pipelineIdentity.value)\r\n\r\n const pluginSetupKey = computed(() =>\r\n resolved.value.plugins.map((plugin) => identityOf(plugin)).join(','),\r\n )\r\n\r\n let scope: EffectScope | undefined\r\n let cleanups: Array<() => void> = []\r\n\r\n const setupPlugins = (): void => {\r\n scope?.stop()\r\n for (const cleanup of cleanups) {\r\n try {\r\n cleanup()\r\n } catch {\r\n // Cleanup failures must not break reconfiguration.\r\n }\r\n }\r\n cleanups = []\r\n scope = effectScope(true)\r\n setupDiagnostics.value = []\r\n\r\n const context = createPluginContext(\r\n sourceRef.value,\r\n optionsRef.value,\r\n setupDiagnostics.value as MarkdownDiagnostic[],\r\n )\r\n for (const plugin of resolved.value.plugins) {\r\n if (!plugin.setup) continue\r\n try {\r\n const cleanup = plugin.setup(context)\r\n if (typeof cleanup === 'function') cleanups.push(cleanup)\r\n } catch (error) {\r\n const diagnostic = createDiagnostic('plugin-setup', errorMessage(error), {\r\n phase: 'setup',\r\n plugin: plugin.name,\r\n })\r\n setupDiagnostics.value = [...setupDiagnostics.value, diagnostic]\r\n plugin.onError?.(error, 'setup', context)\r\n }\r\n }\r\n }\r\n\r\n const teardown = (): void => {\r\n scope?.stop()\r\n for (const cleanup of cleanups) {\r\n try {\r\n cleanup()\r\n } catch {\r\n // Ignore cleanup errors during teardown.\r\n }\r\n }\r\n cleanups = []\r\n pipeline.value.dispose?.()\r\n }\r\n\r\n if (getCurrentScope()) onScopeDispose(teardown)\r\n\r\n const apply = (next: MarkdownDocument): void => {\r\n document.value = next\r\n status.value = 'ready'\r\n }\r\n\r\n const createContext = (\r\n source: string,\r\n nextDiagnostics: MarkdownDiagnostic[],\r\n ): PipelineContext => ({\r\n source,\r\n options: optionsRef.value,\r\n plugins: resolved.value.plugins,\r\n remarkPlugins: remarkPlugins.value,\r\n rehypePlugins: rehypePlugins.value,\r\n remarkRehypeOptions: remarkRehypeOptions.value,\r\n slugger: slugger.value,\r\n idPrefix: idPrefix.value,\r\n diagnostics: nextDiagnostics,\r\n })\r\n\r\n const finalize = (\r\n source: string,\r\n result: PipelineResult,\r\n nextDiagnostics: MarkdownDiagnostic[],\r\n ): MarkdownDocument =>\r\n finalizeMarkdownDocument({\r\n source,\r\n result,\r\n options: optionsRef.value,\r\n plugins: resolved.value,\r\n pipelineName: pipeline.value.name,\r\n slugger: slugger.value,\r\n idPrefix: idPrefix.value,\r\n diagnostics: nextDiagnostics,\r\n })\r\n\r\n let runId = 0\r\n\r\n const applyRun = (\r\n source: string,\r\n result: PipelineResult,\r\n nextDiagnostics: MarkdownDiagnostic[],\r\n key: string,\r\n cache: boolean,\r\n ): void => {\r\n const next = finalize(source, result, nextDiagnostics)\r\n diagnostics.value = nextDiagnostics\r\n if (cache) memoSet(key, next)\r\n apply(next)\r\n }\r\n\r\n const runSync = (\r\n source: string,\r\n key: string,\r\n cache: boolean,\r\n nextDiagnostics: MarkdownDiagnostic[],\r\n ): 'done' | 'async' => {\r\n const sync = pipeline.value.processSync\r\n if (!sync) return 'async'\r\n\r\n try {\r\n slugger.value.reset?.()\r\n const result = assertPipelineResult(sync.call(pipeline.value, source, createContext(source, nextDiagnostics)))\r\n applyRun(source, result, nextDiagnostics, key, cache)\r\n return 'done'\r\n } catch (error) {\r\n if (isAsyncError(error)) return 'async'\r\n status.value = 'error'\r\n diagnostics.value = [\r\n ...nextDiagnostics,\r\n createDiagnostic('pipeline-sync', errorMessage(error), {\r\n phase: 'pipeline',\r\n }),\r\n ]\r\n return 'done'\r\n }\r\n }\r\n\r\n const runAsync = async (\r\n id: number,\r\n source: string,\r\n key: string,\r\n cache: boolean,\r\n nextDiagnostics: MarkdownDiagnostic[],\r\n ): Promise<void> => {\r\n status.value = 'pending'\r\n try {\r\n slugger.value.reset?.()\r\n const result = assertPipelineResult(\r\n await pipeline.value.process(source, createContext(source, nextDiagnostics)),\r\n )\r\n if (id !== runId) return\r\n applyRun(source, result, nextDiagnostics, key, cache)\r\n } catch (error) {\r\n if (id !== runId) return\r\n status.value = 'error'\r\n diagnostics.value = [\r\n ...nextDiagnostics,\r\n createDiagnostic('pipeline-process', errorMessage(error), {\r\n phase: 'pipeline',\r\n }),\r\n ]\r\n }\r\n }\r\n\r\n const run = (force = false): Promise<void> => {\r\n const id = ++runId\r\n const nextDiagnostics: MarkdownDiagnostic[] = [\r\n ...pipelineResult.value.diagnostics,\r\n ...resolved.value.diagnostics,\r\n ...setupDiagnostics.value,\r\n ]\r\n const source = applySourceTransforms(\r\n sourceRef.value,\r\n resolved.value.plugins,\r\n optionsRef.value,\r\n nextDiagnostics,\r\n )\r\n const key = createMemoKey(source, pipelineIdentity.value)\r\n\r\n if (!force) {\r\n const cached = memoGet(key)\r\n if (cached) {\r\n diagnostics.value = nextDiagnostics\r\n apply(cached)\r\n return Promise.resolve()\r\n }\r\n }\r\n\r\n const sync = runSync(source, key, !force, nextDiagnostics)\r\n if (sync === 'done') return Promise.resolve()\r\n return runAsync(id, source, key, !force, nextDiagnostics)\r\n }\r\n\r\n const refresh = (): Promise<void> => run(true)\r\n\r\n watch(pluginSetupKey, setupPlugins, { immediate: true })\r\n watch([sourceRef, parseKey], () => void run())\r\n\r\n void run()\r\n\r\n return {\r\n document,\r\n toc: computed(() => document.value?.toc ?? []),\r\n status,\r\n diagnostics,\r\n pipeline: computed(() => pipeline.value.name),\r\n plugins: computed(() => resolved.value.names),\r\n resolvedComponents: computed(() => resolved.value.components),\r\n resolvedNodeComponents: computed(() => resolved.value.nodeComponents),\r\n resolvedRegions: computed(() => resolved.value.regions),\r\n resolvedLabels: computed(() => resolved.value.labels),\r\n resolvedTokens: computed(() => resolved.value.tokens),\r\n refresh,\r\n }\r\n}\r\n","import {\r\n onBeforeUnmount,\r\n onMounted,\r\n ref,\r\n toValue,\r\n watch,\r\n type MaybeRefOrGetter,\r\n} from 'vue'\r\n\r\nexport interface UseActiveHeadingOptions {\r\n /**\r\n * Scope heading lookups to one rendered document root. Pass this when a\r\n * page contains multiple renderers that may generate the same heading IDs.\r\n */\r\n root?: MaybeRefOrGetter<Element | Document | null | undefined>\r\n}\r\n\r\n/** Find an element by id inside a document or a scoped root element. */\r\nexport function findElementById(\r\n scope: Element | Document,\r\n id: string,\r\n): HTMLElement | null {\r\n const byId = (scope as Document).getElementById\r\n if (typeof byId === 'function') {\r\n return byId.call(scope, id)\r\n }\r\n // Avoid CSS selector escaping for generated ids with punctuation.\r\n const candidates = (scope as Element).querySelectorAll('[id]')\r\n for (let index = 0; index < candidates.length; index += 1) {\r\n const element = candidates[index] as HTMLElement\r\n if (element.getAttribute('id') === id) return element\r\n }\r\n return null\r\n}\r\n\r\n/** Tracks the heading currently in view without touching the DOM before mount. */\r\nexport function useActiveHeading(\r\n ids: MaybeRefOrGetter<string[]>,\r\n enabled: MaybeRefOrGetter<boolean> = true,\r\n options: UseActiveHeadingOptions = {},\r\n) {\r\n const activeId = ref<string>()\r\n let observer: IntersectionObserver | undefined\r\n\r\n const disconnect = (): void => {\r\n observer?.disconnect()\r\n observer = undefined\r\n }\r\n\r\n const connect = (): void => {\r\n disconnect()\r\n if (!toValue(enabled)) return\r\n if (typeof window === 'undefined' || typeof IntersectionObserver === 'undefined') {\r\n return\r\n }\r\n\r\n const scope = toValue(options.root) ?? window.document\r\n const elements = toValue(ids)\r\n .map((id) => findElementById(scope, id))\r\n .filter((element): element is HTMLElement => element !== null)\r\n\r\n if (elements.length === 0) return\r\n\r\n observer = new IntersectionObserver(\r\n (entries) => {\r\n const visible = entries\r\n .filter((entry) => entry.isIntersecting)\r\n .sort((a, b) => a.boundingClientRect.top - b.boundingClientRect.top)\r\n if (visible[0]) activeId.value = visible[0].target.id\r\n },\r\n { rootMargin: '0px 0px -70% 0px', threshold: 0 },\r\n )\r\n\r\n for (const element of elements) observer.observe(element)\r\n }\r\n\r\n onMounted(connect)\r\n watch(() => toValue(ids).join('\\u001f'), connect)\r\n watch(() => toValue(enabled), connect)\r\n if (options.root) watch(() => toValue(options.root), connect)\r\n onBeforeUnmount(disconnect)\r\n\r\n return activeId\r\n}\r\n"],"ignoreList":[3,4],"mappings":"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"}