repl-sdk 0.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/dist/apl-fqmucPXA.js +141 -0
  2. package/dist/apl-fqmucPXA.js.map +1 -0
  3. package/dist/asciiarmor-DucZyvP0.js +57 -0
  4. package/dist/asciiarmor-DucZyvP0.js.map +1 -0
  5. package/dist/asn1-BnOEsgAm.js +145 -0
  6. package/dist/asn1-BnOEsgAm.js.map +1 -0
  7. package/dist/assets/tar-worker-CxTcoQcr.js +593 -0
  8. package/dist/assets/tar-worker-CxTcoQcr.js.map +1 -0
  9. package/dist/asterisk-QAlztEwS.js +346 -0
  10. package/dist/asterisk-QAlztEwS.js.map +1 -0
  11. package/dist/brainfuck-DZVCuF_t.js +54 -0
  12. package/dist/brainfuck-DZVCuF_t.js.map +1 -0
  13. package/dist/clike-CTYGlS6x.js +800 -0
  14. package/dist/clike-CTYGlS6x.js.map +1 -0
  15. package/dist/clojure-BhXMqnxz.js +850 -0
  16. package/dist/clojure-BhXMqnxz.js.map +1 -0
  17. package/dist/cmake-BGaNd9E7.js +72 -0
  18. package/dist/cmake-BGaNd9E7.js.map +1 -0
  19. package/dist/cobol-4yqQntpt.js +121 -0
  20. package/dist/cobol-4yqQntpt.js.map +1 -0
  21. package/dist/codemirror-De3S70Np.js +2912 -0
  22. package/dist/codemirror-De3S70Np.js.map +1 -0
  23. package/dist/coffeescript-D2dXvhEc.js +309 -0
  24. package/dist/coffeescript-D2dXvhEc.js.map +1 -0
  25. package/dist/commonlisp-CF_VNHQR.js +131 -0
  26. package/dist/commonlisp-CF_VNHQR.js.map +1 -0
  27. package/dist/crystal-DyuLTqLs.js +399 -0
  28. package/dist/crystal-DyuLTqLs.js.map +1 -0
  29. package/dist/css-DkSyTW67.js +1773 -0
  30. package/dist/css-DkSyTW67.js.map +1 -0
  31. package/dist/cypher-Dlu_3r4V.js +122 -0
  32. package/dist/cypher-Dlu_3r4V.js.map +1 -0
  33. package/dist/d-UURgV0Ux.js +180 -0
  34. package/dist/d-UURgV0Ux.js.map +1 -0
  35. package/dist/diff-B_Bi2Crb.js +26 -0
  36. package/dist/diff-B_Bi2Crb.js.map +1 -0
  37. package/dist/dockerfile-Bvk733Ga.js +202 -0
  38. package/dist/dockerfile-Bvk733Ga.js.map +1 -0
  39. package/dist/dtd-Dy74G54E.js +115 -0
  40. package/dist/dtd-Dy74G54E.js.map +1 -0
  41. package/dist/dylan-TSb-Nfix.js +315 -0
  42. package/dist/dylan-TSb-Nfix.js.map +1 -0
  43. package/dist/ebnf-4fKAGW3a.js +141 -0
  44. package/dist/ebnf-4fKAGW3a.js.map +1 -0
  45. package/dist/ecl-B59qGGVg.js +179 -0
  46. package/dist/ecl-B59qGGVg.js.map +1 -0
  47. package/dist/eiffel-Dze7nlu3.js +135 -0
  48. package/dist/eiffel-Dze7nlu3.js.map +1 -0
  49. package/dist/elm-DG7jkhNZ.js +177 -0
  50. package/dist/elm-DG7jkhNZ.js.map +1 -0
  51. package/dist/erlang-BO6gOnGA.js +675 -0
  52. package/dist/erlang-BO6gOnGA.js.map +1 -0
  53. package/dist/factor-CMxFHDqz.js +66 -0
  54. package/dist/factor-CMxFHDqz.js.map +1 -0
  55. package/dist/fcl-CDDUNjTj.js +142 -0
  56. package/dist/fcl-CDDUNjTj.js.map +1 -0
  57. package/dist/forth-B9D2JCeE.js +117 -0
  58. package/dist/forth-B9D2JCeE.js.map +1 -0
  59. package/dist/fortran-CAG2BFbe.js +468 -0
  60. package/dist/fortran-CAG2BFbe.js.map +1 -0
  61. package/dist/gas-0Aw8zDr5.js +294 -0
  62. package/dist/gas-0Aw8zDr5.js.map +1 -0
  63. package/dist/gherkin-DhZlEZiy.js +116 -0
  64. package/dist/gherkin-DhZlEZiy.js.map +1 -0
  65. package/dist/gjs-DfguZDLq.js +173 -0
  66. package/dist/gjs-DfguZDLq.js.map +1 -0
  67. package/dist/gmd-Yas-Oo8k.js +163 -0
  68. package/dist/gmd-Yas-Oo8k.js.map +1 -0
  69. package/dist/groovy-CpwJiBl7.js +224 -0
  70. package/dist/groovy-CpwJiBl7.js.map +1 -0
  71. package/dist/haskell-ySd-OUo8.js +460 -0
  72. package/dist/haskell-ySd-OUo8.js.map +1 -0
  73. package/dist/haxe-7MlzfeYV.js +515 -0
  74. package/dist/haxe-7MlzfeYV.js.map +1 -0
  75. package/dist/hbs-CxcmWxSJ.js +62 -0
  76. package/dist/hbs-CxcmWxSJ.js.map +1 -0
  77. package/dist/http-BqypyemW.js +80 -0
  78. package/dist/http-BqypyemW.js.map +1 -0
  79. package/dist/idl-4HIGJlDI.js +986 -0
  80. package/dist/idl-4HIGJlDI.js.map +1 -0
  81. package/dist/index-B3Meoznj.js +118 -0
  82. package/dist/index-B3Meoznj.js.map +1 -0
  83. package/dist/index-BQyfDUUx.js +692 -0
  84. package/dist/index-BQyfDUUx.js.map +1 -0
  85. package/dist/index-BRDroAD8.js +305 -0
  86. package/dist/index-BRDroAD8.js.map +1 -0
  87. package/dist/index-BRMAzRyM.js +179 -0
  88. package/dist/index-BRMAzRyM.js.map +1 -0
  89. package/dist/index-Bb8uYQgv.js +927 -0
  90. package/dist/index-Bb8uYQgv.js.map +1 -0
  91. package/dist/index-BlOjO66K.js +17618 -0
  92. package/dist/index-BlOjO66K.js.map +1 -0
  93. package/dist/index-BoGWnSNL.js +706 -0
  94. package/dist/index-BoGWnSNL.js.map +1 -0
  95. package/dist/index-BsRrEiOu.js +98 -0
  96. package/dist/index-BsRrEiOu.js.map +1 -0
  97. package/dist/index-C2sFZMth.js +391 -0
  98. package/dist/index-C2sFZMth.js.map +1 -0
  99. package/dist/index-C7xwOjmS.js +291 -0
  100. package/dist/index-C7xwOjmS.js.map +1 -0
  101. package/dist/index-CA3lFUx6.js +315 -0
  102. package/dist/index-CA3lFUx6.js.map +1 -0
  103. package/dist/index-CB-pPTIf.js +98 -0
  104. package/dist/index-CB-pPTIf.js.map +1 -0
  105. package/dist/index-CCa6x1FE.js +386 -0
  106. package/dist/index-CCa6x1FE.js.map +1 -0
  107. package/dist/index-CD4DINI1.js +158 -0
  108. package/dist/index-CD4DINI1.js.map +1 -0
  109. package/dist/index-CE0B_fcG.js +328 -0
  110. package/dist/index-CE0B_fcG.js.map +1 -0
  111. package/dist/index-CVGAEPMV.js +2139 -0
  112. package/dist/index-CVGAEPMV.js.map +1 -0
  113. package/dist/index-CmaT2afn.js +332 -0
  114. package/dist/index-CmaT2afn.js.map +1 -0
  115. package/dist/index-D8sUxXp5.js +83 -0
  116. package/dist/index-D8sUxXp5.js.map +1 -0
  117. package/dist/index-DIz8Vpn-.js +737 -0
  118. package/dist/index-DIz8Vpn-.js.map +1 -0
  119. package/dist/index-DNP1xT-S.js +408 -0
  120. package/dist/index-DNP1xT-S.js.map +1 -0
  121. package/dist/index-DOAqdvnQ.js +862 -0
  122. package/dist/index-DOAqdvnQ.js.map +1 -0
  123. package/dist/index-DVUMFbgi.js +152 -0
  124. package/dist/index-DVUMFbgi.js.map +1 -0
  125. package/dist/index-VeTBKRVd.js +83 -0
  126. package/dist/index-VeTBKRVd.js.map +1 -0
  127. package/dist/index-dXZeR7Bx.js +1767 -0
  128. package/dist/index-dXZeR7Bx.js.map +1 -0
  129. package/dist/index-gtqbIb6T.js +62 -0
  130. package/dist/index-gtqbIb6T.js.map +1 -0
  131. package/dist/index-pN_pUAQ7.js +2426 -0
  132. package/dist/index-pN_pUAQ7.js.map +1 -0
  133. package/dist/index-wasu5VX0.js +1150 -0
  134. package/dist/index-wasu5VX0.js.map +1 -0
  135. package/dist/javascript-Bt8B7yTi.js +993 -0
  136. package/dist/javascript-Bt8B7yTi.js.map +1 -0
  137. package/dist/julia-Bs6JJhYG.js +408 -0
  138. package/dist/julia-Bs6JJhYG.js.map +1 -0
  139. package/dist/livescript-DmzgM3Yt.js +297 -0
  140. package/dist/livescript-DmzgM3Yt.js.map +1 -0
  141. package/dist/lua-8cJgIlqe.js +257 -0
  142. package/dist/lua-8cJgIlqe.js.map +1 -0
  143. package/dist/mathematica-DNLOL9PQ.js +111 -0
  144. package/dist/mathematica-DNLOL9PQ.js.map +1 -0
  145. package/dist/mbox-Ga7d4MMN.js +118 -0
  146. package/dist/mbox-Ga7d4MMN.js.map +1 -0
  147. package/dist/mirc-Dma3B8rS.js +108 -0
  148. package/dist/mirc-Dma3B8rS.js.map +1 -0
  149. package/dist/mllike-DHn7xckP.js +335 -0
  150. package/dist/mllike-DHn7xckP.js.map +1 -0
  151. package/dist/modelica-0d55jYY0.js +148 -0
  152. package/dist/modelica-0d55jYY0.js.map +1 -0
  153. package/dist/mscgen-DdqZYINH.js +136 -0
  154. package/dist/mscgen-DdqZYINH.js.map +1 -0
  155. package/dist/mumps-Btr8VblO.js +94 -0
  156. package/dist/mumps-Btr8VblO.js.map +1 -0
  157. package/dist/nginx-DTDtBDVN.js +142 -0
  158. package/dist/nginx-DTDtBDVN.js.map +1 -0
  159. package/dist/nsis-3zG7tgur.js +63 -0
  160. package/dist/nsis-3zG7tgur.js.map +1 -0
  161. package/dist/ntriples-CvgOYMpL.js +154 -0
  162. package/dist/ntriples-CvgOYMpL.js.map +1 -0
  163. package/dist/octave-DYBj3-tl.js +201 -0
  164. package/dist/octave-DYBj3-tl.js.map +1 -0
  165. package/dist/oz-R_e8WMIi.js +232 -0
  166. package/dist/oz-R_e8WMIi.js.map +1 -0
  167. package/dist/parse-CAqQaKsh.js +21685 -0
  168. package/dist/parse-CAqQaKsh.js.map +1 -0
  169. package/dist/pascal-GD8iposT.js +106 -0
  170. package/dist/pascal-GD8iposT.js.map +1 -0
  171. package/dist/perl-DL9mHpoi.js +1106 -0
  172. package/dist/perl-DL9mHpoi.js.map +1 -0
  173. package/dist/pig-C_4T4YIV.js +102 -0
  174. package/dist/pig-C_4T4YIV.js.map +1 -0
  175. package/dist/powershell-B0suO7Vd.js +329 -0
  176. package/dist/powershell-B0suO7Vd.js.map +1 -0
  177. package/dist/properties-BR-vP1aU.js +59 -0
  178. package/dist/properties-BR-vP1aU.js.map +1 -0
  179. package/dist/protobuf-BxgpyhoW.js +78 -0
  180. package/dist/protobuf-BxgpyhoW.js.map +1 -0
  181. package/dist/pug-vHnWR0UE.js +406 -0
  182. package/dist/pug-vHnWR0UE.js.map +1 -0
  183. package/dist/puppet-Bdao66PW.js +138 -0
  184. package/dist/puppet-Bdao66PW.js.map +1 -0
  185. package/dist/python-BFGRmuZ9.js +427 -0
  186. package/dist/python-BFGRmuZ9.js.map +1 -0
  187. package/dist/q-CrbCVq4a.js +132 -0
  188. package/dist/q-CrbCVq4a.js.map +1 -0
  189. package/dist/r-V7nswm59.js +171 -0
  190. package/dist/r-V7nswm59.js.map +1 -0
  191. package/dist/render-app-island-B-i8rvGi.js +61 -0
  192. package/dist/render-app-island-B-i8rvGi.js.map +1 -0
  193. package/dist/repl-sdk.js +7 -0
  194. package/dist/repl-sdk.js.map +1 -0
  195. package/dist/rpm-C-DLY-If.js +110 -0
  196. package/dist/rpm-C-DLY-If.js.map +1 -0
  197. package/dist/ruby-JDKLJNK0.js +331 -0
  198. package/dist/ruby-JDKLJNK0.js.map +1 -0
  199. package/dist/sas-D2UG-yhZ.js +208 -0
  200. package/dist/sas-D2UG-yhZ.js.map +1 -0
  201. package/dist/scheme-BKzrkGJD.js +223 -0
  202. package/dist/scheme-BKzrkGJD.js.map +1 -0
  203. package/dist/shell-BlsXDxCn.js +223 -0
  204. package/dist/shell-BlsXDxCn.js.map +1 -0
  205. package/dist/sieve-CjwBwOY5.js +136 -0
  206. package/dist/sieve-CjwBwOY5.js.map +1 -0
  207. package/dist/simple-mode-DMneyfDu.js +131 -0
  208. package/dist/simple-mode-DMneyfDu.js.map +1 -0
  209. package/dist/smalltalk-BOIGQuhN.js +122 -0
  210. package/dist/smalltalk-BOIGQuhN.js.map +1 -0
  211. package/dist/solr-CwD7U71z.js +70 -0
  212. package/dist/solr-CwD7U71z.js.map +1 -0
  213. package/dist/sparql-DYskk2vE.js +250 -0
  214. package/dist/sparql-DYskk2vE.js.map +1 -0
  215. package/dist/spreadsheet-Bgtt3oLP.js +88 -0
  216. package/dist/spreadsheet-Bgtt3oLP.js.map +1 -0
  217. package/dist/sql-Cei9CMfk.js +343 -0
  218. package/dist/sql-Cei9CMfk.js.map +1 -0
  219. package/dist/stex-C1nZSzAw.js +231 -0
  220. package/dist/stex-C1nZSzAw.js.map +1 -0
  221. package/dist/stylus-BkS-boTH.js +566 -0
  222. package/dist/stylus-BkS-boTH.js.map +1 -0
  223. package/dist/swift-FRZi1uvB.js +292 -0
  224. package/dist/swift-FRZi1uvB.js.map +1 -0
  225. package/dist/tcl-CUcaCdmq.js +115 -0
  226. package/dist/tcl-CUcaCdmq.js.map +1 -0
  227. package/dist/textile-BnFpjsrl.js +415 -0
  228. package/dist/textile-BnFpjsrl.js.map +1 -0
  229. package/dist/tiddlywiki-CjprD-Qp.js +219 -0
  230. package/dist/tiddlywiki-CjprD-Qp.js.map +1 -0
  231. package/dist/tiki-DK9DOeWn.js +269 -0
  232. package/dist/tiki-DK9DOeWn.js.map +1 -0
  233. package/dist/toml-BOuWGMcf.js +77 -0
  234. package/dist/toml-BOuWGMcf.js.map +1 -0
  235. package/dist/troff-E1bJ0PPL.js +62 -0
  236. package/dist/troff-E1bJ0PPL.js.map +1 -0
  237. package/dist/ttcn-cfg-Dc39-fIP.js +134 -0
  238. package/dist/ttcn-cfg-Dc39-fIP.js.map +1 -0
  239. package/dist/ttcn-tKd4HLu4.js +193 -0
  240. package/dist/ttcn-tKd4HLu4.js.map +1 -0
  241. package/dist/turtle-Dq7-1WAf.js +125 -0
  242. package/dist/turtle-Dq7-1WAf.js.map +1 -0
  243. package/dist/vb-Dp90gtsv.js +197 -0
  244. package/dist/vb-Dp90gtsv.js.map +1 -0
  245. package/dist/vbscript-Bfn8O8I7.js +479 -0
  246. package/dist/vbscript-Bfn8O8I7.js.map +1 -0
  247. package/dist/velocity-BwIZK1TH.js +150 -0
  248. package/dist/velocity-BwIZK1TH.js.map +1 -0
  249. package/dist/verilog-CnT9bMk0.js +430 -0
  250. package/dist/verilog-CnT9bMk0.js.map +1 -0
  251. package/dist/vhdl-DCkMIyT9.js +159 -0
  252. package/dist/vhdl-DCkMIyT9.js.map +1 -0
  253. package/dist/webidl-BTLTThCm.js +205 -0
  254. package/dist/webidl-BTLTThCm.js.map +1 -0
  255. package/dist/xquery-BrBUuxMR.js +526 -0
  256. package/dist/xquery-BrBUuxMR.js.map +1 -0
  257. package/dist/yacas-b5lAVEIl.js +131 -0
  258. package/dist/yacas-b5lAVEIl.js.map +1 -0
  259. package/dist/z80-ClgwfNdB.js +93 -0
  260. package/dist/z80-ClgwfNdB.js.map +1 -0
  261. package/package.json +81 -9
  262. package/src/cache.js +138 -0
  263. package/src/cdn.js +93 -0
  264. package/src/codemirror.js +161 -0
  265. package/src/compilers/ember/gjs.js +212 -0
  266. package/src/compilers/ember/gmd.js +190 -0
  267. package/src/compilers/ember/hbs.js +98 -0
  268. package/src/compilers/ember/render-app-island.js +83 -0
  269. package/src/compilers/ember.js +166 -0
  270. package/src/compilers/js.js +32 -0
  271. package/src/compilers/markdown/build-compiler.js +151 -0
  272. package/src/compilers/markdown/const.js +2 -0
  273. package/src/compilers/markdown/heading-id.js +75 -0
  274. package/src/compilers/markdown/live-code-extraction.js +198 -0
  275. package/src/compilers/markdown/parse.js +22 -0
  276. package/src/compilers/markdown/parse.test.ts +363 -0
  277. package/src/compilers/markdown/sanitize-for-glimmer.js +26 -0
  278. package/src/compilers/markdown/types.ts +21 -0
  279. package/src/compilers/markdown/utils.js +78 -0
  280. package/src/compilers/markdown.js +125 -0
  281. package/src/compilers/mermaid.js +35 -0
  282. package/src/compilers/react.js +59 -0
  283. package/src/compilers/svelte.js +116 -0
  284. package/src/compilers/vue.js +58 -0
  285. package/src/compilers.js +108 -0
  286. package/src/es-module-shim.js +53 -0
  287. package/src/index.d.ts +53 -4
  288. package/src/index.js +744 -89
  289. package/src/npm.js +58 -0
  290. package/src/request.Request.test.ts +59 -0
  291. package/src/request.js +140 -0
  292. package/src/resolve.fromImports.test.ts +35 -0
  293. package/src/resolve.fromInternalImport.test.ts +69 -0
  294. package/src/resolve.js +352 -0
  295. package/src/resolve.resolvePath.test.ts +24 -0
  296. package/src/resolve.test.ts +23 -0
  297. package/src/specifier.js +71 -0
  298. package/src/specifier.test.ts +90 -0
  299. package/src/tar-worker.js +61 -0
  300. package/src/tar.js +76 -0
  301. package/src/types.ts +335 -58
  302. package/src/utils.js +28 -1
  303. package/declarations/index.d.ts +0 -73
  304. package/dist/index.js +0 -107
  305. package/dist/index.js.map +0 -1
@@ -0,0 +1,1767 @@
1
+ import { configureNesting, parser as parser$1 } from "@lezer/html";
2
+ import { $ as LRParser, a0 as ExternalTokenizer, ab as LocalTokenGroup, _ as LRLanguage, Z as LanguageSupport, a2 as indentNodeProp, a3 as foldNodeProp, ac as continuedIndent, ad as foldInside, s as syntaxTree, E as EditorView, ae as bracketMatchingHandle, a as EditorSelection } from "./index-BlOjO66K.js";
3
+ import { styleTags, tags as tags$1 } from "@lezer/highlight";
4
+ import { NodeWeakMap, IterMode } from "@lezer/common";
5
+ import { t as typescriptLanguage, f as jsxLanguage, g as tsxLanguage, j as javascriptLanguage, e as javascript } from "./index-pN_pUAQ7.js";
6
+ const descendantOp = 122, Unit = 1, identifier$2 = 123, callee = 124, VariableName = 2, queryIdentifier = 125, queryVariableName = 3, QueryCallee = 4;
7
+ const space = [
8
+ 9,
9
+ 10,
10
+ 11,
11
+ 12,
12
+ 13,
13
+ 32,
14
+ 133,
15
+ 160,
16
+ 5760,
17
+ 8192,
18
+ 8193,
19
+ 8194,
20
+ 8195,
21
+ 8196,
22
+ 8197,
23
+ 8198,
24
+ 8199,
25
+ 8200,
26
+ 8201,
27
+ 8202,
28
+ 8232,
29
+ 8233,
30
+ 8239,
31
+ 8287,
32
+ 12288
33
+ ];
34
+ const colon = 58, parenL = 40, underscore = 95, bracketL = 91, dash = 45, period = 46, hash = 35, percent = 37, ampersand = 38, backslash = 92, newline = 10, asterisk = 42;
35
+ function isAlpha(ch) {
36
+ return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 161;
37
+ }
38
+ function isDigit(ch) {
39
+ return ch >= 48 && ch <= 57;
40
+ }
41
+ function isHex(ch) {
42
+ return isDigit(ch) || ch >= 97 && ch <= 102 || ch >= 65 && ch <= 70;
43
+ }
44
+ const identifierTokens = (id, varName, callee2) => (input, stack) => {
45
+ for (let inside = false, dashes = 0, i = 0; ; i++) {
46
+ let { next } = input;
47
+ if (isAlpha(next) || next == dash || next == underscore || inside && isDigit(next)) {
48
+ if (!inside && (next != dash || i > 0)) inside = true;
49
+ if (dashes === i && next == dash) dashes++;
50
+ input.advance();
51
+ } else if (next == backslash && input.peek(1) != newline) {
52
+ input.advance();
53
+ if (isHex(input.next)) {
54
+ do {
55
+ input.advance();
56
+ } while (isHex(input.next));
57
+ if (input.next == 32) input.advance();
58
+ } else if (input.next > -1) {
59
+ input.advance();
60
+ }
61
+ inside = true;
62
+ } else {
63
+ if (inside) input.acceptToken(
64
+ dashes == 2 && stack.canShift(VariableName) ? varName : next == parenL ? callee2 : id
65
+ );
66
+ break;
67
+ }
68
+ }
69
+ };
70
+ const identifiers = new ExternalTokenizer(
71
+ identifierTokens(identifier$2, VariableName, callee)
72
+ );
73
+ const queryIdentifiers = new ExternalTokenizer(
74
+ identifierTokens(queryIdentifier, queryVariableName, QueryCallee)
75
+ );
76
+ const descendant = new ExternalTokenizer((input) => {
77
+ if (space.includes(input.peek(-1))) {
78
+ let { next } = input;
79
+ if (isAlpha(next) || next == underscore || next == hash || next == period || next == asterisk || next == bracketL || next == colon && isAlpha(input.peek(1)) || next == dash || next == ampersand)
80
+ input.acceptToken(descendantOp);
81
+ }
82
+ });
83
+ const unitToken = new ExternalTokenizer((input) => {
84
+ if (!space.includes(input.peek(-1))) {
85
+ let { next } = input;
86
+ if (next == percent) {
87
+ input.advance();
88
+ input.acceptToken(Unit);
89
+ }
90
+ if (isAlpha(next)) {
91
+ do {
92
+ input.advance();
93
+ } while (isAlpha(input.next) || isDigit(input.next));
94
+ input.acceptToken(Unit);
95
+ }
96
+ }
97
+ });
98
+ const cssHighlighting = styleTags({
99
+ "AtKeyword import charset namespace keyframes media supports": tags$1.definitionKeyword,
100
+ "from to selector": tags$1.keyword,
101
+ NamespaceName: tags$1.namespace,
102
+ KeyframeName: tags$1.labelName,
103
+ KeyframeRangeName: tags$1.operatorKeyword,
104
+ TagName: tags$1.tagName,
105
+ ClassName: tags$1.className,
106
+ PseudoClassName: tags$1.constant(tags$1.className),
107
+ IdName: tags$1.labelName,
108
+ "FeatureName PropertyName": tags$1.propertyName,
109
+ AttributeName: tags$1.attributeName,
110
+ NumberLiteral: tags$1.number,
111
+ KeywordQuery: tags$1.keyword,
112
+ UnaryQueryOp: tags$1.operatorKeyword,
113
+ "CallTag ValueName": tags$1.atom,
114
+ VariableName: tags$1.variableName,
115
+ Callee: tags$1.operatorKeyword,
116
+ Unit: tags$1.unit,
117
+ "UniversalSelector NestingSelector": tags$1.definitionOperator,
118
+ "MatchOp CompareOp": tags$1.compareOperator,
119
+ "ChildOp SiblingOp, LogicOp": tags$1.logicOperator,
120
+ BinOp: tags$1.arithmeticOperator,
121
+ Important: tags$1.modifier,
122
+ Comment: tags$1.blockComment,
123
+ ColorLiteral: tags$1.color,
124
+ "ParenthesizedContent StringLiteral": tags$1.string,
125
+ ":": tags$1.punctuation,
126
+ "PseudoOp #": tags$1.derefOperator,
127
+ "; ,": tags$1.separator,
128
+ "( )": tags$1.paren,
129
+ "[ ]": tags$1.squareBracket,
130
+ "{ }": tags$1.brace
131
+ });
132
+ const spec_callee = { __proto__: null, lang: 38, "nth-child": 38, "nth-last-child": 38, "nth-of-type": 38, "nth-last-of-type": 38, dir: 38, "host-context": 38, if: 84, url: 124, "url-prefix": 124, domain: 124, regexp: 124 };
133
+ const spec_queryIdentifier = { __proto__: null, or: 98, and: 98, not: 106, only: 106, layer: 170 };
134
+ const spec_QueryCallee = { __proto__: null, selector: 112, layer: 166 };
135
+ const spec_AtKeyword = { __proto__: null, "@import": 162, "@media": 174, "@charset": 178, "@namespace": 182, "@keyframes": 188, "@supports": 200, "@scope": 204 };
136
+ const spec_identifier = { __proto__: null, to: 207 };
137
+ const parser = LRParser.deserialize({
138
+ version: 14,
139
+ states: "EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",
140
+ stateData: "Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",
141
+ goto: "2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",
142
+ nodeNames: "⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",
143
+ maxTerm: 143,
144
+ nodeProps: [
145
+ ["isolate", -2, 5, 36, ""],
146
+ ["openedBy", 20, "(", 28, "[", 31, "{"],
147
+ ["closedBy", 21, ")", 29, "]", 32, "}"]
148
+ ],
149
+ propSources: [cssHighlighting],
150
+ skippedNodes: [0, 5, 106],
151
+ repeatNodeCount: 15,
152
+ tokenData: "JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",
153
+ tokenizers: [descendant, unitToken, identifiers, queryIdentifiers, 1, 2, 3, 4, new LocalTokenGroup("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~", 28, 129)],
154
+ topRules: { "StyleSheet": [0, 6], "Styles": [1, 105] },
155
+ specialized: [{ term: 124, get: (value) => spec_callee[value] || -1 }, { term: 125, get: (value) => spec_queryIdentifier[value] || -1 }, { term: 4, get: (value) => spec_QueryCallee[value] || -1 }, { term: 25, get: (value) => spec_AtKeyword[value] || -1 }, { term: 123, get: (value) => spec_identifier[value] || -1 }],
156
+ tokenPrec: 1963
157
+ });
158
+ let _properties = null;
159
+ function properties() {
160
+ if (!_properties && typeof document == "object" && document.body) {
161
+ let { style } = document.body, names = [], seen = /* @__PURE__ */ new Set();
162
+ for (let prop in style)
163
+ if (prop != "cssText" && prop != "cssFloat") {
164
+ if (typeof style[prop] == "string") {
165
+ if (/[A-Z]/.test(prop))
166
+ prop = prop.replace(/[A-Z]/g, (ch) => "-" + ch.toLowerCase());
167
+ if (!seen.has(prop)) {
168
+ names.push(prop);
169
+ seen.add(prop);
170
+ }
171
+ }
172
+ }
173
+ _properties = names.sort().map((name) => ({ type: "property", label: name, apply: name + ": " }));
174
+ }
175
+ return _properties || [];
176
+ }
177
+ const pseudoClasses = /* @__PURE__ */ [
178
+ "active",
179
+ "after",
180
+ "any-link",
181
+ "autofill",
182
+ "backdrop",
183
+ "before",
184
+ "checked",
185
+ "cue",
186
+ "default",
187
+ "defined",
188
+ "disabled",
189
+ "empty",
190
+ "enabled",
191
+ "file-selector-button",
192
+ "first",
193
+ "first-child",
194
+ "first-letter",
195
+ "first-line",
196
+ "first-of-type",
197
+ "focus",
198
+ "focus-visible",
199
+ "focus-within",
200
+ "fullscreen",
201
+ "has",
202
+ "host",
203
+ "host-context",
204
+ "hover",
205
+ "in-range",
206
+ "indeterminate",
207
+ "invalid",
208
+ "is",
209
+ "lang",
210
+ "last-child",
211
+ "last-of-type",
212
+ "left",
213
+ "link",
214
+ "marker",
215
+ "modal",
216
+ "not",
217
+ "nth-child",
218
+ "nth-last-child",
219
+ "nth-last-of-type",
220
+ "nth-of-type",
221
+ "only-child",
222
+ "only-of-type",
223
+ "optional",
224
+ "out-of-range",
225
+ "part",
226
+ "placeholder",
227
+ "placeholder-shown",
228
+ "read-only",
229
+ "read-write",
230
+ "required",
231
+ "right",
232
+ "root",
233
+ "scope",
234
+ "selection",
235
+ "slotted",
236
+ "target",
237
+ "target-text",
238
+ "valid",
239
+ "visited",
240
+ "where"
241
+ ].map((name) => ({ type: "class", label: name }));
242
+ const values = /* @__PURE__ */ [
243
+ "above",
244
+ "absolute",
245
+ "activeborder",
246
+ "additive",
247
+ "activecaption",
248
+ "after-white-space",
249
+ "ahead",
250
+ "alias",
251
+ "all",
252
+ "all-scroll",
253
+ "alphabetic",
254
+ "alternate",
255
+ "always",
256
+ "antialiased",
257
+ "appworkspace",
258
+ "asterisks",
259
+ "attr",
260
+ "auto",
261
+ "auto-flow",
262
+ "avoid",
263
+ "avoid-column",
264
+ "avoid-page",
265
+ "avoid-region",
266
+ "axis-pan",
267
+ "background",
268
+ "backwards",
269
+ "baseline",
270
+ "below",
271
+ "bidi-override",
272
+ "blink",
273
+ "block",
274
+ "block-axis",
275
+ "bold",
276
+ "bolder",
277
+ "border",
278
+ "border-box",
279
+ "both",
280
+ "bottom",
281
+ "break",
282
+ "break-all",
283
+ "break-word",
284
+ "bullets",
285
+ "button",
286
+ "button-bevel",
287
+ "buttonface",
288
+ "buttonhighlight",
289
+ "buttonshadow",
290
+ "buttontext",
291
+ "calc",
292
+ "capitalize",
293
+ "caps-lock-indicator",
294
+ "caption",
295
+ "captiontext",
296
+ "caret",
297
+ "cell",
298
+ "center",
299
+ "checkbox",
300
+ "circle",
301
+ "cjk-decimal",
302
+ "clear",
303
+ "clip",
304
+ "close-quote",
305
+ "col-resize",
306
+ "collapse",
307
+ "color",
308
+ "color-burn",
309
+ "color-dodge",
310
+ "column",
311
+ "column-reverse",
312
+ "compact",
313
+ "condensed",
314
+ "contain",
315
+ "content",
316
+ "contents",
317
+ "content-box",
318
+ "context-menu",
319
+ "continuous",
320
+ "copy",
321
+ "counter",
322
+ "counters",
323
+ "cover",
324
+ "crop",
325
+ "cross",
326
+ "crosshair",
327
+ "currentcolor",
328
+ "cursive",
329
+ "cyclic",
330
+ "darken",
331
+ "dashed",
332
+ "decimal",
333
+ "decimal-leading-zero",
334
+ "default",
335
+ "default-button",
336
+ "dense",
337
+ "destination-atop",
338
+ "destination-in",
339
+ "destination-out",
340
+ "destination-over",
341
+ "difference",
342
+ "disc",
343
+ "discard",
344
+ "disclosure-closed",
345
+ "disclosure-open",
346
+ "document",
347
+ "dot-dash",
348
+ "dot-dot-dash",
349
+ "dotted",
350
+ "double",
351
+ "down",
352
+ "e-resize",
353
+ "ease",
354
+ "ease-in",
355
+ "ease-in-out",
356
+ "ease-out",
357
+ "element",
358
+ "ellipse",
359
+ "ellipsis",
360
+ "embed",
361
+ "end",
362
+ "ethiopic-abegede-gez",
363
+ "ethiopic-halehame-aa-er",
364
+ "ethiopic-halehame-gez",
365
+ "ew-resize",
366
+ "exclusion",
367
+ "expanded",
368
+ "extends",
369
+ "extra-condensed",
370
+ "extra-expanded",
371
+ "fantasy",
372
+ "fast",
373
+ "fill",
374
+ "fill-box",
375
+ "fixed",
376
+ "flat",
377
+ "flex",
378
+ "flex-end",
379
+ "flex-start",
380
+ "footnotes",
381
+ "forwards",
382
+ "from",
383
+ "geometricPrecision",
384
+ "graytext",
385
+ "grid",
386
+ "groove",
387
+ "hand",
388
+ "hard-light",
389
+ "help",
390
+ "hidden",
391
+ "hide",
392
+ "higher",
393
+ "highlight",
394
+ "highlighttext",
395
+ "horizontal",
396
+ "hsl",
397
+ "hsla",
398
+ "hue",
399
+ "icon",
400
+ "ignore",
401
+ "inactiveborder",
402
+ "inactivecaption",
403
+ "inactivecaptiontext",
404
+ "infinite",
405
+ "infobackground",
406
+ "infotext",
407
+ "inherit",
408
+ "initial",
409
+ "inline",
410
+ "inline-axis",
411
+ "inline-block",
412
+ "inline-flex",
413
+ "inline-grid",
414
+ "inline-table",
415
+ "inset",
416
+ "inside",
417
+ "intrinsic",
418
+ "invert",
419
+ "italic",
420
+ "justify",
421
+ "keep-all",
422
+ "landscape",
423
+ "large",
424
+ "larger",
425
+ "left",
426
+ "level",
427
+ "lighter",
428
+ "lighten",
429
+ "line-through",
430
+ "linear",
431
+ "linear-gradient",
432
+ "lines",
433
+ "list-item",
434
+ "listbox",
435
+ "listitem",
436
+ "local",
437
+ "logical",
438
+ "loud",
439
+ "lower",
440
+ "lower-hexadecimal",
441
+ "lower-latin",
442
+ "lower-norwegian",
443
+ "lowercase",
444
+ "ltr",
445
+ "luminosity",
446
+ "manipulation",
447
+ "match",
448
+ "matrix",
449
+ "matrix3d",
450
+ "medium",
451
+ "menu",
452
+ "menutext",
453
+ "message-box",
454
+ "middle",
455
+ "min-intrinsic",
456
+ "mix",
457
+ "monospace",
458
+ "move",
459
+ "multiple",
460
+ "multiple_mask_images",
461
+ "multiply",
462
+ "n-resize",
463
+ "narrower",
464
+ "ne-resize",
465
+ "nesw-resize",
466
+ "no-close-quote",
467
+ "no-drop",
468
+ "no-open-quote",
469
+ "no-repeat",
470
+ "none",
471
+ "normal",
472
+ "not-allowed",
473
+ "nowrap",
474
+ "ns-resize",
475
+ "numbers",
476
+ "numeric",
477
+ "nw-resize",
478
+ "nwse-resize",
479
+ "oblique",
480
+ "opacity",
481
+ "open-quote",
482
+ "optimizeLegibility",
483
+ "optimizeSpeed",
484
+ "outset",
485
+ "outside",
486
+ "outside-shape",
487
+ "overlay",
488
+ "overline",
489
+ "padding",
490
+ "padding-box",
491
+ "painted",
492
+ "page",
493
+ "paused",
494
+ "perspective",
495
+ "pinch-zoom",
496
+ "plus-darker",
497
+ "plus-lighter",
498
+ "pointer",
499
+ "polygon",
500
+ "portrait",
501
+ "pre",
502
+ "pre-line",
503
+ "pre-wrap",
504
+ "preserve-3d",
505
+ "progress",
506
+ "push-button",
507
+ "radial-gradient",
508
+ "radio",
509
+ "read-only",
510
+ "read-write",
511
+ "read-write-plaintext-only",
512
+ "rectangle",
513
+ "region",
514
+ "relative",
515
+ "repeat",
516
+ "repeating-linear-gradient",
517
+ "repeating-radial-gradient",
518
+ "repeat-x",
519
+ "repeat-y",
520
+ "reset",
521
+ "reverse",
522
+ "rgb",
523
+ "rgba",
524
+ "ridge",
525
+ "right",
526
+ "rotate",
527
+ "rotate3d",
528
+ "rotateX",
529
+ "rotateY",
530
+ "rotateZ",
531
+ "round",
532
+ "row",
533
+ "row-resize",
534
+ "row-reverse",
535
+ "rtl",
536
+ "run-in",
537
+ "running",
538
+ "s-resize",
539
+ "sans-serif",
540
+ "saturation",
541
+ "scale",
542
+ "scale3d",
543
+ "scaleX",
544
+ "scaleY",
545
+ "scaleZ",
546
+ "screen",
547
+ "scroll",
548
+ "scrollbar",
549
+ "scroll-position",
550
+ "se-resize",
551
+ "self-start",
552
+ "self-end",
553
+ "semi-condensed",
554
+ "semi-expanded",
555
+ "separate",
556
+ "serif",
557
+ "show",
558
+ "single",
559
+ "skew",
560
+ "skewX",
561
+ "skewY",
562
+ "skip-white-space",
563
+ "slide",
564
+ "slider-horizontal",
565
+ "slider-vertical",
566
+ "sliderthumb-horizontal",
567
+ "sliderthumb-vertical",
568
+ "slow",
569
+ "small",
570
+ "small-caps",
571
+ "small-caption",
572
+ "smaller",
573
+ "soft-light",
574
+ "solid",
575
+ "source-atop",
576
+ "source-in",
577
+ "source-out",
578
+ "source-over",
579
+ "space",
580
+ "space-around",
581
+ "space-between",
582
+ "space-evenly",
583
+ "spell-out",
584
+ "square",
585
+ "start",
586
+ "static",
587
+ "status-bar",
588
+ "stretch",
589
+ "stroke",
590
+ "stroke-box",
591
+ "sub",
592
+ "subpixel-antialiased",
593
+ "svg_masks",
594
+ "super",
595
+ "sw-resize",
596
+ "symbolic",
597
+ "symbols",
598
+ "system-ui",
599
+ "table",
600
+ "table-caption",
601
+ "table-cell",
602
+ "table-column",
603
+ "table-column-group",
604
+ "table-footer-group",
605
+ "table-header-group",
606
+ "table-row",
607
+ "table-row-group",
608
+ "text",
609
+ "text-bottom",
610
+ "text-top",
611
+ "textarea",
612
+ "textfield",
613
+ "thick",
614
+ "thin",
615
+ "threeddarkshadow",
616
+ "threedface",
617
+ "threedhighlight",
618
+ "threedlightshadow",
619
+ "threedshadow",
620
+ "to",
621
+ "top",
622
+ "transform",
623
+ "translate",
624
+ "translate3d",
625
+ "translateX",
626
+ "translateY",
627
+ "translateZ",
628
+ "transparent",
629
+ "ultra-condensed",
630
+ "ultra-expanded",
631
+ "underline",
632
+ "unidirectional-pan",
633
+ "unset",
634
+ "up",
635
+ "upper-latin",
636
+ "uppercase",
637
+ "url",
638
+ "var",
639
+ "vertical",
640
+ "vertical-text",
641
+ "view-box",
642
+ "visible",
643
+ "visibleFill",
644
+ "visiblePainted",
645
+ "visibleStroke",
646
+ "visual",
647
+ "w-resize",
648
+ "wait",
649
+ "wave",
650
+ "wider",
651
+ "window",
652
+ "windowframe",
653
+ "windowtext",
654
+ "words",
655
+ "wrap",
656
+ "wrap-reverse",
657
+ "x-large",
658
+ "x-small",
659
+ "xor",
660
+ "xx-large",
661
+ "xx-small"
662
+ ].map((name) => ({ type: "keyword", label: name })).concat(/* @__PURE__ */ [
663
+ "aliceblue",
664
+ "antiquewhite",
665
+ "aqua",
666
+ "aquamarine",
667
+ "azure",
668
+ "beige",
669
+ "bisque",
670
+ "black",
671
+ "blanchedalmond",
672
+ "blue",
673
+ "blueviolet",
674
+ "brown",
675
+ "burlywood",
676
+ "cadetblue",
677
+ "chartreuse",
678
+ "chocolate",
679
+ "coral",
680
+ "cornflowerblue",
681
+ "cornsilk",
682
+ "crimson",
683
+ "cyan",
684
+ "darkblue",
685
+ "darkcyan",
686
+ "darkgoldenrod",
687
+ "darkgray",
688
+ "darkgreen",
689
+ "darkkhaki",
690
+ "darkmagenta",
691
+ "darkolivegreen",
692
+ "darkorange",
693
+ "darkorchid",
694
+ "darkred",
695
+ "darksalmon",
696
+ "darkseagreen",
697
+ "darkslateblue",
698
+ "darkslategray",
699
+ "darkturquoise",
700
+ "darkviolet",
701
+ "deeppink",
702
+ "deepskyblue",
703
+ "dimgray",
704
+ "dodgerblue",
705
+ "firebrick",
706
+ "floralwhite",
707
+ "forestgreen",
708
+ "fuchsia",
709
+ "gainsboro",
710
+ "ghostwhite",
711
+ "gold",
712
+ "goldenrod",
713
+ "gray",
714
+ "grey",
715
+ "green",
716
+ "greenyellow",
717
+ "honeydew",
718
+ "hotpink",
719
+ "indianred",
720
+ "indigo",
721
+ "ivory",
722
+ "khaki",
723
+ "lavender",
724
+ "lavenderblush",
725
+ "lawngreen",
726
+ "lemonchiffon",
727
+ "lightblue",
728
+ "lightcoral",
729
+ "lightcyan",
730
+ "lightgoldenrodyellow",
731
+ "lightgray",
732
+ "lightgreen",
733
+ "lightpink",
734
+ "lightsalmon",
735
+ "lightseagreen",
736
+ "lightskyblue",
737
+ "lightslategray",
738
+ "lightsteelblue",
739
+ "lightyellow",
740
+ "lime",
741
+ "limegreen",
742
+ "linen",
743
+ "magenta",
744
+ "maroon",
745
+ "mediumaquamarine",
746
+ "mediumblue",
747
+ "mediumorchid",
748
+ "mediumpurple",
749
+ "mediumseagreen",
750
+ "mediumslateblue",
751
+ "mediumspringgreen",
752
+ "mediumturquoise",
753
+ "mediumvioletred",
754
+ "midnightblue",
755
+ "mintcream",
756
+ "mistyrose",
757
+ "moccasin",
758
+ "navajowhite",
759
+ "navy",
760
+ "oldlace",
761
+ "olive",
762
+ "olivedrab",
763
+ "orange",
764
+ "orangered",
765
+ "orchid",
766
+ "palegoldenrod",
767
+ "palegreen",
768
+ "paleturquoise",
769
+ "palevioletred",
770
+ "papayawhip",
771
+ "peachpuff",
772
+ "peru",
773
+ "pink",
774
+ "plum",
775
+ "powderblue",
776
+ "purple",
777
+ "rebeccapurple",
778
+ "red",
779
+ "rosybrown",
780
+ "royalblue",
781
+ "saddlebrown",
782
+ "salmon",
783
+ "sandybrown",
784
+ "seagreen",
785
+ "seashell",
786
+ "sienna",
787
+ "silver",
788
+ "skyblue",
789
+ "slateblue",
790
+ "slategray",
791
+ "snow",
792
+ "springgreen",
793
+ "steelblue",
794
+ "tan",
795
+ "teal",
796
+ "thistle",
797
+ "tomato",
798
+ "turquoise",
799
+ "violet",
800
+ "wheat",
801
+ "white",
802
+ "whitesmoke",
803
+ "yellow",
804
+ "yellowgreen"
805
+ ].map((name) => ({ type: "constant", label: name })));
806
+ const tags = /* @__PURE__ */ [
807
+ "a",
808
+ "abbr",
809
+ "address",
810
+ "article",
811
+ "aside",
812
+ "b",
813
+ "bdi",
814
+ "bdo",
815
+ "blockquote",
816
+ "body",
817
+ "br",
818
+ "button",
819
+ "canvas",
820
+ "caption",
821
+ "cite",
822
+ "code",
823
+ "col",
824
+ "colgroup",
825
+ "dd",
826
+ "del",
827
+ "details",
828
+ "dfn",
829
+ "dialog",
830
+ "div",
831
+ "dl",
832
+ "dt",
833
+ "em",
834
+ "figcaption",
835
+ "figure",
836
+ "footer",
837
+ "form",
838
+ "header",
839
+ "hgroup",
840
+ "h1",
841
+ "h2",
842
+ "h3",
843
+ "h4",
844
+ "h5",
845
+ "h6",
846
+ "hr",
847
+ "html",
848
+ "i",
849
+ "iframe",
850
+ "img",
851
+ "input",
852
+ "ins",
853
+ "kbd",
854
+ "label",
855
+ "legend",
856
+ "li",
857
+ "main",
858
+ "meter",
859
+ "nav",
860
+ "ol",
861
+ "output",
862
+ "p",
863
+ "pre",
864
+ "ruby",
865
+ "section",
866
+ "select",
867
+ "small",
868
+ "source",
869
+ "span",
870
+ "strong",
871
+ "sub",
872
+ "summary",
873
+ "sup",
874
+ "table",
875
+ "tbody",
876
+ "td",
877
+ "template",
878
+ "textarea",
879
+ "tfoot",
880
+ "th",
881
+ "thead",
882
+ "tr",
883
+ "u",
884
+ "ul"
885
+ ].map((name) => ({ type: "type", label: name }));
886
+ const atRules = /* @__PURE__ */ [
887
+ "@charset",
888
+ "@color-profile",
889
+ "@container",
890
+ "@counter-style",
891
+ "@font-face",
892
+ "@font-feature-values",
893
+ "@font-palette-values",
894
+ "@import",
895
+ "@keyframes",
896
+ "@layer",
897
+ "@media",
898
+ "@namespace",
899
+ "@page",
900
+ "@position-try",
901
+ "@property",
902
+ "@scope",
903
+ "@starting-style",
904
+ "@supports",
905
+ "@view-transition"
906
+ ].map((label) => ({ type: "keyword", label }));
907
+ const identifier$1 = /^(\w[\w-]*|-\w[\w-]*|)$/, variable = /^-(-[\w-]*)?$/;
908
+ function isVarArg(node, doc) {
909
+ var _a;
910
+ if (node.name == "(" || node.type.isError)
911
+ node = node.parent || node;
912
+ if (node.name != "ArgList")
913
+ return false;
914
+ let callee2 = (_a = node.parent) === null || _a === void 0 ? void 0 : _a.firstChild;
915
+ if ((callee2 === null || callee2 === void 0 ? void 0 : callee2.name) != "Callee")
916
+ return false;
917
+ return doc.sliceString(callee2.from, callee2.to) == "var";
918
+ }
919
+ const VariablesByNode = /* @__PURE__ */ new NodeWeakMap();
920
+ const declSelector = ["Declaration"];
921
+ function astTop(node) {
922
+ for (let cur = node; ; ) {
923
+ if (cur.type.isTop)
924
+ return cur;
925
+ if (!(cur = cur.parent))
926
+ return node;
927
+ }
928
+ }
929
+ function variableNames(doc, node, isVariable) {
930
+ if (node.to - node.from > 4096) {
931
+ let known = VariablesByNode.get(node);
932
+ if (known)
933
+ return known;
934
+ let result = [], seen = /* @__PURE__ */ new Set(), cursor = node.cursor(IterMode.IncludeAnonymous);
935
+ if (cursor.firstChild())
936
+ do {
937
+ for (let option of variableNames(doc, cursor.node, isVariable))
938
+ if (!seen.has(option.label)) {
939
+ seen.add(option.label);
940
+ result.push(option);
941
+ }
942
+ } while (cursor.nextSibling());
943
+ VariablesByNode.set(node, result);
944
+ return result;
945
+ } else {
946
+ let result = [], seen = /* @__PURE__ */ new Set();
947
+ node.cursor().iterate((node2) => {
948
+ var _a;
949
+ if (isVariable(node2) && node2.matchContext(declSelector) && ((_a = node2.node.nextSibling) === null || _a === void 0 ? void 0 : _a.name) == ":") {
950
+ let name = doc.sliceString(node2.from, node2.to);
951
+ if (!seen.has(name)) {
952
+ seen.add(name);
953
+ result.push({ label: name, type: "variable" });
954
+ }
955
+ }
956
+ });
957
+ return result;
958
+ }
959
+ }
960
+ const defineCSSCompletionSource = (isVariable) => (context) => {
961
+ let { state, pos } = context, node = syntaxTree(state).resolveInner(pos, -1);
962
+ let isDash = node.type.isError && node.from == node.to - 1 && state.doc.sliceString(node.from, node.to) == "-";
963
+ if (node.name == "PropertyName" || (isDash || node.name == "TagName") && /^(Block|Styles)$/.test(node.resolve(node.to).name))
964
+ return { from: node.from, options: properties(), validFor: identifier$1 };
965
+ if (node.name == "ValueName")
966
+ return { from: node.from, options: values, validFor: identifier$1 };
967
+ if (node.name == "PseudoClassName")
968
+ return { from: node.from, options: pseudoClasses, validFor: identifier$1 };
969
+ if (isVariable(node) || (context.explicit || isDash) && isVarArg(node, state.doc))
970
+ return {
971
+ from: isVariable(node) || isDash ? node.from : pos,
972
+ options: variableNames(state.doc, astTop(node), isVariable),
973
+ validFor: variable
974
+ };
975
+ if (node.name == "TagName") {
976
+ for (let { parent } = node; parent; parent = parent.parent)
977
+ if (parent.name == "Block")
978
+ return { from: node.from, options: properties(), validFor: identifier$1 };
979
+ return { from: node.from, options: tags, validFor: identifier$1 };
980
+ }
981
+ if (node.name == "AtKeyword")
982
+ return { from: node.from, options: atRules, validFor: identifier$1 };
983
+ if (!context.explicit)
984
+ return null;
985
+ let above = node.resolve(pos), before = above.childBefore(pos);
986
+ if (before && before.name == ":" && above.name == "PseudoClassSelector")
987
+ return { from: pos, options: pseudoClasses, validFor: identifier$1 };
988
+ if (before && before.name == ":" && above.name == "Declaration" || above.name == "ArgList")
989
+ return { from: pos, options: values, validFor: identifier$1 };
990
+ if (above.name == "Block" || above.name == "Styles")
991
+ return { from: pos, options: properties(), validFor: identifier$1 };
992
+ return null;
993
+ };
994
+ const cssCompletionSource = /* @__PURE__ */ defineCSSCompletionSource((n) => n.name == "VariableName");
995
+ const cssLanguage = /* @__PURE__ */ LRLanguage.define({
996
+ name: "css",
997
+ parser: /* @__PURE__ */ parser.configure({
998
+ props: [
999
+ /* @__PURE__ */ indentNodeProp.add({
1000
+ Declaration: /* @__PURE__ */ continuedIndent()
1001
+ }),
1002
+ /* @__PURE__ */ foldNodeProp.add({
1003
+ "Block KeyframeList": foldInside
1004
+ })
1005
+ ]
1006
+ }),
1007
+ languageData: {
1008
+ commentTokens: { block: { open: "/*", close: "*/" } },
1009
+ indentOnInput: /^\s*\}$/,
1010
+ wordChars: "-"
1011
+ }
1012
+ });
1013
+ function css() {
1014
+ return new LanguageSupport(cssLanguage, cssLanguage.data.of({ autocomplete: cssCompletionSource }));
1015
+ }
1016
+ const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1017
+ __proto__: null,
1018
+ css,
1019
+ cssCompletionSource,
1020
+ cssLanguage,
1021
+ defineCSSCompletionSource
1022
+ }, Symbol.toStringTag, { value: "Module" }));
1023
+ const Targets = ["_blank", "_self", "_top", "_parent"];
1024
+ const Charsets = ["ascii", "utf-8", "utf-16", "latin1", "latin1"];
1025
+ const Methods = ["get", "post", "put", "delete"];
1026
+ const Encs = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"];
1027
+ const Bool = ["true", "false"];
1028
+ const S = {};
1029
+ const Tags = {
1030
+ a: {
1031
+ attrs: {
1032
+ href: null,
1033
+ ping: null,
1034
+ type: null,
1035
+ media: null,
1036
+ target: Targets,
1037
+ hreflang: null
1038
+ }
1039
+ },
1040
+ abbr: S,
1041
+ address: S,
1042
+ area: {
1043
+ attrs: {
1044
+ alt: null,
1045
+ coords: null,
1046
+ href: null,
1047
+ target: null,
1048
+ ping: null,
1049
+ media: null,
1050
+ hreflang: null,
1051
+ type: null,
1052
+ shape: ["default", "rect", "circle", "poly"]
1053
+ }
1054
+ },
1055
+ article: S,
1056
+ aside: S,
1057
+ audio: {
1058
+ attrs: {
1059
+ src: null,
1060
+ mediagroup: null,
1061
+ crossorigin: ["anonymous", "use-credentials"],
1062
+ preload: ["none", "metadata", "auto"],
1063
+ autoplay: ["autoplay"],
1064
+ loop: ["loop"],
1065
+ controls: ["controls"]
1066
+ }
1067
+ },
1068
+ b: S,
1069
+ base: { attrs: { href: null, target: Targets } },
1070
+ bdi: S,
1071
+ bdo: S,
1072
+ blockquote: { attrs: { cite: null } },
1073
+ body: S,
1074
+ br: S,
1075
+ button: {
1076
+ attrs: {
1077
+ form: null,
1078
+ formaction: null,
1079
+ name: null,
1080
+ value: null,
1081
+ autofocus: ["autofocus"],
1082
+ disabled: ["autofocus"],
1083
+ formenctype: Encs,
1084
+ formmethod: Methods,
1085
+ formnovalidate: ["novalidate"],
1086
+ formtarget: Targets,
1087
+ type: ["submit", "reset", "button"]
1088
+ }
1089
+ },
1090
+ canvas: { attrs: { width: null, height: null } },
1091
+ caption: S,
1092
+ center: S,
1093
+ cite: S,
1094
+ code: S,
1095
+ col: { attrs: { span: null } },
1096
+ colgroup: { attrs: { span: null } },
1097
+ command: {
1098
+ attrs: {
1099
+ type: ["command", "checkbox", "radio"],
1100
+ label: null,
1101
+ icon: null,
1102
+ radiogroup: null,
1103
+ command: null,
1104
+ title: null,
1105
+ disabled: ["disabled"],
1106
+ checked: ["checked"]
1107
+ }
1108
+ },
1109
+ data: { attrs: { value: null } },
1110
+ datagrid: { attrs: { disabled: ["disabled"], multiple: ["multiple"] } },
1111
+ datalist: { attrs: { data: null } },
1112
+ dd: S,
1113
+ del: { attrs: { cite: null, datetime: null } },
1114
+ details: { attrs: { open: ["open"] } },
1115
+ dfn: S,
1116
+ div: S,
1117
+ dl: S,
1118
+ dt: S,
1119
+ em: S,
1120
+ embed: { attrs: { src: null, type: null, width: null, height: null } },
1121
+ eventsource: { attrs: { src: null } },
1122
+ fieldset: { attrs: { disabled: ["disabled"], form: null, name: null } },
1123
+ figcaption: S,
1124
+ figure: S,
1125
+ footer: S,
1126
+ form: {
1127
+ attrs: {
1128
+ action: null,
1129
+ name: null,
1130
+ "accept-charset": Charsets,
1131
+ autocomplete: ["on", "off"],
1132
+ enctype: Encs,
1133
+ method: Methods,
1134
+ novalidate: ["novalidate"],
1135
+ target: Targets
1136
+ }
1137
+ },
1138
+ h1: S,
1139
+ h2: S,
1140
+ h3: S,
1141
+ h4: S,
1142
+ h5: S,
1143
+ h6: S,
1144
+ head: {
1145
+ children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"]
1146
+ },
1147
+ header: S,
1148
+ hgroup: S,
1149
+ hr: S,
1150
+ html: {
1151
+ attrs: { manifest: null }
1152
+ },
1153
+ i: S,
1154
+ iframe: {
1155
+ attrs: {
1156
+ src: null,
1157
+ srcdoc: null,
1158
+ name: null,
1159
+ width: null,
1160
+ height: null,
1161
+ sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"],
1162
+ seamless: ["seamless"]
1163
+ }
1164
+ },
1165
+ img: {
1166
+ attrs: {
1167
+ alt: null,
1168
+ src: null,
1169
+ ismap: null,
1170
+ usemap: null,
1171
+ width: null,
1172
+ height: null,
1173
+ crossorigin: ["anonymous", "use-credentials"]
1174
+ }
1175
+ },
1176
+ input: {
1177
+ attrs: {
1178
+ alt: null,
1179
+ dirname: null,
1180
+ form: null,
1181
+ formaction: null,
1182
+ height: null,
1183
+ list: null,
1184
+ max: null,
1185
+ maxlength: null,
1186
+ min: null,
1187
+ name: null,
1188
+ pattern: null,
1189
+ placeholder: null,
1190
+ size: null,
1191
+ src: null,
1192
+ step: null,
1193
+ value: null,
1194
+ width: null,
1195
+ accept: ["audio/*", "video/*", "image/*"],
1196
+ autocomplete: ["on", "off"],
1197
+ autofocus: ["autofocus"],
1198
+ checked: ["checked"],
1199
+ disabled: ["disabled"],
1200
+ formenctype: Encs,
1201
+ formmethod: Methods,
1202
+ formnovalidate: ["novalidate"],
1203
+ formtarget: Targets,
1204
+ multiple: ["multiple"],
1205
+ readonly: ["readonly"],
1206
+ required: ["required"],
1207
+ type: [
1208
+ "hidden",
1209
+ "text",
1210
+ "search",
1211
+ "tel",
1212
+ "url",
1213
+ "email",
1214
+ "password",
1215
+ "datetime",
1216
+ "date",
1217
+ "month",
1218
+ "week",
1219
+ "time",
1220
+ "datetime-local",
1221
+ "number",
1222
+ "range",
1223
+ "color",
1224
+ "checkbox",
1225
+ "radio",
1226
+ "file",
1227
+ "submit",
1228
+ "image",
1229
+ "reset",
1230
+ "button"
1231
+ ]
1232
+ }
1233
+ },
1234
+ ins: { attrs: { cite: null, datetime: null } },
1235
+ kbd: S,
1236
+ keygen: {
1237
+ attrs: {
1238
+ challenge: null,
1239
+ form: null,
1240
+ name: null,
1241
+ autofocus: ["autofocus"],
1242
+ disabled: ["disabled"],
1243
+ keytype: ["RSA"]
1244
+ }
1245
+ },
1246
+ label: { attrs: { for: null, form: null } },
1247
+ legend: S,
1248
+ li: { attrs: { value: null } },
1249
+ link: {
1250
+ attrs: {
1251
+ href: null,
1252
+ type: null,
1253
+ hreflang: null,
1254
+ media: null,
1255
+ sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"]
1256
+ }
1257
+ },
1258
+ map: { attrs: { name: null } },
1259
+ mark: S,
1260
+ menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } },
1261
+ meta: {
1262
+ attrs: {
1263
+ content: null,
1264
+ charset: Charsets,
1265
+ name: ["viewport", "application-name", "author", "description", "generator", "keywords"],
1266
+ "http-equiv": ["content-language", "content-type", "default-style", "refresh"]
1267
+ }
1268
+ },
1269
+ meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },
1270
+ nav: S,
1271
+ noscript: S,
1272
+ object: {
1273
+ attrs: {
1274
+ data: null,
1275
+ type: null,
1276
+ name: null,
1277
+ usemap: null,
1278
+ form: null,
1279
+ width: null,
1280
+ height: null,
1281
+ typemustmatch: ["typemustmatch"]
1282
+ }
1283
+ },
1284
+ ol: {
1285
+ attrs: { reversed: ["reversed"], start: null, type: ["1", "a", "A", "i", "I"] },
1286
+ children: ["li", "script", "template", "ul", "ol"]
1287
+ },
1288
+ optgroup: { attrs: { disabled: ["disabled"], label: null } },
1289
+ option: { attrs: { disabled: ["disabled"], label: null, selected: ["selected"], value: null } },
1290
+ output: { attrs: { for: null, form: null, name: null } },
1291
+ p: S,
1292
+ param: { attrs: { name: null, value: null } },
1293
+ pre: S,
1294
+ progress: { attrs: { value: null, max: null } },
1295
+ q: { attrs: { cite: null } },
1296
+ rp: S,
1297
+ rt: S,
1298
+ ruby: S,
1299
+ samp: S,
1300
+ script: {
1301
+ attrs: {
1302
+ type: ["text/javascript"],
1303
+ src: null,
1304
+ async: ["async"],
1305
+ defer: ["defer"],
1306
+ charset: Charsets
1307
+ }
1308
+ },
1309
+ section: S,
1310
+ select: {
1311
+ attrs: {
1312
+ form: null,
1313
+ name: null,
1314
+ size: null,
1315
+ autofocus: ["autofocus"],
1316
+ disabled: ["disabled"],
1317
+ multiple: ["multiple"]
1318
+ }
1319
+ },
1320
+ slot: { attrs: { name: null } },
1321
+ small: S,
1322
+ source: { attrs: { src: null, type: null, media: null } },
1323
+ span: S,
1324
+ strong: S,
1325
+ style: {
1326
+ attrs: {
1327
+ type: ["text/css"],
1328
+ media: null,
1329
+ scoped: null
1330
+ }
1331
+ },
1332
+ sub: S,
1333
+ summary: S,
1334
+ sup: S,
1335
+ table: S,
1336
+ tbody: S,
1337
+ td: { attrs: { colspan: null, rowspan: null, headers: null } },
1338
+ template: S,
1339
+ textarea: {
1340
+ attrs: {
1341
+ dirname: null,
1342
+ form: null,
1343
+ maxlength: null,
1344
+ name: null,
1345
+ placeholder: null,
1346
+ rows: null,
1347
+ cols: null,
1348
+ autofocus: ["autofocus"],
1349
+ disabled: ["disabled"],
1350
+ readonly: ["readonly"],
1351
+ required: ["required"],
1352
+ wrap: ["soft", "hard"]
1353
+ }
1354
+ },
1355
+ tfoot: S,
1356
+ th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } },
1357
+ thead: S,
1358
+ time: { attrs: { datetime: null } },
1359
+ title: S,
1360
+ tr: S,
1361
+ track: {
1362
+ attrs: {
1363
+ src: null,
1364
+ label: null,
1365
+ default: null,
1366
+ kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"],
1367
+ srclang: null
1368
+ }
1369
+ },
1370
+ ul: { children: ["li", "script", "template", "ul", "ol"] },
1371
+ var: S,
1372
+ video: {
1373
+ attrs: {
1374
+ src: null,
1375
+ poster: null,
1376
+ width: null,
1377
+ height: null,
1378
+ crossorigin: ["anonymous", "use-credentials"],
1379
+ preload: ["auto", "metadata", "none"],
1380
+ autoplay: ["autoplay"],
1381
+ mediagroup: ["movie"],
1382
+ muted: ["muted"],
1383
+ controls: ["controls"]
1384
+ }
1385
+ },
1386
+ wbr: S
1387
+ };
1388
+ const GlobalAttrs = {
1389
+ accesskey: null,
1390
+ class: null,
1391
+ contenteditable: Bool,
1392
+ contextmenu: null,
1393
+ dir: ["ltr", "rtl", "auto"],
1394
+ draggable: ["true", "false", "auto"],
1395
+ dropzone: ["copy", "move", "link", "string:", "file:"],
1396
+ hidden: ["hidden"],
1397
+ id: null,
1398
+ inert: ["inert"],
1399
+ itemid: null,
1400
+ itemprop: null,
1401
+ itemref: null,
1402
+ itemscope: ["itemscope"],
1403
+ itemtype: null,
1404
+ lang: ["ar", "bn", "de", "en-GB", "en-US", "es", "fr", "hi", "id", "ja", "pa", "pt", "ru", "tr", "zh"],
1405
+ spellcheck: Bool,
1406
+ autocorrect: Bool,
1407
+ autocapitalize: Bool,
1408
+ style: null,
1409
+ tabindex: null,
1410
+ title: null,
1411
+ translate: ["yes", "no"],
1412
+ rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"],
1413
+ role: /* @__PURE__ */ "alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),
1414
+ "aria-activedescendant": null,
1415
+ "aria-atomic": Bool,
1416
+ "aria-autocomplete": ["inline", "list", "both", "none"],
1417
+ "aria-busy": Bool,
1418
+ "aria-checked": ["true", "false", "mixed", "undefined"],
1419
+ "aria-controls": null,
1420
+ "aria-describedby": null,
1421
+ "aria-disabled": Bool,
1422
+ "aria-dropeffect": null,
1423
+ "aria-expanded": ["true", "false", "undefined"],
1424
+ "aria-flowto": null,
1425
+ "aria-grabbed": ["true", "false", "undefined"],
1426
+ "aria-haspopup": Bool,
1427
+ "aria-hidden": Bool,
1428
+ "aria-invalid": ["true", "false", "grammar", "spelling"],
1429
+ "aria-label": null,
1430
+ "aria-labelledby": null,
1431
+ "aria-level": null,
1432
+ "aria-live": ["off", "polite", "assertive"],
1433
+ "aria-multiline": Bool,
1434
+ "aria-multiselectable": Bool,
1435
+ "aria-owns": null,
1436
+ "aria-posinset": null,
1437
+ "aria-pressed": ["true", "false", "mixed", "undefined"],
1438
+ "aria-readonly": Bool,
1439
+ "aria-relevant": null,
1440
+ "aria-required": Bool,
1441
+ "aria-selected": ["true", "false", "undefined"],
1442
+ "aria-setsize": null,
1443
+ "aria-sort": ["ascending", "descending", "none", "other"],
1444
+ "aria-valuemax": null,
1445
+ "aria-valuemin": null,
1446
+ "aria-valuenow": null,
1447
+ "aria-valuetext": null
1448
+ };
1449
+ const eventAttributes = /* @__PURE__ */ "beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map((n) => "on" + n);
1450
+ for (let a of eventAttributes)
1451
+ GlobalAttrs[a] = null;
1452
+ class Schema {
1453
+ constructor(extraTags, extraAttrs) {
1454
+ this.tags = { ...Tags, ...extraTags };
1455
+ this.globalAttrs = { ...GlobalAttrs, ...extraAttrs };
1456
+ this.allTags = Object.keys(this.tags);
1457
+ this.globalAttrNames = Object.keys(this.globalAttrs);
1458
+ }
1459
+ }
1460
+ Schema.default = /* @__PURE__ */ new Schema();
1461
+ function elementName(doc, tree, max = doc.length) {
1462
+ if (!tree)
1463
+ return "";
1464
+ let tag = tree.firstChild;
1465
+ let name = tag && tag.getChild("TagName");
1466
+ return name ? doc.sliceString(name.from, Math.min(name.to, max)) : "";
1467
+ }
1468
+ function findParentElement(tree, skip = false) {
1469
+ for (; tree; tree = tree.parent)
1470
+ if (tree.name == "Element") {
1471
+ if (skip)
1472
+ skip = false;
1473
+ else
1474
+ return tree;
1475
+ }
1476
+ return null;
1477
+ }
1478
+ function allowedChildren(doc, tree, schema) {
1479
+ let parentInfo = schema.tags[elementName(doc, findParentElement(tree))];
1480
+ return (parentInfo === null || parentInfo === void 0 ? void 0 : parentInfo.children) || schema.allTags;
1481
+ }
1482
+ function openTags(doc, tree) {
1483
+ let open = [];
1484
+ for (let parent = findParentElement(tree); parent && !parent.type.isTop; parent = findParentElement(parent.parent)) {
1485
+ let tagName = elementName(doc, parent);
1486
+ if (tagName && parent.lastChild.name == "CloseTag")
1487
+ break;
1488
+ if (tagName && open.indexOf(tagName) < 0 && (tree.name == "EndTag" || tree.from >= parent.firstChild.to))
1489
+ open.push(tagName);
1490
+ }
1491
+ return open;
1492
+ }
1493
+ const identifier = /^[:\-\.\w\u00b7-\uffff]*$/;
1494
+ function completeTag(state, schema, tree, from, to) {
1495
+ let end = /\s*>/.test(state.sliceDoc(to, to + 5)) ? "" : ">";
1496
+ let parent = findParentElement(tree, tree.name == "StartTag" || tree.name == "TagName");
1497
+ return {
1498
+ from,
1499
+ to,
1500
+ options: allowedChildren(state.doc, parent, schema).map((tagName) => ({ label: tagName, type: "type" })).concat(openTags(state.doc, tree).map((tag, i) => ({
1501
+ label: "/" + tag,
1502
+ apply: "/" + tag + end,
1503
+ type: "type",
1504
+ boost: 99 - i
1505
+ }))),
1506
+ validFor: /^\/?[:\-\.\w\u00b7-\uffff]*$/
1507
+ };
1508
+ }
1509
+ function completeCloseTag(state, tree, from, to) {
1510
+ let end = /\s*>/.test(state.sliceDoc(to, to + 5)) ? "" : ">";
1511
+ return {
1512
+ from,
1513
+ to,
1514
+ options: openTags(state.doc, tree).map((tag, i) => ({ label: tag, apply: tag + end, type: "type", boost: 99 - i })),
1515
+ validFor: identifier
1516
+ };
1517
+ }
1518
+ function completeStartTag(state, schema, tree, pos) {
1519
+ let options = [], level = 0;
1520
+ for (let tagName of allowedChildren(state.doc, tree, schema))
1521
+ options.push({ label: "<" + tagName, type: "type" });
1522
+ for (let open of openTags(state.doc, tree))
1523
+ options.push({ label: "</" + open + ">", type: "type", boost: 99 - level++ });
1524
+ return { from: pos, to: pos, options, validFor: /^<\/?[:\-\.\w\u00b7-\uffff]*$/ };
1525
+ }
1526
+ function completeAttrName(state, schema, tree, from, to) {
1527
+ let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;
1528
+ let localAttrs = info && info.attrs ? Object.keys(info.attrs) : [];
1529
+ let names = info && info.globalAttrs === false ? localAttrs : localAttrs.length ? localAttrs.concat(schema.globalAttrNames) : schema.globalAttrNames;
1530
+ return {
1531
+ from,
1532
+ to,
1533
+ options: names.map((attrName) => ({ label: attrName, type: "property" })),
1534
+ validFor: identifier
1535
+ };
1536
+ }
1537
+ function completeAttrValue(state, schema, tree, from, to) {
1538
+ var _a;
1539
+ let nameNode = (_a = tree.parent) === null || _a === void 0 ? void 0 : _a.getChild("AttributeName");
1540
+ let options = [], token = void 0;
1541
+ if (nameNode) {
1542
+ let attrName = state.sliceDoc(nameNode.from, nameNode.to);
1543
+ let attrs = schema.globalAttrs[attrName];
1544
+ if (!attrs) {
1545
+ let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;
1546
+ attrs = (info === null || info === void 0 ? void 0 : info.attrs) && info.attrs[attrName];
1547
+ }
1548
+ if (attrs) {
1549
+ let base = state.sliceDoc(from, to).toLowerCase(), quoteStart = '"', quoteEnd = '"';
1550
+ if (/^['"]/.test(base)) {
1551
+ token = base[0] == '"' ? /^[^"]*$/ : /^[^']*$/;
1552
+ quoteStart = "";
1553
+ quoteEnd = state.sliceDoc(to, to + 1) == base[0] ? "" : base[0];
1554
+ base = base.slice(1);
1555
+ from++;
1556
+ } else {
1557
+ token = /^[^\s<>='"]*$/;
1558
+ }
1559
+ for (let value of attrs)
1560
+ options.push({ label: value, apply: quoteStart + value + quoteEnd, type: "constant" });
1561
+ }
1562
+ }
1563
+ return { from, to, options, validFor: token };
1564
+ }
1565
+ function htmlCompletionFor(schema, context) {
1566
+ let { state, pos } = context, tree = syntaxTree(state).resolveInner(pos, -1), around = tree.resolve(pos);
1567
+ for (let scan = pos, before; around == tree && (before = tree.childBefore(scan)); ) {
1568
+ let last = before.lastChild;
1569
+ if (!last || !last.type.isError || last.from < last.to)
1570
+ break;
1571
+ around = tree = before;
1572
+ scan = last.from;
1573
+ }
1574
+ if (tree.name == "TagName") {
1575
+ return tree.parent && /CloseTag$/.test(tree.parent.name) ? completeCloseTag(state, tree, tree.from, pos) : completeTag(state, schema, tree, tree.from, pos);
1576
+ } else if (tree.name == "StartTag" || tree.name == "IncompleteTag") {
1577
+ return completeTag(state, schema, tree, pos, pos);
1578
+ } else if (tree.name == "StartCloseTag" || tree.name == "IncompleteCloseTag") {
1579
+ return completeCloseTag(state, tree, pos, pos);
1580
+ } else if (tree.name == "OpenTag" || tree.name == "SelfClosingTag" || tree.name == "AttributeName") {
1581
+ return completeAttrName(state, schema, tree, tree.name == "AttributeName" ? tree.from : pos, pos);
1582
+ } else if (tree.name == "Is" || tree.name == "AttributeValue" || tree.name == "UnquotedAttributeValue") {
1583
+ return completeAttrValue(state, schema, tree, tree.name == "Is" ? pos : tree.from, pos);
1584
+ } else if (context.explicit && (around.name == "Element" || around.name == "Text" || around.name == "Document")) {
1585
+ return completeStartTag(state, schema, tree, pos);
1586
+ } else {
1587
+ return null;
1588
+ }
1589
+ }
1590
+ function htmlCompletionSource(context) {
1591
+ return htmlCompletionFor(Schema.default, context);
1592
+ }
1593
+ function htmlCompletionSourceWith(config) {
1594
+ let { extraTags, extraGlobalAttributes: extraAttrs } = config;
1595
+ let schema = extraAttrs || extraTags ? new Schema(extraTags, extraAttrs) : Schema.default;
1596
+ return (context) => htmlCompletionFor(schema, context);
1597
+ }
1598
+ const jsonParser = /* @__PURE__ */ javascriptLanguage.parser.configure({ top: "SingleExpression" });
1599
+ const defaultNesting = [
1600
+ {
1601
+ tag: "script",
1602
+ attrs: (attrs) => attrs.type == "text/typescript" || attrs.lang == "ts",
1603
+ parser: typescriptLanguage.parser
1604
+ },
1605
+ {
1606
+ tag: "script",
1607
+ attrs: (attrs) => attrs.type == "text/babel" || attrs.type == "text/jsx",
1608
+ parser: jsxLanguage.parser
1609
+ },
1610
+ {
1611
+ tag: "script",
1612
+ attrs: (attrs) => attrs.type == "text/typescript-jsx",
1613
+ parser: tsxLanguage.parser
1614
+ },
1615
+ {
1616
+ tag: "script",
1617
+ attrs(attrs) {
1618
+ return /^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(attrs.type);
1619
+ },
1620
+ parser: jsonParser
1621
+ },
1622
+ {
1623
+ tag: "script",
1624
+ attrs(attrs) {
1625
+ return !attrs.type || /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(attrs.type);
1626
+ },
1627
+ parser: javascriptLanguage.parser
1628
+ },
1629
+ {
1630
+ tag: "style",
1631
+ attrs(attrs) {
1632
+ return (!attrs.lang || attrs.lang == "css") && (!attrs.type || /^(text\/)?(x-)?(stylesheet|css)$/i.test(attrs.type));
1633
+ },
1634
+ parser: cssLanguage.parser
1635
+ }
1636
+ ];
1637
+ const defaultAttrs = /* @__PURE__ */ [
1638
+ {
1639
+ name: "style",
1640
+ parser: /* @__PURE__ */ cssLanguage.parser.configure({ top: "Styles" })
1641
+ }
1642
+ ].concat(/* @__PURE__ */ eventAttributes.map((name) => ({ name, parser: javascriptLanguage.parser })));
1643
+ const htmlPlain = /* @__PURE__ */ LRLanguage.define({
1644
+ name: "html",
1645
+ parser: /* @__PURE__ */ parser$1.configure({
1646
+ props: [
1647
+ /* @__PURE__ */ indentNodeProp.add({
1648
+ Element(context) {
1649
+ let after = /^(\s*)(<\/)?/.exec(context.textAfter);
1650
+ if (context.node.to <= context.pos + after[0].length)
1651
+ return context.continue();
1652
+ return context.lineIndent(context.node.from) + (after[2] ? 0 : context.unit);
1653
+ },
1654
+ "OpenTag CloseTag SelfClosingTag"(context) {
1655
+ return context.column(context.node.from) + context.unit;
1656
+ },
1657
+ Document(context) {
1658
+ if (context.pos + /\s*/.exec(context.textAfter)[0].length < context.node.to)
1659
+ return context.continue();
1660
+ let endElt = null, close;
1661
+ for (let cur = context.node; ; ) {
1662
+ let last = cur.lastChild;
1663
+ if (!last || last.name != "Element" || last.to != cur.to)
1664
+ break;
1665
+ endElt = cur = last;
1666
+ }
1667
+ if (endElt && !((close = endElt.lastChild) && (close.name == "CloseTag" || close.name == "SelfClosingTag")))
1668
+ return context.lineIndent(endElt.from) + context.unit;
1669
+ return null;
1670
+ }
1671
+ }),
1672
+ /* @__PURE__ */ foldNodeProp.add({
1673
+ Element(node) {
1674
+ let first = node.firstChild, last = node.lastChild;
1675
+ if (!first || first.name != "OpenTag")
1676
+ return null;
1677
+ return { from: first.to, to: last.name == "CloseTag" ? last.from : node.to };
1678
+ }
1679
+ }),
1680
+ /* @__PURE__ */ bracketMatchingHandle.add({
1681
+ "OpenTag CloseTag": (node) => node.getChild("TagName")
1682
+ })
1683
+ ]
1684
+ }),
1685
+ languageData: {
1686
+ commentTokens: { block: { open: "<!--", close: "-->" } },
1687
+ indentOnInput: /^\s*<\/\w+\W$/,
1688
+ wordChars: "-_"
1689
+ }
1690
+ });
1691
+ const htmlLanguage = /* @__PURE__ */ htmlPlain.configure({
1692
+ wrap: /* @__PURE__ */ configureNesting(defaultNesting, defaultAttrs)
1693
+ });
1694
+ function html(config = {}) {
1695
+ let dialect = "", wrap;
1696
+ if (config.matchClosingTags === false)
1697
+ dialect = "noMatch";
1698
+ if (config.selfClosingTags === true)
1699
+ dialect = (dialect ? dialect + " " : "") + "selfClosing";
1700
+ if (config.nestedLanguages && config.nestedLanguages.length || config.nestedAttributes && config.nestedAttributes.length)
1701
+ wrap = configureNesting((config.nestedLanguages || []).concat(defaultNesting), (config.nestedAttributes || []).concat(defaultAttrs));
1702
+ let lang = wrap ? htmlPlain.configure({ wrap, dialect }) : dialect ? htmlLanguage.configure({ dialect }) : htmlLanguage;
1703
+ return new LanguageSupport(lang, [
1704
+ htmlLanguage.data.of({ autocomplete: htmlCompletionSourceWith(config) }),
1705
+ config.autoCloseTags !== false ? autoCloseTags : [],
1706
+ javascript().support,
1707
+ css().support
1708
+ ]);
1709
+ }
1710
+ const selfClosers = /* @__PURE__ */ new Set(/* @__PURE__ */ "area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" "));
1711
+ const autoCloseTags = /* @__PURE__ */ EditorView.inputHandler.of((view, from, to, text, insertTransaction) => {
1712
+ if (view.composing || view.state.readOnly || from != to || text != ">" && text != "/" || !htmlLanguage.isActiveAt(view.state, from, -1))
1713
+ return false;
1714
+ let base = insertTransaction(), { state } = base;
1715
+ let closeTags = state.changeByRange((range) => {
1716
+ var _a, _b, _c;
1717
+ let didType = state.doc.sliceString(range.from - 1, range.to) == text;
1718
+ let { head } = range, after = syntaxTree(state).resolveInner(head, -1), name;
1719
+ if (didType && text == ">" && after.name == "EndTag") {
1720
+ let tag = after.parent;
1721
+ if (((_b = (_a = tag.parent) === null || _a === void 0 ? void 0 : _a.lastChild) === null || _b === void 0 ? void 0 : _b.name) != "CloseTag" && (name = elementName(state.doc, tag.parent, head)) && !selfClosers.has(name)) {
1722
+ let to2 = head + (state.doc.sliceString(head, head + 1) === ">" ? 1 : 0);
1723
+ let insert = `</${name}>`;
1724
+ return { range, changes: { from: head, to: to2, insert } };
1725
+ }
1726
+ } else if (didType && text == "/" && after.name == "IncompleteCloseTag") {
1727
+ let tag = after.parent;
1728
+ if (after.from == head - 2 && ((_c = tag.lastChild) === null || _c === void 0 ? void 0 : _c.name) != "CloseTag" && (name = elementName(state.doc, tag, head)) && !selfClosers.has(name)) {
1729
+ let to2 = head + (state.doc.sliceString(head, head + 1) === ">" ? 1 : 0);
1730
+ let insert = `${name}>`;
1731
+ return {
1732
+ range: EditorSelection.cursor(head + insert.length, -1),
1733
+ changes: { from: head, to: to2, insert }
1734
+ };
1735
+ }
1736
+ }
1737
+ return { range };
1738
+ });
1739
+ if (closeTags.changes.empty)
1740
+ return false;
1741
+ view.dispatch([
1742
+ base,
1743
+ state.update(closeTags, {
1744
+ userEvent: "input.complete",
1745
+ scrollIntoView: true
1746
+ })
1747
+ ]);
1748
+ return true;
1749
+ });
1750
+ const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1751
+ __proto__: null,
1752
+ autoCloseTags,
1753
+ html,
1754
+ htmlCompletionSource,
1755
+ htmlCompletionSourceWith,
1756
+ htmlLanguage
1757
+ }, Symbol.toStringTag, { value: "Module" }));
1758
+ export {
1759
+ html as a,
1760
+ cssLanguage as b,
1761
+ css as c,
1762
+ defineCSSCompletionSource as d,
1763
+ index as e,
1764
+ htmlCompletionSource as h,
1765
+ index$1 as i
1766
+ };
1767
+ //# sourceMappingURL=index-dXZeR7Bx.js.map