@ai-ecoverse/slicc-spectrum 1.104.2 → 1.105.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 (246) hide show
  1. package/README.md +14 -21
  2. package/dist/{chunk-D2HYQOCH.js → chunk-2GER7OHY.js} +4 -4
  3. package/dist/{chunk-JPIG5BAD.js → chunk-2JLDRHGH.js} +2 -2
  4. package/dist/chunk-2PTCZ3HU.js +177 -0
  5. package/dist/chunk-2PTCZ3HU.js.map +7 -0
  6. package/dist/chunk-2QGVEUM3.js +218 -0
  7. package/dist/chunk-2QGVEUM3.js.map +7 -0
  8. package/dist/chunk-2QTNHBD6.js +236 -0
  9. package/dist/chunk-2QTNHBD6.js.map +7 -0
  10. package/dist/chunk-3HYCVQIZ.js +2135 -0
  11. package/dist/chunk-3HYCVQIZ.js.map +7 -0
  12. package/dist/chunk-3TKJZ3WO.js +211 -0
  13. package/dist/chunk-3TKJZ3WO.js.map +7 -0
  14. package/dist/chunk-45RRK5H7.js +218 -0
  15. package/dist/chunk-45RRK5H7.js.map +7 -0
  16. package/dist/chunk-4LHTT5CM.js +260 -0
  17. package/dist/chunk-4LHTT5CM.js.map +7 -0
  18. package/dist/chunk-4LNENAB3.js +84 -0
  19. package/dist/chunk-4LNENAB3.js.map +7 -0
  20. package/dist/chunk-4UVLBBK5.js +229 -0
  21. package/dist/chunk-4UVLBBK5.js.map +7 -0
  22. package/dist/chunk-4V2XWPVI.js +260 -0
  23. package/dist/chunk-4V2XWPVI.js.map +7 -0
  24. package/dist/chunk-4VL4W65X.js +218 -0
  25. package/dist/chunk-4VL4W65X.js.map +7 -0
  26. package/dist/{chunk-442GNVWR.js → chunk-57NDK5DC.js} +2805 -2630
  27. package/dist/chunk-57NDK5DC.js.map +7 -0
  28. package/dist/chunk-5DQGKJYU.js +231 -0
  29. package/dist/chunk-5DQGKJYU.js.map +7 -0
  30. package/dist/chunk-5PPA6KWN.js +166 -0
  31. package/dist/chunk-5PPA6KWN.js.map +7 -0
  32. package/dist/chunk-5RPMYYR5.js +9 -0
  33. package/dist/chunk-5RPMYYR5.js.map +7 -0
  34. package/dist/chunk-5TKCBABJ.js +169 -0
  35. package/dist/chunk-5TKCBABJ.js.map +7 -0
  36. package/dist/chunk-5YPJDKI6.js +170 -0
  37. package/dist/chunk-5YPJDKI6.js.map +7 -0
  38. package/dist/{chunk-GHS6XYSQ.js → chunk-6FZ7EIP5.js} +6 -6
  39. package/dist/{chunk-LMH4BAKD.js → chunk-6JS2SZJ5.js} +12 -10
  40. package/dist/{chunk-LMH4BAKD.js.map → chunk-6JS2SZJ5.js.map} +2 -2
  41. package/dist/chunk-6UISDSQ6.js +229 -0
  42. package/dist/chunk-6UISDSQ6.js.map +7 -0
  43. package/dist/chunk-AADI6MVB.js +245 -0
  44. package/dist/chunk-AADI6MVB.js.map +7 -0
  45. package/dist/{chunk-22NCU4NL.js → chunk-AL43JFHF.js} +2 -2
  46. package/dist/chunk-ALX3M6E3.js +368 -0
  47. package/dist/chunk-ALX3M6E3.js.map +7 -0
  48. package/dist/chunk-APWLBR4J.js +173 -0
  49. package/dist/chunk-APWLBR4J.js.map +7 -0
  50. package/dist/chunk-B26VSXYC.js +297 -0
  51. package/dist/chunk-B26VSXYC.js.map +7 -0
  52. package/dist/chunk-B3ZH3IZR.js +82 -0
  53. package/dist/chunk-B3ZH3IZR.js.map +7 -0
  54. package/dist/chunk-BA2ER7NA.js +169 -0
  55. package/dist/chunk-BA2ER7NA.js.map +7 -0
  56. package/dist/chunk-BAVPQSVQ.js +190 -0
  57. package/dist/chunk-BAVPQSVQ.js.map +7 -0
  58. package/dist/{chunk-44HPUTOU.js → chunk-CEAD4W2I.js} +6 -6
  59. package/dist/chunk-CTBCZ6QP.js +368 -0
  60. package/dist/chunk-CTBCZ6QP.js.map +7 -0
  61. package/dist/chunk-D2BSCPOZ.js +204 -0
  62. package/dist/chunk-D2BSCPOZ.js.map +7 -0
  63. package/dist/chunk-DBTSLS2U.js +171 -0
  64. package/dist/chunk-DBTSLS2U.js.map +7 -0
  65. package/dist/chunk-DUHSH5IA.js +392 -0
  66. package/dist/chunk-DUHSH5IA.js.map +7 -0
  67. package/dist/chunk-E3XF2JYD.js +175 -0
  68. package/dist/chunk-E3XF2JYD.js.map +7 -0
  69. package/dist/chunk-E6FGQYBA.js +2 -0
  70. package/dist/{chunk-Y7O6BIKA.js → chunk-EAVYCN2X.js} +3 -3
  71. package/dist/chunk-EG2LH2D6.js +368 -0
  72. package/dist/chunk-EG2LH2D6.js.map +7 -0
  73. package/dist/chunk-EJCS2A67.js +248 -0
  74. package/dist/chunk-EJCS2A67.js.map +7 -0
  75. package/dist/chunk-ENK72MDX.js +247 -0
  76. package/dist/chunk-ENK72MDX.js.map +7 -0
  77. package/dist/chunk-ETY2K3PP.js +185 -0
  78. package/dist/chunk-ETY2K3PP.js.map +7 -0
  79. package/dist/chunk-FVU5ETHN.js +244 -0
  80. package/dist/chunk-FVU5ETHN.js.map +7 -0
  81. package/dist/chunk-FWORTALJ.js +392 -0
  82. package/dist/chunk-FWORTALJ.js.map +7 -0
  83. package/dist/chunk-G3AQILQL.js +377 -0
  84. package/dist/chunk-G3AQILQL.js.map +7 -0
  85. package/dist/chunk-GFOHPOWP.js +8 -0
  86. package/dist/chunk-GG2YLBBY.js +211 -0
  87. package/dist/chunk-GG2YLBBY.js.map +7 -0
  88. package/dist/chunk-GULF27HF.js +204 -0
  89. package/dist/chunk-GULF27HF.js.map +7 -0
  90. package/dist/chunk-I54HXPPH.js +242 -0
  91. package/dist/chunk-I54HXPPH.js.map +7 -0
  92. package/dist/chunk-I67XBOU7.js +241 -0
  93. package/dist/chunk-I67XBOU7.js.map +7 -0
  94. package/dist/chunk-I7E74Y7Y.js +368 -0
  95. package/dist/chunk-I7E74Y7Y.js.map +7 -0
  96. package/dist/chunk-IGMG5I7K.js +204 -0
  97. package/dist/chunk-IGMG5I7K.js.map +7 -0
  98. package/dist/chunk-JSVDUJOF.js +418 -0
  99. package/dist/chunk-JSVDUJOF.js.map +7 -0
  100. package/dist/chunk-JWEDQMOH.js +204 -0
  101. package/dist/chunk-JWEDQMOH.js.map +7 -0
  102. package/dist/chunk-K7CQ2PRH.js +243 -0
  103. package/dist/chunk-K7CQ2PRH.js.map +7 -0
  104. package/dist/chunk-KIDTSHLT.js +3239 -0
  105. package/dist/chunk-KIDTSHLT.js.map +7 -0
  106. package/dist/chunk-KIKLCSNJ.js +3 -0
  107. package/dist/chunk-KIKLCSNJ.js.map +7 -0
  108. package/dist/chunk-KUTFS7K7.js +170 -0
  109. package/dist/chunk-KUTFS7K7.js.map +7 -0
  110. package/dist/chunk-L25HPU52.js +229 -0
  111. package/dist/chunk-L25HPU52.js.map +7 -0
  112. package/dist/{chunk-WXAII75O.js → chunk-LJ5HWLFA.js} +2 -2
  113. package/dist/{chunk-WXAII75O.js.map → chunk-LJ5HWLFA.js.map} +1 -1
  114. package/dist/chunk-LNZHKQQB.js +175 -0
  115. package/dist/chunk-LNZHKQQB.js.map +7 -0
  116. package/dist/{chunk-LVH4CKV3.js → chunk-LSXQD3LS.js} +3 -3
  117. package/dist/chunk-LW7FUR35.js +368 -0
  118. package/dist/chunk-LW7FUR35.js.map +7 -0
  119. package/dist/chunk-MCIHORAJ.js +229 -0
  120. package/dist/chunk-MCIHORAJ.js.map +7 -0
  121. package/dist/chunk-MD3SFR65.js +418 -0
  122. package/dist/chunk-MD3SFR65.js.map +7 -0
  123. package/dist/chunk-MGYKF4CA.js +175 -0
  124. package/dist/chunk-MGYKF4CA.js.map +7 -0
  125. package/dist/chunk-N7NGXLLM.js +368 -0
  126. package/dist/chunk-N7NGXLLM.js.map +7 -0
  127. package/dist/chunk-NEW2Q7FF.js +101 -0
  128. package/dist/chunk-NEW2Q7FF.js.map +7 -0
  129. package/dist/chunk-NQH6RQYV.js +250 -0
  130. package/dist/chunk-NQH6RQYV.js.map +7 -0
  131. package/dist/chunk-NSXLBNK4.js +238 -0
  132. package/dist/chunk-NSXLBNK4.js.map +7 -0
  133. package/dist/chunk-OIEY3JII.js +233 -0
  134. package/dist/chunk-OIEY3JII.js.map +7 -0
  135. package/dist/chunk-OKPKENUF.js +211 -0
  136. package/dist/chunk-OKPKENUF.js.map +7 -0
  137. package/dist/chunk-OY4ZZY7W.js +218 -0
  138. package/dist/chunk-OY4ZZY7W.js.map +7 -0
  139. package/dist/chunk-QQNGYZLJ.js +173 -0
  140. package/dist/chunk-QQNGYZLJ.js.map +7 -0
  141. package/dist/chunk-RE5FCGM4.js +233 -0
  142. package/dist/chunk-RE5FCGM4.js.map +7 -0
  143. package/dist/chunk-RTUIJYIL.js +368 -0
  144. package/dist/chunk-RTUIJYIL.js.map +7 -0
  145. package/dist/chunk-RVP4DE3X.js +368 -0
  146. package/dist/chunk-RVP4DE3X.js.map +7 -0
  147. package/dist/chunk-RZNHWRZX.js +175 -0
  148. package/dist/chunk-RZNHWRZX.js.map +7 -0
  149. package/dist/chunk-SI4KACA7.js +368 -0
  150. package/dist/chunk-SI4KACA7.js.map +7 -0
  151. package/dist/chunk-SIN26ESQ.js +392 -0
  152. package/dist/chunk-SIN26ESQ.js.map +7 -0
  153. package/dist/chunk-SXLM67S4.js +185 -0
  154. package/dist/chunk-SXLM67S4.js.map +7 -0
  155. package/dist/chunk-SZDSSMHM.js +218 -0
  156. package/dist/chunk-SZDSSMHM.js.map +7 -0
  157. package/dist/chunk-TIVNHKKC.js +418 -0
  158. package/dist/chunk-TIVNHKKC.js.map +7 -0
  159. package/dist/chunk-TXJNAXHT.js +418 -0
  160. package/dist/chunk-TXJNAXHT.js.map +7 -0
  161. package/dist/chunk-U2CRYG2Y.js +368 -0
  162. package/dist/chunk-U2CRYG2Y.js.map +7 -0
  163. package/dist/chunk-UAZ7ATZ5.js +770 -0
  164. package/dist/chunk-UAZ7ATZ5.js.map +7 -0
  165. package/dist/chunk-UFGJPRGL.js +104 -0
  166. package/dist/chunk-UFGJPRGL.js.map +7 -0
  167. package/dist/chunk-UI7G5S4O.js +211 -0
  168. package/dist/chunk-UI7G5S4O.js.map +7 -0
  169. package/dist/{chunk-MZMRYCS6.js → chunk-WQ7OXFOF.js} +2 -2
  170. package/dist/chunk-WVWSLJ4A.js +160 -0
  171. package/dist/chunk-WVWSLJ4A.js.map +7 -0
  172. package/dist/chunk-X2FGXM6T.js +657 -0
  173. package/dist/chunk-X2FGXM6T.js.map +7 -0
  174. package/dist/chunk-XJ4X6OZN.js +175 -0
  175. package/dist/chunk-XJ4X6OZN.js.map +7 -0
  176. package/dist/chunk-YCSUWIOE.js +218 -0
  177. package/dist/chunk-YCSUWIOE.js.map +7 -0
  178. package/dist/chunk-YG7YEPYG.js +238 -0
  179. package/dist/chunk-YG7YEPYG.js.map +7 -0
  180. package/dist/chunk-YMUYQTBG.js +170 -0
  181. package/dist/chunk-YMUYQTBG.js.map +7 -0
  182. package/dist/chunk-YYRMCQGB.js +347 -0
  183. package/dist/chunk-YYRMCQGB.js.map +7 -0
  184. package/dist/chunk-YYU64C2K.js +233 -0
  185. package/dist/chunk-YYU64C2K.js.map +7 -0
  186. package/dist/{chunk-OS3ZND7O.js → chunk-ZSLV7QHA.js} +2 -2
  187. package/dist/chunk-ZYWHNLZW.js +200 -0
  188. package/dist/chunk-ZYWHNLZW.js.map +7 -0
  189. package/dist/slicc-ui.js +4868 -18113
  190. package/dist/slicc-ui.js.map +4 -4
  191. package/dist/types/app/app.d.ts +0 -2
  192. package/dist/types/components/code-theme.d.ts +12 -0
  193. package/dist/types/components/code-view.d.ts +3 -2
  194. package/dist/types/ui.d.ts +0 -2
  195. package/package.json +23 -33
  196. package/dist/chunk-442GNVWR.js.map +0 -7
  197. package/dist/chunk-5G3X76IR.js +0 -8
  198. package/dist/chunk-64K5VONJ.js +0 -11
  199. package/dist/chunk-64K5VONJ.js.map +0 -7
  200. package/dist/chunk-6T3O5K6R.js +0 -8
  201. package/dist/chunk-BHAGWMDD.js +0 -8
  202. package/dist/chunk-BHAGWMDD.js.map +0 -7
  203. package/dist/chunk-CGS66GRP.js +0 -11
  204. package/dist/chunk-CGS66GRP.js.map +0 -7
  205. package/dist/chunk-CONYKGKV.js +0 -11
  206. package/dist/chunk-CONYKGKV.js.map +0 -7
  207. package/dist/chunk-CU7BC2RI.js +0 -11
  208. package/dist/chunk-CU7BC2RI.js.map +0 -7
  209. package/dist/chunk-FXM4K5WL.js +0 -19
  210. package/dist/chunk-FXM4K5WL.js.map +0 -7
  211. package/dist/chunk-I4OYHPAU.js +0 -11
  212. package/dist/chunk-I4OYHPAU.js.map +0 -7
  213. package/dist/chunk-KMP5HO3E.js +0 -11
  214. package/dist/chunk-KMP5HO3E.js.map +0 -7
  215. package/dist/chunk-KWPU2PY3.js +0 -14
  216. package/dist/chunk-KWPU2PY3.js.map +0 -7
  217. package/dist/chunk-LBXW6XNL.js +0 -18
  218. package/dist/chunk-LBXW6XNL.js.map +0 -7
  219. package/dist/chunk-LII3WY6Y.js +0 -11
  220. package/dist/chunk-LII3WY6Y.js.map +0 -7
  221. package/dist/chunk-LY7WVBCB.js +0 -10
  222. package/dist/chunk-LY7WVBCB.js.map +0 -7
  223. package/dist/chunk-NLDFGCIL.js +0 -11
  224. package/dist/chunk-NLDFGCIL.js.map +0 -7
  225. package/dist/chunk-S5EGO4NA.js +0 -11
  226. package/dist/chunk-S5EGO4NA.js.map +0 -7
  227. package/dist/chunk-TAZBKRHT.js +0 -10
  228. package/dist/chunk-TAZBKRHT.js.map +0 -7
  229. package/dist/chunk-UCIBH53C.js +0 -11
  230. package/dist/chunk-UCIBH53C.js.map +0 -7
  231. package/dist/chunk-XZM23TK4.js +0 -11
  232. package/dist/chunk-XZM23TK4.js.map +0 -7
  233. package/dist/chunk-YX6SI5VA.js +0 -11
  234. package/dist/chunk-YX6SI5VA.js.map +0 -7
  235. package/dist/types/app/grammars.d.ts +0 -6
  236. /package/dist/{chunk-D2HYQOCH.js.map → chunk-2GER7OHY.js.map} +0 -0
  237. /package/dist/{chunk-JPIG5BAD.js.map → chunk-2JLDRHGH.js.map} +0 -0
  238. /package/dist/{chunk-GHS6XYSQ.js.map → chunk-6FZ7EIP5.js.map} +0 -0
  239. /package/dist/{chunk-22NCU4NL.js.map → chunk-AL43JFHF.js.map} +0 -0
  240. /package/dist/{chunk-44HPUTOU.js.map → chunk-CEAD4W2I.js.map} +0 -0
  241. /package/dist/{chunk-5G3X76IR.js.map → chunk-E6FGQYBA.js.map} +0 -0
  242. /package/dist/{chunk-Y7O6BIKA.js.map → chunk-EAVYCN2X.js.map} +0 -0
  243. /package/dist/{chunk-6T3O5K6R.js.map → chunk-GFOHPOWP.js.map} +0 -0
  244. /package/dist/{chunk-LVH4CKV3.js.map → chunk-LSXQD3LS.js.map} +0 -0
  245. /package/dist/{chunk-MZMRYCS6.js.map → chunk-WQ7OXFOF.js.map} +0 -0
  246. /package/dist/{chunk-OS3ZND7O.js.map → chunk-ZSLV7QHA.js.map} +0 -0
@@ -0,0 +1,3239 @@
1
+ import {
2
+ unwrapDefault
3
+ } from "./chunk-NEW2Q7FF.js";
4
+ import {
5
+ __export
6
+ } from "./chunk-AXQFWXYZ.js";
7
+
8
+ // node_modules/@pierre/diffs/dist/utils/isWorkerContext.js
9
+ function isWorkerContext() {
10
+ return typeof WorkerGlobalScope !== "undefined" && typeof self !== "undefined" && self instanceof WorkerGlobalScope;
11
+ }
12
+
13
+ // node_modules/@pierre/diffs/dist/highlighter/themes/createCachedLoader.js
14
+ function createCachedLoader(loader) {
15
+ let cached;
16
+ return () => cached ??= loader().then((loaded) => {
17
+ cached = loaded;
18
+ return loaded;
19
+ }, (error) => {
20
+ cached = void 0;
21
+ throw error;
22
+ });
23
+ }
24
+
25
+ // node_modules/@pierre/theming/dist/modules/createThemeResolver.js
26
+ var DuplicateThemeError = class extends Error {
27
+ constructor(name) {
28
+ super(`Theme "${name}" is already registered`);
29
+ this.name = "DuplicateThemeError";
30
+ }
31
+ };
32
+ var UnregisteredThemeError = class extends Error {
33
+ constructor(name) {
34
+ super(`No loader registered for theme "${name}"`);
35
+ this.name = "UnregisteredThemeError";
36
+ }
37
+ };
38
+ var UnresolvedThemeError = class extends Error {
39
+ constructor(name) {
40
+ super(`Theme "${name}" has not been resolved`);
41
+ this.name = "UnresolvedThemeError";
42
+ }
43
+ };
44
+ function createThemeResolver(options = {}) {
45
+ const loaders = /* @__PURE__ */ new Map();
46
+ const resolved = /* @__PURE__ */ new Map();
47
+ const inflight = /* @__PURE__ */ new Map();
48
+ let cacheGeneration = 0;
49
+ function registerTheme(name, loader) {
50
+ if (loaders.has(name)) throw new DuplicateThemeError(name);
51
+ loaders.set(name, loader);
52
+ }
53
+ function registerThemeIfAbsent(name, loader) {
54
+ if (loaders.has(name)) return false;
55
+ loaders.set(name, loader);
56
+ return true;
57
+ }
58
+ function hasRegisteredTheme(name) {
59
+ return loaders.has(name);
60
+ }
61
+ function resolveTheme(name) {
62
+ const cached = resolved.get(name);
63
+ if (cached !== void 0) return Promise.resolve(cached);
64
+ const existing = inflight.get(name);
65
+ if (existing !== void 0) return existing;
66
+ const loader = loaders.get(name);
67
+ if (loader === void 0 && options.fallbackLoader === void 0) return Promise.reject(new UnregisteredThemeError(name));
68
+ const generation = cacheGeneration;
69
+ const promise = Promise.resolve().then(() => loader !== void 0 ? loader() : options.fallbackLoader?.(name)).then(async (result) => {
70
+ if (result === void 0) throw new UnregisteredThemeError(name);
71
+ const loaded = unwrapDefault(result);
72
+ const theme = options.normalizeTheme === void 0 ? loaded : await options.normalizeTheme(loaded, name);
73
+ if (generation === cacheGeneration) resolved.set(name, theme);
74
+ if (inflight.get(name) === promise) inflight.delete(name);
75
+ return theme;
76
+ }).catch((err) => {
77
+ if (inflight.get(name) === promise) inflight.delete(name);
78
+ throw err;
79
+ });
80
+ inflight.set(name, promise);
81
+ return promise;
82
+ }
83
+ function resolveThemes(names) {
84
+ return Promise.all(names.map((name) => resolveTheme(name)));
85
+ }
86
+ function seedResolvedTheme(name, theme) {
87
+ resolved.set(name, theme);
88
+ }
89
+ function seedResolvedThemes(entries) {
90
+ for (const [name, theme] of entries) seedResolvedTheme(name, theme);
91
+ }
92
+ function getResolvedTheme(name) {
93
+ return resolved.get(name);
94
+ }
95
+ function getResolvedThemes(names) {
96
+ const themes = [];
97
+ for (const name of names) {
98
+ const theme = resolved.get(name);
99
+ if (theme === void 0) throw new UnresolvedThemeError(name);
100
+ themes.push(theme);
101
+ }
102
+ return themes;
103
+ }
104
+ function hasResolvedTheme(name) {
105
+ return resolved.has(name);
106
+ }
107
+ function hasResolvedThemes(names) {
108
+ for (const name of names) if (!resolved.has(name)) return false;
109
+ return true;
110
+ }
111
+ function getResolvedOrResolveTheme(name) {
112
+ const cached = resolved.get(name);
113
+ if (cached !== void 0) return cached;
114
+ return resolveTheme(name);
115
+ }
116
+ function clearResolvedThemes() {
117
+ cacheGeneration++;
118
+ resolved.clear();
119
+ inflight.clear();
120
+ }
121
+ return {
122
+ clearResolvedThemes,
123
+ getResolvedOrResolveTheme,
124
+ getResolvedTheme,
125
+ getResolvedThemes,
126
+ hasRegisteredTheme,
127
+ hasResolvedTheme,
128
+ hasResolvedThemes,
129
+ registerTheme,
130
+ registerThemeIfAbsent,
131
+ resolveTheme,
132
+ resolveThemes,
133
+ seedResolvedTheme,
134
+ seedResolvedThemes
135
+ };
136
+ }
137
+
138
+ // node_modules/@pierre/diffs/dist/highlighter/themes/themeResolver.js
139
+ var customThemes = /* @__PURE__ */ new Map();
140
+ var resolvers = /* @__PURE__ */ new Map();
141
+ var loadHighlightsThemeCatalog = createCachedLoader(() => import("./chunk-4LNENAB3.js"));
142
+ var loadPierreThemeCatalog = createCachedLoader(() => import("./chunk-K7CQ2PRH.js"));
143
+ var loadShikiCore = createCachedLoader(() => import("./chunk-E6FGQYBA.js"));
144
+ var ZED_COLOR_ALIASES = [
145
+ ["editor.lineHighlightBackground", "editor.active_line.background"],
146
+ ["editor.selectionBackground", "element.selected"],
147
+ ["editor.findMatchBackground", "search.match_background"],
148
+ ["editor.findMatchHighlightBackground", "search.match_background"],
149
+ ["editorBracketMatch.background", "editor.document_highlight.bracket_background"],
150
+ ["editorError.foreground", "error"],
151
+ ["editorWarning.foreground", "warning"],
152
+ ["editorInfo.foreground", "info"],
153
+ ["editorHint.foreground", "hint"],
154
+ [
155
+ "gitDecoration.addedResourceForeground",
156
+ "created",
157
+ "terminal.ansi.green"
158
+ ],
159
+ [
160
+ "gitDecoration.deletedResourceForeground",
161
+ "deleted",
162
+ "terminal.ansi.red"
163
+ ],
164
+ [
165
+ "gitDecoration.modifiedResourceForeground",
166
+ "modified",
167
+ "terminal.ansi.blue"
168
+ ]
169
+ ];
170
+ function createHighlightsTheme(name, raw2) {
171
+ const theme = "themes" in raw2 ? raw2.themes[0] : raw2;
172
+ if (theme == null) throw new Error(`Theme "${name}" is an empty Zed theme family.`);
173
+ const zed = {
174
+ ...theme,
175
+ name
176
+ };
177
+ const colors = {};
178
+ for (const [key2, value] of Object.entries(zed.style)) if (typeof value === "string") colors[key2] = value;
179
+ const player = zed.style.players?.[0];
180
+ if (player?.cursor != null) colors["editorCursor.foreground"] ??= player.cursor;
181
+ if (player?.selection != null) colors["editor.selectionBackground"] ??= player.selection;
182
+ for (const [target, ...sources] of ZED_COLOR_ALIASES) {
183
+ if (colors[target] != null) continue;
184
+ const source = sources.find((key2) => colors[key2] != null);
185
+ if (source != null) colors[target] = colors[source];
186
+ }
187
+ if (zed.cssVariables === true) {
188
+ colors["editor.foreground"] = "var(--hls-foreground)";
189
+ colors["editor.background"] = "var(--hls-background)";
190
+ } else if (typeof zed.cssVariables === "object") {
191
+ colors["editor.foreground"] ??= colors.text ?? colors.foreground ?? "foreground";
192
+ colors["editor.background"] ??= colors.background ?? "background";
193
+ const { prefix = "--hls-", defaults } = zed.cssVariables;
194
+ for (const [key2, value] of Object.entries(colors)) {
195
+ const fallback = defaults?.[value];
196
+ colors[key2] = `var(${prefix}${value}${fallback ? `, ${fallback}` : ""})`;
197
+ }
198
+ }
199
+ const type = zed.appearance === "light" ? "light" : "dark";
200
+ return {
201
+ name,
202
+ type,
203
+ colors,
204
+ zed,
205
+ fg: colors["editor.foreground"] ?? colors.text ?? colors.foreground ?? (type === "light" ? "#333333" : "#bbbbbb"),
206
+ bg: colors["editor.background"] ?? colors.background ?? (type === "light" ? "#ffffff" : "#1e1e1e")
207
+ };
208
+ }
209
+ function createDiffsThemeResolver(backend) {
210
+ let resolver = resolvers.get(backend);
211
+ if (resolver != null) return resolver;
212
+ resolver = createThemeResolver({
213
+ fallbackLoader: async (name) => {
214
+ if (typeof __DIFFS_WORKER__ !== "undefined" ? __DIFFS_WORKER__ : isWorkerContext()) throw new Error(`Theme "${name}" cannot be resolved from a worker context. Themes must be pre-resolved on the main thread and passed to the worker via the resolvedThemes parameter.`);
215
+ const custom = customThemes.get(name);
216
+ if (backend === "highlights") {
217
+ const loader = custom?.zed ?? custom?.diffs;
218
+ if (loader != null) {
219
+ const loaded = await loader();
220
+ const theme = "default" in loaded ? loaded.default : loaded;
221
+ if ("zed" in theme && theme.zed != null) return theme;
222
+ if ("style" in theme || "themes" in theme) return createHighlightsTheme(name, theme);
223
+ throw new Error(`Theme "${name}" is a TextMate theme; register a Zed theme with registerCustomTheme(name, loader, 'zed') for Highlights.`);
224
+ }
225
+ const catalog = loadHighlightsThemeCatalog();
226
+ const { themes } = catalog instanceof Promise ? await catalog : catalog;
227
+ const bundledLoader = themes[name];
228
+ if (bundledLoader != null) return createHighlightsTheme(name, (await bundledLoader()).default);
229
+ if (custom?.textmate != null) throw new Error(`Theme "${name}" is only registered for TextMate; use registerCustomTheme(name, loader, 'zed') for Highlights.`);
230
+ } else {
231
+ const loader = custom?.textmate ?? custom?.diffs;
232
+ let loaded;
233
+ if (loader != null) {
234
+ const result = await loader();
235
+ loaded = "default" in result ? result.default : result;
236
+ } else {
237
+ const catalog = loadPierreThemeCatalog();
238
+ const { themes } = catalog instanceof Promise ? await catalog : catalog;
239
+ const descriptor = themes.getTheme(name);
240
+ if (descriptor == null && custom?.zed != null) throw new Error(`Theme "${name}" is only registered for Zed; use registerCustomTheme(name, loader, 'textmate') for Shiki.`);
241
+ if (descriptor == null) throw new Error(`No valid theme loader registered for "${name}"`);
242
+ const result = await descriptor.load();
243
+ loaded = "default" in result ? result.default : result;
244
+ }
245
+ if ("style" in loaded || "themes" in loaded) throw new Error(`Theme "${name}" is a Zed theme; use preferredHighlighter: 'highlights' or register a TextMate theme for Shiki.`);
246
+ const core2 = loadShikiCore();
247
+ const { normalizeTheme, createCssVariablesTheme } = core2 instanceof Promise ? await core2 : core2;
248
+ if ("cssVariables" in loaded && loaded.cssVariables != null) return {
249
+ ...loaded,
250
+ textmate: normalizeTheme(createCssVariablesTheme(loaded.cssVariables))
251
+ };
252
+ if ("textmate" in loaded && loaded.textmate != null) return {
253
+ ...loaded,
254
+ textmate: normalizeTheme(loaded.textmate)
255
+ };
256
+ const textmate = normalizeTheme(loaded);
257
+ return {
258
+ name: textmate.name,
259
+ type: textmate.type,
260
+ fg: textmate.fg,
261
+ bg: textmate.bg,
262
+ colors: textmate.colors,
263
+ textmate
264
+ };
265
+ }
266
+ throw new Error(`No valid theme loader registered for "${name}"`);
267
+ },
268
+ normalizeTheme: (theme, name) => {
269
+ if (theme.name !== name) throw new Error(`resolvedTheme: themeName: ${name} does not match theme.name: ${theme.name}`);
270
+ return theme;
271
+ }
272
+ });
273
+ resolvers.set(backend, resolver);
274
+ return resolver;
275
+ }
276
+
277
+ // node_modules/@pierre/diffs/dist/constants.js
278
+ var DIFFS_TAG_NAME = "diffs-container";
279
+ var DIFFS_DEVELOPMENT_BUILD = (() => {
280
+ try {
281
+ return true;
282
+ } catch {
283
+ return false;
284
+ }
285
+ })();
286
+ var GIT_DIFF_FILE_BREAK_REGEX = /(?=^diff --git)/gm;
287
+ var SPLIT_WITH_NEWLINES = /(?<=\n)/;
288
+ var FILENAME_HEADER_REGEX = /^(---|\+\+\+)\s+([^\t\r\n]+)/;
289
+ var INDEX_LINE_METADATA = /^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i;
290
+ var HEADER_PREFIX_SLOT_ID = "header-prefix";
291
+ var HEADER_FILENAME_SUFFIX_SLOT_ID = "header-filename-suffix";
292
+ var HEADER_METADATA_SLOT_ID = "header-metadata";
293
+ var CUSTOM_HEADER_SLOT_ID = "header-custom";
294
+ var DEFAULT_THEMES = {
295
+ dark: "pierre-dark",
296
+ light: "pierre-light"
297
+ };
298
+ var THEME_CSS_ATTRIBUTE = "data-theme-css";
299
+ var UNSAFE_CSS_ATTRIBUTE = "data-unsafe-css";
300
+ var DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE = "data-diffs-scrollbar-measure";
301
+ var DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY = "--diffs-scrollbar-gutter-measured";
302
+ var DEFAULT_TOKENIZE_MAX_LENGTH = 1e5;
303
+ var DEFAULT_VIRTUAL_FILE_METRICS = {
304
+ hunkLineCount: 50,
305
+ lineHeight: 20,
306
+ diffHeaderHeight: 44,
307
+ spacing: 8
308
+ };
309
+ var DEFAULT_CODE_VIEW_FILE_METRICS = {
310
+ ...DEFAULT_VIRTUAL_FILE_METRICS,
311
+ hunkLineCount: 1
312
+ };
313
+ var DEFAULT_EXPANDED_REGION = Object.freeze({
314
+ fromStart: 0,
315
+ fromEnd: 0
316
+ });
317
+ var DEFAULT_RENDER_RANGE = {
318
+ startingLine: 0,
319
+ totalLines: Infinity,
320
+ bufferBefore: 0,
321
+ bufferAfter: 0
322
+ };
323
+ var EMPTY_LINE_ANNOTATIONS = Object.freeze([]);
324
+ var EMPTY_RENDER_RANGE = {
325
+ startingLine: 0,
326
+ totalLines: 0,
327
+ bufferBefore: 0,
328
+ bufferAfter: 0
329
+ };
330
+
331
+ // node_modules/@pierre/diffs/dist/highlighter/highlighterType.js
332
+ var activeType;
333
+ var holds = 0;
334
+ var HighlighterDisposedError = class extends Error {
335
+ constructor() {
336
+ super("Highlighter is disposed");
337
+ this.name = "HighlighterDisposedError";
338
+ }
339
+ };
340
+ function getHighlighterType() {
341
+ return activeType;
342
+ }
343
+ function resolveHighlighterType(type) {
344
+ return type ?? activeType ?? "shiki-js";
345
+ }
346
+ function assertHighlighterType(type) {
347
+ if (activeType != null && activeType !== type) throw new Error(`Cannot load the "${type}" highlighter while "${activeType}" is in use. Only one highlighter type can be active at a time; dispose every "${activeType}" instance (disposeHighlighter() disposes the shared one) before switching.`);
348
+ }
349
+ function acquireHighlighterType(type) {
350
+ assertHighlighterType(type);
351
+ activeType = type;
352
+ holds++;
353
+ }
354
+ function releaseHighlighterType() {
355
+ holds--;
356
+ if (holds === 0) activeType = void 0;
357
+ }
358
+
359
+ // node_modules/html-void-elements/index.js
360
+ var htmlVoidElements = [
361
+ "area",
362
+ "base",
363
+ "basefont",
364
+ "bgsound",
365
+ "br",
366
+ "col",
367
+ "command",
368
+ "embed",
369
+ "frame",
370
+ "hr",
371
+ "image",
372
+ "img",
373
+ "input",
374
+ "keygen",
375
+ "link",
376
+ "meta",
377
+ "param",
378
+ "source",
379
+ "track",
380
+ "wbr"
381
+ ];
382
+
383
+ // node_modules/property-information/lib/util/schema.js
384
+ var Schema = class {
385
+ /**
386
+ * @param {SchemaType['property']} property
387
+ * Property.
388
+ * @param {SchemaType['normal']} normal
389
+ * Normal.
390
+ * @param {Space | undefined} [space]
391
+ * Space.
392
+ * @returns
393
+ * Schema.
394
+ */
395
+ constructor(property, normal, space) {
396
+ this.normal = normal;
397
+ this.property = property;
398
+ if (space) {
399
+ this.space = space;
400
+ }
401
+ }
402
+ };
403
+ Schema.prototype.normal = {};
404
+ Schema.prototype.property = {};
405
+ Schema.prototype.space = void 0;
406
+
407
+ // node_modules/property-information/lib/util/merge.js
408
+ function merge(definitions, space) {
409
+ const property = {};
410
+ const normal = {};
411
+ for (const definition of definitions) {
412
+ Object.assign(property, definition.property);
413
+ Object.assign(normal, definition.normal);
414
+ }
415
+ return new Schema(property, normal, space);
416
+ }
417
+
418
+ // node_modules/property-information/lib/normalize.js
419
+ function normalize(value) {
420
+ return value.toLowerCase();
421
+ }
422
+
423
+ // node_modules/property-information/lib/util/info.js
424
+ var Info = class {
425
+ /**
426
+ * @param {string} property
427
+ * Property.
428
+ * @param {string} attribute
429
+ * Attribute.
430
+ * @returns
431
+ * Info.
432
+ */
433
+ constructor(property, attribute) {
434
+ this.attribute = attribute;
435
+ this.property = property;
436
+ }
437
+ };
438
+ Info.prototype.attribute = "";
439
+ Info.prototype.booleanish = false;
440
+ Info.prototype.boolean = false;
441
+ Info.prototype.commaOrSpaceSeparated = false;
442
+ Info.prototype.commaSeparated = false;
443
+ Info.prototype.defined = false;
444
+ Info.prototype.mustUseProperty = false;
445
+ Info.prototype.number = false;
446
+ Info.prototype.overloadedBoolean = false;
447
+ Info.prototype.property = "";
448
+ Info.prototype.spaceSeparated = false;
449
+ Info.prototype.space = void 0;
450
+
451
+ // node_modules/property-information/lib/util/types.js
452
+ var types_exports = {};
453
+ __export(types_exports, {
454
+ boolean: () => boolean,
455
+ booleanish: () => booleanish,
456
+ commaOrSpaceSeparated: () => commaOrSpaceSeparated,
457
+ commaSeparated: () => commaSeparated,
458
+ number: () => number,
459
+ overloadedBoolean: () => overloadedBoolean,
460
+ spaceSeparated: () => spaceSeparated
461
+ });
462
+ var powers = 0;
463
+ var boolean = increment();
464
+ var booleanish = increment();
465
+ var overloadedBoolean = increment();
466
+ var number = increment();
467
+ var spaceSeparated = increment();
468
+ var commaSeparated = increment();
469
+ var commaOrSpaceSeparated = increment();
470
+ function increment() {
471
+ return 2 ** ++powers;
472
+ }
473
+
474
+ // node_modules/property-information/lib/util/defined-info.js
475
+ var checks = (
476
+ /** @type {ReadonlyArray<keyof typeof types>} */
477
+ Object.keys(types_exports)
478
+ );
479
+ var DefinedInfo = class extends Info {
480
+ /**
481
+ * @constructor
482
+ * @param {string} property
483
+ * Property.
484
+ * @param {string} attribute
485
+ * Attribute.
486
+ * @param {number | null | undefined} [mask]
487
+ * Mask.
488
+ * @param {Space | undefined} [space]
489
+ * Space.
490
+ * @returns
491
+ * Info.
492
+ */
493
+ constructor(property, attribute, mask, space) {
494
+ let index = -1;
495
+ super(property, attribute);
496
+ mark(this, "space", space);
497
+ if (typeof mask === "number") {
498
+ while (++index < checks.length) {
499
+ const check = checks[index];
500
+ mark(this, checks[index], (mask & types_exports[check]) === types_exports[check]);
501
+ }
502
+ }
503
+ }
504
+ };
505
+ DefinedInfo.prototype.defined = true;
506
+ function mark(values, key2, value) {
507
+ if (value) {
508
+ values[key2] = value;
509
+ }
510
+ }
511
+
512
+ // node_modules/property-information/lib/util/create.js
513
+ function create(definition) {
514
+ const properties = {};
515
+ const normals = {};
516
+ for (const [property, value] of Object.entries(definition.properties)) {
517
+ const info = new DefinedInfo(
518
+ property,
519
+ definition.transform(definition.attributes || {}, property),
520
+ value,
521
+ definition.space
522
+ );
523
+ if (definition.mustUseProperty && definition.mustUseProperty.includes(property)) {
524
+ info.mustUseProperty = true;
525
+ }
526
+ properties[property] = info;
527
+ normals[normalize(property)] = property;
528
+ normals[normalize(info.attribute)] = property;
529
+ }
530
+ return new Schema(properties, normals, definition.space);
531
+ }
532
+
533
+ // node_modules/property-information/lib/aria.js
534
+ var aria = create({
535
+ properties: {
536
+ ariaActiveDescendant: null,
537
+ ariaAtomic: booleanish,
538
+ ariaAutoComplete: null,
539
+ ariaBusy: booleanish,
540
+ ariaChecked: booleanish,
541
+ ariaColCount: number,
542
+ ariaColIndex: number,
543
+ ariaColSpan: number,
544
+ ariaControls: spaceSeparated,
545
+ ariaCurrent: null,
546
+ ariaDescribedBy: spaceSeparated,
547
+ ariaDetails: null,
548
+ ariaDisabled: booleanish,
549
+ ariaDropEffect: spaceSeparated,
550
+ ariaErrorMessage: null,
551
+ ariaExpanded: booleanish,
552
+ ariaFlowTo: spaceSeparated,
553
+ ariaGrabbed: booleanish,
554
+ ariaHasPopup: null,
555
+ ariaHidden: booleanish,
556
+ ariaInvalid: null,
557
+ ariaKeyShortcuts: null,
558
+ ariaLabel: null,
559
+ ariaLabelledBy: spaceSeparated,
560
+ ariaLevel: number,
561
+ ariaLive: null,
562
+ ariaModal: booleanish,
563
+ ariaMultiLine: booleanish,
564
+ ariaMultiSelectable: booleanish,
565
+ ariaOrientation: null,
566
+ ariaOwns: spaceSeparated,
567
+ ariaPlaceholder: null,
568
+ ariaPosInSet: number,
569
+ ariaPressed: booleanish,
570
+ ariaReadOnly: booleanish,
571
+ ariaRelevant: null,
572
+ ariaRequired: booleanish,
573
+ ariaRoleDescription: spaceSeparated,
574
+ ariaRowCount: number,
575
+ ariaRowIndex: number,
576
+ ariaRowSpan: number,
577
+ ariaSelected: booleanish,
578
+ ariaSetSize: number,
579
+ ariaSort: null,
580
+ ariaValueMax: number,
581
+ ariaValueMin: number,
582
+ ariaValueNow: number,
583
+ ariaValueText: null,
584
+ role: null
585
+ },
586
+ transform(_, property) {
587
+ return property === "role" ? property : "aria-" + property.slice(4).toLowerCase();
588
+ }
589
+ });
590
+
591
+ // node_modules/property-information/lib/util/case-sensitive-transform.js
592
+ function caseSensitiveTransform(attributes, attribute) {
593
+ return attribute in attributes ? attributes[attribute] : attribute;
594
+ }
595
+
596
+ // node_modules/property-information/lib/util/case-insensitive-transform.js
597
+ function caseInsensitiveTransform(attributes, property) {
598
+ return caseSensitiveTransform(attributes, property.toLowerCase());
599
+ }
600
+
601
+ // node_modules/property-information/lib/html.js
602
+ var html = create({
603
+ attributes: {
604
+ acceptcharset: "accept-charset",
605
+ classname: "class",
606
+ htmlfor: "for",
607
+ httpequiv: "http-equiv"
608
+ },
609
+ mustUseProperty: ["checked", "multiple", "muted", "selected"],
610
+ properties: {
611
+ // Standard Properties.
612
+ abbr: null,
613
+ accept: commaSeparated,
614
+ acceptCharset: spaceSeparated,
615
+ accessKey: spaceSeparated,
616
+ action: null,
617
+ allow: null,
618
+ allowFullScreen: boolean,
619
+ allowPaymentRequest: boolean,
620
+ allowUserMedia: boolean,
621
+ alpha: boolean,
622
+ alt: null,
623
+ as: null,
624
+ async: boolean,
625
+ autoCapitalize: null,
626
+ autoComplete: spaceSeparated,
627
+ autoFocus: boolean,
628
+ autoPlay: boolean,
629
+ blocking: spaceSeparated,
630
+ capture: null,
631
+ charSet: null,
632
+ checked: boolean,
633
+ cite: null,
634
+ className: spaceSeparated,
635
+ closedBy: null,
636
+ colorSpace: null,
637
+ cols: number,
638
+ colSpan: number,
639
+ command: null,
640
+ commandFor: null,
641
+ content: null,
642
+ contentEditable: booleanish,
643
+ controls: boolean,
644
+ controlsList: spaceSeparated,
645
+ coords: number | commaSeparated,
646
+ crossOrigin: null,
647
+ data: null,
648
+ dateTime: null,
649
+ decoding: null,
650
+ default: boolean,
651
+ defer: boolean,
652
+ dir: null,
653
+ dirName: null,
654
+ disabled: boolean,
655
+ download: overloadedBoolean,
656
+ draggable: booleanish,
657
+ encType: null,
658
+ enterKeyHint: null,
659
+ fetchPriority: null,
660
+ form: null,
661
+ formAction: null,
662
+ formEncType: null,
663
+ formMethod: null,
664
+ formNoValidate: boolean,
665
+ formTarget: null,
666
+ headers: spaceSeparated,
667
+ height: number,
668
+ hidden: overloadedBoolean,
669
+ high: number,
670
+ href: null,
671
+ hrefLang: null,
672
+ htmlFor: spaceSeparated,
673
+ httpEquiv: spaceSeparated,
674
+ id: null,
675
+ imageSizes: null,
676
+ imageSrcSet: null,
677
+ inert: boolean,
678
+ inputMode: null,
679
+ integrity: null,
680
+ is: null,
681
+ isMap: boolean,
682
+ itemId: null,
683
+ itemProp: spaceSeparated,
684
+ itemRef: spaceSeparated,
685
+ itemScope: boolean,
686
+ itemType: spaceSeparated,
687
+ kind: null,
688
+ label: null,
689
+ lang: null,
690
+ language: null,
691
+ list: null,
692
+ loading: null,
693
+ loop: boolean,
694
+ low: number,
695
+ manifest: null,
696
+ max: null,
697
+ maxLength: number,
698
+ media: null,
699
+ method: null,
700
+ min: null,
701
+ minLength: number,
702
+ multiple: boolean,
703
+ muted: boolean,
704
+ name: null,
705
+ nonce: null,
706
+ noModule: boolean,
707
+ noValidate: boolean,
708
+ onAbort: null,
709
+ onAfterPrint: null,
710
+ onAuxClick: null,
711
+ onBeforeMatch: null,
712
+ onBeforePrint: null,
713
+ onBeforeToggle: null,
714
+ onBeforeUnload: null,
715
+ onBlur: null,
716
+ onCancel: null,
717
+ onCanPlay: null,
718
+ onCanPlayThrough: null,
719
+ onChange: null,
720
+ onClick: null,
721
+ onClose: null,
722
+ onContextLost: null,
723
+ onContextMenu: null,
724
+ onContextRestored: null,
725
+ onCopy: null,
726
+ onCueChange: null,
727
+ onCut: null,
728
+ onDblClick: null,
729
+ onDrag: null,
730
+ onDragEnd: null,
731
+ onDragEnter: null,
732
+ onDragExit: null,
733
+ onDragLeave: null,
734
+ onDragOver: null,
735
+ onDragStart: null,
736
+ onDrop: null,
737
+ onDurationChange: null,
738
+ onEmptied: null,
739
+ onEnded: null,
740
+ onError: null,
741
+ onFocus: null,
742
+ onFormData: null,
743
+ onHashChange: null,
744
+ onInput: null,
745
+ onInvalid: null,
746
+ onKeyDown: null,
747
+ onKeyPress: null,
748
+ onKeyUp: null,
749
+ onLanguageChange: null,
750
+ onLoad: null,
751
+ onLoadedData: null,
752
+ onLoadedMetadata: null,
753
+ onLoadEnd: null,
754
+ onLoadStart: null,
755
+ onMessage: null,
756
+ onMessageError: null,
757
+ onMouseDown: null,
758
+ onMouseEnter: null,
759
+ onMouseLeave: null,
760
+ onMouseMove: null,
761
+ onMouseOut: null,
762
+ onMouseOver: null,
763
+ onMouseUp: null,
764
+ onOffline: null,
765
+ onOnline: null,
766
+ onPageHide: null,
767
+ onPageShow: null,
768
+ onPaste: null,
769
+ onPause: null,
770
+ onPlay: null,
771
+ onPlaying: null,
772
+ onPopState: null,
773
+ onProgress: null,
774
+ onRateChange: null,
775
+ onRejectionHandled: null,
776
+ onReset: null,
777
+ onResize: null,
778
+ onScroll: null,
779
+ onScrollEnd: null,
780
+ onSecurityPolicyViolation: null,
781
+ onSeeked: null,
782
+ onSeeking: null,
783
+ onSelect: null,
784
+ onSlotChange: null,
785
+ onStalled: null,
786
+ onStorage: null,
787
+ onSubmit: null,
788
+ onSuspend: null,
789
+ onTimeUpdate: null,
790
+ onToggle: null,
791
+ onUnhandledRejection: null,
792
+ onUnload: null,
793
+ onVolumeChange: null,
794
+ onWaiting: null,
795
+ onWheel: null,
796
+ open: boolean,
797
+ optimum: number,
798
+ pattern: null,
799
+ ping: spaceSeparated,
800
+ placeholder: null,
801
+ playsInline: boolean,
802
+ popover: null,
803
+ popoverTarget: null,
804
+ popoverTargetAction: null,
805
+ poster: null,
806
+ preload: null,
807
+ readOnly: boolean,
808
+ referrerPolicy: null,
809
+ rel: spaceSeparated,
810
+ required: boolean,
811
+ reversed: boolean,
812
+ rows: number,
813
+ rowSpan: number,
814
+ sandbox: spaceSeparated,
815
+ scope: null,
816
+ scoped: boolean,
817
+ seamless: boolean,
818
+ selected: boolean,
819
+ shadowRootClonable: boolean,
820
+ shadowRootCustomElementRegistry: boolean,
821
+ shadowRootDelegatesFocus: boolean,
822
+ shadowRootMode: null,
823
+ shadowRootSerializable: boolean,
824
+ shape: null,
825
+ size: number,
826
+ sizes: null,
827
+ slot: null,
828
+ span: number,
829
+ spellCheck: booleanish,
830
+ src: null,
831
+ srcDoc: null,
832
+ srcLang: null,
833
+ srcSet: null,
834
+ start: number,
835
+ step: null,
836
+ style: null,
837
+ tabIndex: number,
838
+ target: null,
839
+ title: null,
840
+ translate: null,
841
+ type: null,
842
+ typeMustMatch: boolean,
843
+ useMap: null,
844
+ value: booleanish,
845
+ width: number,
846
+ wrap: null,
847
+ writingSuggestions: null,
848
+ // Legacy.
849
+ // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis
850
+ align: null,
851
+ // Several. Use CSS `text-align` instead,
852
+ aLink: null,
853
+ // `<body>`. Use CSS `a:active {color}` instead
854
+ archive: spaceSeparated,
855
+ // `<object>`. List of URIs to archives
856
+ axis: null,
857
+ // `<td>` and `<th>`. Use `scope` on `<th>`
858
+ background: null,
859
+ // `<body>`. Use CSS `background-image` instead
860
+ bgColor: null,
861
+ // `<body>` and table elements. Use CSS `background-color` instead
862
+ border: number,
863
+ // `<table>`. Use CSS `border-width` instead,
864
+ borderColor: null,
865
+ // `<table>`. Use CSS `border-color` instead,
866
+ bottomMargin: number,
867
+ // `<body>`
868
+ cellPadding: null,
869
+ // `<table>`
870
+ cellSpacing: null,
871
+ // `<table>`
872
+ char: null,
873
+ // Several table elements. When `align=char`, sets the character to align on
874
+ charOff: null,
875
+ // Several table elements. When `char`, offsets the alignment
876
+ classId: null,
877
+ // `<object>`
878
+ clear: null,
879
+ // `<br>`. Use CSS `clear` instead
880
+ code: null,
881
+ // `<object>`
882
+ codeBase: null,
883
+ // `<object>`
884
+ codeType: null,
885
+ // `<object>`
886
+ color: null,
887
+ // `<font>` and `<hr>`. Use CSS instead
888
+ compact: boolean,
889
+ // Lists. Use CSS to reduce space between items instead
890
+ declare: boolean,
891
+ // `<object>`
892
+ event: null,
893
+ // `<script>`
894
+ face: null,
895
+ // `<font>`. Use CSS instead
896
+ frame: null,
897
+ // `<table>`
898
+ frameBorder: null,
899
+ // `<iframe>`. Use CSS `border` instead
900
+ hSpace: number,
901
+ // `<img>` and `<object>`
902
+ leftMargin: number,
903
+ // `<body>`
904
+ link: null,
905
+ // `<body>`. Use CSS `a:link {color: *}` instead
906
+ longDesc: null,
907
+ // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
908
+ lowSrc: null,
909
+ // `<img>`. Use a `<picture>`
910
+ marginHeight: number,
911
+ // `<body>`
912
+ marginWidth: number,
913
+ // `<body>`
914
+ noResize: boolean,
915
+ // `<frame>`
916
+ noHref: boolean,
917
+ // `<area>`. Use no href instead of an explicit `nohref`
918
+ noShade: boolean,
919
+ // `<hr>`. Use background-color and height instead of borders
920
+ noWrap: boolean,
921
+ // `<td>` and `<th>`
922
+ object: null,
923
+ // `<applet>`
924
+ profile: null,
925
+ // `<head>`
926
+ prompt: null,
927
+ // `<isindex>`
928
+ rev: null,
929
+ // `<link>`
930
+ rightMargin: number,
931
+ // `<body>`
932
+ rules: null,
933
+ // `<table>`
934
+ scheme: null,
935
+ // `<meta>`
936
+ scrolling: booleanish,
937
+ // `<frame>`. Use overflow in the child context
938
+ standby: null,
939
+ // `<object>`
940
+ summary: null,
941
+ // `<table>`
942
+ text: null,
943
+ // `<body>`. Use CSS `color` instead
944
+ topMargin: number,
945
+ // `<body>`
946
+ valueType: null,
947
+ // `<param>`
948
+ version: null,
949
+ // `<html>`. Use a doctype.
950
+ vAlign: null,
951
+ // Several. Use CSS `vertical-align` instead
952
+ vLink: null,
953
+ // `<body>`. Use CSS `a:visited {color}` instead
954
+ vSpace: number,
955
+ // `<img>` and `<object>`
956
+ // Non-standard Properties.
957
+ allowTransparency: null,
958
+ autoCorrect: null,
959
+ autoSave: null,
960
+ credentialless: boolean,
961
+ disablePictureInPicture: boolean,
962
+ disableRemotePlayback: boolean,
963
+ exportParts: commaSeparated,
964
+ part: spaceSeparated,
965
+ prefix: null,
966
+ property: null,
967
+ results: number,
968
+ security: null,
969
+ unselectable: null
970
+ },
971
+ space: "html",
972
+ transform: caseInsensitiveTransform
973
+ });
974
+
975
+ // node_modules/property-information/lib/svg.js
976
+ var svg = create({
977
+ attributes: {
978
+ accentHeight: "accent-height",
979
+ alignmentBaseline: "alignment-baseline",
980
+ arabicForm: "arabic-form",
981
+ baselineShift: "baseline-shift",
982
+ capHeight: "cap-height",
983
+ className: "class",
984
+ clipPath: "clip-path",
985
+ clipRule: "clip-rule",
986
+ colorInterpolation: "color-interpolation",
987
+ colorInterpolationFilters: "color-interpolation-filters",
988
+ colorProfile: "color-profile",
989
+ colorRendering: "color-rendering",
990
+ crossOrigin: "crossorigin",
991
+ dataType: "datatype",
992
+ dominantBaseline: "dominant-baseline",
993
+ enableBackground: "enable-background",
994
+ fillOpacity: "fill-opacity",
995
+ fillRule: "fill-rule",
996
+ floodColor: "flood-color",
997
+ floodOpacity: "flood-opacity",
998
+ fontFamily: "font-family",
999
+ fontSize: "font-size",
1000
+ fontSizeAdjust: "font-size-adjust",
1001
+ fontStretch: "font-stretch",
1002
+ fontStyle: "font-style",
1003
+ fontVariant: "font-variant",
1004
+ fontWeight: "font-weight",
1005
+ glyphName: "glyph-name",
1006
+ glyphOrientationHorizontal: "glyph-orientation-horizontal",
1007
+ glyphOrientationVertical: "glyph-orientation-vertical",
1008
+ hrefLang: "hreflang",
1009
+ horizAdvX: "horiz-adv-x",
1010
+ horizOriginX: "horiz-origin-x",
1011
+ horizOriginY: "horiz-origin-y",
1012
+ imageRendering: "image-rendering",
1013
+ letterSpacing: "letter-spacing",
1014
+ lightingColor: "lighting-color",
1015
+ markerEnd: "marker-end",
1016
+ markerMid: "marker-mid",
1017
+ markerStart: "marker-start",
1018
+ maskType: "mask-type",
1019
+ navDown: "nav-down",
1020
+ navDownLeft: "nav-down-left",
1021
+ navDownRight: "nav-down-right",
1022
+ navLeft: "nav-left",
1023
+ navNext: "nav-next",
1024
+ navPrev: "nav-prev",
1025
+ navRight: "nav-right",
1026
+ navUp: "nav-up",
1027
+ navUpLeft: "nav-up-left",
1028
+ navUpRight: "nav-up-right",
1029
+ onAbort: "onabort",
1030
+ onActivate: "onactivate",
1031
+ onAfterPrint: "onafterprint",
1032
+ onBeforePrint: "onbeforeprint",
1033
+ onBegin: "onbegin",
1034
+ onCancel: "oncancel",
1035
+ onCanPlay: "oncanplay",
1036
+ onCanPlayThrough: "oncanplaythrough",
1037
+ onChange: "onchange",
1038
+ onClick: "onclick",
1039
+ onClose: "onclose",
1040
+ onCopy: "oncopy",
1041
+ onCueChange: "oncuechange",
1042
+ onCut: "oncut",
1043
+ onDblClick: "ondblclick",
1044
+ onDrag: "ondrag",
1045
+ onDragEnd: "ondragend",
1046
+ onDragEnter: "ondragenter",
1047
+ onDragExit: "ondragexit",
1048
+ onDragLeave: "ondragleave",
1049
+ onDragOver: "ondragover",
1050
+ onDragStart: "ondragstart",
1051
+ onDrop: "ondrop",
1052
+ onDurationChange: "ondurationchange",
1053
+ onEmptied: "onemptied",
1054
+ onEnd: "onend",
1055
+ onEnded: "onended",
1056
+ onError: "onerror",
1057
+ onFocus: "onfocus",
1058
+ onFocusIn: "onfocusin",
1059
+ onFocusOut: "onfocusout",
1060
+ onHashChange: "onhashchange",
1061
+ onInput: "oninput",
1062
+ onInvalid: "oninvalid",
1063
+ onKeyDown: "onkeydown",
1064
+ onKeyPress: "onkeypress",
1065
+ onKeyUp: "onkeyup",
1066
+ onLoad: "onload",
1067
+ onLoadedData: "onloadeddata",
1068
+ onLoadedMetadata: "onloadedmetadata",
1069
+ onLoadStart: "onloadstart",
1070
+ onMessage: "onmessage",
1071
+ onMouseDown: "onmousedown",
1072
+ onMouseEnter: "onmouseenter",
1073
+ onMouseLeave: "onmouseleave",
1074
+ onMouseMove: "onmousemove",
1075
+ onMouseOut: "onmouseout",
1076
+ onMouseOver: "onmouseover",
1077
+ onMouseUp: "onmouseup",
1078
+ onMouseWheel: "onmousewheel",
1079
+ onOffline: "onoffline",
1080
+ onOnline: "ononline",
1081
+ onPageHide: "onpagehide",
1082
+ onPageShow: "onpageshow",
1083
+ onPaste: "onpaste",
1084
+ onPause: "onpause",
1085
+ onPlay: "onplay",
1086
+ onPlaying: "onplaying",
1087
+ onPopState: "onpopstate",
1088
+ onProgress: "onprogress",
1089
+ onRateChange: "onratechange",
1090
+ onRepeat: "onrepeat",
1091
+ onReset: "onreset",
1092
+ onResize: "onresize",
1093
+ onScroll: "onscroll",
1094
+ onSeeked: "onseeked",
1095
+ onSeeking: "onseeking",
1096
+ onSelect: "onselect",
1097
+ onShow: "onshow",
1098
+ onStalled: "onstalled",
1099
+ onStorage: "onstorage",
1100
+ onSubmit: "onsubmit",
1101
+ onSuspend: "onsuspend",
1102
+ onTimeUpdate: "ontimeupdate",
1103
+ onToggle: "ontoggle",
1104
+ onUnload: "onunload",
1105
+ onVolumeChange: "onvolumechange",
1106
+ onWaiting: "onwaiting",
1107
+ onZoom: "onzoom",
1108
+ overlinePosition: "overline-position",
1109
+ overlineThickness: "overline-thickness",
1110
+ paintOrder: "paint-order",
1111
+ panose1: "panose-1",
1112
+ pointerEvents: "pointer-events",
1113
+ referrerPolicy: "referrerpolicy",
1114
+ renderingIntent: "rendering-intent",
1115
+ shapeRendering: "shape-rendering",
1116
+ stopColor: "stop-color",
1117
+ stopOpacity: "stop-opacity",
1118
+ strikethroughPosition: "strikethrough-position",
1119
+ strikethroughThickness: "strikethrough-thickness",
1120
+ strokeDashArray: "stroke-dasharray",
1121
+ strokeDashOffset: "stroke-dashoffset",
1122
+ strokeLineCap: "stroke-linecap",
1123
+ strokeLineJoin: "stroke-linejoin",
1124
+ strokeMiterLimit: "stroke-miterlimit",
1125
+ strokeOpacity: "stroke-opacity",
1126
+ strokeWidth: "stroke-width",
1127
+ tabIndex: "tabindex",
1128
+ textAnchor: "text-anchor",
1129
+ textDecoration: "text-decoration",
1130
+ textRendering: "text-rendering",
1131
+ transformOrigin: "transform-origin",
1132
+ typeOf: "typeof",
1133
+ underlinePosition: "underline-position",
1134
+ underlineThickness: "underline-thickness",
1135
+ unicodeBidi: "unicode-bidi",
1136
+ unicodeRange: "unicode-range",
1137
+ unitsPerEm: "units-per-em",
1138
+ vAlphabetic: "v-alphabetic",
1139
+ vHanging: "v-hanging",
1140
+ vIdeographic: "v-ideographic",
1141
+ vMathematical: "v-mathematical",
1142
+ vectorEffect: "vector-effect",
1143
+ vertAdvY: "vert-adv-y",
1144
+ vertOriginX: "vert-origin-x",
1145
+ vertOriginY: "vert-origin-y",
1146
+ wordSpacing: "word-spacing",
1147
+ writingMode: "writing-mode",
1148
+ xHeight: "x-height",
1149
+ // These were camelcased in Tiny. Now lowercased in SVG 2
1150
+ playbackOrder: "playbackorder",
1151
+ timelineBegin: "timelinebegin"
1152
+ },
1153
+ properties: {
1154
+ about: commaOrSpaceSeparated,
1155
+ accentHeight: number,
1156
+ accumulate: null,
1157
+ additive: null,
1158
+ alignmentBaseline: null,
1159
+ alphabetic: number,
1160
+ amplitude: number,
1161
+ arabicForm: null,
1162
+ ascent: number,
1163
+ attributeName: null,
1164
+ attributeType: null,
1165
+ azimuth: number,
1166
+ bandwidth: null,
1167
+ baselineShift: null,
1168
+ baseFrequency: null,
1169
+ baseProfile: null,
1170
+ bbox: null,
1171
+ begin: null,
1172
+ bias: number,
1173
+ by: null,
1174
+ calcMode: null,
1175
+ capHeight: number,
1176
+ className: spaceSeparated,
1177
+ clip: null,
1178
+ clipPath: null,
1179
+ clipPathUnits: null,
1180
+ clipRule: null,
1181
+ color: null,
1182
+ colorInterpolation: null,
1183
+ colorInterpolationFilters: null,
1184
+ colorProfile: null,
1185
+ colorRendering: null,
1186
+ content: null,
1187
+ contentScriptType: null,
1188
+ contentStyleType: null,
1189
+ crossOrigin: null,
1190
+ cursor: null,
1191
+ cx: null,
1192
+ cy: null,
1193
+ d: null,
1194
+ dataType: null,
1195
+ defaultAction: null,
1196
+ descent: number,
1197
+ diffuseConstant: number,
1198
+ direction: null,
1199
+ display: null,
1200
+ dur: null,
1201
+ divisor: number,
1202
+ dominantBaseline: null,
1203
+ download: boolean,
1204
+ dx: null,
1205
+ dy: null,
1206
+ edgeMode: null,
1207
+ editable: null,
1208
+ elevation: number,
1209
+ enableBackground: null,
1210
+ end: null,
1211
+ event: null,
1212
+ exponent: number,
1213
+ externalResourcesRequired: null,
1214
+ fill: null,
1215
+ fillOpacity: number,
1216
+ fillRule: null,
1217
+ filter: null,
1218
+ filterRes: null,
1219
+ filterUnits: null,
1220
+ floodColor: null,
1221
+ floodOpacity: null,
1222
+ focusable: null,
1223
+ focusHighlight: null,
1224
+ fontFamily: null,
1225
+ fontSize: null,
1226
+ fontSizeAdjust: null,
1227
+ fontStretch: null,
1228
+ fontStyle: null,
1229
+ fontVariant: null,
1230
+ fontWeight: null,
1231
+ format: null,
1232
+ fr: null,
1233
+ from: null,
1234
+ fx: null,
1235
+ fy: null,
1236
+ g1: commaSeparated,
1237
+ g2: commaSeparated,
1238
+ glyphName: commaSeparated,
1239
+ glyphOrientationHorizontal: null,
1240
+ glyphOrientationVertical: null,
1241
+ glyphRef: null,
1242
+ gradientTransform: null,
1243
+ gradientUnits: null,
1244
+ handler: null,
1245
+ hanging: number,
1246
+ hatchContentUnits: null,
1247
+ hatchUnits: null,
1248
+ height: null,
1249
+ href: null,
1250
+ hrefLang: null,
1251
+ horizAdvX: number,
1252
+ horizOriginX: number,
1253
+ horizOriginY: number,
1254
+ id: null,
1255
+ ideographic: number,
1256
+ imageRendering: null,
1257
+ initialVisibility: null,
1258
+ in: null,
1259
+ in2: null,
1260
+ intercept: number,
1261
+ k: number,
1262
+ k1: number,
1263
+ k2: number,
1264
+ k3: number,
1265
+ k4: number,
1266
+ kernelMatrix: commaOrSpaceSeparated,
1267
+ kernelUnitLength: null,
1268
+ keyPoints: null,
1269
+ // SEMI_COLON_SEPARATED
1270
+ keySplines: null,
1271
+ // SEMI_COLON_SEPARATED
1272
+ keyTimes: null,
1273
+ // SEMI_COLON_SEPARATED
1274
+ kerning: null,
1275
+ lang: null,
1276
+ lengthAdjust: null,
1277
+ letterSpacing: null,
1278
+ lightingColor: null,
1279
+ limitingConeAngle: number,
1280
+ local: null,
1281
+ markerEnd: null,
1282
+ markerMid: null,
1283
+ markerStart: null,
1284
+ markerHeight: null,
1285
+ markerUnits: null,
1286
+ markerWidth: null,
1287
+ mask: null,
1288
+ maskContentUnits: null,
1289
+ maskType: null,
1290
+ maskUnits: null,
1291
+ mathematical: null,
1292
+ max: null,
1293
+ media: null,
1294
+ mediaCharacterEncoding: null,
1295
+ mediaContentEncodings: null,
1296
+ mediaSize: number,
1297
+ mediaTime: null,
1298
+ method: null,
1299
+ min: null,
1300
+ mode: null,
1301
+ name: null,
1302
+ navDown: null,
1303
+ navDownLeft: null,
1304
+ navDownRight: null,
1305
+ navLeft: null,
1306
+ navNext: null,
1307
+ navPrev: null,
1308
+ navRight: null,
1309
+ navUp: null,
1310
+ navUpLeft: null,
1311
+ navUpRight: null,
1312
+ numOctaves: null,
1313
+ observer: null,
1314
+ offset: null,
1315
+ onAbort: null,
1316
+ onActivate: null,
1317
+ onAfterPrint: null,
1318
+ onBeforePrint: null,
1319
+ onBegin: null,
1320
+ onCancel: null,
1321
+ onCanPlay: null,
1322
+ onCanPlayThrough: null,
1323
+ onChange: null,
1324
+ onClick: null,
1325
+ onClose: null,
1326
+ onCopy: null,
1327
+ onCueChange: null,
1328
+ onCut: null,
1329
+ onDblClick: null,
1330
+ onDrag: null,
1331
+ onDragEnd: null,
1332
+ onDragEnter: null,
1333
+ onDragExit: null,
1334
+ onDragLeave: null,
1335
+ onDragOver: null,
1336
+ onDragStart: null,
1337
+ onDrop: null,
1338
+ onDurationChange: null,
1339
+ onEmptied: null,
1340
+ onEnd: null,
1341
+ onEnded: null,
1342
+ onError: null,
1343
+ onFocus: null,
1344
+ onFocusIn: null,
1345
+ onFocusOut: null,
1346
+ onHashChange: null,
1347
+ onInput: null,
1348
+ onInvalid: null,
1349
+ onKeyDown: null,
1350
+ onKeyPress: null,
1351
+ onKeyUp: null,
1352
+ onLoad: null,
1353
+ onLoadedData: null,
1354
+ onLoadedMetadata: null,
1355
+ onLoadStart: null,
1356
+ onMessage: null,
1357
+ onMouseDown: null,
1358
+ onMouseEnter: null,
1359
+ onMouseLeave: null,
1360
+ onMouseMove: null,
1361
+ onMouseOut: null,
1362
+ onMouseOver: null,
1363
+ onMouseUp: null,
1364
+ onMouseWheel: null,
1365
+ onOffline: null,
1366
+ onOnline: null,
1367
+ onPageHide: null,
1368
+ onPageShow: null,
1369
+ onPaste: null,
1370
+ onPause: null,
1371
+ onPlay: null,
1372
+ onPlaying: null,
1373
+ onPopState: null,
1374
+ onProgress: null,
1375
+ onRateChange: null,
1376
+ onRepeat: null,
1377
+ onReset: null,
1378
+ onResize: null,
1379
+ onScroll: null,
1380
+ onSeeked: null,
1381
+ onSeeking: null,
1382
+ onSelect: null,
1383
+ onShow: null,
1384
+ onStalled: null,
1385
+ onStorage: null,
1386
+ onSubmit: null,
1387
+ onSuspend: null,
1388
+ onTimeUpdate: null,
1389
+ onToggle: null,
1390
+ onUnload: null,
1391
+ onVolumeChange: null,
1392
+ onWaiting: null,
1393
+ onZoom: null,
1394
+ opacity: null,
1395
+ operator: null,
1396
+ order: null,
1397
+ orient: null,
1398
+ orientation: null,
1399
+ origin: null,
1400
+ overflow: null,
1401
+ overlay: null,
1402
+ overlinePosition: number,
1403
+ overlineThickness: number,
1404
+ paintOrder: null,
1405
+ panose1: null,
1406
+ path: null,
1407
+ pathLength: number,
1408
+ patternContentUnits: null,
1409
+ patternTransform: null,
1410
+ patternUnits: null,
1411
+ phase: null,
1412
+ ping: spaceSeparated,
1413
+ pitch: null,
1414
+ playbackOrder: null,
1415
+ pointerEvents: null,
1416
+ points: null,
1417
+ pointsAtX: number,
1418
+ pointsAtY: number,
1419
+ pointsAtZ: number,
1420
+ preserveAlpha: null,
1421
+ preserveAspectRatio: null,
1422
+ primitiveUnits: null,
1423
+ propagate: null,
1424
+ property: commaOrSpaceSeparated,
1425
+ r: null,
1426
+ radius: null,
1427
+ referrerPolicy: null,
1428
+ refX: null,
1429
+ refY: null,
1430
+ rel: commaOrSpaceSeparated,
1431
+ rev: commaOrSpaceSeparated,
1432
+ renderingIntent: null,
1433
+ repeatCount: null,
1434
+ repeatDur: null,
1435
+ requiredExtensions: commaOrSpaceSeparated,
1436
+ requiredFeatures: commaOrSpaceSeparated,
1437
+ requiredFonts: commaOrSpaceSeparated,
1438
+ requiredFormats: commaOrSpaceSeparated,
1439
+ resource: null,
1440
+ restart: null,
1441
+ result: null,
1442
+ rotate: null,
1443
+ rx: null,
1444
+ ry: null,
1445
+ scale: null,
1446
+ seed: null,
1447
+ shapeRendering: null,
1448
+ side: null,
1449
+ slope: null,
1450
+ snapshotTime: null,
1451
+ specularConstant: number,
1452
+ specularExponent: number,
1453
+ spreadMethod: null,
1454
+ spacing: null,
1455
+ startOffset: null,
1456
+ stdDeviation: null,
1457
+ stemh: null,
1458
+ stemv: null,
1459
+ stitchTiles: null,
1460
+ stopColor: null,
1461
+ stopOpacity: null,
1462
+ strikethroughPosition: number,
1463
+ strikethroughThickness: number,
1464
+ string: null,
1465
+ stroke: null,
1466
+ strokeDashArray: commaOrSpaceSeparated,
1467
+ strokeDashOffset: null,
1468
+ strokeLineCap: null,
1469
+ strokeLineJoin: null,
1470
+ strokeMiterLimit: number,
1471
+ strokeOpacity: number,
1472
+ strokeWidth: null,
1473
+ style: null,
1474
+ surfaceScale: number,
1475
+ syncBehavior: null,
1476
+ syncBehaviorDefault: null,
1477
+ syncMaster: null,
1478
+ syncTolerance: null,
1479
+ syncToleranceDefault: null,
1480
+ systemLanguage: commaOrSpaceSeparated,
1481
+ tabIndex: number,
1482
+ tableValues: null,
1483
+ target: null,
1484
+ targetX: number,
1485
+ targetY: number,
1486
+ textAnchor: null,
1487
+ textDecoration: null,
1488
+ textRendering: null,
1489
+ textLength: null,
1490
+ timelineBegin: null,
1491
+ title: null,
1492
+ transformBehavior: null,
1493
+ type: null,
1494
+ typeOf: commaOrSpaceSeparated,
1495
+ to: null,
1496
+ transform: null,
1497
+ transformOrigin: null,
1498
+ u1: null,
1499
+ u2: null,
1500
+ underlinePosition: number,
1501
+ underlineThickness: number,
1502
+ unicode: null,
1503
+ unicodeBidi: null,
1504
+ unicodeRange: null,
1505
+ unitsPerEm: number,
1506
+ values: null,
1507
+ vAlphabetic: number,
1508
+ vMathematical: number,
1509
+ vectorEffect: null,
1510
+ vHanging: number,
1511
+ vIdeographic: number,
1512
+ version: null,
1513
+ vertAdvY: number,
1514
+ vertOriginX: number,
1515
+ vertOriginY: number,
1516
+ viewBox: null,
1517
+ viewTarget: null,
1518
+ visibility: null,
1519
+ width: null,
1520
+ widths: null,
1521
+ wordSpacing: null,
1522
+ writingMode: null,
1523
+ x: null,
1524
+ x1: null,
1525
+ x2: null,
1526
+ xChannelSelector: null,
1527
+ xHeight: number,
1528
+ y: null,
1529
+ y1: null,
1530
+ y2: null,
1531
+ yChannelSelector: null,
1532
+ z: null,
1533
+ zoomAndPan: null
1534
+ },
1535
+ space: "svg",
1536
+ transform: caseSensitiveTransform
1537
+ });
1538
+
1539
+ // node_modules/property-information/lib/xlink.js
1540
+ var xlink = create({
1541
+ properties: {
1542
+ xLinkActuate: null,
1543
+ xLinkArcRole: null,
1544
+ xLinkHref: null,
1545
+ xLinkRole: null,
1546
+ xLinkShow: null,
1547
+ xLinkTitle: null,
1548
+ xLinkType: null
1549
+ },
1550
+ space: "xlink",
1551
+ transform(_, property) {
1552
+ return "xlink:" + property.slice(5).toLowerCase();
1553
+ }
1554
+ });
1555
+
1556
+ // node_modules/property-information/lib/xmlns.js
1557
+ var xmlns = create({
1558
+ attributes: { xmlnsxlink: "xmlns:xlink" },
1559
+ properties: { xmlnsXLink: null, xmlns: null },
1560
+ space: "xmlns",
1561
+ transform: caseInsensitiveTransform
1562
+ });
1563
+
1564
+ // node_modules/property-information/lib/xml.js
1565
+ var xml = create({
1566
+ properties: { xmlBase: null, xmlLang: null, xmlSpace: null },
1567
+ space: "xml",
1568
+ transform(_, property) {
1569
+ return "xml:" + property.slice(3).toLowerCase();
1570
+ }
1571
+ });
1572
+
1573
+ // node_modules/property-information/lib/find.js
1574
+ var cap = /[A-Z]/g;
1575
+ var dash = /-[a-z]/g;
1576
+ var valid = /^data[-\w.:]+$/i;
1577
+ function find(schema, value) {
1578
+ const normal = normalize(value);
1579
+ let property = value;
1580
+ let Type = Info;
1581
+ if (normal in schema.normal) {
1582
+ return schema.property[schema.normal[normal]];
1583
+ }
1584
+ if (normal.length > 4 && normal.slice(0, 4) === "data" && valid.test(value)) {
1585
+ if (value.charAt(4) === "-") {
1586
+ const rest = value.slice(5).replace(dash, camelcase);
1587
+ property = "data" + rest.charAt(0).toUpperCase() + rest.slice(1);
1588
+ } else {
1589
+ const rest = value.slice(4);
1590
+ if (!dash.test(rest)) {
1591
+ let dashes = rest.replace(cap, kebab);
1592
+ if (dashes.charAt(0) !== "-") {
1593
+ dashes = "-" + dashes;
1594
+ }
1595
+ value = "data" + dashes;
1596
+ }
1597
+ }
1598
+ Type = DefinedInfo;
1599
+ }
1600
+ return new Type(property, value);
1601
+ }
1602
+ function kebab($0) {
1603
+ return "-" + $0.toLowerCase();
1604
+ }
1605
+ function camelcase($0) {
1606
+ return $0.charAt(1).toUpperCase();
1607
+ }
1608
+
1609
+ // node_modules/property-information/index.js
1610
+ var html2 = merge([aria, html, xlink, xmlns, xml], "html");
1611
+ var svg2 = merge([aria, svg, xlink, xmlns, xml], "svg");
1612
+
1613
+ // node_modules/zwitch/index.js
1614
+ var own = {}.hasOwnProperty;
1615
+ function zwitch(key2, options) {
1616
+ const settings = options || {};
1617
+ function one2(value, ...parameters) {
1618
+ let fn = one2.invalid;
1619
+ const handlers = one2.handlers;
1620
+ if (value && own.call(value, key2)) {
1621
+ const id = String(value[key2]);
1622
+ fn = own.call(handlers, id) ? handlers[id] : one2.unknown;
1623
+ }
1624
+ if (fn) {
1625
+ return fn.call(this, value, ...parameters);
1626
+ }
1627
+ }
1628
+ one2.handlers = settings.handlers || {};
1629
+ one2.invalid = settings.invalid;
1630
+ one2.unknown = settings.unknown;
1631
+ return one2;
1632
+ }
1633
+
1634
+ // node_modules/stringify-entities/lib/core.js
1635
+ var defaultSubsetRegex = /["&'<>`]/g;
1636
+ var surrogatePairsRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
1637
+ var controlCharactersRegex = (
1638
+ // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape
1639
+ /[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g
1640
+ );
1641
+ var regexEscapeRegex = /[|\\{}()[\]^$+*?.]/g;
1642
+ var subsetToRegexCache = /* @__PURE__ */ new WeakMap();
1643
+ function core(value, options) {
1644
+ value = value.replace(
1645
+ options.subset ? charactersToExpressionCached(options.subset) : defaultSubsetRegex,
1646
+ basic
1647
+ );
1648
+ if (options.subset || options.escapeOnly) {
1649
+ return value;
1650
+ }
1651
+ return value.replace(surrogatePairsRegex, surrogate).replace(controlCharactersRegex, basic);
1652
+ function surrogate(pair, index, all2) {
1653
+ return options.format(
1654
+ (pair.charCodeAt(0) - 55296) * 1024 + pair.charCodeAt(1) - 56320 + 65536,
1655
+ all2.charCodeAt(index + 2),
1656
+ options
1657
+ );
1658
+ }
1659
+ function basic(character, index, all2) {
1660
+ return options.format(
1661
+ character.charCodeAt(0),
1662
+ all2.charCodeAt(index + 1),
1663
+ options
1664
+ );
1665
+ }
1666
+ }
1667
+ function charactersToExpressionCached(subset) {
1668
+ let cached = subsetToRegexCache.get(subset);
1669
+ if (!cached) {
1670
+ cached = charactersToExpression(subset);
1671
+ subsetToRegexCache.set(subset, cached);
1672
+ }
1673
+ return cached;
1674
+ }
1675
+ function charactersToExpression(subset) {
1676
+ const groups = [];
1677
+ let index = -1;
1678
+ while (++index < subset.length) {
1679
+ groups.push(subset[index].replace(regexEscapeRegex, "\\$&"));
1680
+ }
1681
+ return new RegExp("(?:" + groups.join("|") + ")", "g");
1682
+ }
1683
+
1684
+ // node_modules/stringify-entities/lib/util/to-hexadecimal.js
1685
+ var hexadecimalRegex = /[\dA-Fa-f]/;
1686
+ function toHexadecimal(code, next, omit) {
1687
+ const value = "&#x" + code.toString(16).toUpperCase();
1688
+ return omit && next && !hexadecimalRegex.test(String.fromCharCode(next)) ? value : value + ";";
1689
+ }
1690
+
1691
+ // node_modules/stringify-entities/lib/util/to-decimal.js
1692
+ var decimalRegex = /\d/;
1693
+ function toDecimal(code, next, omit) {
1694
+ const value = "&#" + String(code);
1695
+ return omit && next && !decimalRegex.test(String.fromCharCode(next)) ? value : value + ";";
1696
+ }
1697
+
1698
+ // node_modules/character-entities-legacy/index.js
1699
+ var characterEntitiesLegacy = [
1700
+ "AElig",
1701
+ "AMP",
1702
+ "Aacute",
1703
+ "Acirc",
1704
+ "Agrave",
1705
+ "Aring",
1706
+ "Atilde",
1707
+ "Auml",
1708
+ "COPY",
1709
+ "Ccedil",
1710
+ "ETH",
1711
+ "Eacute",
1712
+ "Ecirc",
1713
+ "Egrave",
1714
+ "Euml",
1715
+ "GT",
1716
+ "Iacute",
1717
+ "Icirc",
1718
+ "Igrave",
1719
+ "Iuml",
1720
+ "LT",
1721
+ "Ntilde",
1722
+ "Oacute",
1723
+ "Ocirc",
1724
+ "Ograve",
1725
+ "Oslash",
1726
+ "Otilde",
1727
+ "Ouml",
1728
+ "QUOT",
1729
+ "REG",
1730
+ "THORN",
1731
+ "Uacute",
1732
+ "Ucirc",
1733
+ "Ugrave",
1734
+ "Uuml",
1735
+ "Yacute",
1736
+ "aacute",
1737
+ "acirc",
1738
+ "acute",
1739
+ "aelig",
1740
+ "agrave",
1741
+ "amp",
1742
+ "aring",
1743
+ "atilde",
1744
+ "auml",
1745
+ "brvbar",
1746
+ "ccedil",
1747
+ "cedil",
1748
+ "cent",
1749
+ "copy",
1750
+ "curren",
1751
+ "deg",
1752
+ "divide",
1753
+ "eacute",
1754
+ "ecirc",
1755
+ "egrave",
1756
+ "eth",
1757
+ "euml",
1758
+ "frac12",
1759
+ "frac14",
1760
+ "frac34",
1761
+ "gt",
1762
+ "iacute",
1763
+ "icirc",
1764
+ "iexcl",
1765
+ "igrave",
1766
+ "iquest",
1767
+ "iuml",
1768
+ "laquo",
1769
+ "lt",
1770
+ "macr",
1771
+ "micro",
1772
+ "middot",
1773
+ "nbsp",
1774
+ "not",
1775
+ "ntilde",
1776
+ "oacute",
1777
+ "ocirc",
1778
+ "ograve",
1779
+ "ordf",
1780
+ "ordm",
1781
+ "oslash",
1782
+ "otilde",
1783
+ "ouml",
1784
+ "para",
1785
+ "plusmn",
1786
+ "pound",
1787
+ "quot",
1788
+ "raquo",
1789
+ "reg",
1790
+ "sect",
1791
+ "shy",
1792
+ "sup1",
1793
+ "sup2",
1794
+ "sup3",
1795
+ "szlig",
1796
+ "thorn",
1797
+ "times",
1798
+ "uacute",
1799
+ "ucirc",
1800
+ "ugrave",
1801
+ "uml",
1802
+ "uuml",
1803
+ "yacute",
1804
+ "yen",
1805
+ "yuml"
1806
+ ];
1807
+
1808
+ // node_modules/character-entities-html4/index.js
1809
+ var characterEntitiesHtml4 = {
1810
+ nbsp: "\xA0",
1811
+ iexcl: "\xA1",
1812
+ cent: "\xA2",
1813
+ pound: "\xA3",
1814
+ curren: "\xA4",
1815
+ yen: "\xA5",
1816
+ brvbar: "\xA6",
1817
+ sect: "\xA7",
1818
+ uml: "\xA8",
1819
+ copy: "\xA9",
1820
+ ordf: "\xAA",
1821
+ laquo: "\xAB",
1822
+ not: "\xAC",
1823
+ shy: "\xAD",
1824
+ reg: "\xAE",
1825
+ macr: "\xAF",
1826
+ deg: "\xB0",
1827
+ plusmn: "\xB1",
1828
+ sup2: "\xB2",
1829
+ sup3: "\xB3",
1830
+ acute: "\xB4",
1831
+ micro: "\xB5",
1832
+ para: "\xB6",
1833
+ middot: "\xB7",
1834
+ cedil: "\xB8",
1835
+ sup1: "\xB9",
1836
+ ordm: "\xBA",
1837
+ raquo: "\xBB",
1838
+ frac14: "\xBC",
1839
+ frac12: "\xBD",
1840
+ frac34: "\xBE",
1841
+ iquest: "\xBF",
1842
+ Agrave: "\xC0",
1843
+ Aacute: "\xC1",
1844
+ Acirc: "\xC2",
1845
+ Atilde: "\xC3",
1846
+ Auml: "\xC4",
1847
+ Aring: "\xC5",
1848
+ AElig: "\xC6",
1849
+ Ccedil: "\xC7",
1850
+ Egrave: "\xC8",
1851
+ Eacute: "\xC9",
1852
+ Ecirc: "\xCA",
1853
+ Euml: "\xCB",
1854
+ Igrave: "\xCC",
1855
+ Iacute: "\xCD",
1856
+ Icirc: "\xCE",
1857
+ Iuml: "\xCF",
1858
+ ETH: "\xD0",
1859
+ Ntilde: "\xD1",
1860
+ Ograve: "\xD2",
1861
+ Oacute: "\xD3",
1862
+ Ocirc: "\xD4",
1863
+ Otilde: "\xD5",
1864
+ Ouml: "\xD6",
1865
+ times: "\xD7",
1866
+ Oslash: "\xD8",
1867
+ Ugrave: "\xD9",
1868
+ Uacute: "\xDA",
1869
+ Ucirc: "\xDB",
1870
+ Uuml: "\xDC",
1871
+ Yacute: "\xDD",
1872
+ THORN: "\xDE",
1873
+ szlig: "\xDF",
1874
+ agrave: "\xE0",
1875
+ aacute: "\xE1",
1876
+ acirc: "\xE2",
1877
+ atilde: "\xE3",
1878
+ auml: "\xE4",
1879
+ aring: "\xE5",
1880
+ aelig: "\xE6",
1881
+ ccedil: "\xE7",
1882
+ egrave: "\xE8",
1883
+ eacute: "\xE9",
1884
+ ecirc: "\xEA",
1885
+ euml: "\xEB",
1886
+ igrave: "\xEC",
1887
+ iacute: "\xED",
1888
+ icirc: "\xEE",
1889
+ iuml: "\xEF",
1890
+ eth: "\xF0",
1891
+ ntilde: "\xF1",
1892
+ ograve: "\xF2",
1893
+ oacute: "\xF3",
1894
+ ocirc: "\xF4",
1895
+ otilde: "\xF5",
1896
+ ouml: "\xF6",
1897
+ divide: "\xF7",
1898
+ oslash: "\xF8",
1899
+ ugrave: "\xF9",
1900
+ uacute: "\xFA",
1901
+ ucirc: "\xFB",
1902
+ uuml: "\xFC",
1903
+ yacute: "\xFD",
1904
+ thorn: "\xFE",
1905
+ yuml: "\xFF",
1906
+ fnof: "\u0192",
1907
+ Alpha: "\u0391",
1908
+ Beta: "\u0392",
1909
+ Gamma: "\u0393",
1910
+ Delta: "\u0394",
1911
+ Epsilon: "\u0395",
1912
+ Zeta: "\u0396",
1913
+ Eta: "\u0397",
1914
+ Theta: "\u0398",
1915
+ Iota: "\u0399",
1916
+ Kappa: "\u039A",
1917
+ Lambda: "\u039B",
1918
+ Mu: "\u039C",
1919
+ Nu: "\u039D",
1920
+ Xi: "\u039E",
1921
+ Omicron: "\u039F",
1922
+ Pi: "\u03A0",
1923
+ Rho: "\u03A1",
1924
+ Sigma: "\u03A3",
1925
+ Tau: "\u03A4",
1926
+ Upsilon: "\u03A5",
1927
+ Phi: "\u03A6",
1928
+ Chi: "\u03A7",
1929
+ Psi: "\u03A8",
1930
+ Omega: "\u03A9",
1931
+ alpha: "\u03B1",
1932
+ beta: "\u03B2",
1933
+ gamma: "\u03B3",
1934
+ delta: "\u03B4",
1935
+ epsilon: "\u03B5",
1936
+ zeta: "\u03B6",
1937
+ eta: "\u03B7",
1938
+ theta: "\u03B8",
1939
+ iota: "\u03B9",
1940
+ kappa: "\u03BA",
1941
+ lambda: "\u03BB",
1942
+ mu: "\u03BC",
1943
+ nu: "\u03BD",
1944
+ xi: "\u03BE",
1945
+ omicron: "\u03BF",
1946
+ pi: "\u03C0",
1947
+ rho: "\u03C1",
1948
+ sigmaf: "\u03C2",
1949
+ sigma: "\u03C3",
1950
+ tau: "\u03C4",
1951
+ upsilon: "\u03C5",
1952
+ phi: "\u03C6",
1953
+ chi: "\u03C7",
1954
+ psi: "\u03C8",
1955
+ omega: "\u03C9",
1956
+ thetasym: "\u03D1",
1957
+ upsih: "\u03D2",
1958
+ piv: "\u03D6",
1959
+ bull: "\u2022",
1960
+ hellip: "\u2026",
1961
+ prime: "\u2032",
1962
+ Prime: "\u2033",
1963
+ oline: "\u203E",
1964
+ frasl: "\u2044",
1965
+ weierp: "\u2118",
1966
+ image: "\u2111",
1967
+ real: "\u211C",
1968
+ trade: "\u2122",
1969
+ alefsym: "\u2135",
1970
+ larr: "\u2190",
1971
+ uarr: "\u2191",
1972
+ rarr: "\u2192",
1973
+ darr: "\u2193",
1974
+ harr: "\u2194",
1975
+ crarr: "\u21B5",
1976
+ lArr: "\u21D0",
1977
+ uArr: "\u21D1",
1978
+ rArr: "\u21D2",
1979
+ dArr: "\u21D3",
1980
+ hArr: "\u21D4",
1981
+ forall: "\u2200",
1982
+ part: "\u2202",
1983
+ exist: "\u2203",
1984
+ empty: "\u2205",
1985
+ nabla: "\u2207",
1986
+ isin: "\u2208",
1987
+ notin: "\u2209",
1988
+ ni: "\u220B",
1989
+ prod: "\u220F",
1990
+ sum: "\u2211",
1991
+ minus: "\u2212",
1992
+ lowast: "\u2217",
1993
+ radic: "\u221A",
1994
+ prop: "\u221D",
1995
+ infin: "\u221E",
1996
+ ang: "\u2220",
1997
+ and: "\u2227",
1998
+ or: "\u2228",
1999
+ cap: "\u2229",
2000
+ cup: "\u222A",
2001
+ int: "\u222B",
2002
+ there4: "\u2234",
2003
+ sim: "\u223C",
2004
+ cong: "\u2245",
2005
+ asymp: "\u2248",
2006
+ ne: "\u2260",
2007
+ equiv: "\u2261",
2008
+ le: "\u2264",
2009
+ ge: "\u2265",
2010
+ sub: "\u2282",
2011
+ sup: "\u2283",
2012
+ nsub: "\u2284",
2013
+ sube: "\u2286",
2014
+ supe: "\u2287",
2015
+ oplus: "\u2295",
2016
+ otimes: "\u2297",
2017
+ perp: "\u22A5",
2018
+ sdot: "\u22C5",
2019
+ lceil: "\u2308",
2020
+ rceil: "\u2309",
2021
+ lfloor: "\u230A",
2022
+ rfloor: "\u230B",
2023
+ lang: "\u2329",
2024
+ rang: "\u232A",
2025
+ loz: "\u25CA",
2026
+ spades: "\u2660",
2027
+ clubs: "\u2663",
2028
+ hearts: "\u2665",
2029
+ diams: "\u2666",
2030
+ quot: '"',
2031
+ amp: "&",
2032
+ lt: "<",
2033
+ gt: ">",
2034
+ OElig: "\u0152",
2035
+ oelig: "\u0153",
2036
+ Scaron: "\u0160",
2037
+ scaron: "\u0161",
2038
+ Yuml: "\u0178",
2039
+ circ: "\u02C6",
2040
+ tilde: "\u02DC",
2041
+ ensp: "\u2002",
2042
+ emsp: "\u2003",
2043
+ thinsp: "\u2009",
2044
+ zwnj: "\u200C",
2045
+ zwj: "\u200D",
2046
+ lrm: "\u200E",
2047
+ rlm: "\u200F",
2048
+ ndash: "\u2013",
2049
+ mdash: "\u2014",
2050
+ lsquo: "\u2018",
2051
+ rsquo: "\u2019",
2052
+ sbquo: "\u201A",
2053
+ ldquo: "\u201C",
2054
+ rdquo: "\u201D",
2055
+ bdquo: "\u201E",
2056
+ dagger: "\u2020",
2057
+ Dagger: "\u2021",
2058
+ permil: "\u2030",
2059
+ lsaquo: "\u2039",
2060
+ rsaquo: "\u203A",
2061
+ euro: "\u20AC"
2062
+ };
2063
+
2064
+ // node_modules/stringify-entities/lib/constant/dangerous.js
2065
+ var dangerous = [
2066
+ "cent",
2067
+ "copy",
2068
+ "divide",
2069
+ "gt",
2070
+ "lt",
2071
+ "not",
2072
+ "para",
2073
+ "times"
2074
+ ];
2075
+
2076
+ // node_modules/stringify-entities/lib/util/to-named.js
2077
+ var own2 = {}.hasOwnProperty;
2078
+ var characters = {};
2079
+ var key;
2080
+ for (key in characterEntitiesHtml4) {
2081
+ if (own2.call(characterEntitiesHtml4, key)) {
2082
+ characters[characterEntitiesHtml4[key]] = key;
2083
+ }
2084
+ }
2085
+ var notAlphanumericRegex = /[^\dA-Za-z]/;
2086
+ function toNamed(code, next, omit, attribute) {
2087
+ const character = String.fromCharCode(code);
2088
+ if (own2.call(characters, character)) {
2089
+ const name = characters[character];
2090
+ const value = "&" + name;
2091
+ if (omit && characterEntitiesLegacy.includes(name) && !dangerous.includes(name) && (!attribute || next && next !== 61 && notAlphanumericRegex.test(String.fromCharCode(next)))) {
2092
+ return value;
2093
+ }
2094
+ return value + ";";
2095
+ }
2096
+ return "";
2097
+ }
2098
+
2099
+ // node_modules/stringify-entities/lib/util/format-smart.js
2100
+ function formatSmart(code, next, options) {
2101
+ let numeric = toHexadecimal(code, next, options.omitOptionalSemicolons);
2102
+ let named;
2103
+ if (options.useNamedReferences || options.useShortestReferences) {
2104
+ named = toNamed(
2105
+ code,
2106
+ next,
2107
+ options.omitOptionalSemicolons,
2108
+ options.attribute
2109
+ );
2110
+ }
2111
+ if ((options.useShortestReferences || !named) && options.useShortestReferences) {
2112
+ const decimal = toDecimal(code, next, options.omitOptionalSemicolons);
2113
+ if (decimal.length < numeric.length) {
2114
+ numeric = decimal;
2115
+ }
2116
+ }
2117
+ return named && (!options.useShortestReferences || named.length < numeric.length) ? named : numeric;
2118
+ }
2119
+
2120
+ // node_modules/stringify-entities/lib/index.js
2121
+ function stringifyEntities(value, options) {
2122
+ return core(value, Object.assign({ format: formatSmart }, options));
2123
+ }
2124
+
2125
+ // node_modules/hast-util-to-html/lib/handle/comment.js
2126
+ var htmlCommentRegex = /^>|^->|<!--|-->|--!>|<!-$/g;
2127
+ var bogusCommentEntitySubset = [">"];
2128
+ var commentEntitySubset = ["<", ">"];
2129
+ function comment(node, _1, _2, state) {
2130
+ return state.settings.bogusComments ? "<?" + stringifyEntities(
2131
+ node.value,
2132
+ Object.assign({}, state.settings.characterReferences, {
2133
+ subset: bogusCommentEntitySubset
2134
+ })
2135
+ ) + ">" : "<!--" + node.value.replace(htmlCommentRegex, encode) + "-->";
2136
+ function encode($0) {
2137
+ return stringifyEntities(
2138
+ $0,
2139
+ Object.assign({}, state.settings.characterReferences, {
2140
+ subset: commentEntitySubset
2141
+ })
2142
+ );
2143
+ }
2144
+ }
2145
+
2146
+ // node_modules/hast-util-to-html/lib/handle/doctype.js
2147
+ function doctype(_1, _2, _3, state) {
2148
+ return "<!" + (state.settings.upperDoctype ? "DOCTYPE" : "doctype") + (state.settings.tightDoctype ? "" : " ") + "html>";
2149
+ }
2150
+
2151
+ // node_modules/ccount/index.js
2152
+ function ccount(value, character) {
2153
+ const source = String(value);
2154
+ if (typeof character !== "string") {
2155
+ throw new TypeError("Expected character");
2156
+ }
2157
+ let count = 0;
2158
+ let index = source.indexOf(character);
2159
+ while (index !== -1) {
2160
+ count++;
2161
+ index = source.indexOf(character, index + character.length);
2162
+ }
2163
+ return count;
2164
+ }
2165
+
2166
+ // node_modules/comma-separated-tokens/index.js
2167
+ function stringify(values, options) {
2168
+ const settings = options || {};
2169
+ const input = values[values.length - 1] === "" ? [...values, ""] : values;
2170
+ return input.join(
2171
+ (settings.padRight ? " " : "") + "," + (settings.padLeft === false ? "" : " ")
2172
+ ).trim();
2173
+ }
2174
+
2175
+ // node_modules/space-separated-tokens/index.js
2176
+ function stringify2(values) {
2177
+ return values.join(" ").trim();
2178
+ }
2179
+
2180
+ // node_modules/hast-util-whitespace/lib/index.js
2181
+ var re = /[ \t\n\f\r]/g;
2182
+ function whitespace(thing) {
2183
+ return typeof thing === "object" ? thing.type === "text" ? empty(thing.value) : false : empty(thing);
2184
+ }
2185
+ function empty(value) {
2186
+ return value.replace(re, "") === "";
2187
+ }
2188
+
2189
+ // node_modules/hast-util-to-html/lib/omission/util/siblings.js
2190
+ var siblingAfter = siblings(1);
2191
+ var siblingBefore = siblings(-1);
2192
+ var emptyChildren = [];
2193
+ function siblings(increment2) {
2194
+ return sibling;
2195
+ function sibling(parent, index, includeWhitespace) {
2196
+ const siblings2 = parent ? parent.children : emptyChildren;
2197
+ let offset = (index || 0) + increment2;
2198
+ let next = siblings2[offset];
2199
+ if (!includeWhitespace) {
2200
+ while (next && whitespace(next)) {
2201
+ offset += increment2;
2202
+ next = siblings2[offset];
2203
+ }
2204
+ }
2205
+ return next;
2206
+ }
2207
+ }
2208
+
2209
+ // node_modules/hast-util-to-html/lib/omission/omission.js
2210
+ var own3 = {}.hasOwnProperty;
2211
+ function omission(handlers) {
2212
+ return omit;
2213
+ function omit(node, index, parent) {
2214
+ return own3.call(handlers, node.tagName) && handlers[node.tagName](node, index, parent);
2215
+ }
2216
+ }
2217
+
2218
+ // node_modules/hast-util-to-html/lib/omission/closing.js
2219
+ var closing = omission({
2220
+ body,
2221
+ caption: headOrColgroupOrCaption,
2222
+ colgroup: headOrColgroupOrCaption,
2223
+ dd,
2224
+ dt,
2225
+ head: headOrColgroupOrCaption,
2226
+ html: html3,
2227
+ li,
2228
+ optgroup,
2229
+ option,
2230
+ p,
2231
+ rp: rubyElement,
2232
+ rt: rubyElement,
2233
+ tbody,
2234
+ td: cells,
2235
+ tfoot,
2236
+ th: cells,
2237
+ thead,
2238
+ tr
2239
+ });
2240
+ function headOrColgroupOrCaption(_, index, parent) {
2241
+ const next = siblingAfter(parent, index, true);
2242
+ return !next || next.type !== "comment" && !(next.type === "text" && whitespace(next.value.charAt(0)));
2243
+ }
2244
+ function html3(_, index, parent) {
2245
+ const next = siblingAfter(parent, index);
2246
+ return !next || next.type !== "comment";
2247
+ }
2248
+ function body(_, index, parent) {
2249
+ const next = siblingAfter(parent, index);
2250
+ return !next || next.type !== "comment";
2251
+ }
2252
+ function p(_, index, parent) {
2253
+ const next = siblingAfter(parent, index);
2254
+ return next ? next.type === "element" && (next.tagName === "address" || next.tagName === "article" || next.tagName === "aside" || next.tagName === "blockquote" || next.tagName === "details" || next.tagName === "div" || next.tagName === "dl" || next.tagName === "fieldset" || next.tagName === "figcaption" || next.tagName === "figure" || next.tagName === "footer" || next.tagName === "form" || next.tagName === "h1" || next.tagName === "h2" || next.tagName === "h3" || next.tagName === "h4" || next.tagName === "h5" || next.tagName === "h6" || next.tagName === "header" || next.tagName === "hgroup" || next.tagName === "hr" || next.tagName === "main" || next.tagName === "menu" || next.tagName === "nav" || next.tagName === "ol" || next.tagName === "p" || next.tagName === "pre" || next.tagName === "section" || next.tagName === "table" || next.tagName === "ul") : !parent || // Confusing parent.
2255
+ !(parent.type === "element" && (parent.tagName === "a" || parent.tagName === "audio" || parent.tagName === "del" || parent.tagName === "ins" || parent.tagName === "map" || parent.tagName === "noscript" || parent.tagName === "video"));
2256
+ }
2257
+ function li(_, index, parent) {
2258
+ const next = siblingAfter(parent, index);
2259
+ return !next || next.type === "element" && next.tagName === "li";
2260
+ }
2261
+ function dt(_, index, parent) {
2262
+ const next = siblingAfter(parent, index);
2263
+ return Boolean(
2264
+ next && next.type === "element" && (next.tagName === "dt" || next.tagName === "dd")
2265
+ );
2266
+ }
2267
+ function dd(_, index, parent) {
2268
+ const next = siblingAfter(parent, index);
2269
+ return !next || next.type === "element" && (next.tagName === "dt" || next.tagName === "dd");
2270
+ }
2271
+ function rubyElement(_, index, parent) {
2272
+ const next = siblingAfter(parent, index);
2273
+ return !next || next.type === "element" && (next.tagName === "rp" || next.tagName === "rt");
2274
+ }
2275
+ function optgroup(_, index, parent) {
2276
+ const next = siblingAfter(parent, index);
2277
+ return !next || next.type === "element" && next.tagName === "optgroup";
2278
+ }
2279
+ function option(_, index, parent) {
2280
+ const next = siblingAfter(parent, index);
2281
+ return !next || next.type === "element" && (next.tagName === "option" || next.tagName === "optgroup");
2282
+ }
2283
+ function thead(_, index, parent) {
2284
+ const next = siblingAfter(parent, index);
2285
+ return Boolean(
2286
+ next && next.type === "element" && (next.tagName === "tbody" || next.tagName === "tfoot")
2287
+ );
2288
+ }
2289
+ function tbody(_, index, parent) {
2290
+ const next = siblingAfter(parent, index);
2291
+ return !next || next.type === "element" && (next.tagName === "tbody" || next.tagName === "tfoot");
2292
+ }
2293
+ function tfoot(_, index, parent) {
2294
+ return !siblingAfter(parent, index);
2295
+ }
2296
+ function tr(_, index, parent) {
2297
+ const next = siblingAfter(parent, index);
2298
+ return !next || next.type === "element" && next.tagName === "tr";
2299
+ }
2300
+ function cells(_, index, parent) {
2301
+ const next = siblingAfter(parent, index);
2302
+ return !next || next.type === "element" && (next.tagName === "td" || next.tagName === "th");
2303
+ }
2304
+
2305
+ // node_modules/hast-util-to-html/lib/omission/opening.js
2306
+ var opening = omission({
2307
+ body: body2,
2308
+ colgroup,
2309
+ head,
2310
+ html: html4,
2311
+ tbody: tbody2
2312
+ });
2313
+ function html4(node) {
2314
+ const head2 = siblingAfter(node, -1);
2315
+ return !head2 || head2.type !== "comment";
2316
+ }
2317
+ function head(node) {
2318
+ const seen = /* @__PURE__ */ new Set();
2319
+ for (const child2 of node.children) {
2320
+ if (child2.type === "element" && (child2.tagName === "base" || child2.tagName === "title")) {
2321
+ if (seen.has(child2.tagName)) return false;
2322
+ seen.add(child2.tagName);
2323
+ }
2324
+ }
2325
+ const child = node.children[0];
2326
+ return !child || child.type === "element";
2327
+ }
2328
+ function body2(node) {
2329
+ const head2 = siblingAfter(node, -1, true);
2330
+ return !head2 || head2.type !== "comment" && !(head2.type === "text" && whitespace(head2.value.charAt(0))) && !(head2.type === "element" && (head2.tagName === "meta" || head2.tagName === "link" || head2.tagName === "script" || head2.tagName === "style" || head2.tagName === "template"));
2331
+ }
2332
+ function colgroup(node, index, parent) {
2333
+ const previous = siblingBefore(parent, index);
2334
+ const head2 = siblingAfter(node, -1, true);
2335
+ if (parent && previous && previous.type === "element" && previous.tagName === "colgroup" && closing(previous, parent.children.indexOf(previous), parent)) {
2336
+ return false;
2337
+ }
2338
+ return Boolean(head2 && head2.type === "element" && head2.tagName === "col");
2339
+ }
2340
+ function tbody2(node, index, parent) {
2341
+ const previous = siblingBefore(parent, index);
2342
+ const head2 = siblingAfter(node, -1);
2343
+ if (parent && previous && previous.type === "element" && (previous.tagName === "thead" || previous.tagName === "tbody") && closing(previous, parent.children.indexOf(previous), parent)) {
2344
+ return false;
2345
+ }
2346
+ return Boolean(head2 && head2.type === "element" && head2.tagName === "tr");
2347
+ }
2348
+
2349
+ // node_modules/hast-util-to-html/lib/handle/element.js
2350
+ var constants = {
2351
+ // See: <https://html.spec.whatwg.org/#attribute-name-state>.
2352
+ name: [
2353
+ [" \n\f\r &/=>".split(""), " \n\f\r \"&'/=>`".split("")],
2354
+ [`\0
2355
+ \f\r "&'/<=>`.split(""), "\0 \n\f\r \"&'/<=>`".split("")]
2356
+ ],
2357
+ // See: <https://html.spec.whatwg.org/#attribute-value-(unquoted)-state>.
2358
+ unquoted: [
2359
+ [" \n\f\r &>".split(""), "\0 \n\f\r \"&'<=>`".split("")],
2360
+ ["\0 \n\f\r \"&'<=>`".split(""), "\0 \n\f\r \"&'<=>`".split("")]
2361
+ ],
2362
+ // See: <https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state>.
2363
+ single: [
2364
+ ["&'".split(""), "\"&'`".split("")],
2365
+ ["\0&'".split(""), "\0\"&'`".split("")]
2366
+ ],
2367
+ // See: <https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state>.
2368
+ double: [
2369
+ ['"&'.split(""), "\"&'`".split("")],
2370
+ ['\0"&'.split(""), "\0\"&'`".split("")]
2371
+ ]
2372
+ };
2373
+ function element(node, index, parent, state) {
2374
+ const schema = state.schema;
2375
+ const omit = schema.space === "svg" ? false : state.settings.omitOptionalTags;
2376
+ let selfClosing = schema.space === "svg" ? state.settings.closeEmptyElements : state.settings.voids.includes(node.tagName.toLowerCase());
2377
+ const parts = [];
2378
+ let last;
2379
+ if (schema.space === "html" && node.tagName === "svg") {
2380
+ state.schema = svg2;
2381
+ }
2382
+ const attributes = serializeAttributes(state, node.properties);
2383
+ const content = state.all(
2384
+ schema.space === "html" && node.tagName === "template" ? node.content : node
2385
+ );
2386
+ state.schema = schema;
2387
+ if (content) selfClosing = false;
2388
+ if (attributes || !omit || !opening(node, index, parent)) {
2389
+ parts.push("<", node.tagName, attributes ? " " + attributes : "");
2390
+ if (selfClosing && (schema.space === "svg" || state.settings.closeSelfClosing)) {
2391
+ last = attributes.charAt(attributes.length - 1);
2392
+ if (!state.settings.tightSelfClosing || last === "/" || last && last !== '"' && last !== "'") {
2393
+ parts.push(" ");
2394
+ }
2395
+ parts.push("/");
2396
+ }
2397
+ parts.push(">");
2398
+ }
2399
+ parts.push(content);
2400
+ if (!selfClosing && (!omit || !closing(node, index, parent))) {
2401
+ parts.push("</" + node.tagName + ">");
2402
+ }
2403
+ return parts.join("");
2404
+ }
2405
+ function serializeAttributes(state, properties) {
2406
+ const values = [];
2407
+ let index = -1;
2408
+ let key2;
2409
+ if (properties) {
2410
+ for (key2 in properties) {
2411
+ if (properties[key2] !== null && properties[key2] !== void 0) {
2412
+ const value = serializeAttribute(state, key2, properties[key2]);
2413
+ if (value) values.push(value);
2414
+ }
2415
+ }
2416
+ }
2417
+ while (++index < values.length) {
2418
+ const last = state.settings.tightAttributes ? values[index].charAt(values[index].length - 1) : void 0;
2419
+ if (index !== values.length - 1 && last !== '"' && last !== "'") {
2420
+ values[index] += " ";
2421
+ }
2422
+ }
2423
+ return values.join("");
2424
+ }
2425
+ function serializeAttribute(state, key2, value) {
2426
+ const info = find(state.schema, key2);
2427
+ const x = state.settings.allowParseErrors && state.schema.space === "html" ? 0 : 1;
2428
+ const y = state.settings.allowDangerousCharacters ? 0 : 1;
2429
+ let quote = state.quote;
2430
+ let result;
2431
+ if (info.overloadedBoolean && (value === info.attribute || value === "")) {
2432
+ value = true;
2433
+ } else if ((info.boolean || info.overloadedBoolean) && (typeof value !== "string" || value === info.attribute || value === "")) {
2434
+ value = Boolean(value);
2435
+ }
2436
+ if (value === null || value === void 0 || value === false || typeof value === "number" && Number.isNaN(value)) {
2437
+ return "";
2438
+ }
2439
+ const name = stringifyEntities(
2440
+ info.attribute,
2441
+ Object.assign({}, state.settings.characterReferences, {
2442
+ // Always encode without parse errors in non-HTML.
2443
+ subset: constants.name[x][y]
2444
+ })
2445
+ );
2446
+ if (value === true) return name;
2447
+ value = Array.isArray(value) ? (info.commaSeparated ? stringify : stringify2)(value, {
2448
+ padLeft: !state.settings.tightCommaSeparatedLists
2449
+ }) : String(value);
2450
+ if (state.settings.collapseEmptyAttributes && !value) return name;
2451
+ if (state.settings.preferUnquoted) {
2452
+ result = stringifyEntities(
2453
+ value,
2454
+ Object.assign({}, state.settings.characterReferences, {
2455
+ attribute: true,
2456
+ subset: constants.unquoted[x][y]
2457
+ })
2458
+ );
2459
+ }
2460
+ if (result !== value) {
2461
+ if (state.settings.quoteSmart && ccount(value, quote) > ccount(value, state.alternative)) {
2462
+ quote = state.alternative;
2463
+ }
2464
+ result = quote + stringifyEntities(
2465
+ value,
2466
+ Object.assign({}, state.settings.characterReferences, {
2467
+ // Always encode without parse errors in non-HTML.
2468
+ subset: (quote === "'" ? constants.single : constants.double)[x][y],
2469
+ attribute: true
2470
+ })
2471
+ ) + quote;
2472
+ }
2473
+ return name + (result ? "=" + result : result);
2474
+ }
2475
+
2476
+ // node_modules/hast-util-to-html/lib/handle/text.js
2477
+ var textEntitySubset = ["<", "&"];
2478
+ function text(node, _, parent, state) {
2479
+ return parent && parent.type === "element" && (parent.tagName === "script" || parent.tagName === "style") ? node.value : stringifyEntities(
2480
+ node.value,
2481
+ Object.assign({}, state.settings.characterReferences, {
2482
+ subset: textEntitySubset
2483
+ })
2484
+ );
2485
+ }
2486
+
2487
+ // node_modules/hast-util-to-html/lib/handle/raw.js
2488
+ function raw(node, index, parent, state) {
2489
+ return state.settings.allowDangerousHtml ? node.value : text(node, index, parent, state);
2490
+ }
2491
+
2492
+ // node_modules/hast-util-to-html/lib/handle/root.js
2493
+ function root(node, _1, _2, state) {
2494
+ return state.all(node);
2495
+ }
2496
+
2497
+ // node_modules/hast-util-to-html/lib/handle/index.js
2498
+ var handle = zwitch("type", {
2499
+ invalid,
2500
+ unknown,
2501
+ handlers: { comment, doctype, element, raw, root, text }
2502
+ });
2503
+ function invalid(node) {
2504
+ throw new Error("Expected node, not `" + node + "`");
2505
+ }
2506
+ function unknown(node_) {
2507
+ const node = (
2508
+ /** @type {Nodes} */
2509
+ node_
2510
+ );
2511
+ throw new Error("Cannot compile unknown node `" + node.type + "`");
2512
+ }
2513
+
2514
+ // node_modules/hast-util-to-html/lib/index.js
2515
+ var emptyOptions = {};
2516
+ var emptyCharacterReferences = {};
2517
+ var emptyChildren2 = [];
2518
+ function toHtml(tree, options) {
2519
+ const options_ = options || emptyOptions;
2520
+ const quote = options_.quote || '"';
2521
+ const alternative = quote === '"' ? "'" : '"';
2522
+ if (quote !== '"' && quote !== "'") {
2523
+ throw new Error("Invalid quote `" + quote + "`, expected `'` or `\"`");
2524
+ }
2525
+ const state = {
2526
+ one,
2527
+ all,
2528
+ settings: {
2529
+ omitOptionalTags: options_.omitOptionalTags || false,
2530
+ allowParseErrors: options_.allowParseErrors || false,
2531
+ allowDangerousCharacters: options_.allowDangerousCharacters || false,
2532
+ quoteSmart: options_.quoteSmart || false,
2533
+ preferUnquoted: options_.preferUnquoted || false,
2534
+ tightAttributes: options_.tightAttributes || false,
2535
+ upperDoctype: options_.upperDoctype || false,
2536
+ tightDoctype: options_.tightDoctype || false,
2537
+ bogusComments: options_.bogusComments || false,
2538
+ tightCommaSeparatedLists: options_.tightCommaSeparatedLists || false,
2539
+ tightSelfClosing: options_.tightSelfClosing || false,
2540
+ collapseEmptyAttributes: options_.collapseEmptyAttributes || false,
2541
+ allowDangerousHtml: options_.allowDangerousHtml || false,
2542
+ voids: options_.voids || htmlVoidElements,
2543
+ characterReferences: options_.characterReferences || emptyCharacterReferences,
2544
+ closeSelfClosing: options_.closeSelfClosing || false,
2545
+ closeEmptyElements: options_.closeEmptyElements || false
2546
+ },
2547
+ schema: options_.space === "svg" ? svg2 : html2,
2548
+ quote,
2549
+ alternative
2550
+ };
2551
+ return state.one(
2552
+ Array.isArray(tree) ? { type: "root", children: tree } : tree,
2553
+ void 0,
2554
+ void 0
2555
+ );
2556
+ }
2557
+ function one(node, index, parent) {
2558
+ return handle(node, index, parent, this);
2559
+ }
2560
+ function all(parent) {
2561
+ const results = [];
2562
+ const children = parent && parent.children || emptyChildren2;
2563
+ let index = -1;
2564
+ while (++index < children.length) {
2565
+ results[index] = this.one(children[index], index, parent);
2566
+ }
2567
+ return results.join("");
2568
+ }
2569
+
2570
+ // node_modules/@pierre/diffs/dist/utils/hastToHtml.js
2571
+ var VOID_ELEMENTS = /* @__PURE__ */ new Set([
2572
+ "area",
2573
+ "base",
2574
+ "basefont",
2575
+ "bgsound",
2576
+ "br",
2577
+ "col",
2578
+ "command",
2579
+ "embed",
2580
+ "frame",
2581
+ "hr",
2582
+ "image",
2583
+ "img",
2584
+ "input",
2585
+ "keygen",
2586
+ "link",
2587
+ "meta",
2588
+ "param",
2589
+ "source",
2590
+ "track",
2591
+ "wbr"
2592
+ ]);
2593
+ var DELEGATED_TAGS = /* @__PURE__ */ new Set([
2594
+ "svg",
2595
+ "template",
2596
+ "script",
2597
+ "style"
2598
+ ]);
2599
+ var ATTRIBUTE_NAMES = {
2600
+ class: "class",
2601
+ className: "class",
2602
+ id: "id",
2603
+ role: "role",
2604
+ style: "style",
2605
+ tabIndex: "tabindex",
2606
+ tabindex: "tabindex",
2607
+ title: "title"
2608
+ };
2609
+ var DATA_ATTRIBUTE = /^data-[\w.:-]+$/;
2610
+ var TEXT_ESCAPE = /[<&]/g;
2611
+ var ATTRIBUTE_ESCAPE = /[\0"&'`]/g;
2612
+ var CHARACTER_REFERENCES = {
2613
+ "<": "&#x3C;",
2614
+ "&": "&#x26;",
2615
+ '"': "&#x22;",
2616
+ "'": "&#x27;",
2617
+ "`": "&#x60;",
2618
+ "\0": "&#x0;"
2619
+ };
2620
+ var MAX_CACHED_STYLES = 256;
2621
+ function hastToHtml(tree) {
2622
+ const styles = /* @__PURE__ */ new Map();
2623
+ return Array.isArray(tree) ? serializeChildren(tree, styles) : serializeNode(tree, styles);
2624
+ }
2625
+ function serializeChildren(children, styles) {
2626
+ let html5 = "";
2627
+ for (const child of children) html5 += serializeNode(child, styles);
2628
+ return html5;
2629
+ }
2630
+ function serializeNode(node, styles) {
2631
+ switch (node.type) {
2632
+ case "text":
2633
+ return escapeText(node.value);
2634
+ case "element":
2635
+ return serializeElement(node, styles);
2636
+ case "root":
2637
+ return serializeChildren(node.children, styles);
2638
+ default:
2639
+ return toHtml(node);
2640
+ }
2641
+ }
2642
+ function serializeElement(node, styles) {
2643
+ const { tagName } = node;
2644
+ if (tagName === "span" && node.children.length === 1 && node.children[0].type === "text" && typeof node.properties?.style === "string") {
2645
+ let styleOnly = true;
2646
+ for (const key2 in node.properties) if (key2 !== "style" && node.properties[key2] != null) {
2647
+ styleOnly = false;
2648
+ break;
2649
+ }
2650
+ if (styleOnly) return `<span ${serializeStyle(node.properties.style, styles)}>${escapeText(node.children[0].value)}</span>`;
2651
+ }
2652
+ if (DELEGATED_TAGS.has(tagName)) return toHtml(node);
2653
+ const attributes = serializeAttributes2(node.properties, styles);
2654
+ if (attributes == null) return toHtml(node);
2655
+ const open = attributes === "" ? `<${tagName}>` : `<${tagName} ${attributes}>`;
2656
+ const content = serializeChildren(node.children, styles);
2657
+ if (content === "" && VOID_ELEMENTS.has(tagName.toLowerCase())) return open;
2658
+ return `${open}${content}</${tagName}>`;
2659
+ }
2660
+ function serializeStyle(value, styles) {
2661
+ let attribute = styles.get(value);
2662
+ if (attribute == null) {
2663
+ attribute = `style="${escapeAttribute(value)}"`;
2664
+ if (styles.size < MAX_CACHED_STYLES) styles.set(value, attribute);
2665
+ }
2666
+ return attribute;
2667
+ }
2668
+ function serializeAttributes2(properties, styles) {
2669
+ let attributes = "";
2670
+ for (const key2 in properties) {
2671
+ const value = properties[key2];
2672
+ if (value == null) continue;
2673
+ const name = ATTRIBUTE_NAMES[key2] ?? (DATA_ATTRIBUTE.test(key2) ? key2 : void 0);
2674
+ if (name == null) return;
2675
+ if (value === false || typeof value === "number" && Number.isNaN(value)) continue;
2676
+ const attribute = key2 === "style" && typeof value === "string" ? serializeStyle(value, styles) : value === true ? name : `${name}="${escapeAttribute(Array.isArray(value) ? value.join(" ").trim() : String(value))}"`;
2677
+ attributes += attributes === "" ? attribute : ` ${attribute}`;
2678
+ }
2679
+ return attributes;
2680
+ }
2681
+ function escapeText(value) {
2682
+ return value.indexOf("<") < 0 && value.indexOf("&") < 0 ? value : value.replace(TEXT_ESCAPE, toCharacterReference);
2683
+ }
2684
+ function escapeAttribute(value) {
2685
+ return value.replace(ATTRIBUTE_ESCAPE, toCharacterReference);
2686
+ }
2687
+ function toCharacterReference(character) {
2688
+ return CHARACTER_REFERENCES[character];
2689
+ }
2690
+
2691
+ // node_modules/@pierre/diffs/dist/utils/hast_utils.js
2692
+ function createTextNodeElement(value) {
2693
+ return {
2694
+ type: "text",
2695
+ value
2696
+ };
2697
+ }
2698
+ function createHastElement({ tagName, children = [], properties = {} }) {
2699
+ return {
2700
+ type: "element",
2701
+ tagName,
2702
+ properties,
2703
+ children
2704
+ };
2705
+ }
2706
+ function createIconElement({ name, width = 16, height = 16, properties }) {
2707
+ return createHastElement({
2708
+ tagName: "svg",
2709
+ properties: {
2710
+ width,
2711
+ height,
2712
+ viewBox: "0 0 16 16",
2713
+ ...properties
2714
+ },
2715
+ children: [createHastElement({
2716
+ tagName: "use",
2717
+ properties: { href: `#${name.replace(/^#/, "")}` }
2718
+ })]
2719
+ });
2720
+ }
2721
+ function createGutterWrapper(children) {
2722
+ return createHastElement({
2723
+ tagName: "div",
2724
+ properties: { "data-gutter": "" },
2725
+ children
2726
+ });
2727
+ }
2728
+ function createGutterItem(lineType, lineNumber, lineIndex, properties = {}) {
2729
+ return createHastElement({
2730
+ tagName: "div",
2731
+ properties: {
2732
+ "data-line-type": lineType,
2733
+ "data-column-number": lineNumber,
2734
+ "data-line-index": lineIndex,
2735
+ ...properties
2736
+ },
2737
+ children: lineNumber != null ? [createHastElement({
2738
+ tagName: "span",
2739
+ properties: { "data-line-number-content": "" },
2740
+ children: [createTextNodeElement(`${lineNumber}`)]
2741
+ })] : void 0
2742
+ });
2743
+ }
2744
+ function createGutterGap(type, bufferType, size) {
2745
+ return createHastElement({
2746
+ tagName: "div",
2747
+ properties: {
2748
+ "data-gutter-buffer": bufferType,
2749
+ "data-buffer-size": size,
2750
+ "data-line-type": bufferType === "annotation" ? void 0 : type,
2751
+ style: bufferType === "annotation" ? `grid-row: span ${size};` : `grid-row: span ${size};min-height:calc(${size} * 1lh);`
2752
+ }
2753
+ });
2754
+ }
2755
+
2756
+ // node_modules/@pierre/diffs/dist/utils/processLine.js
2757
+ function processLine(node, line, state) {
2758
+ const lineInfo = typeof state.lineInfo === "function" ? state.lineInfo(line) : state.lineInfo[line - 1];
2759
+ if (lineInfo == null) {
2760
+ const errorMessage = `processLine: line ${line}, contains no state.lineInfo`;
2761
+ console.error(errorMessage, {
2762
+ node,
2763
+ line,
2764
+ state
2765
+ });
2766
+ throw new Error(errorMessage);
2767
+ }
2768
+ node.tagName = "div";
2769
+ node.properties["data-line"] = lineInfo.lineNumber;
2770
+ node.properties["data-alt-line"] = lineInfo.altLineNumber;
2771
+ node.properties["data-line-type"] = lineInfo.type;
2772
+ node.properties["data-line-index"] = lineInfo.lineIndex;
2773
+ if (node.children.length === 0) node.children.push(createTextNodeElement("\n"));
2774
+ return node;
2775
+ }
2776
+
2777
+ // node_modules/@pierre/diffs/dist/utils/setDeferredArrayItem.js
2778
+ function setDeferredArrayItem(array, index, create2) {
2779
+ let initialized = false;
2780
+ let cached;
2781
+ Object.defineProperty(array, index, {
2782
+ configurable: true,
2783
+ enumerable: true,
2784
+ get() {
2785
+ if (!initialized) {
2786
+ cached = create2();
2787
+ initialized = true;
2788
+ }
2789
+ if (Object.getOwnPropertyDescriptor(array, index)?.configurable === true) Object.defineProperty(array, index, {
2790
+ configurable: true,
2791
+ enumerable: true,
2792
+ writable: true,
2793
+ value: cached
2794
+ });
2795
+ return cached;
2796
+ },
2797
+ set(value) {
2798
+ if (Object.getOwnPropertyDescriptor(array, index)?.configurable === true) Object.defineProperty(array, index, {
2799
+ configurable: true,
2800
+ enumerable: true,
2801
+ writable: true,
2802
+ value
2803
+ });
2804
+ else if (Object.isFrozen(array)) throw new TypeError(`Cannot assign to read only array index '${index}'`);
2805
+ else {
2806
+ cached = value;
2807
+ initialized = true;
2808
+ }
2809
+ }
2810
+ });
2811
+ }
2812
+
2813
+ // node_modules/@pierre/diffs/dist/utils/tokenStyle.js
2814
+ var htmlStyleCache = /* @__PURE__ */ new WeakMap();
2815
+ function tokenStyle(token, cacheHtmlStyle = false) {
2816
+ const { htmlStyle } = token;
2817
+ if (htmlStyle != null) {
2818
+ let style2 = cacheHtmlStyle ? htmlStyleCache.get(htmlStyle) : void 0;
2819
+ if (style2 == null) {
2820
+ style2 = "";
2821
+ for (const name in htmlStyle) style2 += `${style2 === "" ? "" : ";"}${name}:${htmlStyle[name]}`;
2822
+ if (cacheHtmlStyle) htmlStyleCache.set(htmlStyle, style2);
2823
+ }
2824
+ return style2;
2825
+ }
2826
+ let style = token.color != null ? `color:${token.color}` : "";
2827
+ if (token.bgColor != null) style += `;background-color:${token.bgColor}`;
2828
+ if (token.fontStyle != null) {
2829
+ if ((token.fontStyle & 1) !== 0) style += ";font-style:italic";
2830
+ if ((token.fontStyle & 2) !== 0) style += ";font-weight:bold";
2831
+ const underline = (token.fontStyle & 4) !== 0;
2832
+ const strikethrough = (token.fontStyle & 8) !== 0;
2833
+ if (underline || strikethrough) style += `;text-decoration:${underline ? "underline" : ""}${underline && strikethrough ? " " : ""}${strikethrough ? "line-through" : ""}`;
2834
+ }
2835
+ return style.replace(/^;/, "");
2836
+ }
2837
+
2838
+ // node_modules/@pierre/diffs/dist/utils/wrapTokenFragments.js
2839
+ var NO_TOKEN = /* @__PURE__ */ Symbol("no-token");
2840
+ var MULTIPLE_TOKENS = /* @__PURE__ */ Symbol("multiple-tokens");
2841
+ function wrapTokenFragments(container) {
2842
+ const ownTokenChar = getTokenChar(container);
2843
+ if (ownTokenChar != null) return ownTokenChar;
2844
+ let containerTokenState = NO_TOKEN;
2845
+ const wrappedChildren = [];
2846
+ let currentTokenChildren = [];
2847
+ let currentTokenChar;
2848
+ const flushTokenChildren = () => {
2849
+ if (currentTokenChildren.length === 0 || currentTokenChar == null) {
2850
+ currentTokenChildren = [];
2851
+ currentTokenChar = void 0;
2852
+ return;
2853
+ }
2854
+ if (currentTokenChildren.length === 1) {
2855
+ const child = currentTokenChildren[0];
2856
+ if (child?.type === "element") {
2857
+ setTokenChar(child, currentTokenChar);
2858
+ for (const grandChild of child.children) stripTokenChar(grandChild);
2859
+ } else stripTokenChar(child);
2860
+ wrappedChildren.push(child);
2861
+ currentTokenChildren = [];
2862
+ currentTokenChar = void 0;
2863
+ return;
2864
+ }
2865
+ for (const child of currentTokenChildren) stripTokenChar(child);
2866
+ wrappedChildren.push(createHastElement({
2867
+ tagName: "span",
2868
+ properties: { "data-char": currentTokenChar },
2869
+ children: currentTokenChildren
2870
+ }));
2871
+ currentTokenChildren = [];
2872
+ currentTokenChar = void 0;
2873
+ };
2874
+ const mergeContainerTokenState = (childTokenState) => {
2875
+ if (childTokenState === NO_TOKEN) return;
2876
+ if (childTokenState === MULTIPLE_TOKENS) {
2877
+ containerTokenState = MULTIPLE_TOKENS;
2878
+ return;
2879
+ }
2880
+ if (containerTokenState === NO_TOKEN) {
2881
+ containerTokenState = childTokenState;
2882
+ return;
2883
+ }
2884
+ if (containerTokenState !== childTokenState) containerTokenState = MULTIPLE_TOKENS;
2885
+ };
2886
+ for (const child of container.children) {
2887
+ const childTokenState = child.type === "element" ? wrapTokenFragments(child) : NO_TOKEN;
2888
+ mergeContainerTokenState(childTokenState);
2889
+ if (typeof childTokenState !== "number") {
2890
+ flushTokenChildren();
2891
+ wrappedChildren.push(child);
2892
+ continue;
2893
+ }
2894
+ if (currentTokenChar != null && currentTokenChar !== childTokenState) flushTokenChildren();
2895
+ currentTokenChar ??= childTokenState;
2896
+ currentTokenChildren.push(child);
2897
+ }
2898
+ flushTokenChildren();
2899
+ container.children = wrappedChildren;
2900
+ return containerTokenState;
2901
+ }
2902
+ function getTokenChar(node) {
2903
+ const value = node.properties["data-char"];
2904
+ if (typeof value === "number") return value;
2905
+ }
2906
+ function stripTokenChar(node) {
2907
+ if (node.type !== "element") return;
2908
+ node.properties["data-char"] = void 0;
2909
+ for (const child of node.children) stripTokenChar(child);
2910
+ }
2911
+ function setTokenChar(node, char) {
2912
+ node.properties["data-char"] = char;
2913
+ }
2914
+
2915
+ // node_modules/@pierre/diffs/dist/utils/renderTokenLines.js
2916
+ function renderTokenLines(lines, { state, lazyLineAST = false, cacheHtmlStyles = false, useTokenTransformer = false, mergeWhitespaces = "always", decorations = [], lineOffsets = [] }) {
2917
+ let decorationsByLine;
2918
+ for (const decoration of decorations) {
2919
+ const byLine = decorationsByLine ??= /* @__PURE__ */ new Map();
2920
+ const normalized = {
2921
+ ...decoration,
2922
+ start: getDecorationPosition(decoration.start, lineOffsets),
2923
+ end: getDecorationPosition(decoration.end, lineOffsets)
2924
+ };
2925
+ const lastLine = Math.min(normalized.end.line, lines.length - 1);
2926
+ for (let line = normalized.start.line; line <= lastLine; line++) {
2927
+ let spans = byLine.get(line);
2928
+ if (spans == null) byLine.set(line, spans = []);
2929
+ spans.push(normalized);
2930
+ }
2931
+ }
2932
+ const renderLine = (tokens, lineIndex) => {
2933
+ let normalized;
2934
+ if (useTokenTransformer || mergeWhitespaces !== "never") {
2935
+ let pendingWhitespace = "";
2936
+ let whitespaceOffset = 0;
2937
+ for (let i = 0; i < tokens.length; i++) {
2938
+ let token = tokens[i];
2939
+ if (useTokenTransformer) {
2940
+ const content = token.content.trim();
2941
+ if (content !== "" && content !== token.content) {
2942
+ normalized ??= tokens.slice(0, i);
2943
+ const start = token.content.indexOf(content);
2944
+ if (start > 0) normalized.push({
2945
+ content: token.content.slice(0, start),
2946
+ offset: token.offset
2947
+ });
2948
+ normalized.push({
2949
+ ...token,
2950
+ content,
2951
+ offset: token.offset + start
2952
+ });
2953
+ const end = start + content.length;
2954
+ if (end < token.content.length) normalized.push({
2955
+ content: token.content.slice(end),
2956
+ offset: token.offset + end
2957
+ });
2958
+ continue;
2959
+ }
2960
+ } else {
2961
+ const decoratedWhitespace = ((token.fontStyle ?? 0) & 12) !== 0;
2962
+ if (!decoratedWhitespace && /^\s+$/.test(token.content) && i < tokens.length - 1) {
2963
+ normalized ??= tokens.slice(0, i);
2964
+ if (pendingWhitespace === "") whitespaceOffset = token.offset;
2965
+ pendingWhitespace += token.content;
2966
+ continue;
2967
+ }
2968
+ if (pendingWhitespace !== "" && normalized != null) {
2969
+ if (decoratedWhitespace) normalized.push({
2970
+ content: pendingWhitespace,
2971
+ offset: whitespaceOffset
2972
+ });
2973
+ else token = {
2974
+ ...token,
2975
+ content: pendingWhitespace + token.content,
2976
+ offset: whitespaceOffset
2977
+ };
2978
+ pendingWhitespace = "";
2979
+ }
2980
+ }
2981
+ normalized?.push(token);
2982
+ }
2983
+ }
2984
+ normalized ??= tokens;
2985
+ const line = {
2986
+ type: "element",
2987
+ tagName: state == null ? "span" : "div",
2988
+ properties: state == null ? { class: "line" } : {},
2989
+ children: []
2990
+ };
2991
+ const spans = decorationsByLine?.get(lineIndex);
2992
+ const column = spans == null ? appendTokens(line, normalized, useTokenTransformer, cacheHtmlStyles) : appendDecoratedTokens(line, normalized, spans, lineIndex, useTokenTransformer, cacheHtmlStyles);
2993
+ if (useTokenTransformer && column === 0) line.children.push({
2994
+ type: "element",
2995
+ tagName: "br",
2996
+ properties: {},
2997
+ children: []
2998
+ });
2999
+ if (useTokenTransformer && spans != null) wrapTokenFragments(line);
3000
+ return state == null ? line : processLine(line, lineIndex + 1, state);
3001
+ };
3002
+ if (!lazyLineAST) return lines.map(renderLine);
3003
+ const rows = new Array(lines.length);
3004
+ for (let index = 0; index < lines.length; index++) {
3005
+ const tokens = lines[index];
3006
+ setDeferredArrayItem(rows, index, () => renderLine(tokens, index));
3007
+ }
3008
+ return rows;
3009
+ }
3010
+ function appendTokens(line, tokens, useTokenTransformer, cacheHtmlStyles) {
3011
+ let column = 0;
3012
+ for (const token of tokens) {
3013
+ if (token.content === "") continue;
3014
+ line.children.push(createTokenSpan(token, tokenStyle(token, cacheHtmlStyles), token.content, column, useTokenTransformer));
3015
+ column += token.content.length;
3016
+ }
3017
+ return column;
3018
+ }
3019
+ function appendDecoratedTokens(line, tokens, spans, lineIndex, useTokenTransformer, cacheHtmlStyles) {
3020
+ if (spans.length > 1) spans.sort((a, b) => {
3021
+ if (a.start.line !== b.start.line) return a.start.line - b.start.line;
3022
+ if (a.start.character !== b.start.character) return a.start.character - b.start.character;
3023
+ if (a.end.line !== b.end.line) return b.end.line - a.end.line;
3024
+ return b.end.character - a.end.character;
3025
+ });
3026
+ const lineLength = tokens.reduce((length, token) => length + token.content.length, 0);
3027
+ const boundaries = [];
3028
+ for (let order = 0; order < spans.length; order++) {
3029
+ const decoration = spans[order];
3030
+ const range = {
3031
+ decoration,
3032
+ order,
3033
+ from: decoration.start.line === lineIndex ? decoration.start.character : 0,
3034
+ to: decoration.end.line === lineIndex ? decoration.end.character : lineLength
3035
+ };
3036
+ boundaries.push({
3037
+ position: Math.max(0, Math.min(range.from, lineLength)),
3038
+ range,
3039
+ start: true
3040
+ }, {
3041
+ position: Math.max(0, Math.min(range.to, lineLength)),
3042
+ range,
3043
+ start: false
3044
+ });
3045
+ }
3046
+ boundaries.sort((a, b) => a.position - b.position);
3047
+ const active = [];
3048
+ const decorationStack = [];
3049
+ let boundaryIndex = 0;
3050
+ const updateActive = (range, add) => {
3051
+ let low = 0;
3052
+ let high = active.length;
3053
+ while (low < high) {
3054
+ const middle = low + high >>> 1;
3055
+ if (active[middle].order < range.order) low = middle + 1;
3056
+ else high = middle;
3057
+ }
3058
+ if (add) active.splice(low, 0, range);
3059
+ else if (active[low] === range) active.splice(low, 1);
3060
+ };
3061
+ const getParent = () => {
3062
+ let parent2 = line;
3063
+ let depth = 0;
3064
+ for (const range of active) {
3065
+ if (decorationStack[depth]?.range !== range) {
3066
+ decorationStack.length = depth;
3067
+ const wrapper = {
3068
+ type: "element",
3069
+ tagName: "span",
3070
+ properties: { ...range.decoration.properties },
3071
+ children: []
3072
+ };
3073
+ parent2.children.push(wrapper);
3074
+ decorationStack.push({
3075
+ range,
3076
+ node: wrapper
3077
+ });
3078
+ }
3079
+ parent2 = decorationStack[depth++].node;
3080
+ }
3081
+ decorationStack.length = depth;
3082
+ return parent2;
3083
+ };
3084
+ let parent = line;
3085
+ const advanceBoundary = (position) => {
3086
+ const first = boundaryIndex;
3087
+ while (boundaries[boundaryIndex]?.position === position) boundaryIndex++;
3088
+ let hasMarker = false;
3089
+ for (let i = first; i < boundaryIndex; i++) {
3090
+ const { range, start } = boundaries[i];
3091
+ if (!start && range.from !== range.to && position < lineLength) updateActive(range, false);
3092
+ }
3093
+ for (let i = first; i < boundaryIndex; i++) {
3094
+ const { range, start } = boundaries[i];
3095
+ if (start && range.from <= position && range.to >= position && (range.to > position || range.from === position || position === lineLength)) {
3096
+ updateActive(range, true);
3097
+ if (range.from === range.to) hasMarker = true;
3098
+ }
3099
+ }
3100
+ if (hasMarker) {
3101
+ getParent();
3102
+ for (let i = first; i < boundaryIndex; i++) {
3103
+ const { range, start } = boundaries[i];
3104
+ if (start && range.from === range.to) updateActive(range, false);
3105
+ }
3106
+ }
3107
+ if (position < lineLength) parent = getParent();
3108
+ };
3109
+ let column = 0;
3110
+ for (const token of tokens) {
3111
+ if (token.content === "") continue;
3112
+ const start = column;
3113
+ const end = start + token.content.length;
3114
+ const style = tokenStyle(token, cacheHtmlStyles);
3115
+ while (column < end) {
3116
+ if (boundaries[boundaryIndex]?.position === column) advanceBoundary(column);
3117
+ const to = Math.min(end, boundaries[boundaryIndex]?.position ?? end);
3118
+ parent.children.push(createTokenSpan(token, style, column === start && to === end ? token.content : token.content.slice(column - start, to - start), start, useTokenTransformer));
3119
+ column = to;
3120
+ }
3121
+ }
3122
+ if (boundaries[boundaryIndex]?.position === column) advanceBoundary(column);
3123
+ return column;
3124
+ }
3125
+ function createTokenSpan(token, style, text2, start, useTokenTransformer) {
3126
+ const properties = token.htmlAttrs != null ? { ...token.htmlAttrs } : {};
3127
+ if (style !== "") properties.style = style;
3128
+ if (useTokenTransformer) properties["data-char"] = start;
3129
+ return {
3130
+ type: "element",
3131
+ tagName: "span",
3132
+ properties,
3133
+ children: [{
3134
+ type: "text",
3135
+ value: text2
3136
+ }]
3137
+ };
3138
+ }
3139
+ function getDecorationPosition(position, lineOffsets) {
3140
+ if (typeof position !== "number") return position;
3141
+ let low = 0;
3142
+ let high = lineOffsets.length;
3143
+ while (low + 1 < high) {
3144
+ const middle = low + high >>> 1;
3145
+ if (lineOffsets[middle] <= position) low = middle;
3146
+ else high = middle;
3147
+ }
3148
+ return {
3149
+ line: low,
3150
+ character: position - (lineOffsets[low] ?? 0)
3151
+ };
3152
+ }
3153
+
3154
+ // node_modules/@pierre/diffs/dist/utils/tokensToHtml.js
3155
+ function tokensToHtml(source, result, options, cacheHtmlStyles = false) {
3156
+ const lineOffsets = [0];
3157
+ if (options.decorations?.some((item) => typeof item.start === "number" || typeof item.end === "number") === true) for (let index = source.indexOf("\n"); index !== -1; index = source.indexOf("\n", index + 1)) lineOffsets.push(index + 1);
3158
+ const code = {
3159
+ type: "element",
3160
+ tagName: "code",
3161
+ properties: {},
3162
+ children: []
3163
+ };
3164
+ const lines = renderTokenLines(result.tokens, {
3165
+ decorations: options.decorations,
3166
+ mergeWhitespaces: options.mergeWhitespaces,
3167
+ lineOffsets,
3168
+ cacheHtmlStyles
3169
+ });
3170
+ for (let i = 0; i < lines.length; i++) {
3171
+ if (i > 0) code.children.push({
3172
+ type: "text",
3173
+ value: "\n"
3174
+ });
3175
+ code.children.push(lines[i]);
3176
+ }
3177
+ const root2 = {
3178
+ type: "root",
3179
+ children: [{
3180
+ type: "element",
3181
+ tagName: "pre",
3182
+ properties: {
3183
+ class: "diffs",
3184
+ style: result.rootStyle === false ? void 0 : result.rootStyle ?? [result.fg != null ? `color:${result.fg}` : "", result.bg != null ? `background-color:${result.bg}` : ""].filter(Boolean).join(";"),
3185
+ tabIndex: 0
3186
+ },
3187
+ children: [code]
3188
+ }]
3189
+ };
3190
+ return hastToHtml(root2);
3191
+ }
3192
+
3193
+ // node_modules/@pierre/diffs/dist/utils/appendItems.js
3194
+ function appendItems(target, items) {
3195
+ for (const item of items) target.push(item);
3196
+ }
3197
+
3198
+ export {
3199
+ ccount,
3200
+ DIFFS_TAG_NAME,
3201
+ GIT_DIFF_FILE_BREAK_REGEX,
3202
+ SPLIT_WITH_NEWLINES,
3203
+ FILENAME_HEADER_REGEX,
3204
+ INDEX_LINE_METADATA,
3205
+ HEADER_PREFIX_SLOT_ID,
3206
+ HEADER_FILENAME_SUFFIX_SLOT_ID,
3207
+ HEADER_METADATA_SLOT_ID,
3208
+ CUSTOM_HEADER_SLOT_ID,
3209
+ DEFAULT_THEMES,
3210
+ THEME_CSS_ATTRIBUTE,
3211
+ UNSAFE_CSS_ATTRIBUTE,
3212
+ DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE,
3213
+ DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY,
3214
+ DEFAULT_TOKENIZE_MAX_LENGTH,
3215
+ DEFAULT_EXPANDED_REGION,
3216
+ DEFAULT_RENDER_RANGE,
3217
+ EMPTY_LINE_ANNOTATIONS,
3218
+ EMPTY_RENDER_RANGE,
3219
+ HighlighterDisposedError,
3220
+ getHighlighterType,
3221
+ resolveHighlighterType,
3222
+ acquireHighlighterType,
3223
+ releaseHighlighterType,
3224
+ isWorkerContext,
3225
+ customThemes,
3226
+ createDiffsThemeResolver,
3227
+ hastToHtml,
3228
+ createTextNodeElement,
3229
+ createHastElement,
3230
+ createIconElement,
3231
+ createGutterWrapper,
3232
+ createGutterItem,
3233
+ createGutterGap,
3234
+ setDeferredArrayItem,
3235
+ renderTokenLines,
3236
+ tokensToHtml,
3237
+ appendItems
3238
+ };
3239
+ //# sourceMappingURL=chunk-KIDTSHLT.js.map