@marimo-team/islands 0.23.17-dev9 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (633) hide show
  1. package/dist/{ConnectedDataExplorerComponent-f9vLjQiF.js → ConnectedDataExplorerComponent-BUC1MrsF.js} +24 -24
  2. package/dist/{ErrorBoundary-DhLqwSWA.js → ErrorBoundary-BniTEhHn.js} +7 -7
  3. package/dist/{ImageComparisonComponent-C3y7L3eJ.js → ImageComparisonComponent-B7b8DcJI.js} +42 -31
  4. package/dist/{Plot-YQOuVIei.js → Plot-eTseCFf_.js} +4 -4
  5. package/dist/_initCloneObject-DNUst5Cg.js +91 -0
  6. package/dist/abnfDiagram-N423BO3Z-DA4j92-C.js +112 -0
  7. package/dist/{any-language-editor-DifE-fl7.js → any-language-editor-LHl8ZmVN.js} +26 -26
  8. package/dist/apl-Cwo7GIH7.js +4 -0
  9. package/dist/{arc-CTIpFoOn.js → arc-9nABupDE.js} +2 -2
  10. package/dist/architecture-TIHT7OUA-DxLlkuAK.js +5 -0
  11. package/dist/{architectureDiagram-VXUJARFQ-DXwkyAaM.js → architectureDiagram-T3A2C74G-BBlBK1Oh.js} +327 -214
  12. package/dist/{arrays-sEtDRoG4.js → arrays-C56grfjL.js} +1 -1
  13. package/dist/asciiarmor-jrfEZ3j_.js +4 -0
  14. package/dist/asn1-BNEiJ4nQ.js +4 -0
  15. package/dist/assets/__vite-browser-external-DUz7vvG0.js +1 -0
  16. package/dist/assets/{worker-CDEKsBgX.js → worker-Cl1KJG2_.js} +2 -2
  17. package/dist/blockDiagram-VBNYF7ZC-Datz1WNn.js +3284 -0
  18. package/dist/brainfuck-BCunvTbd.js +4 -0
  19. package/dist/{button-BSm8IXRU.js → button-Dr2uAwhT.js} +9 -7
  20. package/dist/{c4Diagram-YG6GDRKO-B6dZC_oU.js → c4Diagram-5PPSVZJV-DTIsibpE.js} +165 -162
  21. package/dist/{capabilities-C6OQ5YBO.js → capabilities-BilXeZ7p.js} +2 -2
  22. package/dist/{channel-BN070S0F.js → channel-CuV_jmG4.js} +1 -1
  23. package/dist/chat-ui-o-tATfmW.js +8619 -0
  24. package/dist/{check-DP7U0H0G.js → check-58HHfHKy.js} +1 -1
  25. package/dist/chunk-2GRJ4B5K-DRayWnnu.js +68 -0
  26. package/dist/{chunk-QZHKN3VN-Dym5BS7y.js → chunk-2Q5K7J3B-BSLyFOHa.js} +1 -1
  27. package/dist/chunk-3NCLNEKW-BPlp8K7N.js +11 -0
  28. package/dist/chunk-4I5QYGJK-CYJC3pkC.js +260 -0
  29. package/dist/chunk-5FCAYU7R-C3cMIeyz.js +24 -0
  30. package/dist/{chunk-5FQGJX7Z-B9WoXK1R.js → chunk-5FQGJX7Z-BRZ_XYUw.js} +6 -6
  31. package/dist/chunk-5HE753X5-D2jFCVXb.js +34 -0
  32. package/dist/chunk-5JV3BV7I-B7tzprBU.js +50 -0
  33. package/dist/{chunk-DI55MBZ5-D4Y8yV8B.js → chunk-5RXB4S5H-DcCPfb0q.js} +373 -327
  34. package/dist/chunk-5TONJI2A-LRqbgPte.js +59 -0
  35. package/dist/{chunk-FMBD7UC4-quJmebXa.js → chunk-5VM5RSS4-ChXEBudA.js} +1 -1
  36. package/dist/chunk-6Q2QTUOP-zcnb3OaV.js +503 -0
  37. package/dist/{chunk-HN2XXSSU-Bv0QkeMr.js → chunk-7BUUIJ7U-CkIbJNZo.js} +32 -25
  38. package/dist/chunk-7Z6QIM7H-1j-x7ddW.js +606 -0
  39. package/dist/{chunk-FRFDVMJY-BHBqN-vD.js → chunk-BIQX33UG-B-BYk6sM.js} +3 -3
  40. package/dist/chunk-Bfp04NdC.js +25 -0
  41. package/dist/chunk-CQNSW5MT-DBXDKSOU.js +34 -0
  42. package/dist/{chunk-4F5CHEZ2-VlodlEGo.js → chunk-CYSBUYHQ-Cv-vKQV-.js} +1 -1
  43. package/dist/{chunk-SJTYNZTY-DnXoKWpW.js → chunk-EMLP6XTP-DCtMkXLF.js} +1 -1
  44. package/dist/{chunk-B4BG7PRW-B_z2FEHm.js → chunk-GF5L2VYU-esTxzELH.js} +878 -636
  45. package/dist/chunk-I66GZJ75-9xAsFrdW.js +3744 -0
  46. package/dist/chunk-J7OUQ5F2-CbNBTlFM.js +81 -0
  47. package/dist/chunk-JG7HCLWE-CZIm6axg.js +59 -0
  48. package/dist/{flowDiagram-NV44I4VS-BRhSg-ro.js → chunk-JQJVKLGR-ZALkKVji.js} +1019 -1001
  49. package/dist/{chunk-4BX2VUAB-iU5lQTDI.js → chunk-JWPE2WC7-C_Daz-Oc.js} +1 -1
  50. package/dist/{chunk-QN33PNHL-DPBNNzpR.js → chunk-KBJHAD2P-B7m9DztL.js} +3 -2
  51. package/dist/chunk-KEIR6QF5-aP6TmWQ-.js +21095 -0
  52. package/dist/{chunk-UMXZTB3W-D1uHz8MN.js → chunk-MOZMSUNE-BQi-ggQx.js} +7 -4
  53. package/dist/{chunk-S3R3BYOJ-BdgLc8AM.js → chunk-NSK5VX7P-BmmoJBbx.js} +320 -29
  54. package/dist/chunk-OSBZ3O6U-BcrmpSY_.js +22 -0
  55. package/dist/{chunk-TQ3KTPDO-CsDx6v37.js → chunk-QBLGF6JB-BACuPUWb.js} +3 -3
  56. package/dist/chunk-QR6OTTB3-C4L1dLRd.js +3762 -0
  57. package/dist/{chunk-B2363JML-zL3VngtH.js → chunk-R7FJI6CG-BYAXJpIb.js} +3 -3
  58. package/dist/chunk-RYQCIY6F-poA0Ugpr.js +243 -0
  59. package/dist/chunk-U6XO7XAA-I8tCjTeT.js +60 -0
  60. package/dist/chunk-UBXNYLIW-C8LueN5Q.js +34 -0
  61. package/dist/{chunk-ATLVNIR6-qFiszptQ.js → chunk-W5SLKNZC-DK-_KuKT.js} +2 -2
  62. package/dist/{chunk-JA3XYJ7Z-CY4CRbV5.js → chunk-WRU74C26-DLgw-V0j.js} +262 -451
  63. package/dist/chunk-XXDRQBXY-Dzcp3rUR.js +9 -0
  64. package/dist/chunk-Y2CYZVJY-DX3DSigL.js +13 -0
  65. package/dist/{chunk-PL6DKKU2-CAHKc95s.js → chunk-YOTPTUD7-C8qfgaz5.js} +5 -5
  66. package/dist/{chunk-MI3HLSF2-HGWI-8Pg.js → chunk-ZIRB5QZD-_JX1DzEJ.js} +12 -8
  67. package/dist/classDiagram-JCYQIIEL-D8A6ZyXv.js +32 -0
  68. package/dist/classDiagram-v2-OCEON4UE-DIdYl-t3.js +32 -0
  69. package/dist/{click-outside-container-BSIeYt4y.js → click-outside-container-BZNsAj09.js} +2 -2
  70. package/dist/{clike-7lgyEYRk.js → clike-CWndBX_M.js} +1 -1
  71. package/dist/clojure-2X0Rfij9.js +4 -0
  72. package/dist/cmake-DEwzCy9U.js +4 -0
  73. package/dist/cobol-Ck4eCoAB.js +4 -0
  74. package/dist/{code-block-37QAKDTI-MSxEjskJ.js → code-block-37QAKDTI-B4pWe5MI.js} +4 -4
  75. package/dist/coffeescript-bB1IDwhg.js +4 -0
  76. package/dist/{common-C3f0slQQ.js → common-DV4qU2ew.js} +797 -804
  77. package/dist/commonlisp-BDYrVBNC.js +4 -0
  78. package/dist/{compiler-runtime-CEbnTgxf.js → compiler-runtime-DsR6imPN.js} +2 -2
  79. package/dist/{copy-DNq8q3zw.js → copy-C7ZKMKox.js} +5 -5
  80. package/dist/{cose-bilkent-S5V4N54A-BYj0aL7z.js → cose-bilkent-JH36ORCC-D6iQzSi6.js} +6 -5
  81. package/dist/crystal-BSoiVUiH.js +4 -0
  82. package/dist/css-w1h9i21f.js +4 -0
  83. package/dist/cynefin-VYW2F7L2-DnZOHyNF.js +5 -0
  84. package/dist/cynefinDiagram-MW4NZA55-B1GNPS2u.js +367 -0
  85. package/dist/cypher-B4xzuKGP.js +4 -0
  86. package/dist/{cytoscape.esm-Dr8XzXWK.js → cytoscape.esm-BPa26Dup.js} +393 -334
  87. package/dist/d-D50Bz34p.js +4 -0
  88. package/dist/{dagre-By_QsQgc.js → dagre-ThTNj8pe.js} +60 -45
  89. package/dist/dagre-VZM6K2ZE-DEs5dfXA.js +343 -0
  90. package/dist/{data-grid-overlay-editor-BWRG2b_o.js → data-grid-overlay-editor-Ci7TXVf5.js} +5 -5
  91. package/dist/{debounce-BOD3DbfP.js → debounce-D784bpms.js} +2 -2
  92. package/dist/{defaultLocale-BpsHxBd7.js → defaultLocale-CMezyvMc.js} +26 -26
  93. package/dist/diagram-7IWD3JNH-Bdk1_wJO.js +321 -0
  94. package/dist/diagram-B4RE2ZJO-Be9eYLJ0.js +464 -0
  95. package/dist/{diagram-S2PKOQOG-CGh4OMEV.js → diagram-LBJQPF4R-BNSnzxFw.js} +26 -18
  96. package/dist/{diagram-PSM6KHXK-D4ftnaua.js → diagram-Q27KOJAE-NPRzyGtd.js} +68 -63
  97. package/dist/diagram-UB23O5K3-Dogz4itg.js +236 -0
  98. package/dist/diff-BMdzfXq-.js +4 -0
  99. package/dist/{dist-BTdrwBWP.js → dist-72nb8Uag.js} +3 -3
  100. package/dist/{dist-CV79CsQ0.js → dist-9PC5KxMl.js} +2 -2
  101. package/dist/{dist-BOMbzyb3.js → dist-Awj73yUw.js} +3 -3
  102. package/dist/{dist-w_gWE5Wf.js → dist-B0Ctcrt9.js} +1 -1
  103. package/dist/{dist-BO5HRiTf.js → dist-B1Donbpk.js} +2 -2
  104. package/dist/dist-BC6wzWNb.js +5 -0
  105. package/dist/{dist-De-GlSAs.js → dist-BJ2IUa0l.js} +15 -9
  106. package/dist/dist-BMd_RcOy.js +5 -0
  107. package/dist/dist-BZEWjN6r.js +5 -0
  108. package/dist/{dist-BP39XM8u.js → dist-B_K4AAkc.js} +1 -1
  109. package/dist/dist-BeuGjR3n.js +6 -0
  110. package/dist/dist-BfDQCUe6.js +5 -0
  111. package/dist/dist-BhNblTOV.js +8 -0
  112. package/dist/{dist-BPF0gTRZ.js → dist-C0ifRfXi.js} +1 -1
  113. package/dist/{dist-pqIwD8VD.js → dist-C3mEki35.js} +2 -2
  114. package/dist/{dist-LpLXa9Lb.js → dist-CNfV2vDI.js} +2 -2
  115. package/dist/{dist-DviUBLUp.js → dist-COcQ5Vyc.js} +4 -4
  116. package/dist/dist-CRCm4Fuo.js +5 -0
  117. package/dist/{dist-4lVIWUT3.js → dist-CSZpLb9d.js} +1 -1
  118. package/dist/{dist-BIEt-mlF.js → dist-CWswQBvu.js} +1 -1
  119. package/dist/{dist-D3bdsa1d.js → dist-CXYro_Nw.js} +4 -4
  120. package/dist/{dist-CRmSjkLP.js → dist-Ckfsc8C3.js} +2 -2
  121. package/dist/{dist-CSlJrrAw.js → dist-Cyq6Pxtv.js} +1 -1
  122. package/dist/{dist-JGehap7K.js → dist-D-BWPyoX.js} +5 -5
  123. package/dist/{dist-BCX980mU.js → dist-D-YB6j-O.js} +2 -2
  124. package/dist/{dist-DgjbnqTg.js → dist-D1vYHETp.js} +2 -2
  125. package/dist/{dist-BpeiYpG2.js → dist-D9-ePb6D.js} +2 -2
  126. package/dist/dist-DBPEbGkd.js +8 -0
  127. package/dist/{dist-C2_4pjuS.js → dist-DC409ROm.js} +1 -1
  128. package/dist/{dist-BdqCKQ1O.js → dist-DJRUd9aM.js} +2 -2
  129. package/dist/{dist-DaXJPX8F.js → dist-DLvxZEAK.js} +2 -2
  130. package/dist/dist-DSsl8IAI.js +5 -0
  131. package/dist/{dist-3NCqaWjt.js → dist-D_ulymry.js} +2 -2
  132. package/dist/{dist-DZwp8lro.js → dist-DgY27bJ4.js} +3 -3
  133. package/dist/{dist-BwhXBwMd.js → dist-DiwVZiK7.js} +1 -1
  134. package/dist/{dist-DwqBJ014.js → dist-DnYHhW6c.js} +2 -2
  135. package/dist/dist-Dx0kkrek.js +5 -0
  136. package/dist/{dist-DsoKosxi.js → dist-HaLHv0k5.js} +2 -3
  137. package/dist/dist-NKA1TU8a.js +6 -0
  138. package/dist/dist-ZFcsIdHj.js +8 -0
  139. package/dist/{dist-C18MUWTj.js → dist-iZ8-rtUy.js} +2 -2
  140. package/dist/{dist-DIlxLFXG.js → dist-j30bBjjN.js} +15 -15
  141. package/dist/{dist-SXNmlE8A.js → dist-kOCFEa1U.js} +3 -3
  142. package/dist/{dist-CFSb_Frm.js → dist-sxRUVPmt.js} +1 -1
  143. package/dist/dist-uA2RbGmY.js +5 -0
  144. package/dist/{dist-B2jmQKKx.js → dist-xVU82Nq7.js} +2 -2
  145. package/dist/dist-zSCo-xCB.js +8 -0
  146. package/dist/{dockerfile-B82Pkz_V.js → dockerfile-DImRFUlA.js} +1 -1
  147. package/dist/dtd-B9dCT0pu.js +4 -0
  148. package/dist/dylan-DLghDyuR.js +4 -0
  149. package/dist/ebnfDiagram-BXEA7PRR-CqRWkG7L.js +129 -0
  150. package/dist/ecl-w0qdPHDB.js +4 -0
  151. package/dist/eiffel-C5AWRCNP.js +4 -0
  152. package/dist/elm-CT8FZrOm.js +4 -0
  153. package/dist/{erDiagram-Q2GNP2WA-BcKAHFqF.js → erDiagram-JOGREHBK-BZMJX-Au.js} +568 -436
  154. package/dist/erlang-DPD-9M5g.js +4 -0
  155. package/dist/{error-banner-B_GQfxxD.js → error-banner-BwCLtmkH.js} +6 -6
  156. package/dist/{esm-CuQHjs36.js → esm-BJ4n0NUT.js} +1 -1
  157. package/dist/{esm-DKOv6P2M.js → esm-Dusmf6uu.js} +105 -105
  158. package/dist/{esm-DzZVaNH4.js → esm-QLUgkqzZ.js} +6 -6
  159. package/dist/eventmodeling-45OFAUF4-D8Kbnsr6.js +5 -0
  160. package/dist/{extends-w2_S44bV.js → extends-iFBneQO_.js} +9 -9
  161. package/dist/{factor-Bq2mGIHt.js → factor-BonZgUGg.js} +1 -1
  162. package/dist/factor-rFfeJu3r.js +4 -0
  163. package/dist/flowDiagram-UKHOOZJN-DqIE8_b3.js +21 -0
  164. package/dist/{formats-Dwq1THhr.js → formats-HSfYlcA8.js} +7 -7
  165. package/dist/forth-C-3AyQx4.js +4 -0
  166. package/dist/fortran-BSN9TeT7.js +4 -0
  167. package/dist/ganttDiagram-PKOTCBZU-Bc9puoXb.js +2207 -0
  168. package/dist/gas-DwmuvQpB.js +4 -0
  169. package/dist/gherkin-gmCjL-Sn.js +4 -0
  170. package/dist/{gitGraph-G5XIXVHT-BjTx0kww.js → gitGraph-TEB2WS4Q-DVzLmQHc.js} +2 -3
  171. package/dist/gitGraphDiagram-DS77QQ5N-CqKr-Dfg.js +766 -0
  172. package/dist/{glide-data-editor-B9K6-MJe.js → glide-data-editor-BI2i_IEE.js} +18 -18
  173. package/dist/graphlib-DMVIRZap.js +614 -0
  174. package/dist/groovy-DCjvesOy.js +4 -0
  175. package/dist/hasIn-synBnXn4.js +119 -0
  176. package/dist/haskell-C1p0D9L8.js +4 -0
  177. package/dist/haxe-q-fgv0zr.js +5 -0
  178. package/dist/{html-to-image-CZ1kLKkq.js → html-to-image-BOiFHx3u.js} +7535 -3056
  179. package/dist/idl-Bmg4bsnK.js +4 -0
  180. package/dist/{info-VBDWY6EO-CA67FznA.js → info-DKCQHKI2-BxOTqQHM.js} +2 -3
  181. package/dist/infoDiagram-6WML65LV-B869X2KY.js +37 -0
  182. package/dist/{input-C5K4VBvB.js → input-BRE2a7Ay.js} +13 -13
  183. package/dist/{_baseFor-4jw-lnCC.js → isArrayLikeObject-CBUaLibE.js} +96 -29
  184. package/dist/{isEmpty-CJJMn-QP.js → isEmpty-CgME6WRV.js} +15 -15
  185. package/dist/{isSymbol-CoUCgMCM.js → isSymbol-Ch3GYg4S.js} +1 -1
  186. package/dist/ishikawaDiagram-WSZJBQD7-BrOMFBYy.js +731 -0
  187. package/dist/javascript-BY5QZ-eN.js +4 -0
  188. package/dist/{journeyDiagram-XKPGCS4Q-DEal0aT1.js → journeyDiagram-NVQOT4AX-CTwHlsTm.js} +124 -123
  189. package/dist/{jsx-runtime-DebpN0FN.js → jsx-runtime-Dp_oQwaf.js} +1 -1
  190. package/dist/julia-DbR1YalK.js +4 -0
  191. package/dist/{kanban-definition-3W4ZIXB7-Dl90wENN.js → kanban-definition-27J2QSJJ-CKowzO9_.js} +51 -45
  192. package/dist/{katex-C4t-BmrK.js → katex-Ci33kJVq.js} +1 -1
  193. package/dist/{katex-Bld7b-fk.js → katex-Dp22h6yO.js} +2871 -3002
  194. package/dist/{label-DjoYwqmj.js → label-CMh2d8pJ.js} +6 -6
  195. package/dist/{line-C43FIPBd.js → line-Bc27KE1D.js} +3 -3
  196. package/dist/{linear-H_vsH9ao.js → linear-6pDlrp1I.js} +4 -4
  197. package/dist/livescript-BDUooIeL.js +4 -0
  198. package/dist/{loader-DX-IDS7n.js → loader-DTnbNSVZ.js} +11 -11
  199. package/dist/lua-CswAWSkH.js +4 -0
  200. package/dist/main.js +747 -752
  201. package/dist/map-BQ_Xp80D.js +137 -0
  202. package/dist/mathematica-Bw7v11B5.js +4 -0
  203. package/dist/mbox-j35IMz1j.js +4 -0
  204. package/dist/merge-CDbSrd9f.js +69 -0
  205. package/dist/mermaid-4DMBBIKO-BZSpTmcx.js +6 -0
  206. package/dist/mermaid-DpAz2sTy.js +1265 -0
  207. package/dist/mermaid-parser.core-BQzz3_BI.js +87 -0
  208. package/dist/{mhchem-EGhUZR1V.js → mhchem-BDHjke3h.js} +1 -1
  209. package/dist/{micromark-factory-space-CwHmg6iz.js → micromark-factory-space-Cr4NxAt3.js} +1 -1
  210. package/dist/{mindmap-definition-VGOIOE7T-CCDupjWW.js → mindmap-definition-FAOFIHXS-CTsi-HFj.js} +126 -80
  211. package/dist/mirc-Ba_RHVXO.js +4 -0
  212. package/dist/mllike-DbTP2dPp.js +6 -0
  213. package/dist/modelica-lpT3V1X6.js +4 -0
  214. package/dist/mscgen-BN4ZSJMx.js +6 -0
  215. package/dist/mumps-uI5g1A0g.js +4 -0
  216. package/dist/{node-sql-parser-v1Vi-Fft.js → node-sql-parser-BaLGWQe1.js} +1 -1
  217. package/dist/{now-Ch98bJO_.js → now-sFWt-GLC.js} +2 -2
  218. package/dist/{nsis-i9_sgigf.js → nsis-C68fFq_o.js} +1 -1
  219. package/dist/nsis-Df56GiRg.js +4 -0
  220. package/dist/ntriples-B3LWuG7W.js +4 -0
  221. package/dist/{number-overlay-editor-Ck_mc_gT.js → number-overlay-editor-CeBHRJvI.js} +3 -3
  222. package/dist/octave-CovfQgOx.js +4 -0
  223. package/dist/{once-B60G2fuJ.js → once-Boutk_9X.js} +1 -1
  224. package/dist/{ordinal-Bkv2-veX.js → ordinal-Bdajf2BE.js} +1 -1
  225. package/dist/oz-DQQAvVFb.js +4 -0
  226. package/dist/{packet-DYOGHKS2-Bkgofxf3.js → packet-7NZHBO7P-BG8whXXH.js} +2 -3
  227. package/dist/pascal-xz94P9sf.js +4 -0
  228. package/dist/pegDiagram-VL7TDLO6-CNpT8Sqz.js +124 -0
  229. package/dist/perl-aEWKE-1n.js +4 -0
  230. package/dist/pick-CaEWivSF.js +47 -0
  231. package/dist/{pie-VRWISCQL-B1AMhN_7.js → pie-RZYD4A2V-Cc_QhFbT.js} +2 -3
  232. package/dist/pieDiagram-7S7Q4E2Y-Ct8jRpe_.js +219 -0
  233. package/dist/pig-DB6DOZl7.js +4 -0
  234. package/dist/powershell-DM5saUx1.js +4 -0
  235. package/dist/{precisionRound-CnHPY_5v.js → precisionRound-BOoJTbDj.js} +1 -1
  236. package/dist/{process-output-bVfbcx5_.js → process-output-HrsM52f8.js} +7 -7
  237. package/dist/properties-BGjYQuGo.js +4 -0
  238. package/dist/protobuf-BPpEyPud.js +4 -0
  239. package/dist/{pug-BhE2JRSg.js → pug-DFPPZ3LA.js} +1 -1
  240. package/dist/pug-uJzB88ft.js +4 -0
  241. package/dist/puppet-oIm2d_Lg.js +4 -0
  242. package/dist/{purify.es-EnR5yhgI.js → purify.es-DR5PNXwx.js} +160 -155
  243. package/dist/python-WE57eUzD.js +4 -0
  244. package/dist/q-CR8xPodo.js +4 -0
  245. package/dist/{quadrantDiagram-AYHSOK5B-BqDB9tUC.js → quadrantDiagram-CIZ2JOQS-B5n_xFcF.js} +429 -401
  246. package/dist/r-CJdmQZNj.js +4 -0
  247. package/dist/{radar-ZZBFDIW7-C2b7A32s.js → radar-I7S5WNFK-OhUkecXA.js} +2 -3
  248. package/dist/railroad-3IZDKUUU-1CmOpo1B.js +5 -0
  249. package/dist/railroad-abnf-AHOZXSZD-DmH4lsDS.js +5 -0
  250. package/dist/railroad-ebnf-EBAXGLYW-CzK0md4e.js +5 -0
  251. package/dist/railroad-peg-LSFZ7HO6-DOklooKz.js +5 -0
  252. package/dist/railroadDiagram-AXF67PYL-BbUWbtf8.js +100 -0
  253. package/dist/{react-DA-nE2FX.js → react-DhGsCS90.js} +1 -1
  254. package/dist/{react-dom-BTJzcVJ9.js → react-dom-CmENFV8Q.js} +2 -2
  255. package/dist/{react-vega-BazDALhI.js → react-vega-zyfTF9SY.js} +8036 -4796
  256. package/dist/{requirementDiagram-UZGBJVZJ-KbVt8SPH.js → requirementDiagram-LRYGKXZP-CpoDmKSf.js} +137 -105
  257. package/dist/{reveal-component-CbOaZYQI.js → reveal-component-CYZAzXrV.js} +27 -28
  258. package/dist/rough.esm-lGyFQ0B-.js +1363 -0
  259. package/dist/rpm-Cm5K4RH9.js +5 -0
  260. package/dist/ruby-ArsuTozQ.js +4 -0
  261. package/dist/sankeyDiagram-W5VNT64P-D82rYiAG.js +942 -0
  262. package/dist/sas-DShligrE.js +4 -0
  263. package/dist/scheme-kDLirQL7.js +4 -0
  264. package/dist/sequenceDiagram-SI44F4Z6-DgVKU1s5.js +4281 -0
  265. package/dist/shell-CVQuWP_N.js +4 -0
  266. package/dist/sieve-BW-ePwnq.js +4 -0
  267. package/dist/sizeCapture-X5ZJPWSS-BQgxHTji.js +48 -0
  268. package/dist/smalltalk-DI4aAXxY.js +4 -0
  269. package/dist/sparql-B2sp0oiz.js +4 -0
  270. package/dist/{spec-CQKL_D3i.js → spec-BL1GSUUF.js} +4 -4
  271. package/dist/{src-DV3ha_nA.js → src-BwVZVGyf.js} +13 -22
  272. package/dist/{stateDiagram-FKZM4ZOC-ByOvQf2n.js → stateDiagram-OKZ733FA-Cc9BchXz.js} +61 -58
  273. package/dist/stateDiagram-v2-UEYNNEHI-Dd4Tuw6F.js +32 -0
  274. package/dist/{step-BqHnkgWE.js → step-BqVgkWtk.js} +1 -1
  275. package/dist/stex-D2rme5UG.js +4 -0
  276. package/dist/{strings-DIy9NAmg.js → strings-DMLVGXRo.js} +305 -305
  277. package/dist/style.css +1 -1
  278. package/dist/stylus-xxO-85eO.js +4 -0
  279. package/dist/swift-Ctg533nZ.js +4 -0
  280. package/dist/swimlanes-SLNWSIFB-BHvhO5uv.js +5564 -0
  281. package/dist/swimlanesDiagram-ULZ7WXOC-aI_zgQ8O.js +33 -0
  282. package/dist/{swiper-component-CEdAYjb7.js → swiper-component-Cx0cRWLk.js} +6 -6
  283. package/dist/tcl-phm9c5Nd.js +4 -0
  284. package/dist/textile-CphjAg90.js +4 -0
  285. package/dist/{time-Bb4A7I6a.js → time-DAJu9fnj.js} +4 -4
  286. package/dist/timeline-definition-Z64GVDOM-BAHuDYyA.js +1107 -0
  287. package/dist/{timer-BpI_FKSA.js → timer-aIIabkbI.js} +1 -1
  288. package/dist/{toDate-CqhBWjvO.js → toDate-BGM7kFtQ.js} +6 -6
  289. package/dist/toml-BUuMK772.js +4 -0
  290. package/dist/{tooltip-f-qR0iUx.js → tooltip-BtUxZT5h.js} +7 -7
  291. package/dist/treeView-QDETBFTQ-DsLN_c8p.js +5 -0
  292. package/dist/{treemap-GDKQZRPO-SDux0AV8.js → treemap-6X3UGDF4-K1bi3LJm.js} +2 -3
  293. package/dist/troff-lCtc05A3.js +4 -0
  294. package/dist/ttcn-CcykzBcW.js +4 -0
  295. package/dist/ttcn-cfg-C-XYdqpE.js +4 -0
  296. package/dist/turtle-CpfVZs8G.js +4 -0
  297. package/dist/{types-DicH9Oi0.js → types-DT8UHI5w.js} +1 -1
  298. package/dist/{use-vega-container-remeasure-DGNrIQSk.js → use-vega-container-remeasure-B7OD7yUY.js} +3 -3
  299. package/dist/{useAsyncData-CYOQb1EW.js → useAsyncData-CDcbh-Qv.js} +5 -5
  300. package/dist/{useDateFormatter-Bt2qr_XS.js → useDateFormatter-B_vTzxpm.js} +4 -4
  301. package/dist/{useDeepCompareMemoize-CSHQeQEI.js → useDeepCompareMemoize-Bj6QvwiG.js} +3 -3
  302. package/dist/{useIframeCapabilities-kA09ykNq.js → useIframeCapabilities-CxuXXwjj.js} +4 -4
  303. package/dist/{useLifecycle-CMJGqBaY.js → useLifecycle-Bw4wRj_O.js} +7 -7
  304. package/dist/{useTheme-DYfby65G.js → useTheme-BzEXeAR5.js} +8 -7
  305. package/dist/vb-VOIzXwm9.js +4 -0
  306. package/dist/vbscript-D0WfcnVk.js +4 -0
  307. package/dist/{vega-component-C7nO5zcf.js → vega-component-CJug-VdR.js} +24 -24
  308. package/dist/{vega-embed-container-DAQAMjiO.js → vega-embed-container-BRjjqRGz.js} +9 -9
  309. package/dist/{vega-loader.browser-DmpxCJqx.js → vega-loader.browser-CGb-2Kwi.js} +106 -113
  310. package/dist/velocity-CCrc5n-0.js +4 -0
  311. package/dist/vennDiagram-T6HMQDX7-CTyzMewS.js +1913 -0
  312. package/dist/verilog-BLFhaDBH.js +4 -0
  313. package/dist/vhdl-DjuqPE9b.js +4 -0
  314. package/dist/wardley-OPB4EBWU-CP99MvU1.js +5 -0
  315. package/dist/wardleyDiagram-T6FBY63Y-vcno_rbk.js +669 -0
  316. package/dist/webidl-Cc7RrfeK.js +4 -0
  317. package/dist/xquery-BiCRLnNG.js +4 -0
  318. package/dist/{xychartDiagram-PRI3JC2R-BSkNxYNw.js → xychartDiagram-ELKLHX3M-DyFDERhM.js} +417 -353
  319. package/dist/yacas-CWcjav-O.js +4 -0
  320. package/dist/z80-DpYS2lE7.js +4 -0
  321. package/dist/{zod-BUcyXSdR.js → zod-BFY2SnzC.js} +42 -43
  322. package/package.json +7 -7
  323. package/src/__mocks__/requests.ts +5 -0
  324. package/src/components/ai/ai-model-dropdown.tsx +2 -2
  325. package/src/components/app-config/user-config-form.tsx +26 -0
  326. package/src/components/chat/__tests__/capabilities-popover.test.tsx +38 -0
  327. package/src/components/chat/__tests__/chat-abort.test.ts +51 -0
  328. package/src/components/chat/__tests__/use-chat-controller-id.test.tsx +39 -0
  329. package/src/components/chat/capabilities-popover.tsx +68 -0
  330. package/src/components/chat/chat-abort.ts +44 -0
  331. package/src/components/chat/chat-display.tsx +17 -0
  332. package/src/components/chat/chat-panel.tsx +107 -50
  333. package/src/components/chat/chat-utils.ts +1 -1
  334. package/src/components/chat/use-chat-controller-id.ts +24 -0
  335. package/src/components/data-table/charts/__tests__/schemas.test.ts +35 -0
  336. package/src/components/data-table/charts/schemas.ts +5 -2
  337. package/src/components/datasets/__tests__/icons.test.ts +21 -0
  338. package/src/components/datasets/icons.tsx +10 -0
  339. package/src/components/datasources/__tests__/components.test.tsx +29 -0
  340. package/src/components/datasources/components.tsx +8 -3
  341. package/src/components/editor/actions/export-dialog/__tests__/export-dialog.test.tsx +35 -0
  342. package/src/components/editor/actions/export-dialog/__tests__/state.test.ts +61 -0
  343. package/src/components/editor/actions/export-dialog/export-command.ts +4 -9
  344. package/src/components/editor/actions/export-dialog/format-notice.tsx +28 -0
  345. package/src/components/editor/actions/export-dialog/state.ts +23 -5
  346. package/src/components/editor/actions/export-dialog/use-export-dialog.ts +3 -13
  347. package/src/components/editor/actions/useConfigActions.tsx +24 -0
  348. package/src/components/editor/ai/add-cell-with-ai.tsx +2 -2
  349. package/src/components/editor/ai/ai-completion-editor.tsx +2 -2
  350. package/src/components/editor/chrome/panels/outline/__tests__/useActiveOutline.test.ts +26 -0
  351. package/src/components/editor/chrome/wrapper/useOpenAiAssistant.ts +2 -2
  352. package/src/components/editor/code/__tests__/readonly-python-code.test.tsx +114 -2
  353. package/src/core/__tests__/mode.test.ts +85 -0
  354. package/src/core/ai/__tests__/config.test.tsx +96 -0
  355. package/src/core/ai/config.ts +16 -22
  356. package/src/core/ai/constants.ts +7 -0
  357. package/src/core/ai/staged-cells.ts +3 -0
  358. package/src/core/ai/state.ts +10 -0
  359. package/src/core/codemirror/__tests__/setup.test.ts +1 -1
  360. package/src/core/codemirror/cm.ts +2 -2
  361. package/src/core/codemirror/code-lens/__tests__/extension.test.ts +85 -6
  362. package/src/core/codemirror/code-lens/extension.ts +144 -47
  363. package/src/core/codemirror/find-replace/search-highlight.ts +8 -3
  364. package/src/core/codemirror/language/languages/sql/__tests__/renderers.test.tsx +44 -0
  365. package/src/core/codemirror/language/languages/sql/renderers.tsx +3 -3
  366. package/src/core/codemirror/theme/__tests__/light.test.ts +59 -123
  367. package/src/core/codemirror/theme/dark.ts +6 -5
  368. package/src/core/codemirror/theme/light.ts +6 -4
  369. package/src/core/config/__tests__/config-schema.test.ts +2 -0
  370. package/src/core/config/config-schema.ts +1 -0
  371. package/src/core/config/feature-flag.tsx +0 -2
  372. package/src/core/dom/outline.ts +25 -2
  373. package/src/core/hotkeys/hotkeys.ts +2 -0
  374. package/src/core/mode.ts +11 -9
  375. package/src/core/network/__tests__/api.test.ts +132 -17
  376. package/src/core/network/__tests__/export-filename.test.ts +43 -0
  377. package/src/core/network/__tests__/requests-lazy.test.ts +1 -0
  378. package/src/core/network/api.ts +47 -12
  379. package/src/core/network/export-filename.ts +37 -0
  380. package/src/core/network/markdown-export.ts +19 -0
  381. package/src/core/network/requests-network.ts +29 -5
  382. package/src/core/network/types.ts +4 -0
  383. package/src/css/app/codemirror.css +11 -7
  384. package/src/css/globals.css +8 -0
  385. package/src/plugins/impl/DataEditorPlugin.tsx +2 -9
  386. package/src/plugins/impl/__tests__/DataEditorPlugin.test.ts +18 -0
  387. package/src/plugins/impl/chat/chat-ui.tsx +51 -3
  388. package/src/plugins/impl/data-frames/__tests__/schema.test.ts +30 -0
  389. package/src/plugins/impl/data-frames/schema.ts +4 -1
  390. package/src/plugins/impl/image-comparison/ImageComparisonComponent.tsx +20 -1
  391. package/src/plugins/impl/image-comparison/__tests__/ImageComparisonComponent.test.tsx +58 -0
  392. package/src/stories/theme.stories.tsx +71 -1
  393. package/dist/_baseUniq-B_2Hw7zG.js +0 -380
  394. package/dist/apl-e1B5LPEL.js +0 -4
  395. package/dist/architecture-7HQA4BMR-DHUrQjL4.js +0 -6
  396. package/dist/asciiarmor-B-gwgesP.js +0 -4
  397. package/dist/asn1-DF2ckRB4.js +0 -4
  398. package/dist/assets/__vite-browser-external-DltVXDv7.js +0 -1
  399. package/dist/blockDiagram-VD42YOAC-CIOjvxeD.js +0 -3131
  400. package/dist/brainfuck-4G-7_gq_.js +0 -4
  401. package/dist/chat-ui-DsZJj75A.js +0 -8369
  402. package/dist/chunk-55IACEB6-7h71GwyW.js +0 -8
  403. package/dist/chunk-ABZYJK2D-BxBDji1u.js +0 -2438
  404. package/dist/chunk-BNovOVIE.js +0 -28
  405. package/dist/chunk-CVBHYZKI-CwazXVlJ.js +0 -13
  406. package/dist/chunk-DR5Q36YT-5Yp2GWwR.js +0 -137
  407. package/dist/chunk-EXTU4WIE-BQPBhApE.js +0 -10
  408. package/dist/chunk-JZLCHNYA-DWIR9m5O.js +0 -4901
  409. package/dist/chunk-N4CR4FBY-Bw2HcMNc.js +0 -65
  410. package/dist/chunk-QXUST7PY-DtC2t9Mk.js +0 -498
  411. package/dist/chunk-TCCFYFTB-DPWJa9zL.js +0 -13948
  412. package/dist/chunk-TZMSLE5B-BzSHcq-K.js +0 -63
  413. package/dist/classDiagram-2ON5EDUG-BiQPjMNY.js +0 -30
  414. package/dist/classDiagram-v2-WZHVMYZB-YHdR8fqM.js +0 -30
  415. package/dist/clojure-CUybM11R.js +0 -4
  416. package/dist/clone-Q4Fqwn6q.js +0 -9
  417. package/dist/cmake-BPjGcuDL.js +0 -4
  418. package/dist/cobol-BETk_nb6.js +0 -4
  419. package/dist/coffeescript-CManZxXL.js +0 -4
  420. package/dist/commonlisp-DWkn7GW8.js +0 -4
  421. package/dist/crystal-CCbg5EUH.js +0 -4
  422. package/dist/css-By8eo-XS.js +0 -4
  423. package/dist/cypher-DwfHg3nP.js +0 -4
  424. package/dist/d-Brs1wNbw.js +0 -4
  425. package/dist/dagre-6UL2VRFP-DpYjBqQs.js +0 -296
  426. package/dist/diagram-QEK2KX5R-DVlUOgs1.js +0 -228
  427. package/dist/diff-DJIRmJ1g.js +0 -4
  428. package/dist/dist-5o9uz19x.js +0 -5
  429. package/dist/dist-BpDH0DEP.js +0 -5
  430. package/dist/dist-BpXhbQXO.js +0 -8
  431. package/dist/dist-ByadAk_L.js +0 -5
  432. package/dist/dist-CK0g7JvP.js +0 -8
  433. package/dist/dist-CfzCtiq2.js +0 -5
  434. package/dist/dist-D8JtVFrW.js +0 -8
  435. package/dist/dist-DK2Oocpu.js +0 -6
  436. package/dist/dist-DnSu977r.js +0 -5
  437. package/dist/dist-UmxJm6sW.js +0 -8
  438. package/dist/dist-aYSBQSyM.js +0 -5
  439. package/dist/dist-kkZ1Ztlh.js +0 -6
  440. package/dist/dist-ngPczwNi.js +0 -5
  441. package/dist/dist-wQRyxyTV.js +0 -5
  442. package/dist/dtd-Dyiazv4N.js +0 -4
  443. package/dist/dylan-D8Fcw7NA.js +0 -4
  444. package/dist/ecl-CjKp8Vii.js +0 -4
  445. package/dist/eiffel-K9ViOX5r.js +0 -4
  446. package/dist/elm-B5NVtRco.js +0 -4
  447. package/dist/erlang-BnLzgk7R.js +0 -4
  448. package/dist/factor-C7f9Jz5R.js +0 -4
  449. package/dist/flatten-Bbw7g6-K.js +0 -8
  450. package/dist/forth-rGM8jLao.js +0 -4
  451. package/dist/fortran-B3acSe0i.js +0 -4
  452. package/dist/ganttDiagram-JELNMOA3-CXXCN7LN.js +0 -2170
  453. package/dist/gas-Bb1Vmv_N.js +0 -4
  454. package/dist/gherkin-C9Lyidgd.js +0 -4
  455. package/dist/gitGraphDiagram-V2S2FVAM-BOlkMSqK.js +0 -652
  456. package/dist/graphlib-Ns7y5crs.js +0 -359
  457. package/dist/groovy-DQk6XcGH.js +0 -4
  458. package/dist/hasIn-Deg7jl_j.js +0 -108
  459. package/dist/haskell-mV0Vw9gv.js +0 -4
  460. package/dist/haxe-DqxN89zH.js +0 -5
  461. package/dist/idl-ya8W561J.js +0 -4
  462. package/dist/infoDiagram-HS3SLOUP-D3TyKnL_.js +0 -30
  463. package/dist/javascript-CgqgptVu.js +0 -4
  464. package/dist/julia-CFQ-HusI.js +0 -4
  465. package/dist/livescript-D__3TmDo.js +0 -4
  466. package/dist/lua-Bytcgj_W.js +0 -4
  467. package/dist/main-B1Jo_8pC.js +0 -4321
  468. package/dist/mathematica-DJhvVKvl.js +0 -4
  469. package/dist/mbox-IGHPCjfR.js +0 -4
  470. package/dist/memoize-BOtf2yFf.js +0 -17
  471. package/dist/merge-Be1CqGnU.js +0 -222
  472. package/dist/mermaid-4DMBBIKO-FXbOziy9.js +0 -6
  473. package/dist/mermaid-hv6IckVw.js +0 -1100
  474. package/dist/mermaid-parser.core-DoivvxPd.js +0 -54
  475. package/dist/min-Dtgc8txR.js +0 -38
  476. package/dist/mirc-tcwvVugm.js +0 -4
  477. package/dist/mllike-Dx91i62r.js +0 -6
  478. package/dist/modelica-_SRt-yU5.js +0 -4
  479. package/dist/mscgen-GZrGS9gt.js +0 -6
  480. package/dist/mumps-Cv3ygyod.js +0 -4
  481. package/dist/nsis-BU7GeGbI.js +0 -4
  482. package/dist/ntriples-CL-FCYXb.js +0 -4
  483. package/dist/octave-Dc6_3DIu.js +0 -4
  484. package/dist/oz-DpUAJCXf.js +0 -4
  485. package/dist/pascal-B17mncXs.js +0 -4
  486. package/dist/perl-BTpK97q9.js +0 -4
  487. package/dist/pick-D1Qo8s2C.js +0 -43
  488. package/dist/pieDiagram-ADFJNKIX-JvXG_6hk.js +0 -170
  489. package/dist/pig-CFb638Ap.js +0 -4
  490. package/dist/powershell-Cxo-_2A5.js +0 -4
  491. package/dist/properties-BPgT1xTB.js +0 -4
  492. package/dist/protobuf-BgHBaIIK.js +0 -4
  493. package/dist/pug-25-oS0SG.js +0 -4
  494. package/dist/puppet-DarIr20S.js +0 -4
  495. package/dist/python-BqmOsBsi.js +0 -4
  496. package/dist/q-D3QJCTup.js +0 -4
  497. package/dist/r-Cz_yBX4z.js +0 -4
  498. package/dist/rpm-DGOtYwAI.js +0 -5
  499. package/dist/ruby-DBZu4rPc.js +0 -4
  500. package/dist/sankeyDiagram-TZEHDZUN-DgkF38jx.js +0 -892
  501. package/dist/sas-Dd1D9qTq.js +0 -4
  502. package/dist/scheme-BmDjvTHX.js +0 -4
  503. package/dist/sequenceDiagram-WL72ISMW-BDmx9n95.js +0 -3652
  504. package/dist/shell-BL8zFSaj.js +0 -4
  505. package/dist/sieve-BAx2WqUP.js +0 -4
  506. package/dist/smalltalk-CYRzF7VV.js +0 -4
  507. package/dist/sparql-YWaDRO4A.js +0 -4
  508. package/dist/stateDiagram-v2-4FDKWEC3-C3xqeavR.js +0 -29
  509. package/dist/stex-B5O-env2.js +0 -4
  510. package/dist/stylus-lYsyLFc1.js +0 -4
  511. package/dist/swift-ClQz9z1n.js +0 -4
  512. package/dist/tcl-B3jhsfqY.js +0 -4
  513. package/dist/textile-Cb1Dw7Aq.js +0 -4
  514. package/dist/timeline-definition-IT6M3QCI-CkD_trIn.js +0 -856
  515. package/dist/toml-nHZhetdO.js +0 -4
  516. package/dist/troff-DuJAGWKH.js +0 -4
  517. package/dist/ttcn-BxrcwP21.js +0 -4
  518. package/dist/ttcn-cfg-BAg_9dcc.js +0 -4
  519. package/dist/turtle-zCq949as.js +0 -4
  520. package/dist/vb-De5hElus.js +0 -4
  521. package/dist/vbscript-Cypcpv4F.js +0 -4
  522. package/dist/velocity-Di7l-yhe.js +0 -4
  523. package/dist/verilog-Bzi-S3g2.js +0 -4
  524. package/dist/vhdl-B0ZZITaW.js +0 -4
  525. package/dist/webidl-0sviiRcN.js +0 -4
  526. package/dist/xquery-B4qMVWaB.js +0 -4
  527. package/dist/yacas-Jt25Fuv8.js +0 -4
  528. package/dist/z80-CrcbYzmp.js +0 -4
  529. /package/dist/{apl-99A7dLQe.js → apl-CMUKiT2b.js} +0 -0
  530. /package/dist/{array-O78LT16Y.js → array-CEIRxyh3.js} +0 -0
  531. /package/dist/{asciiarmor-DLEhpFDx.js → asciiarmor-C_r6K6db.js} +0 -0
  532. /package/dist/{asn1-CMrcTsT4.js → asn1-DnlnCQTu.js} +0 -0
  533. /package/dist/{asterisk-CqykImq7.js → asterisk-DaVJJDnV.js} +0 -0
  534. /package/dist/{brainfuck-ChPt5yBe.js → brainfuck-CtQoQVkV.js} +0 -0
  535. /package/dist/{clike-CE0fXfM_.js → clike-CIAs0ABt.js} +0 -0
  536. /package/dist/{clojure-QkBEMU-g.js → clojure-C6tKQYjD.js} +0 -0
  537. /package/dist/{cmake-CU1jX7Mo.js → cmake-D-nfcg14.js} +0 -0
  538. /package/dist/{cobol-DMOKzzky.js → cobol-DYTC58p9.js} +0 -0
  539. /package/dist/{coffeescript-DjnjLyfk.js → coffeescript-DctDWA58.js} +0 -0
  540. /package/dist/{colors-DmiH1bIH.js → colors-DR_aHfmQ.js} +0 -0
  541. /package/dist/{common-keywords-D3nPJNQP.js → common-keywords-FBrXPTcz.js} +0 -0
  542. /package/dist/{commonlisp-CYd9iOSe.js → commonlisp-BmvTqU5y.js} +0 -0
  543. /package/dist/{crystal-Dy55yoYG.js → crystal-BPIK2UMa.js} +0 -0
  544. /package/dist/{css-CNU8w3HJ.js → css-CDo_Lwzn.js} +0 -0
  545. /package/dist/{cypher-q47DGzK7.js → cypher-KztbD63v.js} +0 -0
  546. /package/dist/{d-jEkaLvxX.js → d-HXBWOoe9.js} +0 -0
  547. /package/dist/{defaultLocale-DoeErsX2.js → defaultLocale-DMZFeDB8.js} +0 -0
  548. /package/dist/{diff-vb2-unFN.js → diff-B9rWZH0m.js} +0 -0
  549. /package/dist/{dtd-C9kR-bXa.js → dtd-LtAMP5y8.js} +0 -0
  550. /package/dist/{duckdb-keywords-B6HYCMOT.js → duckdb-keywords-CvJhR_Yd.js} +0 -0
  551. /package/dist/{dylan-BLckrK-V.js → dylan-DXMK92pf.js} +0 -0
  552. /package/dist/{ebnf-Cnp3L9jg.js → ebnf-2D4Ctp3y.js} +0 -0
  553. /package/dist/{ecl-CEsf6XVg.js → ecl-Dqq8ser2.js} +0 -0
  554. /package/dist/{eiffel-2KGZNzx6.js → eiffel-ChExWBDx.js} +0 -0
  555. /package/dist/{elm-D2s3K5wF.js → elm-BMBz2xbZ.js} +0 -0
  556. /package/dist/{emotion-is-prop-valid.esm-DdVSF4FD.js → emotion-is-prop-valid.esm-_z-EwK5u.js} +0 -0
  557. /package/dist/{erlang-0PMFOndk.js → erlang-CGSDzg9P.js} +0 -0
  558. /package/dist/{fcl-D9nccAWI.js → fcl-Ccj8Z5Xd.js} +0 -0
  559. /package/dist/{forth-DG89iUsu.js → forth-vTkfR0aY.js} +0 -0
  560. /package/dist/{fortran-ytKsAVvu.js → fortran-CF4LAVFn.js} +0 -0
  561. /package/dist/{gas-Cg2Fm0N2.js → gas-mMFbQ2x4.js} +0 -0
  562. /package/dist/{gherkin-B87FEnZ-.js → gherkin-DLS1q0XM.js} +0 -0
  563. /package/dist/{groovy-Dcs08AWD.js → groovy-Zt6CNPxV.js} +0 -0
  564. /package/dist/{haskell-cwkOuhx6.js → haskell-kVOgzpVy.js} +0 -0
  565. /package/dist/{haxe-DWEo4q10.js → haxe-Bo21F6gc.js} +0 -0
  566. /package/dist/{http-B8jdG64J.js → http-_DVAYWoR.js} +0 -0
  567. /package/dist/{idl-WWQwDcRV.js → idl-B865GSM-.js} +0 -0
  568. /package/dist/{init-DNBbYZd_.js → init-TaqZJsBY.js} +0 -0
  569. /package/dist/{invariant-wRzNXIsJ.js → invariant-hOqqBz8A.js} +0 -0
  570. /package/dist/{javascript-BeR74dxD.js → javascript-CSLuHpxZ.js} +0 -0
  571. /package/dist/{julia-UlvCUYGL.js → julia-BCOLeQif.js} +0 -0
  572. /package/dist/{livescript-GPmFcmYV.js → livescript-DqUzLZFs.js} +0 -0
  573. /package/dist/{lua-DYoT_0zM.js → lua-D0ciLwkO.js} +0 -0
  574. /package/dist/{math-CBNc2Ib0.js → math-CTnb-N1W.js} +0 -0
  575. /package/dist/{mathematica-DSFIQlbG.js → mathematica-DujD1RDf.js} +0 -0
  576. /package/dist/{mbox-ej8lFMdL.js → mbox-8OkSQMDn.js} +0 -0
  577. /package/dist/{mirc-CAdIdvHQ.js → mirc-D47x8yRQ.js} +0 -0
  578. /package/dist/{mllike-CjTB1lHF.js → mllike-Dcfw-g6D.js} +0 -0
  579. /package/dist/{modelica-BB68FYMa.js → modelica-BHtr9gKR.js} +0 -0
  580. /package/dist/{mscgen-BkbzgGGI.js → mscgen-uZedQc_A.js} +0 -0
  581. /package/dist/{mumps-Cu-28E9F.js → mumps-Bc9QS1-K.js} +0 -0
  582. /package/dist/{nginx-C1ofKPst.js → nginx-DasThI7R.js} +0 -0
  583. /package/dist/{ntriples-D9cQiZxZ.js → ntriples-Clpn9Mrg.js} +0 -0
  584. /package/dist/{objects-De59twF-.js → objects-UzwQd5gx.js} +0 -0
  585. /package/dist/{octave-BvtAnPX0.js → octave-DA2esRWi.js} +0 -0
  586. /package/dist/{oz-COaVHk2E.js → oz-D8i-brWx.js} +0 -0
  587. /package/dist/{pascal-BFpqVD2x.js → pascal-Dt1a0CeN.js} +0 -0
  588. /package/dist/{path-DwWbhZFI.js → path-7gr7eZmp.js} +0 -0
  589. /package/dist/{perl-DaiORxHP.js → perl-CXy9EfRp.js} +0 -0
  590. /package/dist/{pig-DFzRhmsF.js → pig-DnXnrjQg.js} +0 -0
  591. /package/dist/{powershell-BG2LQNKN.js → powershell-BYE6u-Qk.js} +0 -0
  592. /package/dist/{properties-CqJJR5QY.js → properties-DlhyusaK.js} +0 -0
  593. /package/dist/{protobuf-WwDYV1yY.js → protobuf-DoMSrsPi.js} +0 -0
  594. /package/dist/{puppet-QNY3w_uN.js → puppet-DGi4idFA.js} +0 -0
  595. /package/dist/{python-4QrQ3Ugi.js → python-CYhALYh0.js} +0 -0
  596. /package/dist/{q-DhwXuxE2.js → q-Cs_qWJkU.js} +0 -0
  597. /package/dist/{r-Df-nkR25.js → r-DWJSQl1c.js} +0 -0
  598. /package/dist/{range-BOiA8qqU.js → range-Bieq5MNc.js} +0 -0
  599. /package/dist/{rpm-Cokue07s.js → rpm-DIip1m0n.js} +0 -0
  600. /package/dist/{ruby-DrYcL3qF.js → ruby-NgZGoa7Q.js} +0 -0
  601. /package/dist/{sas-CoiPirA5.js → sas-DEKzCzM2.js} +0 -0
  602. /package/dist/{scheme-CwFLjzHv.js → scheme-CBrGar2n.js} +0 -0
  603. /package/dist/{semaphore-C8rmHdhj.js → semaphore-P832H4YT.js} +0 -0
  604. /package/dist/{shell-BFV-R24I.js → shell-D7XFPOM_.js} +0 -0
  605. /package/dist/{sieve-CxwXF5T9.js → sieve-BOxOVQ18.js} +0 -0
  606. /package/dist/{simple-mode-DTaJtKPt.js → simple-mode-D-FXBgPn.js} +0 -0
  607. /package/dist/{smalltalk-QivVOCtX.js → smalltalk-DYK-HkUK.js} +0 -0
  608. /package/dist/{solr-BLvysN-c.js → solr-RZ9uTl59.js} +0 -0
  609. /package/dist/{sparql-nKsFk8j7.js → sparql-CU1uk9Py.js} +0 -0
  610. /package/dist/{spreadsheet-BWc8C2FT.js → spreadsheet-BNNUNXA2.js} +0 -0
  611. /package/dist/{sql-CWfUjlV1.js → sql-B4x8IkwU.js} +0 -0
  612. /package/dist/{stex-DtMAhV4-.js → stex-DIvyJfNO.js} +0 -0
  613. /package/dist/{stylus-BLKQAycn.js → stylus-BokZhKWB.js} +0 -0
  614. /package/dist/{swift-CJoKqiKj.js → swift-TlA42tbT.js} +0 -0
  615. /package/dist/{tcl-YTeYFNUc.js → tcl-C-m7N_9k.js} +0 -0
  616. /package/dist/{textile-C6rKQqMQ.js → textile-BWOWG894.js} +0 -0
  617. /package/dist/{tiddlywiki-ZXwTHGNT.js → tiddlywiki-DI0mF2WJ.js} +0 -0
  618. /package/dist/{tiki-C628O_u4.js → tiki-2HU6XLLn.js} +0 -0
  619. /package/dist/{toml-DxlPGbRy.js → toml-GapOS-6U.js} +0 -0
  620. /package/dist/{treemap-DY3NBr79.js → treemap-CQJ0bIDy.js} +0 -0
  621. /package/dist/{troff-DFCfH7Ku.js → troff-ChPXSGgg.js} +0 -0
  622. /package/dist/{ttcn-DAW-ERVP.js → ttcn-CGf_ktUb.js} +0 -0
  623. /package/dist/{ttcn-cfg-CpJ8b7EN.js → ttcn-cfg-E0kw_vEm.js} +0 -0
  624. /package/dist/{turtle-BneV2f8L.js → turtle-DDIYttZr.js} +0 -0
  625. /package/dist/{vb-D973Vxxh.js → vb-DsGz8YA-.js} +0 -0
  626. /package/dist/{vbscript-Dckaq3YO.js → vbscript-BfQcpKZn.js} +0 -0
  627. /package/dist/{velocity-DKty-GUC.js → velocity-BMi53hPb.js} +0 -0
  628. /package/dist/{verilog-aNaK_biA.js → verilog-B_WDxmCB.js} +0 -0
  629. /package/dist/{vhdl-CQuehnQy.js → vhdl-C52-TT0z.js} +0 -0
  630. /package/dist/{webidl-Bhg8vaMr.js → webidl-Cnphjlul.js} +0 -0
  631. /package/dist/{xquery-D2q16GaM.js → xquery-X_kWyOft.js} +0 -0
  632. /package/dist/{yacas-DHGOHnNa.js → yacas-Dpp9zAZ5.js} +0 -0
  633. /package/dist/{z80-BPhTmO22.js → z80-BZLZAthF.js} +0 -0
@@ -0,0 +1,1913 @@
1
+ import "./purify.es-DR5PNXwx.js";
2
+ import { a as cleanAndMerge } from "./chunk-NSK5VX7P-BmmoJBbx.js";
3
+ import { t as select_default } from "./src-BwVZVGyf.js";
4
+ import { n as __name } from "./chunk-Y2CYZVJY-DX3DSigL.js";
5
+ import { $ as darken_default, H as setAccDescription, K as setDiagramTitle, U as setAccTitle, a as clear, b as getConfig, c as configureSvgSize, et as lighten_default, f as defaultConfig_default, nt as is_dark_default, tt as adjust_channel_default, v as getAccDescription, w as getDiagramTitle, y as getAccTitle } from "./chunk-I66GZJ75-9xAsFrdW.js";
6
+ import { t as selectSvgElement } from "./chunk-3NCLNEKW-BPlp8K7N.js";
7
+ import "./dist-HaLHv0k5.js";
8
+ import { t as at } from "./rough.esm-lGyFQ0B-.js";
9
+ var transparentize_default = (e, g) => adjust_channel_default(e, "a", -g), SMALL$1 = 1e-10;
10
+ function intersectionArea(e, g) {
11
+ let _ = getIntersectionPoints(e), v = _.filter((g2) => containedInCircles(g2, e)), y = 0, b = 0, x = [];
12
+ if (v.length > 1) {
13
+ let g2 = getCenter(v);
14
+ for (let e2 = 0; e2 < v.length; ++e2) {
15
+ let _3 = v[e2];
16
+ _3.angle = Math.atan2(_3.x - g2.x, _3.y - g2.y);
17
+ }
18
+ v.sort((e2, g3) => g3.angle - e2.angle);
19
+ let _2 = v[v.length - 1];
20
+ for (let g3 = 0; g3 < v.length; ++g3) {
21
+ let S = v[g3];
22
+ b += (_2.x + S.x) * (S.y - _2.y);
23
+ let C = {
24
+ x: (S.x + _2.x) / 2,
25
+ y: (S.y + _2.y) / 2
26
+ }, w = null;
27
+ for (let g4 = 0; g4 < S.parentIndex.length; ++g4) if (_2.parentIndex.includes(S.parentIndex[g4])) {
28
+ let v2 = e[S.parentIndex[g4]], y2 = Math.atan2(S.x - v2.x, S.y - v2.y), b2 = Math.atan2(_2.x - v2.x, _2.y - v2.y), x2 = b2 - y2;
29
+ x2 < 0 && (x2 += 2 * Math.PI);
30
+ let T = b2 - x2 / 2, E = distance(C, {
31
+ x: v2.x + v2.radius * Math.sin(T),
32
+ y: v2.y + v2.radius * Math.cos(T)
33
+ });
34
+ E > v2.radius * 2 && (E = v2.radius * 2), (w == null || w.width > E) && (w = {
35
+ circle: v2,
36
+ width: E,
37
+ p1: S,
38
+ p2: _2,
39
+ large: E > v2.radius,
40
+ sweep: true
41
+ });
42
+ }
43
+ w != null && (x.push(w), y += circleArea(w.circle.radius, w.width), _2 = S);
44
+ }
45
+ } else {
46
+ let g2 = e[0];
47
+ for (let _3 = 1; _3 < e.length; ++_3) e[_3].radius < g2.radius && (g2 = e[_3]);
48
+ let _2 = false;
49
+ for (let v2 = 0; v2 < e.length; ++v2) if (distance(e[v2], g2) > Math.abs(g2.radius - e[v2].radius)) {
50
+ _2 = true;
51
+ break;
52
+ }
53
+ _2 ? y = b = 0 : (y = g2.radius * g2.radius * Math.PI, x.push({
54
+ circle: g2,
55
+ p1: {
56
+ x: g2.x,
57
+ y: g2.y + g2.radius
58
+ },
59
+ p2: {
60
+ x: g2.x - SMALL$1,
61
+ y: g2.y + g2.radius
62
+ },
63
+ width: g2.radius * 2,
64
+ large: true,
65
+ sweep: true
66
+ }));
67
+ }
68
+ return b /= 2, g && (g.area = y + b, g.arcArea = y, g.polygonArea = b, g.arcs = x, g.innerPoints = v, g.intersectionPoints = _), y + b;
69
+ }
70
+ function containedInCircles(e, g) {
71
+ return g.every((g2) => distance(e, g2) < g2.radius + SMALL$1);
72
+ }
73
+ function getIntersectionPoints(e) {
74
+ let g = [];
75
+ for (let _ = 0; _ < e.length; ++_) for (let v = _ + 1; v < e.length; ++v) {
76
+ let y = circleCircleIntersection(e[_], e[v]);
77
+ for (let e2 of y) e2.parentIndex = [_, v], g.push(e2);
78
+ }
79
+ return g;
80
+ }
81
+ function circleArea(e, g) {
82
+ return e * e * Math.acos(1 - g / e) - (e - g) * Math.sqrt(g * (2 * e - g));
83
+ }
84
+ function distance(e, g) {
85
+ return Math.sqrt((e.x - g.x) * (e.x - g.x) + (e.y - g.y) * (e.y - g.y));
86
+ }
87
+ function circleOverlap(e, g, _) {
88
+ if (_ >= e + g) return 0;
89
+ if (_ <= Math.abs(e - g)) return Math.PI * Math.min(e, g) * Math.min(e, g);
90
+ let v = e - (_ * _ - g * g + e * e) / (2 * _), y = g - (_ * _ - e * e + g * g) / (2 * _);
91
+ return circleArea(e, v) + circleArea(g, y);
92
+ }
93
+ function circleCircleIntersection(e, g) {
94
+ let _ = distance(e, g), v = e.radius, y = g.radius;
95
+ if (_ >= v + y || _ <= Math.abs(v - y)) return [];
96
+ let b = (v * v - y * y + _ * _) / (2 * _), x = Math.sqrt(v * v - b * b), S = e.x + b * (g.x - e.x) / _, C = e.y + b * (g.y - e.y) / _, w = -(g.y - e.y) * (x / _), T = -(g.x - e.x) * (x / _);
97
+ return [{
98
+ x: S + w,
99
+ y: C - T
100
+ }, {
101
+ x: S - w,
102
+ y: C + T
103
+ }];
104
+ }
105
+ function getCenter(e) {
106
+ let g = {
107
+ x: 0,
108
+ y: 0
109
+ };
110
+ for (let _ of e) g.x += _.x, g.y += _.y;
111
+ return g.x /= e.length, g.y /= e.length, g;
112
+ }
113
+ function bisect(e, g, _, v) {
114
+ v || (v = {});
115
+ let y = v.maxIterations || 100, b = v.tolerance || 1e-10, x = e(g), S = e(_), C = _ - g;
116
+ if (x * S > 0) throw "Initial bisect points must have opposite signs";
117
+ if (x === 0) return g;
118
+ if (S === 0) return _;
119
+ for (let _2 = 0; _2 < y; ++_2) {
120
+ C /= 2;
121
+ let _3 = g + C, v2 = e(_3);
122
+ if (v2 * x >= 0 && (g = _3), Math.abs(C) < b || v2 === 0) return _3;
123
+ }
124
+ return g + C;
125
+ }
126
+ function zeros(e) {
127
+ let g = Array(e);
128
+ for (let _ = 0; _ < e; ++_) g[_] = 0;
129
+ return g;
130
+ }
131
+ function zerosM(e, g) {
132
+ return zeros(e).map(() => zeros(g));
133
+ }
134
+ function dot(e, g) {
135
+ let _ = 0;
136
+ for (let v = 0; v < e.length; ++v) _ += e[v] * g[v];
137
+ return _;
138
+ }
139
+ function norm2(e) {
140
+ return Math.sqrt(dot(e, e));
141
+ }
142
+ function scale(e, g, _) {
143
+ for (let v = 0; v < g.length; ++v) e[v] = g[v] * _;
144
+ }
145
+ function weightedSum(e, g, _, v, y) {
146
+ for (let b = 0; b < e.length; ++b) e[b] = g * _[b] + v * y[b];
147
+ }
148
+ function nelderMead(e, g, _) {
149
+ _ || (_ = {});
150
+ let v = _.maxIterations || g.length * 200, y = _.nonZeroDelta || 1.05, b = _.zeroDelta || 1e-3, x = _.minErrorDelta || 1e-6, S = _.minErrorDelta || 1e-5, C = _.rho === void 0 ? 1 : _.rho, w = _.chi === void 0 ? 2 : _.chi, T = _.psi === void 0 ? -0.5 : _.psi, E = _.sigma === void 0 ? 0.5 : _.sigma, D, O = g.length, k = Array(O + 1);
151
+ k[0] = g, k[0].fx = e(g), k[0].id = 0;
152
+ for (let _2 = 0; _2 < O; ++_2) {
153
+ let v2 = g.slice();
154
+ v2[_2] = v2[_2] ? v2[_2] * y : b, k[_2 + 1] = v2, k[_2 + 1].fx = e(v2), k[_2 + 1].id = _2 + 1;
155
+ }
156
+ function A(e2) {
157
+ for (let g2 = 0; g2 < e2.length; g2++) k[O][g2] = e2[g2];
158
+ k[O].fx = e2.fx;
159
+ }
160
+ let j = (e2, g2) => e2.fx - g2.fx, M = g.slice(), N = g.slice(), P = g.slice(), F = g.slice();
161
+ for (let g2 = 0; g2 < v; ++g2) {
162
+ if (k.sort(j), _.history) {
163
+ let e2 = k.map((e3) => {
164
+ let g4 = e3.slice();
165
+ return g4.fx = e3.fx, g4.id = e3.id, g4;
166
+ });
167
+ e2.sort((e3, g4) => e3.id - g4.id), _.history.push({
168
+ x: k[0].slice(),
169
+ fx: k[0].fx,
170
+ simplex: e2
171
+ });
172
+ }
173
+ D = 0;
174
+ for (let e2 = 0; e2 < O; ++e2) D = Math.max(D, Math.abs(k[0][e2] - k[1][e2]));
175
+ if (Math.abs(k[0].fx - k[O].fx) < x && D < S) break;
176
+ for (let e2 = 0; e2 < O; ++e2) {
177
+ M[e2] = 0;
178
+ for (let g4 = 0; g4 < O; ++g4) M[e2] += k[g4][e2];
179
+ M[e2] /= O;
180
+ }
181
+ let g3 = k[O];
182
+ if (weightedSum(N, 1 + C, M, -C, g3), N.fx = e(N), N.fx < k[0].fx) weightedSum(F, 1 + w, M, -w, g3), F.fx = e(F), F.fx < N.fx ? A(F) : A(N);
183
+ else if (N.fx >= k[O - 1].fx) {
184
+ let _2 = false;
185
+ if (N.fx > g3.fx ? (weightedSum(P, 1 + T, M, -T, g3), P.fx = e(P), P.fx < g3.fx ? A(P) : _2 = true) : (weightedSum(P, 1 - T * C, M, T * C, g3), P.fx = e(P), P.fx < N.fx ? A(P) : _2 = true), _2) {
186
+ if (E >= 1) break;
187
+ for (let g4 = 1; g4 < k.length; ++g4) weightedSum(k[g4], 1 - E, k[0], E, k[g4]), k[g4].fx = e(k[g4]);
188
+ }
189
+ } else A(N);
190
+ }
191
+ return k.sort(j), {
192
+ fx: k[0].fx,
193
+ x: k[0]
194
+ };
195
+ }
196
+ function wolfeLineSearch(e, g, _, v, y, b, x) {
197
+ let S = _.fx, C = dot(_.fxprime, g), w = S, T = S, E = C, D = 0;
198
+ y || (y = 1), b || (b = 1e-6), x || (x = 0.1);
199
+ function O(T2, D2, O2) {
200
+ for (let k = 0; k < 16; ++k) if (y = (T2 + D2) / 2, weightedSum(v.x, 1, _.x, y, g), w = v.fx = e(v.x, v.fxprime), E = dot(v.fxprime, g), w > S + b * y * C || w >= O2) D2 = y;
201
+ else {
202
+ if (Math.abs(E) <= -x * C) return y;
203
+ E * (D2 - T2) >= 0 && (D2 = T2), T2 = y, O2 = w;
204
+ }
205
+ return 0;
206
+ }
207
+ for (let k = 0; k < 10; ++k) {
208
+ if (weightedSum(v.x, 1, _.x, y, g), w = v.fx = e(v.x, v.fxprime), E = dot(v.fxprime, g), w > S + b * y * C || k && w >= T) return O(D, y, T);
209
+ if (Math.abs(E) <= -x * C) return y;
210
+ if (E >= 0) return O(y, D, w);
211
+ T = w, D = y, y *= 2;
212
+ }
213
+ return y;
214
+ }
215
+ function conjugateGradient(e, g, _) {
216
+ let v = {
217
+ x: g.slice(),
218
+ fx: 0,
219
+ fxprime: g.slice()
220
+ }, y = {
221
+ x: g.slice(),
222
+ fx: 0,
223
+ fxprime: g.slice()
224
+ }, b = g.slice(), x, S, C = 1, w;
225
+ _ || (_ = {}), w = _.maxIterations || g.length * 20, v.fx = e(v.x, v.fxprime), x = v.fxprime.slice(), scale(x, v.fxprime, -1);
226
+ for (let g2 = 0; g2 < w; ++g2) {
227
+ if (C = wolfeLineSearch(e, x, v, y, C), _.history && _.history.push({
228
+ x: v.x.slice(),
229
+ fx: v.fx,
230
+ fxprime: v.fxprime.slice(),
231
+ alpha: C
232
+ }), !C) scale(x, v.fxprime, -1);
233
+ else {
234
+ weightedSum(b, 1, y.fxprime, -1, v.fxprime);
235
+ let e2 = dot(v.fxprime, v.fxprime), g3 = Math.max(0, dot(b, y.fxprime) / e2);
236
+ weightedSum(x, g3, x, -1, y.fxprime), S = v, v = y, y = S;
237
+ }
238
+ if (norm2(v.fxprime) <= 1e-5) break;
239
+ }
240
+ return _.history && _.history.push({
241
+ x: v.x.slice(),
242
+ fx: v.fx,
243
+ fxprime: v.fxprime.slice(),
244
+ alpha: C
245
+ }), v;
246
+ }
247
+ function venn(e, g = {}) {
248
+ g.maxIterations = g.maxIterations || 500;
249
+ let _ = g.initialLayout || bestInitialLayout, v = g.lossFunction || lossFunction, y = addMissingAreas(e, g), b = _(y, g), x = Object.keys(b), S = [];
250
+ for (let e2 of x) S.push(b[e2].x), S.push(b[e2].y);
251
+ let C = nelderMead((e2) => {
252
+ let g2 = {};
253
+ for (let _2 = 0; _2 < x.length; ++_2) {
254
+ let v2 = x[_2];
255
+ g2[v2] = {
256
+ x: e2[2 * _2],
257
+ y: e2[2 * _2 + 1],
258
+ radius: b[v2].radius
259
+ };
260
+ }
261
+ return v(g2, y);
262
+ }, S, g).x;
263
+ for (let e2 = 0; e2 < x.length; ++e2) {
264
+ let g2 = x[e2];
265
+ b[g2].x = C[2 * e2], b[g2].y = C[2 * e2 + 1];
266
+ }
267
+ return b;
268
+ }
269
+ var SMALL = 1e-10;
270
+ function distanceFromIntersectArea(e, g, _) {
271
+ return Math.min(e, g) * Math.min(e, g) * Math.PI <= _ + SMALL ? Math.abs(e - g) : bisect((v) => circleOverlap(e, g, v) - _, 0, e + g);
272
+ }
273
+ function addMissingAreas(e, g = {}) {
274
+ let _ = g.distinct, v = e.map((e2) => Object.assign({}, e2));
275
+ function y(e2) {
276
+ return e2.join(";");
277
+ }
278
+ if (_) {
279
+ let e2 = /* @__PURE__ */ new Map();
280
+ for (let g2 of v) for (let _2 = 0; _2 < g2.sets.length; _2++) {
281
+ let v2 = String(g2.sets[_2]);
282
+ e2.set(v2, g2.size + (e2.get(v2) || 0));
283
+ for (let y2 = _2 + 1; y2 < g2.sets.length; y2++) {
284
+ let _3 = String(g2.sets[y2]), b2 = `${v2};${_3}`, x2 = `${_3};${v2}`;
285
+ e2.set(b2, g2.size + (e2.get(b2) || 0)), e2.set(x2, g2.size + (e2.get(x2) || 0));
286
+ }
287
+ }
288
+ for (let g2 of v) g2.sets.length < 3 && (g2.size = e2.get(y(g2.sets)));
289
+ }
290
+ let b = [], x = /* @__PURE__ */ new Set();
291
+ for (let e2 of v) if (e2.sets.length === 1) b.push(e2.sets[0]);
292
+ else if (e2.sets.length === 2) {
293
+ let g2 = e2.sets[0], _2 = e2.sets[1];
294
+ x.add(y(e2.sets)), x.add(y([_2, g2]));
295
+ }
296
+ b.sort((e2, g2) => e2 === g2 ? 0 : e2 < g2 ? -1 : 1);
297
+ for (let e2 = 0; e2 < b.length; ++e2) {
298
+ let g2 = b[e2];
299
+ for (let _2 = e2 + 1; _2 < b.length; ++_2) {
300
+ let e3 = b[_2];
301
+ x.has(y([g2, e3])) || v.push({
302
+ sets: [g2, e3],
303
+ size: 0
304
+ });
305
+ }
306
+ }
307
+ return v;
308
+ }
309
+ function getDistanceMatrices(e, g, _) {
310
+ let v = zerosM(g.length, g.length), y = zerosM(g.length, g.length);
311
+ return e.filter((e2) => e2.sets.length === 2).forEach((e2) => {
312
+ let b = _[e2.sets[0]], x = _[e2.sets[1]], S = distanceFromIntersectArea(Math.sqrt(g[b].size / Math.PI), Math.sqrt(g[x].size / Math.PI), e2.size);
313
+ v[b][x] = v[x][b] = S;
314
+ let C = 0;
315
+ e2.size + 1e-10 >= Math.min(g[b].size, g[x].size) ? C = 1 : e2.size <= 1e-10 && (C = -1), y[b][x] = y[x][b] = C;
316
+ }), {
317
+ distances: v,
318
+ constraints: y
319
+ };
320
+ }
321
+ function constrainedMDSGradient(e, g, _, v) {
322
+ for (let e2 = 0; e2 < g.length; ++e2) g[e2] = 0;
323
+ let y = 0;
324
+ for (let b = 0; b < _.length; ++b) {
325
+ let x = e[2 * b], S = e[2 * b + 1];
326
+ for (let C = b + 1; C < _.length; ++C) {
327
+ let w = e[2 * C], T = e[2 * C + 1], E = _[b][C], D = v[b][C], O = (w - x) * (w - x) + (T - S) * (T - S), k = Math.sqrt(O), A = O - E * E;
328
+ D > 0 && k <= E || D < 0 && k >= E || (y += 2 * A * A, g[2 * b] += 4 * A * (x - w), g[2 * b + 1] += 4 * A * (S - T), g[2 * C] += 4 * A * (w - x), g[2 * C + 1] += 4 * A * (T - S));
329
+ }
330
+ }
331
+ return y;
332
+ }
333
+ function bestInitialLayout(e, g = {}) {
334
+ let _ = greedyLayout(e, g), v = g.lossFunction || lossFunction;
335
+ if (e.length >= 8) {
336
+ let y = constrainedMDSLayout(e, g), b = v(y, e), x = v(_, e);
337
+ b + 1e-8 < x && (_ = y);
338
+ }
339
+ return _;
340
+ }
341
+ function constrainedMDSLayout(e, g = {}) {
342
+ let _ = g.restarts || 10, v = [], y = {};
343
+ for (let g2 of e) g2.sets.length === 1 && (y[g2.sets[0]] = v.length, v.push(g2));
344
+ let { distances: b, constraints: x } = getDistanceMatrices(e, v, y), S = norm2(b.map(norm2)) / b.length;
345
+ b = b.map((e2) => e2.map((e3) => e3 / S));
346
+ let C = (e2, g2) => constrainedMDSGradient(e2, g2, b, x), w = null;
347
+ for (let e2 = 0; e2 < _; ++e2) {
348
+ let e3 = conjugateGradient(C, zeros(b.length * 2).map(Math.random), g);
349
+ (!w || e3.fx < w.fx) && (w = e3);
350
+ }
351
+ let T = w.x, E = {};
352
+ for (let e2 = 0; e2 < v.length; ++e2) {
353
+ let g2 = v[e2];
354
+ E[g2.sets[0]] = {
355
+ x: T[2 * e2] * S,
356
+ y: T[2 * e2 + 1] * S,
357
+ radius: Math.sqrt(g2.size / Math.PI)
358
+ };
359
+ }
360
+ if (g.history) for (let e2 of g.history) scale(e2.x, S);
361
+ return E;
362
+ }
363
+ function greedyLayout(e, g) {
364
+ let _ = g && g.lossFunction ? g.lossFunction : lossFunction, v = {}, y = {};
365
+ for (let g2 of e) if (g2.sets.length === 1) {
366
+ let e2 = g2.sets[0];
367
+ v[e2] = {
368
+ x: 1e10,
369
+ y: 1e10,
370
+ rowid: v.length,
371
+ size: g2.size,
372
+ radius: Math.sqrt(g2.size / Math.PI)
373
+ }, y[e2] = [];
374
+ }
375
+ e = e.filter((e2) => e2.sets.length === 2);
376
+ for (let g2 of e) {
377
+ let e2 = g2.weight == null ? 1 : g2.weight, _2 = g2.sets[0], b2 = g2.sets[1];
378
+ g2.size + SMALL >= Math.min(v[_2].size, v[b2].size) && (e2 = 0), y[_2].push({
379
+ set: b2,
380
+ size: g2.size,
381
+ weight: e2
382
+ }), y[b2].push({
383
+ set: _2,
384
+ size: g2.size,
385
+ weight: e2
386
+ });
387
+ }
388
+ let b = [];
389
+ Object.keys(y).forEach((e2) => {
390
+ let g2 = 0;
391
+ for (let _2 = 0; _2 < y[e2].length; ++_2) g2 += y[e2][_2].size * y[e2][_2].weight;
392
+ b.push({
393
+ set: e2,
394
+ size: g2
395
+ });
396
+ });
397
+ function x(e2, g2) {
398
+ return g2.size - e2.size;
399
+ }
400
+ b.sort(x);
401
+ let S = {};
402
+ function C(e2) {
403
+ return e2.set in S;
404
+ }
405
+ function w(e2, g2) {
406
+ v[g2].x = e2.x, v[g2].y = e2.y, S[g2] = true;
407
+ }
408
+ w({
409
+ x: 0,
410
+ y: 0
411
+ }, b[0].set);
412
+ for (let g2 = 1; g2 < b.length; ++g2) {
413
+ let S2 = b[g2].set, E = y[S2].filter(C), D = v[S2];
414
+ if (E.sort(x), E.length === 0) throw "ERROR: missing pairwise overlap information";
415
+ let O = [];
416
+ for (var T = 0; T < E.length; ++T) {
417
+ let e2 = v[E[T].set], g3 = distanceFromIntersectArea(D.radius, e2.radius, E[T].size);
418
+ O.push({
419
+ x: e2.x + g3,
420
+ y: e2.y
421
+ }), O.push({
422
+ x: e2.x - g3,
423
+ y: e2.y
424
+ }), O.push({
425
+ y: e2.y + g3,
426
+ x: e2.x
427
+ }), O.push({
428
+ y: e2.y - g3,
429
+ x: e2.x
430
+ });
431
+ for (let _2 = T + 1; _2 < E.length; ++_2) {
432
+ let y2 = v[E[_2].set], b2 = distanceFromIntersectArea(D.radius, y2.radius, E[_2].size), x2 = circleCircleIntersection({
433
+ x: e2.x,
434
+ y: e2.y,
435
+ radius: g3
436
+ }, {
437
+ x: y2.x,
438
+ y: y2.y,
439
+ radius: b2
440
+ });
441
+ O.push(...x2);
442
+ }
443
+ }
444
+ let k = 1e50, A = O[0];
445
+ for (let g3 of O) {
446
+ v[S2].x = g3.x, v[S2].y = g3.y;
447
+ let y2 = _(v, e);
448
+ y2 < k && (k = y2, A = g3);
449
+ }
450
+ w(A, S2);
451
+ }
452
+ return v;
453
+ }
454
+ function lossFunction(e, g) {
455
+ let _ = 0;
456
+ for (let v of g) {
457
+ if (v.sets.length === 1) continue;
458
+ let g2;
459
+ if (v.sets.length === 2) {
460
+ let _2 = e[v.sets[0]], y2 = e[v.sets[1]];
461
+ g2 = circleOverlap(_2.radius, y2.radius, distance(_2, y2));
462
+ } else g2 = intersectionArea(v.sets.map((g3) => e[g3]));
463
+ let y = v.weight == null ? 1 : v.weight;
464
+ _ += y * (g2 - v.size) * (g2 - v.size);
465
+ }
466
+ return _;
467
+ }
468
+ function logRatioLossFunction(e, g) {
469
+ let _ = 0;
470
+ for (let v of g) {
471
+ if (v.sets.length === 1) continue;
472
+ let g2;
473
+ if (v.sets.length === 2) {
474
+ let _2 = e[v.sets[0]], y2 = e[v.sets[1]];
475
+ g2 = circleOverlap(_2.radius, y2.radius, distance(_2, y2));
476
+ } else g2 = intersectionArea(v.sets.map((g3) => e[g3]));
477
+ let y = v.weight == null ? 1 : v.weight, b = Math.log((g2 + 1) / (v.size + 1));
478
+ _ += y * b * b;
479
+ }
480
+ return _;
481
+ }
482
+ function orientateCircles(e, g, _) {
483
+ if (_ == null ? e.sort((e2, g2) => g2.radius - e2.radius) : e.sort(_), e.length > 0) {
484
+ let g2 = e[0].x, _2 = e[0].y;
485
+ for (let v2 of e) v2.x -= g2, v2.y -= _2;
486
+ }
487
+ if (e.length === 2 && distance(e[0], e[1]) < Math.abs(e[1].radius - e[0].radius) && (e[1].x = e[0].x + e[0].radius - e[1].radius - 1e-10, e[1].y = e[0].y), e.length > 1) {
488
+ let _2 = Math.atan2(e[1].x, e[1].y) - g, v2 = Math.cos(_2), y = Math.sin(_2);
489
+ for (let g2 of e) {
490
+ let e2 = g2.x, _3 = g2.y;
491
+ g2.x = v2 * e2 - y * _3, g2.y = y * e2 + v2 * _3;
492
+ }
493
+ }
494
+ if (e.length > 2) {
495
+ let _2 = Math.atan2(e[2].x, e[2].y) - g;
496
+ for (; _2 < 0; ) _2 += 2 * Math.PI;
497
+ for (; _2 > 2 * Math.PI; ) _2 -= 2 * Math.PI;
498
+ if (_2 > Math.PI) {
499
+ let g2 = e[1].y / (1e-10 + e[1].x);
500
+ for (let _3 of e) {
501
+ var v = (_3.x + g2 * _3.y) / (1 + g2 * g2);
502
+ _3.x = 2 * v - _3.x, _3.y = 2 * v * g2 - _3.y;
503
+ }
504
+ }
505
+ }
506
+ }
507
+ function disjointCluster(e) {
508
+ e.forEach((e2) => {
509
+ e2.parent = e2;
510
+ });
511
+ function g(e2) {
512
+ return e2.parent !== e2 && (e2.parent = g(e2.parent)), e2.parent;
513
+ }
514
+ function _(e2, _2) {
515
+ let v2 = g(e2);
516
+ v2.parent = g(_2);
517
+ }
518
+ for (let g2 = 0; g2 < e.length; ++g2) for (let v2 = g2 + 1; v2 < e.length; ++v2) {
519
+ let y = e[g2].radius + e[v2].radius;
520
+ distance(e[g2], e[v2]) + 1e-10 < y && _(e[v2], e[g2]);
521
+ }
522
+ let v = /* @__PURE__ */ new Map();
523
+ for (let _2 = 0; _2 < e.length; ++_2) {
524
+ let y = g(e[_2]).parent.setid;
525
+ v.has(y) || v.set(y, []), v.get(y).push(e[_2]);
526
+ }
527
+ return e.forEach((e2) => {
528
+ delete e2.parent;
529
+ }), Array.from(v.values());
530
+ }
531
+ function getBoundingBox(e) {
532
+ let g = (g2) => ({
533
+ max: e.reduce((e2, _) => Math.max(e2, _[g2] + _.radius), -Infinity),
534
+ min: e.reduce((e2, _) => Math.min(e2, _[g2] - _.radius), Infinity)
535
+ });
536
+ return {
537
+ xRange: g("x"),
538
+ yRange: g("y")
539
+ };
540
+ }
541
+ function normalizeSolution(e, g, _) {
542
+ g ?? (g = Math.PI / 2);
543
+ let v = fromObjectNotation(e).map((e2) => Object.assign({}, e2)), y = disjointCluster(v);
544
+ for (let e2 of y) {
545
+ orientateCircles(e2, g, _);
546
+ let v2 = getBoundingBox(e2);
547
+ e2.size = (v2.xRange.max - v2.xRange.min) * (v2.yRange.max - v2.yRange.min), e2.bounds = v2;
548
+ }
549
+ y.sort((e2, g2) => g2.size - e2.size), v = y[0];
550
+ let b = v.bounds, x = (b.xRange.max - b.xRange.min) / 50;
551
+ function S(e2, g2, _2) {
552
+ if (!e2) return;
553
+ let y2 = e2.bounds, S2, C2;
554
+ if (g2) S2 = b.xRange.max - y2.xRange.min + x;
555
+ else {
556
+ S2 = b.xRange.max - y2.xRange.max;
557
+ let e3 = (y2.xRange.max - y2.xRange.min) / 2 - (b.xRange.max - b.xRange.min) / 2;
558
+ e3 < 0 && (S2 += e3);
559
+ }
560
+ if (_2) C2 = b.yRange.max - y2.yRange.min + x;
561
+ else {
562
+ C2 = b.yRange.max - y2.yRange.max;
563
+ let e3 = (y2.yRange.max - y2.yRange.min) / 2 - (b.yRange.max - b.yRange.min) / 2;
564
+ e3 < 0 && (C2 += e3);
565
+ }
566
+ for (let g3 of e2) g3.x += S2, g3.y += C2, v.push(g3);
567
+ }
568
+ let C = 1;
569
+ for (; C < y.length; ) S(y[C], true, false), S(y[C + 1], false, true), S(y[C + 2], true, true), C += 3, b = getBoundingBox(v);
570
+ return toObjectNotation(v);
571
+ }
572
+ function scaleSolution(e, g, _, v, y) {
573
+ let b = fromObjectNotation(e);
574
+ g -= 2 * v, _ -= 2 * v;
575
+ let { xRange: x, yRange: S } = getBoundingBox(b);
576
+ if (x.max === x.min || S.max === S.min) return console.log("not scaling solution: zero size detected"), e;
577
+ let C, w;
578
+ if (y) {
579
+ let e2 = Math.sqrt(y / Math.PI) * 2;
580
+ C = g / e2, w = _ / e2;
581
+ } else C = g / (x.max - x.min), w = _ / (S.max - S.min);
582
+ let T = Math.min(w, C), E = (g - (x.max - x.min) * T) / 2, D = (_ - (S.max - S.min) * T) / 2;
583
+ return toObjectNotation(b.map((e2) => ({
584
+ radius: T * e2.radius,
585
+ x: v + E + (e2.x - x.min) * T,
586
+ y: v + D + (e2.y - S.min) * T,
587
+ setid: e2.setid
588
+ })));
589
+ }
590
+ function toObjectNotation(e) {
591
+ let g = {};
592
+ for (let _ of e) g[_.setid] = _;
593
+ return g;
594
+ }
595
+ function fromObjectNotation(e) {
596
+ return Object.keys(e).map((g) => Object.assign(e[g], { setid: g }));
597
+ }
598
+ function VennDiagram(e = {}) {
599
+ let g = false, _ = 600, v = 350, y = 15, b = 1e3, x = Math.PI / 2, S = true, C = null, w = true, T = true, E = null, D = null, O = false, k = null, A = e && e.symmetricalTextCentre ? e.symmetricalTextCentre : false, j = {}, M = e && e.colourScheme ? e.colourScheme : e && e.colorScheme ? e.colorScheme : [
600
+ "#1f77b4",
601
+ "#ff7f0e",
602
+ "#2ca02c",
603
+ "#d62728",
604
+ "#9467bd",
605
+ "#8c564b",
606
+ "#e377c2",
607
+ "#7f7f7f",
608
+ "#bcbd22",
609
+ "#17becf"
610
+ ], N = 0, P = function(e2) {
611
+ if (e2 in j) return j[e2];
612
+ var g2 = j[e2] = M[N];
613
+ return N += 1, N >= M.length && (N = 0), g2;
614
+ }, F = venn, I = lossFunction;
615
+ function L(j2) {
616
+ let M2 = j2.datum(), N2 = /* @__PURE__ */ new Set();
617
+ M2.forEach((e2) => {
618
+ e2.size == 0 && e2.sets.length == 1 && N2.add(e2.sets[0]);
619
+ }), M2 = M2.filter((e2) => !e2.sets.some((e3) => N2.has(e3)));
620
+ let L2 = {}, R = {};
621
+ if (M2.length > 0) {
622
+ let e2 = F(M2, {
623
+ lossFunction: I,
624
+ distinct: O
625
+ });
626
+ S && (e2 = normalizeSolution(e2, x, D)), L2 = scaleSolution(e2, _, v, y, C), R = computeTextCentres(L2, M2, A);
627
+ }
628
+ let z = {};
629
+ M2.forEach((e2) => {
630
+ e2.label && (z[e2.sets] = e2.label);
631
+ });
632
+ function B(e2) {
633
+ if (e2.sets in z) return z[e2.sets];
634
+ if (e2.sets.length == 1) return "" + e2.sets[0];
635
+ }
636
+ j2.selectAll("svg").data([L2]).enter().append("svg");
637
+ let V = j2.select("svg");
638
+ g ? V.attr("viewBox", `0 0 ${_} ${v}`) : V.attr("width", _).attr("height", v);
639
+ let H = {}, U = false;
640
+ V.selectAll(".venn-area path").each(function(e2) {
641
+ let g2 = this.getAttribute("d");
642
+ e2.sets.length == 1 && g2 && !O && (U = true, H[e2.sets[0]] = circleFromPath(g2));
643
+ });
644
+ function W(e2) {
645
+ return (g2) => intersectionAreaPath(e2.sets.map((e3) => {
646
+ let y2 = H[e3], b2 = L2[e3];
647
+ return y2 || (y2 = {
648
+ x: _ / 2,
649
+ y: v / 2,
650
+ radius: 1
651
+ }), b2 || (b2 = {
652
+ x: _ / 2,
653
+ y: v / 2,
654
+ radius: 1
655
+ }), {
656
+ x: y2.x * (1 - g2) + b2.x * g2,
657
+ y: y2.y * (1 - g2) + b2.y * g2,
658
+ radius: y2.radius * (1 - g2) + b2.radius * g2
659
+ };
660
+ }), k);
661
+ }
662
+ let G = V.selectAll(".venn-area").data(M2, (e2) => e2.sets), K = G.enter().append("g").attr("class", (e2) => `venn-area venn-${e2.sets.length == 1 ? "circle" : "intersection"}${e2.colour || e2.color ? " venn-coloured" : ""}`).attr("data-venn-sets", (e2) => e2.sets.join("_")), q = K.append("path"), J = K.append("text").attr("class", "label").text((e2) => B(e2)).attr("text-anchor", "middle").attr("dy", ".35em").attr("x", _ / 2).attr("y", v / 2);
663
+ T && (q.style("fill-opacity", "0").filter((e2) => e2.sets.length == 1).style("fill", (e2) => e2.colour ? e2.colour : e2.color ? e2.color : P(e2.sets)).style("fill-opacity", ".25"), J.style("fill", (g2) => g2.colour || g2.color ? "#FFF" : e.textFill ? e.textFill : g2.sets.length == 1 ? P(g2.sets) : "#444"));
664
+ function Y(e2) {
665
+ return typeof e2.transition == "function" ? e2.transition("venn").duration(b) : e2;
666
+ }
667
+ let X = j2;
668
+ U && typeof X.transition == "function" ? (X = Y(j2), X.selectAll("path").attrTween("d", W)) : X.selectAll("path").attr("d", (e2) => intersectionAreaPath(e2.sets.map((e3) => L2[e3])), k);
669
+ let Z = X.selectAll("text").filter((e2) => e2.sets in R).text((e2) => B(e2)).attr("x", (e2) => Math.floor(R[e2.sets].x)).attr("y", (e2) => Math.floor(R[e2.sets].y));
670
+ w && (U ? "on" in Z ? Z.on("end", wrapText(L2, B)) : Z.each("end", wrapText(L2, B)) : Z.each(wrapText(L2, B)));
671
+ let Q = Y(G.exit()).remove();
672
+ typeof G.transition == "function" && Q.selectAll("path").attrTween("d", W);
673
+ let $ = Q.selectAll("text").attr("x", _ / 2).attr("y", v / 2);
674
+ return E !== null && (J.style("font-size", "0px"), Z.style("font-size", E), $.style("font-size", "0px")), {
675
+ circles: L2,
676
+ textCentres: R,
677
+ nodes: G,
678
+ enter: K,
679
+ update: X,
680
+ exit: Q
681
+ };
682
+ }
683
+ return L.wrap = function(e2) {
684
+ return arguments.length ? (w = e2, L) : w;
685
+ }, L.useViewBox = function() {
686
+ return g = true, L;
687
+ }, L.width = function(e2) {
688
+ return arguments.length ? (_ = e2, L) : _;
689
+ }, L.height = function(e2) {
690
+ return arguments.length ? (v = e2, L) : v;
691
+ }, L.padding = function(e2) {
692
+ return arguments.length ? (y = e2, L) : y;
693
+ }, L.distinct = function(e2) {
694
+ return arguments.length ? (O = e2, L) : O;
695
+ }, L.colours = function(e2) {
696
+ return arguments.length ? (P = e2, L) : P;
697
+ }, L.colors = function(e2) {
698
+ return arguments.length ? (P = e2, L) : P;
699
+ }, L.fontSize = function(e2) {
700
+ return arguments.length ? (E = e2, L) : E;
701
+ }, L.round = function(e2) {
702
+ return arguments.length ? (k = e2, L) : k;
703
+ }, L.duration = function(e2) {
704
+ return arguments.length ? (b = e2, L) : b;
705
+ }, L.layoutFunction = function(e2) {
706
+ return arguments.length ? (F = e2, L) : F;
707
+ }, L.normalize = function(e2) {
708
+ return arguments.length ? (S = e2, L) : S;
709
+ }, L.scaleToFit = function(e2) {
710
+ return arguments.length ? (C = e2, L) : C;
711
+ }, L.styled = function(e2) {
712
+ return arguments.length ? (T = e2, L) : T;
713
+ }, L.orientation = function(e2) {
714
+ return arguments.length ? (x = e2, L) : x;
715
+ }, L.orientationOrder = function(e2) {
716
+ return arguments.length ? (D = e2, L) : D;
717
+ }, L.lossFunction = function(e2) {
718
+ return arguments.length ? (I = e2 === "default" ? lossFunction : e2 === "logRatio" ? logRatioLossFunction : e2, L) : I;
719
+ }, L;
720
+ }
721
+ function wrapText(e, g) {
722
+ return function(_) {
723
+ let v = this, y = e[_.sets[0]].radius || 50, b = g(_) || "", x = b.split(/\s+/).reverse(), S = (b.length + x.length) / 3, C = x.pop(), w = [C], T = 0, E = 1.1;
724
+ v.textContent = null;
725
+ let D = [];
726
+ function O(e2) {
727
+ let g2 = v.ownerDocument.createElementNS(v.namespaceURI, "tspan");
728
+ return g2.textContent = e2, D.push(g2), v.append(g2), g2;
729
+ }
730
+ let k = O(C);
731
+ for (; C = x.pop(), C; ) {
732
+ w.push(C);
733
+ let e2 = w.join(" ");
734
+ k.textContent = e2, e2.length > S && k.getComputedTextLength() > y && (w.pop(), k.textContent = w.join(" "), w = [C], k = O(C), T++);
735
+ }
736
+ let A = 0.35 - T * E / 2, j = v.getAttribute("x"), M = v.getAttribute("y");
737
+ D.forEach((e2, g2) => {
738
+ e2.setAttribute("x", j), e2.setAttribute("y", M), e2.setAttribute("dy", `${A + g2 * E}em`);
739
+ });
740
+ };
741
+ }
742
+ function circleMargin(e, g, _) {
743
+ let v = g[0].radius - distance(g[0], e);
744
+ for (let _2 = 1; _2 < g.length; ++_2) {
745
+ let y = g[_2].radius - distance(g[_2], e);
746
+ y <= v && (v = y);
747
+ }
748
+ for (let g2 = 0; g2 < _.length; ++g2) {
749
+ let y = distance(_[g2], e) - _[g2].radius;
750
+ y <= v && (v = y);
751
+ }
752
+ return v;
753
+ }
754
+ function computeTextCentre(e, g, _) {
755
+ let v = [];
756
+ for (let g2 of e) v.push({
757
+ x: g2.x,
758
+ y: g2.y
759
+ }), v.push({
760
+ x: g2.x + g2.radius / 2,
761
+ y: g2.y
762
+ }), v.push({
763
+ x: g2.x - g2.radius / 2,
764
+ y: g2.y
765
+ }), v.push({
766
+ x: g2.x,
767
+ y: g2.y + g2.radius / 2
768
+ }), v.push({
769
+ x: g2.x,
770
+ y: g2.y - g2.radius / 2
771
+ });
772
+ let y = v[0], b = circleMargin(v[0], e, g);
773
+ for (let _2 = 1; _2 < v.length; ++_2) {
774
+ let x2 = circleMargin(v[_2], e, g);
775
+ x2 >= b && (y = v[_2], b = x2);
776
+ }
777
+ let x = nelderMead((_2) => -1 * circleMargin({
778
+ x: _2[0],
779
+ y: _2[1]
780
+ }, e, g), [y.x, y.y], {
781
+ maxIterations: 500,
782
+ minErrorDelta: 1e-10
783
+ }).x, S = {
784
+ x: _ ? 0 : x[0],
785
+ y: x[1]
786
+ }, C = true;
787
+ for (let g2 of e) if (distance(S, g2) > g2.radius) {
788
+ C = false;
789
+ break;
790
+ }
791
+ for (let e2 of g) if (distance(S, e2) < e2.radius) {
792
+ C = false;
793
+ break;
794
+ }
795
+ if (C) return S;
796
+ if (e.length == 1) return {
797
+ x: e[0].x,
798
+ y: e[0].y
799
+ };
800
+ let w = {};
801
+ return intersectionArea(e, w), w.arcs.length === 0 ? {
802
+ x: 0,
803
+ y: -1e3,
804
+ disjoint: true
805
+ } : w.arcs.length == 1 ? {
806
+ x: w.arcs[0].circle.x,
807
+ y: w.arcs[0].circle.y
808
+ } : g.length ? computeTextCentre(e, []) : getCenter(w.arcs.map((e2) => e2.p1));
809
+ }
810
+ function getOverlappingCircles(e) {
811
+ let g = {}, _ = Object.keys(e);
812
+ for (let e2 of _) g[e2] = [];
813
+ for (let v = 0; v < _.length; v++) {
814
+ let y = _[v], b = e[y];
815
+ for (let x = v + 1; x < _.length; ++x) {
816
+ let v2 = _[x], S = e[v2], C = distance(b, S);
817
+ C + S.radius <= b.radius + 1e-10 ? g[v2].push(y) : C + b.radius <= S.radius + 1e-10 && g[y].push(v2);
818
+ }
819
+ }
820
+ return g;
821
+ }
822
+ function computeTextCentres(e, g, _) {
823
+ let v = {}, y = getOverlappingCircles(e);
824
+ for (let b = 0; b < g.length; ++b) {
825
+ let x = g[b].sets, S = {}, C = {};
826
+ for (let e2 = 0; e2 < x.length; ++e2) {
827
+ S[x[e2]] = true;
828
+ let g2 = y[x[e2]];
829
+ for (let e3 = 0; e3 < g2.length; ++e3) C[g2[e3]] = true;
830
+ }
831
+ let w = [], T = [];
832
+ for (let g2 in e) g2 in S ? w.push(e[g2]) : g2 in C || T.push(e[g2]);
833
+ let E = computeTextCentre(w, T, _);
834
+ v[x] = E, E.disjoint && g[b].size > 0 && console.log("WARNING: area " + x + " not represented on screen");
835
+ }
836
+ return v;
837
+ }
838
+ function circlePath(e, g, _) {
839
+ let v = [];
840
+ return v.push("\nM", e, g), v.push("\nm", -_, 0), v.push("\na", _, _, 0, 1, 0, _ * 2, 0), v.push("\na", _, _, 0, 1, 0, -_ * 2, 0), v.join(" ");
841
+ }
842
+ function circleFromPath(e) {
843
+ let g = e.split(" ");
844
+ return {
845
+ x: Number.parseFloat(g[1]),
846
+ y: Number.parseFloat(g[2]),
847
+ radius: -Number.parseFloat(g[4])
848
+ };
849
+ }
850
+ function intersectionAreaArcs(e) {
851
+ if (e.length === 0) return [];
852
+ let g = {};
853
+ return intersectionArea(e, g), g.arcs;
854
+ }
855
+ function arcsToPath(e, g) {
856
+ if (e.length === 0) return "M 0 0";
857
+ let _ = 10 ** (g || 0), v = g == null ? (e2) => e2 : (e2) => Math.round(e2 * _) / _;
858
+ if (e.length == 1) {
859
+ let g2 = e[0].circle;
860
+ return circlePath(v(g2.x), v(g2.y), v(g2.radius));
861
+ }
862
+ let y = [
863
+ "\nM",
864
+ v(e[0].p2.x),
865
+ v(e[0].p2.y)
866
+ ];
867
+ for (let g2 of e) {
868
+ let e2 = v(g2.circle.radius);
869
+ y.push("\nA", e2, e2, 0, g2.large ? 1 : 0, g2.sweep ? 1 : 0, v(g2.p1.x), v(g2.p1.y));
870
+ }
871
+ return y.join(" ");
872
+ }
873
+ function intersectionAreaPath(e, g) {
874
+ return arcsToPath(intersectionAreaArcs(e), g);
875
+ }
876
+ function layout(e, g = {}) {
877
+ let { lossFunction: _, layoutFunction: v = venn, normalize: y = true, orientation: b = Math.PI / 2, orientationOrder: x, width: S = 600, height: C = 350, padding: w = 15, scaleToFit: T = false, symmetricalTextCentre: E = false, distinct: D, round: O = 2 } = g, k = v(e, {
878
+ lossFunction: _ === "default" || !_ ? lossFunction : _ === "logRatio" ? logRatioLossFunction : _,
879
+ distinct: D
880
+ });
881
+ y && (k = normalizeSolution(k, b, x));
882
+ let A = scaleSolution(k, S, C, w, T), j = computeTextCentres(A, e, E), M = new Map(Object.keys(A).map((e2) => [e2, {
883
+ set: e2,
884
+ x: A[e2].x,
885
+ y: A[e2].y,
886
+ radius: A[e2].radius
887
+ }])), N = e.map((e2) => {
888
+ let g2 = e2.sets.map((e3) => M.get(e3)), _2 = intersectionAreaArcs(g2);
889
+ return {
890
+ circles: g2,
891
+ arcs: _2,
892
+ path: arcsToPath(_2, O),
893
+ area: e2,
894
+ has: new Set(e2.sets)
895
+ };
896
+ });
897
+ function P(e2) {
898
+ let g2 = "";
899
+ for (let _2 of N) _2.has.size > e2.length && e2.every((e3) => _2.has.has(e3)) && (g2 += " " + _2.path);
900
+ return g2;
901
+ }
902
+ return N.map(({ circles: e2, arcs: g2, path: _2, area: v2 }) => ({
903
+ data: v2,
904
+ text: j[v2.sets],
905
+ circles: e2,
906
+ arcs: g2,
907
+ path: _2,
908
+ distinctPath: _2 + P(v2.sets)
909
+ }));
910
+ }
911
+ var parser = (function() {
912
+ var e = /* @__PURE__ */ __name(function(e2, g2, _, v2) {
913
+ for (_ || (_ = {}), v2 = e2.length; v2--; _[e2[v2]] = g2) ;
914
+ return _;
915
+ }, "o"), g = [5, 8], v = [
916
+ 7,
917
+ 8,
918
+ 11,
919
+ 12,
920
+ 17,
921
+ 19,
922
+ 22,
923
+ 24
924
+ ], y = [1, 17], b = [1, 18], x = [
925
+ 7,
926
+ 8,
927
+ 11,
928
+ 12,
929
+ 14,
930
+ 15,
931
+ 16,
932
+ 17,
933
+ 19,
934
+ 20,
935
+ 21,
936
+ 22,
937
+ 24,
938
+ 27
939
+ ], S = [1, 31], C = [1, 39], w = [
940
+ 7,
941
+ 8,
942
+ 11,
943
+ 12,
944
+ 17,
945
+ 19,
946
+ 22,
947
+ 24,
948
+ 27
949
+ ], T = [1, 57], E = [1, 56], D = [1, 58], O = [1, 59], k = [1, 60], A = [
950
+ 7,
951
+ 8,
952
+ 11,
953
+ 12,
954
+ 16,
955
+ 17,
956
+ 19,
957
+ 20,
958
+ 22,
959
+ 24,
960
+ 27,
961
+ 31,
962
+ 32,
963
+ 33
964
+ ], j = {
965
+ trace: /* @__PURE__ */ __name(function() {
966
+ }, "trace"),
967
+ yy: {},
968
+ symbols_: {
969
+ error: 2,
970
+ start: 3,
971
+ optNewlines: 4,
972
+ VENN: 5,
973
+ document: 6,
974
+ EOF: 7,
975
+ NEWLINE: 8,
976
+ line: 9,
977
+ statement: 10,
978
+ TITLE: 11,
979
+ SET: 12,
980
+ identifier: 13,
981
+ BRACKET_LABEL: 14,
982
+ COLON: 15,
983
+ NUMERIC: 16,
984
+ UNION: 17,
985
+ identifierList: 18,
986
+ TEXT: 19,
987
+ IDENTIFIER: 20,
988
+ STRING: 21,
989
+ INDENT_TEXT: 22,
990
+ indentedTextTail: 23,
991
+ STYLE: 24,
992
+ stylesOpt: 25,
993
+ styleField: 26,
994
+ COMMA: 27,
995
+ styleValue: 28,
996
+ valueTokens: 29,
997
+ valueToken: 30,
998
+ HEXCOLOR: 31,
999
+ RGBCOLOR: 32,
1000
+ RGBACOLOR: 33,
1001
+ $accept: 0,
1002
+ $end: 1
1003
+ },
1004
+ terminals_: {
1005
+ 2: "error",
1006
+ 5: "VENN",
1007
+ 7: "EOF",
1008
+ 8: "NEWLINE",
1009
+ 11: "TITLE",
1010
+ 12: "SET",
1011
+ 14: "BRACKET_LABEL",
1012
+ 15: "COLON",
1013
+ 16: "NUMERIC",
1014
+ 17: "UNION",
1015
+ 19: "TEXT",
1016
+ 20: "IDENTIFIER",
1017
+ 21: "STRING",
1018
+ 22: "INDENT_TEXT",
1019
+ 24: "STYLE",
1020
+ 27: "COMMA",
1021
+ 31: "HEXCOLOR",
1022
+ 32: "RGBCOLOR",
1023
+ 33: "RGBACOLOR"
1024
+ },
1025
+ productions_: [
1026
+ 0,
1027
+ [3, 4],
1028
+ [4, 0],
1029
+ [4, 2],
1030
+ [6, 0],
1031
+ [6, 2],
1032
+ [9, 1],
1033
+ [9, 1],
1034
+ [10, 1],
1035
+ [10, 2],
1036
+ [10, 3],
1037
+ [10, 4],
1038
+ [10, 5],
1039
+ [10, 2],
1040
+ [10, 3],
1041
+ [10, 4],
1042
+ [10, 5],
1043
+ [10, 3],
1044
+ [10, 3],
1045
+ [10, 3],
1046
+ [10, 4],
1047
+ [10, 4],
1048
+ [10, 2],
1049
+ [10, 3],
1050
+ [23, 1],
1051
+ [23, 1],
1052
+ [23, 1],
1053
+ [23, 2],
1054
+ [23, 2],
1055
+ [25, 1],
1056
+ [25, 3],
1057
+ [26, 3],
1058
+ [28, 1],
1059
+ [28, 1],
1060
+ [29, 1],
1061
+ [29, 2],
1062
+ [30, 1],
1063
+ [30, 1],
1064
+ [30, 1],
1065
+ [30, 1],
1066
+ [30, 1],
1067
+ [18, 1],
1068
+ [18, 3],
1069
+ [13, 1],
1070
+ [13, 1]
1071
+ ],
1072
+ performAction: /* @__PURE__ */ __name(function(e2, g2, _, v2, y2, b2, x2) {
1073
+ var S2 = b2.length - 1;
1074
+ switch (y2) {
1075
+ case 1:
1076
+ return b2[S2 - 1];
1077
+ case 2:
1078
+ case 3:
1079
+ case 4:
1080
+ this.$ = [];
1081
+ break;
1082
+ case 5:
1083
+ b2[S2 - 1].push(b2[S2]), this.$ = b2[S2 - 1];
1084
+ break;
1085
+ case 6:
1086
+ this.$ = [];
1087
+ break;
1088
+ case 7:
1089
+ case 22:
1090
+ case 32:
1091
+ case 36:
1092
+ case 37:
1093
+ case 38:
1094
+ case 39:
1095
+ case 40:
1096
+ this.$ = b2[S2];
1097
+ break;
1098
+ case 8:
1099
+ v2.setDiagramTitle(b2[S2].substr(6)), this.$ = b2[S2].substr(6);
1100
+ break;
1101
+ case 9:
1102
+ v2.addSubsetData([b2[S2]], void 0, void 0), v2.setIndentMode && v2.setIndentMode(true);
1103
+ break;
1104
+ case 10:
1105
+ v2.addSubsetData([b2[S2 - 1]], b2[S2], void 0), v2.setIndentMode && v2.setIndentMode(true);
1106
+ break;
1107
+ case 11:
1108
+ v2.addSubsetData([b2[S2 - 2]], void 0, parseFloat(b2[S2])), v2.setIndentMode && v2.setIndentMode(true);
1109
+ break;
1110
+ case 12:
1111
+ v2.addSubsetData([b2[S2 - 3]], b2[S2 - 2], parseFloat(b2[S2])), v2.setIndentMode && v2.setIndentMode(true);
1112
+ break;
1113
+ case 13:
1114
+ if (b2[S2].length < 2) throw Error("union requires multiple identifiers");
1115
+ v2.validateUnionIdentifiers && v2.validateUnionIdentifiers(b2[S2]), v2.addSubsetData(b2[S2], void 0, void 0), v2.setIndentMode && v2.setIndentMode(true);
1116
+ break;
1117
+ case 14:
1118
+ if (b2[S2 - 1].length < 2) throw Error("union requires multiple identifiers");
1119
+ v2.validateUnionIdentifiers && v2.validateUnionIdentifiers(b2[S2 - 1]), v2.addSubsetData(b2[S2 - 1], b2[S2], void 0), v2.setIndentMode && v2.setIndentMode(true);
1120
+ break;
1121
+ case 15:
1122
+ if (b2[S2 - 2].length < 2) throw Error("union requires multiple identifiers");
1123
+ v2.validateUnionIdentifiers && v2.validateUnionIdentifiers(b2[S2 - 2]), v2.addSubsetData(b2[S2 - 2], void 0, parseFloat(b2[S2])), v2.setIndentMode && v2.setIndentMode(true);
1124
+ break;
1125
+ case 16:
1126
+ if (b2[S2 - 3].length < 2) throw Error("union requires multiple identifiers");
1127
+ v2.validateUnionIdentifiers && v2.validateUnionIdentifiers(b2[S2 - 3]), v2.addSubsetData(b2[S2 - 3], b2[S2 - 2], parseFloat(b2[S2])), v2.setIndentMode && v2.setIndentMode(true);
1128
+ break;
1129
+ case 17:
1130
+ case 18:
1131
+ case 19:
1132
+ v2.addTextData(b2[S2 - 1], b2[S2], void 0);
1133
+ break;
1134
+ case 20:
1135
+ case 21:
1136
+ v2.addTextData(b2[S2 - 2], b2[S2 - 1], b2[S2]);
1137
+ break;
1138
+ case 23:
1139
+ v2.addStyleData(b2[S2 - 1], b2[S2]);
1140
+ break;
1141
+ case 24:
1142
+ case 25:
1143
+ case 26:
1144
+ var C2 = v2.getCurrentSets();
1145
+ if (!C2) throw Error("text requires set");
1146
+ v2.addTextData(C2, b2[S2], void 0);
1147
+ break;
1148
+ case 27:
1149
+ case 28:
1150
+ var C2 = v2.getCurrentSets();
1151
+ if (!C2) throw Error("text requires set");
1152
+ v2.addTextData(C2, b2[S2 - 1], b2[S2]);
1153
+ break;
1154
+ case 29:
1155
+ case 41:
1156
+ this.$ = [b2[S2]];
1157
+ break;
1158
+ case 30:
1159
+ case 42:
1160
+ this.$ = [...b2[S2 - 2], b2[S2]];
1161
+ break;
1162
+ case 31:
1163
+ this.$ = [b2[S2 - 2], b2[S2]];
1164
+ break;
1165
+ case 33:
1166
+ this.$ = b2[S2].join(" ");
1167
+ break;
1168
+ case 34:
1169
+ this.$ = [b2[S2]];
1170
+ break;
1171
+ case 35:
1172
+ b2[S2 - 1].push(b2[S2]), this.$ = b2[S2 - 1];
1173
+ break;
1174
+ case 43:
1175
+ case 44:
1176
+ this.$ = b2[S2];
1177
+ break;
1178
+ }
1179
+ }, "anonymous"),
1180
+ table: [
1181
+ e(g, [2, 2], {
1182
+ 3: 1,
1183
+ 4: 2
1184
+ }),
1185
+ { 1: [3] },
1186
+ {
1187
+ 5: [1, 3],
1188
+ 8: [1, 4]
1189
+ },
1190
+ e(v, [2, 4], { 6: 5 }),
1191
+ e(g, [2, 3]),
1192
+ {
1193
+ 7: [1, 6],
1194
+ 8: [1, 8],
1195
+ 9: 7,
1196
+ 10: 9,
1197
+ 11: [1, 10],
1198
+ 12: [1, 11],
1199
+ 17: [1, 12],
1200
+ 19: [1, 13],
1201
+ 22: [1, 14],
1202
+ 24: [1, 15]
1203
+ },
1204
+ { 1: [2, 1] },
1205
+ e(v, [2, 5]),
1206
+ e(v, [2, 6]),
1207
+ e(v, [2, 7]),
1208
+ e(v, [2, 8]),
1209
+ {
1210
+ 13: 16,
1211
+ 20: y,
1212
+ 21: b
1213
+ },
1214
+ {
1215
+ 13: 20,
1216
+ 18: 19,
1217
+ 20: y,
1218
+ 21: b
1219
+ },
1220
+ {
1221
+ 13: 20,
1222
+ 18: 21,
1223
+ 20: y,
1224
+ 21: b
1225
+ },
1226
+ {
1227
+ 16: [1, 25],
1228
+ 20: [1, 23],
1229
+ 21: [1, 24],
1230
+ 23: 22
1231
+ },
1232
+ {
1233
+ 13: 20,
1234
+ 18: 26,
1235
+ 20: y,
1236
+ 21: b
1237
+ },
1238
+ e(v, [2, 9], {
1239
+ 14: [1, 27],
1240
+ 15: [1, 28]
1241
+ }),
1242
+ e(x, [2, 43]),
1243
+ e(x, [2, 44]),
1244
+ e(v, [2, 13], {
1245
+ 14: [1, 29],
1246
+ 15: [1, 30],
1247
+ 27: S
1248
+ }),
1249
+ e(x, [2, 41]),
1250
+ {
1251
+ 16: [1, 34],
1252
+ 20: [1, 32],
1253
+ 21: [1, 33],
1254
+ 27: S
1255
+ },
1256
+ e(v, [2, 22]),
1257
+ e(v, [2, 24], { 14: [1, 35] }),
1258
+ e(v, [2, 25], { 14: [1, 36] }),
1259
+ e(v, [2, 26]),
1260
+ {
1261
+ 20: C,
1262
+ 25: 37,
1263
+ 26: 38,
1264
+ 27: S
1265
+ },
1266
+ e(v, [2, 10], { 15: [1, 40] }),
1267
+ { 16: [1, 41] },
1268
+ e(v, [2, 14], { 15: [1, 42] }),
1269
+ { 16: [1, 43] },
1270
+ {
1271
+ 13: 44,
1272
+ 20: y,
1273
+ 21: b
1274
+ },
1275
+ e(v, [2, 17], { 14: [1, 45] }),
1276
+ e(v, [2, 18], { 14: [1, 46] }),
1277
+ e(v, [2, 19]),
1278
+ e(v, [2, 27]),
1279
+ e(v, [2, 28]),
1280
+ e(v, [2, 23], { 27: [1, 47] }),
1281
+ e(w, [2, 29]),
1282
+ { 15: [1, 48] },
1283
+ { 16: [1, 49] },
1284
+ e(v, [2, 11]),
1285
+ { 16: [1, 50] },
1286
+ e(v, [2, 15]),
1287
+ e(x, [2, 42]),
1288
+ e(v, [2, 20]),
1289
+ e(v, [2, 21]),
1290
+ {
1291
+ 20: C,
1292
+ 26: 51
1293
+ },
1294
+ {
1295
+ 16: T,
1296
+ 20: E,
1297
+ 21: [1, 53],
1298
+ 28: 52,
1299
+ 29: 54,
1300
+ 30: 55,
1301
+ 31: D,
1302
+ 32: O,
1303
+ 33: k
1304
+ },
1305
+ e(v, [2, 12]),
1306
+ e(v, [2, 16]),
1307
+ e(w, [2, 30]),
1308
+ e(w, [2, 31]),
1309
+ e(w, [2, 32]),
1310
+ e(w, [2, 33], {
1311
+ 30: 61,
1312
+ 16: T,
1313
+ 20: E,
1314
+ 31: D,
1315
+ 32: O,
1316
+ 33: k
1317
+ }),
1318
+ e(A, [2, 34]),
1319
+ e(A, [2, 36]),
1320
+ e(A, [2, 37]),
1321
+ e(A, [2, 38]),
1322
+ e(A, [2, 39]),
1323
+ e(A, [2, 40]),
1324
+ e(A, [2, 35])
1325
+ ],
1326
+ defaultActions: { 6: [2, 1] },
1327
+ parseError: /* @__PURE__ */ __name(function(e2, g2) {
1328
+ if (g2.recoverable) this.trace(e2);
1329
+ else {
1330
+ var _ = Error(e2);
1331
+ throw _.hash = g2, _;
1332
+ }
1333
+ }, "parseError"),
1334
+ parse: /* @__PURE__ */ __name(function(e2) {
1335
+ var g2 = this, v2 = [0], y2 = [], b2 = [null], x2 = [], S2 = this.table, C2 = "", w2 = 0, T2 = 0, E2 = 0, D2 = 2, O2 = 1, k2 = x2.slice.call(arguments, 1), A2 = Object.create(this.lexer), j2 = { yy: {} };
1336
+ for (var M2 in this.yy) Object.prototype.hasOwnProperty.call(this.yy, M2) && (j2.yy[M2] = this.yy[M2]);
1337
+ A2.setInput(e2, j2.yy), j2.yy.lexer = A2, j2.yy.parser = this, A2.yylloc === void 0 && (A2.yylloc = {});
1338
+ var N = A2.yylloc;
1339
+ x2.push(N);
1340
+ var P = A2.options && A2.options.ranges;
1341
+ typeof j2.yy.parseError == "function" ? this.parseError = j2.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
1342
+ function F(e3) {
1343
+ v2.length -= 2 * e3, b2.length -= e3, x2.length -= e3;
1344
+ }
1345
+ __name(F, "popStack");
1346
+ function I() {
1347
+ var e3 = y2.pop() || A2.lex() || O2;
1348
+ return typeof e3 != "number" && (e3 instanceof Array && (y2 = e3, e3 = y2.pop()), e3 = g2.symbols_[e3] || e3), e3;
1349
+ }
1350
+ __name(I, "lex");
1351
+ for (var L, R, z, B, V, H = {}, U, W, G, K; ; ) {
1352
+ if (z = v2[v2.length - 1], this.defaultActions[z] ? B = this.defaultActions[z] : (L ?? (L = I()), B = S2[z] && S2[z][L]), B === void 0 || !B.length || !B[0]) {
1353
+ var q = "";
1354
+ for (U in K = [], S2[z]) this.terminals_[U] && U > D2 && K.push("'" + this.terminals_[U] + "'");
1355
+ q = A2.showPosition ? "Parse error on line " + (w2 + 1) + ":\n" + A2.showPosition() + "\nExpecting " + K.join(", ") + ", got '" + (this.terminals_[L] || L) + "'" : "Parse error on line " + (w2 + 1) + ": Unexpected " + (L == O2 ? "end of input" : "'" + (this.terminals_[L] || L) + "'"), this.parseError(q, {
1356
+ text: A2.match,
1357
+ token: this.terminals_[L] || L,
1358
+ line: A2.yylineno,
1359
+ loc: N,
1360
+ expected: K
1361
+ });
1362
+ }
1363
+ if (B[0] instanceof Array && B.length > 1) throw Error("Parse Error: multiple actions possible at state: " + z + ", token: " + L);
1364
+ switch (B[0]) {
1365
+ case 1:
1366
+ v2.push(L), b2.push(A2.yytext), x2.push(A2.yylloc), v2.push(B[1]), L = null, R ? (L = R, R = null) : (T2 = A2.yyleng, C2 = A2.yytext, w2 = A2.yylineno, N = A2.yylloc, E2 > 0 && E2--);
1367
+ break;
1368
+ case 2:
1369
+ if (W = this.productions_[B[1]][1], H.$ = b2[b2.length - W], H._$ = {
1370
+ first_line: x2[x2.length - (W || 1)].first_line,
1371
+ last_line: x2[x2.length - 1].last_line,
1372
+ first_column: x2[x2.length - (W || 1)].first_column,
1373
+ last_column: x2[x2.length - 1].last_column
1374
+ }, P && (H._$.range = [x2[x2.length - (W || 1)].range[0], x2[x2.length - 1].range[1]]), V = this.performAction.apply(H, [
1375
+ C2,
1376
+ T2,
1377
+ w2,
1378
+ j2.yy,
1379
+ B[1],
1380
+ b2,
1381
+ x2
1382
+ ].concat(k2)), V !== void 0) return V;
1383
+ W && (v2 = v2.slice(0, -1 * W * 2), b2 = b2.slice(0, -1 * W), x2 = x2.slice(0, -1 * W)), v2.push(this.productions_[B[1]][0]), b2.push(H.$), x2.push(H._$), G = S2[v2[v2.length - 2]][v2[v2.length - 1]], v2.push(G);
1384
+ break;
1385
+ case 3:
1386
+ return true;
1387
+ }
1388
+ }
1389
+ return true;
1390
+ }, "parse")
1391
+ };
1392
+ j.lexer = /* @__PURE__ */ (function() {
1393
+ return {
1394
+ EOF: 1,
1395
+ parseError: /* @__PURE__ */ __name(function(e2, g2) {
1396
+ if (this.yy.parser) this.yy.parser.parseError(e2, g2);
1397
+ else throw Error(e2);
1398
+ }, "parseError"),
1399
+ setInput: /* @__PURE__ */ __name(function(e2, g2) {
1400
+ return this.yy = g2 || this.yy || {}, this._input = e2, this._more = this._backtrack = this.done = false, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = {
1401
+ first_line: 1,
1402
+ first_column: 0,
1403
+ last_line: 1,
1404
+ last_column: 0
1405
+ }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this;
1406
+ }, "setInput"),
1407
+ input: /* @__PURE__ */ __name(function() {
1408
+ var e2 = this._input[0];
1409
+ return this.yytext += e2, this.yyleng++, this.offset++, this.match += e2, this.matched += e2, e2.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), e2;
1410
+ }, "input"),
1411
+ unput: /* @__PURE__ */ __name(function(e2) {
1412
+ var g2 = e2.length, _ = e2.split(/(?:\r\n?|\n)/g);
1413
+ this._input = e2 + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - g2), this.offset -= g2;
1414
+ var v2 = this.match.split(/(?:\r\n?|\n)/g);
1415
+ this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), _.length - 1 && (this.yylineno -= _.length - 1);
1416
+ var y2 = this.yylloc.range;
1417
+ return this.yylloc = {
1418
+ first_line: this.yylloc.first_line,
1419
+ last_line: this.yylineno + 1,
1420
+ first_column: this.yylloc.first_column,
1421
+ last_column: _ ? (_.length === v2.length ? this.yylloc.first_column : 0) + v2[v2.length - _.length].length - _[0].length : this.yylloc.first_column - g2
1422
+ }, this.options.ranges && (this.yylloc.range = [y2[0], y2[0] + this.yyleng - g2]), this.yyleng = this.yytext.length, this;
1423
+ }, "unput"),
1424
+ more: /* @__PURE__ */ __name(function() {
1425
+ return this._more = true, this;
1426
+ }, "more"),
1427
+ reject: /* @__PURE__ */ __name(function() {
1428
+ if (this.options.backtrack_lexer) this._backtrack = true;
1429
+ else return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
1430
+ text: "",
1431
+ token: null,
1432
+ line: this.yylineno
1433
+ });
1434
+ return this;
1435
+ }, "reject"),
1436
+ less: /* @__PURE__ */ __name(function(e2) {
1437
+ this.unput(this.match.slice(e2));
1438
+ }, "less"),
1439
+ pastInput: /* @__PURE__ */ __name(function() {
1440
+ var e2 = this.matched.substr(0, this.matched.length - this.match.length);
1441
+ return (e2.length > 20 ? "..." : "") + e2.substr(-20).replace(/\n/g, "");
1442
+ }, "pastInput"),
1443
+ upcomingInput: /* @__PURE__ */ __name(function() {
1444
+ var e2 = this.match;
1445
+ return e2.length < 20 && (e2 += this._input.substr(0, 20 - e2.length)), (e2.substr(0, 20) + (e2.length > 20 ? "..." : "")).replace(/\n/g, "");
1446
+ }, "upcomingInput"),
1447
+ showPosition: /* @__PURE__ */ __name(function() {
1448
+ var e2 = this.pastInput(), g2 = Array(e2.length + 1).join("-");
1449
+ return e2 + this.upcomingInput() + "\n" + g2 + "^";
1450
+ }, "showPosition"),
1451
+ test_match: /* @__PURE__ */ __name(function(e2, g2) {
1452
+ var _, v2, y2;
1453
+ if (this.options.backtrack_lexer && (y2 = {
1454
+ yylineno: this.yylineno,
1455
+ yylloc: {
1456
+ first_line: this.yylloc.first_line,
1457
+ last_line: this.last_line,
1458
+ first_column: this.yylloc.first_column,
1459
+ last_column: this.yylloc.last_column
1460
+ },
1461
+ yytext: this.yytext,
1462
+ match: this.match,
1463
+ matches: this.matches,
1464
+ matched: this.matched,
1465
+ yyleng: this.yyleng,
1466
+ offset: this.offset,
1467
+ _more: this._more,
1468
+ _input: this._input,
1469
+ yy: this.yy,
1470
+ conditionStack: this.conditionStack.slice(0),
1471
+ done: this.done
1472
+ }, this.options.ranges && (y2.yylloc.range = this.yylloc.range.slice(0))), v2 = e2[0].match(/(?:\r\n?|\n).*/g), v2 && (this.yylineno += v2.length), this.yylloc = {
1473
+ first_line: this.yylloc.last_line,
1474
+ last_line: this.yylineno + 1,
1475
+ first_column: this.yylloc.last_column,
1476
+ last_column: v2 ? v2[v2.length - 1].length - v2[v2.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + e2[0].length
1477
+ }, this.yytext += e2[0], this.match += e2[0], this.matches = e2, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = false, this._backtrack = false, this._input = this._input.slice(e2[0].length), this.matched += e2[0], _ = this.performAction.call(this, this.yy, this, g2, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = false), _) return _;
1478
+ if (this._backtrack) {
1479
+ for (var b2 in y2) this[b2] = y2[b2];
1480
+ return false;
1481
+ }
1482
+ return false;
1483
+ }, "test_match"),
1484
+ next: /* @__PURE__ */ __name(function() {
1485
+ if (this.done) return this.EOF;
1486
+ this._input || (this.done = true);
1487
+ var e2, g2, _, v2;
1488
+ this._more || (this.yytext = "", this.match = "");
1489
+ for (var y2 = this._currentRules(), b2 = 0; b2 < y2.length; b2++) if (_ = this._input.match(this.rules[y2[b2]]), _ && (!g2 || _[0].length > g2[0].length)) {
1490
+ if (g2 = _, v2 = b2, this.options.backtrack_lexer) {
1491
+ if (e2 = this.test_match(_, y2[b2]), e2 !== false) return e2;
1492
+ if (this._backtrack) {
1493
+ g2 = false;
1494
+ continue;
1495
+ } else return false;
1496
+ } else if (!this.options.flex) break;
1497
+ }
1498
+ return g2 ? (e2 = this.test_match(g2, y2[v2]), e2 === false ? false : e2) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
1499
+ text: "",
1500
+ token: null,
1501
+ line: this.yylineno
1502
+ });
1503
+ }, "next"),
1504
+ lex: /* @__PURE__ */ __name(function() {
1505
+ return this.next() || this.lex();
1506
+ }, "lex"),
1507
+ begin: /* @__PURE__ */ __name(function(e2) {
1508
+ this.conditionStack.push(e2);
1509
+ }, "begin"),
1510
+ popState: /* @__PURE__ */ __name(function() {
1511
+ return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0];
1512
+ }, "popState"),
1513
+ _currentRules: /* @__PURE__ */ __name(function() {
1514
+ return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules;
1515
+ }, "_currentRules"),
1516
+ topState: /* @__PURE__ */ __name(function(e2) {
1517
+ return e2 = this.conditionStack.length - 1 - Math.abs(e2 || 0), e2 >= 0 ? this.conditionStack[e2] : "INITIAL";
1518
+ }, "topState"),
1519
+ pushState: /* @__PURE__ */ __name(function(e2) {
1520
+ this.begin(e2);
1521
+ }, "pushState"),
1522
+ stateStackSize: /* @__PURE__ */ __name(function() {
1523
+ return this.conditionStack.length;
1524
+ }, "stateStackSize"),
1525
+ options: { "case-insensitive": true },
1526
+ performAction: /* @__PURE__ */ __name(function(e2, g2, _, v2) {
1527
+ switch (_) {
1528
+ case 0:
1529
+ break;
1530
+ case 1:
1531
+ break;
1532
+ case 2:
1533
+ break;
1534
+ case 3:
1535
+ if (e2.getIndentMode && e2.getIndentMode()) return e2.consumeIndentText = true, this.begin("INITIAL"), 22;
1536
+ break;
1537
+ case 4:
1538
+ break;
1539
+ case 5:
1540
+ e2.setIndentMode && e2.setIndentMode(false), this.begin("INITIAL"), this.unput(g2.yytext);
1541
+ break;
1542
+ case 6:
1543
+ return this.begin("bol"), 8;
1544
+ case 7:
1545
+ break;
1546
+ case 8:
1547
+ break;
1548
+ case 9:
1549
+ return 7;
1550
+ case 10:
1551
+ return 11;
1552
+ case 11:
1553
+ return 5;
1554
+ case 12:
1555
+ return 12;
1556
+ case 13:
1557
+ return 17;
1558
+ case 14:
1559
+ if (e2.consumeIndentText) e2.consumeIndentText = false;
1560
+ else return 19;
1561
+ break;
1562
+ case 15:
1563
+ return 24;
1564
+ case 16:
1565
+ return g2.yytext = g2.yytext.slice(2, -2), 14;
1566
+ case 17:
1567
+ return g2.yytext = g2.yytext.slice(1, -1).trim(), 14;
1568
+ case 18:
1569
+ return 16;
1570
+ case 19:
1571
+ return 31;
1572
+ case 20:
1573
+ return 33;
1574
+ case 21:
1575
+ return 32;
1576
+ case 22:
1577
+ return 20;
1578
+ case 23:
1579
+ return 21;
1580
+ case 24:
1581
+ return 27;
1582
+ case 25:
1583
+ return 15;
1584
+ }
1585
+ }, "anonymous"),
1586
+ rules: [
1587
+ /^(?:%%(?!\{)[^\n]*)/i,
1588
+ /^(?:[^\}]%%[^\n]*)/i,
1589
+ /^(?:[ \t]+(?=[\n\r]))/i,
1590
+ /^(?:[ \t]+(?=text\b))/i,
1591
+ /^(?:[ \t]+)/i,
1592
+ /^(?:[^ \t\n\r])/i,
1593
+ /^(?:[\n\r]+)/i,
1594
+ /^(?:%%[^\n]*)/i,
1595
+ /^(?:[ \t]+)/i,
1596
+ /^(?:$)/i,
1597
+ /^(?:title\s[^#\n;]+)/i,
1598
+ /^(?:venn-beta\b)/i,
1599
+ /^(?:set\b)/i,
1600
+ /^(?:union\b)/i,
1601
+ /^(?:text\b)/i,
1602
+ /^(?:style\b)/i,
1603
+ /^(?:\["[^\"]*"\])/i,
1604
+ /^(?:\[[^\]\"]+\])/i,
1605
+ /^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,
1606
+ /^(?:#[0-9a-fA-F]{3,8})/i,
1607
+ /^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,
1608
+ /^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,
1609
+ /^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,
1610
+ /^(?:"[^\"]*")/i,
1611
+ /^(?:,)/i,
1612
+ /^(?::)/i
1613
+ ],
1614
+ conditions: {
1615
+ bol: {
1616
+ rules: [
1617
+ 0,
1618
+ 1,
1619
+ 2,
1620
+ 3,
1621
+ 4,
1622
+ 5,
1623
+ 6,
1624
+ 7,
1625
+ 8,
1626
+ 9,
1627
+ 10,
1628
+ 11,
1629
+ 12,
1630
+ 13,
1631
+ 14,
1632
+ 15,
1633
+ 16,
1634
+ 17,
1635
+ 18,
1636
+ 19,
1637
+ 20,
1638
+ 21,
1639
+ 22,
1640
+ 23,
1641
+ 24,
1642
+ 25
1643
+ ],
1644
+ inclusive: true
1645
+ },
1646
+ INITIAL: {
1647
+ rules: [
1648
+ 0,
1649
+ 1,
1650
+ 6,
1651
+ 7,
1652
+ 8,
1653
+ 9,
1654
+ 10,
1655
+ 11,
1656
+ 12,
1657
+ 13,
1658
+ 14,
1659
+ 15,
1660
+ 16,
1661
+ 17,
1662
+ 18,
1663
+ 19,
1664
+ 20,
1665
+ 21,
1666
+ 22,
1667
+ 23,
1668
+ 24,
1669
+ 25
1670
+ ],
1671
+ inclusive: true
1672
+ }
1673
+ }
1674
+ };
1675
+ })();
1676
+ function M() {
1677
+ this.yy = {};
1678
+ }
1679
+ return __name(M, "Parser"), M.prototype = j, j.Parser = M, new M();
1680
+ })();
1681
+ parser.parser = parser;
1682
+ var venn_default = parser, subsets = [], textNodes = [], styleEntries = [], knownSets = /* @__PURE__ */ new Set(), currentSets, indentMode = false, addSubsetData = /* @__PURE__ */ __name((e, g, _) => {
1683
+ let v = normalizeIdentifierList(e).sort(), y = _ ?? 10 / e.length ** 2;
1684
+ currentSets = v, v.length === 1 && knownSets.add(v[0]), subsets.push({
1685
+ sets: v,
1686
+ size: y,
1687
+ label: g ? normalizeText(g) : void 0
1688
+ });
1689
+ }, "addSubsetData"), getSubsetData = /* @__PURE__ */ __name(() => subsets, "getSubsetData"), normalizeText = /* @__PURE__ */ __name((e) => {
1690
+ let g = e.trim();
1691
+ return g.length >= 2 && g.startsWith('"') && g.endsWith('"') ? g.slice(1, -1) : g;
1692
+ }, "normalizeText"), normalizeStyleValue = /* @__PURE__ */ __name((e) => e && normalizeText(e), "normalizeStyleValue"), addTextData = /* @__PURE__ */ __name((e, g, _) => {
1693
+ let v = normalizeText(g);
1694
+ textNodes.push({
1695
+ sets: normalizeIdentifierList(e).sort(),
1696
+ id: v,
1697
+ label: _ ? normalizeText(_) : void 0
1698
+ });
1699
+ }, "addTextData"), addStyleData = /* @__PURE__ */ __name((e, g) => {
1700
+ let _ = normalizeIdentifierList(e).sort(), v = {};
1701
+ for (let [e2, _2] of g) v[e2] = normalizeStyleValue(_2) ?? _2;
1702
+ styleEntries.push({
1703
+ targets: _,
1704
+ styles: v
1705
+ });
1706
+ }, "addStyleData"), getStyleData = /* @__PURE__ */ __name(() => styleEntries, "getStyleData"), normalizeIdentifierList = /* @__PURE__ */ __name((e) => e.map((e2) => normalizeText(e2)), "normalizeIdentifierList"), validateUnionIdentifiers = /* @__PURE__ */ __name((e) => {
1707
+ let g = normalizeIdentifierList(e).filter((e2) => !knownSets.has(e2));
1708
+ if (g.length > 0) throw Error(`unknown set identifier: ${g.join(", ")}`);
1709
+ }, "validateUnionIdentifiers"), getTextData = /* @__PURE__ */ __name(() => textNodes, "getTextData"), getCurrentSets = /* @__PURE__ */ __name(() => currentSets, "getCurrentSets"), getIndentMode = /* @__PURE__ */ __name(() => indentMode, "getIndentMode"), setIndentMode = /* @__PURE__ */ __name((e) => {
1710
+ indentMode = e;
1711
+ }, "setIndentMode"), DEFAULT_VENN_CONFIG = defaultConfig_default.venn;
1712
+ function getConfig2() {
1713
+ return cleanAndMerge(DEFAULT_VENN_CONFIG, getConfig().venn);
1714
+ }
1715
+ __name(getConfig2, "getConfig");
1716
+ var db = {
1717
+ getConfig: getConfig2,
1718
+ clear: /* @__PURE__ */ __name(() => {
1719
+ clear(), subsets.length = 0, textNodes.length = 0, styleEntries.length = 0, knownSets.clear(), currentSets = void 0, indentMode = false;
1720
+ }, "customClear"),
1721
+ setAccTitle,
1722
+ getAccTitle,
1723
+ setDiagramTitle,
1724
+ getDiagramTitle,
1725
+ getAccDescription,
1726
+ setAccDescription,
1727
+ addSubsetData,
1728
+ getSubsetData,
1729
+ addTextData,
1730
+ addStyleData,
1731
+ validateUnionIdentifiers,
1732
+ getTextData,
1733
+ getStyleData,
1734
+ getCurrentSets,
1735
+ getIndentMode,
1736
+ setIndentMode
1737
+ }, styles_default = /* @__PURE__ */ __name((e) => `
1738
+ .venn-title {
1739
+ font-size: 32px;
1740
+ fill: ${e.vennTitleTextColor};
1741
+ font-family: ${e.fontFamily};
1742
+ }
1743
+
1744
+ .venn-circle text {
1745
+ font-size: 48px;
1746
+ font-family: ${e.fontFamily};
1747
+ }
1748
+
1749
+ .venn-intersection text {
1750
+ font-size: 48px;
1751
+ fill: ${e.vennSetTextColor};
1752
+ font-family: ${e.fontFamily};
1753
+ }
1754
+
1755
+ .venn-text-node {
1756
+ font-family: ${e.fontFamily};
1757
+ color: ${e.vennSetTextColor};
1758
+ }
1759
+ `, "getStyles");
1760
+ function buildStyleByKey(e) {
1761
+ let g = /* @__PURE__ */ new Map();
1762
+ for (let _ of e) {
1763
+ let e2 = _.targets.join("|"), v = g.get(e2);
1764
+ v ? Object.assign(v, _.styles) : g.set(e2, { ..._.styles });
1765
+ }
1766
+ return g;
1767
+ }
1768
+ __name(buildStyleByKey, "buildStyleByKey");
1769
+ var draw = /* @__PURE__ */ __name((e, _, y, b) => {
1770
+ var _a, _b, _c;
1771
+ let x = b.db, S = (_a = x.getConfig) == null ? void 0 : _a.call(x), { themeVariables: E, look: O, handDrawnSeed: k } = getConfig(), A = O === "handDrawn", j = [
1772
+ E.venn1,
1773
+ E.venn2,
1774
+ E.venn3,
1775
+ E.venn4,
1776
+ E.venn5,
1777
+ E.venn6,
1778
+ E.venn7,
1779
+ E.venn8
1780
+ ].filter(Boolean), F = (_b = x.getDiagramTitle) == null ? void 0 : _b.call(x), I = x.getSubsetData(), L = x.getTextData(), R = buildStyleByKey(x.getStyleData()), z = ensurePairwiseSubsets(I), B = (S == null ? void 0 : S.width) ?? 800, V = (S == null ? void 0 : S.height) ?? 450, H = B / 1600, U = F ? 48 * H : 0, W = E.primaryTextColor ?? E.textColor, G = selectSvgElement(_);
1781
+ G.attr("viewBox", `0 0 ${B} ${V}`), F && G.append("text").text(F).attr("class", "venn-title").attr("font-size", `${32 * H}px`).attr("text-anchor", "middle").attr("dominant-baseline", "middle").attr("x", "50%").attr("y", 32 * H).style("fill", E.vennTitleTextColor || E.titleColor);
1782
+ let K = select_default(document.createElement("div")), q = VennDiagram().width(B).height(V - U);
1783
+ K.datum(z).call(q);
1784
+ let J = A ? at.svg(K.select("svg").node()) : void 0, Y = layout(z, {
1785
+ width: B,
1786
+ height: V - U,
1787
+ padding: (S == null ? void 0 : S.padding) ?? 15
1788
+ }), X = /* @__PURE__ */ new Map();
1789
+ for (let e2 of Y) {
1790
+ let g = stableSetsKey([...e2.data.sets].sort());
1791
+ X.set(g, e2);
1792
+ }
1793
+ L.length > 0 && renderTextNodes(S, X, K, L, H, R);
1794
+ let Z = is_dark_default(E.background || "#f4f4f4");
1795
+ K.selectAll(".venn-circle").each(function(e2, _2) {
1796
+ var _a2;
1797
+ let y2 = select_default(this), b2 = stableSetsKey([...e2.sets].sort()), x2 = R.get(b2), S2 = (x2 == null ? void 0 : x2.fill) || j[_2 % j.length] || E.primaryColor;
1798
+ y2.classed(`venn-set-${_2 % 8}`, true);
1799
+ let C = (x2 == null ? void 0 : x2["fill-opacity"]) ?? 0.1, w = (x2 == null ? void 0 : x2.stroke) || S2, D = (x2 == null ? void 0 : x2["stroke-width"]) || `${5 * H}`;
1800
+ if (A && J) {
1801
+ let e3 = X.get(b2);
1802
+ if (e3 && e3.circles.length > 0) {
1803
+ let g = e3.circles[0], v = J.circle(g.x, g.y, g.radius * 2, {
1804
+ roughness: 0.7,
1805
+ seed: k,
1806
+ fill: transparentize_default(S2, 0.7),
1807
+ fillStyle: "hachure",
1808
+ fillWeight: 2,
1809
+ hachureGap: 8,
1810
+ hachureAngle: -41 + _2 * 60,
1811
+ stroke: w,
1812
+ strokeWidth: parseFloat(String(D))
1813
+ });
1814
+ y2.select("path").remove(), (_a2 = y2.node()) == null ? void 0 : _a2.insertBefore(v, y2.select("text").node());
1815
+ }
1816
+ } else y2.select("path").style("fill", S2).style("fill-opacity", C).style("stroke", w).style("stroke-width", D).style("stroke-opacity", 0.95);
1817
+ let O2 = (x2 == null ? void 0 : x2.color) || (Z ? lighten_default(S2, 30) : darken_default(S2, 30));
1818
+ y2.select("text").style("font-size", `${48 * H}px`).style("fill", O2);
1819
+ }), A && J ? K.selectAll(".venn-intersection").each(function(e2) {
1820
+ var _a2;
1821
+ let _2 = select_default(this), v = stableSetsKey([...e2.sets].sort()), y2 = R.get(v), b2 = y2 == null ? void 0 : y2.fill;
1822
+ if (b2) {
1823
+ let e3 = _2.select("path"), g = e3.attr("d");
1824
+ if (g) {
1825
+ let _3 = J.path(g, {
1826
+ roughness: 0.7,
1827
+ seed: k,
1828
+ fill: transparentize_default(b2, 0.3),
1829
+ fillStyle: "cross-hatch",
1830
+ fillWeight: 2,
1831
+ hachureGap: 6,
1832
+ hachureAngle: 60,
1833
+ stroke: "none"
1834
+ }), v2 = e3.node();
1835
+ (_a2 = v2 == null ? void 0 : v2.parentNode) == null ? void 0 : _a2.insertBefore(_3, v2), e3.remove();
1836
+ }
1837
+ } else _2.select("path").style("fill-opacity", 0);
1838
+ _2.select("text").style("font-size", `${48 * H}px`).style("fill", (y2 == null ? void 0 : y2.color) ?? E.vennSetTextColor ?? W);
1839
+ }) : (K.selectAll(".venn-intersection text").style("font-size", `${48 * H}px`).style("fill", (e2) => {
1840
+ var _a2;
1841
+ let g = stableSetsKey([...e2.sets].sort());
1842
+ return ((_a2 = R.get(g)) == null ? void 0 : _a2.color) ?? E.vennSetTextColor ?? W;
1843
+ }), K.selectAll(".venn-intersection path").style("fill-opacity", (e2) => {
1844
+ var _a2;
1845
+ let g = stableSetsKey([...e2.sets].sort());
1846
+ return ((_a2 = R.get(g)) == null ? void 0 : _a2.fill) ? 1 : 0;
1847
+ }).style("fill", (e2) => {
1848
+ var _a2;
1849
+ let g = stableSetsKey([...e2.sets].sort());
1850
+ return ((_a2 = R.get(g)) == null ? void 0 : _a2.fill) ?? "transparent";
1851
+ }));
1852
+ let Q = G.append("g").attr("transform", `translate(0, ${U})`), $ = K.select("svg").node();
1853
+ if ($ && "childNodes" in $) for (let e2 of [...$.childNodes]) (_c = Q.node()) == null ? void 0 : _c.appendChild(e2);
1854
+ configureSvgSize(G, V, B, (S == null ? void 0 : S.useMaxWidth) ?? true);
1855
+ }, "draw");
1856
+ function stableSetsKey(e) {
1857
+ return e.join("|");
1858
+ }
1859
+ __name(stableSetsKey, "stableSetsKey");
1860
+ function renderTextNodes(e, g, _, v, y, b) {
1861
+ var _a;
1862
+ let x = (e == null ? void 0 : e.useDebugLayout) ?? false, S = _.select("svg").append("g").attr("class", "venn-text-nodes"), C = /* @__PURE__ */ new Map();
1863
+ for (let e2 of v) {
1864
+ let g2 = stableSetsKey(e2.sets), _2 = C.get(g2);
1865
+ _2 ? _2.push(e2) : C.set(g2, [e2]);
1866
+ }
1867
+ for (let [e2, _2] of C.entries()) {
1868
+ let v2 = g.get(e2);
1869
+ if (!(v2 == null ? void 0 : v2.text)) continue;
1870
+ let C2 = v2.text.x, w = v2.text.y, T = Math.min(...v2.circles.map((e3) => e3.radius)), E = Math.min(...v2.circles.map((e3) => e3.radius - Math.hypot(C2 - e3.x, w - e3.y))), D = Number.isFinite(E) ? Math.max(0, E) : 0;
1871
+ D === 0 && Number.isFinite(T) && (D = T * 0.6);
1872
+ let O = S.append("g").attr("class", "venn-text-area").attr("font-size", `${40 * y}px`);
1873
+ x && O.append("circle").attr("class", "venn-text-debug-circle").attr("cx", C2).attr("cy", w).attr("r", D).attr("fill", "none").attr("stroke", "purple").attr("stroke-width", 1.5 * y).attr("stroke-dasharray", `${6 * y} ${4 * y}`);
1874
+ let k = Math.max(80 * y, D * 2 * 0.95), A = Math.max(60 * y, D * 2 * 0.95), j = (v2.data.label && v2.data.label.length > 0 ? Math.min(32 * y, D * 0.25) : 0) + (_2.length <= 2 ? 30 * y : 0), M = C2 - k / 2, N = w - A / 2 + j, P = Math.max(1, Math.ceil(Math.sqrt(_2.length))), F = Math.max(1, Math.ceil(_2.length / P)), I = k / P, L = A / F;
1875
+ for (let [e3, g2] of _2.entries()) {
1876
+ let _3 = e3 % P, v3 = Math.floor(e3 / P), S2 = M + I * (_3 + 0.5), C3 = N + L * (v3 + 0.5);
1877
+ x && O.append("rect").attr("class", "venn-text-debug-cell").attr("x", M + I * _3).attr("y", N + L * v3).attr("width", I).attr("height", L).attr("fill", "none").attr("stroke", "teal").attr("stroke-width", 1 * y).attr("stroke-dasharray", `${4 * y} ${3 * y}`);
1878
+ let w2 = I * 0.9, T2 = L * 0.9, E2 = O.append("foreignObject").attr("class", "venn-text-node-fo").attr("width", w2).attr("height", T2).attr("x", S2 - w2 / 2).attr("y", C3 - T2 / 2).attr("overflow", "visible"), D2 = (_a = b.get(g2.id)) == null ? void 0 : _a.color, k2 = E2.append("xhtml:span").attr("class", "venn-text-node").style("display", "flex").style("width", "100%").style("height", "100%").style("white-space", "normal").style("align-items", "center").style("justify-content", "center").style("text-align", "center").style("overflow-wrap", "normal").style("word-break", "normal").text(g2.label ?? g2.id);
1879
+ D2 && k2.style("color", D2);
1880
+ }
1881
+ }
1882
+ }
1883
+ __name(renderTextNodes, "renderTextNodes");
1884
+ function ensurePairwiseSubsets(e) {
1885
+ let g = new Set(e.map((e2) => [...e2.sets].sort().join("|"))), _ = new Map(e.filter((e2) => e2.sets.length === 1 && e2.size !== void 0).map((e2) => [e2.sets[0], e2.size])), v = [];
1886
+ for (let y of e) {
1887
+ if (y.sets.length < 3) continue;
1888
+ let e2 = [...y.sets].sort();
1889
+ for (let y2 = 0; y2 < e2.length - 1; y2++) for (let b = y2 + 1; b < e2.length; b++) {
1890
+ let x = [e2[y2], e2[b]], S = x.join("|");
1891
+ if (!g.has(S)) {
1892
+ g.add(S);
1893
+ let e3 = _.get(x[0]), y3 = _.get(x[1]), b2 = e3 !== void 0 && y3 !== void 0 ? Math.min(e3, y3) / 4 : 2.5;
1894
+ v.push({
1895
+ sets: x,
1896
+ size: b2,
1897
+ label: ""
1898
+ });
1899
+ }
1900
+ }
1901
+ }
1902
+ return v.length > 0 ? [...e, ...v] : e;
1903
+ }
1904
+ __name(ensurePairwiseSubsets, "ensurePairwiseSubsets");
1905
+ var diagram = {
1906
+ parser: venn_default,
1907
+ db,
1908
+ renderer: { draw },
1909
+ styles: styles_default
1910
+ };
1911
+ export {
1912
+ diagram
1913
+ };