@copilotkitnext/react 0.0.22-alpha.7 → 0.0.22-alpha.8

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 (236) hide show
  1. package/package.json +4 -4
  2. package/dist/KaTeX_AMS-Regular-CYEKBG2K.woff +0 -0
  3. package/dist/KaTeX_AMS-Regular-JKX5W2C4.ttf +0 -0
  4. package/dist/KaTeX_AMS-Regular-U6PRYMIZ.woff2 +0 -0
  5. package/dist/KaTeX_Caligraphic-Bold-5QL5CMTE.woff2 +0 -0
  6. package/dist/KaTeX_Caligraphic-Bold-WZ3QSGD3.woff +0 -0
  7. package/dist/KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf +0 -0
  8. package/dist/KaTeX_Caligraphic-Regular-3LKEU76G.woff +0 -0
  9. package/dist/KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf +0 -0
  10. package/dist/KaTeX_Caligraphic-Regular-KX5MEWCF.woff2 +0 -0
  11. package/dist/KaTeX_Fraktur-Bold-2QVFK6NQ.woff2 +0 -0
  12. package/dist/KaTeX_Fraktur-Bold-T4SWXBMT.woff +0 -0
  13. package/dist/KaTeX_Fraktur-Bold-WGHVTYOR.ttf +0 -0
  14. package/dist/KaTeX_Fraktur-Regular-2PEIFJSJ.woff2 +0 -0
  15. package/dist/KaTeX_Fraktur-Regular-5U4OPH2X.ttf +0 -0
  16. package/dist/KaTeX_Fraktur-Regular-PQMHCIK6.woff +0 -0
  17. package/dist/KaTeX_Main-Bold-2GA4IZIN.woff +0 -0
  18. package/dist/KaTeX_Main-Bold-W5FBVCZM.ttf +0 -0
  19. package/dist/KaTeX_Main-Bold-YP5VVQRP.woff2 +0 -0
  20. package/dist/KaTeX_Main-BoldItalic-4P4C7HJH.woff +0 -0
  21. package/dist/KaTeX_Main-BoldItalic-N4V3DX7S.woff2 +0 -0
  22. package/dist/KaTeX_Main-BoldItalic-ODMLBJJQ.ttf +0 -0
  23. package/dist/KaTeX_Main-Italic-I43T2HSR.ttf +0 -0
  24. package/dist/KaTeX_Main-Italic-RELBIK7M.woff2 +0 -0
  25. package/dist/KaTeX_Main-Italic-SASNQFN2.woff +0 -0
  26. package/dist/KaTeX_Main-Regular-ARRPAO67.woff2 +0 -0
  27. package/dist/KaTeX_Main-Regular-P5I74A2A.woff +0 -0
  28. package/dist/KaTeX_Main-Regular-W74P5G27.ttf +0 -0
  29. package/dist/KaTeX_Math-BoldItalic-6EBV3DK5.woff +0 -0
  30. package/dist/KaTeX_Math-BoldItalic-K4WTGH3J.woff2 +0 -0
  31. package/dist/KaTeX_Math-BoldItalic-VB447A4D.ttf +0 -0
  32. package/dist/KaTeX_Math-Italic-6KGCHLFN.woff2 +0 -0
  33. package/dist/KaTeX_Math-Italic-KKK3USB2.woff +0 -0
  34. package/dist/KaTeX_Math-Italic-SON4MRCA.ttf +0 -0
  35. package/dist/KaTeX_SansSerif-Bold-RRNVJFFW.woff2 +0 -0
  36. package/dist/KaTeX_SansSerif-Bold-STQ6RXC7.ttf +0 -0
  37. package/dist/KaTeX_SansSerif-Bold-X5M5EMOD.woff +0 -0
  38. package/dist/KaTeX_SansSerif-Italic-HMPFTM52.woff2 +0 -0
  39. package/dist/KaTeX_SansSerif-Italic-PSN4QKYX.woff +0 -0
  40. package/dist/KaTeX_SansSerif-Italic-WTBAZBGY.ttf +0 -0
  41. package/dist/KaTeX_SansSerif-Regular-2TL3USAE.ttf +0 -0
  42. package/dist/KaTeX_SansSerif-Regular-OQCII6EP.woff +0 -0
  43. package/dist/KaTeX_SansSerif-Regular-XIQ62X4E.woff2 +0 -0
  44. package/dist/KaTeX_Script-Regular-72OLXYNA.ttf +0 -0
  45. package/dist/KaTeX_Script-Regular-A5IFOEBS.woff +0 -0
  46. package/dist/KaTeX_Script-Regular-APUWIHLP.woff2 +0 -0
  47. package/dist/KaTeX_Size1-Regular-4HRHTS65.woff +0 -0
  48. package/dist/KaTeX_Size1-Regular-5LRUTBFT.woff2 +0 -0
  49. package/dist/KaTeX_Size1-Regular-7K6AASVL.ttf +0 -0
  50. package/dist/KaTeX_Size2-Regular-222HN3GT.ttf +0 -0
  51. package/dist/KaTeX_Size2-Regular-K5ZHAIS6.woff +0 -0
  52. package/dist/KaTeX_Size2-Regular-LELKET5D.woff2 +0 -0
  53. package/dist/KaTeX_Size3-Regular-TLFPAHDE.woff +0 -0
  54. package/dist/KaTeX_Size3-Regular-UFCO6WCA.ttf +0 -0
  55. package/dist/KaTeX_Size3-Regular-WQRQ47UD.woff2 +0 -0
  56. package/dist/KaTeX_Size4-Regular-7PGNVPQK.ttf +0 -0
  57. package/dist/KaTeX_Size4-Regular-CDMV7U5C.woff2 +0 -0
  58. package/dist/KaTeX_Size4-Regular-PKMWZHNC.woff +0 -0
  59. package/dist/KaTeX_Typewriter-Regular-3F5K6SQ6.ttf +0 -0
  60. package/dist/KaTeX_Typewriter-Regular-MJMFSK64.woff +0 -0
  61. package/dist/KaTeX_Typewriter-Regular-VBYJ4NRC.woff2 +0 -0
  62. package/dist/angular-html-LD6QEAZE.mjs +0 -7
  63. package/dist/angular-html-LD6QEAZE.mjs.map +0 -1
  64. package/dist/angular-ts-FGK7I2F5.mjs +0 -37
  65. package/dist/angular-ts-FGK7I2F5.mjs.map +0 -1
  66. package/dist/angular-ts-XZTE5LQS.mjs +0 -37
  67. package/dist/angular-ts-XZTE5LQS.mjs.map +0 -1
  68. package/dist/apl-VB2EG5RZ.mjs +0 -22
  69. package/dist/apl-VB2EG5RZ.mjs.map +0 -1
  70. package/dist/architectureDiagram-VXUJARFQ-PPLKSFYC.mjs +0 -8712
  71. package/dist/architectureDiagram-VXUJARFQ-PPLKSFYC.mjs.map +0 -1
  72. package/dist/blade-EZDWULER.mjs +0 -26
  73. package/dist/blade-EZDWULER.mjs.map +0 -1
  74. package/dist/blade-HS4Z7O3Y.mjs +0 -26
  75. package/dist/blade-HS4Z7O3Y.mjs.map +0 -1
  76. package/dist/blockDiagram-VD42YOAC-7SIEWHYD.mjs +0 -3618
  77. package/dist/blockDiagram-VD42YOAC-7SIEWHYD.mjs.map +0 -1
  78. package/dist/c4Diagram-YG6GDRKO-G2UUBRHQ.mjs +0 -2495
  79. package/dist/c4Diagram-YG6GDRKO-G2UUBRHQ.mjs.map +0 -1
  80. package/dist/chunk-2BAFECUC.mjs +0 -28
  81. package/dist/chunk-2BAFECUC.mjs.map +0 -1
  82. package/dist/chunk-BF5LDW2L.mjs +0 -65
  83. package/dist/chunk-BF5LDW2L.mjs.map +0 -1
  84. package/dist/chunk-BUEC2HNL.mjs +0 -762
  85. package/dist/chunk-BUEC2HNL.mjs.map +0 -1
  86. package/dist/chunk-CRGJ2YCV.mjs +0 -109
  87. package/dist/chunk-CRGJ2YCV.mjs.map +0 -1
  88. package/dist/chunk-DKZXT4VQ.mjs +0 -19
  89. package/dist/chunk-DKZXT4VQ.mjs.map +0 -1
  90. package/dist/chunk-DYQXFOGA.mjs +0 -34
  91. package/dist/chunk-DYQXFOGA.mjs.map +0 -1
  92. package/dist/chunk-ENI667QL.mjs +0 -806
  93. package/dist/chunk-ENI667QL.mjs.map +0 -1
  94. package/dist/chunk-GEUZOPED.mjs +0 -1834
  95. package/dist/chunk-GEUZOPED.mjs.map +0 -1
  96. package/dist/chunk-GU7334FJ.mjs +0 -538
  97. package/dist/chunk-GU7334FJ.mjs.map +0 -1
  98. package/dist/chunk-HNKEYT4A.mjs +0 -4693
  99. package/dist/chunk-HNKEYT4A.mjs.map +0 -1
  100. package/dist/chunk-HTMHAYGC.mjs +0 -14
  101. package/dist/chunk-HTMHAYGC.mjs.map +0 -1
  102. package/dist/chunk-JRLFMJ6U.mjs +0 -1923
  103. package/dist/chunk-JRLFMJ6U.mjs.map +0 -1
  104. package/dist/chunk-JYRND4DC.mjs +0 -22
  105. package/dist/chunk-JYRND4DC.mjs.map +0 -1
  106. package/dist/chunk-KFEPUFID.mjs +0 -52
  107. package/dist/chunk-KFEPUFID.mjs.map +0 -1
  108. package/dist/chunk-M3UH7XZX.mjs +0 -6222
  109. package/dist/chunk-M3UH7XZX.mjs.map +0 -1
  110. package/dist/chunk-ND4RYWG7.mjs +0 -12
  111. package/dist/chunk-ND4RYWG7.mjs.map +0 -1
  112. package/dist/chunk-VLSLBZME.mjs +0 -51
  113. package/dist/chunk-VLSLBZME.mjs.map +0 -1
  114. package/dist/chunk-WJBV3P3K.mjs +0 -55
  115. package/dist/chunk-WJBV3P3K.mjs.map +0 -1
  116. package/dist/chunk-X2TQ2HDS.mjs +0 -44
  117. package/dist/chunk-X2TQ2HDS.mjs.map +0 -1
  118. package/dist/chunk-YIDZOZG3.mjs +0 -103
  119. package/dist/chunk-YIDZOZG3.mjs.map +0 -1
  120. package/dist/chunk-YLW7IP7V.mjs +0 -14525
  121. package/dist/chunk-YLW7IP7V.mjs.map +0 -1
  122. package/dist/classDiagram-2ON5EDUG-WUV4PTK5.mjs +0 -38
  123. package/dist/classDiagram-2ON5EDUG-WUV4PTK5.mjs.map +0 -1
  124. package/dist/classDiagram-v2-WZHVMYZB-J4QNVYPE.mjs +0 -38
  125. package/dist/classDiagram-v2-WZHVMYZB-J4QNVYPE.mjs.map +0 -1
  126. package/dist/cobol-PNTKRG5I.mjs +0 -17
  127. package/dist/cobol-PNTKRG5I.mjs.map +0 -1
  128. package/dist/crystal-BSMHK65A.mjs +0 -23
  129. package/dist/crystal-BSMHK65A.mjs.map +0 -1
  130. package/dist/dagre-6UL2VRFP-XN667C7N.mjs +0 -710
  131. package/dist/dagre-6UL2VRFP-XN667C7N.mjs.map +0 -1
  132. package/dist/diagram-PSM6KHXK-VA2CF5LZ.mjs +0 -538
  133. package/dist/diagram-PSM6KHXK-VA2CF5LZ.mjs.map +0 -1
  134. package/dist/diagram-QEK2KX5R-H3EHES33.mjs +0 -319
  135. package/dist/diagram-QEK2KX5R-H3EHES33.mjs.map +0 -1
  136. package/dist/diagram-S2PKOQOG-FOQYPB22.mjs +0 -231
  137. package/dist/diagram-S2PKOQOG-FOQYPB22.mjs.map +0 -1
  138. package/dist/edge-JOI74UJM.mjs +0 -19
  139. package/dist/edge-JOI74UJM.mjs.map +0 -1
  140. package/dist/elixir-FEL6DDPJ.mjs +0 -15
  141. package/dist/elixir-FEL6DDPJ.mjs.map +0 -1
  142. package/dist/erDiagram-Q2GNP2WA-IXNJSD2A.mjs +0 -1175
  143. package/dist/erDiagram-Q2GNP2WA-IXNJSD2A.mjs.map +0 -1
  144. package/dist/erb-Q2D6FWX3.mjs +0 -32
  145. package/dist/erb-Q2D6FWX3.mjs.map +0 -1
  146. package/dist/flowDiagram-NV44I4VS-ISKGEBMD.mjs +0 -2349
  147. package/dist/flowDiagram-NV44I4VS-ISKGEBMD.mjs.map +0 -1
  148. package/dist/ganttDiagram-LVOFAZNH-OAL7V7IR.mjs +0 -2344
  149. package/dist/ganttDiagram-LVOFAZNH-OAL7V7IR.mjs.map +0 -1
  150. package/dist/gitGraphDiagram-NY62KEGX-RKN2CCAZ.mjs +0 -1221
  151. package/dist/gitGraphDiagram-NY62KEGX-RKN2CCAZ.mjs.map +0 -1
  152. package/dist/glimmer-js-B32LCGFA.mjs +0 -19
  153. package/dist/glimmer-js-B32LCGFA.mjs.map +0 -1
  154. package/dist/glimmer-ts-4PHFAQCG.mjs +0 -19
  155. package/dist/glimmer-ts-4PHFAQCG.mjs.map +0 -1
  156. package/dist/hack-3ZNSL4KD.mjs +0 -17
  157. package/dist/hack-3ZNSL4KD.mjs.map +0 -1
  158. package/dist/handlebars-ICBC3AZK.mjs +0 -19
  159. package/dist/handlebars-ICBC3AZK.mjs.map +0 -1
  160. package/dist/html-BGY5P773.mjs +0 -6
  161. package/dist/html-BGY5P773.mjs.map +0 -1
  162. package/dist/html-derivative-3HGXHHFE.mjs +0 -7
  163. package/dist/html-derivative-3HGXHHFE.mjs.map +0 -1
  164. package/dist/index.css +0 -2385
  165. package/dist/index.css.map +0 -1
  166. package/dist/infoDiagram-F6ZHWCRC-Z7KMJJ45.mjs +0 -49
  167. package/dist/infoDiagram-F6ZHWCRC-Z7KMJJ45.mjs.map +0 -1
  168. package/dist/jinja-WL6HNMB5.mjs +0 -22
  169. package/dist/jinja-WL6HNMB5.mjs.map +0 -1
  170. package/dist/journeyDiagram-XKPGCS4Q-BMTOBHZ4.mjs +0 -1259
  171. package/dist/journeyDiagram-XKPGCS4Q-BMTOBHZ4.mjs.map +0 -1
  172. package/dist/kanban-definition-3W4ZIXB7-MVFRARF4.mjs +0 -1062
  173. package/dist/kanban-definition-3W4ZIXB7-MVFRARF4.mjs.map +0 -1
  174. package/dist/katex-4R42CMCB.mjs +0 -4
  175. package/dist/katex-4R42CMCB.mjs.map +0 -1
  176. package/dist/liquid-YS3YPW54.mjs +0 -19
  177. package/dist/liquid-YS3YPW54.mjs.map +0 -1
  178. package/dist/logo-mark-OHF64HAY.svg +0 -8
  179. package/dist/mdc-A66KLOT4.mjs +0 -20
  180. package/dist/mdc-A66KLOT4.mjs.map +0 -1
  181. package/dist/mermaid.core-4OWTNZSL.mjs +0 -1587
  182. package/dist/mermaid.core-4OWTNZSL.mjs.map +0 -1
  183. package/dist/mermaid.core-7AUE4M6E.mjs +0 -1587
  184. package/dist/mermaid.core-7AUE4M6E.mjs.map +0 -1
  185. package/dist/mindmap-definition-VGOIOE7T-7FMA2CPY.mjs +0 -1112
  186. package/dist/mindmap-definition-VGOIOE7T-7FMA2CPY.mjs.map +0 -1
  187. package/dist/mindmap-definition-VGOIOE7T-VNF7JZOY.mjs +0 -1112
  188. package/dist/mindmap-definition-VGOIOE7T-VNF7JZOY.mjs.map +0 -1
  189. package/dist/nim-HUBKBJHZ.mjs +0 -26
  190. package/dist/nim-HUBKBJHZ.mjs.map +0 -1
  191. package/dist/perl-QHAMWWQ5.mjs +0 -22
  192. package/dist/perl-QHAMWWQ5.mjs.map +0 -1
  193. package/dist/php-FS5GKSPN.mjs +0 -11
  194. package/dist/php-FS5GKSPN.mjs.map +0 -1
  195. package/dist/pieDiagram-ADFJNKIX-EER3WTCU.mjs +0 -200
  196. package/dist/pieDiagram-ADFJNKIX-EER3WTCU.mjs.map +0 -1
  197. package/dist/pug-WTY5FMEA.mjs +0 -17
  198. package/dist/pug-WTY5FMEA.mjs.map +0 -1
  199. package/dist/quadrantDiagram-AYHSOK5B-WQCIRJOK.mjs +0 -1344
  200. package/dist/quadrantDiagram-AYHSOK5B-WQCIRJOK.mjs.map +0 -1
  201. package/dist/razor-BAB7LFWZ.mjs +0 -17
  202. package/dist/razor-BAB7LFWZ.mjs.map +0 -1
  203. package/dist/requirementDiagram-UZGBJVZJ-RVM6Q2TT.mjs +0 -1179
  204. package/dist/requirementDiagram-UZGBJVZJ-RVM6Q2TT.mjs.map +0 -1
  205. package/dist/rst-AY7U27YM.mjs +0 -41
  206. package/dist/rst-AY7U27YM.mjs.map +0 -1
  207. package/dist/rst-Y2VLYMJI.mjs +0 -41
  208. package/dist/rst-Y2VLYMJI.mjs.map +0 -1
  209. package/dist/ruby-K4BNEYWG.mjs +0 -22
  210. package/dist/ruby-K4BNEYWG.mjs.map +0 -1
  211. package/dist/sankeyDiagram-TZEHDZUN-H7BVEXGO.mjs +0 -1230
  212. package/dist/sankeyDiagram-TZEHDZUN-H7BVEXGO.mjs.map +0 -1
  213. package/dist/sequenceDiagram-WL72ISMW-XBGZSOYI.mjs +0 -3885
  214. package/dist/sequenceDiagram-WL72ISMW-XBGZSOYI.mjs.map +0 -1
  215. package/dist/soy-5QMQV2KL.mjs +0 -15
  216. package/dist/soy-5QMQV2KL.mjs.map +0 -1
  217. package/dist/stateDiagram-FKZM4ZOC-WRIBVFSJ.mjs +0 -467
  218. package/dist/stateDiagram-FKZM4ZOC-WRIBVFSJ.mjs.map +0 -1
  219. package/dist/stateDiagram-v2-4FDKWEC3-SPDO7R6D.mjs +0 -37
  220. package/dist/stateDiagram-v2-4FDKWEC3-SPDO7R6D.mjs.map +0 -1
  221. package/dist/templ-VSARRSO2.mjs +0 -17
  222. package/dist/templ-VSARRSO2.mjs.map +0 -1
  223. package/dist/timeline-definition-IT6M3QCI-PX4A2RIH.mjs +0 -1226
  224. package/dist/timeline-definition-IT6M3QCI-PX4A2RIH.mjs.map +0 -1
  225. package/dist/ts-tags-YK3Q2LIW.mjs +0 -68
  226. package/dist/ts-tags-YK3Q2LIW.mjs.map +0 -1
  227. package/dist/twig-HNMWLN6H.mjs +0 -40
  228. package/dist/twig-HNMWLN6H.mjs.map +0 -1
  229. package/dist/vue-7OSX6ZY5.mjs +0 -10
  230. package/dist/vue-7OSX6ZY5.mjs.map +0 -1
  231. package/dist/vue-html-AQH2V2EU.mjs +0 -20
  232. package/dist/vue-html-AQH2V2EU.mjs.map +0 -1
  233. package/dist/vue-vine-GCYT2IGV.mjs +0 -29
  234. package/dist/vue-vine-GCYT2IGV.mjs.map +0 -1
  235. package/dist/xychartDiagram-PRI3JC2R-65KZQZDU.mjs +0 -1865
  236. package/dist/xychartDiagram-PRI3JC2R-65KZQZDU.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/channel.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/lang.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/unit.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/index.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/constants.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/type.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/index.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/reusable.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/hex.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/hsl.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/keyword.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/rgb.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/index.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/change.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/rgba.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/channel.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/luminance.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/is_light.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/is_dark.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/adjust_channel.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/lighten.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/darken.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/adjust.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/mix.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/invert.js","../../../node_modules/.pnpm/dompurify@3.2.7/node_modules/dompurify/src/utils.ts","../../../node_modules/.pnpm/dompurify@3.2.7/node_modules/dompurify/src/tags.ts","../../../node_modules/.pnpm/dompurify@3.2.7/node_modules/dompurify/src/attrs.ts","../../../node_modules/.pnpm/dompurify@3.2.7/node_modules/dompurify/src/regexp.ts","../../../node_modules/.pnpm/dompurify@3.2.7/node_modules/dompurify/src/purify.ts","../../../node_modules/.pnpm/mermaid@11.12.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.mjs"],"names":["channel","channels","channel_default","luminance","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","Object","freeze","seal","create","apply","construct","Reflect","x","func","thisArg","_len","arguments","length","args","Array","_key","Func","_len2","_key2","arrayForEach","unapply","prototype","forEach","arrayLastIndexOf","lastIndexOf","arrayPop","pop","arrayPush","push","arraySplice","splice","stringToLowerCase","String","toLowerCase","stringToString","toString","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","objectHasOwnProperty","hasOwnProperty","regExpTest","RegExp","test","typeErrorCreate","unconstruct","TypeError","lastIndex","_len3","_key3","_len4","_key4","addToSet","set","array","transformCaseFunc","l","element","lcElement","cleanArray","index","isPropertyExist","clone","object","newObject","property","value","isArray","constructor","lookupGetter","prop","desc","get","fallbackValue","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","text","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","NODE_TYPE","progressingInstruction","comment","document","getGlobal","window","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","createHTML","createScriptURL","scriptUrl","_","console","warn","_createHooksMap","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createDOMPurify","undefined","DOMPurify","root","version","VERSION","removed","nodeType","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","createElement","content","ownerDocument","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","createHTMLDocument","EXPRESSIONS","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","TRUSTED_TYPES_POLICY","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","namespaceURI","parentTagName","Boolean","_forceRemove","node","removeChild","_removeAttribute","name","attribute","getAttributeNode","from","removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","childNodes","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","nodeName","textContent","attributes","hasChildNodes","_isNode","_executeHooks","currentNode","data","hook","_sanitizeElements","allowedTags","firstElementChild","_isBasicCustomElement","parentNode","childCount","i","childClone","__removalCount","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","initValue","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","returnNode","appendChild","firstChild","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":"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A,CAAO,CACzB,GAAA,EACA,MAAA,EACA,SAAA,EACA,SAAA,EACA,MAAA,EACA,SAAA,EACA,OAAA,EACA,OAAA,EACA,GAAA,EACA,KAAA,EACA,KAAA,EACA,KAAA,EACA,OAAA,EACA,YAAA,EACA,MAAA,EACA,IAAA,EACA,QAAA,EACA,QAAA,EACA,SAAA,EACA,QAAA,EACA,MAAA,EACA,MAAA,EACA,KAAA,EACA,UAAA,EACA,SAAA,EACA,MAAA,EACA,UAAA,EACA,IAAA,EACA,WAAA,EACA,KAAA,EACA,SAAA,EACA,KAAA,EACA,QAAA,EACA,KAAA,EACA,KAAA,EACA,IAAA,EACA,IAAA,EACA,SAAA,EACA,IAAA,EACA,UAAA,EACA,YAAA,EACA,QAAA,EACA,MAAA,EACA,QAAA,EACA,MAAA,EACA,IAAA,EACA,IAAA,EACA,IAAA,EACA,IAAA,EACA,IAAA,EACA,IAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,EACA,IAAA,EACA,MAAA,EACA,GAAA,EACA,KAAA,EACA,SACA,KAAA,EACA,KAAA,EACA,OAAA,EACA,QAAA,EACA,IAAA,EACA,MAAA,EACA,KAAA,EACA,MAAA,EACA,SAAA,EACA,MAAA,EACA,UAAA,EACA,OAAA,EACA,KAAA,EACA,MAAA,EACA,IAAA,EACA,UAAA,EACA,QAAA,EACA,QAAA,EACA,GAAA,EACA,SAAA,EACA,KAAA,EACA,UAAA,EACA,GAAA,EACA,IAAA,EACA,IAAA,EACA,MAAA,EACA,GAAA,EACA,MAAA,EACA,QAAA,EACA,SAAA,EACA,QAAA,EACA,QAAA,EACA,MAAA,EACA,OAAA,EACA,QAAA,EACA,QAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,EACA,OAAA,EACA,KAAA,EACA,SAAA,EACA,KAAA,EACA,OAAA,EACA,OAAA,EACA,IAAA,EACA,UAAA,EACA,UAAA,EACA,OAAA,EACA,IAAA,EACA,OAAA,EACA,MAAA,EACA,IAAA,EACA,OAAA,EACA,IAAA,EACA,GAAA,EACA,IAAA,EACA,KAAA,EACA,OAAA,EACA,KAAK,CACG,CAAA;AAEH,IAAM+E,KAAAA,GAAM/E,OAAO,CACxB,KAAA,EACA,KACA,UAAA,EACA,aAAA,EACA,cAAA,EACA,cAAA,EACA,eAAA,EACA,kBAAA,EACA,UACA,UAAA,EACA,MAAA,EACA,MAAA,EACA,SAAA,EACA,cAAA,EACA,aAAA,EACA,UACA,MAAA,EACA,GAAA,EACA,OAAA,EACA,UAAA,EACA,OAAA,EACA,OAAA,EACA,aACA,MAAA,EACA,gBAAA,EACA,QAAA,EACA,MAAA,EACA,UAAA,EACA,OAAA,EACA,QACA,MAAA,EACA,SAAA,EACA,SAAA,EACA,UAAA,EACA,gBAAA,EACA,MAAA,EACA,QACA,MAAA,EACA,OAAA,EACA,QAAA,EACA,QAAA,EACA,MAAA,EACA,UAAA,EACA,SACA,MAAA,EACA,OAAA,EACA,MAAA,EACA,OAAO,CACC,CAAA;AAEH,IAAMgF,UAAAA,GAAahF,MAAAA,CAAO,CAC/B,SAAA,EACA,eAAA,EACA,qBAAA,EACA,aAAA,EACA,kBAAA,EACA,mBAAA,EACA,mBAAA,EACA,gBAAA,EACA,cAAA,EACA,SAAA,EACA,SAAA,EACA,SAAA,EACA,SAAA,EACA,SAAA,EACA,gBAAA,EACA,SAAA,EACA,SAAA,EACA,aAAA,EACA,cAAA,EACA,UAAA,EACA,cAAA,EACA,oBAAA,EACA,aAAA,EACA,QAAA,EACA,cAAc,CACN,CAAA;AAMH,IAAMiF,aAAAA,GAAgBjF,MAAAA,CAAO,CAClC,SAAA,EACA,eAAA,EACA,UACA,SAAA,EACA,WAAA,EACA,kBAAA,EACA,gBAAA,EACA,eAAA,EACA,eAAA,EACA,iBACA,OAAA,EACA,WAAA,EACA,MAAA,EACA,cAAA,EACA,WAAA,EACA,SAAA,EACA,eAAA,EACA,QAAA,EACA,KAAA,EACA,YAAA,EACA,SAAA,EACA,KAAK,CACG,CAAA;AAEH,IAAMkF,QAAAA,GAASlF,MAAAA,CAAO,CAC3B,MAAA,EACA,YACA,QAAA,EACA,SAAA,EACA,OAAA,EACA,QAAA,EACA,IAAA,EACA,YAAA,EACA,eAAA,EACA,IAAA,EACA,MACA,OAAA,EACA,SAAA,EACA,UAAA,EACA,OAAA,EACA,MAAA,EACA,IAAA,EACA,QAAA,EACA,OAAA,EACA,UACA,MAAA,EACA,MAAA,EACA,SAAA,EACA,QAAA,EACA,OACA,OAAA,EACA,KAAA,EACA,QAAA,EACA,YAAA,EACA,aAAa,CACL,CAAA;AAIH,IAAMmF,mBAAmBnF,MAAAA,CAAO,CACrC,WACA,aAAA,EACA,YAAA,EACA,YACA,WAAA,EACA,SAAA,EACA,SAAA,EACA,QAAA,EACA,UACA,OAAA,EACA,WAAA,EACA,cACA,gBAAA,EACA,aAAA,EACA,MAAM,CACE,CAAA;AAEH,IAAMoF,IAAAA,GAAOpF,MAAAA,CAAO,CAAC,OAAO,CAAU,CAAA;AC3RtC,IAAM8E,IAAAA,GAAO9E,MAAAA,CAAO,CACzB,QAAA,EACA,QAAA,EACA,OAAA,EACA,KAAA,EACA,gBAAA,EACA,cAAA,EACA,sBAAA,EACA,UAAA,EACA,YAAA,EACA,SAAA,EACA,QAAA,EACA,SAAA,EACA,aAAA,EACA,aAAA,EACA,SAAA,EACA,MAAA,EACA,OAAA,EACA,OAAA,EACA,OAAA,EACA,MAAA,EACA,SAAA,EACA,UAAA,EACA,cAAA,EACA,QAAA,EACA,aAAA,EACA,UAAA,EACA,YACA,SAAA,EACA,KAAA,EACA,UAAA,EACA,yBAAA,EACA,uBAAA,EACA,UAAA,EACA,WAAA,EACA,SAAA,EACA,cAAA,EACA,aAAA,EACA,MAAA,EACA,KAAA,EACA,SAAA,EACA,QAAA,EACA,QAAA,EACA,MAAA,EACA,MAAA,EACA,UAAA,EACA,IAAA,EACA,OAAA,EACA,WAAA,EACA,WAAA,EACA,OAAA,EACA,MAAA,EACA,OAAA,EACA,MAAA,EACA,MAAA,EACA,SAAA,EACA,MAAA,EACA,KAAA,EACA,OACA,WAAA,EACA,OAAA,EACA,QAAA,EACA,KAAA,EACA,WAAA,EACA,UAAA,EACA,OAAA,EACA,MAAA,EACA,OAAA,EACA,SAAA,EACA,YAAA,EACA,QAAA,EACA,MAAA,EACA,SAAA,EACA,MAAA,EACA,SAAA,EACA,aAAA,EACA,aAAA,EACA,SAAA,EACA,eAAA,EACA,qBAAA,EACA,QAAA,EACA,SAAA,EACA,SAAA,EACA,YAAA,EACA,UAAA,EACA,KAAA,EACA,UAAA,EACA,KAAA,EACA,UAAA,EACA,QACA,MAAA,EACA,SAAA,EACA,YAAA,EACA,OAAA,EACA,UAAA,EACA,OAAA,EACA,MAAA,EACA,OAAA,EACA,MAAA,EACA,MAAA,EACA,SAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,EACA,MAAA,EACA,OAAA,EACA,SAAA,EACA,UAAA,EACA,OAAA,EACA,WAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,EACA,OAAA,EACA,OAAA,EACA,MAAA,EACA,OAAA,EACA,MAAM,CACE,CAAA;AAEH,IAAM+E,GAAAA,GAAM/E,OAAO,CACxB,eAAA,EACA,cACA,UAAA,EACA,oBAAA,EACA,aACA,QAAA,EACA,eAAA,EACA,iBACA,SAAA,EACA,eAAA,EACA,kBACA,OAAA,EACA,MAAA,EACA,MACA,OAAA,EACA,MAAA,EACA,iBACA,WAAA,EACA,WAAA,EACA,SACA,qBAAA,EACA,6BAAA,EACA,iBACA,iBAAA,EACA,IAAA,EACA,MACA,GAAA,EACA,IAAA,EACA,MACA,iBAAA,EACA,WAAA,EACA,WACA,SAAA,EACA,KAAA,EACA,YACA,WAAA,EACA,KAAA,EACA,YACA,MAAA,EACA,cAAA,EACA,aACA,QAAA,EACA,aAAA,EACA,eACA,eAAA,EACA,aAAA,EACA,aACA,kBAAA,EACA,cAAA,EACA,cACA,cAAA,EACA,aAAA,EACA,MACA,IAAA,EACA,IAAA,EACA,MACA,YAAA,EACA,UAAA,EACA,iBACA,mBAAA,EACA,QAAA,EACA,QACA,IAAA,EACA,iBAAA,EACA,MACA,KAAA,EACA,WAAA,EACA,KACA,IAAA,EACA,IAAA,EACA,MACA,IAAA,EACA,SAAA,EACA,aACA,YAAA,EACA,UAAA,EACA,QACA,cAAA,EACA,gBAAA,EACA,gBACA,kBAAA,EACA,gBAAA,EACA,SACA,YAAA,EACA,YAAA,EACA,gBACA,cAAA,EACA,aAAA,EACA,aAAA,EACA,kBAAA,EACA,WAAA,EACA,KAAA,EACA,QACA,OAAA,EACA,QAAA,EACA,QACA,KAAA,EACA,MAAA,EACA,cACA,QAAA,EACA,UAAA,EACA,WACA,OAAA,EACA,QAAA,EACA,eACA,QAAA,EACA,UAAA,EACA,eACA,MAAA,EACA,YAAA,EACA,uBACA,kBAAA,EACA,cAAA,EACA,UACA,eAAA,EACA,qBAAA,EACA,kBACA,GAAA,EACA,IAAA,EACA,MACA,QAAA,EACA,MAAA,EACA,QACA,aAAA,EACA,WAAA,EACA,WACA,QAAA,EACA,QAAA,EACA,SACA,MAAA,EACA,iBAAA,EACA,SACA,kBAAA,EACA,kBAAA,EACA,gBACA,aAAA,EACA,cAAA,EACA,eACA,YAAA,EACA,cAAA,EACA,oBACA,mBAAA,EACA,gBAAA,EACA,mBACA,mBAAA,EACA,gBAAA,EACA,UACA,cAAA,EACA,OAAA,EACA,gBACA,gBAAA,EACA,UAAA,EACA,eACA,SAAA,EACA,SAAA,EACA,aACA,kBAAA,EACA,aAAA,EACA,mBACA,gBAAA,EACA,YAAA,EACA,QACA,IAAA,EACA,IAAA,EACA,WACA,QAAA,EACA,SAAA,EACA,cACA,SAAA,EACA,YAAA,EACA,iBACA,eAAA,EACA,OAAA,EACA,gBACA,MAAA,EACA,cAAA,EACA,oBACA,kBAAA,EACA,GAAA,EACA,MACA,IAAA,EACA,OAAA,EACA,KACA,IAAA,EACA,IAAA,EACA,GAAA,EACA,YAAY,CACJ,CAAA;AAEH,IAAMkF,MAAAA,GAASlF,MAAAA,CAAO,CAC3B,QAAA,EACA,aAAA,EACA,OAAA,EACA,UAAA,EACA,OAAA,EACA,cAAA,EACA,aAAA,EACA,YAAA,EACA,YAAA,EACA,OAAA,EACA,OACA,SAAA,EACA,cAAA,EACA,UAAA,EACA,OAAA,EACA,OAAA,EACA,QAAA,EACA,MAAA,EACA,IAAA,EACA,SAAA,EACA,QAAA,EACA,eAAA,EACA,QAAA,EACA,QAAA,EACA,gBAAA,EACA,aACA,UAAA,EACA,aAAA,EACA,SAAA,EACA,S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","file":"chunk-HNKEYT4A.mjs","sourcesContent":["/* IMPORT */\n/* MAIN */\nconst Channel = {\n /* CLAMP */\n min: {\n r: 0,\n g: 0,\n b: 0,\n s: 0,\n l: 0,\n a: 0\n },\n max: {\n r: 255,\n g: 255,\n b: 255,\n h: 360,\n s: 100,\n l: 100,\n a: 1\n },\n clamp: {\n r: (r) => r >= 255 ? 255 : (r < 0 ? 0 : r),\n g: (g) => g >= 255 ? 255 : (g < 0 ? 0 : g),\n b: (b) => b >= 255 ? 255 : (b < 0 ? 0 : b),\n h: (h) => h % 360,\n s: (s) => s >= 100 ? 100 : (s < 0 ? 0 : s),\n l: (l) => l >= 100 ? 100 : (l < 0 ? 0 : l),\n a: (a) => a >= 1 ? 1 : (a < 0 ? 0 : a)\n },\n /* CONVERSION */\n //SOURCE: https://planetcalc.com/7779\n toLinear: (c) => {\n const n = c / 255;\n return c > .03928 ? Math.pow(((n + .055) / 1.055), 2.4) : n / 12.92;\n },\n //SOURCE: https://gist.github.com/mjackson/5311256\n hue2rgb: (p, q, t) => {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n },\n hsl2rgb: ({ h, s, l }, channel) => {\n if (!s)\n return l * 2.55; // Achromatic\n h /= 360;\n s /= 100;\n l /= 100;\n const q = (l < .5) ? l * (1 + s) : (l + s) - (l * s);\n const p = 2 * l - q;\n switch (channel) {\n case 'r': return Channel.hue2rgb(p, q, h + 1 / 3) * 255;\n case 'g': return Channel.hue2rgb(p, q, h) * 255;\n case 'b': return Channel.hue2rgb(p, q, h - 1 / 3) * 255;\n }\n },\n rgb2hsl: ({ r, g, b }, channel) => {\n r /= 255;\n g /= 255;\n b /= 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n if (channel === 'l')\n return l * 100;\n if (max === min)\n return 0; // Achromatic\n const d = max - min;\n const s = (l > .5) ? d / (2 - max - min) : d / (max + min);\n if (channel === 's')\n return s * 100;\n switch (max) {\n case r: return ((g - b) / d + (g < b ? 6 : 0)) * 60;\n case g: return ((b - r) / d + 2) * 60;\n case b: return ((r - g) / d + 4) * 60;\n default: return -1; //TSC: TypeScript is stupid and complains if there isn't this useless default statement\n }\n }\n};\n/* EXPORT */\nexport default Channel;\n","/* MAIN */\nconst Lang = {\n /* API */\n clamp: (number, lower, upper) => {\n if (lower > upper)\n return Math.min(lower, Math.max(upper, number));\n return Math.min(upper, Math.max(lower, number));\n },\n round: (number) => {\n return Math.round(number * 10000000000) / 10000000000;\n }\n};\n/* EXPORT */\nexport default Lang;\n","/* MAIN */\nconst Unit = {\n /* API */\n dec2hex: (dec) => {\n const hex = Math.round(dec).toString(16);\n return hex.length > 1 ? hex : `0${hex}`;\n }\n};\n/* EXPORT */\nexport default Unit;\n","/* IMPORT */\nimport channel from './channel.js';\nimport lang from './lang.js';\nimport unit from './unit.js';\n/* MAIN */\nconst Utils = {\n channel,\n lang,\n unit\n};\n/* EXPORT */\nexport default Utils;\n","/* IMPORT */\nimport _ from './utils/index.js';\n/* MAIN */\nconst DEC2HEX = {};\nfor (let i = 0; i <= 255; i++)\n DEC2HEX[i] = _.unit.dec2hex(i); // Populating dynamically, striking a balance between code size and performance\nconst TYPE = {\n ALL: 0,\n RGB: 1,\n HSL: 2\n};\n/* EXPORT */\nexport { DEC2HEX, TYPE };\n","/* IMPORT */\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Type {\n constructor() {\n /* VARIABLES */\n this.type = TYPE.ALL;\n }\n /* API */\n get() {\n return this.type;\n }\n set(type) {\n if (this.type && this.type !== type)\n throw new Error('Cannot change both RGB and HSL channels at the same time');\n this.type = type;\n }\n reset() {\n this.type = TYPE.ALL;\n }\n is(type) {\n return this.type === type;\n }\n}\n/* EXPORT */\nexport default Type;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Type from './type.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Channels {\n /* CONSTRUCTOR */\n constructor(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type = new Type();\n }\n /* API */\n set(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type.type = TYPE.ALL;\n return this;\n }\n /* HELPERS */\n _ensureHSL() {\n const data = this.data;\n const { h, s, l } = data;\n if (h === undefined)\n data.h = _.channel.rgb2hsl(data, 'h');\n if (s === undefined)\n data.s = _.channel.rgb2hsl(data, 's');\n if (l === undefined)\n data.l = _.channel.rgb2hsl(data, 'l');\n }\n _ensureRGB() {\n const data = this.data;\n const { r, g, b } = data;\n if (r === undefined)\n data.r = _.channel.hsl2rgb(data, 'r');\n if (g === undefined)\n data.g = _.channel.hsl2rgb(data, 'g');\n if (b === undefined)\n data.b = _.channel.hsl2rgb(data, 'b');\n }\n /* GETTERS */\n get r() {\n const data = this.data;\n const r = data.r;\n if (!this.type.is(TYPE.HSL) && r !== undefined)\n return r;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'r');\n }\n get g() {\n const data = this.data;\n const g = data.g;\n if (!this.type.is(TYPE.HSL) && g !== undefined)\n return g;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'g');\n }\n get b() {\n const data = this.data;\n const b = data.b;\n if (!this.type.is(TYPE.HSL) && b !== undefined)\n return b;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'b');\n }\n get h() {\n const data = this.data;\n const h = data.h;\n if (!this.type.is(TYPE.RGB) && h !== undefined)\n return h;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'h');\n }\n get s() {\n const data = this.data;\n const s = data.s;\n if (!this.type.is(TYPE.RGB) && s !== undefined)\n return s;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 's');\n }\n get l() {\n const data = this.data;\n const l = data.l;\n if (!this.type.is(TYPE.RGB) && l !== undefined)\n return l;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'l');\n }\n get a() {\n return this.data.a;\n }\n /* SETTERS */\n set r(r) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.r = r;\n }\n set g(g) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.g = g;\n }\n set b(b) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.b = b;\n }\n set h(h) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.h = h;\n }\n set s(s) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.s = s;\n }\n set l(l) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.l = l;\n }\n set a(a) {\n this.changed = true;\n this.data.a = a;\n }\n}\n/* EXPORT */\nexport default Channels;\n","/* IMPORT */\nimport Channels from './/index.js';\n/* MAIN */\nconst channels = new Channels({ r: 0, g: 0, b: 0, a: 0 }, 'transparent');\n/* EXPORT */\nexport default channels;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport { DEC2HEX } from '../constants.js';\n/* MAIN */\nconst Hex = {\n /* VARIABLES */\n re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,\n /* API */\n parse: (color) => {\n if (color.charCodeAt(0) !== 35)\n return; // '#'\n const match = color.match(Hex.re);\n if (!match)\n return;\n const hex = match[1];\n const dec = parseInt(hex, 16);\n const length = hex.length;\n const hasAlpha = length % 4 === 0;\n const isFullLength = length > 4;\n const multiplier = isFullLength ? 1 : 17;\n const bits = isFullLength ? 8 : 4;\n const bitsOffset = hasAlpha ? 0 : -1;\n const mask = isFullLength ? 255 : 15;\n return ChannelsReusable.set({\n r: ((dec >> (bits * (bitsOffset + 3))) & mask) * multiplier,\n g: ((dec >> (bits * (bitsOffset + 2))) & mask) * multiplier,\n b: ((dec >> (bits * (bitsOffset + 1))) & mask) * multiplier,\n a: hasAlpha ? (dec & mask) * multiplier / 255 : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // #RRGGBBAA\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;\n }\n else { // #RRGGBB\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;\n }\n }\n};\n/* EXPORT */\nexport default Hex;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst HSL = {\n /* VARIABLES */\n re: /^hsla?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(?:deg|grad|rad|turn)?)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(%)?))?\\s*?\\)$/i,\n hueRe: /^(.+?)(deg|grad|rad|turn)$/i,\n /* HELPERS */\n _hue2deg: (hue) => {\n const match = hue.match(HSL.hueRe);\n if (match) {\n const [, number, unit] = match;\n switch (unit) {\n case 'grad': return _.channel.clamp.h(parseFloat(number) * .9);\n case 'rad': return _.channel.clamp.h(parseFloat(number) * 180 / Math.PI);\n case 'turn': return _.channel.clamp.h(parseFloat(number) * 360);\n }\n }\n return _.channel.clamp.h(parseFloat(hue));\n },\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 104 && charCode !== 72)\n return; // 'h'/'H'\n const match = color.match(HSL.re);\n if (!match)\n return;\n const [, h, s, l, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n h: HSL._hue2deg(h),\n s: _.channel.clamp.s(parseFloat(s)),\n l: _.channel.clamp.l(parseFloat(l)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { h, s, l, a } = channels;\n if (a < 1) { // HSLA\n return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;\n }\n else { // HSL\n return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;\n }\n }\n};\n/* EXPORT */\nexport default HSL;\n","/* IMPORT */\nimport Hex from './hex.js';\n/* MAIN */\nconst Keyword = {\n /* VARIABLES */\n colors: {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyanaqua: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n transparent: '#00000000',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n },\n /* API */\n parse: (color) => {\n color = color.toLowerCase();\n const hex = Keyword.colors[color];\n if (!hex)\n return;\n return Hex.parse(hex);\n },\n stringify: (channels) => {\n const hex = Hex.stringify(channels);\n for (const name in Keyword.colors) {\n if (Keyword.colors[name] === hex)\n return name;\n }\n return;\n }\n};\n/* EXPORT */\nexport default Keyword;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst RGB = {\n /* VARIABLES */\n re: /^rgba?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?)))?\\s*?\\)$/i,\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 114 && charCode !== 82)\n return; // 'r'/'R'\n const match = color.match(RGB.re);\n if (!match)\n return;\n const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),\n g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),\n b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // RGBA\n return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;\n }\n else { // RGB\n return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;\n }\n }\n};\n/* EXPORT */\nexport default RGB;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Hex from './hex.js';\nimport HSL from './hsl.js';\nimport Keyword from './keyword.js';\nimport RGB from './rgb.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nconst Color = {\n /* VARIABLES */\n format: {\n keyword: Keyword,\n hex: Hex,\n rgb: RGB,\n rgba: RGB,\n hsl: HSL,\n hsla: HSL\n },\n /* API */\n parse: (color) => {\n if (typeof color !== 'string')\n return color;\n const channels = Hex.parse(color) || RGB.parse(color) || HSL.parse(color) || Keyword.parse(color); // Color providers ordered with performance in mind\n if (channels)\n return channels;\n throw new Error(`Unsupported color format: \"${color}\"`);\n },\n stringify: (channels) => {\n // SASS returns a keyword if possible, but we avoid doing that as it's slower and doesn't really add any value\n if (!channels.changed && channels.color)\n return channels.color;\n if (channels.type.is(TYPE.HSL) || channels.data.r === undefined) {\n return HSL.stringify(channels);\n }\n else if (channels.a < 1 || !Number.isInteger(channels.r) || !Number.isInteger(channels.g) || !Number.isInteger(channels.b)) {\n return RGB.stringify(channels);\n }\n else {\n return Hex.stringify(channels);\n }\n }\n};\n/* EXPORT */\nexport default Color;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst change = (color, channels) => {\n const ch = Color.parse(color);\n for (const c in channels) {\n ch[c] = _.channel.clamp[c](channels[c]);\n }\n return Color.stringify(ch);\n};\n/* EXPORT */\nexport default change;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst rgba = (r, g, b = 0, a = 1) => {\n if (typeof r !== 'number')\n return change(r, { a: g });\n const channels = ChannelsReusable.set({\n r: _.channel.clamp.r(r),\n g: _.channel.clamp.g(g),\n b: _.channel.clamp.b(b),\n a: _.channel.clamp.a(a)\n });\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default rgba;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst channel = (color, channel) => {\n return _.lang.round(Color.parse(color)[channel]);\n};\n/* EXPORT */\nexport default channel;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\n//SOURCE: https://planetcalc.com/7779\nconst luminance = (color) => {\n const { r, g, b } = Color.parse(color);\n const luminance = .2126 * _.channel.toLinear(r) + .7152 * _.channel.toLinear(g) + .0722 * _.channel.toLinear(b);\n return _.lang.round(luminance);\n};\n/* EXPORT */\nexport default luminance;\n","/* IMPORT */\nimport luminance from './luminance.js';\n/* MAIN */\nconst isLight = (color) => {\n return luminance(color) >= .5;\n};\n/* EXPORT */\nexport default isLight;\n","/* IMPORT */\nimport isLight from './is_light.js';\n/* MAIN */\nconst isDark = (color) => {\n return !isLight(color);\n};\n/* EXPORT */\nexport default isDark;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst adjustChannel = (color, channel, amount) => {\n const channels = Color.parse(color);\n const amountCurrent = channels[channel];\n const amountNext = _.channel.clamp[channel](amountCurrent + amount);\n if (amountCurrent !== amountNext)\n channels[channel] = amountNext;\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default adjustChannel;\n","/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst lighten = (color, amount) => {\n return adjustChannel(color, 'l', amount);\n};\n/* EXPORT */\nexport default lighten;\n","/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst darken = (color, amount) => {\n return adjustChannel(color, 'l', -amount);\n};\n/* EXPORT */\nexport default darken;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst adjust = (color, channels) => {\n const ch = Color.parse(color);\n const changes = {};\n for (const c in channels) {\n if (!channels[c])\n continue;\n changes[c] = ch[c] + channels[c];\n }\n return change(color, changes);\n};\n/* EXPORT */\nexport default adjust;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport rgba from './rgba.js';\n/* MAIN */\n//SOURCE: https://github.com/sass/dart-sass/blob/7457d2e9e7e623d9844ffd037a070cf32d39c348/lib/src/functions/color.dart#L718-L756\nconst mix = (color1, color2, weight = 50) => {\n const { r: r1, g: g1, b: b1, a: a1 } = Color.parse(color1);\n const { r: r2, g: g2, b: b2, a: a2 } = Color.parse(color2);\n const weightScale = weight / 100;\n const weightNormalized = (weightScale * 2) - 1;\n const alphaDelta = a1 - a2;\n const weight1combined = ((weightNormalized * alphaDelta) === -1) ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);\n const weight1 = (weight1combined + 1) / 2;\n const weight2 = 1 - weight1;\n const r = (r1 * weight1) + (r2 * weight2);\n const g = (g1 * weight1) + (g2 * weight2);\n const b = (b1 * weight1) + (b2 * weight2);\n const a = (a1 * weightScale) + (a2 * (1 - weightScale));\n return rgba(r, g, b, a);\n};\n/* EXPORT */\nexport default mix;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport mix from './mix.js';\n/* MAIN */\nconst invert = (color, weight = 100) => {\n const inverse = Color.parse(color);\n inverse.r = 255 - inverse.r;\n inverse.g = 255 - inverse.g;\n inverse.b = 255 - inverse.b;\n return mix(inverse, color, weight);\n};\n/* EXPORT */\nexport default invert;\n","const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!freeze) {\n freeze = function <T>(x: T): T {\n return x;\n };\n}\n\nif (!seal) {\n seal = function <T>(x: T): T {\n return x;\n };\n}\n\nif (!apply) {\n apply = function <T>(\n func: (thisArg: any, ...args: any[]) => T,\n thisArg: any,\n ...args: any[]\n ): T {\n return func.apply(thisArg, args);\n };\n}\n\nif (!construct) {\n construct = function <T>(Func: new (...args: any[]) => T, ...args: any[]): T {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.indexOf);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\nconst arraySplice = unapply(Array.prototype.splice);\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n\nconst regExpTest = unapply(RegExp.prototype.test);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply<T>(\n func: (thisArg: any, ...args: any[]) => T\n): (thisArg: any, ...args: any[]) => T {\n return (thisArg: any, ...args: any[]): T => {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n\n return apply(func, thisArg, args);\n };\n}\n\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct<T>(\n Func: new (...args: any[]) => T\n): (...args: any[]) => T {\n return (...args: any[]): T => construct(Func, args);\n}\n\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(\n set: Record<string, any>,\n array: readonly any[],\n transformCaseFunc: ReturnType<typeof unapply<string>> = stringToLowerCase\n): Record<string, any> {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n (array as any[])[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray<T>(array: T[]): Array<T | null> {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n\n return array;\n}\n\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone<T extends Record<string, any>>(object: T): T {\n const newObject = create(null);\n\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (\n value &&\n typeof value === 'object' &&\n value.constructor === Object\n ) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n\n return newObject;\n}\n\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter<T extends Record<string, any>>(\n object: T,\n prop: string\n): ReturnType<typeof unapply<any>> | (() => null) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(): null {\n return null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayForEach,\n arrayIndexOf,\n arrayLastIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n arraySplice,\n // Object\n entries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFrozen,\n setPrototypeOf,\n seal,\n clone,\n create,\n objectHasOwnProperty,\n // RegExp\n regExpTest,\n // String\n stringIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n addToSet,\n // Reflect\n unapply,\n unconstruct,\n};\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'search',\n 'section',\n 'select',\n 'shadow',\n 'slot',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n] as const);\n\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle',\n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'enterkeyhint',\n 'exportparts',\n 'filter',\n 'font',\n 'g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'inputmode',\n 'line',\n 'lineargradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'part',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'slot',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref',\n 'tspan',\n 'view',\n 'vkern',\n] as const);\n\nexport const svgFilters = freeze([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n] as const);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n] as const);\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n 'mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts',\n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover',\n 'mprescripts',\n] as const);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\n] as const);\n\nexport const text = freeze(['#text'] as const);\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'exportparts',\n 'face',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inert',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'part',\n 'pattern',\n 'placeholder',\n 'playsinline',\n 'popover',\n 'popovertarget',\n 'popovertargetaction',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\n 'size',\n 'sizes',\n 'slot',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'wrap',\n 'xmlns',\n 'slot',\n] as const);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'amplitude',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'exponent',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2',\n 'intercept',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'slope',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'tablevalues',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan',\n] as const);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space',\n 'xmlns:xlink',\n] as const);\n","import { seal } from './utils.js';\n\n// eslint-disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nexport const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\nexport const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n","/* eslint-disable @typescript-eslint/indent */\n\nimport type { TrustedHTML, TrustedTypesWindow } from 'trusted-types/lib';\nimport type { Config, UseProfilesConfig } from './config';\nimport * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n arrayForEach,\n arrayLastIndexOf,\n arrayPop,\n arrayPush,\n arraySplice,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n create,\n objectHasOwnProperty,\n} from './utils.js';\n\nexport type { Config } from './config';\n\ndeclare const VERSION: string;\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5, // Deprecated\n entityNode: 6, // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12, // Deprecated\n};\n\nconst getGlobal = function (): WindowLike {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function (\n trustedTypes: TrustedTypePolicyFactory,\n purifyHostElement: HTMLScriptElement\n) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nconst _createHooksMap = function (): HooksMap {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: [],\n };\n};\n\nfunction createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {\n const DOMPurify: DOMPurify = (root: WindowLike) => createDOMPurify(root);\n\n DOMPurify.version = VERSION;\n\n DOMPurify.removed = [];\n\n if (\n !window ||\n !window.document ||\n window.document.nodeType !== NODE_TYPE.document ||\n !window.Element\n ) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n let { document } = window;\n\n const originalDocument = document;\n const currentScript: HTMLScriptElement =\n originalDocument.currentScript as HTMLScriptElement;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || (window as any).MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n let trustedTypesPolicy;\n let emptyHTML = '';\n\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = _createHooksMap();\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n typeof entries === 'function' &&\n typeof getParentNode === 'function' &&\n implementation &&\n implementation.createHTMLDocument !== undefined;\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT,\n } = EXPRESSIONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n ...TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES: UseProfilesConfig | false = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE],\n stringToString\n );\n\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script',\n ]);\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE: null | DOMParserSupportedType = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc: null | Parameters<typeof addToSet>[2] = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG: Config | null = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = function (\n testValue: unknown\n ): testValue is Function | RegExp {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function (cfg: Config = {}): void {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? DEFAULT_PARSER_MEDIA_TYPE\n : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS')\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR')\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES')\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR')\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n cfg.ADD_URI_SAFE_ATTR,\n transformCaseFunc\n )\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS')\n ? addToSet(\n clone(DEFAULT_DATA_URI_TAGS),\n cfg.ADD_DATA_URI_TAGS,\n transformCaseFunc\n )\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS')\n ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS')\n ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR')\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES')\n ? cfg.USE_PROFILES\n : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = cfg.ALLOWED_URI_REGEXP || EXPRESSIONS.IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS =\n cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS =\n cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, TAGS.text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, TAGS.html);\n addToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, TAGS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.'\n );\n }\n\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.'\n );\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n currentScript\n );\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.svgDisallowed,\n ]);\n const ALL_MATHML_TAGS = addToSet({}, [\n ...TAGS.mathMl,\n ...TAGS.mathMlDisallowed,\n ]);\n\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function (element: Element): boolean {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (\n parent.namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return (\n !ALL_MATHML_TAGS[tagName] &&\n (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n );\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function (node: Node): void {\n arrayPush(DOMPurify.removed, { element: node });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function (name: string, element: Element): void {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element,\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element,\n });\n }\n\n element.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function (dirty: string): Document {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty =\n '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' +\n dirty +\n '</body></html>';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(\n document.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function (root: Node): NodeIterator {\n return createNodeIterator.call(\n root.ownerDocument || root,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT |\n NodeFilter.SHOW_COMMENT |\n NodeFilter.SHOW_TEXT |\n NodeFilter.SHOW_PROCESSING_INSTRUCTION |\n NodeFilter.SHOW_CDATA_SECTION,\n null\n );\n };\n\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function (element: Element): boolean {\n return (\n element instanceof HTMLFormElement &&\n (typeof element.nodeName !== 'string' ||\n typeof element.textContent !== 'string' ||\n typeof element.removeChild !== 'function' ||\n !(element.attributes instanceof NamedNodeMap) ||\n typeof element.removeAttribute !== 'function' ||\n typeof element.setAttribute !== 'function' ||\n typeof element.namespaceURI !== 'string' ||\n typeof element.insertBefore !== 'function' ||\n typeof element.hasChildNodes !== 'function')\n );\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function (value: unknown): value is Node {\n return typeof Node === 'function' && value instanceof Node;\n };\n\n function _executeHooks<T extends HookFunction>(\n hooks: HookFunction[],\n currentNode: Parameters<T>[0],\n data: Parameters<T>[1]\n ): void {\n arrayForEach(hooks, (hook: T) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function (currentNode: any): boolean {\n let content = null;\n\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (\n SAFE_FOR_XML &&\n currentNode.hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n regExpTest(/<[/\\w!]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w!]/g, currentNode.textContent)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (\n SAFE_FOR_XML &&\n currentNode.nodeType === NODE_TYPE.comment &&\n regExpTest(/<[/\\w]/g, currentNode.data)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)\n ) {\n return false;\n }\n\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n ) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if (\n (tagName === 'noscript' ||\n tagName === 'noembed' ||\n tagName === 'noframes') &&\n regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr: RegExp) => {\n content = stringReplace(content, expr, ' ');\n });\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function (\n lcTag: string,\n lcName: string,\n value: string\n ): boolean {\n /* Make sure attribute cannot clobber */\n if (\n SANITIZE_DOM &&\n (lcName === 'id' || lcName === 'name') &&\n (value in document || value in formElement)\n ) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !FORBID_ATTR[lcName] &&\n regExpTest(DATA_ATTR, lcName)\n ) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n (_isBasicCustomElement(lcTag) &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)))) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also allow derived custom elements using the same tagName test.\n // Additionally, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNameCheck user has configured, as custom elements can define these at their own discretion.\n } else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (\n regExpTest(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n lcTag !== 'script' &&\n stringIndexOf(value, 'data:') === 0 &&\n DATA_URI_TAGS[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Check for binary attributes */\n } else if (value) {\n return false;\n } else {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n }\n\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function (tagName: string): RegExpMatchArray {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function (currentNode: Element): void {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n\n const { attributes } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined,\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const { name, namespaceURI, value: attrValue } = attr;\n const lcName = transformCaseFunc(name);\n\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Work around a security issue with comments inside attributes */\n if (\n SAFE_FOR_XML &&\n regExpTest(/((--!?|])>)|<\\/(style|title|textarea)/i, value)\n ) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr: RegExp) => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Handle attributes that require Trusted Types */\n if (\n trustedTypesPolicy &&\n typeof trustedTypes === 'object' &&\n typeof trustedTypes.getAttributeType === 'function'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */\n } else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML': {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n\n case 'TrustedScriptURL': {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n\n default: {\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function (fragment: DocumentFragment): void {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n\n while ((shadowNode = shadowIterator.nextNode())) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if ((dirty as Node).nodeName) {\n const tagName = transformCaseFunc((dirty as Node).nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and cannot be sanitized in-place'\n );\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (\n importedNode.nodeType === NODE_TYPE.element &&\n importedNode.nodeName === 'BODY'\n ) {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (\n !RETURN_DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1\n ) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while ((currentNode = nodeIterator.nextNode())) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (\n WHOLE_DOCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ownerDocument.doctype.name &&\n regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDocument.doctype.name)\n ) {\n serializedHTML =\n '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr: RegExp) => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHTML)\n : serializedHTML;\n };\n\n DOMPurify.setConfig = function (cfg = {}) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n DOMPurify.addHook = function (\n entryPoint: keyof HooksMap,\n hookFunction: HookFunction\n ) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n DOMPurify.removeHook = function (\n entryPoint: keyof HooksMap,\n hookFunction: HookFunction\n ) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n\n return index === -1\n ? undefined\n : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n\n return arrayPop(hooks[entryPoint]);\n };\n\n DOMPurify.removeHooks = function (entryPoint: keyof HooksMap) {\n hooks[entryPoint] = [];\n };\n\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n\n return DOMPurify;\n}\n\nexport default createDOMPurify();\n\nexport interface DOMPurify {\n /**\n * Creates a DOMPurify instance using the given window-like object. Defaults to `window`.\n */\n (root?: WindowLike): DOMPurify;\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n version: string;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n removed: Array<RemovedElement | RemovedAttribute>;\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n isSupported: boolean;\n\n /**\n * Set the configuration once.\n *\n * @param cfg configuration object\n */\n setConfig(cfg?: Config): void;\n\n /**\n * Removes the configuration.\n */\n clearConfig(): void;\n\n /**\n * Provides core sanitation functionality.\n *\n * @param dirty string or DOM node\n * @param cfg object\n * @returns Sanitized TrustedHTML.\n */\n sanitize(\n dirty: string | Node,\n cfg: Config & { RETURN_TRUSTED_TYPE: true }\n ): TrustedHTML;\n\n /**\n * Provides core sanitation functionality.\n *\n * @param dirty DOM node\n * @param cfg object\n * @returns Sanitized DOM node.\n */\n sanitize(dirty: Node, cfg: Config & { IN_PLACE: true }): Node;\n\n /**\n * Provides core sanitation functionality.\n *\n * @param dirty string or DOM node\n * @param cfg object\n * @returns Sanitized DOM node.\n */\n sanitize(dirty: string | Node, cfg: Config & { RETURN_DOM: true }): Node;\n\n /**\n * Provides core sanitation functionality.\n *\n * @param dirty string or DOM node\n * @param cfg object\n * @returns Sanitized document fragment.\n */\n sanitize(\n dirty: string | Node,\n cfg: Config & { RETURN_DOM_FRAGMENT: true }\n ): DocumentFragment;\n\n /**\n * Provides core sanitation functionality.\n *\n * @param dirty string or DOM node\n * @param cfg object\n * @returns Sanitized string.\n */\n sanitize(dirty: string | Node, cfg?: Config): string;\n\n /**\n * Checks if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n *\n * @param tag Tag name of containing element.\n * @param attr Attribute name.\n * @param value Attribute value.\n * @returns Returns true if `value` is valid. Otherwise, returns false.\n */\n isValidAttribute(tag: string, attr: string, value: string): boolean;\n\n /**\n * Adds a DOMPurify hook.\n *\n * @param entryPoint entry point for the hook to add\n * @param hookFunction function to execute\n */\n addHook(entryPoint: BasicHookName, hookFunction: NodeHook): void;\n\n /**\n * Adds a DOMPurify hook.\n *\n * @param entryPoint entry point for the hook to add\n * @param hookFunction function to execute\n */\n addHook(entryPoint: ElementHookName, hookFunction: ElementHook): void;\n\n /**\n * Adds a DOMPurify hook.\n *\n * @param entryPoint entry point for the hook to add\n * @param hookFunction function to execute\n */\n addHook(\n entryPoint: DocumentFragmentHookName,\n hookFunction: DocumentFragmentHook\n ): void;\n\n /**\n * Adds a DOMPurify hook.\n *\n * @param entryPoint entry point for the hook to add\n * @param hookFunction function to execute\n */\n addHook(\n entryPoint: 'uponSanitizeElement',\n hookFunction: UponSanitizeElementHook\n ): void;\n\n /**\n * Adds a DOMPurify hook.\n *\n * @param entryPoint entry point for the hook to add\n * @param hookFunction function to execute\n */\n addHook(\n entryPoint: 'uponSanitizeAttribute',\n hookFunction: UponSanitizeAttributeHook\n ): void;\n\n /**\n * Remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if hook not specified)\n *\n * @param entryPoint entry point for the hook to remove\n * @param hookFunction optional specific hook to remove\n * @returns removed hook\n */\n removeHook(\n entryPoint: BasicHookName,\n hookFunction?: NodeHook\n ): NodeHook | undefined;\n\n /**\n * Remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if hook not specified)\n *\n * @param entryPoint entry point for the hook to remove\n * @param hookFunction optional specific hook to remove\n * @returns removed hook\n */\n removeHook(\n entryPoint: ElementHookName,\n hookFunction?: ElementHook\n ): ElementHook | undefined;\n\n /**\n * Remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if hook not specified)\n *\n * @param entryPoint entry point for the hook to remove\n * @param hookFunction optional specific hook to remove\n * @returns removed hook\n */\n removeHook(\n entryPoint: DocumentFragmentHookName,\n hookFunction?: DocumentFragmentHook\n ): DocumentFragmentHook | undefined;\n\n /**\n * Remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if hook not specified)\n *\n * @param entryPoint entry point for the hook to remove\n * @param hookFunction optional specific hook to remove\n * @returns removed hook\n */\n removeHook(\n entryPoint: 'uponSanitizeElement',\n hookFunction?: UponSanitizeElementHook\n ): UponSanitizeElementHook | undefined;\n\n /**\n * Remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if hook not specified)\n *\n * @param entryPoint entry point for the hook to remove\n * @param hookFunction optional specific hook to remove\n * @returns removed hook\n */\n removeHook(\n entryPoint: 'uponSanitizeAttribute',\n hookFunction?: UponSanitizeAttributeHook\n ): UponSanitizeAttributeHook | undefined;\n\n /**\n * Removes all DOMPurify hooks at a given entryPoint\n *\n * @param entryPoint entry point for the hooks to remove\n */\n removeHooks(entryPoint: HookName): void;\n\n /**\n * Removes all DOMPurify hooks.\n */\n removeAllHooks(): void;\n}\n\n/**\n * An element removed by DOMPurify.\n */\nexport interface RemovedElement {\n /**\n * The element that was removed.\n */\n element: Node;\n}\n\n/**\n * An element removed by DOMPurify.\n */\nexport interface RemovedAttribute {\n /**\n * The attribute that was removed.\n */\n attribute: Attr | null;\n\n /**\n * The element that the attribute was removed.\n */\n from: Node;\n}\n\ntype BasicHookName =\n | 'beforeSanitizeElements'\n | 'afterSanitizeElements'\n | 'uponSanitizeShadowNode';\ntype ElementHookName = 'beforeSanitizeAttributes' | 'afterSanitizeAttributes';\ntype DocumentFragmentHookName =\n | 'beforeSanitizeShadowDOM'\n | 'afterSanitizeShadowDOM';\ntype UponSanitizeElementHookName = 'uponSanitizeElement';\ntype UponSanitizeAttributeHookName = 'uponSanitizeAttribute';\n\ninterface HooksMap {\n beforeSanitizeElements: NodeHook[];\n afterSanitizeElements: NodeHook[];\n beforeSanitizeShadowDOM: DocumentFragmentHook[];\n uponSanitizeShadowNode: NodeHook[];\n afterSanitizeShadowDOM: DocumentFragmentHook[];\n beforeSanitizeAttributes: ElementHook[];\n afterSanitizeAttributes: ElementHook[];\n uponSanitizeElement: UponSanitizeElementHook[];\n uponSanitizeAttribute: UponSanitizeAttributeHook[];\n}\n\ntype ArrayElement<T> = T extends Array<infer U> ? U : never;\n\ntype HookFunction = ArrayElement<HooksMap[keyof HooksMap]>;\n\nexport type HookName =\n | BasicHookName\n | ElementHookName\n | DocumentFragmentHookName\n | UponSanitizeElementHookName\n | UponSanitizeAttributeHookName;\n\nexport type NodeHook = (\n this: DOMPurify,\n currentNode: Node,\n hookEvent: null,\n config: Config\n) => void;\n\nexport type ElementHook = (\n this: DOMPurify,\n currentNode: Element,\n hookEvent: null,\n config: Config\n) => void;\n\nexport type DocumentFragmentHook = (\n this: DOMPurify,\n currentNode: DocumentFragment,\n hookEvent: null,\n config: Config\n) => void;\n\nexport type UponSanitizeElementHook = (\n this: DOMPurify,\n currentNode: Node,\n hookEvent: UponSanitizeElementHookEvent,\n config: Config\n) => void;\n\nexport type UponSanitizeAttributeHook = (\n this: DOMPurify,\n currentNode: Element,\n hookEvent: UponSanitizeAttributeHookEvent,\n config: Config\n) => void;\n\nexport interface UponSanitizeElementHookEvent {\n tagName: string;\n allowedTags: Record<string, boolean>;\n}\n\nexport interface UponSanitizeAttributeHookEvent {\n attrName: string;\n attrValue: string;\n keepAttr: boolean;\n allowedAttributes: Record<string, boolean>;\n forceKeepAttr: boolean | undefined;\n}\n\n/**\n * A `Window`-like object containing the properties and types that DOMPurify requires.\n */\nexport type WindowLike = Pick<\n typeof globalThis,\n | 'DocumentFragment'\n | 'HTMLTemplateElement'\n | 'Node'\n | 'Element'\n | 'NodeFilter'\n | 'NamedNodeMap'\n | 'HTMLFormElement'\n | 'DOMParser'\n> & {\n document?: Document;\n MozNamedAttrMap?: typeof window.NamedNodeMap;\n} & Pick<TrustedTypesWindow, 'trustedTypes'>;\n","import {\n __export,\n __name,\n log,\n setLogLevel\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagram-api/regexes.ts\nvar frontMatterRegex = /^-{3}\\s*[\\n\\r](.*?)[\\n\\r]-{3}\\s*[\\n\\r]+/s;\nvar directiveRegex = /%{2}{\\s*(?:(\\w+)\\s*:|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nvar anyCommentRegex = /\\s*%%.*\\n/gm;\n\n// src/errors.ts\nvar UnknownDiagramError = class extends Error {\n static {\n __name(this, \"UnknownDiagramError\");\n }\n constructor(message) {\n super(message);\n this.name = \"UnknownDiagramError\";\n }\n};\n\n// src/diagram-api/detectType.ts\nvar detectors = {};\nvar detectType = /* @__PURE__ */ __name(function(text, config2) {\n text = text.replace(frontMatterRegex, \"\").replace(directiveRegex, \"\").replace(anyCommentRegex, \"\\n\");\n for (const [key, { detector }] of Object.entries(detectors)) {\n const diagram = detector(text, config2);\n if (diagram) {\n return key;\n }\n }\n throw new UnknownDiagramError(\n `No diagram type detected matching given configuration for text: ${text}`\n );\n}, \"detectType\");\nvar registerLazyLoadedDiagrams = /* @__PURE__ */ __name((...diagrams2) => {\n for (const { id, detector, loader } of diagrams2) {\n addDetector(id, detector, loader);\n }\n}, \"registerLazyLoadedDiagrams\");\nvar addDetector = /* @__PURE__ */ __name((key, detector, loader) => {\n if (detectors[key]) {\n log.warn(`Detector with key ${key} already exists. Overwriting.`);\n }\n detectors[key] = { detector, loader };\n log.debug(`Detector with key ${key} added${loader ? \" with loader\" : \"\"}`);\n}, \"addDetector\");\nvar getDiagramLoader = /* @__PURE__ */ __name((key) => {\n return detectors[key].loader;\n}, \"getDiagramLoader\");\n\n// src/assignWithDepth.ts\nvar assignWithDepth = /* @__PURE__ */ __name((dst, src, { depth = 2, clobber = false } = {}) => {\n const config2 = { depth, clobber };\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach((s) => assignWithDepth(dst, s, config2));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach((s) => {\n if (!dst.includes(s)) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (dst === void 0 || depth <= 0) {\n if (dst !== void 0 && dst !== null && typeof dst === \"object\" && typeof src === \"object\") {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (src !== void 0 && typeof dst === \"object\" && typeof src === \"object\") {\n Object.keys(src).forEach((key) => {\n if (typeof src[key] === \"object\" && (dst[key] === void 0 || typeof dst[key] === \"object\")) {\n if (dst[key] === void 0) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || typeof dst[key] !== \"object\" && typeof src[key] !== \"object\") {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n}, \"assignWithDepth\");\nvar assignWithDepth_default = assignWithDepth;\n\n// src/themes/theme-base.js\nimport { adjust as adjust2, darken, invert, isDark, lighten } from \"khroma\";\n\n// src/themes/erDiagram-oldHardcodedValues.ts\nvar oldAttributeBackgroundColorOdd = \"#ffffff\";\nvar oldAttributeBackgroundColorEven = \"#f2f2f2\";\n\n// src/themes/theme-helpers.js\nimport { adjust } from \"khroma\";\nvar mkBorder = /* @__PURE__ */ __name((col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 }), \"mkBorder\");\n\n// src/themes/theme-base.js\nvar Theme = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#fff4dd\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n }\n updateColors() {\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? \"#eee\" : \"#333\");\n this.secondaryColor = this.secondaryColor || adjust2(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust2(this.primaryColor, { h: 180, l: 5 });\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n this.noteBkgColor = this.noteBkgColor || \"#fff5ad\";\n this.noteTextColor = this.noteTextColor || \"#333\";\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.arrowheadColor = this.arrowheadColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n this.border2 = this.border2 || this.tertiaryBorderColor;\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || this.actorBorder;\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || \"white\";\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.excludeBkgColor = this.excludeBkgColor || \"#eeeeee\";\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || \"lightgrey\";\n this.doneTaskBkgColor = this.doneTaskBkgColor || \"lightgrey\";\n this.doneTaskBorderColor = this.doneTaskBorderColor || \"grey\";\n this.critBorderColor = this.critBorderColor || \"#ff8888\";\n this.critBkgColor = this.critBkgColor || \"red\";\n this.todayLineColor = this.todayLineColor || \"red\";\n this.vertLineColor = this.vertLineColor || \"navy\";\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || \"#003163\";\n this.personBorder = this.personBorder || this.primaryBorderColor;\n this.personBkg = this.personBkg || this.mainBkg;\n if (this.darkMode) {\n this.rowOdd = this.rowOdd || darken(this.mainBkg, 5) || \"#ffffff\";\n this.rowEven = this.rowEven || darken(this.mainBkg, 10);\n } else {\n this.rowOdd = this.rowOdd || lighten(this.mainBkg, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || lighten(this.mainBkg, 5);\n }\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.specialStateColor = this.lineColor;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust2(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust2(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust2(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust2(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust2(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust2(this.primaryColor, { h: 210, l: 150 });\n this.cScale9 = this.cScale9 || adjust2(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust2(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust2(this.primaryColor, { h: 330 });\n if (this.darkMode) {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 75);\n }\n } else {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 25);\n }\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n const multiplier = this.darkMode ? -4 : -1;\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust2(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust2(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) });\n }\n this.classText = this.classText || this.textColor;\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust2(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust2(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust2(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust2(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust2(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust2(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust2(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust2(this.secondaryColor, { l: -10 });\n this.pie6 = this.pie6 || adjust2(this.tertiaryColor, { l: -10 });\n this.pie7 = this.pie7 || adjust2(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust2(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust2(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust2(this.primaryColor, { h: 60, l: -20 });\n this.pie11 = this.pie11 || adjust2(this.primaryColor, { h: -60, l: -20 });\n this.pie12 = this.pie12 || adjust2(this.primaryColor, { h: 120, l: -10 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.archEdgeColor = this.archEdgeColor || \"#777\";\n this.archEdgeArrowColor = this.archEdgeArrowColor || \"#777\";\n this.archEdgeWidth = this.archEdgeWidth || \"3\";\n this.archGroupBorderColor = this.archGroupBorderColor || \"#000\";\n this.archGroupBorderWidth = this.archGroupBorderWidth || \"2px\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust2(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust2(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust2(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust2(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust2(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust2(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust2(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust2(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust2(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust2(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust2(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor = this.branchLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-dark.js\nimport { adjust as adjust3, darken as darken2, invert as invert2, isDark as isDark2, lighten as lighten2, rgba } from \"khroma\";\nvar Theme2 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#333\";\n this.primaryColor = \"#1f2020\";\n this.secondaryColor = lighten2(this.primaryColor, 16);\n this.tertiaryColor = adjust3(this.primaryColor, { h: -160 });\n this.primaryBorderColor = invert2(this.background);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert2(this.primaryColor);\n this.secondaryTextColor = invert2(this.secondaryColor);\n this.tertiaryTextColor = invert2(this.tertiaryColor);\n this.lineColor = invert2(this.background);\n this.textColor = invert2(this.background);\n this.mainBkg = \"#1f2020\";\n this.secondBkg = \"calculated\";\n this.mainContrastColor = \"lightgrey\";\n this.darkTextColor = lighten2(invert2(\"#323D47\"), 10);\n this.lineColor = \"calculated\";\n this.border1 = \"#ccc\";\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = \"calculated\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"#181818\";\n this.textColor = \"#ccc\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#F9FFFE\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"calculated\";\n this.activationBkgColor = \"calculated\";\n this.sequenceNumberColor = \"black\";\n this.sectionBkgColor = darken2(\"#EAE8D9\", 30);\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"#EAE8D9\";\n this.excludeBkgColor = darken2(this.sectionBkgColor, 10);\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = \"calculated\";\n this.taskTextColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = \"#81B1DB\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#E83737\";\n this.critBkgColor = \"#E83737\";\n this.taskTextDarkColor = \"calculated\";\n this.todayLineColor = \"#DB5757\";\n this.vertLineColor = \"#00BFFF\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.rowOdd = this.rowOdd || lighten2(this.mainBkg, 5) || \"#ffffff\";\n this.rowEven = this.rowEven || darken2(this.mainBkg, 10);\n this.labelColor = \"calculated\";\n this.errorBkgColor = \"#a44141\";\n this.errorTextColor = \"#ddd\";\n }\n updateColors() {\n this.secondBkg = lighten2(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten2(this.labelBackground, 25);\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.actorBorder;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.secondaryBorderColor;\n this.noteBkgColor = this.secondBkg;\n this.noteTextColor = this.secondaryTextColor;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten2(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#555\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#f4f4f4\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust3(this.primaryColor, { h: 64 });\n this.fillType3 = adjust3(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust3(this.primaryColor, { h: -64 });\n this.fillType5 = adjust3(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust3(this.primaryColor, { h: 128 });\n this.fillType7 = adjust3(this.secondaryColor, { h: 128 });\n this.cScale1 = this.cScale1 || \"#0b0000\";\n this.cScale2 = this.cScale2 || \"#4d1037\";\n this.cScale3 = this.cScale3 || \"#3f5258\";\n this.cScale4 = this.cScale4 || \"#4f2f1b\";\n this.cScale5 = this.cScale5 || \"#6e0a0a\";\n this.cScale6 = this.cScale6 || \"#3b0048\";\n this.cScale7 = this.cScale7 || \"#995a01\";\n this.cScale8 = this.cScale8 || \"#154706\";\n this.cScale9 = this.cScale9 || \"#161722\";\n this.cScale10 = this.cScale10 || \"#00296f\";\n this.cScale11 = this.cScale11 || \"#01629c\";\n this.cScale12 = this.cScale12 || \"#010029\";\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust3(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust3(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust3(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust3(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust3(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust3(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust3(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust3(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust3(this.primaryColor, { h: 330 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert2(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten2(this[\"cScale\" + i], 10);\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust3(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust3(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) });\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust3(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust3(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust3(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust3(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust3(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust3(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark2(this.quadrant1Fill) ? lighten2(this.quadrant1Fill) : darken2(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22\"\n };\n this.packet = {\n startByteColor: this.primaryTextColor,\n endByteColor: this.primaryTextColor,\n labelColor: this.primaryTextColor,\n titleColor: this.primaryTextColor,\n blockStrokeColor: this.primaryTextColor,\n blockFillColor: this.background\n };\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.classText = this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken2(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = lighten2(this.secondaryColor, 20);\n this.git1 = lighten2(this.pie2 || this.secondaryColor, 20);\n this.git2 = lighten2(this.pie3 || this.tertiaryColor, 20);\n this.git3 = lighten2(this.pie4 || adjust3(this.primaryColor, { h: -30 }), 20);\n this.git4 = lighten2(this.pie5 || adjust3(this.primaryColor, { h: -60 }), 20);\n this.git5 = lighten2(this.pie6 || adjust3(this.primaryColor, { h: -90 }), 10);\n this.git6 = lighten2(this.pie7 || adjust3(this.primaryColor, { h: 60 }), 10);\n this.git7 = lighten2(this.pie8 || adjust3(this.primaryColor, { h: 120 }), 20);\n this.gitInv0 = this.gitInv0 || invert2(this.git0);\n this.gitInv1 = this.gitInv1 || invert2(this.git1);\n this.gitInv2 = this.gitInv2 || invert2(this.git2);\n this.gitInv3 = this.gitInv3 || invert2(this.git3);\n this.gitInv4 = this.gitInv4 || invert2(this.git4);\n this.gitInv5 = this.gitInv5 || invert2(this.git5);\n this.gitInv6 = this.gitInv6 || invert2(this.git6);\n this.gitInv7 = this.gitInv7 || invert2(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert2(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert2(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten2(this.background, 12);\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten2(this.background, 2);\n this.nodeBorder = this.nodeBorder || \"#999\";\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables2 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme2();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-default.js\nimport { invert as invert3, lighten as lighten3, rgba as rgba2, adjust as adjust4, darken as darken3, isDark as isDark3 } from \"khroma\";\nvar Theme3 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#ECECFF\";\n this.secondaryColor = adjust4(this.primaryColor, { h: 120 });\n this.secondaryColor = \"#ffffde\";\n this.tertiaryColor = adjust4(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert3(this.primaryColor);\n this.secondaryTextColor = invert3(this.secondaryColor);\n this.tertiaryTextColor = invert3(this.tertiaryColor);\n this.lineColor = invert3(this.background);\n this.textColor = invert3(this.background);\n this.background = \"white\";\n this.mainBkg = \"#ECECFF\";\n this.secondBkg = \"#ffffde\";\n this.lineColor = \"#333333\";\n this.border1 = \"#9370DB\";\n this.border2 = \"#aaaa33\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"rgba(232,232,232, 0.8)\";\n this.textColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = \"calculated\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.vertLineColor = \"calculated\";\n this.sectionBkgColor = rgba2(102, 102, 255, 0.49);\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#fff400\";\n this.taskBorderColor = \"#534fbc\";\n this.taskBkgColor = \"#8a90dd\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"#534fbc\";\n this.activeTaskBkgColor = \"#bfc7ff\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.vertLineColor = \"navy\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.rowOdd = \"calculated\";\n this.rowEven = \"calculated\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n this.updateColors();\n }\n updateColors() {\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust4(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust4(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust4(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust4(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust4(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust4(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust4(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust4(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust4(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken3(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken3(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken3(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken3(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust4(this[\"cScale\" + i], { h: 180 });\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust4(this.mainBkg, { h: 30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust4(this.mainBkg, { h: 30, l: -(7 + i * 5) });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n if (this.labelTextColor !== \"calculated\") {\n this.cScaleLabel0 = this.cScaleLabel0 || invert3(this.labelTextColor);\n this.cScaleLabel3 = this.cScaleLabel3 || invert3(this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.labelTextColor;\n }\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n this.actorBorder = lighten3(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.actorLineColor = this.actorBorder;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.rowOdd = this.rowOdd || lighten3(this.primaryColor, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || lighten3(this.primaryColor, 1);\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust4(this.primaryColor, { h: 64 });\n this.fillType3 = adjust4(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust4(this.primaryColor, { h: -64 });\n this.fillType5 = adjust4(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust4(this.primaryColor, { h: 128 });\n this.fillType7 = adjust4(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || adjust4(this.tertiaryColor, { l: -40 });\n this.pie4 = this.pie4 || adjust4(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust4(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust4(this.tertiaryColor, { l: -20 });\n this.pie7 = this.pie7 || adjust4(this.primaryColor, { h: 60, l: -20 });\n this.pie8 = this.pie8 || adjust4(this.primaryColor, { h: -60, l: -40 });\n this.pie9 = this.pie9 || adjust4(this.primaryColor, { h: 120, l: -40 });\n this.pie10 = this.pie10 || adjust4(this.primaryColor, { h: 60, l: -40 });\n this.pie11 = this.pie11 || adjust4(this.primaryColor, { h: -90, l: -40 });\n this.pie12 = this.pie12 || adjust4(this.primaryColor, { h: 120, l: -30 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust4(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust4(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust4(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust4(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust4(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust4(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark3(this.quadrant1Fill) ? lighten3(this.quadrant1Fill) : darken3(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust4(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust4(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust4(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust4(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust4(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten3(this.git0, 25);\n this.git1 = lighten3(this.git1, 25);\n this.git2 = lighten3(this.git2, 25);\n this.git3 = lighten3(this.git3, 25);\n this.git4 = lighten3(this.git4, 25);\n this.git5 = lighten3(this.git5, 25);\n this.git6 = lighten3(this.git6, 25);\n this.git7 = lighten3(this.git7, 25);\n } else {\n this.git0 = darken3(this.git0, 25);\n this.git1 = darken3(this.git1, 25);\n this.git2 = darken3(this.git2, 25);\n this.git3 = darken3(this.git3, 25);\n this.git4 = darken3(this.git4, 25);\n this.git5 = darken3(this.git5, 25);\n this.git6 = darken3(this.git6, 25);\n this.git7 = darken3(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || darken3(invert3(this.git0), 25);\n this.gitInv1 = this.gitInv1 || invert3(this.git1);\n this.gitInv2 = this.gitInv2 || invert3(this.git2);\n this.gitInv3 = this.gitInv3 || invert3(this.git3);\n this.gitInv4 = this.gitInv4 || invert3(this.git4);\n this.gitInv5 = this.gitInv5 || invert3(this.git5);\n this.gitInv6 = this.gitInv6 || invert3(this.git6);\n this.gitInv7 = this.gitInv7 || invert3(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert3(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert3(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n Object.keys(this).forEach((k) => {\n if (this[k] === \"calculated\") {\n this[k] = void 0;\n }\n });\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables3 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme3();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-forest.js\nimport { adjust as adjust5, darken as darken4, invert as invert4, isDark as isDark4, lighten as lighten4 } from \"khroma\";\nvar Theme4 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#cde498\";\n this.secondaryColor = \"#cdffb2\";\n this.background = \"white\";\n this.mainBkg = \"#cde498\";\n this.secondBkg = \"#cdffb2\";\n this.lineColor = \"green\";\n this.border1 = \"#13540c\";\n this.border2 = \"#6eaa49\";\n this.arrowheadColor = \"green\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.tertiaryColor = lighten4(\"#cde498\", 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert4(this.primaryColor);\n this.secondaryTextColor = invert4(this.secondaryColor);\n this.tertiaryTextColor = invert4(this.primaryColor);\n this.lineColor = invert4(this.background);\n this.textColor = invert4(this.background);\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#333\";\n this.edgeLabelBackground = \"#e8e8e8\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"#333\";\n this.signalTextColor = \"#333\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"#326932\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"#6eaa49\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#6eaa49\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"#487e3a\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.vertLineColor = \"#00BFFF\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n this.actorBorder = darken4(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.actorLineColor = this.actorBorder;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust5(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust5(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust5(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust5(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust5(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust5(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust5(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust5(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust5(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken4(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken4(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken4(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken4(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust5(this[\"cScale\" + i], { h: 180 });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust5(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust5(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.rowOdd = this.rowOdd || lighten4(this.mainBkg, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || lighten4(this.mainBkg, 20);\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust5(this.primaryColor, { h: 64 });\n this.fillType3 = adjust5(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust5(this.primaryColor, { h: -64 });\n this.fillType5 = adjust5(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust5(this.primaryColor, { h: 128 });\n this.fillType7 = adjust5(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust5(this.primaryColor, { l: -30 });\n this.pie5 = this.pie5 || adjust5(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust5(this.tertiaryColor, { h: 40, l: -40 });\n this.pie7 = this.pie7 || adjust5(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust5(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust5(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust5(this.primaryColor, { h: 60, l: -50 });\n this.pie11 = this.pie11 || adjust5(this.primaryColor, { h: -60, l: -50 });\n this.pie12 = this.pie12 || adjust5(this.primaryColor, { h: 120, l: -50 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust5(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust5(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust5(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust5(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust5(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust5(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark4(this.quadrant1Fill) ? lighten4(this.quadrant1Fill) : darken4(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.packet = {\n startByteColor: this.primaryTextColor,\n endByteColor: this.primaryTextColor,\n labelColor: this.primaryTextColor,\n titleColor: this.primaryTextColor,\n blockStrokeColor: this.primaryTextColor,\n blockFillColor: this.mainBkg\n };\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust5(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust5(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust5(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust5(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust5(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten4(this.git0, 25);\n this.git1 = lighten4(this.git1, 25);\n this.git2 = lighten4(this.git2, 25);\n this.git3 = lighten4(this.git3, 25);\n this.git4 = lighten4(this.git4, 25);\n this.git5 = lighten4(this.git5, 25);\n this.git6 = lighten4(this.git6, 25);\n this.git7 = lighten4(this.git7, 25);\n } else {\n this.git0 = darken4(this.git0, 25);\n this.git1 = darken4(this.git1, 25);\n this.git2 = darken4(this.git2, 25);\n this.git3 = darken4(this.git3, 25);\n this.git4 = darken4(this.git4, 25);\n this.git5 = darken4(this.git5, 25);\n this.git6 = darken4(this.git6, 25);\n this.git7 = darken4(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert4(this.git0);\n this.gitInv1 = this.gitInv1 || invert4(this.git1);\n this.gitInv2 = this.gitInv2 || invert4(this.git2);\n this.gitInv3 = this.gitInv3 || invert4(this.git3);\n this.gitInv4 = this.gitInv4 || invert4(this.git4);\n this.gitInv5 = this.gitInv5 || invert4(this.git5);\n this.gitInv6 = this.gitInv6 || invert4(this.git6);\n this.gitInv7 = this.gitInv7 || invert4(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert4(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert4(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables4 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme4();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-neutral.js\nimport { invert as invert5, darken as darken5, lighten as lighten5, adjust as adjust6, isDark as isDark5 } from \"khroma\";\nvar Theme5 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.primaryColor = \"#eee\";\n this.contrast = \"#707070\";\n this.secondaryColor = lighten5(this.contrast, 55);\n this.background = \"#ffffff\";\n this.tertiaryColor = adjust6(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert5(this.primaryColor);\n this.secondaryTextColor = invert5(this.secondaryColor);\n this.tertiaryTextColor = invert5(this.tertiaryColor);\n this.lineColor = invert5(this.background);\n this.textColor = invert5(this.background);\n this.mainBkg = \"#eee\";\n this.secondBkg = \"calculated\";\n this.lineColor = \"#666\";\n this.border1 = \"#999\";\n this.border2 = \"calculated\";\n this.note = \"#ffa\";\n this.text = \"#333\";\n this.critical = \"#d42\";\n this.done = \"#bbb\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"white\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = this.actorBorder;\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"calculated\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.vertLineColor = \"calculated\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.rowOdd = this.rowOdd || lighten5(this.mainBkg, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || \"#f4f4f4\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n this.secondBkg = lighten5(this.contrast, 55);\n this.border2 = this.contrast;\n this.actorBorder = lighten5(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.actorBorder;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = \"#999\";\n this.noteBkgColor = \"#666\";\n this.noteTextColor = \"#fff\";\n this.cScale0 = this.cScale0 || \"#555\";\n this.cScale1 = this.cScale1 || \"#F4F4F4\";\n this.cScale2 = this.cScale2 || \"#555\";\n this.cScale3 = this.cScale3 || \"#BBB\";\n this.cScale4 = this.cScale4 || \"#777\";\n this.cScale5 = this.cScale5 || \"#999\";\n this.cScale6 = this.cScale6 || \"#DDD\";\n this.cScale7 = this.cScale7 || \"#FFF\";\n this.cScale8 = this.cScale8 || \"#DDD\";\n this.cScale9 = this.cScale9 || \"#BBB\";\n this.cScale10 = this.cScale10 || \"#999\";\n this.cScale11 = this.cScale11 || \"#777\";\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert5(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten5(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken5(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.cScaleLabel0 = this.cScaleLabel0 || this.cScale1;\n this.cScaleLabel2 = this.cScaleLabel2 || this.cScale1;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust6(this.mainBkg, { l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust6(this.mainBkg, { l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n this.sectionBkgColor = lighten5(this.contrast, 30);\n this.sectionBkgColor2 = lighten5(this.contrast, 30);\n this.taskBorderColor = darken5(this.contrast, 10);\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten5(this.border1, 30);\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken5(this.critBkgColor, 10);\n this.todayLineColor = this.critBkgColor;\n this.vertLineColor = this.critBkgColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.transitionColor = this.transitionColor || \"#000\";\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f4f4f4\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.stateBorder = this.stateBorder || \"#000\";\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#222\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust6(this.primaryColor, { h: 64 });\n this.fillType3 = adjust6(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust6(this.primaryColor, { h: -64 });\n this.fillType5 = adjust6(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust6(this.primaryColor, { h: 128 });\n this.fillType7 = adjust6(this.secondaryColor, { h: 128 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pie12 = this.pie0;\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust6(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust6(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust6(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust6(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust6(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust6(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark5(this.quadrant1Fill) ? lighten5(this.quadrant1Fill) : darken5(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0\"\n };\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = darken5(this.pie1, 25) || this.primaryColor;\n this.git1 = this.pie2 || this.secondaryColor;\n this.git2 = this.pie3 || this.tertiaryColor;\n this.git3 = this.pie4 || adjust6(this.primaryColor, { h: -30 });\n this.git4 = this.pie5 || adjust6(this.primaryColor, { h: -60 });\n this.git5 = this.pie6 || adjust6(this.primaryColor, { h: -90 });\n this.git6 = this.pie7 || adjust6(this.primaryColor, { h: 60 });\n this.git7 = this.pie8 || adjust6(this.primaryColor, { h: 120 });\n this.gitInv0 = this.gitInv0 || invert5(this.git0);\n this.gitInv1 = this.gitInv1 || invert5(this.git1);\n this.gitInv2 = this.gitInv2 || invert5(this.git2);\n this.gitInv3 = this.gitInv3 || invert5(this.git3);\n this.gitInv4 = this.gitInv4 || invert5(this.git4);\n this.gitInv5 = this.gitInv5 || invert5(this.git5);\n this.gitInv6 = this.gitInv6 || invert5(this.git6);\n this.gitInv7 = this.gitInv7 || invert5(this.git7);\n this.branchLabelColor = this.branchLabelColor || this.labelTextColor;\n this.gitBranchLabel0 = this.branchLabelColor;\n this.gitBranchLabel1 = \"white\";\n this.gitBranchLabel2 = this.branchLabelColor;\n this.gitBranchLabel3 = \"white\";\n this.gitBranchLabel4 = this.branchLabelColor;\n this.gitBranchLabel5 = this.branchLabelColor;\n this.gitBranchLabel6 = this.branchLabelColor;\n this.gitBranchLabel7 = this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables5 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme5();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/index.js\nvar themes_default = {\n base: {\n getThemeVariables\n },\n dark: {\n getThemeVariables: getThemeVariables2\n },\n default: {\n getThemeVariables: getThemeVariables3\n },\n forest: {\n getThemeVariables: getThemeVariables4\n },\n neutral: {\n getThemeVariables: getThemeVariables5\n }\n};\n\n// src/schemas/config.schema.yaml?only-defaults=true\nvar config_schema_default = {\n \"flowchart\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"subGraphTitleMargin\": {\n \"top\": 0,\n \"bottom\": 0\n },\n \"diagramPadding\": 8,\n \"htmlLabels\": true,\n \"nodeSpacing\": 50,\n \"rankSpacing\": 50,\n \"curve\": \"basis\",\n \"padding\": 15,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"wrappingWidth\": 200,\n \"inheritDir\": false\n },\n \"sequence\": {\n \"useMaxWidth\": true,\n \"hideUnusedParticipants\": false,\n \"activationWidth\": 10,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"actorMargin\": 50,\n \"width\": 150,\n \"height\": 65,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"mirrorActors\": true,\n \"forceMenus\": false,\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"showSequenceNumbers\": false,\n \"actorFontSize\": 14,\n \"actorFontFamily\": '\"Open Sans\", sans-serif',\n \"actorFontWeight\": 400,\n \"noteFontSize\": 14,\n \"noteFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"noteFontWeight\": 400,\n \"noteAlign\": \"center\",\n \"messageFontSize\": 16,\n \"messageFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"messageFontWeight\": 400,\n \"wrap\": false,\n \"wrapPadding\": 10,\n \"labelBoxWidth\": 50,\n \"labelBoxHeight\": 20\n },\n \"gantt\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"barHeight\": 20,\n \"barGap\": 4,\n \"topPadding\": 50,\n \"rightPadding\": 75,\n \"leftPadding\": 75,\n \"gridLineStartPadding\": 35,\n \"fontSize\": 11,\n \"sectionFontSize\": 11,\n \"numberSectionStyles\": 4,\n \"axisFormat\": \"%Y-%m-%d\",\n \"topAxis\": false,\n \"displayMode\": \"\",\n \"weekday\": \"sunday\"\n },\n \"journey\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"maxLabelWidth\": 360,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ],\n \"titleColor\": \"\",\n \"titleFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"titleFontSize\": \"4ex\"\n },\n \"class\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"arrowMarkerAbsolute\": false,\n \"dividerMargin\": 10,\n \"padding\": 5,\n \"textHeight\": 10,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"htmlLabels\": false,\n \"hideEmptyMembersBox\": false\n },\n \"state\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"dividerMargin\": 10,\n \"sizeUnit\": 5,\n \"padding\": 8,\n \"textHeight\": 10,\n \"titleShift\": -15,\n \"noteMargin\": 10,\n \"forkWidth\": 70,\n \"forkHeight\": 7,\n \"miniPadding\": 2,\n \"fontSizeFactor\": 5.02,\n \"fontSize\": 24,\n \"labelHeight\": 16,\n \"edgeLengthFactor\": \"20\",\n \"compositTitleSize\": 35,\n \"radius\": 5,\n \"defaultRenderer\": \"dagre-wrapper\"\n },\n \"er\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 20,\n \"layoutDirection\": \"TB\",\n \"minEntityWidth\": 100,\n \"minEntityHeight\": 75,\n \"entityPadding\": 15,\n \"nodeSpacing\": 140,\n \"rankSpacing\": 80,\n \"stroke\": \"gray\",\n \"fill\": \"honeydew\",\n \"fontSize\": 12\n },\n \"pie\": {\n \"useMaxWidth\": true,\n \"textPosition\": 0.75\n },\n \"quadrantChart\": {\n \"useMaxWidth\": true,\n \"chartWidth\": 500,\n \"chartHeight\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"quadrantPadding\": 5,\n \"xAxisLabelPadding\": 5,\n \"yAxisLabelPadding\": 5,\n \"xAxisLabelFontSize\": 16,\n \"yAxisLabelFontSize\": 16,\n \"quadrantLabelFontSize\": 16,\n \"quadrantTextTopPadding\": 5,\n \"pointTextPadding\": 5,\n \"pointLabelFontSize\": 12,\n \"pointRadius\": 5,\n \"xAxisPosition\": \"top\",\n \"yAxisPosition\": \"left\",\n \"quadrantInternalBorderStrokeWidth\": 1,\n \"quadrantExternalBorderStrokeWidth\": 2\n },\n \"xyChart\": {\n \"useMaxWidth\": true,\n \"width\": 700,\n \"height\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"showDataLabel\": false,\n \"showTitle\": true,\n \"xAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"yAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"chartOrientation\": \"vertical\",\n \"plotReservedSpacePercent\": 50\n },\n \"requirement\": {\n \"useMaxWidth\": true,\n \"rect_fill\": \"#f9f9f9\",\n \"text_color\": \"#333\",\n \"rect_border_size\": \"0.5px\",\n \"rect_border_color\": \"#bbb\",\n \"rect_min_width\": 200,\n \"rect_min_height\": 200,\n \"fontSize\": 14,\n \"rect_padding\": 10,\n \"line_height\": 20\n },\n \"mindmap\": {\n \"useMaxWidth\": true,\n \"padding\": 10,\n \"maxNodeWidth\": 200,\n \"layoutAlgorithm\": \"cose-bilkent\"\n },\n \"kanban\": {\n \"useMaxWidth\": true,\n \"padding\": 8,\n \"sectionWidth\": 200,\n \"ticketBaseUrl\": \"\"\n },\n \"timeline\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ],\n \"disableMulticolor\": false\n },\n \"gitGraph\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 8,\n \"nodeLabel\": {\n \"width\": 75,\n \"height\": 100,\n \"x\": -25,\n \"y\": 0\n },\n \"mainBranchName\": \"main\",\n \"mainBranchOrder\": 0,\n \"showCommitLabel\": true,\n \"showBranches\": true,\n \"rotateCommitLabel\": true,\n \"parallelCommits\": false,\n \"arrowMarkerAbsolute\": false\n },\n \"c4\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"c4ShapeMargin\": 50,\n \"c4ShapePadding\": 20,\n \"width\": 216,\n \"height\": 60,\n \"boxMargin\": 10,\n \"c4ShapeInRow\": 4,\n \"nextLinePaddingX\": 0,\n \"c4BoundaryInRow\": 2,\n \"personFontSize\": 14,\n \"personFontFamily\": '\"Open Sans\", sans-serif',\n \"personFontWeight\": \"normal\",\n \"external_personFontSize\": 14,\n \"external_personFontFamily\": '\"Open Sans\", sans-serif',\n \"external_personFontWeight\": \"normal\",\n \"systemFontSize\": 14,\n \"systemFontFamily\": '\"Open Sans\", sans-serif',\n \"systemFontWeight\": \"normal\",\n \"external_systemFontSize\": 14,\n \"external_systemFontFamily\": '\"Open Sans\", sans-serif',\n \"external_systemFontWeight\": \"normal\",\n \"system_dbFontSize\": 14,\n \"system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"system_dbFontWeight\": \"normal\",\n \"external_system_dbFontSize\": 14,\n \"external_system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_dbFontWeight\": \"normal\",\n \"system_queueFontSize\": 14,\n \"system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"system_queueFontWeight\": \"normal\",\n \"external_system_queueFontSize\": 14,\n \"external_system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_queueFontWeight\": \"normal\",\n \"boundaryFontSize\": 14,\n \"boundaryFontFamily\": '\"Open Sans\", sans-serif',\n \"boundaryFontWeight\": \"normal\",\n \"messageFontSize\": 12,\n \"messageFontFamily\": '\"Open Sans\", sans-serif',\n \"messageFontWeight\": \"normal\",\n \"containerFontSize\": 14,\n \"containerFontFamily\": '\"Open Sans\", sans-serif',\n \"containerFontWeight\": \"normal\",\n \"external_containerFontSize\": 14,\n \"external_containerFontFamily\": '\"Open Sans\", sans-serif',\n \"external_containerFontWeight\": \"normal\",\n \"container_dbFontSize\": 14,\n \"container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"container_dbFontWeight\": \"normal\",\n \"external_container_dbFontSize\": 14,\n \"external_container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_dbFontWeight\": \"normal\",\n \"container_queueFontSize\": 14,\n \"container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"container_queueFontWeight\": \"normal\",\n \"external_container_queueFontSize\": 14,\n \"external_container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_queueFontWeight\": \"normal\",\n \"componentFontSize\": 14,\n \"componentFontFamily\": '\"Open Sans\", sans-serif',\n \"componentFontWeight\": \"normal\",\n \"external_componentFontSize\": 14,\n \"external_componentFontFamily\": '\"Open Sans\", sans-serif',\n \"external_componentFontWeight\": \"normal\",\n \"component_dbFontSize\": 14,\n \"component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"component_dbFontWeight\": \"normal\",\n \"external_component_dbFontSize\": 14,\n \"external_component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_dbFontWeight\": \"normal\",\n \"component_queueFontSize\": 14,\n \"component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"component_queueFontWeight\": \"normal\",\n \"external_component_queueFontSize\": 14,\n \"external_component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_queueFontWeight\": \"normal\",\n \"wrap\": true,\n \"wrapPadding\": 10,\n \"person_bg_color\": \"#08427B\",\n \"person_border_color\": \"#073B6F\",\n \"external_person_bg_color\": \"#686868\",\n \"external_person_border_color\": \"#8A8A8A\",\n \"system_bg_color\": \"#1168BD\",\n \"system_border_color\": \"#3C7FC0\",\n \"system_db_bg_color\": \"#1168BD\",\n \"system_db_border_color\": \"#3C7FC0\",\n \"system_queue_bg_color\": \"#1168BD\",\n \"system_queue_border_color\": \"#3C7FC0\",\n \"external_system_bg_color\": \"#999999\",\n \"external_system_border_color\": \"#8A8A8A\",\n \"external_system_db_bg_color\": \"#999999\",\n \"external_system_db_border_color\": \"#8A8A8A\",\n \"external_system_queue_bg_color\": \"#999999\",\n \"external_system_queue_border_color\": \"#8A8A8A\",\n \"container_bg_color\": \"#438DD5\",\n \"container_border_color\": \"#3C7FC0\",\n \"container_db_bg_color\": \"#438DD5\",\n \"container_db_border_color\": \"#3C7FC0\",\n \"container_queue_bg_color\": \"#438DD5\",\n \"container_queue_border_color\": \"#3C7FC0\",\n \"external_container_bg_color\": \"#B3B3B3\",\n \"external_container_border_color\": \"#A6A6A6\",\n \"external_container_db_bg_color\": \"#B3B3B3\",\n \"external_container_db_border_color\": \"#A6A6A6\",\n \"external_container_queue_bg_color\": \"#B3B3B3\",\n \"external_container_queue_border_color\": \"#A6A6A6\",\n \"component_bg_color\": \"#85BBF0\",\n \"component_border_color\": \"#78A8D8\",\n \"component_db_bg_color\": \"#85BBF0\",\n \"component_db_border_color\": \"#78A8D8\",\n \"component_queue_bg_color\": \"#85BBF0\",\n \"component_queue_border_color\": \"#78A8D8\",\n \"external_component_bg_color\": \"#CCCCCC\",\n \"external_component_border_color\": \"#BFBFBF\",\n \"external_component_db_bg_color\": \"#CCCCCC\",\n \"external_component_db_border_color\": \"#BFBFBF\",\n \"external_component_queue_bg_color\": \"#CCCCCC\",\n \"external_component_queue_border_color\": \"#BFBFBF\"\n },\n \"sankey\": {\n \"useMaxWidth\": true,\n \"width\": 600,\n \"height\": 400,\n \"linkColor\": \"gradient\",\n \"nodeAlignment\": \"justify\",\n \"showValues\": true,\n \"prefix\": \"\",\n \"suffix\": \"\"\n },\n \"block\": {\n \"useMaxWidth\": true,\n \"padding\": 8\n },\n \"packet\": {\n \"useMaxWidth\": true,\n \"rowHeight\": 32,\n \"bitWidth\": 32,\n \"bitsPerRow\": 32,\n \"showBits\": true,\n \"paddingX\": 5,\n \"paddingY\": 5\n },\n \"architecture\": {\n \"useMaxWidth\": true,\n \"padding\": 40,\n \"iconSize\": 80,\n \"fontSize\": 16\n },\n \"radar\": {\n \"useMaxWidth\": true,\n \"width\": 600,\n \"height\": 600,\n \"marginTop\": 50,\n \"marginRight\": 50,\n \"marginBottom\": 50,\n \"marginLeft\": 50,\n \"axisScaleFactor\": 1,\n \"axisLabelFactor\": 1.05,\n \"curveTension\": 0.17\n },\n \"theme\": \"default\",\n \"look\": \"classic\",\n \"handDrawnSeed\": 0,\n \"layout\": \"dagre\",\n \"maxTextSize\": 5e4,\n \"maxEdges\": 500,\n \"darkMode\": false,\n \"fontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif;',\n \"logLevel\": 5,\n \"securityLevel\": \"strict\",\n \"startOnLoad\": true,\n \"arrowMarkerAbsolute\": false,\n \"secure\": [\n \"secure\",\n \"securityLevel\",\n \"startOnLoad\",\n \"maxTextSize\",\n \"suppressErrorRendering\",\n \"maxEdges\"\n ],\n \"legacyMathML\": false,\n \"forceLegacyMathML\": false,\n \"deterministicIds\": false,\n \"fontSize\": 16,\n \"markdownAutoWrap\": true,\n \"suppressErrorRendering\": false\n};\n\n// src/defaultConfig.ts\nvar config = {\n ...config_schema_default,\n // Set, even though they're `undefined` so that `configKeys` finds these keys\n // TODO: Should we replace these with `null` so that they can go in the JSON Schema?\n deterministicIDSeed: void 0,\n elk: {\n // mergeEdges is needed here to be considered\n mergeEdges: false,\n nodePlacementStrategy: \"BRANDES_KOEPF\",\n forceNodeModelOrder: false,\n considerModelOrder: \"NODES_AND_EDGES\"\n },\n themeCSS: void 0,\n // add non-JSON default config values\n themeVariables: themes_default.default.getThemeVariables(),\n sequence: {\n ...config_schema_default.sequence,\n messageFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n }, \"messageFont\"),\n noteFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight\n };\n }, \"noteFont\"),\n actorFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight\n };\n }, \"actorFont\")\n },\n class: {\n hideEmptyMembersBox: false\n },\n gantt: {\n ...config_schema_default.gantt,\n tickInterval: void 0,\n useWidth: void 0\n // can probably be removed since `configKeys` already includes this\n },\n c4: {\n ...config_schema_default.c4,\n useWidth: void 0,\n personFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.personFontFamily,\n fontSize: this.personFontSize,\n fontWeight: this.personFontWeight\n };\n }, \"personFont\"),\n flowchart: {\n ...config_schema_default.flowchart,\n inheritDir: false\n // default to legacy behavior\n },\n external_personFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_personFontFamily,\n fontSize: this.external_personFontSize,\n fontWeight: this.external_personFontWeight\n };\n }, \"external_personFont\"),\n systemFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.systemFontFamily,\n fontSize: this.systemFontSize,\n fontWeight: this.systemFontWeight\n };\n }, \"systemFont\"),\n external_systemFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_systemFontFamily,\n fontSize: this.external_systemFontSize,\n fontWeight: this.external_systemFontWeight\n };\n }, \"external_systemFont\"),\n system_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.system_dbFontFamily,\n fontSize: this.system_dbFontSize,\n fontWeight: this.system_dbFontWeight\n };\n }, \"system_dbFont\"),\n external_system_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_system_dbFontFamily,\n fontSize: this.external_system_dbFontSize,\n fontWeight: this.external_system_dbFontWeight\n };\n }, \"external_system_dbFont\"),\n system_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.system_queueFontFamily,\n fontSize: this.system_queueFontSize,\n fontWeight: this.system_queueFontWeight\n };\n }, \"system_queueFont\"),\n external_system_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_system_queueFontFamily,\n fontSize: this.external_system_queueFontSize,\n fontWeight: this.external_system_queueFontWeight\n };\n }, \"external_system_queueFont\"),\n containerFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.containerFontFamily,\n fontSize: this.containerFontSize,\n fontWeight: this.containerFontWeight\n };\n }, \"containerFont\"),\n external_containerFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_containerFontFamily,\n fontSize: this.external_containerFontSize,\n fontWeight: this.external_containerFontWeight\n };\n }, \"external_containerFont\"),\n container_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.container_dbFontFamily,\n fontSize: this.container_dbFontSize,\n fontWeight: this.container_dbFontWeight\n };\n }, \"container_dbFont\"),\n external_container_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_container_dbFontFamily,\n fontSize: this.external_container_dbFontSize,\n fontWeight: this.external_container_dbFontWeight\n };\n }, \"external_container_dbFont\"),\n container_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.container_queueFontFamily,\n fontSize: this.container_queueFontSize,\n fontWeight: this.container_queueFontWeight\n };\n }, \"container_queueFont\"),\n external_container_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_container_queueFontFamily,\n fontSize: this.external_container_queueFontSize,\n fontWeight: this.external_container_queueFontWeight\n };\n }, \"external_container_queueFont\"),\n componentFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.componentFontFamily,\n fontSize: this.componentFontSize,\n fontWeight: this.componentFontWeight\n };\n }, \"componentFont\"),\n external_componentFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_componentFontFamily,\n fontSize: this.external_componentFontSize,\n fontWeight: this.external_componentFontWeight\n };\n }, \"external_componentFont\"),\n component_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.component_dbFontFamily,\n fontSize: this.component_dbFontSize,\n fontWeight: this.component_dbFontWeight\n };\n }, \"component_dbFont\"),\n external_component_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_component_dbFontFamily,\n fontSize: this.external_component_dbFontSize,\n fontWeight: this.external_component_dbFontWeight\n };\n }, \"external_component_dbFont\"),\n component_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.component_queueFontFamily,\n fontSize: this.component_queueFontSize,\n fontWeight: this.component_queueFontWeight\n };\n }, \"component_queueFont\"),\n external_component_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_component_queueFontFamily,\n fontSize: this.external_component_queueFontSize,\n fontWeight: this.external_component_queueFontWeight\n };\n }, \"external_component_queueFont\"),\n boundaryFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.boundaryFontFamily,\n fontSize: this.boundaryFontSize,\n fontWeight: this.boundaryFontWeight\n };\n }, \"boundaryFont\"),\n messageFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n }, \"messageFont\")\n },\n pie: {\n ...config_schema_default.pie,\n useWidth: 984\n },\n xyChart: {\n ...config_schema_default.xyChart,\n useWidth: void 0\n },\n requirement: {\n ...config_schema_default.requirement,\n useWidth: void 0\n },\n packet: {\n ...config_schema_default.packet\n },\n radar: {\n ...config_schema_default.radar\n },\n treemap: {\n useMaxWidth: true,\n padding: 10,\n diagramPadding: 8,\n showValues: true,\n nodeWidth: 100,\n nodeHeight: 40,\n borderWidth: 1,\n valueFontSize: 12,\n labelFontSize: 14,\n valueFormat: \",\"\n }\n};\nvar keyify = /* @__PURE__ */ __name((obj, prefix = \"\") => Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === \"object\" && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], \"\")];\n }\n return [...res, prefix + el];\n}, []), \"keyify\");\nvar configKeys = new Set(keyify(config, \"\"));\nvar defaultConfig_default = config;\n\n// src/utils/sanitizeDirective.ts\nvar sanitizeDirective = /* @__PURE__ */ __name((args) => {\n log.debug(\"sanitizeDirective called with\", args);\n if (typeof args !== \"object\" || args == null) {\n return;\n }\n if (Array.isArray(args)) {\n args.forEach((arg) => sanitizeDirective(arg));\n return;\n }\n for (const key of Object.keys(args)) {\n log.debug(\"Checking key\", key);\n if (key.startsWith(\"__\") || key.includes(\"proto\") || key.includes(\"constr\") || !configKeys.has(key) || args[key] == null) {\n log.debug(\"sanitize deleting key: \", key);\n delete args[key];\n continue;\n }\n if (typeof args[key] === \"object\") {\n log.debug(\"sanitizing object\", key);\n sanitizeDirective(args[key]);\n continue;\n }\n const cssMatchers = [\"themeCSS\", \"fontFamily\", \"altFontFamily\"];\n for (const cssKey of cssMatchers) {\n if (key.includes(cssKey)) {\n log.debug(\"sanitizing css option\", key);\n args[key] = sanitizeCss(args[key]);\n }\n }\n }\n if (args.themeVariables) {\n for (const k of Object.keys(args.themeVariables)) {\n const val = args.themeVariables[k];\n if (val?.match && !val.match(/^[\\d \"#%(),.;A-Za-z]+$/)) {\n args.themeVariables[k] = \"\";\n }\n }\n }\n log.debug(\"After sanitization\", args);\n}, \"sanitizeDirective\");\nvar sanitizeCss = /* @__PURE__ */ __name((str) => {\n let startCnt = 0;\n let endCnt = 0;\n for (const element of str) {\n if (startCnt < endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n if (element === \"{\") {\n startCnt++;\n } else if (element === \"}\") {\n endCnt++;\n }\n }\n if (startCnt !== endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n return str;\n}, \"sanitizeCss\");\n\n// src/config.ts\nvar defaultConfig = Object.freeze(defaultConfig_default);\nvar siteConfig = assignWithDepth_default({}, defaultConfig);\nvar configFromInitialize;\nvar directives = [];\nvar currentConfig = assignWithDepth_default({}, defaultConfig);\nvar updateCurrentConfig = /* @__PURE__ */ __name((siteCfg, _directives) => {\n let cfg = assignWithDepth_default({}, siteCfg);\n let sumOfDirectives = {};\n for (const d of _directives) {\n sanitize(d);\n sumOfDirectives = assignWithDepth_default(sumOfDirectives, d);\n }\n cfg = assignWithDepth_default(cfg, sumOfDirectives);\n if (sumOfDirectives.theme && sumOfDirectives.theme in themes_default) {\n const tmpConfigFromInitialize = assignWithDepth_default({}, configFromInitialize);\n const themeVariables = assignWithDepth_default(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n if (cfg.theme && cfg.theme in themes_default) {\n cfg.themeVariables = themes_default[cfg.theme].getThemeVariables(themeVariables);\n }\n }\n currentConfig = cfg;\n checkConfig(currentConfig);\n return currentConfig;\n}, \"updateCurrentConfig\");\nvar setSiteConfig = /* @__PURE__ */ __name((conf) => {\n siteConfig = assignWithDepth_default({}, defaultConfig);\n siteConfig = assignWithDepth_default(siteConfig, conf);\n if (conf.theme && themes_default[conf.theme]) {\n siteConfig.themeVariables = themes_default[conf.theme].getThemeVariables(conf.themeVariables);\n }\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n}, \"setSiteConfig\");\nvar saveConfigFromInitialize = /* @__PURE__ */ __name((conf) => {\n configFromInitialize = assignWithDepth_default({}, conf);\n}, \"saveConfigFromInitialize\");\nvar updateSiteConfig = /* @__PURE__ */ __name((conf) => {\n siteConfig = assignWithDepth_default(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n}, \"updateSiteConfig\");\nvar getSiteConfig = /* @__PURE__ */ __name(() => {\n return assignWithDepth_default({}, siteConfig);\n}, \"getSiteConfig\");\nvar setConfig = /* @__PURE__ */ __name((conf) => {\n checkConfig(conf);\n assignWithDepth_default(currentConfig, conf);\n return getConfig();\n}, \"setConfig\");\nvar getConfig = /* @__PURE__ */ __name(() => {\n return assignWithDepth_default({}, currentConfig);\n}, \"getConfig\");\nvar sanitize = /* @__PURE__ */ __name((options) => {\n if (!options) {\n return;\n }\n [\"secure\", ...siteConfig.secure ?? []].forEach((key) => {\n if (Object.hasOwn(options, key)) {\n log.debug(`Denied attempt to modify a secure key ${key}`, options[key]);\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (key.startsWith(\"__\")) {\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === \"string\" && (options[key].includes(\"<\") || options[key].includes(\">\") || options[key].includes(\"url(data:\"))) {\n delete options[key];\n }\n if (typeof options[key] === \"object\") {\n sanitize(options[key]);\n }\n });\n}, \"sanitize\");\nvar addDirective = /* @__PURE__ */ __name((directive) => {\n sanitizeDirective(directive);\n if (directive.fontFamily && !directive.themeVariables?.fontFamily) {\n directive.themeVariables = {\n ...directive.themeVariables,\n fontFamily: directive.fontFamily\n };\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n}, \"addDirective\");\nvar reset = /* @__PURE__ */ __name((config2 = siteConfig) => {\n directives = [];\n updateCurrentConfig(config2, directives);\n}, \"reset\");\nvar ConfigWarning = {\n LAZY_LOAD_DEPRECATED: \"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.\"\n};\nvar issuedWarnings = {};\nvar issueWarning = /* @__PURE__ */ __name((warning) => {\n if (issuedWarnings[warning]) {\n return;\n }\n log.warn(ConfigWarning[warning]);\n issuedWarnings[warning] = true;\n}, \"issueWarning\");\nvar checkConfig = /* @__PURE__ */ __name((config2) => {\n if (!config2) {\n return;\n }\n if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {\n issueWarning(\"LAZY_LOAD_DEPRECATED\");\n }\n}, \"checkConfig\");\nvar getUserDefinedConfig = /* @__PURE__ */ __name(() => {\n let userConfig = {};\n if (configFromInitialize) {\n userConfig = assignWithDepth_default(userConfig, configFromInitialize);\n }\n for (const d of directives) {\n userConfig = assignWithDepth_default(userConfig, d);\n }\n return userConfig;\n}, \"getUserDefinedConfig\");\n\n// src/diagrams/common/common.ts\nimport DOMPurify from \"dompurify\";\nvar lineBreakRegex = /<br\\s*\\/?>/gi;\nvar getRows = /* @__PURE__ */ __name((s) => {\n if (!s) {\n return [\"\"];\n }\n const str = breakToPlaceholder(s).replace(/\\\\n/g, \"#br#\");\n return str.split(\"#br#\");\n}, \"getRows\");\nvar setupDompurifyHooksIfNotSetup = /* @__PURE__ */ (() => {\n let setup = false;\n return () => {\n if (!setup) {\n setupDompurifyHooks();\n setup = true;\n }\n };\n})();\nfunction setupDompurifyHooks() {\n const TEMPORARY_ATTRIBUTE = \"data-temp-href-target\";\n DOMPurify.addHook(\"beforeSanitizeAttributes\", (node) => {\n if (node.tagName === \"A\" && node.hasAttribute(\"target\")) {\n node.setAttribute(TEMPORARY_ATTRIBUTE, node.getAttribute(\"target\") ?? \"\");\n }\n });\n DOMPurify.addHook(\"afterSanitizeAttributes\", (node) => {\n if (node.tagName === \"A\" && node.hasAttribute(TEMPORARY_ATTRIBUTE)) {\n node.setAttribute(\"target\", node.getAttribute(TEMPORARY_ATTRIBUTE) ?? \"\");\n node.removeAttribute(TEMPORARY_ATTRIBUTE);\n if (node.getAttribute(\"target\") === \"_blank\") {\n node.setAttribute(\"rel\", \"noopener\");\n }\n }\n });\n}\n__name(setupDompurifyHooks, \"setupDompurifyHooks\");\nvar removeScript = /* @__PURE__ */ __name((txt) => {\n setupDompurifyHooksIfNotSetup();\n const sanitizedText = DOMPurify.sanitize(txt);\n return sanitizedText;\n}, \"removeScript\");\nvar sanitizeMore = /* @__PURE__ */ __name((text, config2) => {\n if (config2.flowchart?.htmlLabels !== false) {\n const level = config2.securityLevel;\n if (level === \"antiscript\" || level === \"strict\") {\n text = removeScript(text);\n } else if (level !== \"loose\") {\n text = breakToPlaceholder(text);\n text = text.replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n text = text.replace(/=/g, \"&equals;\");\n text = placeholderToBreak(text);\n }\n }\n return text;\n}, \"sanitizeMore\");\nvar sanitizeText = /* @__PURE__ */ __name((text, config2) => {\n if (!text) {\n return text;\n }\n if (config2.dompurifyConfig) {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), config2.dompurifyConfig).toString();\n } else {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), {\n FORBID_TAGS: [\"style\"]\n }).toString();\n }\n return text;\n}, \"sanitizeText\");\nvar sanitizeTextOrArray = /* @__PURE__ */ __name((a, config2) => {\n if (typeof a === \"string\") {\n return sanitizeText(a, config2);\n }\n return a.flat().map((x) => sanitizeText(x, config2));\n}, \"sanitizeTextOrArray\");\nvar hasBreaks = /* @__PURE__ */ __name((text) => {\n return lineBreakRegex.test(text);\n}, \"hasBreaks\");\nvar splitBreaks = /* @__PURE__ */ __name((text) => {\n return text.split(lineBreakRegex);\n}, \"splitBreaks\");\nvar placeholderToBreak = /* @__PURE__ */ __name((s) => {\n return s.replace(/#br#/g, \"<br/>\");\n}, \"placeholderToBreak\");\nvar breakToPlaceholder = /* @__PURE__ */ __name((s) => {\n return s.replace(lineBreakRegex, \"#br#\");\n}, \"breakToPlaceholder\");\nvar getUrl = /* @__PURE__ */ __name((useAbsolute) => {\n let url = \"\";\n if (useAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = CSS.escape(url);\n }\n return url;\n}, \"getUrl\");\nvar evaluate = /* @__PURE__ */ __name((val) => val === false || [\"false\", \"null\", \"0\"].includes(String(val).trim().toLowerCase()) ? false : true, \"evaluate\");\nvar getMax = /* @__PURE__ */ __name(function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.max(...newValues);\n}, \"getMax\");\nvar getMin = /* @__PURE__ */ __name(function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.min(...newValues);\n}, \"getMin\");\nvar parseGenericTypes = /* @__PURE__ */ __name(function(input) {\n const inputSets = input.split(/(,)/);\n const output = [];\n for (let i = 0; i < inputSets.length; i++) {\n let thisSet = inputSets[i];\n if (thisSet === \",\" && i > 0 && i + 1 < inputSets.length) {\n const previousSet = inputSets[i - 1];\n const nextSet = inputSets[i + 1];\n if (shouldCombineSets(previousSet, nextSet)) {\n thisSet = previousSet + \",\" + nextSet;\n i++;\n output.pop();\n }\n }\n output.push(processSet(thisSet));\n }\n return output.join(\"\");\n}, \"parseGenericTypes\");\nvar countOccurrence = /* @__PURE__ */ __name((string, substring) => {\n return Math.max(0, string.split(substring).length - 1);\n}, \"countOccurrence\");\nvar shouldCombineSets = /* @__PURE__ */ __name((previousSet, nextSet) => {\n const prevCount = countOccurrence(previousSet, \"~\");\n const nextCount = countOccurrence(nextSet, \"~\");\n return prevCount === 1 && nextCount === 1;\n}, \"shouldCombineSets\");\nvar processSet = /* @__PURE__ */ __name((input) => {\n const tildeCount = countOccurrence(input, \"~\");\n let hasStartingTilde = false;\n if (tildeCount <= 1) {\n return input;\n }\n if (tildeCount % 2 !== 0 && input.startsWith(\"~\")) {\n input = input.substring(1);\n hasStartingTilde = true;\n }\n const chars = [...input];\n let first = chars.indexOf(\"~\");\n let last = chars.lastIndexOf(\"~\");\n while (first !== -1 && last !== -1 && first !== last) {\n chars[first] = \"<\";\n chars[last] = \">\";\n first = chars.indexOf(\"~\");\n last = chars.lastIndexOf(\"~\");\n }\n if (hasStartingTilde) {\n chars.unshift(\"~\");\n }\n return chars.join(\"\");\n}, \"processSet\");\nvar isMathMLSupported = /* @__PURE__ */ __name(() => window.MathMLElement !== void 0, \"isMathMLSupported\");\nvar katexRegex = /\\$\\$(.*)\\$\\$/g;\nvar hasKatex = /* @__PURE__ */ __name((text) => (text.match(katexRegex)?.length ?? 0) > 0, \"hasKatex\");\nvar calculateMathMLDimensions = /* @__PURE__ */ __name(async (text, config2) => {\n const divElem = document.createElement(\"div\");\n divElem.innerHTML = await renderKatexSanitized(text, config2);\n divElem.id = \"katex-temp\";\n divElem.style.visibility = \"hidden\";\n divElem.style.position = \"absolute\";\n divElem.style.top = \"0\";\n const body = document.querySelector(\"body\");\n body?.insertAdjacentElement(\"beforeend\", divElem);\n const dim = { width: divElem.clientWidth, height: divElem.clientHeight };\n divElem.remove();\n return dim;\n}, \"calculateMathMLDimensions\");\nvar renderKatexUnsanitized = /* @__PURE__ */ __name(async (text, config2) => {\n if (!hasKatex(text)) {\n return text;\n }\n if (!(isMathMLSupported() || config2.legacyMathML || config2.forceLegacyMathML)) {\n return text.replace(katexRegex, \"MathML is unsupported in this environment.\");\n }\n if (true) {\n const { default: katex } = await import(\"katex\");\n const outputMode = config2.forceLegacyMathML || !isMathMLSupported() && config2.legacyMathML ? \"htmlAndMathml\" : \"mathml\";\n return text.split(lineBreakRegex).map(\n (line) => hasKatex(line) ? `<div style=\"display: flex; align-items: center; justify-content: center; white-space: nowrap;\">${line}</div>` : `<div>${line}</div>`\n ).join(\"\").replace(\n katexRegex,\n (_, c) => katex.renderToString(c, {\n throwOnError: true,\n displayMode: true,\n output: outputMode\n }).replace(/\\n/g, \" \").replace(/<annotation.*<\\/annotation>/g, \"\")\n );\n }\n return text.replace(\n katexRegex,\n \"Katex is not supported in @mermaid-js/tiny. Please use the full mermaid library.\"\n );\n}, \"renderKatexUnsanitized\");\nvar renderKatexSanitized = /* @__PURE__ */ __name(async (text, config2) => {\n return sanitizeText(await renderKatexUnsanitized(text, config2), config2);\n}, \"renderKatexSanitized\");\nvar common_default = {\n getRows,\n sanitizeText,\n sanitizeTextOrArray,\n hasBreaks,\n splitBreaks,\n lineBreakRegex,\n removeScript,\n getUrl,\n evaluate,\n getMax,\n getMin\n};\n\n// src/setupGraphViewbox.js\nvar d3Attrs = /* @__PURE__ */ __name(function(d3Elem, attrs) {\n for (let attr of attrs) {\n d3Elem.attr(attr[0], attr[1]);\n }\n}, \"d3Attrs\");\nvar calculateSvgSizeAttrs = /* @__PURE__ */ __name(function(height, width, useMaxWidth) {\n let attrs = /* @__PURE__ */ new Map();\n if (useMaxWidth) {\n attrs.set(\"width\", \"100%\");\n attrs.set(\"style\", `max-width: ${width}px;`);\n } else {\n attrs.set(\"height\", height);\n attrs.set(\"width\", width);\n }\n return attrs;\n}, \"calculateSvgSizeAttrs\");\nvar configureSvgSize = /* @__PURE__ */ __name(function(svgElem, height, width, useMaxWidth) {\n const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);\n d3Attrs(svgElem, attrs);\n}, \"configureSvgSize\");\nvar setupGraphViewbox = /* @__PURE__ */ __name(function(graph, svgElem, padding, useMaxWidth) {\n const svgBounds = svgElem.node().getBBox();\n const sWidth = svgBounds.width;\n const sHeight = svgBounds.height;\n log.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);\n let width = 0;\n let height = 0;\n log.info(`Graph bounds: ${width}x${height}`, graph);\n width = sWidth + padding * 2;\n height = sHeight + padding * 2;\n log.info(`Calculated bounds: ${width}x${height}`);\n configureSvgSize(svgElem, height, width, useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;\n svgElem.attr(\"viewBox\", vBox);\n}, \"setupGraphViewbox\");\n\n// src/styles.ts\nvar themes = {};\nvar getStyles = /* @__PURE__ */ __name((type, userStyles, options) => {\n let diagramStyles = \"\";\n if (type in themes && themes[type]) {\n diagramStyles = themes[type](options);\n } else {\n log.warn(`No theme found for ${type}`);\n }\n return ` & {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n @keyframes edge-animation-frame {\n from {\n stroke-dashoffset: 0;\n }\n }\n @keyframes dash {\n to {\n stroke-dashoffset: 0;\n }\n }\n & .edge-animation-slow {\n stroke-dasharray: 9,5 !important;\n stroke-dashoffset: 900;\n animation: dash 50s linear infinite;\n stroke-linecap: round;\n }\n & .edge-animation-fast {\n stroke-dasharray: 9,5 !important;\n stroke-dashoffset: 900;\n animation: dash 20s linear infinite;\n stroke-linecap: round;\n }\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${options.errorBkgColor};\n }\n & .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 1px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n & .edge-thickness-invisible {\n stroke-width: 0;\n fill: none;\n }\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n }\n & .marker.cross {\n stroke: ${options.lineColor};\n }\n\n & svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n & p {\n margin: 0\n }\n\n ${diagramStyles}\n\n ${userStyles}\n`;\n}, \"getStyles\");\nvar addStylesForDiagram = /* @__PURE__ */ __name((type, diagramTheme) => {\n if (diagramTheme !== void 0) {\n themes[type] = diagramTheme;\n }\n}, \"addStylesForDiagram\");\nvar styles_default = getStyles;\n\n// src/diagrams/common/commonDb.ts\nvar commonDb_exports = {};\n__export(commonDb_exports, {\n clear: () => clear,\n getAccDescription: () => getAccDescription,\n getAccTitle: () => getAccTitle,\n getDiagramTitle: () => getDiagramTitle,\n setAccDescription: () => setAccDescription,\n setAccTitle: () => setAccTitle,\n setDiagramTitle: () => setDiagramTitle\n});\nvar accTitle = \"\";\nvar diagramTitle = \"\";\nvar accDescription = \"\";\nvar sanitizeText2 = /* @__PURE__ */ __name((txt) => sanitizeText(txt, getConfig()), \"sanitizeText\");\nvar clear = /* @__PURE__ */ __name(() => {\n accTitle = \"\";\n accDescription = \"\";\n diagramTitle = \"\";\n}, \"clear\");\nvar setAccTitle = /* @__PURE__ */ __name((txt) => {\n accTitle = sanitizeText2(txt).replace(/^\\s+/g, \"\");\n}, \"setAccTitle\");\nvar getAccTitle = /* @__PURE__ */ __name(() => accTitle, \"getAccTitle\");\nvar setAccDescription = /* @__PURE__ */ __name((txt) => {\n accDescription = sanitizeText2(txt).replace(/\\n\\s+/g, \"\\n\");\n}, \"setAccDescription\");\nvar getAccDescription = /* @__PURE__ */ __name(() => accDescription, \"getAccDescription\");\nvar setDiagramTitle = /* @__PURE__ */ __name((txt) => {\n diagramTitle = sanitizeText2(txt);\n}, \"setDiagramTitle\");\nvar getDiagramTitle = /* @__PURE__ */ __name(() => diagramTitle, \"getDiagramTitle\");\n\n// src/diagram-api/diagramAPI.ts\nvar log2 = log;\nvar setLogLevel2 = setLogLevel;\nvar getConfig2 = getConfig;\nvar setConfig2 = setConfig;\nvar defaultConfig2 = defaultConfig;\nvar sanitizeText3 = /* @__PURE__ */ __name((text) => sanitizeText(text, getConfig2()), \"sanitizeText\");\nvar setupGraphViewbox2 = setupGraphViewbox;\nvar getCommonDb = /* @__PURE__ */ __name(() => {\n return commonDb_exports;\n}, \"getCommonDb\");\nvar diagrams = {};\nvar registerDiagram = /* @__PURE__ */ __name((id, diagram, detector) => {\n if (diagrams[id]) {\n log2.warn(`Diagram with id ${id} already registered. Overwriting.`);\n }\n diagrams[id] = diagram;\n if (detector) {\n addDetector(id, detector);\n }\n addStylesForDiagram(id, diagram.styles);\n diagram.injectUtils?.(\n log2,\n setLogLevel2,\n getConfig2,\n sanitizeText3,\n setupGraphViewbox2,\n getCommonDb(),\n () => {\n }\n );\n}, \"registerDiagram\");\nvar getDiagram = /* @__PURE__ */ __name((name) => {\n if (name in diagrams) {\n return diagrams[name];\n }\n throw new DiagramNotFoundError(name);\n}, \"getDiagram\");\nvar DiagramNotFoundError = class extends Error {\n static {\n __name(this, \"DiagramNotFoundError\");\n }\n constructor(name) {\n super(`Diagram ${name} not found.`);\n }\n};\n\nexport {\n assignWithDepth_default,\n getThemeVariables3 as getThemeVariables,\n themes_default,\n defaultConfig_default,\n sanitizeDirective,\n defaultConfig,\n setSiteConfig,\n saveConfigFromInitialize,\n updateSiteConfig,\n getSiteConfig,\n setConfig,\n getConfig,\n addDirective,\n reset,\n getUserDefinedConfig,\n lineBreakRegex,\n sanitizeText,\n getUrl,\n evaluate,\n parseGenericTypes,\n hasKatex,\n calculateMathMLDimensions,\n renderKatexSanitized,\n common_default,\n frontMatterRegex,\n directiveRegex,\n UnknownDiagramError,\n detectors,\n detectType,\n registerLazyLoadedDiagrams,\n getDiagramLoader,\n configureSvgSize,\n setupGraphViewbox,\n styles_default,\n clear,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n commonDb_exports,\n getConfig2,\n setConfig2,\n defaultConfig2,\n sanitizeText3 as sanitizeText2,\n setupGraphViewbox2,\n registerDiagram,\n getDiagram\n};\n"]}