@marimo-team/islands 0.25.2-dev12 → 0.25.2-dev120

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 (393) hide show
  1. package/dist/{ConnectedDataExplorerComponent-CqhQmp74.js → ConnectedDataExplorerComponent-CNSxdKyJ.js} +15 -15
  2. package/dist/{ErrorBoundary-YddQ6YHW.js → ErrorBoundary-CD3naLCk.js} +12 -12
  3. package/dist/{ImageComparisonComponent-Cpfz30OZ.js → ImageComparisonComponent-uU8FSKZE.js} +3 -3
  4. package/dist/{Plot-CTyjbQDT.js → Plot-DdYOe1UK.js} +2 -2
  5. package/dist/{abnfDiagram-VCTEODGH-aLGD44M7.js → abnfDiagram-VCTEODGH-DQDjNXt3.js} +3 -3
  6. package/dist/{any-language-editor-dqxlUDlT.js → any-language-editor-B9REGlD9.js} +8 -8
  7. package/dist/{apl-BYaaig9_.js → apl-GEW9-ZP1.js} +1 -1
  8. package/dist/{architectureDiagram-5GKGNRK7-BGL5P81u.js → architectureDiagram-5GKGNRK7-Nmls7Wxn.js} +5 -5
  9. package/dist/{asciiarmor-GKQFJXQG.js → asciiarmor-BWNxzkG7.js} +1 -1
  10. package/dist/{asn1-BsSb7HP5.js → asn1-Bcn2QutK.js} +1 -1
  11. package/dist/assets/__vite-browser-external-BXYkiFsk.js +1 -0
  12. package/dist/assets/worker-HPY9fbhz.js +114 -0
  13. package/dist/{asterisk-B3I8SNb5.js → asterisk-lE36-hJK.js} +1 -1
  14. package/dist/{blockDiagram-I7D4REHJ-CvBmppdy.js → blockDiagram-I7D4REHJ-Cg25UrxT.js} +9 -9
  15. package/dist/{brainfuck-DXjk3bQe.js → brainfuck-BQCYDheZ.js} +1 -1
  16. package/dist/{button-B0Xgl-Qn.js → button-CvjkwdSk.js} +304 -287
  17. package/dist/{c4Diagram-7LVT6UL2-EceL4_jH.js → c4Diagram-7LVT6UL2-BxFgrnNV.js} +7 -7
  18. package/dist/{capabilities-D7Ad8-zw.js → capabilities-CQ5IjhzL.js} +1 -1
  19. package/dist/{cells-5ppES-Un.js → cells-CuYwqnV8.js} +5950 -4893
  20. package/dist/{channel-z7HZXHwv.js → channel-CPObtJXj.js} +1 -1
  21. package/dist/{chat-ui-Dv2V95k6.js → chat-ui-C6oDg4Zu.js} +1595 -1402
  22. package/dist/{check-DGZ74tV2.js → check-EDwSwP89.js} +1 -1
  23. package/dist/{chunk-4HAMMTFA-BPTTOOC5.js → chunk-4HAMMTFA-D4eFPyFh.js} +5 -5
  24. package/dist/{chunk-75Z2AOVW-C4AOleKf.js → chunk-75Z2AOVW-D7gxIs2Q.js} +1 -1
  25. package/dist/{chunk-DU6HZSFF-1TwWR6gh.js → chunk-DU6HZSFF-BwiyaNpg.js} +2 -2
  26. package/dist/{chunk-F27PBJKO-DMI1PBe4.js → chunk-F27PBJKO-ufseIn5y.js} +1 -1
  27. package/dist/{chunk-GMAD6QVW-vStrMz2P.js → chunk-GMAD6QVW-BhaJx0X3.js} +3 -3
  28. package/dist/{chunk-GVQU2GXP-2HwWgs4u.js → chunk-GVQU2GXP-Cwbt-lF0.js} +2 -2
  29. package/dist/{chunk-IMKFNOWR-Cm3RgLDj.js → chunk-IMKFNOWR-CoIFEo-1.js} +6 -6
  30. package/dist/{chunk-L3NEJ4N5-RhC7i0I2.js → chunk-L3NEJ4N5-n-zgIVSy.js} +5 -5
  31. package/dist/{chunk-OSK3NFVY-CZV09N-U.js → chunk-OSK3NFVY-DXa-Cxbn.js} +6 -6
  32. package/dist/{chunk-P2QGCYS3-0TAWai9C.js → chunk-P2QGCYS3-B_Zd3-X0.js} +1 -1
  33. package/dist/{chunk-POPQ4Y6H-Cc3_56GX.js → chunk-POPQ4Y6H-hYOXbYH_.js} +1 -1
  34. package/dist/{chunk-PWAF6VOD-lNxB9k8z.js → chunk-PWAF6VOD-CQw5qATZ.js} +1 -1
  35. package/dist/{chunk-SHT3W25Y-DedDYSP5.js → chunk-SHT3W25Y-lHiGx3ZC.js} +8 -8
  36. package/dist/{chunk-SVP7TREG-B2SFkCAL.js → chunk-SVP7TREG-BvsHIrY_.js} +2 -2
  37. package/dist/{chunk-TICWLB2K-DB6hjNOL.js → chunk-TICWLB2K-BC8YIm_n.js} +6 -6
  38. package/dist/{chunk-YOKDWASO-DrWbKnxA.js → chunk-YOKDWASO-DPZk8vhS.js} +6 -6
  39. package/dist/classDiagram-ZZMXUADV-Bt98lkkv.js +30 -0
  40. package/dist/classDiagram-v2-VYDZK3BY-D9bfbcC3.js +30 -0
  41. package/dist/{clike-E2lFbGVj.js → clike-CxK9W55Z.js} +1 -1
  42. package/dist/{clojure-Dn_K4RlK.js → clojure-Dzcvwpxk.js} +1 -1
  43. package/dist/{cmake-DpN2Top5.js → cmake-DYr-71zp.js} +1 -1
  44. package/dist/{cobol-Chf22-GM.js → cobol-DC3g37Kq.js} +1 -1
  45. package/dist/{code-visibility-C0zE3g0U.js → code-visibility-CU1gPw4S.js} +7 -7
  46. package/dist/{coffeescript-BVe1OiD9.js → coffeescript-C-eFwH5N.js} +1 -1
  47. package/dist/{common-BkjS959w.js → common-DvxFYUnn.js} +9639 -9291
  48. package/dist/{commonlisp-DxoBG7fU.js → commonlisp-CyaNXrJR.js} +1 -1
  49. package/dist/{compiler-runtime-Cj8ZWiNS.js → compiler-runtime-CldRdSsv.js} +2 -2
  50. package/dist/{copy-icon-qmRg_VTX.js → copy-icon-Ft7t9bqz.js} +6 -6
  51. package/dist/{crystal-DCM3yc4r.js → crystal-ih5ax5tQ.js} +1 -1
  52. package/dist/{css-DkZ9mMyI.js → css-CN_wP7_R.js} +1 -1
  53. package/dist/{cynefinDiagram-5FMLGOSQ-DzaZEqgD.js → cynefinDiagram-5FMLGOSQ-CgWra7wt.js} +3 -3
  54. package/dist/{cypher-Drw_8U5I.js → cypher-CqGRcmZo.js} +1 -1
  55. package/dist/{d-CsVGcKMF.js → d-Cj0sOW2z.js} +1 -1
  56. package/dist/{dagre-GXQ25YYZ-Cjf5GjU3.js → dagre-GXQ25YYZ-CFZ8-35c.js} +10 -10
  57. package/dist/{data-grid-overlay-editor-CqoIqvNa.js → data-grid-overlay-editor-BlhT6OQj.js} +7 -7
  58. package/dist/{data-grid-types-BucVmDDp.js → data-grid-types-BH_r7g7l.js} +1 -1
  59. package/dist/{diagram-S7CK7UJ4-IhLt_khx.js → diagram-S7CK7UJ4-lCNQrW7d.js} +4 -4
  60. package/dist/{diagram-UQ7AKVKN-CQc6KLPB.js → diagram-UQ7AKVKN-CQPQ6pP_.js} +3 -3
  61. package/dist/{diagram-VSXAHHWV-CR7BJygZ.js → diagram-VSXAHHWV-BJWcVVJY.js} +2 -2
  62. package/dist/{diagram-VX7I27RA-DHmW9N1T.js → diagram-VX7I27RA-Cf3b0llz.js} +5 -5
  63. package/dist/{diagram-Z3DM3KII-zVKsg-Ty.js → diagram-Z3DM3KII-Bt4QLrpn.js} +3 -3
  64. package/dist/{dialog-CILKhbsG.js → dialog-CEBFZNyc.js} +29 -29
  65. package/dist/{diff-CBikYCUF.js → diff-B_hUkiat.js} +1 -1
  66. package/dist/{dist-Df0wKI0F.js → dist-BK4Oj99o.js} +1 -1
  67. package/dist/{dist-BVGtK7Ht.js → dist-BLfKmR-l.js} +1 -1
  68. package/dist/{dist-B8D7McG3.js → dist-BMQf5zIS.js} +46 -46
  69. package/dist/{dist-C2KzV-vf.js → dist-BorMD-uX.js} +2 -2
  70. package/dist/{dist-Cs2FijYk.js → dist-BuaRHxOc.js} +2 -2
  71. package/dist/{dist-DPcEtqmG.js → dist-Bvs24R_E.js} +47 -47
  72. package/dist/{dist-lA1Cttkb.js → dist-C8fAKSH1.js} +41 -41
  73. package/dist/{dist-DszxuxS1.js → dist-CLdpGQVr.js} +2 -2
  74. package/dist/{dist-CO1AwwG_.js → dist-CN8zI-XC.js} +209 -209
  75. package/dist/{dist-D1PpnuZB.js → dist-CN_BeG2I.js} +1 -1
  76. package/dist/{dist-CPGxfVGX.js → dist-CSJ0MDRw.js} +1 -1
  77. package/dist/{dist-Cm3iAFMD.js → dist-CSbh1PNP.js} +3 -3
  78. package/dist/{dist-9x1ZRe-e.js → dist-Cg7gzw-a.js} +2 -2
  79. package/dist/{dist-B1vYLK28.js → dist-CkTTIdBe.js} +345 -345
  80. package/dist/{dist-BRxfaJgs.js → dist-CrSP_H1M.js} +296 -296
  81. package/dist/{dist-C2wDlYdD.js → dist-D-wwqlzJ.js} +2 -2
  82. package/dist/{dist-BtKIs9N-.js → dist-D6d86eNJ.js} +1 -1
  83. package/dist/{dist-DHOTQar0.js → dist-DBtSl3sf.js} +1 -1
  84. package/dist/{dist-KzZ7WELx.js → dist-DiDibOYr.js} +120 -120
  85. package/dist/{dist-Kxgjxakw.js → dist-DoE4XJBC.js} +1277 -1222
  86. package/dist/{dist-CcyKTBTF.js → dist-DpBpA_n1.js} +2 -2
  87. package/dist/{dist-BHCHt1NI.js → dist-F8Ep36rk.js} +1 -1
  88. package/dist/{dist-C8xMLVYi.js → dist-OR1OnN-y.js} +44 -44
  89. package/dist/{dist-1HDa70oE.js → dist-PXYI_yuP.js} +3 -3
  90. package/dist/{dist-CMh_W4y4.js → dist-diIx5qJW.js} +2 -2
  91. package/dist/{dockerfile-DJnSntVB.js → dockerfile-D0VKN500.js} +2 -2
  92. package/dist/dropdown-menu-CP_qCYHC.js +4678 -0
  93. package/dist/{dtd-BHa4v0Bn.js → dtd-B8FGSWWe.js} +1 -1
  94. package/dist/{dylan-BypL2Zz8.js → dylan-DbIBYIrw.js} +1 -1
  95. package/dist/{ebnf-5guncNu-.js → ebnf-D-YbYLdk.js} +1 -1
  96. package/dist/{ebnfDiagram-PWID7BFC-DDd5hCRC.js → ebnfDiagram-PWID7BFC-D3NAyPFY.js} +3 -3
  97. package/dist/{ecl-iRcVIKYZ.js → ecl-DBmkdWAd.js} +1 -1
  98. package/dist/{eiffel-BEqF9aU4.js → eiffel-CcWSDDzK.js} +1 -1
  99. package/dist/{elm-DYcfNE9c.js → elm-MC-b8a6C.js} +1 -1
  100. package/dist/{erDiagram-RLTQ6QDP-D10NP0eI.js → erDiagram-RLTQ6QDP-Tlu09_Nm.js} +12 -12
  101. package/dist/{erlang-BtAuIoF0.js → erlang-AdO1-xtV.js} +1 -1
  102. package/dist/error-banner-Da600cwz.js +362 -0
  103. package/dist/{error-entries-B2Ux3Z2X.js → error-entries-zfHL6H60.js} +2 -2
  104. package/dist/{esm-h8f7-1CJ.js → esm-AMFssoNp.js} +380 -374
  105. package/dist/{esm-BElI3qKH.js → esm-D2gTsXEV.js} +579 -579
  106. package/dist/{factor-3nzOwLuN.js → factor-Ys-13HOP.js} +2 -2
  107. package/dist/{fcl-C90TGnJJ.js → fcl-DnwditDr.js} +1 -1
  108. package/dist/{feedback-button-BU771zKS.js → feedback-button-uUyCXX6t.js} +13 -13
  109. package/dist/flowDiagram-HODETNUW-CAYbpJmV.js +16 -0
  110. package/dist/{formats-Q9gwlLyD.js → formats-DLtvJPnj.js} +6 -6
  111. package/dist/{forth-DEaRrLUi.js → forth-DiMuIXFe.js} +1 -1
  112. package/dist/{fortran-Bv6JRUjY.js → fortran-hkrF2eM4.js} +1 -1
  113. package/dist/{ganttDiagram-EL5Y4UJY-cRRaDt88.js → ganttDiagram-EL5Y4UJY-BQT16JSc.js} +2 -2
  114. package/dist/{gas-JNerWj3-.js → gas-DlhqN9k8.js} +1 -1
  115. package/dist/{gherkin-CSrl-H70.js → gherkin-0SlhEZ3t.js} +1 -1
  116. package/dist/{gitGraphDiagram-WWUBYQGX-Pox5k9-Y.js → gitGraphDiagram-WWUBYQGX-D5nSIzdE.js} +2 -2
  117. package/dist/{glide-data-editor-D9TpbHEU.js → glide-data-editor-BLIzt2Q0.js} +60 -60
  118. package/dist/{glide-utils-CzzWU59p.js → glide-utils-DJyqh0EM.js} +4 -4
  119. package/dist/{globals-nXV4QUKg.js → globals-BLGM0Nfo.js} +3 -3
  120. package/dist/{groovy-X7euO_vE.js → groovy-YhcTMyvX.js} +1 -1
  121. package/dist/{haskell-C48Z70Az.js → haskell-CodLxrtT.js} +1 -1
  122. package/dist/{haxe-CAUWMmwR.js → haxe-CiRWNFkH.js} +1 -1
  123. package/dist/{highlighted-body-KPVGNVTW-Ad3MKZ18.js → highlighted-body-KPVGNVTW-zwjq21tf.js} +4 -4
  124. package/dist/{html-to-image-BZBwkkDG.js → html-to-image-BJJsbNZ1.js} +547 -569
  125. package/dist/{http-BrSBnhDH.js → http-Bh6HhdNR.js} +1 -1
  126. package/dist/{idl-BXuPleZv.js → idl-DZgBq75I.js} +1 -1
  127. package/dist/{infoDiagram-27XIBGKW-DrYu3UZC.js → infoDiagram-27XIBGKW-XrDxhr0x.js} +2 -2
  128. package/dist/{ishikawaDiagram-5VMMS53U-pmkGQJsA.js → ishikawaDiagram-5VMMS53U-CD1muzov.js} +3 -3
  129. package/dist/{javascript-B4EPWJf_.js → javascript-BfNytHiM.js} +1 -1
  130. package/dist/{journeyDiagram-3NMN7TZE-EPJDPlt0.js → journeyDiagram-3NMN7TZE-BaLqn-dZ.js} +2 -2
  131. package/dist/{jsx-runtime-DgDPJV9S.js → jsx-runtime-3BD1kT0s.js} +1 -1
  132. package/dist/{julia-ke9Kh8b7.js → julia--tLIAG7q.js} +1 -1
  133. package/dist/{kanban-definition-UXKFOSKX-wWGD9VLW.js → kanban-definition-UXKFOSKX-Dg9W142_.js} +9 -9
  134. package/dist/{katex-BNCmKUol.js → katex-BIdZGsyO.js} +141 -116
  135. package/dist/label-BDKF3Afc.js +281 -0
  136. package/dist/{livescript-Ce4uqGAC.js → livescript-CVPfYnY_.js} +1 -1
  137. package/dist/{loader-C9OUkMrj.js → loader-BQOfjTIJ.js} +1 -1
  138. package/dist/{lua-D6fti_Jk.js → lua-4Fa-T-qq.js} +1 -1
  139. package/dist/main.js +7036 -6893
  140. package/dist/{mathematica-DcEpZ3Vj.js → mathematica-CtYAy6GG.js} +1 -1
  141. package/dist/{mbox-DFBbOu0X.js → mbox-D0w9Ah1C.js} +1 -1
  142. package/dist/{mermaid-Dfvntf3s.js → mermaid-CiAXjLpA.js} +57 -57
  143. package/dist/mermaid-HWGCJPDP-ByCsZnYF.js +2 -0
  144. package/dist/{mhchem-BEc7A1or.js → mhchem-CdWPJK6g.js} +1 -1
  145. package/dist/{mindmap-definition-YA3MSWOX-C2f1VIBR.js → mindmap-definition-YA3MSWOX-DgCidgYJ.js} +11 -11
  146. package/dist/{mirc-CqeibO3N.js → mirc-De9aSAZM.js} +1 -1
  147. package/dist/{mllike-D54QZYTP.js → mllike-BbugeaY_.js} +1 -1
  148. package/dist/{modelica-DuML2-8V.js → modelica-BjJwWw1F.js} +1 -1
  149. package/dist/{mscgen-CJmKwp3b.js → mscgen-DwiRH5ma.js} +1 -1
  150. package/dist/{mumps-DaVgFtkd.js → mumps--plbDM9o.js} +1 -1
  151. package/dist/{nginx-BXN1rqI0.js → nginx-C4Df7REc.js} +1 -1
  152. package/dist/{nsis-CMfRqf0V.js → nsis-fiiOqLc3.js} +7 -7
  153. package/dist/{ntriples-BiOGlMDR.js → ntriples-jV77I4k8.js} +1 -1
  154. package/dist/{number-overlay-editor-BH4Uo_sZ.js → number-overlay-editor-DaA_6U-c.js} +5 -5
  155. package/dist/{octave-CgVnzxKk.js → octave-Cztd01tF.js} +1 -1
  156. package/dist/{oz-B2mky97X.js → oz-Bl8o3BDl.js} +1 -1
  157. package/dist/{pascal-BoZhBf6s.js → pascal-BO5JqysR.js} +1 -1
  158. package/dist/{pegDiagram-XKGWAZYB-D6v5dz4M.js → pegDiagram-XKGWAZYB-coOYYKB6.js} +3 -3
  159. package/dist/{perl-DjzMqXtt.js → perl-Drlh9s6m.js} +1 -1
  160. package/dist/{pieDiagram-E7YTZNPT-BwFAhpYD.js → pieDiagram-E7YTZNPT-BnXTc3bj.js} +3 -3
  161. package/dist/{pig-B2mB-01d.js → pig-BWGR8wZw.js} +1 -1
  162. package/dist/{powershell-D0zT88Aj.js → powershell-DT99xlz_.js} +1 -1
  163. package/dist/{process-output-BSsWzfnY.js → process-output-C1GGFU6Q.js} +4 -4
  164. package/dist/{properties-3_5qCgOj.js → properties-Q-rkxld0.js} +1 -1
  165. package/dist/{protobuf-Dgoxfi1H.js → protobuf-DKyWZbs7.js} +1 -1
  166. package/dist/{pug-CNRdd8oG.js → pug-42ZJUbEC.js} +2 -2
  167. package/dist/{puppet-DzILxZfz.js → puppet-B4UozHhh.js} +1 -1
  168. package/dist/purify.es-DMv5zIkJ.js +866 -0
  169. package/dist/{python-AfVdMn_l.js → python-DREjAV__.js} +1 -1
  170. package/dist/{q-C6p-CGWh.js → q-Bi63IpBO.js} +1 -1
  171. package/dist/{quadrantDiagram-AXDQQJYC--kqzFC3w.js → quadrantDiagram-AXDQQJYC-Ccw0xMjN.js} +1 -1
  172. package/dist/{r-CzKF1D2X.js → r-DSwXWKMR.js} +1 -1
  173. package/dist/{railroadDiagram-O6MQD6OU-D6eOFr6Z.js → railroadDiagram-O6MQD6OU-B28-u83n.js} +3 -3
  174. package/dist/{react-dom-BUgJ-ab_.js → react-dom-DUmH0GXv.js} +29 -21
  175. package/dist/{react-ofJbxM4x.js → react-sHtZdjeP.js} +103 -94
  176. package/dist/{react-vega-ewj7q_U5.js → react-vega-BED0DjiB.js} +3 -3
  177. package/dist/{requirementDiagram-BXWQKSXE-CHYsMgDR.js → requirementDiagram-BXWQKSXE-CdYCTMu0.js} +11 -11
  178. package/dist/{reveal-component-_A40NW1c.js → reveal-component-Cjr_Ej89.js} +906 -878
  179. package/dist/{rpm-Bx7FkjTO.js → rpm-DPb1DeKM.js} +1 -1
  180. package/dist/{ruby-BMzgq2bf.js → ruby-U7fZA4DP.js} +2 -2
  181. package/dist/{sankeyDiagram-P5KCCOFB-BdzhT0BM.js → sankeyDiagram-P5KCCOFB-ELvOcnZH.js} +1 -1
  182. package/dist/{sas-ClGVnK3F.js → sas-CLk1JpTn.js} +1 -1
  183. package/dist/{scheme-C0MXqXep.js → scheme-CT-2k2Tl.js} +1 -1
  184. package/dist/select-BButFi-d.js +1344 -0
  185. package/dist/{sequenceDiagram-WJ2MYXX4-BPAknhBp.js → sequenceDiagram-WJ2MYXX4-CM3aRAe_.js} +4 -4
  186. package/dist/{shell-CiQZv6oG.js → shell-BLO7fcsk.js} +1 -1
  187. package/dist/{sieve-BiIMePvV.js → sieve-nG3C7WNH.js} +1 -1
  188. package/dist/{simple-mode-8ETW2RS6.js → simple-mode-C683Q7or.js} +1 -1
  189. package/dist/{smalltalk-9-llftyG.js → smalltalk-BROcZybA.js} +1 -1
  190. package/dist/{solr-CxCKEuwq.js → solr-mVltHNc5.js} +1 -1
  191. package/dist/{sparql-BRmy7pzx.js → sparql-Cv1Ksr4v.js} +1 -1
  192. package/dist/{spec-D62vWpMT.js → spec-BwarBpUJ.js} +116 -135
  193. package/dist/{spreadsheet-UCNUIGsn.js → spreadsheet-BwTnp5K_.js} +1 -1
  194. package/dist/{sql-D0hSGZ-H.js → sql-CjLt0122.js} +1 -1
  195. package/dist/{stateDiagram-D77RDMKH-Cq249IQ4.js → stateDiagram-D77RDMKH-DOZUMVj8.js} +13 -13
  196. package/dist/stateDiagram-v2-MP3YSRHH-CISYxma6.js +30 -0
  197. package/dist/{stex-UeT_Aofp.js → stex-Btf3omL8.js} +1 -1
  198. package/dist/style.css +1 -1
  199. package/dist/{stylus-Fi4waA2H.js → stylus-Dt4VvLXL.js} +1 -1
  200. package/dist/{swift-NqPyaBye.js → swift-DHsn_CVI.js} +1 -1
  201. package/dist/{swimlanes-42K2YHIH-Bh_S_HKD.js → swimlanes-42K2YHIH-BkSppxp8.js} +10 -10
  202. package/dist/swimlanesDiagram-VR7AAH4N-c8G5pGxC.js +30 -0
  203. package/dist/{swiper-component-DkV7T44B.js → swiper-component-DKntyn8p.js} +5 -5
  204. package/dist/{tcl-B4f0xfmM.js → tcl-CV0OLBOl.js} +1 -1
  205. package/dist/{textile-CnNbnPTe.js → textile-D320oKVM.js} +1 -1
  206. package/dist/{tiddlywiki-CSGSOg38.js → tiddlywiki-BVVNvfy4.js} +1 -1
  207. package/dist/{tiki-9F02WBA6.js → tiki-BF2aDPlB.js} +1 -1
  208. package/dist/{timeline-definition-24CTP7MA-ByNMgBE7.js → timeline-definition-24CTP7MA-CaMQayqK.js} +3 -3
  209. package/dist/{toDate-DWVp6uE1.js → toDate-Dwcg_x_5.js} +5 -6
  210. package/dist/{toast-DcoJGS3-.js → toast-B9UMEi8u.js} +161 -165
  211. package/dist/{toml-AesZ6RBt.js → toml-CaUN7UHo.js} +1 -1
  212. package/dist/{tooltip-Bi36DgYh.js → tooltip-BO1REbqs.js} +548 -584
  213. package/dist/{troff-DlfvveK1.js → troff-DQUFcClZ.js} +1 -1
  214. package/dist/{ttcn--YVSkGs_.js → ttcn-CQL1duJS.js} +1 -1
  215. package/dist/{ttcn-cfg-Bb1Knl_J.js → ttcn-cfg-BMmEFJPu.js} +1 -1
  216. package/dist/{turtle-DC24v1bz.js → turtle-C3esgsRr.js} +1 -1
  217. package/dist/{use-restore-focus-ZgG5Br63.js → use-restore-focus-BEM7sFWl.js} +2430 -2007
  218. package/dist/{use-vega-container-remeasure-4DwJbPWu.js → use-vega-container-remeasure-Bz4PZMtt.js} +2 -2
  219. package/dist/{useAsyncData-BD7NLQ3_.js → useAsyncData-Deh5kszT.js} +3 -3
  220. package/dist/{useDateFormatter-D8XWr8lL.js → useDateFormatter-D8XruNGG.js} +53 -32
  221. package/dist/{useDeepCompareMemoize-CawMGSRU.js → useDeepCompareMemoize-DXwzRINI.js} +2 -2
  222. package/dist/{useIframeCapabilities-BUMBOpsM.js → useIframeCapabilities-DBETvvPl.js} +2 -2
  223. package/dist/{useLifecycle-3vGhRa1o.js → useLifecycle-j7D9uD1o.js} +6 -6
  224. package/dist/{useTheme-BOw801nZ.js → useTheme-CRnjkku0.js} +7 -7
  225. package/dist/{vb-Dpc8vhvF.js → vb-RK1eDXRl.js} +1 -1
  226. package/dist/{vbscript-B-Y1XnZe.js → vbscript-BCOeM0de.js} +1 -1
  227. package/dist/{vega-component-9siY74NS.js → vega-component-DLBAQLSf.js} +14 -14
  228. package/dist/{vega-embed-container-sSR5hAsy.js → vega-embed-container-BNHE18G9.js} +5 -5
  229. package/dist/{velocity-DHMu9kc-.js → velocity-CZKOFbOI.js} +1 -1
  230. package/dist/{vennDiagram-4TSXK5OY-DY8CySdO.js → vennDiagram-4TSXK5OY-CF8pfaK3.js} +3 -3
  231. package/dist/{verilog-DhiEaoUl.js → verilog-DqQTzVn8.js} +1 -1
  232. package/dist/{vhdl-D4X23YKO.js → vhdl-vQr2bfmi.js} +1 -1
  233. package/dist/{wardleyDiagram-VM6X3IG4-DYC1AFni.js → wardleyDiagram-VM6X3IG4-dGPu39d-.js} +3 -3
  234. package/dist/{webidl-SyzNxWpJ.js → webidl-DzX7N40e.js} +1 -1
  235. package/dist/{xquery-BC2R4Hk6.js → xquery-Cw_Q_hGR.js} +1 -1
  236. package/dist/{xychartDiagram-S5SC5T6Z-Df8LLnuY.js → xychartDiagram-S5SC5T6Z-CP6-9q56.js} +5 -5
  237. package/dist/{yacas-DLNXPMmH.js → yacas-DiC4jJBE.js} +1 -1
  238. package/dist/{z80-CDXWHOO6.js → z80-CUOQDEJO.js} +1 -1
  239. package/package.json +38 -37
  240. package/src/__tests__/mount.test.ts +6 -6
  241. package/src/components/chat/__tests__/chat-history-popover.test.tsx +157 -0
  242. package/src/components/chat/chat-history-popover.tsx +98 -17
  243. package/src/components/chat/chat-panel.tsx +29 -0
  244. package/src/components/chat/tool-call/__tests__/tool-result.test.tsx +56 -0
  245. package/src/components/chat/tool-call/tool-result.tsx +3 -3
  246. package/src/components/data-table/TableTopBar.tsx +4 -0
  247. package/src/components/data-table/__tests__/export-actions.test.tsx +1111 -14
  248. package/src/components/data-table/__tests__/pagination.test.tsx +85 -1
  249. package/src/components/data-table/__tests__/schemas.test.ts +57 -0
  250. package/src/components/data-table/charts/__tests__/schemas.test.ts +25 -0
  251. package/src/components/data-table/charts/__tests__/slider-field.test.tsx +54 -0
  252. package/src/components/data-table/charts/__tests__/spec.test.ts +26 -23
  253. package/src/components/data-table/charts/components/form-fields.tsx +3 -1
  254. package/src/components/data-table/charts/constants.ts +11 -10
  255. package/src/components/data-table/charts/types.ts +1 -0
  256. package/src/components/data-table/data-table.tsx +3 -0
  257. package/src/components/data-table/export-actions.tsx +365 -81
  258. package/src/components/data-table/pagination.tsx +16 -2
  259. package/src/components/data-table/schemas.ts +90 -14
  260. package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +32 -46
  261. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +29 -40
  262. package/src/components/editor/actions/pair-with-agent-commands.ts +3 -4
  263. package/src/components/editor/actions/pair-with-agent-modal.tsx +4 -7
  264. package/src/components/editor/actions/useRestartKernel.tsx +2 -2
  265. package/src/components/editor/alerts/__tests__/connection-notice.test.tsx +224 -17
  266. package/src/components/editor/alerts/connection-details.tsx +61 -0
  267. package/src/components/editor/alerts/connection-notice.tsx +46 -53
  268. package/src/components/editor/alerts/startup-progress.tsx +73 -129
  269. package/src/components/editor/app-container.tsx +2 -2
  270. package/src/components/editor/boundary/__tests__/ErrorBoundary.test.tsx +2 -2
  271. package/src/components/editor/cell/CreateCellButton.tsx +2 -2
  272. package/src/components/editor/cell/DeleteButton.tsx +2 -2
  273. package/src/components/editor/cell/RunButton.tsx +3 -3
  274. package/src/components/editor/cell/StopButton.tsx +2 -2
  275. package/src/components/editor/chrome/components/__tests__/feedback-button.test.tsx +4 -4
  276. package/src/components/editor/chrome/components/feedback-button.tsx +3 -3
  277. package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +8 -8
  278. package/src/components/editor/chrome/panels/__tests__/{sandbox-details.test.tsx → runtime-details.test.tsx} +94 -22
  279. package/src/components/editor/chrome/panels/__tests__/sandbox-recovery.test.tsx +4 -4
  280. package/src/components/editor/chrome/panels/packages-panel.tsx +8 -29
  281. package/src/components/editor/chrome/panels/{sandbox-details-state.ts → runtime-details-state.ts} +1 -1
  282. package/src/components/editor/chrome/panels/{sandbox-panel.tsx → runtime-panel.tsx} +38 -66
  283. package/src/components/editor/chrome/panels/runtime-status-toggle.tsx +56 -0
  284. package/src/components/editor/chrome/panels/sandbox-controller.tsx +2 -2
  285. package/src/components/editor/chrome/wrapper/app-chrome.tsx +3 -3
  286. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +2 -2
  287. package/src/components/editor/controls/Controls.tsx +3 -3
  288. package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +2 -2
  289. package/src/components/editor/header/__tests__/status.test.tsx +4 -4
  290. package/src/components/editor/header/app-header.tsx +2 -2
  291. package/src/components/editor/header/status.tsx +3 -3
  292. package/src/components/editor/navigation/__tests__/navigation.test.ts +8 -8
  293. package/src/components/editor/output/console/ConsoleOutput.tsx +5 -3
  294. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +18 -0
  295. package/src/components/ui/__tests__/slider.test.tsx +37 -0
  296. package/src/components/ui/progress-stages.tsx +114 -0
  297. package/src/components/ui/slider.tsx +2 -0
  298. package/src/core/ai/__tests__/state.test.ts +120 -0
  299. package/src/core/ai/state.ts +36 -10
  300. package/src/core/cells/__tests__/document-roundtrip.test.ts +16 -0
  301. package/src/core/codemirror/copilot/__tests__/completion-integration.test.ts +447 -0
  302. package/src/core/codemirror/copilot/__tests__/inline-completion.test.ts +395 -0
  303. package/src/core/codemirror/copilot/__tests__/language-server.test.ts +511 -2
  304. package/src/core/codemirror/copilot/__tests__/rpc-cancellation.test.ts +201 -0
  305. package/src/core/codemirror/copilot/extension.ts +22 -11
  306. package/src/core/codemirror/copilot/language-server.ts +109 -60
  307. package/src/core/codemirror/language/embedded/__tests__/embedded-python.test.ts +138 -26
  308. package/src/core/codemirror/language/embedded/embedded-python.ts +47 -13
  309. package/src/core/codemirror/language/embedded/latex.ts +20 -13
  310. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +106 -5
  311. package/src/core/codemirror/lsp/notebook-lsp.ts +16 -2
  312. package/src/core/codemirror/readonly/__tests__/extension.test.ts +6 -6
  313. package/src/core/codemirror/readonly/extension.ts +2 -2
  314. package/src/core/config/pair.ts +0 -1
  315. package/src/core/datasets/__tests__/data-source-discovery.test.ts +2 -2
  316. package/src/core/edit-app.tsx +5 -1
  317. package/src/core/export/hooks.ts +2 -2
  318. package/src/core/islands/bootstrap.ts +1 -0
  319. package/src/core/kernel/session.ts +9 -0
  320. package/src/core/network/__tests__/api.test.ts +114 -1
  321. package/src/core/network/__tests__/connection.test.ts +3 -3
  322. package/src/core/network/api.ts +3 -2
  323. package/src/core/network/connection-notice.ts +5 -5
  324. package/src/core/network/connection.ts +9 -9
  325. package/src/core/network/requests-lazy.ts +2 -2
  326. package/src/core/packages/__tests__/useSandboxController.test.tsx +2 -2
  327. package/src/core/packages/useSandboxController.ts +6 -6
  328. package/src/core/runtime/__tests__/adapter.test.ts +6 -6
  329. package/src/core/runtime/adapter.ts +7 -7
  330. package/src/core/runtime/config.ts +2 -2
  331. package/src/core/saving/filename.ts +2 -2
  332. package/src/core/saving/save-component.tsx +5 -5
  333. package/src/core/saving/useAutoSave.ts +2 -2
  334. package/src/core/wasm/__tests__/bootstrap.test.ts +33 -1
  335. package/src/core/wasm/worker/bootstrap.ts +22 -3
  336. package/src/core/websocket/__tests__/useMarimoKernelConnection.hook.test.tsx +30 -25
  337. package/src/core/websocket/__tests__/useMarimoKernelConnection.test.ts +5 -5
  338. package/src/core/websocket/connection-utils.ts +21 -21
  339. package/src/core/websocket/types.ts +8 -9
  340. package/src/core/websocket/useMarimoKernelConnection.tsx +33 -22
  341. package/src/css/katex-css.test.ts +166 -0
  342. package/src/css/katex.min.css +175 -169
  343. package/src/hooks/__tests__/useEventListener.test.tsx +45 -1
  344. package/src/hooks/useEventListener.ts +6 -1
  345. package/src/mount.tsx +2 -2
  346. package/src/plugins/core/__test__/registerReactComponent.test.ts +55 -0
  347. package/src/plugins/core/registerReactComponent.tsx +3 -1
  348. package/src/plugins/impl/CheckboxPlugin.tsx +1 -1
  349. package/src/plugins/impl/DataTablePlugin.tsx +23 -2
  350. package/src/plugins/impl/DatePickerPlugin.tsx +5 -3
  351. package/src/plugins/impl/DateRangePlugin.tsx +5 -3
  352. package/src/plugins/impl/DateTimePickerPlugin.tsx +5 -3
  353. package/src/plugins/impl/DropdownPlugin.tsx +1 -1
  354. package/src/plugins/impl/MultiselectPlugin.tsx +1 -1
  355. package/src/plugins/impl/NumberPlugin.tsx +1 -1
  356. package/src/plugins/impl/RadioPlugin.tsx +5 -1
  357. package/src/plugins/impl/RangeSliderPlugin.tsx +1 -1
  358. package/src/plugins/impl/SearchableSelect.tsx +1 -1
  359. package/src/plugins/impl/SliderPlugin.tsx +5 -1
  360. package/src/plugins/impl/SwitchPlugin.tsx +6 -1
  361. package/src/plugins/impl/TextAreaPlugin.tsx +23 -4
  362. package/src/plugins/impl/TextInputPlugin.tsx +10 -2
  363. package/src/plugins/impl/__test__/slider-labels.test.tsx +136 -0
  364. package/src/plugins/impl/__test__/text-labels.test.tsx +141 -0
  365. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +65 -8
  366. package/src/plugins/impl/__tests__/widget-labels.test.tsx +122 -0
  367. package/src/plugins/impl/chat/ChatPlugin.tsx +1 -1
  368. package/src/plugins/impl/common/labeled.tsx +9 -3
  369. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +15 -3
  370. package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +0 -22
  371. package/src/stories/cell.stories.tsx +2 -2
  372. package/src/stories/dataframe.stories.tsx +7 -0
  373. package/src/stories/layout/vertical/one-column.stories.tsx +5 -5
  374. package/src/stories/progress-stages.stories.tsx +62 -0
  375. package/src/stories/runtime-existing.stories.tsx +44 -0
  376. package/src/stories/runtime-maintenance.stories.tsx +40 -0
  377. package/src/stories/runtime-pixi.stories.tsx +28 -0
  378. package/src/stories/{sandbox.stories.tsx → runtime-story.tsx} +191 -152
  379. package/src/stories/runtime-uv.stories.tsx +56 -0
  380. package/dist/assets/__vite-browser-external-C9iR87Zl.js +0 -1
  381. package/dist/assets/worker-D7hWi02M.js +0 -109
  382. package/dist/classDiagram-ZZMXUADV-BwYhrSEX.js +0 -30
  383. package/dist/classDiagram-v2-VYDZK3BY-HecM04TM.js +0 -30
  384. package/dist/dropdown-menu-BaqM0t4N.js +0 -4502
  385. package/dist/error-banner-DzAmP0AQ.js +0 -391
  386. package/dist/flowDiagram-HODETNUW-DgcjSdPV.js +0 -16
  387. package/dist/label-MNhNNoN6.js +0 -278
  388. package/dist/mermaid-HWGCJPDP-DYCzSILp.js +0 -2
  389. package/dist/purify.es-DgKyQviY.js +0 -805
  390. package/dist/select-BcObMjGz.js +0 -970
  391. package/dist/stateDiagram-v2-MP3YSRHH-Dk5QgdXF.js +0 -30
  392. package/dist/swimlanesDiagram-VR7AAH4N-CbztusY8.js +0 -30
  393. package/src/components/editor/chrome/panels/sandbox-toggle.tsx +0 -52
@@ -1,30 +1,30 @@
1
1
  import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
- import { c as t, g as n, h as r, m as i, t as a } from "./button-B0Xgl-Qn.js";
3
- import { t as o } from "./react-ofJbxM4x.js";
4
- import { t as s } from "./compiler-runtime-Cj8ZWiNS.js";
5
- import { g as c, t as l } from "./tooltip-Bi36DgYh.js";
6
- import { w as u } from "./cells-5ppES-Un.js";
7
- import { $ as d, Q as f, Z as p, an as m, i as h, l as g, ln as _, n as v, on as y, r as b, t as x, u as S } from "./common-BkjS959w.js";
8
- import { M as C } from "./select-BcObMjGz.js";
9
- import { J as ee } from "./dropdown-menu-BaqM0t4N.js";
10
- import { y as w } from "./toDate-DWVp6uE1.js";
11
- import { t as T } from "./jsx-runtime-DgDPJV9S.js";
12
- import { q as te } from "./use-restore-focus-ZgG5Br63.js";
13
- import { A as E, C as D, b as O } from "./useTheme-BOw801nZ.js";
14
- import { a as k, n as ne, t as re } from "./code-visibility-C0zE3g0U.js";
2
+ import { c as t, g as n, h as r, m as i, t as a } from "./button-CvjkwdSk.js";
3
+ import { t as o } from "./react-sHtZdjeP.js";
4
+ import { t as s } from "./compiler-runtime-CldRdSsv.js";
5
+ import { h as c, t as l } from "./tooltip-BO1REbqs.js";
6
+ import { w as u } from "./cells-CuYwqnV8.js";
7
+ import { $ as d, Q as f, Z as p, an as m, i as h, l as g, ln as _, n as v, on as y, r as b, t as x, u as S } from "./common-DvxFYUnn.js";
8
+ import { M as C } from "./select-BButFi-d.js";
9
+ import { q as ee } from "./dropdown-menu-CP_qCYHC.js";
10
+ import { y as w } from "./toDate-Dwcg_x_5.js";
11
+ import { t as T } from "./jsx-runtime-3BD1kT0s.js";
12
+ import { q as E } from "./use-restore-focus-BEM7sFWl.js";
13
+ import { A as D, C as O, b as k } from "./useTheme-CRnjkku0.js";
14
+ import { a as A, n as te, t as ne } from "./code-visibility-CU1gPw4S.js";
15
15
  /* empty css */
16
- var A = c("sticky-note", [["path", {
16
+ var j = c("sticky-note", [["path", {
17
17
  d: "M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",
18
18
  key: "1dfntj"
19
19
  }], ["path", {
20
20
  d: "M15 3v5a1 1 0 0 0 1 1h5",
21
21
  key: "6s6qgf"
22
- }]]), j = /* @__PURE__ */ e(o(), 1), M = s(), ie = (e, t) => {
22
+ }]]), M = /* @__PURE__ */ e(o(), 1), N = s(), re = (e, t) => {
23
23
  for (let n in t) e[n] = t[n];
24
24
  return e;
25
- }, N = (e, t) => Array.from(e.querySelectorAll(t)), ae = (e, t, n) => {
25
+ }, P = (e, t) => Array.from(e.querySelectorAll(t)), ie = (e, t, n) => {
26
26
  n ? e.classList.add(t) : e.classList.remove(t);
27
- }, oe = (e) => {
27
+ }, ae = (e) => {
28
28
  if (typeof e == "string") {
29
29
  if (e === "null") return null;
30
30
  if (e === "true") return !0;
@@ -32,23 +32,23 @@ var A = c("sticky-note", [["path", {
32
32
  if (e.match(/^-?[\d\.]+$/)) return parseFloat(e);
33
33
  }
34
34
  return e;
35
- }, se = (e, t) => {
35
+ }, oe = (e, t) => {
36
36
  e.style.transform = t;
37
- }, P = (e, t) => {
37
+ }, F = (e, t) => {
38
38
  let n = e.matches || e.matchesSelector || e.msMatchesSelector;
39
39
  return !!(n && n.call(e, t));
40
- }, F = (e, t) => {
40
+ }, I = (e, t) => {
41
41
  if (e && typeof e.closest == "function") return e.closest(t);
42
42
  for (; e;) {
43
- if (P(e, t)) return e;
43
+ if (F(e, t)) return e;
44
44
  e = e.parentElement;
45
45
  }
46
46
  return null;
47
- }, ce = (e) => {
47
+ }, se = (e) => {
48
48
  e ||= document.documentElement;
49
49
  let t = e.requestFullscreen || e.webkitRequestFullscreen || e.webkitRequestFullScreen || e.mozRequestFullScreen || e.msRequestFullscreen;
50
50
  t && t.apply(e);
51
- }, le = (e, t, n, r = "") => {
51
+ }, ce = (e, t, n, r = "") => {
52
52
  let i = e.querySelectorAll("." + n);
53
53
  for (let t = 0; t < i.length; t++) {
54
54
  let n = i[t];
@@ -56,10 +56,10 @@ var A = c("sticky-note", [["path", {
56
56
  }
57
57
  let a = document.createElement(t);
58
58
  return a.className = n, a.innerHTML = r, e.appendChild(a), a;
59
- }, I = (e) => {
59
+ }, L = (e) => {
60
60
  let t = document.createElement("style");
61
61
  return e && e.length > 0 && t.appendChild(document.createTextNode(e)), document.head.appendChild(t), t;
62
- }, ue = () => {
62
+ }, le = () => {
63
63
  let e = {};
64
64
  location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi, (t) => {
65
65
  let n = t.split("=").shift(), r = t.split("=").pop();
@@ -67,27 +67,27 @@ var A = c("sticky-note", [["path", {
67
67
  });
68
68
  for (let t in e) {
69
69
  let n = e[t];
70
- e[t] = oe(unescape(n));
70
+ e[t] = ae(unescape(n));
71
71
  }
72
72
  return e.dependencies !== void 0 && delete e.dependencies, e;
73
- }, de = (e, t = 0) => {
73
+ }, ue = (e, t = 0) => {
74
74
  if (e) {
75
75
  let n, r = e.style.height;
76
76
  return e.style.height = "0px", e.parentElement && (e.parentElement.style.height = "auto"), n = t - (e.parentElement?.offsetHeight || 0), e.style.height = r + "px", e.parentElement && e.parentElement.style.removeProperty("height"), n;
77
77
  }
78
78
  return t;
79
- }, fe = {
79
+ }, de = {
80
80
  mp4: "video/mp4",
81
81
  m4a: "video/mp4",
82
82
  ogv: "video/ogg",
83
83
  mpeg: "video/mpeg",
84
84
  webm: "video/webm"
85
- }, pe = (e = "") => {
85
+ }, fe = (e = "") => {
86
86
  let t = e.split(".").pop();
87
- return t ? fe[t] : void 0;
88
- }, me = (e = "") => encodeURI(e).replace(/%5B/g, "[").replace(/%5D/g, "]").replace(/[!'()*]/g, (e) => `%${e.charCodeAt(0).toString(16).toUpperCase()}`), he = navigator.userAgent, ge = /(iphone|ipod|ipad|android)/gi.test(he) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1;
89
- /chrome/i.test(he) && /edge/i.test(he);
90
- var L = /android/gi.test(he), _e = function(e) {
87
+ return t ? de[t] : void 0;
88
+ }, pe = (e = "") => encodeURI(e).replace(/%5B/g, "[").replace(/%5D/g, "]").replace(/[!'()*]/g, (e) => `%${e.charCodeAt(0).toString(16).toUpperCase()}`), me = navigator.userAgent, he = /(iphone|ipod|ipad|android)/gi.test(me) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1;
89
+ /chrome/i.test(me) && /edge/i.test(me);
90
+ var R = /android/gi.test(me), ge = function(e) {
91
91
  if (e) {
92
92
  var t = function(e) {
93
93
  return [].slice.call(e);
@@ -167,16 +167,16 @@ var L = /android/gi.test(he), _e = function(e) {
167
167
  characterData: !0
168
168
  }
169
169
  }, ee = null, w = function() {
170
- e.clearTimeout(ee), ee = e.setTimeout(l(i), E.observeWindowDelay);
170
+ e.clearTimeout(ee), ee = e.setTimeout(l(i), D.observeWindowDelay);
171
171
  }, T = ["resize", "orientationchange"];
172
- return Object.defineProperty(E, "observeWindow", { set: function(t) {
172
+ return Object.defineProperty(D, "observeWindow", { set: function(t) {
173
173
  var n = `${t ? "add" : "remove"}EventListener`;
174
174
  T.forEach((function(t) {
175
175
  e[n](t, w);
176
176
  }));
177
- } }), E.observeWindow = !0, E.observeWindowDelay = 100, E.fitAll = l(a), E;
177
+ } }), D.observeWindow = !0, D.observeWindowDelay = 100, D.fitAll = l(a), D;
178
178
  }
179
- function te(e, t) {
179
+ function E(e, t) {
180
180
  var n = Object.assign({}, C, t), r = e.map((function(e) {
181
181
  var t = Object.assign({}, n, {
182
182
  element: e,
@@ -198,44 +198,44 @@ var L = /android/gi.test(he), _e = function(e) {
198
198
  }));
199
199
  return c(), r;
200
200
  }
201
- function E(e) {
201
+ function D(e) {
202
202
  var n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
203
- return typeof e == "string" ? te(t(document.querySelectorAll(e)), n) : te([e], n)[0];
203
+ return typeof e == "string" ? E(t(document.querySelectorAll(e)), n) : E([e], n)[0];
204
204
  }
205
205
  }(typeof window > "u" ? null : window);
206
- function ve(e) {
206
+ function _e(e) {
207
207
  "@babel/helpers - typeof";
208
- return ve = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
208
+ return _e = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
209
209
  return typeof e;
210
210
  } : function(e) {
211
211
  return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
212
- }, ve(e);
212
+ }, _e(e);
213
213
  }
214
- function ye(e, t) {
215
- if (ve(e) != "object" || !e) return e;
214
+ function ve(e, t) {
215
+ if (_e(e) != "object" || !e) return e;
216
216
  var n = e[Symbol.toPrimitive];
217
217
  if (n !== void 0) {
218
218
  var r = n.call(e, t || "default");
219
- if (ve(r) != "object") return r;
219
+ if (_e(r) != "object") return r;
220
220
  throw TypeError("@@toPrimitive must return a primitive value.");
221
221
  }
222
222
  return (t === "string" ? String : Number)(e);
223
223
  }
224
- function be(e) {
225
- var t = ye(e, "string");
226
- return ve(t) == "symbol" ? t : t + "";
224
+ function ye(e) {
225
+ var t = ve(e, "string");
226
+ return _e(t) == "symbol" ? t : t + "";
227
227
  }
228
- function R(e, t, n) {
229
- return (t = be(t)) in e ? Object.defineProperty(e, t, {
228
+ function z(e, t, n) {
229
+ return (t = ye(t)) in e ? Object.defineProperty(e, t, {
230
230
  value: n,
231
231
  enumerable: !0,
232
232
  configurable: !0,
233
233
  writable: !0
234
234
  }) : e[t] = n, e;
235
235
  }
236
- var xe = class {
236
+ var be = class {
237
237
  constructor(e) {
238
- R(this, "allowedToPlayAudio", null), this.Reveal = e, this.startEmbeddedMedia = this.startEmbeddedMedia.bind(this), this.startEmbeddedIframe = this.startEmbeddedIframe.bind(this), this.preventIframeAutoFocus = this.preventIframeAutoFocus.bind(this), this.ensureMobileMediaPlaying = this.ensureMobileMediaPlaying.bind(this), this.failedAudioPlaybackTargets = /* @__PURE__ */ new Set(), this.failedVideoPlaybackTargets = /* @__PURE__ */ new Set(), this.failedMutedVideoPlaybackTargets = /* @__PURE__ */ new Set(), this.renderMediaPlayButton();
238
+ z(this, "allowedToPlayAudio", null), this.Reveal = e, this.startEmbeddedMedia = this.startEmbeddedMedia.bind(this), this.startEmbeddedIframe = this.startEmbeddedIframe.bind(this), this.preventIframeAutoFocus = this.preventIframeAutoFocus.bind(this), this.ensureMobileMediaPlaying = this.ensureMobileMediaPlaying.bind(this), this.failedAudioPlaybackTargets = /* @__PURE__ */ new Set(), this.failedVideoPlaybackTargets = /* @__PURE__ */ new Set(), this.failedMutedVideoPlaybackTargets = /* @__PURE__ */ new Set(), this.renderMediaPlayButton();
239
239
  }
240
240
  renderMediaPlayButton() {
241
241
  this.mediaPlayButton = document.createElement("button"), this.mediaPlayButton.className = "r-overlay-button r-media-play-button", this.mediaPlayButton.addEventListener("click", () => {
@@ -259,14 +259,14 @@ var xe = class {
259
259
  let t = n.replace(/\s*!important\s*$/, "").trim();
260
260
  e.style.setProperty("display", t, "important");
261
261
  } else e.style.display = n;
262
- N(e, "img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach((e) => {
262
+ P(e, "img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach((e) => {
263
263
  let t = e.tagName === "IFRAME";
264
264
  (!t || this.shouldPreload(e)) && (e.setAttribute("src", e.getAttribute("data-src")), e.setAttribute("data-lazy-loaded", ""), e.removeAttribute("data-src"), t && e.addEventListener("load", this.preventIframeAutoFocus));
265
- }), N(e, "video, audio").forEach((e) => {
265
+ }), P(e, "video, audio").forEach((e) => {
266
266
  let t = 0;
267
- N(e, "source[data-src]").forEach((e) => {
267
+ P(e, "source[data-src]").forEach((e) => {
268
268
  e.setAttribute("src", e.getAttribute("data-src")), e.removeAttribute("data-src"), e.setAttribute("data-lazy-loaded", ""), t += 1;
269
- }), ge && e.tagName === "VIDEO" && e.setAttribute("playsinline", ""), t > 0 && e.load();
269
+ }), he && e.tagName === "VIDEO" && e.setAttribute("playsinline", ""), t > 0 && e.load();
270
270
  });
271
271
  let r = e.slideBackgroundElement;
272
272
  if (r) {
@@ -275,13 +275,13 @@ var xe = class {
275
275
  if (r.hasAttribute("data-loaded") === !1) {
276
276
  r.setAttribute("data-loaded", "true");
277
277
  let a = e.getAttribute("data-background-image"), o = e.getAttribute("data-background-video"), s = e.hasAttribute("data-background-video-loop"), c = e.hasAttribute("data-background-video-muted");
278
- if (a) /^data:/.test(a.trim()) ? n.style.backgroundImage = `url(${a.trim()})` : n.style.backgroundImage = a.split(",").map((e) => `url(${me(decodeURI(e.trim()))})`).join(",");
278
+ if (a) /^data:/.test(a.trim()) ? n.style.backgroundImage = `url(${a.trim()})` : n.style.backgroundImage = a.split(",").map((e) => `url(${pe(decodeURI(e.trim()))})`).join(",");
279
279
  else if (o) {
280
280
  let e = document.createElement("video");
281
- s && e.setAttribute("loop", ""), (c || this.Reveal.isSpeakerNotes()) && (e.muted = !0), ge && e.setAttribute("playsinline", ""), o.split(",").forEach((t) => {
281
+ s && e.setAttribute("loop", ""), (c || this.Reveal.isSpeakerNotes()) && (e.muted = !0), he && e.setAttribute("playsinline", ""), o.split(",").forEach((t) => {
282
282
  let n = document.createElement("source");
283
283
  n.setAttribute("src", t);
284
- let r = pe(t);
284
+ let r = fe(t);
285
285
  r && n.setAttribute("type", r), e.appendChild(n);
286
286
  }), n.appendChild(e);
287
287
  } else if (i && t.excludeIframes !== !0) {
@@ -296,7 +296,7 @@ var xe = class {
296
296
  }
297
297
  layout(e) {
298
298
  Array.from(e.querySelectorAll(".r-fit-text")).forEach((e) => {
299
- _e(e, {
299
+ ge(e, {
300
300
  minSize: 24,
301
301
  maxSize: this.Reveal.getConfig().height * .8,
302
302
  observeMutations: !1,
@@ -307,17 +307,17 @@ var xe = class {
307
307
  unload(e) {
308
308
  e.style.display = "none";
309
309
  let t = this.Reveal.getSlideBackground(e);
310
- t && (t.style.display = "none", N(t, "iframe[src]").forEach((e) => {
310
+ t && (t.style.display = "none", P(t, "iframe[src]").forEach((e) => {
311
311
  e.removeAttribute("src");
312
- })), N(e, "video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach((e) => {
312
+ })), P(e, "video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach((e) => {
313
313
  e.setAttribute("data-src", e.getAttribute("src")), e.removeAttribute("src");
314
- }), N(e, "video[data-lazy-loaded] source[src], audio source[src]").forEach((e) => {
314
+ }), P(e, "video[data-lazy-loaded] source[src], audio source[src]").forEach((e) => {
315
315
  e.setAttribute("data-src", e.getAttribute("src")), e.removeAttribute("src");
316
316
  });
317
317
  }
318
318
  formatEmbeddedContent() {
319
319
  let e = (e, t, n) => {
320
- N(this.Reveal.getSlidesElement(), "iframe[" + e + "*=\"" + t + "\"]").forEach((t) => {
320
+ P(this.Reveal.getSlidesElement(), "iframe[" + e + "*=\"" + t + "\"]").forEach((t) => {
321
321
  let r = t.getAttribute(e);
322
322
  r && r.indexOf(n) === -1 && t.setAttribute(e, r + (/\?/.test(r) ? "&" : "?") + n);
323
323
  });
@@ -327,19 +327,19 @@ var xe = class {
327
327
  startEmbeddedContent(e) {
328
328
  if (e) {
329
329
  let t = this.Reveal.isSpeakerNotes();
330
- N(e, "img[src$=\".gif\"]").forEach((e) => {
330
+ P(e, "img[src$=\".gif\"]").forEach((e) => {
331
331
  e.setAttribute("src", e.getAttribute("src"));
332
- }), N(e, "video, audio").forEach((e) => {
333
- if (F(e, ".fragment") && !F(e, ".fragment.visible")) return;
332
+ }), P(e, "video, audio").forEach((e) => {
333
+ if (I(e, ".fragment") && !I(e, ".fragment.visible")) return;
334
334
  let n = this.Reveal.getConfig().autoPlayMedia;
335
- if (typeof n != "boolean" && (n = e.hasAttribute("data-autoplay") || !!F(e, ".slide-background")), n && typeof e.play == "function") {
335
+ if (typeof n != "boolean" && (n = e.hasAttribute("data-autoplay") || !!I(e, ".slide-background")), n && typeof e.play == "function") {
336
336
  if (t && !e.muted) return;
337
- e.readyState > 1 ? this.startEmbeddedMedia({ target: e }) : ge ? (e.addEventListener("canplay", this.ensureMobileMediaPlaying), this.playMediaElement(e)) : (e.removeEventListener("loadeddata", this.startEmbeddedMedia), e.addEventListener("loadeddata", this.startEmbeddedMedia));
337
+ e.readyState > 1 ? this.startEmbeddedMedia({ target: e }) : he ? (e.addEventListener("canplay", this.ensureMobileMediaPlaying), this.playMediaElement(e)) : (e.removeEventListener("loadeddata", this.startEmbeddedMedia), e.addEventListener("loadeddata", this.startEmbeddedMedia));
338
338
  }
339
- }), t || (N(e, "iframe[src]").forEach((e) => {
340
- F(e, ".fragment") && !F(e, ".fragment.visible") || this.startEmbeddedIframe({ target: e });
341
- }), N(e, "iframe[data-src]").forEach((e) => {
342
- F(e, ".fragment") && !F(e, ".fragment.visible") || e.getAttribute("src") !== e.getAttribute("data-src") && (e.removeEventListener("load", this.startEmbeddedIframe), e.addEventListener("load", this.startEmbeddedIframe), e.setAttribute("src", e.getAttribute("data-src")));
339
+ }), t || (P(e, "iframe[src]").forEach((e) => {
340
+ I(e, ".fragment") && !I(e, ".fragment.visible") || this.startEmbeddedIframe({ target: e });
341
+ }), P(e, "iframe[data-src]").forEach((e) => {
342
+ I(e, ".fragment") && !I(e, ".fragment.visible") || e.getAttribute("src") !== e.getAttribute("data-src") && (e.removeEventListener("load", this.startEmbeddedIframe), e.addEventListener("load", this.startEmbeddedIframe), e.setAttribute("src", e.getAttribute("data-src")));
343
343
  }));
344
344
  }
345
345
  }
@@ -351,7 +351,7 @@ var xe = class {
351
351
  }, 1e3);
352
352
  }
353
353
  startEmbeddedMedia(e) {
354
- let t = !!F(e.target, "html"), n = !!F(e.target, ".present");
354
+ let t = !!I(e.target, "html"), n = !!I(e.target, ".present");
355
355
  t && n && (e.target.paused || e.target.ended) && (e.target.currentTime = 0, this.playMediaElement(e.target)), e.target.removeEventListener("loadeddata", this.startEmbeddedMedia);
356
356
  }
357
357
  playMediaElement(e) {
@@ -362,7 +362,7 @@ var xe = class {
362
362
  if (t.name === "NotAllowedError") {
363
363
  if (this.allowedToPlayAudio = !1, e.tagName === "VIDEO") {
364
364
  this.onVideoPlaybackNotAllowed(e);
365
- let t = !!F(e, "html"), n = !!F(e, ".present"), r = e.muted;
365
+ let t = !!I(e, "html"), n = !!I(e, ".present"), r = e.muted;
366
366
  t && n && !r && (e.setAttribute("data-muted-by-reveal", "true"), e.muted = !0, e.play().catch(() => {
367
367
  this.onMutedVideoPlaybackNotAllowed(e);
368
368
  }));
@@ -373,23 +373,23 @@ var xe = class {
373
373
  startEmbeddedIframe(e) {
374
374
  let t = e.target;
375
375
  if (this.preventIframeAutoFocus(e), t && t.contentWindow) {
376
- let n = !!F(e.target, "html"), r = !!F(e.target, ".present");
376
+ let n = !!I(e.target, "html"), r = !!I(e.target, ".present");
377
377
  if (n && r) {
378
378
  let e = this.Reveal.getConfig().autoPlayMedia;
379
- typeof e != "boolean" && (e = t.hasAttribute("data-autoplay") || !!F(t, ".slide-background")), /youtube\.com\/embed\//.test(t.getAttribute("src")) && e ? t.contentWindow.postMessage("{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}", "*") : /player\.vimeo\.com\//.test(t.getAttribute("src")) && e ? t.contentWindow.postMessage("{\"method\":\"play\"}", "*") : t.contentWindow.postMessage("slide:start", "*");
379
+ typeof e != "boolean" && (e = t.hasAttribute("data-autoplay") || !!I(t, ".slide-background")), /youtube\.com\/embed\//.test(t.getAttribute("src")) && e ? t.contentWindow.postMessage("{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}", "*") : /player\.vimeo\.com\//.test(t.getAttribute("src")) && e ? t.contentWindow.postMessage("{\"method\":\"play\"}", "*") : t.contentWindow.postMessage("slide:start", "*");
380
380
  }
381
381
  }
382
382
  }
383
383
  stopEmbeddedContent(e, t = {}) {
384
- t = ie({ unloadIframes: !0 }, t), e && e.parentNode && (N(e, "video, audio").forEach((e) => {
385
- !e.hasAttribute("data-ignore") && typeof e.pause == "function" && (e.setAttribute("data-paused-by-reveal", ""), e.pause(), ge && e.removeEventListener("canplay", this.ensureMobileMediaPlaying));
386
- }), N(e, "iframe").forEach((e) => {
384
+ t = re({ unloadIframes: !0 }, t), e && e.parentNode && (P(e, "video, audio").forEach((e) => {
385
+ !e.hasAttribute("data-ignore") && typeof e.pause == "function" && (e.setAttribute("data-paused-by-reveal", ""), e.pause(), he && e.removeEventListener("canplay", this.ensureMobileMediaPlaying));
386
+ }), P(e, "iframe").forEach((e) => {
387
387
  e.contentWindow && e.contentWindow.postMessage("slide:stop", "*"), e.removeEventListener("load", this.preventIframeAutoFocus), e.removeEventListener("load", this.startEmbeddedIframe);
388
- }), N(e, "iframe[src*=\"youtube.com/embed/\"]").forEach((e) => {
388
+ }), P(e, "iframe[src*=\"youtube.com/embed/\"]").forEach((e) => {
389
389
  !e.hasAttribute("data-ignore") && e.contentWindow && typeof e.contentWindow.postMessage == "function" && e.contentWindow.postMessage("{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}", "*");
390
- }), N(e, "iframe[src*=\"player.vimeo.com/\"]").forEach((e) => {
390
+ }), P(e, "iframe[src*=\"player.vimeo.com/\"]").forEach((e) => {
391
391
  !e.hasAttribute("data-ignore") && e.contentWindow && typeof e.contentWindow.postMessage == "function" && e.contentWindow.postMessage("{\"method\":\"pause\"}", "*");
392
- }), t.unloadIframes === !0 && N(e, "iframe[data-src]").forEach((e) => {
392
+ }), t.unloadIframes === !0 && P(e, "iframe[data-src]").forEach((e) => {
393
393
  e.setAttribute("src", "about:blank"), e.removeAttribute("src");
394
394
  }));
395
395
  }
@@ -433,7 +433,7 @@ var xe = class {
433
433
  afterSlideChanged() {
434
434
  this.clearMediaPlaybackErrors();
435
435
  }
436
- }, z = ".slides section", Se = ".slides>section", Ce = ".slides>section.present>section", we = ".backgrounds>.slide-background", Te = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview|previewIframe/, Ee = class {
436
+ }, B = ".slides section", xe = ".slides>section", Se = ".slides>section.present>section", Ce = ".backgrounds>.slide-background", we = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview|previewIframe/, Te = class {
437
437
  constructor(e) {
438
438
  this.Reveal = e;
439
439
  }
@@ -482,7 +482,7 @@ var xe = class {
482
482
  destroy() {
483
483
  this.element.remove();
484
484
  }
485
- }, B = class {
485
+ }, V = class {
486
486
  constructor(e) {
487
487
  this.Reveal = e, this.onInput = this.onInput.bind(this), this.onBlur = this.onBlur.bind(this), this.onKeyDown = this.onKeyDown.bind(this);
488
488
  }
@@ -535,7 +535,7 @@ var xe = class {
535
535
  onBlur() {
536
536
  setTimeout(() => this.hide(), 1);
537
537
  }
538
- }, De = (e) => {
538
+ }, Ee = (e) => {
539
539
  let t = e.match(/^#([0-9a-f]{3})$/i);
540
540
  if (t && t[1]) {
541
541
  let e = t[1];
@@ -567,7 +567,7 @@ var xe = class {
567
567
  b: parseInt(i[3], 10),
568
568
  a: parseFloat(i[4])
569
569
  } : null;
570
- }, Oe = (e) => (typeof e == "string" && (e = De(e)), e ? (e.r * 299 + e.g * 587 + e.b * 114) / 1e3 : null), ke = class {
570
+ }, De = (e) => (typeof e == "string" && (e = Ee(e)), e ? (e.r * 299 + e.g * 587 + e.b * 114) / 1e3 : null), Oe = class {
571
571
  constructor(e) {
572
572
  this.Reveal = e;
573
573
  }
@@ -577,7 +577,7 @@ var xe = class {
577
577
  create() {
578
578
  this.element.innerHTML = "", this.element.classList.add("no-transition"), this.Reveal.getHorizontalSlides().forEach((e) => {
579
579
  let t = this.createBackground(e, this.element);
580
- N(e, "section").forEach((e) => {
580
+ P(e, "section").forEach((e) => {
581
581
  this.createBackground(e, t), t.classList.add("stack");
582
582
  });
583
583
  }), this.Reveal.getConfig().parallaxBackgroundImage ? (this.element.style.backgroundImage = "url(\"" + this.Reveal.getConfig().parallaxBackgroundImage + "\")", this.element.style.backgroundSize = this.Reveal.getConfig().parallaxBackgroundSize, this.element.style.backgroundRepeat = this.Reveal.getConfig().parallaxBackgroundRepeat, this.element.style.backgroundPosition = this.Reveal.getConfig().parallaxBackgroundPosition, setTimeout(() => {
@@ -610,13 +610,13 @@ var xe = class {
610
610
  }
611
611
  getContrastClass(e) {
612
612
  let t = e.slideBackgroundElement, n = e.getAttribute("data-background-color");
613
- if (!n || !De(n)) {
613
+ if (!n || !Ee(n)) {
614
614
  let e = window.getComputedStyle(t);
615
615
  e && e.backgroundColor && (n = e.backgroundColor);
616
616
  }
617
617
  if (n) {
618
- let e = De(n);
619
- if (e && e.a !== 0) return Oe(n) < 128 ? "has-dark-background" : "has-light-background";
618
+ let e = Ee(n);
619
+ if (e && e.a !== 0) return De(n) < 128 ? "has-dark-background" : "has-light-background";
620
620
  }
621
621
  return null;
622
622
  }
@@ -628,7 +628,7 @@ var xe = class {
628
628
  update(e = !1) {
629
629
  let t = this.Reveal.getConfig(), n = this.Reveal.getCurrentSlide(), r = this.Reveal.getIndices(), i = null, a = t.rtl ? "future" : "past", o = t.rtl ? "past" : "future";
630
630
  if (Array.from(this.element.childNodes).forEach((t, n) => {
631
- t.classList.remove("past", "present", "future"), n < r.h ? t.classList.add(a) : n > r.h ? t.classList.add(o) : (t.classList.add("present"), i = t), (e || n === r.h) && N(t, ".slide-background").forEach((e, t) => {
631
+ t.classList.remove("past", "present", "future"), n < r.h ? t.classList.add(a) : n > r.h ? t.classList.add(o) : (t.classList.add("present"), i = t), (e || n === r.h) && P(t, ".slide-background").forEach((e, t) => {
632
632
  e.classList.remove("past", "present", "future");
633
633
  let a = typeof r.v == "number" ? r.v : 0;
634
634
  t < a ? e.classList.add("past") : t > a ? e.classList.add("future") : (e.classList.add("present"), n === r.h && (i = e));
@@ -672,7 +672,7 @@ var xe = class {
672
672
  destroy() {
673
673
  this.element.remove();
674
674
  }
675
- }, Ae = 0, je = class {
675
+ }, ke = 0, Ae = class {
676
676
  constructor(e) {
677
677
  this.Reveal = e;
678
678
  }
@@ -680,17 +680,17 @@ var xe = class {
680
680
  this.reset();
681
681
  let n = this.Reveal.getSlides(), r = n.indexOf(t), i = n.indexOf(e);
682
682
  if (e && t && e.hasAttribute("data-auto-animate") && t.hasAttribute("data-auto-animate") && e.getAttribute("data-auto-animate-id") === t.getAttribute("data-auto-animate-id") && !(r > i ? t : e).hasAttribute("data-auto-animate-restart")) {
683
- this.autoAnimateStyleSheet = this.autoAnimateStyleSheet || I();
683
+ this.autoAnimateStyleSheet = this.autoAnimateStyleSheet || L();
684
684
  let n = this.getAutoAnimateOptions(t);
685
685
  e.dataset.autoAnimate = "pending", t.dataset.autoAnimate = "pending", n.slideDirection = r > i ? "forward" : "backward";
686
686
  let a = e.style.display === "none";
687
687
  a && (e.style.display = this.Reveal.getConfig().display);
688
- let o = this.getAutoAnimatableElements(e, t).map((e) => this.autoAnimateElements(e.from, e.to, e.options || {}, n, Ae++));
688
+ let o = this.getAutoAnimatableElements(e, t).map((e) => this.autoAnimateElements(e.from, e.to, e.options || {}, n, ke++));
689
689
  if (a && (e.style.display = "none"), t.dataset.autoAnimateUnmatched !== "false" && this.Reveal.getConfig().autoAnimateUnmatched === !0) {
690
690
  let e = n.duration * .8, r = n.duration * .2;
691
691
  this.getUnmatchedAutoAnimateElements(t).forEach((e) => {
692
692
  let t = this.getAutoAnimateOptions(e, n), r = "unmatched";
693
- (t.duration !== n.duration || t.delay !== n.delay) && (r = "unmatched-" + Ae++, o.push(`[data-auto-animate="running"] [data-auto-animate-target="${r}"] { transition: opacity ${t.duration}s ease ${t.delay}s; }`)), e.dataset.autoAnimateTarget = r;
693
+ (t.duration !== n.duration || t.delay !== n.delay) && (r = "unmatched-" + ke++, o.push(`[data-auto-animate="running"] [data-auto-animate-target="${r}"] { transition: opacity ${t.duration}s ease ${t.delay}s; }`)), e.dataset.autoAnimateTarget = r;
694
694
  }, this), o.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${e}s ease ${r}s; }`);
695
695
  }
696
696
  this.autoAnimateStyleSheet.innerHTML = o.join(""), requestAnimationFrame(() => {
@@ -706,9 +706,9 @@ var xe = class {
706
706
  }
707
707
  }
708
708
  reset() {
709
- N(this.Reveal.getRevealElement(), "[data-auto-animate]:not([data-auto-animate=\"\"])").forEach((e) => {
709
+ P(this.Reveal.getRevealElement(), "[data-auto-animate]:not([data-auto-animate=\"\"])").forEach((e) => {
710
710
  e.dataset.autoAnimate = "";
711
- }), N(this.Reveal.getRevealElement(), "[data-auto-animate-target]").forEach((e) => {
711
+ }), P(this.Reveal.getRevealElement(), "[data-auto-animate-target]").forEach((e) => {
712
712
  delete e.dataset.autoAnimateTarget;
713
713
  }), this.autoAnimateStyleSheet && this.autoAnimateStyleSheet.parentNode && (this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet), this.autoAnimateStyleSheet = null);
714
714
  }
@@ -749,8 +749,8 @@ var xe = class {
749
749
  duration: this.Reveal.getConfig().autoAnimateDuration,
750
750
  delay: 0
751
751
  };
752
- if (n = ie(n, t), e.parentNode) {
753
- let t = F(e.parentNode, "[data-auto-animate-target]");
752
+ if (n = re(n, t), e.parentNode) {
753
+ let t = I(e.parentNode, "[data-auto-animate-target]");
754
754
  t && (n = this.getAutoAnimateOptions(t, n));
755
755
  }
756
756
  return e.dataset.autoAnimateEasing && (n.easing = e.dataset.autoAnimateEasing), e.dataset.autoAnimateDuration && (n.duration = parseFloat(e.dataset.autoAnimateDuration)), e.dataset.autoAnimateDelay && (n.delay = parseFloat(e.dataset.autoAnimateDelay)), n;
@@ -793,7 +793,7 @@ var xe = class {
793
793
  getAutoAnimatePairs(e, t) {
794
794
  let n = [], r = "h1, h2, h3, h4, h5, h6, p, li";
795
795
  return this.findAutoAnimateMatches(n, e, t, "[data-id]", (e) => e.nodeName + ":::" + e.getAttribute("data-id")), this.findAutoAnimateMatches(n, e, t, r, (e) => e.nodeName + ":::" + e.textContent.trim()), this.findAutoAnimateMatches(n, e, t, "img, video, iframe", (e) => e.nodeName + ":::" + (e.getAttribute("src") || e.getAttribute("data-src"))), this.findAutoAnimateMatches(n, e, t, "pre", (e) => e.nodeName + ":::" + e.textContent.trim()), n.forEach((e) => {
796
- P(e.from, r) ? e.options = { scale: !1 } : P(e.from, "pre") && (e.options = {
796
+ F(e.from, r) ? e.options = { scale: !1 } : F(e.from, "pre") && (e.options = {
797
797
  scale: !1,
798
798
  styles: ["width", "height"]
799
799
  }, this.findAutoAnimateMatches(n, e.from, e.to, ".hljs .hljs-ln-code", (e) => e.textContent, {
@@ -842,15 +842,15 @@ var xe = class {
842
842
  return !t.hasAttribute("data-auto-animate-target") && !n && e.push(t), t.querySelector("[data-auto-animate-target]") && (e = e.concat(this.getUnmatchedAutoAnimateElements(t))), e;
843
843
  }, []);
844
844
  }
845
- }, Me = 500, Ne = 4, Pe = 6, Fe = 8, Ie = class {
845
+ }, je = 500, Me = 4, Ne = 6, Pe = 8, Fe = class {
846
846
  constructor(e) {
847
- this.Reveal = e, this.active = !1, this.activatedCallbacks = [], this.onScroll = this.onScroll.bind(this);
847
+ this.Reveal = e, this.active = !1, this.activeProgressBarPage = null, this.activeProgressBarTrigger = null, this.activatedCallbacks = [], this.onScroll = this.onScroll.bind(this);
848
848
  }
849
849
  activate() {
850
850
  if (this.active) return;
851
851
  let e = this.Reveal.getState();
852
852
  this.active = !0, this.slideHTMLBeforeActivation = this.Reveal.getSlidesElement().innerHTML;
853
- let t = N(this.Reveal.getRevealElement(), Se), n = N(this.Reveal.getRevealElement(), we);
853
+ let t = P(this.Reveal.getRevealElement(), xe), n = P(this.Reveal.getRevealElement(), Ce);
854
854
  this.viewportElement.classList.add("loading-scroll-mode", "reveal-scroll");
855
855
  let r, i = window.getComputedStyle(this.viewportElement);
856
856
  i && i.background && (r = i.background);
@@ -866,18 +866,18 @@ var xe = class {
866
866
  let i = document.createElement("div");
867
867
  i.className = "scroll-page-sticky", e.appendChild(i), c = document.createElement("div"), c.className = "scroll-page-content", i.appendChild(c);
868
868
  }
869
- c.appendChild(e), e.classList.remove("past", "future"), e.setAttribute("data-index-h", t), e.setAttribute("data-index-v", i), e.slideBackgroundElement && (e.slideBackgroundElement.remove("past", "future"), c.insertBefore(e.slideBackgroundElement, e)), s = e;
869
+ c.appendChild(e), e.classList.remove("past", "future"), e.removeAttribute("inert"), e.setAttribute("data-index-h", t), e.setAttribute("data-index-v", i), e.slideBackgroundElement && (e.slideBackgroundElement.remove("past", "future"), c.insertBefore(e.slideBackgroundElement, e)), s = e;
870
870
  };
871
871
  t.forEach((e, t) => {
872
872
  this.Reveal.isVerticalStack(e) ? e.querySelectorAll("section").forEach((e, n) => {
873
873
  c(e, t, n, !0);
874
874
  }) : c(e, t, 0);
875
- }, this), this.createProgressBar(), N(this.Reveal.getRevealElement(), ".stack").forEach((e) => e.remove()), a.forEach((e) => o.appendChild(e)), this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()), this.Reveal.layout(), this.Reveal.setState(e), this.activatedCallbacks.forEach((e) => e()), this.activatedCallbacks = [], this.restoreScrollPosition(), this.viewportElement.classList.remove("loading-scroll-mode"), this.viewportElement.addEventListener("scroll", this.onScroll, { passive: !0 });
875
+ }, this), this.createProgressBar(), P(this.Reveal.getRevealElement(), ".stack").forEach((e) => e.remove()), a.forEach((e) => o.appendChild(e)), this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()), this.Reveal.layout(), this.Reveal.setState(e), this.activatedCallbacks.forEach((e) => e()), this.activatedCallbacks = [], this.restoreScrollPosition(), this.viewportElement.classList.remove("loading-scroll-mode"), this.viewportElement.addEventListener("scroll", this.onScroll, { passive: !0 });
876
876
  }
877
877
  deactivate() {
878
878
  if (!this.active) return;
879
879
  let e = this.Reveal.getState();
880
- this.active = !1, this.viewportElement.removeEventListener("scroll", this.onScroll), this.viewportElement.classList.remove("reveal-scroll"), this.removeProgressBar(), this.Reveal.getSlidesElement().innerHTML = this.slideHTMLBeforeActivation, this.Reveal.sync(), this.Reveal.setState(e), this.slideHTMLBeforeActivation = null;
880
+ this.active = !1, this.viewportElement.removeEventListener("scroll", this.onScroll), this.viewportElement.classList.remove("reveal-scroll"), this.pendingScrollRaf &&= (cancelAnimationFrame(this.pendingScrollRaf), 0), this.removeProgressBar(), this.Reveal.getSlidesElement().innerHTML = this.slideHTMLBeforeActivation, this.Reveal.sync(), this.Reveal.setState(e), this.slideHTMLBeforeActivation = null;
881
881
  }
882
882
  toggle(e) {
883
883
  typeof e == "boolean" ? e ? this.activate() : this.deactivate() : this.isActive() ? this.deactivate() : this.activate();
@@ -898,14 +898,16 @@ var xe = class {
898
898
  });
899
899
  }
900
900
  removeProgressBar() {
901
- this.progressBar &&= (this.progressBar.remove(), null);
901
+ this.progressBar &&= (this.progressBar.remove(), null), this.activeProgressBarPage = null, this.activeProgressBarTrigger = null;
902
902
  }
903
903
  layout() {
904
904
  this.isActive() && (this.syncPages(), this.syncScrollPosition());
905
905
  }
906
906
  syncPages() {
907
907
  let e = this.Reveal.getConfig(), t = this.Reveal.getComputedSlideSize(window.innerWidth, window.innerHeight), n = this.Reveal.getScale(), r = e.scrollLayout === "compact", i = this.viewportElement.offsetHeight, a = t.height * n, o = r ? a : i;
908
- this.scrollTriggerHeight = r ? a : i, this.viewportElement.style.setProperty("--page-height", o + "px"), this.viewportElement.style.scrollSnapType = typeof e.scrollSnap == "string" ? `y ${e.scrollSnap}` : "", this.slideTriggers = [], this.pages = Array.from(this.Reveal.getRevealElement().querySelectorAll(".scroll-page")).map((n) => {
908
+ this.scrollTriggerHeight = r ? a : i, this.viewportElement.style.setProperty("--page-height", o + "px"), this.viewportElement.style.scrollSnapType = typeof e.scrollSnap == "string" ? `y ${e.scrollSnap}` : "", this.slideTriggers = [];
909
+ let s = Array.from(this.Reveal.getRevealElement().querySelectorAll(".scroll-page"));
910
+ this.pages = s.map((n) => {
909
911
  let a = this.createPage({
910
912
  pageElement: n,
911
913
  slideElement: n.querySelector("section"),
@@ -969,38 +971,46 @@ var xe = class {
969
971
  return e.scrollTriggers = [], e.indexh = parseInt(e.slideElement.getAttribute("data-index-h"), 10), e.indexv = parseInt(e.slideElement.getAttribute("data-index-v"), 10), e;
970
972
  }
971
973
  syncProgressBar() {
972
- this.progressBarInner.querySelectorAll(".scrollbar-slide").forEach((e) => e.remove());
974
+ this.progressBarInner.querySelectorAll(".scrollbar-slide").forEach((e) => e.remove()), this.activeProgressBarPage = null, this.activeProgressBarTrigger = null, this.getAllPages().forEach((e) => {
975
+ e.progressBarSlide = null, e.scrollTriggers.forEach((e) => e.progressBarElement = null);
976
+ });
973
977
  let e = this.viewportElement.scrollHeight, t = this.viewportElement.offsetHeight, n = t / e;
974
- this.progressBarHeight = this.progressBarInner.offsetHeight, this.playheadHeight = Math.max(n * this.progressBarHeight, Fe), this.progressBarScrollableHeight = this.progressBarHeight - this.playheadHeight;
975
- let r = t / e * this.progressBarHeight, i = Math.min(r / 8, Ne);
976
- this.progressBarPlayhead.style.height = this.playheadHeight - i + "px", r > Pe ? this.slideTriggers.forEach((e) => {
978
+ this.progressBarHeight = this.progressBarInner.offsetHeight, this.playheadHeight = Math.max(n * this.progressBarHeight, Pe), this.progressBarScrollableHeight = this.progressBarHeight - this.playheadHeight;
979
+ let r = t / e * this.progressBarHeight, i = Math.min(r / 8, Me);
980
+ this.progressBarPlayhead.style.height = this.playheadHeight - i + "px", r > Ne && this.slideTriggers.forEach((e) => {
977
981
  let { page: t } = e;
978
- t.progressBarSlide = document.createElement("div"), t.progressBarSlide.className = "scrollbar-slide", t.progressBarSlide.style.top = e.range[0] * this.progressBarHeight + "px", t.progressBarSlide.style.height = (e.range[1] - e.range[0]) * this.progressBarHeight - i + "px", t.progressBarSlide.classList.toggle("has-triggers", t.scrollTriggers.length > 0), this.progressBarInner.appendChild(t.progressBarSlide), t.scrollTriggerElements = t.scrollTriggers.map((n, r) => {
982
+ t.progressBarSlide = document.createElement("div"), t.progressBarSlide.className = "scrollbar-slide", t.progressBarSlide.style.top = e.range[0] * this.progressBarHeight + "px", t.progressBarSlide.style.height = (e.range[1] - e.range[0]) * this.progressBarHeight - i + "px", t.progressBarSlide.classList.toggle("has-triggers", t.scrollTriggers.length > 0), this.progressBarInner.appendChild(t.progressBarSlide), t.scrollTriggers.forEach((n, r) => {
979
983
  let a = document.createElement("div");
980
- return a.className = "scrollbar-trigger", a.style.top = (n.range[0] - e.range[0]) * this.progressBarHeight + "px", a.style.height = (n.range[1] - n.range[0]) * this.progressBarHeight - i + "px", t.progressBarSlide.appendChild(a), r === 0 && (a.style.display = "none"), a;
984
+ a.className = "scrollbar-trigger", a.style.top = (n.range[0] - e.range[0]) * this.progressBarHeight + "px", a.style.height = (n.range[1] - n.range[0]) * this.progressBarHeight - i + "px", t.progressBarSlide.appendChild(a), r === 0 && (a.style.display = "none"), n.progressBarElement = a;
981
985
  });
982
- }) : this.pages.forEach((e) => e.progressBarSlide = null);
986
+ });
983
987
  }
984
988
  syncScrollPosition() {
985
- let e = this.viewportElement.offsetHeight, t = e / this.viewportElement.scrollHeight, n = this.viewportElement.scrollTop, r = this.viewportElement.scrollHeight - e, i = Math.max(Math.min(n / r, 1), 0), a = Math.max(Math.min((n + e / 2) / this.viewportElement.scrollHeight, 1), 0), o;
989
+ let e = this.viewportElement.offsetHeight, t = e / this.viewportElement.scrollHeight, n = this.viewportElement.scrollTop, r = this.viewportElement.scrollHeight - e, i = Math.max(Math.min(n / r, 1), 0), a = Math.max(Math.min((n + e / 2) / this.viewportElement.scrollHeight, 1), 0), o, s = null;
986
990
  this.slideTriggers.forEach((e) => {
987
- let { page: n } = e;
988
- i >= e.range[0] - t * 2 && i <= e.range[1] + t * 2 && !n.loaded ? (n.loaded = !0, this.Reveal.slideContent.load(n.slideElement)) : n.loaded && (n.loaded = !1, this.Reveal.slideContent.unload(n.slideElement)), i >= e.range[0] && i <= e.range[1] ? (this.activateTrigger(e), o = e.page) : e.active && this.deactivateTrigger(e);
991
+ let { page: n } = e, r = i >= e.range[0] - t * 2 && i <= e.range[1] + t * 2;
992
+ r && !n.loaded ? (n.loaded = !0, this.Reveal.slideContent.load(n.slideElement)) : !r && n.loaded && (n.loaded = !1, this.Reveal.slideContent.unload(n.slideElement)), i >= e.range[0] && i <= e.range[1] ? (this.activateTrigger(e), o = e.page) : e.active && this.deactivateTrigger(e);
989
993
  }), o && o.scrollTriggers.forEach((e) => {
990
- a >= e.range[0] && a <= e.range[1] ? this.activateTrigger(e) : e.active && this.deactivateTrigger(e);
991
- }), this.setProgressBarValue(n / (this.viewportElement.scrollHeight - e));
994
+ a >= e.range[0] && a <= e.range[1] ? (this.activateTrigger(e), s = e) : e.active && this.deactivateTrigger(e);
995
+ }), this.setProgressBarValue(n / (this.viewportElement.scrollHeight - e), o, s);
992
996
  }
993
- setProgressBarValue(e) {
994
- this.progressBar && (this.progressBarPlayhead.style.transform = `translateY(${e * this.progressBarScrollableHeight}px)`, this.getAllPages().filter((e) => e.progressBarSlide).forEach((e) => {
995
- e.progressBarSlide.classList.toggle("active", e.active === !0), e.scrollTriggers.forEach((t, n) => {
996
- e.scrollTriggerElements[n].classList.toggle("active", e.active === !0 && t.active === !0);
997
- });
998
- }), this.showProgressBar());
997
+ setProgressBarValue(e, t = null, n = null) {
998
+ if (this.progressBar) {
999
+ if (this.progressBarPlayhead.style.transform = `translateY(${e * this.progressBarScrollableHeight}px)`, this.activeProgressBarPage !== t) {
1000
+ var r, i;
1001
+ (r = this.activeProgressBarPage) == null || (r = r.progressBarSlide) == null || r.classList.remove("active"), t == null || (i = t.progressBarSlide) == null || i.classList.add("active"), this.activeProgressBarPage = t;
1002
+ }
1003
+ if (this.activeProgressBarTrigger !== n) {
1004
+ var a, o;
1005
+ (a = this.activeProgressBarTrigger) == null || (a = a.progressBarElement) == null || a.classList.remove("active"), n == null || (o = n.progressBarElement) == null || o.classList.add("active"), this.activeProgressBarTrigger = n;
1006
+ }
1007
+ this.showProgressBar();
1008
+ }
999
1009
  }
1000
1010
  showProgressBar() {
1001
1011
  this.progressBar.classList.add("visible"), clearTimeout(this.hideProgressBarTimeout), this.Reveal.getConfig().scrollProgress === "auto" && !this.draggingProgressBar && (this.hideProgressBarTimeout = setTimeout(() => {
1002
1012
  this.progressBar && this.progressBar.classList.remove("visible");
1003
- }, Me));
1013
+ }, je));
1004
1014
  }
1005
1015
  prev() {
1006
1016
  this.viewportElement.scrollTop -= this.scrollTriggerHeight;
@@ -1053,13 +1063,15 @@ var xe = class {
1053
1063
  return this.pages.flatMap((e) => [e, ...e.autoAnimatePages || []]);
1054
1064
  }
1055
1065
  onScroll() {
1056
- this.syncScrollPosition(), this.storeScrollPosition();
1066
+ this.pendingScrollRaf ||= requestAnimationFrame(() => {
1067
+ this.pendingScrollRaf = 0, this.syncScrollPosition(), this.storeScrollPosition();
1068
+ });
1057
1069
  }
1058
1070
  get viewportElement() {
1059
1071
  return this.Reveal.getViewportElement();
1060
1072
  }
1061
1073
  };
1062
- function Le(e, t, n, r, i, a, o) {
1074
+ function Ie(e, t, n, r, i, a, o) {
1063
1075
  try {
1064
1076
  var s = e[a](o), c = s.value;
1065
1077
  } catch (e) {
@@ -1068,30 +1080,30 @@ function Le(e, t, n, r, i, a, o) {
1068
1080
  }
1069
1081
  s.done ? t(c) : Promise.resolve(c).then(r, i);
1070
1082
  }
1071
- function Re(e) {
1083
+ function Le(e) {
1072
1084
  return function() {
1073
1085
  var t = this, n = arguments;
1074
1086
  return new Promise(function(r, i) {
1075
1087
  var a = e.apply(t, n);
1076
1088
  function o(e) {
1077
- Le(a, r, i, o, s, "next", e);
1089
+ Ie(a, r, i, o, s, "next", e);
1078
1090
  }
1079
1091
  function s(e) {
1080
- Le(a, r, i, o, s, "throw", e);
1092
+ Ie(a, r, i, o, s, "throw", e);
1081
1093
  }
1082
1094
  o(void 0);
1083
1095
  });
1084
1096
  };
1085
1097
  }
1086
- var ze = class {
1098
+ var Re = class {
1087
1099
  constructor(e) {
1088
1100
  this.Reveal = e;
1089
1101
  }
1090
1102
  activate() {
1091
1103
  var e = this;
1092
- return Re(function* () {
1093
- let t = e.Reveal.getConfig(), n = N(e.Reveal.getRevealElement(), z), r = t.slideNumber && /all|print/i.test(t.showSlideNumber), i = e.Reveal.getComputedSlideSize(window.innerWidth, window.innerHeight), a = Math.floor(i.width * (1 + t.margin)), o = Math.floor(i.height * (1 + t.margin)), s = i.width, c = i.height;
1094
- yield new Promise(requestAnimationFrame), I("@page{size:" + a + "px " + o + "px; margin: 0px;}"), I(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: " + s + "px; max-height:" + c + "px}"), document.documentElement.classList.add("reveal-print", "print-pdf"), document.body.style.width = a + "px", document.body.style.height = o + "px";
1104
+ return Le(function* () {
1105
+ let t = e.Reveal.getConfig(), n = P(e.Reveal.getRevealElement(), B), r = t.slideNumber && /all|print/i.test(t.showSlideNumber), i = e.Reveal.getComputedSlideSize(window.innerWidth, window.innerHeight), a = Math.floor(i.width * (1 + t.margin)), o = Math.floor(i.height * (1 + t.margin)), s = i.width, c = i.height;
1106
+ yield new Promise(requestAnimationFrame), L("@page{size:" + a + "px " + o + "px; margin: 0px;}"), L(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: " + s + "px; max-height:" + c + "px}"), document.documentElement.classList.add("reveal-print", "print-pdf"), document.body.style.width = a + "px", document.body.style.height = o + "px";
1095
1107
  let l = e.Reveal.getViewportElement(), u;
1096
1108
  if (l) {
1097
1109
  let e = window.getComputedStyle(l);
@@ -1134,7 +1146,7 @@ var ze = class {
1134
1146
  e.classList.remove("visible", "current-fragment");
1135
1147
  });
1136
1148
  });
1137
- } else N(g, ".fragment:not(.fade-out)").forEach(function(e) {
1149
+ } else P(g, ".fragment:not(.fade-out)").forEach(function(e) {
1138
1150
  e.classList.add("visible");
1139
1151
  });
1140
1152
  }
@@ -1144,7 +1156,7 @@ var ze = class {
1144
1156
  isActive() {
1145
1157
  return this.Reveal.getConfig().view === "print";
1146
1158
  }
1147
- }, Be = class {
1159
+ }, ze = class {
1148
1160
  constructor(e) {
1149
1161
  this.Reveal = e;
1150
1162
  }
@@ -1152,12 +1164,12 @@ var ze = class {
1152
1164
  e.fragments === !1 ? this.disable() : t.fragments === !1 && this.enable();
1153
1165
  }
1154
1166
  disable() {
1155
- N(this.Reveal.getSlidesElement(), ".fragment").forEach((e) => {
1167
+ P(this.Reveal.getSlidesElement(), ".fragment").forEach((e) => {
1156
1168
  e.classList.add("visible"), e.classList.remove("current-fragment");
1157
1169
  });
1158
1170
  }
1159
1171
  enable() {
1160
- N(this.Reveal.getSlidesElement(), ".fragment").forEach((e) => {
1172
+ P(this.Reveal.getSlidesElement(), ".fragment").forEach((e) => {
1161
1173
  e.classList.remove("visible"), e.classList.remove("current-fragment");
1162
1174
  });
1163
1175
  }
@@ -1193,7 +1205,7 @@ var ze = class {
1193
1205
  }
1194
1206
  sortAll() {
1195
1207
  this.Reveal.getHorizontalSlides().forEach((e) => {
1196
- let t = N(e, "section");
1208
+ let t = P(e, "section");
1197
1209
  t.forEach((e, t) => {
1198
1210
  this.sort(e.querySelectorAll(".fragment"));
1199
1211
  }, this), t.length === 0 && this.sort(e.querySelectorAll(".fragment"));
@@ -1267,13 +1279,13 @@ var ze = class {
1267
1279
  prev() {
1268
1280
  return this.goto(null, -1);
1269
1281
  }
1270
- }, Ve = class {
1282
+ }, Be = class {
1271
1283
  constructor(e) {
1272
1284
  this.Reveal = e, this.active = !1, this.onSlideClicked = this.onSlideClicked.bind(this);
1273
1285
  }
1274
1286
  activate() {
1275
1287
  if (this.Reveal.getConfig().overview && !this.Reveal.isScrollView() && !this.isActive()) {
1276
- this.active = !0, this.Reveal.getRevealElement().classList.add("overview"), this.Reveal.cancelAutoSlide(), this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()), N(this.Reveal.getRevealElement(), z).forEach((e) => {
1288
+ this.active = !0, this.Reveal.getRevealElement().classList.add("overview"), this.Reveal.cancelAutoSlide(), this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()), P(this.Reveal.getRevealElement(), B).forEach((e) => {
1277
1289
  e.classList.contains("stack") || e.addEventListener("click", this.onSlideClicked, !0);
1278
1290
  });
1279
1291
  let e = this.Reveal.getComputedSlideSize();
@@ -1291,12 +1303,12 @@ var ze = class {
1291
1303
  }
1292
1304
  layout() {
1293
1305
  this.Reveal.getHorizontalSlides().forEach((e, t) => {
1294
- e.setAttribute("data-index-h", t), se(e, "translate3d(" + t * this.overviewSlideWidth + "px, 0, 0)"), e.classList.contains("stack") && N(e, "section").forEach((e, n) => {
1295
- e.setAttribute("data-index-h", t), e.setAttribute("data-index-v", n), se(e, "translate3d(0, " + n * this.overviewSlideHeight + "px, 0)");
1306
+ e.setAttribute("data-index-h", t), oe(e, "translate3d(" + t * this.overviewSlideWidth + "px, 0, 0)"), e.classList.contains("stack") && P(e, "section").forEach((e, n) => {
1307
+ e.setAttribute("data-index-h", t), e.setAttribute("data-index-v", n), oe(e, "translate3d(0, " + n * this.overviewSlideHeight + "px, 0)");
1296
1308
  });
1297
1309
  }), Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e, t) => {
1298
- se(e, "translate3d(" + t * this.overviewSlideWidth + "px, 0, 0)"), N(e, ".slide-background").forEach((e, t) => {
1299
- se(e, "translate3d(0, " + t * this.overviewSlideHeight + "px, 0)");
1310
+ oe(e, "translate3d(" + t * this.overviewSlideWidth + "px, 0, 0)"), P(e, ".slide-background").forEach((e, t) => {
1311
+ oe(e, "translate3d(0, " + t * this.overviewSlideHeight + "px, 0)");
1300
1312
  });
1301
1313
  });
1302
1314
  }
@@ -1312,10 +1324,10 @@ var ze = class {
1312
1324
  if (this.Reveal.getConfig().overview) {
1313
1325
  this.active = !1, this.Reveal.getRevealElement().classList.remove("overview"), this.Reveal.getRevealElement().classList.add("overview-deactivating"), setTimeout(() => {
1314
1326
  this.Reveal.getRevealElement().classList.remove("overview-deactivating");
1315
- }, 1), this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()), N(this.Reveal.getRevealElement(), z).forEach((e) => {
1316
- se(e, ""), e.removeEventListener("click", this.onSlideClicked, !0);
1317
- }), N(this.Reveal.getBackgroundsElement(), ".slide-background").forEach((e) => {
1318
- se(e, "");
1327
+ }, 1), this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()), P(this.Reveal.getRevealElement(), B).forEach((e) => {
1328
+ oe(e, ""), e.removeEventListener("click", this.onSlideClicked, !0);
1329
+ }), P(this.Reveal.getBackgroundsElement(), ".slide-background").forEach((e) => {
1330
+ oe(e, "");
1319
1331
  }), this.Reveal.transformSlides({ overview: "" });
1320
1332
  let e = this.Reveal.getIndices();
1321
1333
  this.Reveal.slide(e.h, e.v), this.Reveal.layout(), this.Reveal.cueAutoSlide(), this.Reveal.dispatchEvent({
@@ -1345,7 +1357,7 @@ var ze = class {
1345
1357
  }
1346
1358
  }
1347
1359
  }
1348
- }, He = class {
1360
+ }, Ve = class {
1349
1361
  constructor(e) {
1350
1362
  this.Reveal = e, this.shortcuts = {}, this.bindings = {}, this.onDocumentKeyDown = this.onDocumentKeyDown.bind(this);
1351
1363
  }
@@ -1435,10 +1447,10 @@ var ze = class {
1435
1447
  66,
1436
1448
  86,
1437
1449
  190
1438
- ].includes(n) || n === 191 && !e.shiftKey ? this.Reveal.togglePause() : n === 70 ? ce(t.embedded ? this.Reveal.getViewportElement() : document.documentElement) : n === 65 ? t.autoSlideStoppable && this.Reveal.toggleAutoSlide(r) : n === 71 ? t.jumpToSlide && this.Reveal.toggleJumpToSlide() : n === 67 && this.Reveal.isOverlayOpen() ? this.Reveal.closeOverlay() : (n === 63 || n === 191) && e.shiftKey || n === 112 ? this.Reveal.toggleHelp() : d = !1), d ? e.preventDefault && e.preventDefault() : n === 27 || n === 79 ? (this.Reveal.closeOverlay() === !1 && this.Reveal.overview.toggle(), e.preventDefault && e.preventDefault()) : n === 13 && this.Reveal.overview.isActive() && (this.Reveal.overview.deactivate(), e.preventDefault && e.preventDefault()), this.Reveal.cueAutoSlide();
1450
+ ].includes(n) || n === 191 && !e.shiftKey ? this.Reveal.togglePause() : n === 70 ? se(t.embedded ? this.Reveal.getViewportElement() : document.documentElement) : n === 65 ? t.autoSlideStoppable && this.Reveal.toggleAutoSlide(r) : n === 71 ? t.jumpToSlide && this.Reveal.toggleJumpToSlide() : n === 67 && this.Reveal.isOverlayOpen() ? this.Reveal.closeOverlay() : (n === 63 || n === 191) && e.shiftKey || n === 112 ? this.Reveal.toggleHelp() : d = !1), d ? e.preventDefault && e.preventDefault() : n === 27 || n === 79 ? (this.Reveal.closeOverlay() === !1 && this.Reveal.overview.toggle(), e.preventDefault && e.preventDefault()) : n === 13 && this.Reveal.overview.isActive() && (this.Reveal.overview.deactivate(), e.preventDefault && e.preventDefault()), this.Reveal.cueAutoSlide();
1439
1451
  }
1440
1452
  };
1441
- function V(e, t) {
1453
+ function H(e, t) {
1442
1454
  var n = Object.keys(e);
1443
1455
  if (Object.getOwnPropertySymbols) {
1444
1456
  var r = Object.getOwnPropertySymbols(e);
@@ -1448,20 +1460,20 @@ function V(e, t) {
1448
1460
  }
1449
1461
  return n;
1450
1462
  }
1451
- function H(e) {
1463
+ function U(e) {
1452
1464
  for (var t = 1; t < arguments.length; t++) {
1453
1465
  var n = arguments[t] == null ? {} : arguments[t];
1454
- t % 2 ? V(Object(n), !0).forEach(function(t) {
1455
- R(e, t, n[t]);
1456
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : V(Object(n)).forEach(function(t) {
1466
+ t % 2 ? H(Object(n), !0).forEach(function(t) {
1467
+ z(e, t, n[t]);
1468
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : H(Object(n)).forEach(function(t) {
1457
1469
  Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
1458
1470
  });
1459
1471
  }
1460
1472
  return e;
1461
1473
  }
1462
- var Ue = class {
1474
+ var He = class {
1463
1475
  constructor(e) {
1464
- R(this, "MAX_REPLACE_STATE_FREQUENCY", 1e3), this.Reveal = e, this.writeURLTimeout = 0, this.replaceStateTimestamp = 0, this.onWindowHashChange = this.onWindowHashChange.bind(this);
1476
+ z(this, "MAX_REPLACE_STATE_FREQUENCY", 1e3), this.Reveal = e, this.writeURLTimeout = 0, this.replaceStateTimestamp = 0, this.onWindowHashChange = this.onWindowHashChange.bind(this);
1465
1477
  }
1466
1478
  bind() {
1467
1479
  window.addEventListener("hashchange", this.onWindowHashChange, !1);
@@ -1478,7 +1490,7 @@ var Ue = class {
1478
1490
  let t = decodeURIComponent(n);
1479
1491
  e = (document.getElementById(t) || document.querySelector(`[data-id="${t}"]`)).closest(".slides section");
1480
1492
  } catch {}
1481
- if (e) return H(H({}, this.Reveal.getIndices(e)), {}, { f: t });
1493
+ if (e) return U(U({}, this.Reveal.getIndices(e)), {}, { f: t });
1482
1494
  } else {
1483
1495
  let e = this.Reveal.getConfig(), n = e.hashOneBasedIndex || t.oneBasedIndex ? 1 : 0, i = parseInt(r[0], 10) - n || 0, a = parseInt(r[1], 10) - n || 0, o;
1484
1496
  return e.fragmentInURL && (o = parseInt(r[2], 10), isNaN(o) && (o = void 0)), {
@@ -1521,7 +1533,7 @@ var Ue = class {
1521
1533
  onWindowHashChange(e) {
1522
1534
  this.readURL();
1523
1535
  }
1524
- }, We = class {
1536
+ }, Ue = class {
1525
1537
  constructor(e) {
1526
1538
  this.Reveal = e, this.onNavigateLeftClicked = this.onNavigateLeftClicked.bind(this), this.onNavigateRightClicked = this.onNavigateRightClicked.bind(this), this.onNavigateUpClicked = this.onNavigateUpClicked.bind(this), this.onNavigateDownClicked = this.onNavigateDownClicked.bind(this), this.onNavigatePrevClicked = this.onNavigatePrevClicked.bind(this), this.onNavigateNextClicked = this.onNavigateNextClicked.bind(this), this.onEnterFullscreen = this.onEnterFullscreen.bind(this);
1527
1539
  }
@@ -1530,7 +1542,7 @@ var Ue = class {
1530
1542
  this.element = document.createElement("aside"), this.element.className = "controls", this.element.innerHTML = `<button class="navigate-left" aria-label="${e ? "next slide" : "previous slide"}"><div class="controls-arrow"></div></button>
1531
1543
  <button class="navigate-right" aria-label="${e ? "previous slide" : "next slide"}"><div class="controls-arrow"></div></button>
1532
1544
  <button class="navigate-up" aria-label="above slide"><div class="controls-arrow"></div></button>
1533
- <button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>`, this.Reveal.getRevealElement().appendChild(this.element), this.controlsLeft = N(t, ".navigate-left"), this.controlsRight = N(t, ".navigate-right"), this.controlsUp = N(t, ".navigate-up"), this.controlsDown = N(t, ".navigate-down"), this.controlsPrev = N(t, ".navigate-prev"), this.controlsNext = N(t, ".navigate-next"), this.controlsFullscreen = N(t, ".enter-fullscreen"), this.controlsRightArrow = this.element.querySelector(".navigate-right"), this.controlsLeftArrow = this.element.querySelector(".navigate-left"), this.controlsDownArrow = this.element.querySelector(".navigate-down");
1545
+ <button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>`, this.Reveal.getRevealElement().appendChild(this.element), this.controlsLeft = P(t, ".navigate-left"), this.controlsRight = P(t, ".navigate-right"), this.controlsUp = P(t, ".navigate-up"), this.controlsDown = P(t, ".navigate-down"), this.controlsPrev = P(t, ".navigate-prev"), this.controlsNext = P(t, ".navigate-next"), this.controlsFullscreen = P(t, ".enter-fullscreen"), this.controlsRightArrow = this.element.querySelector(".navigate-right"), this.controlsLeftArrow = this.element.querySelector(".navigate-left"), this.controlsDownArrow = this.element.querySelector(".navigate-down");
1534
1546
  }
1535
1547
  configure(e, t) {
1536
1548
  let n = e.controls === "speaker" || e.controls === "speaker-only";
@@ -1538,7 +1550,7 @@ var Ue = class {
1538
1550
  }
1539
1551
  bind() {
1540
1552
  let e = ["touchstart", "click"];
1541
- L && (e = ["touchend"]), e.forEach((e) => {
1553
+ R && (e = ["touchend"]), e.forEach((e) => {
1542
1554
  this.controlsLeft.forEach((t) => t.addEventListener(e, this.onNavigateLeftClicked, !1)), this.controlsRight.forEach((t) => t.addEventListener(e, this.onNavigateRightClicked, !1)), this.controlsUp.forEach((t) => t.addEventListener(e, this.onNavigateUpClicked, !1)), this.controlsDown.forEach((t) => t.addEventListener(e, this.onNavigateDownClicked, !1)), this.controlsPrev.forEach((t) => t.addEventListener(e, this.onNavigatePrevClicked, !1)), this.controlsNext.forEach((t) => t.addEventListener(e, this.onNavigateNextClicked, !1)), this.controlsFullscreen.forEach((t) => t.addEventListener(e, this.onEnterFullscreen, !1));
1543
1555
  });
1544
1556
  }
@@ -1622,9 +1634,9 @@ var Ue = class {
1622
1634
  }
1623
1635
  onEnterFullscreen(e) {
1624
1636
  let t = this.Reveal.getConfig(), n = this.Reveal.getViewportElement();
1625
- ce(t.embedded ? n : n.parentElement);
1637
+ se(t.embedded ? n : n.parentElement);
1626
1638
  }
1627
- }, Ge = class {
1639
+ }, We = class {
1628
1640
  constructor(e) {
1629
1641
  this.Reveal = e, this.onProgressClicked = this.onProgressClicked.bind(this);
1630
1642
  }
@@ -1659,7 +1671,7 @@ var Ue = class {
1659
1671
  destroy() {
1660
1672
  this.element.remove();
1661
1673
  }
1662
- }, Ke = class {
1674
+ }, Ge = class {
1663
1675
  constructor(e) {
1664
1676
  this.Reveal = e, this.lastMouseWheelStep = 0, this.cursorHidden = !1, this.cursorInactiveTimeout = 0, this.onDocumentCursorActive = this.onDocumentCursorActive.bind(this), this.onDocumentMouseScroll = this.onDocumentMouseScroll.bind(this);
1665
1677
  }
@@ -1685,7 +1697,7 @@ var Ue = class {
1685
1697
  t > 0 ? this.Reveal.next() : t < 0 && this.Reveal.prev();
1686
1698
  }
1687
1699
  }
1688
- }, qe = (e, t) => {
1700
+ }, Ke = (e, t) => {
1689
1701
  let n = document.createElement("script");
1690
1702
  n.type = "text/javascript", n.async = !1, n.defer = !1, n.src = e, typeof t == "function" && (n.onload = (e) => {
1691
1703
  e.type === "load" && (n.onload = n.onerror = null, t());
@@ -1694,7 +1706,7 @@ var Ue = class {
1694
1706
  });
1695
1707
  let r = document.querySelector("head");
1696
1708
  r && r.insertBefore(n, r.lastChild);
1697
- }, Je = class {
1709
+ }, qe = class {
1698
1710
  constructor(e) {
1699
1711
  this.Reveal = e, this.state = "idle", this.registeredPlugins = {}, this.asyncDependencies = [];
1700
1712
  }
@@ -1709,7 +1721,7 @@ var Ue = class {
1709
1721
  t && typeof t.callback == "function" && t.callback(), --r === 0 && this.initPlugins().then(e);
1710
1722
  };
1711
1723
  n.forEach((e) => {
1712
- typeof e.id == "string" ? (this.registerPlugin(e), t(e)) : typeof e.src == "string" ? qe(e.src, () => t(e)) : (console.warn("Unrecognized plugin format", e), t());
1724
+ typeof e.id == "string" ? (this.registerPlugin(e), t(e)) : typeof e.src == "string" ? Ke(e.src, () => t(e)) : (console.warn("Unrecognized plugin format", e), t());
1713
1725
  });
1714
1726
  } else this.initPlugins().then(e);
1715
1727
  });
@@ -1734,7 +1746,7 @@ var Ue = class {
1734
1746
  }
1735
1747
  loadAsync() {
1736
1748
  return this.state = "loaded", this.asyncDependencies.length && this.asyncDependencies.forEach((e) => {
1737
- qe(e.src, e.callback);
1749
+ Ke(e.src, e.callback);
1738
1750
  }), Promise.resolve();
1739
1751
  }
1740
1752
  registerPlugin(e) {
@@ -1756,7 +1768,7 @@ var Ue = class {
1756
1768
  typeof e.destroy == "function" && e.destroy();
1757
1769
  }), this.registeredPlugins = {}, this.asyncDependencies = [];
1758
1770
  }
1759
- }, Ye = class {
1771
+ }, Je = class {
1760
1772
  constructor(e) {
1761
1773
  this.Reveal = e, this.onSlidesClicked = this.onSlidesClicked.bind(this), this.iframeTriggerSelector = null, this.mediaTriggerSelector = "[data-preview-image], [data-preview-video]", this.stateProps = [
1762
1774
  "previewIframe",
@@ -1774,19 +1786,23 @@ var Ue = class {
1774
1786
  this.dom = document.createElement("div"), this.dom.classList.add("r-overlay"), this.dom.classList.add(e), this.viewport = document.createElement("div"), this.viewport.classList.add("r-overlay-viewport"), this.dom.appendChild(this.viewport), this.Reveal.getRevealElement().appendChild(this.dom);
1775
1787
  }
1776
1788
  previewIframe(e) {
1777
- this.close(), this.state = { previewIframe: e }, this.createOverlay("r-overlay-preview"), this.dom.dataset.state = "loading", this.viewport.innerHTML = `<header class="r-overlay-header">
1778
- <a class="r-overlay-header-button r-overlay-external" href="${e}" target="_blank"><span class="icon"></span></a>
1779
- <button class="r-overlay-header-button r-overlay-close"><span class="icon"></span></button>
1780
- </header>
1781
- <div class="r-overlay-spinner"></div>
1782
- <div class="r-overlay-content">
1783
- <iframe src="${e}"></iframe>
1784
- <small class="r-overlay-content-inner">
1785
- <span class="r-overlay-error x-frame-error">Unable to load iframe. This is likely due to the site's policy (x-frame-options).</span>
1786
- </small>
1787
- </div>`, this.dom.querySelector("iframe").addEventListener("load", (e) => {
1789
+ if (typeof e != "string") return;
1790
+ let t;
1791
+ try {
1792
+ t = new URL(e, document.baseURI);
1793
+ } catch {
1794
+ return;
1795
+ }
1796
+ if (t.protocol === "file:" && window.location.protocol !== "file:" || ![
1797
+ "http:",
1798
+ "https:",
1799
+ "file:"
1800
+ ].includes(t.protocol) && t.href !== "about:blank") return;
1801
+ this.close(), this.state = { previewIframe: e }, this.createOverlay("r-overlay-preview"), this.dom.dataset.state = "loading", this.viewport.innerHTML = "<header class=\"r-overlay-header\">\n <a class=\"r-overlay-header-button r-overlay-external\" target=\"_blank\" rel=\"noopener\"><span class=\"icon\"></span></a>\n <button class=\"r-overlay-header-button r-overlay-close\"><span class=\"icon\"></span></button>\n </header>\n <div class=\"r-overlay-spinner\"></div>\n <div class=\"r-overlay-content\">\n <iframe></iframe>\n <small class=\"r-overlay-content-inner\">\n <span class=\"r-overlay-error x-frame-error\">Unable to load iframe. This is likely due to the site's policy (x-frame-options).</span>\n </small>\n </div>";
1802
+ let n = this.dom.querySelector("iframe");
1803
+ n.addEventListener("load", (e) => {
1788
1804
  this.dom.dataset.state = "loaded";
1789
- }, !1), this.dom.querySelector(".r-overlay-close").addEventListener("click", (e) => {
1805
+ }, !1), n.src = t.href, this.dom.querySelector(".r-overlay-external").href = t.href, this.dom.querySelector(".r-overlay-close").addEventListener("click", (e) => {
1790
1806
  this.close(), e.preventDefault();
1791
1807
  }, !1), this.dom.querySelector(".r-overlay-external").addEventListener("click", (e) => {
1792
1808
  this.close();
@@ -1900,26 +1916,31 @@ var Ue = class {
1900
1916
  destroy() {
1901
1917
  this.close();
1902
1918
  }
1903
- }, Xe = 40, Ze = class {
1919
+ }, Ye = 40, Xe = 1.03, Ze = class {
1904
1920
  constructor(e) {
1905
- this.Reveal = e, this.touchStartX = 0, this.touchStartY = 0, this.touchStartCount = 0, this.touchCaptured = !1, this.onPointerDown = this.onPointerDown.bind(this), this.onPointerMove = this.onPointerMove.bind(this), this.onPointerUp = this.onPointerUp.bind(this), this.onTouchStart = this.onTouchStart.bind(this), this.onTouchMove = this.onTouchMove.bind(this), this.onTouchEnd = this.onTouchEnd.bind(this);
1921
+ this.Reveal = e, this.touchStartX = 0, this.touchStartY = 0, this.touchStartCount = 0, this.touchCaptured = !1, this.activePointers = /* @__PURE__ */ new Map(), this.onPointerDown = this.onPointerDown.bind(this), this.onPointerMove = this.onPointerMove.bind(this), this.onPointerUp = this.onPointerUp.bind(this), this.onPointerCancel = this.onPointerCancel.bind(this), this.onTouchStart = this.onTouchStart.bind(this), this.onTouchMove = this.onTouchMove.bind(this), this.onTouchEnd = this.onTouchEnd.bind(this);
1906
1922
  }
1907
1923
  bind() {
1908
1924
  let e = this.Reveal.getRevealElement();
1909
- "onpointerdown" in window ? (e.addEventListener("pointerdown", this.onPointerDown, !1), e.addEventListener("pointermove", this.onPointerMove, !1), e.addEventListener("pointerup", this.onPointerUp, !1)) : window.navigator.msPointerEnabled ? (e.addEventListener("MSPointerDown", this.onPointerDown, !1), e.addEventListener("MSPointerMove", this.onPointerMove, !1), e.addEventListener("MSPointerUp", this.onPointerUp, !1)) : (e.addEventListener("touchstart", this.onTouchStart, !1), e.addEventListener("touchmove", this.onTouchMove, !1), e.addEventListener("touchend", this.onTouchEnd, !1));
1925
+ "onpointerdown" in window ? (e.addEventListener("pointerdown", this.onPointerDown, !1), e.addEventListener("pointermove", this.onPointerMove, !1), e.addEventListener("pointerup", this.onPointerUp, !1), e.addEventListener("pointercancel", this.onPointerCancel, !1)) : (e.addEventListener("touchstart", this.onTouchStart, !1), e.addEventListener("touchmove", this.onTouchMove, !1), e.addEventListener("touchend", this.onTouchEnd, !1));
1910
1926
  }
1911
1927
  unbind() {
1912
1928
  let e = this.Reveal.getRevealElement();
1913
- e.removeEventListener("pointerdown", this.onPointerDown, !1), e.removeEventListener("pointermove", this.onPointerMove, !1), e.removeEventListener("pointerup", this.onPointerUp, !1), e.removeEventListener("MSPointerDown", this.onPointerDown, !1), e.removeEventListener("MSPointerMove", this.onPointerMove, !1), e.removeEventListener("MSPointerUp", this.onPointerUp, !1), e.removeEventListener("touchstart", this.onTouchStart, !1), e.removeEventListener("touchmove", this.onTouchMove, !1), e.removeEventListener("touchend", this.onTouchEnd, !1);
1929
+ e.removeEventListener("pointerdown", this.onPointerDown, !1), e.removeEventListener("pointermove", this.onPointerMove, !1), e.removeEventListener("pointerup", this.onPointerUp, !1), e.removeEventListener("pointercancel", this.onPointerCancel, !1), e.removeEventListener("touchstart", this.onTouchStart, !1), e.removeEventListener("touchmove", this.onTouchMove, !1), e.removeEventListener("touchend", this.onTouchEnd, !1);
1914
1930
  }
1915
1931
  isSwipePrevented(e) {
1916
- if (P(e, "video[controls], audio[controls]")) return !0;
1932
+ if (F(e, "video[controls], audio[controls]")) return !0;
1917
1933
  for (; e && typeof e.hasAttribute == "function";) {
1918
1934
  if (e.hasAttribute("data-prevent-swipe")) return !0;
1919
1935
  e = e.parentNode;
1920
1936
  }
1921
1937
  return !1;
1922
1938
  }
1939
+ isViewportZoomed() {
1940
+ if (!window.visualViewport || typeof window.visualViewport.scale != "number") return !1;
1941
+ let e = window.visualViewport.scale;
1942
+ return this.visualViewportBaseScale = this.visualViewportBaseScale === void 0 ? e : Math.min(this.visualViewportBaseScale, e), e / this.visualViewportBaseScale > Xe;
1943
+ }
1923
1944
  onTouchStart(e) {
1924
1945
  if (this.touchCaptured = !1, this.isSwipePrevented(e.target)) return !0;
1925
1946
  this.touchStartX = e.touches[0].clientX, this.touchStartY = e.touches[0].clientY, this.touchStartCount = e.touches.length;
@@ -1927,38 +1948,38 @@ var Ue = class {
1927
1948
  onTouchMove(e) {
1928
1949
  if (this.isSwipePrevented(e.target)) return !0;
1929
1950
  let t = this.Reveal.getConfig();
1930
- if (this.touchCaptured) L && e.preventDefault();
1951
+ if (this.touchCaptured) R && e.preventDefault();
1931
1952
  else {
1932
1953
  this.Reveal.onUserInput(e);
1933
1954
  let n = e.touches[0].clientX, r = e.touches[0].clientY;
1934
1955
  if (e.touches.length === 1 && this.touchStartCount !== 2) {
1935
1956
  let i = this.Reveal.availableRoutes({ includeFragments: !0 }), a = n - this.touchStartX, o = r - this.touchStartY;
1936
- a > Xe && Math.abs(a) > Math.abs(o) ? (this.touchCaptured = !0, t.navigationMode === "linear" ? t.rtl ? this.Reveal.next() : this.Reveal.prev() : this.Reveal.left()) : a < -Xe && Math.abs(a) > Math.abs(o) ? (this.touchCaptured = !0, t.navigationMode === "linear" ? t.rtl ? this.Reveal.prev() : this.Reveal.next() : this.Reveal.right()) : o > Xe && i.up ? (this.touchCaptured = !0, t.navigationMode === "linear" ? this.Reveal.prev() : this.Reveal.up()) : o < -Xe && i.down && (this.touchCaptured = !0, t.navigationMode === "linear" ? this.Reveal.next() : this.Reveal.down()), t.embedded ? (this.touchCaptured || this.Reveal.isVerticalSlide()) && e.preventDefault() : e.preventDefault();
1957
+ a > Ye && Math.abs(a) > Math.abs(o) ? (this.touchCaptured = !0, t.navigationMode === "linear" ? t.rtl ? this.Reveal.next() : this.Reveal.prev() : this.Reveal.left()) : a < -40 && Math.abs(a) > Math.abs(o) ? (this.touchCaptured = !0, t.navigationMode === "linear" ? t.rtl ? this.Reveal.prev() : this.Reveal.next() : this.Reveal.right()) : o > Ye && i.up ? (this.touchCaptured = !0, t.navigationMode === "linear" ? this.Reveal.prev() : this.Reveal.up()) : o < -40 && i.down && (this.touchCaptured = !0, t.navigationMode === "linear" ? this.Reveal.next() : this.Reveal.down()), t.embedded ? (this.touchCaptured || this.Reveal.isVerticalSlide()) && e.preventDefault() : e.preventDefault();
1937
1958
  }
1938
1959
  }
1939
1960
  }
1940
1961
  onTouchEnd(e) {
1941
1962
  this.touchCaptured && !this.Reveal.slideContent.isAllowedToPlayAudio() && this.Reveal.startEmbeddedContent(this.Reveal.getCurrentSlide()), this.touchCaptured = !1;
1942
1963
  }
1943
- onPointerDown(e) {
1944
- (e.pointerType === e.MSPOINTER_TYPE_TOUCH || e.pointerType === "touch") && (e.touches = [{
1964
+ getActiveTouches() {
1965
+ return Array.from(this.activePointers.values(), (e) => ({
1945
1966
  clientX: e.clientX,
1946
1967
  clientY: e.clientY
1947
- }], this.onTouchStart(e));
1968
+ }));
1969
+ }
1970
+ onPointerDown(e) {
1971
+ e.pointerType === "touch" && (this.activePointers.set(e.pointerId, e), e.touches = this.getActiveTouches(), this.onTouchStart(e));
1948
1972
  }
1949
1973
  onPointerMove(e) {
1950
- (e.pointerType === e.MSPOINTER_TYPE_TOUCH || e.pointerType === "touch") && (e.touches = [{
1951
- clientX: e.clientX,
1952
- clientY: e.clientY
1953
- }], this.onTouchMove(e));
1974
+ e.pointerType === "touch" && (this.activePointers.set(e.pointerId, e), e.touches = this.getActiveTouches(), this.onTouchMove(e));
1954
1975
  }
1955
1976
  onPointerUp(e) {
1956
- (e.pointerType === e.MSPOINTER_TYPE_TOUCH || e.pointerType === "touch") && (e.touches = [{
1957
- clientX: e.clientX,
1958
- clientY: e.clientY
1959
- }], this.onTouchEnd(e));
1977
+ e.pointerType === "touch" && (this.activePointers.delete(e.pointerId), e.touches = this.getActiveTouches(), this.onTouchEnd(e));
1978
+ }
1979
+ onPointerCancel(e) {
1980
+ e.pointerType === "touch" && (this.activePointers.delete(e.pointerId), e.touches = this.getActiveTouches(), this.onTouchEnd(e));
1960
1981
  }
1961
- }, U = "focus", Qe = "blur", $e = class {
1982
+ }, Qe = "focus", $e = "blur", et = class {
1962
1983
  constructor(e) {
1963
1984
  this.Reveal = e, this.onRevealPointerDown = this.onRevealPointerDown.bind(this), this.onDocumentPointerDown = this.onDocumentPointerDown.bind(this);
1964
1985
  }
@@ -1972,13 +1993,13 @@ var Ue = class {
1972
1993
  this.Reveal.getRevealElement().removeEventListener("pointerdown", this.onRevealPointerDown, !1), document.removeEventListener("pointerdown", this.onDocumentPointerDown, !1);
1973
1994
  }
1974
1995
  focus() {
1975
- this.state !== U && (this.Reveal.getRevealElement().classList.add("focused"), document.addEventListener("pointerdown", this.onDocumentPointerDown, !1)), this.state = U;
1996
+ this.state !== Qe && (this.Reveal.getRevealElement().classList.add("focused"), document.addEventListener("pointerdown", this.onDocumentPointerDown, !1)), this.state = Qe;
1976
1997
  }
1977
1998
  blur() {
1978
- this.state !== Qe && (this.Reveal.getRevealElement().classList.remove("focused"), document.removeEventListener("pointerdown", this.onDocumentPointerDown, !1)), this.state = Qe;
1999
+ this.state !== $e && (this.Reveal.getRevealElement().classList.remove("focused"), document.removeEventListener("pointerdown", this.onDocumentPointerDown, !1)), this.state = $e;
1979
2000
  }
1980
2001
  isFocused() {
1981
- return this.state === U;
2002
+ return this.state === Qe;
1982
2003
  }
1983
2004
  destroy() {
1984
2005
  this.Reveal.getRevealElement().classList.remove("focused");
@@ -1987,10 +2008,10 @@ var Ue = class {
1987
2008
  this.focus();
1988
2009
  }
1989
2010
  onDocumentPointerDown(e) {
1990
- let t = F(e.target, ".reveal");
2011
+ let t = I(e.target, ".reveal");
1991
2012
  (!t || t !== this.Reveal.getRevealElement()) && this.blur();
1992
2013
  }
1993
- }, et = class {
2014
+ }, tt = class {
1994
2015
  constructor(e) {
1995
2016
  this.Reveal = e;
1996
2017
  }
@@ -2020,7 +2041,7 @@ var Ue = class {
2020
2041
  destroy() {
2021
2042
  this.element.remove();
2022
2043
  }
2023
- }, tt = class {
2044
+ }, nt = class {
2024
2045
  constructor(e, t) {
2025
2046
  this.diameter = 100, this.diameter2 = this.diameter / 2, this.thickness = 6, this.playing = !1, this.progress = 0, this.progressOffset = 1, this.container = e, this.progressCheck = t, this.canvas = document.createElement("canvas"), this.canvas.className = "playback", this.canvas.width = this.diameter, this.canvas.height = this.diameter, this.canvas.style.width = this.diameter2 + "px", this.canvas.style.height = this.diameter2 + "px", this.context = this.canvas.getContext("2d"), this.container.appendChild(this.canvas), this.render();
2026
2047
  }
@@ -2047,7 +2068,7 @@ var Ue = class {
2047
2068
  destroy() {
2048
2069
  this.playing = !1, this.canvas.parentNode && this.container.removeChild(this.canvas);
2049
2070
  }
2050
- }, nt = {
2071
+ }, rt = {
2051
2072
  width: 960,
2052
2073
  height: 700,
2053
2074
  margin: .04,
@@ -2137,8 +2158,8 @@ var Ue = class {
2137
2158
  pdfPageHeightOffset: -1,
2138
2159
  dependencies: [],
2139
2160
  plugins: []
2140
- }, rt = "6.0.1";
2141
- function it(e, t) {
2161
+ }, it = "6.0.2";
2162
+ function at(e, t) {
2142
2163
  arguments.length < 2 && (t = arguments[0], e = document.querySelector(".reveal"));
2143
2164
  let n = {}, r = {}, i = !1, a = !1, o, s, c, l, u = {
2144
2165
  hasNavigatedHorizontally: !1,
@@ -2146,19 +2167,19 @@ function it(e, t) {
2146
2167
  }, d = [], f = 1, p = {
2147
2168
  layout: "",
2148
2169
  overview: ""
2149
- }, m = {}, h = "idle", g = 0, _, v = 0, y = -1, b = !1, x = new xe(n), S = new Ee(n), C = new B(n), ee = new je(n), w = new ke(n), T = new Ie(n), te = new ze(n), E = new Be(n), D = new Ve(n), O = new He(n), k = new Ue(n), ne = new We(n), re = new Ge(n), A = new Ke(n), j = new Je(n), M = new Ye(n), P = new $e(n), ce = new Ze(n), I = new et(n);
2150
- function fe(a) {
2170
+ }, m = {}, h = "idle", g = 0, _, v = 0, y = -1, b = !1, x = new be(n), S = new Te(n), C = new V(n), ee = new Ae(n), w = new Oe(n), T = new Fe(n), E = new Re(n), D = new ze(n), O = new Be(n), k = new Ve(n), A = new He(n), te = new Ue(n), ne = new We(n), j = new Ge(n), M = new qe(n), N = new Je(n), F = new et(n), se = new Ze(n), L = new tt(n);
2171
+ function de(a) {
2151
2172
  if (!e) throw "Unable to find presentation root (<div class=\"reveal\">).";
2152
2173
  if (i) throw "Reveal.js has already been initialized.";
2153
2174
  if (i = !0, m.wrapper = e, m.slides = e.querySelector(".slides"), !m.slides) throw "Unable to find slides container (<div class=\"slides\">).";
2154
- return r = H(H(H(H(H({}, nt), r), t), a), ue()), /print-pdf/gi.test(window.location.search) && (r.view = "print"), pe(), window.addEventListener("load", U, !1), j.load(r.plugins, r.dependencies).then(me), new Promise((e) => n.on("ready", e));
2175
+ return r = U(U(U(U(U({}, rt), r), t), a), le()), /print-pdf/gi.test(window.location.search) && (r.view = "print"), fe(), window.addEventListener("load", Xe, !1), M.load(r.plugins, r.dependencies).then(pe), new Promise((e) => n.on("ready", e));
2155
2176
  }
2156
- function pe() {
2157
- r.embedded === !0 ? m.viewport = F(e, ".reveal-viewport") || e : (m.viewport = document.body, document.documentElement.classList.add("reveal-full-page")), m.viewport.classList.add("reveal-viewport");
2177
+ function fe() {
2178
+ r.embedded === !0 ? m.viewport = I(e, ".reveal-viewport") || e : (m.viewport = document.body, document.documentElement.classList.add("reveal-full-page")), m.viewport.classList.add("reveal-viewport");
2158
2179
  }
2159
- function me() {
2160
- i !== !1 && (a = !0, L(), _e(), Oe(), we(), De(), q(), Ae(), w.update(!0), he(), k.readURL(), setTimeout(() => {
2161
- m.slides.classList.remove("no-transition"), m.wrapper.classList.add("ready"), V({
2180
+ function pe() {
2181
+ i !== !1 && (a = !0, R(), ge(), De(), Ce(), Ee(), xt(), ke(), w.update(!0), me(), A.readURL(), setTimeout(() => {
2182
+ m.slides.classList.remove("no-transition"), m.wrapper.classList.add("ready"), H({
2162
2183
  type: "ready",
2163
2184
  data: {
2164
2185
  indexh: o,
@@ -2168,27 +2189,27 @@ function it(e, t) {
2168
2189
  });
2169
2190
  }, 1));
2170
2191
  }
2171
- function he() {
2192
+ function me() {
2172
2193
  let e = r.view === "print", t = r.view === "scroll" || r.view === "reader";
2173
- (e || t) && (e ? Ne() : ce.unbind(), m.viewport.classList.add("loading-scroll-mode"), e ? document.readyState === "complete" ? te.activate() : window.addEventListener("load", () => te.activate()) : T.activate());
2194
+ (e || t) && (e ? Me() : se.unbind(), m.viewport.classList.add("loading-scroll-mode"), e ? document.readyState === "complete" ? E.activate() : window.addEventListener("load", () => E.activate()) : T.activate());
2174
2195
  }
2175
- function L() {
2176
- r.showHiddenSlides || N(m.wrapper, "section[data-visibility=\"hidden\"]").forEach((e) => {
2196
+ function R() {
2197
+ r.showHiddenSlides || P(m.wrapper, "section[data-visibility=\"hidden\"]").forEach((e) => {
2177
2198
  let t = e.parentNode;
2178
2199
  t.childElementCount === 1 && /section/i.test(t.nodeName) ? t.remove() : e.remove();
2179
2200
  });
2180
2201
  }
2181
- function _e() {
2182
- m.slides.classList.add("no-transition"), ge ? m.wrapper.classList.add("no-hover") : m.wrapper.classList.remove("no-hover"), w.render(), S.render(), C.render(), ne.render(), re.render(), I.render(), m.pauseOverlay = le(m.wrapper, "div", "pause-overlay", r.controls ? "<button class=\"resume-button\">Resume presentation</button>" : null), m.statusElement = ve(), m.wrapper.setAttribute("role", "application");
2202
+ function ge() {
2203
+ m.slides.classList.add("no-transition"), he ? m.wrapper.classList.add("no-hover") : m.wrapper.classList.remove("no-hover"), w.render(), S.render(), C.render(), te.render(), ne.render(), L.render(), m.pauseOverlay = ce(m.wrapper, "div", "pause-overlay", r.controls ? "<button class=\"resume-button\">Resume presentation</button>" : null), m.statusElement = _e(), m.wrapper.setAttribute("role", "application");
2183
2204
  }
2184
- function ve() {
2205
+ function _e() {
2185
2206
  let e = m.wrapper.querySelector(".aria-status");
2186
2207
  return e || (e = document.createElement("div"), e.style.position = "absolute", e.style.height = "1px", e.style.width = "1px", e.style.overflow = "hidden", e.style.clip = "rect( 1px, 1px, 1px, 1px )", e.classList.add("aria-status"), e.setAttribute("aria-live", "polite"), e.setAttribute("aria-atomic", "true"), m.wrapper.appendChild(e)), e;
2187
2208
  }
2188
- function ye(e) {
2209
+ function ve(e) {
2189
2210
  m.statusElement.textContent = e;
2190
2211
  }
2191
- function be(e) {
2212
+ function ye(e) {
2192
2213
  let t = "";
2193
2214
  if (e.nodeType === 3) t += e.textContent.trim();
2194
2215
  else if (e.nodeType === 1) {
@@ -2196,10 +2217,10 @@ function it(e, t) {
2196
2217
  if (n !== "true" && !r) {
2197
2218
  if (e.tagName === "IMG" || e.tagName === "VIDEO") {
2198
2219
  let n = e.getAttribute("alt");
2199
- n && (t += R(n));
2220
+ n && (t += z(n));
2200
2221
  }
2201
2222
  Array.from(e.childNodes).forEach((e) => {
2202
- t += be(e);
2223
+ t += ye(e);
2203
2224
  }), [
2204
2225
  "P",
2205
2226
  "DIV",
@@ -2213,58 +2234,58 @@ function it(e, t) {
2213
2234
  "H5",
2214
2235
  "H6",
2215
2236
  "BLOCKQUOTE"
2216
- ].includes(e.tagName) && t.trim() !== "" && (t = R(t));
2237
+ ].includes(e.tagName) && t.trim() !== "" && (t = z(t));
2217
2238
  }
2218
2239
  }
2219
2240
  return t = t.trim(), t === "" ? "" : t + " ";
2220
2241
  }
2221
- function R(e) {
2242
+ function z(e) {
2222
2243
  let t = e.trim();
2223
2244
  return t === "" ? e : /[.!?]$/.test(t) ? t : t + ".";
2224
2245
  }
2225
- function we() {
2246
+ function Ce() {
2226
2247
  setInterval(() => {
2227
2248
  (!T.isActive() && m.wrapper.scrollTop !== 0 || m.wrapper.scrollLeft !== 0) && (m.wrapper.scrollTop = 0, m.wrapper.scrollLeft = 0);
2228
2249
  }, 1e3);
2229
2250
  }
2230
- function De() {
2251
+ function Ee() {
2231
2252
  document.addEventListener("fullscreenchange", rn), document.addEventListener("webkitfullscreenchange", rn);
2232
2253
  }
2233
- function Oe() {
2254
+ function De() {
2234
2255
  r.postMessage && window.addEventListener("message", Qt, !1);
2235
2256
  }
2236
- function Ae(e) {
2237
- let t = H({}, r);
2238
- if (typeof e == "object" && ie(r, e), n.isReady() === !1) return;
2239
- let i = m.wrapper.querySelectorAll(z).length;
2240
- m.wrapper.classList.remove(t.transition), m.wrapper.classList.add(r.transition), m.wrapper.setAttribute("data-transition-speed", r.transitionSpeed), m.wrapper.setAttribute("data-background-transition", r.backgroundTransition), m.viewport.style.setProperty("--slide-width", typeof r.width == "string" ? r.width : r.width + "px"), m.viewport.style.setProperty("--slide-height", typeof r.height == "string" ? r.height : r.height + "px"), r.shuffle && St(), ae(m.wrapper, "embedded", r.embedded), ae(m.wrapper, "rtl", r.rtl), ae(m.wrapper, "center", r.center), r.pause === !1 && ft(), ee.reset(), _ &&= (_.destroy(), null), i > 1 && r.autoSlide && r.autoSlideStoppable && (_ = new tt(m.wrapper, () => Math.min(Math.max((Date.now() - y) / g, 0), 1)), _.on("click", an), b = !1), r.navigationMode === "default" ? m.wrapper.removeAttribute("data-navigation-mode") : m.wrapper.setAttribute("data-navigation-mode", r.navigationMode), I.configure(r, t), P.configure(r, t), A.configure(r, t), ne.configure(r, t), re.configure(r, t), O.configure(r, t), E.configure(r, t), S.configure(r, t), xt();
2257
+ function ke(e) {
2258
+ let t = U({}, r);
2259
+ if (typeof e == "object" && re(r, e), n.isReady() === !1) return;
2260
+ let i = m.wrapper.querySelectorAll(B).length;
2261
+ m.wrapper.classList.remove(t.transition), m.wrapper.classList.add(r.transition), m.wrapper.setAttribute("data-transition-speed", r.transitionSpeed), m.wrapper.setAttribute("data-background-transition", r.backgroundTransition), m.viewport.style.setProperty("--slide-width", typeof r.width == "string" ? r.width : r.width + "px"), m.viewport.style.setProperty("--slide-height", typeof r.height == "string" ? r.height : r.height + "px"), r.shuffle && J(), ie(m.wrapper, "embedded", r.embedded), ie(m.wrapper, "rtl", r.rtl), ie(m.wrapper, "center", r.center), r.pause === !1 && ft(), ee.reset(), _ &&= (_.destroy(), null), i > 1 && r.autoSlide && r.autoSlideStoppable && (_ = new nt(m.wrapper, () => Math.min(Math.max((Date.now() - y) / g, 0), 1)), _.on("click", an), b = !1), r.navigationMode === "default" ? m.wrapper.removeAttribute("data-navigation-mode") : m.wrapper.setAttribute("data-navigation-mode", r.navigationMode), L.configure(r, t), F.configure(r, t), j.configure(r, t), te.configure(r, t), ne.configure(r, t), k.configure(r, t), D.configure(r, t), S.configure(r, t), q();
2262
+ }
2263
+ function je() {
2264
+ window.addEventListener("resize", tn, !1), r.touch && se.bind(), r.keyboard && k.bind(), r.progress && ne.bind(), r.respondToHashChanges && A.bind(), te.bind(), F.bind(), m.slides.addEventListener("click", en, !1), m.slides.addEventListener("transitionend", $t, !1), m.pauseOverlay.addEventListener("click", ft, !1), r.focusBodyOnPageVisibilityChange && document.addEventListener("visibilitychange", nn, !1);
2241
2265
  }
2242
2266
  function Me() {
2243
- window.addEventListener("resize", tn, !1), r.touch && ce.bind(), r.keyboard && O.bind(), r.progress && re.bind(), r.respondToHashChanges && k.bind(), ne.bind(), P.bind(), m.slides.addEventListener("click", en, !1), m.slides.addEventListener("transitionend", $t, !1), m.pauseOverlay.addEventListener("click", ft, !1), r.focusBodyOnPageVisibilityChange && document.addEventListener("visibilitychange", nn, !1);
2267
+ se.unbind(), F.unbind(), k.unbind(), te.unbind(), ne.unbind(), A.unbind(), window.removeEventListener("resize", tn, !1), m.slides.removeEventListener("click", en, !1), m.slides.removeEventListener("transitionend", $t, !1), m.pauseOverlay.removeEventListener("click", ft, !1);
2244
2268
  }
2245
2269
  function Ne() {
2246
- ce.unbind(), P.unbind(), O.unbind(), ne.unbind(), re.unbind(), k.unbind(), window.removeEventListener("resize", tn, !1), m.slides.removeEventListener("click", en, !1), m.slides.removeEventListener("transitionend", $t, !1), m.pauseOverlay.removeEventListener("click", ft, !1);
2247
- }
2248
- function Pe() {
2249
- i = !1, a !== !1 && (Ne(), Ht(), I.destroy(), P.destroy(), M.destroy(), j.destroy(), A.destroy(), ne.destroy(), re.destroy(), w.destroy(), S.destroy(), C.destroy(), document.removeEventListener("fullscreenchange", rn), document.removeEventListener("webkitfullscreenchange", rn), document.removeEventListener("visibilitychange", nn, !1), window.removeEventListener("message", Qt, !1), window.removeEventListener("load", U, !1), m.pauseOverlay && m.pauseOverlay.remove(), m.statusElement && m.statusElement.remove(), document.documentElement.classList.remove("reveal-full-page"), m.wrapper.classList.remove("ready", "center", "has-horizontal-slides", "has-vertical-slides"), m.wrapper.removeAttribute("data-transition-speed"), m.wrapper.removeAttribute("data-background-transition"), m.viewport.classList.remove("reveal-viewport"), m.viewport.style.removeProperty("--slide-width"), m.viewport.style.removeProperty("--slide-height"), m.slides.style.removeProperty("width"), m.slides.style.removeProperty("height"), m.slides.style.removeProperty("zoom"), m.slides.style.removeProperty("left"), m.slides.style.removeProperty("top"), m.slides.style.removeProperty("bottom"), m.slides.style.removeProperty("right"), m.slides.style.removeProperty("transform"), Array.from(m.wrapper.querySelectorAll(z)).forEach((e) => {
2250
- e.style.removeProperty("display"), e.style.removeProperty("top"), e.removeAttribute("hidden"), e.removeAttribute("aria-hidden");
2270
+ i = !1, a !== !1 && (Me(), Ht(), L.destroy(), F.destroy(), N.destroy(), M.destroy(), j.destroy(), te.destroy(), ne.destroy(), w.destroy(), S.destroy(), C.destroy(), document.removeEventListener("fullscreenchange", rn), document.removeEventListener("webkitfullscreenchange", rn), document.removeEventListener("visibilitychange", nn, !1), window.removeEventListener("message", Qt, !1), window.removeEventListener("load", Xe, !1), m.pauseOverlay && m.pauseOverlay.remove(), m.statusElement && m.statusElement.remove(), document.documentElement.classList.remove("reveal-full-page"), m.wrapper.classList.remove("ready", "center", "has-horizontal-slides", "has-vertical-slides"), m.wrapper.removeAttribute("data-transition-speed"), m.wrapper.removeAttribute("data-background-transition"), m.viewport.classList.remove("reveal-viewport"), m.viewport.style.removeProperty("--slide-width"), m.viewport.style.removeProperty("--slide-height"), m.slides.style.removeProperty("width"), m.slides.style.removeProperty("height"), m.slides.style.removeProperty("zoom"), m.slides.style.removeProperty("left"), m.slides.style.removeProperty("top"), m.slides.style.removeProperty("bottom"), m.slides.style.removeProperty("right"), m.slides.style.removeProperty("transform"), Array.from(m.wrapper.querySelectorAll(B)).forEach((e) => {
2271
+ e.style.removeProperty("display"), e.style.removeProperty("top"), e.removeAttribute("hidden"), e.removeAttribute("aria-hidden"), e.removeAttribute("inert");
2251
2272
  }));
2252
2273
  }
2253
- function Fe(t, n, r) {
2274
+ function Pe(t, n, r) {
2254
2275
  e.addEventListener(t, n, r);
2255
2276
  }
2256
- function Le(t, n, r) {
2277
+ function Ie(t, n, r) {
2257
2278
  e.removeEventListener(t, n, r);
2258
2279
  }
2259
- function Re(e) {
2260
- typeof e.layout == "string" && (p.layout = e.layout), typeof e.overview == "string" && (p.overview = e.overview), p.layout ? se(m.slides, p.layout + " " + p.overview) : se(m.slides, p.overview);
2280
+ function Le(e) {
2281
+ typeof e.layout == "string" && (p.layout = e.layout), typeof e.overview == "string" && (p.overview = e.overview), p.layout ? oe(m.slides, p.layout + " " + p.overview) : oe(m.slides, p.overview);
2261
2282
  }
2262
- function V({ target: e = m.wrapper, type: t, data: n, bubbles: r = !0 }) {
2283
+ function H({ target: e = m.wrapper, type: t, data: n, bubbles: r = !0 }) {
2263
2284
  let i = document.createEvent("HTMLEvents", 1, 2);
2264
- return i.initEvent(t, r, !0), ie(i, n), e.dispatchEvent(i), e === m.wrapper && Xe(t), i;
2285
+ return i.initEvent(t, r, !0), re(i, n), e.dispatchEvent(i), e === m.wrapper && Ye(t), i;
2265
2286
  }
2266
- function qe(e) {
2267
- V({
2287
+ function Ke(e) {
2288
+ H({
2268
2289
  type: "slidechanged",
2269
2290
  data: {
2270
2291
  indexh: o,
@@ -2275,29 +2296,30 @@ function it(e, t) {
2275
2296
  }
2276
2297
  });
2277
2298
  }
2278
- function Xe(e, t) {
2299
+ function Ye(e, t) {
2279
2300
  if (r.postMessageEvents && window.parent !== window.self) {
2280
2301
  let n = {
2281
2302
  namespace: "reveal",
2282
2303
  eventName: e,
2283
2304
  state: zt()
2284
2305
  };
2285
- ie(n, t), window.parent.postMessage(JSON.stringify(n), "*");
2306
+ re(n, t), window.parent.postMessage(JSON.stringify(n), "*");
2286
2307
  }
2287
2308
  }
2288
- function U() {
2289
- if (m.wrapper && !te.isActive()) {
2309
+ function Xe() {
2310
+ if (m.wrapper && !E.isActive()) {
2290
2311
  let e = m.viewport.offsetWidth, t = m.viewport.offsetHeight;
2291
2312
  if (!r.disableLayout) {
2292
- ge && !r.embedded && document.documentElement.style.setProperty("--vh", window.innerHeight * .01 + "px");
2293
- let n = T.isActive() ? W(e, t) : W(), i = f;
2294
- Qe(r.width, r.height), m.slides.style.width = n.width + "px", m.slides.style.height = n.height + "px", f = Math.min(n.presentationWidth / n.width, n.presentationHeight / n.height), f = Math.max(f, r.minScale), f = Math.min(f, r.maxScale), f === 1 || T.isActive() ? (m.slides.style.zoom = "", m.slides.style.left = "", m.slides.style.top = "", m.slides.style.bottom = "", m.slides.style.right = "", Re({ layout: "" })) : (m.slides.style.zoom = "", m.slides.style.left = "50%", m.slides.style.top = "50%", m.slides.style.bottom = "auto", m.slides.style.right = "auto", Re({ layout: "translate(-50%, -50%) scale(" + f + ")" }));
2295
- let a = Array.from(m.wrapper.querySelectorAll(z));
2313
+ he && !r.embedded && document.documentElement.style.setProperty("--vh", window.innerHeight * .01 + "px");
2314
+ let n = T.isActive() ? at(e, t) : at(), i = f;
2315
+ Qe(r.width, r.height), m.slides.style.width = n.width + "px", m.slides.style.height = n.height + "px", f = Math.min(n.presentationWidth / n.width, n.presentationHeight / n.height), f = Math.max(f, r.minScale), f = Math.min(f, r.maxScale), f = Math.round(f * 100) / 100, f === 1 || T.isActive() ? (m.slides.style.zoom = "", m.slides.style.left = "", m.slides.style.top = "", m.slides.style.bottom = "", m.slides.style.right = "", Le({ layout: "" })) : (m.slides.style.zoom = "", m.slides.style.left = "50%", m.slides.style.top = "50%", m.slides.style.bottom = "auto", m.slides.style.right = "auto", Le({ layout: "translate(-50%, -50%) scale(" + f + ")" }));
2316
+ let a = Array.from(m.wrapper.querySelectorAll(B)).filter((e) => e.style.display !== "none"), o = Array(a.length);
2296
2317
  for (let e = 0, t = a.length; e < t; e++) {
2297
2318
  let t = a[e];
2298
- t.style.display !== "none" && (r.center || t.classList.contains("center") ? t.classList.contains("stack") ? t.style.top = 0 : t.style.top = Math.max((n.height - t.scrollHeight) / 2, 0) + "px" : t.style.top = "");
2319
+ r.center || t.classList.contains("center") ? t.classList.contains("stack") ? o[e] = 0 : o[e] = Math.max((n.height - t.scrollHeight) / 2, 0) + "px" : o[e] = "";
2299
2320
  }
2300
- i !== f && V({
2321
+ for (let e = 0, t = a.length; e < t; e++) a[e].style.top = o[e];
2322
+ i !== f && H({
2301
2323
  type: "resize",
2302
2324
  data: {
2303
2325
  oldScale: i,
@@ -2306,25 +2328,25 @@ function it(e, t) {
2306
2328
  }
2307
2329
  });
2308
2330
  }
2309
- it(), m.viewport.style.setProperty("--slide-scale", f), m.viewport.style.setProperty("--viewport-width", e + "px"), m.viewport.style.setProperty("--viewport-height", t + "px"), T.layout(), re.update(), w.updateParallax(), D.isActive() && D.update();
2331
+ $e(), m.viewport.style.setProperty("--slide-scale", f), m.viewport.style.setProperty("--viewport-width", e + "px"), m.viewport.style.setProperty("--viewport-height", t + "px"), T.layout(), ne.update(), w.updateParallax(), O.isActive() && O.update();
2310
2332
  }
2311
2333
  }
2312
2334
  function Qe(e, t) {
2313
- N(m.slides, "section > .stretch, section > .r-stretch").forEach((n) => {
2314
- let r = de(n, t);
2335
+ P(m.slides, "section > .stretch, section > .r-stretch").forEach((n) => {
2336
+ let r = ue(n, t);
2315
2337
  if (/(img|video)/gi.test(n.nodeName)) {
2316
2338
  let t = n.naturalWidth || n.videoWidth, i = n.naturalHeight || n.videoHeight, a = Math.min(e / t, r / i);
2317
2339
  n.style.width = t * a + "px", n.style.height = i * a + "px";
2318
2340
  } else n.style.width = e + "px", n.style.height = r + "px";
2319
2341
  });
2320
2342
  }
2321
- function it() {
2322
- if (m.wrapper && !r.disableLayout && !te.isActive() && typeof r.scrollActivationWidth == "number" && r.view !== "scroll") {
2323
- let e = W();
2343
+ function $e() {
2344
+ if (m.wrapper && !r.disableLayout && !E.isActive() && typeof r.scrollActivationWidth == "number" && r.view !== "scroll") {
2345
+ let e = at();
2324
2346
  e.presentationWidth > 0 && e.presentationWidth <= r.scrollActivationWidth ? T.isActive() || (w.create(), T.activate()) : T.isActive() && T.deactivate();
2325
2347
  }
2326
2348
  }
2327
- function W(e, t) {
2349
+ function at(e, t) {
2328
2350
  let n = r.width, i = r.height;
2329
2351
  r.disableLayout && (n = m.slides.offsetWidth, i = m.slides.offsetHeight);
2330
2352
  let a = {
@@ -2335,40 +2357,40 @@ function it(e, t) {
2335
2357
  };
2336
2358
  return a.presentationWidth -= a.presentationWidth * r.margin, a.presentationHeight -= a.presentationHeight * r.margin, typeof a.width == "string" && /%$/.test(a.width) && (a.width = parseInt(a.width, 10) / 100 * a.presentationWidth), typeof a.height == "string" && /%$/.test(a.height) && (a.height = parseInt(a.height, 10) / 100 * a.presentationHeight), a;
2337
2359
  }
2338
- function at(e, t) {
2360
+ function W(e, t) {
2339
2361
  typeof e == "object" && typeof e.setAttribute == "function" && e.setAttribute("data-previous-indexv", t || 0);
2340
2362
  }
2341
- function G(e) {
2363
+ function ot(e) {
2342
2364
  if (typeof e == "object" && typeof e.setAttribute == "function" && e.classList.contains("stack")) {
2343
2365
  let t = e.hasAttribute("data-start-indexv") ? "data-start-indexv" : "data-previous-indexv";
2344
2366
  return parseInt(e.getAttribute(t) || 0, 10);
2345
2367
  }
2346
2368
  return 0;
2347
2369
  }
2348
- function ot(e = l) {
2370
+ function G(e = l) {
2349
2371
  return e && e.parentNode && !!e.parentNode.nodeName.match(/section/i);
2350
2372
  }
2351
2373
  function st(e = l) {
2352
2374
  return e.classList.contains(".stack") || e.querySelector("section") !== null;
2353
2375
  }
2354
2376
  function ct() {
2355
- return l && ot(l) ? !l.nextElementSibling : !1;
2377
+ return l && G(l) ? !l.nextElementSibling : !1;
2356
2378
  }
2357
2379
  function lt() {
2358
2380
  return o === 0 && s === 0;
2359
2381
  }
2360
2382
  function ut() {
2361
- return l ? !(l.nextElementSibling || ot(l) && l.parentNode.nextElementSibling) : !1;
2383
+ return l ? !(l.nextElementSibling || G(l) && l.parentNode.nextElementSibling) : !1;
2362
2384
  }
2363
2385
  function dt() {
2364
2386
  if (r.pause) {
2365
2387
  let e = m.wrapper.classList.contains("paused");
2366
- Ht(), m.wrapper.classList.add("paused"), e === !1 && V({ type: "paused" });
2388
+ Ht(), m.wrapper.classList.add("paused"), e === !1 && H({ type: "paused" });
2367
2389
  }
2368
2390
  }
2369
2391
  function ft() {
2370
2392
  let e = m.wrapper.classList.contains("paused");
2371
- m.wrapper.classList.remove("paused"), Vt(), e && V({ type: "resumed" });
2393
+ m.wrapper.classList.remove("paused"), Vt(), e && H({ type: "resumed" });
2372
2394
  }
2373
2395
  function pt(e) {
2374
2396
  typeof e == "boolean" ? e ? dt() : ft() : mt() ? ft() : dt();
@@ -2385,8 +2407,8 @@ function it(e, t) {
2385
2407
  function _t() {
2386
2408
  return !!(g && !b);
2387
2409
  }
2388
- function vt(t, n, i, a) {
2389
- if (V({
2410
+ function K(t, n, i, a) {
2411
+ if (H({
2390
2412
  type: "beforeslidechange",
2391
2413
  data: {
2392
2414
  indexh: t === void 0 ? o : t,
@@ -2395,26 +2417,26 @@ function it(e, t) {
2395
2417
  }
2396
2418
  }).defaultPrevented) return;
2397
2419
  c = l;
2398
- let u = m.wrapper.querySelectorAll(Se);
2420
+ let u = m.wrapper.querySelectorAll(xe);
2399
2421
  if (T.isActive()) {
2400
2422
  let e = T.getSlideByIndices(t, n);
2401
2423
  e && T.scrollToSlide(e);
2402
2424
  return;
2403
2425
  }
2404
2426
  if (u.length === 0) return;
2405
- n === void 0 && !D.isActive() && (n = G(u[t])), c && c.parentNode && c.parentNode.classList.contains("stack") && at(c.parentNode, s);
2427
+ n === void 0 && !O.isActive() && (n = ot(u[t])), c && c.parentNode && c.parentNode.classList.contains("stack") && W(c.parentNode, s);
2406
2428
  let f = d.concat();
2407
2429
  d.length = 0;
2408
2430
  let p = o || 0, g = s || 0;
2409
- o = J(Se, t === void 0 ? o : t), s = J(Ce, n === void 0 ? s : n);
2431
+ o = St(xe, t === void 0 ? o : t), s = St(Se, n === void 0 ? s : n);
2410
2432
  let _ = o !== p || s !== g;
2411
2433
  _ || (c = null);
2412
2434
  let v = u[o], y = v.querySelectorAll("section");
2413
2435
  e.classList.toggle("is-vertical-slide", y.length > 1), l = y[s] || v;
2414
2436
  let b = !1;
2415
- _ && c && l && !D.isActive() && (h = "running", b = yt(c, l, p, g), b && m.slides.classList.add("disable-slide-transitions")), Tt(), U(), D.isActive() && D.update(), i !== void 0 && E.goto(i), c && c !== l && (c.classList.remove("present"), c.setAttribute("aria-hidden", "true"), lt() && setTimeout(() => {
2437
+ _ && c && l && !O.isActive() && (h = "running", b = vt(c, l, p, g), b && m.slides.classList.add("disable-slide-transitions")), wt(), Xe(), O.isActive() && O.update(), i !== void 0 && D.goto(i), c && c !== l && (c.classList.remove("present"), c.setAttribute("aria-hidden", "true"), lt() && setTimeout(() => {
2416
2438
  Mt().forEach((e) => {
2417
- at(e, 0);
2439
+ W(e, 0);
2418
2440
  });
2419
2441
  }, 0));
2420
2442
  stateLoop: for (let e = 0, t = d.length; e < t; e++) {
@@ -2422,64 +2444,64 @@ function it(e, t) {
2422
2444
  f.splice(t, 1);
2423
2445
  continue stateLoop;
2424
2446
  }
2425
- m.viewport.classList.add(d[e]), V({ type: d[e] });
2447
+ m.viewport.classList.add(d[e]), H({ type: d[e] });
2426
2448
  }
2427
2449
  for (; f.length;) m.viewport.classList.remove(f.pop());
2428
- _ && (x.afterSlideChanged(), qe(a)), (_ || !c) && (x.stopEmbeddedContent(c), x.startEmbeddedContent(l)), requestAnimationFrame(() => {
2429
- ye(be(l));
2430
- }), re.update(), ne.update(), I.update(), w.update(), w.updateParallax(), S.update(), E.update(), k.writeURL(), Vt(), b && (setTimeout(() => {
2450
+ _ && (x.afterSlideChanged(), Ke(a)), (_ || !c) && (x.stopEmbeddedContent(c), x.startEmbeddedContent(l)), requestAnimationFrame(() => {
2451
+ ve(ye(l));
2452
+ }), ne.update(), te.update(), L.update(), w.update(), w.updateParallax(), S.update(), D.update(), A.writeURL(), Vt(), b && (setTimeout(() => {
2431
2453
  m.slides.classList.remove("disable-slide-transitions");
2432
2454
  }, 0), r.autoAnimate && ee.run(c, l));
2433
2455
  }
2434
- function yt(e, t, n, r) {
2456
+ function vt(e, t, n, r) {
2435
2457
  return e.hasAttribute("data-auto-animate") && t.hasAttribute("data-auto-animate") && e.getAttribute("data-auto-animate-id") === t.getAttribute("data-auto-animate-id") && !(o > n || s > r ? t : e).hasAttribute("data-auto-animate-restart");
2436
2458
  }
2437
- function bt(e, t, n) {
2459
+ function yt(e, t, n) {
2438
2460
  let i = o || 0;
2439
2461
  o = t, s = n;
2440
2462
  let a = l !== e;
2441
- c = l, l = e, l && c && r.autoAnimate && yt(c, l, i, s) && ee.run(c, l), a && (x.afterSlideChanged(), c && (x.stopEmbeddedContent(c), x.stopEmbeddedContent(c.slideBackgroundElement)), x.startEmbeddedContent(l), x.startEmbeddedContent(l.slideBackgroundElement)), requestAnimationFrame(() => {
2442
- ye(be(l));
2443
- }), qe();
2463
+ c = l, l = e, l && c && r.autoAnimate && vt(c, l, i, s) && ee.run(c, l), a && (x.afterSlideChanged(), c && (x.stopEmbeddedContent(c), x.stopEmbeddedContent(c.slideBackgroundElement)), x.startEmbeddedContent(l), x.startEmbeddedContent(l.slideBackgroundElement)), requestAnimationFrame(() => {
2464
+ ve(ye(l));
2465
+ }), Ke();
2444
2466
  }
2445
- function xt() {
2446
- Ne(), Me(), U(), g = r.autoSlide, Vt(), w.create(), k.writeURL(), r.sortFragmentsOnSync === !0 && E.sortAll(), o !== void 0 && (o = J(Se, o), s = J(Ce, s)), ne.update(), re.update(), Tt(), I.update(), I.updateVisibility(), M.update(), w.update(!0), S.update(), x.formatEmbeddedContent(), r.autoPlayMedia === !1 ? x.stopEmbeddedContent(l, { unloadIframes: !1 }) : x.startEmbeddedContent(l), D.isActive() && D.layout(), V({ type: "sync" });
2467
+ function q() {
2468
+ Me(), je(), Xe(), g = r.autoSlide, Vt(), w.create(), A.writeURL(), r.sortFragmentsOnSync === !0 && D.sortAll(), o !== void 0 && (o = St(xe, o), s = St(Se, s)), te.update(), ne.update(), wt(), L.update(), L.updateVisibility(), N.update(), w.update(!0), S.update(), x.formatEmbeddedContent(), r.autoPlayMedia === !1 ? x.stopEmbeddedContent(l, { unloadIframes: !1 }) : x.startEmbeddedContent(l), O.isActive() && O.layout(), H({ type: "sync" });
2447
2469
  }
2448
- function K(e = l) {
2449
- w.sync(e), E.sync(e), x.load(e), w.update(), I.update(), V({
2470
+ function bt(e = l) {
2471
+ w.sync(e), D.sync(e), x.load(e), w.update(), L.update(), H({
2450
2472
  type: "slidesync",
2451
2473
  data: { slide: e }
2452
2474
  });
2453
2475
  }
2454
- function q() {
2476
+ function xt() {
2455
2477
  At().forEach((e) => {
2456
- N(e, "section").forEach((e, t) => {
2478
+ P(e, "section").forEach((e, t) => {
2457
2479
  t > 0 && (e.classList.remove("present"), e.classList.remove("past"), e.classList.add("future"), e.setAttribute("aria-hidden", "true"));
2458
2480
  });
2459
2481
  });
2460
2482
  }
2461
- function St(e = At()) {
2483
+ function J(e = At()) {
2462
2484
  e.forEach((t, n) => {
2463
2485
  let r = e[Math.floor(Math.random() * e.length)];
2464
2486
  r.parentNode === t.parentNode && t.parentNode.insertBefore(t, r);
2465
2487
  let i = t.querySelectorAll("section");
2466
- i.length && St(i);
2488
+ i.length && J(i);
2467
2489
  });
2468
2490
  }
2469
- function J(e, t) {
2470
- let n = N(m.wrapper, e), i = n.length, a = T.isActive() || te.isActive(), o = !1, s = !1;
2491
+ function St(e, t) {
2492
+ let n = P(m.wrapper, e), i = n.length, a = T.isActive() || E.isActive(), o = !1, s = !1;
2471
2493
  if (i) {
2472
2494
  r.loop && (t >= i && (o = !0), t %= i, t < 0 && (t = i + t, s = !0)), t = Math.max(Math.min(t, i - 1), 0);
2473
2495
  for (let e = 0; e < i; e++) {
2474
- let i = n[e], c = r.rtl && !ot(i);
2496
+ let i = n[e], c = r.rtl && !G(i);
2475
2497
  if (i.classList.remove("past"), i.classList.remove("present"), i.classList.remove("future"), i.setAttribute("hidden", ""), i.setAttribute("aria-hidden", "true"), i.querySelector("section") && i.classList.add("stack"), a) {
2476
2498
  i.classList.add("present");
2477
2499
  continue;
2478
2500
  }
2479
- e < t ? (i.classList.add(c ? "future" : "past"), r.fragments && Ct(i)) : e > t ? (i.classList.add(c ? "past" : "future"), r.fragments && wt(i)) : e === t && r.fragments && (o ? wt(i) : s && Ct(i));
2501
+ e < t ? (i.classList.add(c ? "future" : "past"), r.fragments && Y(i)) : e > t ? (i.classList.add(c ? "past" : "future"), r.fragments && Ct(i)) : e === t && r.fragments && (o ? Ct(i) : s && Y(i));
2480
2502
  }
2481
2503
  let e = n[t], c = e.classList.contains("present");
2482
- e.classList.add("present"), e.removeAttribute("hidden"), e.removeAttribute("aria-hidden"), c || V({
2504
+ e.classList.add("present"), e.removeAttribute("hidden"), e.removeAttribute("aria-hidden"), c || H({
2483
2505
  target: e,
2484
2506
  type: "visible",
2485
2507
  bubbles: !1
@@ -2489,25 +2511,25 @@ function it(e, t) {
2489
2511
  } else t = 0;
2490
2512
  return t;
2491
2513
  }
2492
- function Ct(e) {
2493
- N(e, ".fragment").forEach((e) => {
2514
+ function Y(e) {
2515
+ P(e, ".fragment").forEach((e) => {
2494
2516
  e.classList.add("visible"), e.classList.remove("current-fragment");
2495
2517
  });
2496
2518
  }
2497
- function wt(e) {
2498
- N(e, ".fragment.visible").forEach((e) => {
2519
+ function Ct(e) {
2520
+ P(e, ".fragment.visible").forEach((e) => {
2499
2521
  e.classList.remove("visible", "current-fragment");
2500
2522
  });
2501
2523
  }
2502
- function Tt() {
2524
+ function wt() {
2503
2525
  let e = At(), t = e.length, n, i;
2504
2526
  if (t && o !== void 0) {
2505
- let a = D.isActive(), c = a ? 10 : r.viewDistance;
2506
- ge && (c = a ? 6 : r.mobileViewDistance), te.isActive() && (c = Number.MAX_VALUE);
2527
+ let a = O.isActive(), c = a ? 10 : r.viewDistance;
2528
+ he && (c = a ? 6 : r.mobileViewDistance), E.isActive() && (c = Number.MAX_VALUE);
2507
2529
  for (let l = 0; l < t; l++) {
2508
- let u = e[l], d = N(u, "section"), f = d.length;
2530
+ let u = e[l], d = P(u, "section"), f = d.length;
2509
2531
  if (n = Math.abs((o || 0) - l) || 0, r.loop && (n = Math.abs(((o || 0) - l) % (t - c)) || 0), n < c ? x.load(u) : x.unload(u), f) {
2510
- let e = a ? 0 : G(u);
2532
+ let e = a ? 0 : ot(u);
2511
2533
  for (let t = 0; t < f; t++) {
2512
2534
  let r = d[t];
2513
2535
  i = Math.abs(l === (o || 0) ? (s || 0) - t : t - e), n + i < c ? x.load(r) : x.unload(r);
@@ -2516,16 +2538,20 @@ function it(e, t) {
2516
2538
  }
2517
2539
  Pt() ? m.wrapper.classList.add("has-vertical-slides") : m.wrapper.classList.remove("has-vertical-slides"), Nt() ? m.wrapper.classList.add("has-horizontal-slides") : m.wrapper.classList.remove("has-horizontal-slides");
2518
2540
  }
2541
+ let a = O.isActive() || T.isActive() || E.isActive();
2542
+ P(m.wrapper, B).forEach((e) => {
2543
+ e.toggleAttribute("inert", !a && e !== l && !e.contains(l));
2544
+ });
2519
2545
  }
2520
- function Y({ includeFragments: e = !1 } = {}) {
2521
- let t = m.wrapper.querySelectorAll(Se), n = m.wrapper.querySelectorAll(Ce), i = {
2546
+ function Tt({ includeFragments: e = !1 } = {}) {
2547
+ let t = m.wrapper.querySelectorAll(xe), n = m.wrapper.querySelectorAll(Se), i = {
2522
2548
  left: o > 0,
2523
2549
  right: o < t.length - 1,
2524
2550
  up: s > 0,
2525
2551
  down: s < n.length - 1
2526
2552
  };
2527
2553
  if (r.loop && (t.length > 1 && (i.left = !0, i.right = !0), n.length > 1 && (i.up = !0, i.down = !0)), t.length > 1 && r.navigationMode === "linear" && (i.right = i.right || i.down, i.left = i.left || i.up), e === !0) {
2528
- let e = E.availableRoutes();
2554
+ let e = D.availableRoutes();
2529
2555
  i.left = i.left || e.prev, i.up = i.up || e.prev, i.down = i.down || e.next, i.right = i.right || e.next;
2530
2556
  }
2531
2557
  if (r.rtl) {
@@ -2563,8 +2589,8 @@ function it(e, t) {
2563
2589
  if (e) {
2564
2590
  if (T.isActive()) t = parseInt(e.getAttribute("data-index-h"), 10), e.getAttribute("data-index-v") && (n = parseInt(e.getAttribute("data-index-v"), 10));
2565
2591
  else {
2566
- let r = ot(e), i = r ? e.parentNode : e, a = At();
2567
- t = Math.max(a.indexOf(i), 0), n = void 0, r && (n = Math.max(N(e.parentNode, "section").indexOf(e), 0));
2592
+ let r = G(e), i = r ? e.parentNode : e, a = At();
2593
+ t = Math.max(a.indexOf(i), 0), n = void 0, r && (n = Math.max(P(e.parentNode, "section").indexOf(e), 0));
2568
2594
  }
2569
2595
  }
2570
2596
  if (!e && l && l.querySelectorAll(".fragment").length > 0) {
@@ -2578,16 +2604,16 @@ function it(e, t) {
2578
2604
  };
2579
2605
  }
2580
2606
  function kt() {
2581
- return N(m.wrapper, z + ":not(.stack):not([data-visibility=\"uncounted\"])");
2607
+ return P(m.wrapper, B + ":not(.stack):not([data-visibility=\"uncounted\"])");
2582
2608
  }
2583
2609
  function At() {
2584
- return N(m.wrapper, Se);
2610
+ return P(m.wrapper, xe);
2585
2611
  }
2586
2612
  function jt() {
2587
- return N(m.wrapper, ".slides>section>section");
2613
+ return P(m.wrapper, ".slides>section>section");
2588
2614
  }
2589
2615
  function Mt() {
2590
- return N(m.wrapper, Se + ".stack");
2616
+ return P(m.wrapper, xe + ".stack");
2591
2617
  }
2592
2618
  function Nt() {
2593
2619
  return At().length > 1;
@@ -2618,27 +2644,27 @@ function it(e, t) {
2618
2644
  }
2619
2645
  function zt() {
2620
2646
  let e = Ot();
2621
- return H({
2647
+ return U({
2622
2648
  indexh: e.h,
2623
2649
  indexv: e.v,
2624
2650
  indexf: e.f,
2625
2651
  paused: mt(),
2626
- overview: D.isActive()
2627
- }, M.getState());
2652
+ overview: O.isActive()
2653
+ }, N.getState());
2628
2654
  }
2629
2655
  function Bt(e) {
2630
2656
  if (typeof e == "object") {
2631
- vt(oe(e.indexh), oe(e.indexv), oe(e.indexf));
2632
- let t = oe(e.paused), n = oe(e.overview);
2633
- typeof t == "boolean" && t !== mt() && pt(t), typeof n == "boolean" && n !== D.isActive() && D.toggle(n), M.setState(e);
2657
+ K(ae(e.indexh), ae(e.indexv), ae(e.indexf));
2658
+ let t = ae(e.paused), n = ae(e.overview);
2659
+ typeof t == "boolean" && t !== mt() && pt(t), typeof n == "boolean" && n !== O.isActive() && O.toggle(n), N.setState(e);
2634
2660
  }
2635
2661
  }
2636
2662
  function Vt() {
2637
2663
  if (Ht(), l && r.autoSlide !== !1) {
2638
2664
  let e = l.querySelector(".current-fragment[data-autoslide]"), t = e ? e.getAttribute("data-autoslide") : null, n = l.parentNode ? l.parentNode.getAttribute("data-autoslide") : null, i = l.getAttribute("data-autoslide");
2639
- t ? g = parseInt(t, 10) : i ? g = parseInt(i, 10) : n ? g = parseInt(n, 10) : (g = r.autoSlide, l.querySelectorAll(".fragment").length === 0 && N(l, "video, audio").forEach((e) => {
2665
+ t ? g = parseInt(t, 10) : i ? g = parseInt(i, 10) : n ? g = parseInt(n, 10) : (g = r.autoSlide, l.querySelectorAll(".fragment").length === 0 && P(l, "video, audio").forEach((e) => {
2640
2666
  e.hasAttribute("data-autoplay") && g && e.duration * 1e3 / e.playbackRate > g && (g = e.duration * 1e3 / e.playbackRate + 1e3);
2641
- })), g && !b && !mt() && !D.isActive() && (!ut() || E.availableRoutes().next || r.loop === !0) && (v = setTimeout(() => {
2667
+ })), g && !b && !mt() && !O.isActive() && (!ut() || D.availableRoutes().next || r.loop === !0) && (v = setTimeout(() => {
2642
2668
  typeof r.autoSlideMethod == "function" ? r.autoSlideMethod() : Xt(), Vt();
2643
2669
  }, g), y = Date.now()), _ && _.setPlaying(v !== -1);
2644
2670
  }
@@ -2647,44 +2673,44 @@ function it(e, t) {
2647
2673
  clearTimeout(v), v = -1;
2648
2674
  }
2649
2675
  function Ut() {
2650
- g && !b && (b = !0, V({ type: "autoslidepaused" }), clearTimeout(v), _ && _.setPlaying(!1));
2676
+ g && !b && (b = !0, H({ type: "autoslidepaused" }), clearTimeout(v), _ && _.setPlaying(!1));
2651
2677
  }
2652
2678
  function Wt() {
2653
- g && b && (b = !1, V({ type: "autoslideresumed" }), Vt());
2679
+ g && b && (b = !1, H({ type: "autoslideresumed" }), Vt());
2654
2680
  }
2655
2681
  function Gt({ skipFragments: e = !1 } = {}) {
2656
2682
  if (u.hasNavigatedHorizontally = !0, T.isActive()) return T.prev();
2657
- r.rtl ? (D.isActive() || e || E.next() === !1) && Y().left && vt(o + 1, r.navigationMode === "grid" ? s : void 0) : (D.isActive() || e || E.prev() === !1) && Y().left && vt(o - 1, r.navigationMode === "grid" ? s : void 0);
2683
+ r.rtl ? (O.isActive() || e || D.next() === !1) && Tt().left && K(o + 1, r.navigationMode === "grid" ? s : void 0) : (O.isActive() || e || D.prev() === !1) && Tt().left && K(o - 1, r.navigationMode === "grid" ? s : void 0);
2658
2684
  }
2659
2685
  function Kt({ skipFragments: e = !1 } = {}) {
2660
2686
  if (u.hasNavigatedHorizontally = !0, T.isActive()) return T.next();
2661
- r.rtl ? (D.isActive() || e || E.prev() === !1) && Y().right && vt(o - 1, r.navigationMode === "grid" ? s : void 0) : (D.isActive() || e || E.next() === !1) && Y().right && vt(o + 1, r.navigationMode === "grid" ? s : void 0);
2687
+ r.rtl ? (O.isActive() || e || D.prev() === !1) && Tt().right && K(o - 1, r.navigationMode === "grid" ? s : void 0) : (O.isActive() || e || D.next() === !1) && Tt().right && K(o + 1, r.navigationMode === "grid" ? s : void 0);
2662
2688
  }
2663
2689
  function qt({ skipFragments: e = !1 } = {}) {
2664
2690
  if (T.isActive()) return T.prev();
2665
- (D.isActive() || e || E.prev() === !1) && Y().up && vt(o, s - 1);
2691
+ (O.isActive() || e || D.prev() === !1) && Tt().up && K(o, s - 1);
2666
2692
  }
2667
2693
  function Jt({ skipFragments: e = !1 } = {}) {
2668
2694
  if (u.hasNavigatedVertically = !0, T.isActive()) return T.next();
2669
- (D.isActive() || e || E.next() === !1) && Y().down && vt(o, s + 1);
2695
+ (O.isActive() || e || D.next() === !1) && Tt().down && K(o, s + 1);
2670
2696
  }
2671
2697
  function Yt({ skipFragments: e = !1 } = {}) {
2672
2698
  if (T.isActive()) return T.prev();
2673
- if (e || E.prev() === !1) {
2674
- if (Y().up) qt({ skipFragments: e });
2699
+ if (e || D.prev() === !1) {
2700
+ if (Tt().up) qt({ skipFragments: e });
2675
2701
  else {
2676
2702
  let t;
2677
- if (t = r.rtl ? N(m.wrapper, Se + ".future").pop() : N(m.wrapper, Se + ".past").pop(), t && t.classList.contains("stack")) {
2703
+ if (t = r.rtl ? P(m.wrapper, xe + ".future").pop() : P(m.wrapper, xe + ".past").pop(), t && t.classList.contains("stack")) {
2678
2704
  let e = t.querySelectorAll("section").length - 1 || void 0;
2679
- vt(o - 1, e);
2705
+ K(o - 1, e);
2680
2706
  } else r.rtl ? Kt({ skipFragments: e }) : Gt({ skipFragments: e });
2681
2707
  }
2682
2708
  }
2683
2709
  }
2684
2710
  function Xt({ skipFragments: e = !1 } = {}) {
2685
2711
  if (u.hasNavigatedHorizontally = !0, u.hasNavigatedVertically = !0, T.isActive()) return T.next();
2686
- if (e || E.next() === !1) {
2687
- let t = Y();
2712
+ if (e || D.next() === !1) {
2713
+ let t = Tt();
2688
2714
  t.down && t.right && r.loop && ct() && (t.down = !1), t.down ? Jt({ skipFragments: e }) : r.rtl ? Gt({ skipFragments: e }) : Kt({ skipFragments: e });
2689
2715
  }
2690
2716
  }
@@ -2694,9 +2720,9 @@ function it(e, t) {
2694
2720
  function Qt(e) {
2695
2721
  let t = e.data;
2696
2722
  if (typeof t == "string" && t.charAt(0) === "{" && t.charAt(t.length - 1) === "}" && (t = JSON.parse(t), t.method && typeof n[t.method] == "function")) {
2697
- if (Te.test(t.method) === !1) {
2723
+ if (we.test(t.method) === !1) {
2698
2724
  let e = n[t.method].apply(n, t.args);
2699
- Xe("callback", {
2725
+ Ye("callback", {
2700
2726
  method: t.method,
2701
2727
  result: e
2702
2728
  });
@@ -2704,7 +2730,7 @@ function it(e, t) {
2704
2730
  }
2705
2731
  }
2706
2732
  function $t(e) {
2707
- h === "running" && /section/gi.test(e.target.nodeName) && (h = "idle", V({
2733
+ h === "running" && /section/gi.test(e.target.nodeName) && (h = "idle", H({
2708
2734
  type: "slidetransitionend",
2709
2735
  data: {
2710
2736
  indexh: o,
@@ -2715,14 +2741,14 @@ function it(e, t) {
2715
2741
  }));
2716
2742
  }
2717
2743
  function en(e) {
2718
- let t = F(e.target, "a[href^=\"#\"]");
2744
+ let t = I(e.target, "a[href^=\"#\"]");
2719
2745
  if (t) {
2720
- let r = t.getAttribute("href"), i = k.getIndicesFromHash(r);
2746
+ let r = t.getAttribute("href"), i = A.getIndicesFromHash(r);
2721
2747
  i && (n.slide(i.h, i.v, i.f), e.preventDefault());
2722
2748
  }
2723
2749
  }
2724
2750
  function tn(e) {
2725
- U();
2751
+ Xe();
2726
2752
  }
2727
2753
  function nn(e) {
2728
2754
  document.hidden === !1 && document.activeElement !== document.body && (typeof document.activeElement.blur == "function" && document.activeElement.blur(), document.body.focus());
@@ -2733,17 +2759,17 @@ function it(e, t) {
2733
2759
  }, 1));
2734
2760
  }
2735
2761
  function an(e) {
2736
- ut() && r.loop === !1 ? (vt(0, 0), Wt()) : b ? Wt() : Ut();
2762
+ ut() && r.loop === !1 ? (K(0, 0), Wt()) : b ? Wt() : Ut();
2737
2763
  }
2738
2764
  let on = {
2739
- VERSION: rt,
2740
- initialize: fe,
2741
- configure: Ae,
2742
- destroy: Pe,
2743
- sync: xt,
2744
- syncSlide: K,
2745
- syncFragments: E.sync.bind(E),
2746
- slide: vt,
2765
+ VERSION: it,
2766
+ initialize: de,
2767
+ configure: ke,
2768
+ destroy: Ne,
2769
+ sync: q,
2770
+ syncSlide: bt,
2771
+ syncFragments: D.sync.bind(D),
2772
+ slide: K,
2747
2773
  left: Gt,
2748
2774
  right: Kt,
2749
2775
  up: qt,
@@ -2756,19 +2782,19 @@ function it(e, t) {
2756
2782
  navigateDown: Jt,
2757
2783
  navigatePrev: Yt,
2758
2784
  navigateNext: Xt,
2759
- navigateFragment: E.goto.bind(E),
2760
- prevFragment: E.prev.bind(E),
2761
- nextFragment: E.next.bind(E),
2762
- on: Fe,
2763
- off: Le,
2764
- addEventListener: Fe,
2765
- removeEventListener: Le,
2766
- layout: U,
2767
- shuffle: St,
2768
- availableRoutes: Y,
2769
- availableFragments: E.availableRoutes.bind(E),
2770
- toggleHelp: M.toggleHelp.bind(M),
2771
- toggleOverview: D.toggle.bind(D),
2785
+ navigateFragment: D.goto.bind(D),
2786
+ prevFragment: D.prev.bind(D),
2787
+ nextFragment: D.next.bind(D),
2788
+ on: Pe,
2789
+ off: Ie,
2790
+ addEventListener: Pe,
2791
+ removeEventListener: Ie,
2792
+ layout: Xe,
2793
+ shuffle: J,
2794
+ availableRoutes: Tt,
2795
+ availableFragments: D.availableRoutes.bind(D),
2796
+ toggleHelp: N.toggleHelp.bind(N),
2797
+ toggleOverview: O.toggle.bind(O),
2772
2798
  toggleScrollView: T.toggle.bind(T),
2773
2799
  togglePause: pt,
2774
2800
  toggleAutoSlide: gt,
@@ -2776,29 +2802,29 @@ function it(e, t) {
2776
2802
  isFirstSlide: lt,
2777
2803
  isLastSlide: ut,
2778
2804
  isLastVerticalSlide: ct,
2779
- isVerticalSlide: ot,
2805
+ isVerticalSlide: G,
2780
2806
  isVerticalStack: st,
2781
2807
  isPaused: mt,
2782
2808
  isAutoSliding: _t,
2783
- isSpeakerNotes: I.isSpeakerNotesWindow.bind(I),
2784
- isOverview: D.isActive.bind(D),
2785
- isFocused: P.isFocused.bind(P),
2786
- isOverlayOpen: M.isOpen.bind(M),
2809
+ isSpeakerNotes: L.isSpeakerNotesWindow.bind(L),
2810
+ isOverview: O.isActive.bind(O),
2811
+ isFocused: F.isFocused.bind(F),
2812
+ isOverlayOpen: N.isOpen.bind(N),
2787
2813
  isScrollView: T.isActive.bind(T),
2788
- isPrintView: te.isActive.bind(te),
2814
+ isPrintView: E.isActive.bind(E),
2789
2815
  isReady: () => a,
2790
2816
  loadSlide: x.load.bind(x),
2791
2817
  unloadSlide: x.unload.bind(x),
2792
2818
  startEmbeddedContent: () => x.startEmbeddedContent(l),
2793
2819
  stopEmbeddedContent: () => x.stopEmbeddedContent(l, { unloadIframes: !1 }),
2794
- previewIframe: M.previewIframe.bind(M),
2795
- previewImage: M.previewImage.bind(M),
2796
- previewVideo: M.previewVideo.bind(M),
2797
- showPreview: M.previewIframe.bind(M),
2798
- hidePreview: M.close.bind(M),
2799
- addEventListeners: Me,
2800
- removeEventListeners: Ne,
2801
- dispatchEvent: V,
2820
+ previewIframe: N.previewIframe.bind(N),
2821
+ previewImage: N.previewImage.bind(N),
2822
+ previewVideo: N.previewVideo.bind(N),
2823
+ showPreview: N.previewIframe.bind(N),
2824
+ hidePreview: N.close.bind(N),
2825
+ addEventListeners: je,
2826
+ removeEventListeners: Me,
2827
+ dispatchEvent: H,
2802
2828
  getState: zt,
2803
2829
  setState: Bt,
2804
2830
  getProgress: Dt,
@@ -2810,7 +2836,7 @@ function it(e, t) {
2810
2836
  getPreviousSlide: () => c,
2811
2837
  getCurrentSlide: () => l,
2812
2838
  getSlideBackground: Rt,
2813
- getSlideNotes: I.getSlideNotes.bind(I),
2839
+ getSlideNotes: L.getSlideNotes.bind(L),
2814
2840
  getSlides: kt,
2815
2841
  getHorizontalSlides: At,
2816
2842
  getVerticalSlides: jt,
@@ -2818,55 +2844,55 @@ function it(e, t) {
2818
2844
  hasVerticalSlides: Pt,
2819
2845
  hasNavigatedHorizontally: () => u.hasNavigatedHorizontally,
2820
2846
  hasNavigatedVertically: () => u.hasNavigatedVertically,
2821
- shouldAutoAnimateBetween: yt,
2822
- addKeyBinding: O.addKeyBinding.bind(O),
2823
- removeKeyBinding: O.removeKeyBinding.bind(O),
2824
- triggerKey: O.triggerKey.bind(O),
2825
- registerKeyboardShortcut: O.registerKeyboardShortcut.bind(O),
2826
- getComputedSlideSize: W,
2827
- setCurrentScrollPage: bt,
2828
- removeHiddenSlides: L,
2847
+ shouldAutoAnimateBetween: vt,
2848
+ addKeyBinding: k.addKeyBinding.bind(k),
2849
+ removeKeyBinding: k.removeKeyBinding.bind(k),
2850
+ triggerKey: k.triggerKey.bind(k),
2851
+ registerKeyboardShortcut: k.registerKeyboardShortcut.bind(k),
2852
+ getComputedSlideSize: at,
2853
+ setCurrentScrollPage: yt,
2854
+ removeHiddenSlides: R,
2829
2855
  getScale: () => f,
2830
2856
  getConfig: () => r,
2831
- getQueryHash: ue,
2832
- getSlidePath: k.getHash.bind(k),
2857
+ getQueryHash: le,
2858
+ getSlidePath: A.getHash.bind(A),
2833
2859
  getRevealElement: () => e,
2834
2860
  getSlidesElement: () => m.slides,
2835
2861
  getViewportElement: () => m.viewport,
2836
2862
  getBackgroundsElement: () => w.element,
2837
- registerPlugin: j.registerPlugin.bind(j),
2838
- hasPlugin: j.hasPlugin.bind(j),
2839
- getPlugin: j.getPlugin.bind(j),
2840
- getPlugins: j.getRegisteredPlugins.bind(j)
2863
+ registerPlugin: M.registerPlugin.bind(M),
2864
+ hasPlugin: M.hasPlugin.bind(M),
2865
+ getPlugin: M.getPlugin.bind(M),
2866
+ getPlugins: M.getRegisteredPlugins.bind(M)
2841
2867
  };
2842
- return ie(n, H(H({}, on), {}, {
2843
- announceStatus: ye,
2844
- getStatusText: be,
2845
- focus: P,
2868
+ return re(n, U(U({}, on), {}, {
2869
+ announceStatus: ve,
2870
+ getStatusText: ye,
2871
+ focus: F,
2846
2872
  scroll: T,
2847
- progress: re,
2848
- controls: ne,
2849
- location: k,
2850
- overview: D,
2851
- keyboard: O,
2852
- fragments: E,
2873
+ progress: ne,
2874
+ controls: te,
2875
+ location: A,
2876
+ overview: O,
2877
+ keyboard: k,
2878
+ fragments: D,
2853
2879
  backgrounds: w,
2854
2880
  slideContent: x,
2855
2881
  slideNumber: S,
2856
2882
  onUserInput: Zt,
2857
- closeOverlay: M.close.bind(M),
2858
- updateSlidesVisibility: Tt,
2883
+ closeOverlay: N.close.bind(N),
2884
+ updateSlidesVisibility: wt,
2859
2885
  layoutSlideContents: Qe,
2860
- transformSlides: Re,
2886
+ transformSlides: Le,
2861
2887
  cueAutoSlide: Vt,
2862
2888
  cancelAutoSlide: Ht
2863
2889
  })), on;
2864
2890
  }
2865
- var W = it, at = [];
2891
+ var W = at, ot = [];
2866
2892
  W.initialize = (e) => {
2867
2893
  let t = document.querySelector(".reveal");
2868
2894
  if (!(t instanceof HTMLElement)) throw Error("Unable to find presentation root (<div class=\"reveal\">).");
2869
- return Object.assign(W, new it(t, e)), at.map((e) => e(W)), W.initialize();
2895
+ return Object.assign(W, new at(t, e)), ot.map((e) => e(W)), W.initialize();
2870
2896
  }, [
2871
2897
  "configure",
2872
2898
  "on",
@@ -2876,13 +2902,13 @@ W.initialize = (e) => {
2876
2902
  "registerPlugin"
2877
2903
  ].forEach((e) => {
2878
2904
  W[e] = (...t) => {
2879
- at.push((n) => n[e].call(null, ...t));
2905
+ ot.push((n) => n[e].call(null, ...t));
2880
2906
  };
2881
- }), W.isReady = () => !1, W.VERSION = rt;
2907
+ }), W.isReady = () => !1, W.VERSION = it;
2882
2908
  //#endregion
2883
- //#region ../node_modules/.pnpm/@revealjs+react@0.2.1_react-dom@19.2.8_react@19.2.8__react@19.2.8_reveal.js@6.0.1/node_modules/@revealjs/react/dist/index.mjs
2884
- var G = T(), ot = (0, j.createContext)(null), st = [];
2885
- function ct(e, t) {
2909
+ //#region ../node_modules/.pnpm/@revealjs+react@0.2.2_react-dom@19.3.0_react@19.3.0__react@19.3.0_reveal.js@6.0.2/node_modules/@revealjs/react/dist/index.mjs
2910
+ var G = T(), st = (0, M.createContext)(null), ct = [];
2911
+ function lt(e, t) {
2886
2912
  if (e === t) return !1;
2887
2913
  if (!e || !t) return e !== t;
2888
2914
  let n = Object.keys(e), r = Object.keys(t);
@@ -2890,43 +2916,43 @@ function ct(e, t) {
2890
2916
  for (let r of n) if (!(r in t) || e[r] !== t[r]) return !0;
2891
2917
  return !1;
2892
2918
  }
2893
- function lt(e, t) {
2919
+ function ut(e, t) {
2894
2920
  e && (typeof e == "function" ? e(t) : e.current = t);
2895
2921
  }
2896
- function ut(e) {
2922
+ function dt(e) {
2897
2923
  return e.tagName === "SECTION";
2898
2924
  }
2899
- function dt(e, t, n) {
2900
- return Array.from(e.children).filter(ut).map((e) => {
2925
+ function ft(e, t, n) {
2926
+ return Array.from(e.children).filter(dt).map((e) => {
2901
2927
  let r = t.get(e);
2902
2928
  r === void 0 && (r = n.current++, t.set(e, r));
2903
- let i = dt(e, t, n);
2929
+ let i = ft(e, t, n);
2904
2930
  return i.length > 0 ? [r, i] : r;
2905
2931
  });
2906
2932
  }
2907
- function ft(e, t, n) {
2908
- return e ? JSON.stringify(dt(e, t, n)) : "[]";
2933
+ function pt(e, t, n) {
2934
+ return e ? JSON.stringify(ft(e, t, n)) : "[]";
2909
2935
  }
2910
- function pt({ config: e, plugins: t = st, onReady: n, onSync: r, onSlideSync: i, onSlideChange: a, onSlideTransitionEnd: o, onFragmentShown: s, onFragmentHidden: c, onOverviewShown: l, onOverviewHidden: u, onPaused: d, onResumed: f, deckRef: p, className: m, style: h, children: g }) {
2911
- let _ = (0, j.useRef)(null), v = (0, j.useRef)(null), y = (0, j.useRef)(null), [b, x] = (0, j.useState)(null), S = (0, j.useRef)(t), C = (0, j.useRef)(!1), ee = (0, j.useRef)(e), w = (0, j.useRef)(null), T = (0, j.useRef)(/* @__PURE__ */ new WeakMap()), te = (0, j.useRef)(1), E = (0, j.useRef)(!1), D = (0, j.useRef)(0);
2912
- return (0, j.useEffect)(() => {
2913
- if (E.current = !0, D.current += 1, y.current) y.current.isReady() && x(y.current);
2936
+ function mt({ config: e, plugins: t = ct, onReady: n, onSync: r, onSlideSync: i, onSlideChange: a, onSlideTransitionEnd: o, onFragmentShown: s, onFragmentHidden: c, onOverviewShown: l, onOverviewHidden: u, onPaused: d, onResumed: f, deckRef: p, className: m, style: h, children: g }) {
2937
+ let _ = (0, M.useRef)(null), v = (0, M.useRef)(null), y = (0, M.useRef)(null), [b, x] = (0, M.useState)(null), S = (0, M.useRef)(t), C = (0, M.useRef)(!1), ee = (0, M.useRef)(e), w = (0, M.useRef)(null), T = (0, M.useRef)(/* @__PURE__ */ new WeakMap()), E = (0, M.useRef)(1), D = (0, M.useRef)(!1), O = (0, M.useRef)(0);
2938
+ return (0, M.useEffect)(() => {
2939
+ if (D.current = !0, O.current += 1, y.current) y.current.isReady() && x(y.current);
2914
2940
  else {
2915
2941
  let t = new W(_.current, {
2916
2942
  ...e,
2917
2943
  plugins: S.current
2918
2944
  });
2919
2945
  ee.current = e, y.current = t, t.initialize().then(() => {
2920
- !E.current || y.current !== t || (x(t), n?.(t));
2946
+ D.current && y.current === t && (x(t), n?.(t));
2921
2947
  });
2922
2948
  }
2923
2949
  return () => {
2924
- E.current = !1;
2950
+ D.current = !1;
2925
2951
  let e = y.current;
2926
2952
  if (!e) return;
2927
- let t = ++D.current;
2953
+ let t = ++O.current;
2928
2954
  Promise.resolve().then(() => {
2929
- if (!(E.current || D.current !== t) && y.current === e) {
2955
+ if (!(D.current || O.current !== t) && y.current === e) {
2930
2956
  try {
2931
2957
  e.destroy();
2932
2958
  } catch {}
@@ -2934,7 +2960,7 @@ function pt({ config: e, plugins: t = st, onReady: n, onSync: r, onSlideSync: i,
2934
2960
  }
2935
2961
  });
2936
2962
  };
2937
- }, []), (0, j.useEffect)(() => (lt(p, b), () => lt(p, null)), [p, b]), (0, j.useEffect)(() => {
2963
+ }, []), (0, M.useEffect)(() => (ut(p, b), () => ut(p, null)), [p, b]), (0, M.useEffect)(() => {
2938
2964
  if (!b) return;
2939
2965
  let e = [
2940
2966
  ["sync", r],
@@ -2964,18 +2990,18 @@ function pt({ config: e, plugins: t = st, onReady: n, onSync: r, onSlideSync: i,
2964
2990
  u,
2965
2991
  d,
2966
2992
  f
2967
- ]), (0, j.useLayoutEffect)(() => {
2968
- !b || !y.current?.isReady() || ct(ee.current, e) && (C.current = !0, y.current.configure(e ?? {}), ee.current = e);
2969
- }, [b, e]), (0, j.useLayoutEffect)(() => {
2993
+ ]), (0, M.useLayoutEffect)(() => {
2994
+ b && y.current?.isReady() && lt(ee.current, e) && (C.current = !0, y.current.configure(e ?? {}), ee.current = e);
2995
+ }, [b, e]), (0, M.useLayoutEffect)(() => {
2970
2996
  let e = C.current;
2971
2997
  C.current = !1;
2972
- let t = ft(v.current, T.current, te);
2998
+ let t = pt(v.current, T.current, E);
2973
2999
  if (e) {
2974
3000
  w.current = t;
2975
3001
  return;
2976
3002
  }
2977
3003
  y.current?.isReady() && w.current !== t && (y.current.sync(), w.current = t);
2978
- }), /* @__PURE__ */ (0, G.jsx)(ot.Provider, {
3004
+ }), /* @__PURE__ */ (0, G.jsx)(st.Provider, {
2979
3005
  value: b,
2980
3006
  children: /* @__PURE__ */ (0, G.jsx)("div", {
2981
3007
  className: m ? `reveal ${m}` : "reveal",
@@ -2989,7 +3015,7 @@ function pt({ config: e, plugins: t = st, onReady: n, onSync: r, onSlideSync: i,
2989
3015
  })
2990
3016
  });
2991
3017
  }
2992
- var mt = {
3018
+ var ht = {
2993
3019
  background: "data-background",
2994
3020
  backgroundImage: "data-background-image",
2995
3021
  backgroundVideo: "data-background-video",
@@ -3018,12 +3044,12 @@ var mt = {
3018
3044
  backgroundInteractive: "data-background-interactive",
3019
3045
  preload: "data-preload"
3020
3046
  };
3021
- function ht(e) {
3047
+ function gt(e) {
3022
3048
  return JSON.stringify(Object.entries(e).filter(([e]) => e.startsWith("data-")).sort(([e], [t]) => e.localeCompare(t)));
3023
3049
  }
3024
- function gt(e, t) {
3050
+ function _t(e, t) {
3025
3051
  let n = { ...e }, r = n;
3026
- for (let [e, n] of Object.entries(mt)) {
3052
+ for (let [e, n] of Object.entries(ht)) {
3027
3053
  if (r[n] !== void 0) continue;
3028
3054
  let i = t[e];
3029
3055
  if (i !== void 0) {
@@ -3036,8 +3062,8 @@ function gt(e, t) {
3036
3062
  }
3037
3063
  return n;
3038
3064
  }
3039
- function _t({ children: e, background: t, backgroundImage: n, backgroundVideo: r, backgroundVideoLoop: i, backgroundVideoMuted: a, backgroundIframe: o, backgroundColor: s, backgroundGradient: c, backgroundSize: l, backgroundPosition: u, backgroundRepeat: d, backgroundOpacity: f, backgroundTransition: p, visibility: m, autoAnimate: h, autoAnimateId: g, autoAnimateRestart: _, autoAnimateUnmatched: v, autoAnimateEasing: y, autoAnimateDuration: b, autoAnimateDelay: x, transition: S, transitionSpeed: C, autoSlide: ee, notes: w, backgroundInteractive: T, preload: te, ...E }) {
3040
- let D = (0, j.useContext)(ot), O = (0, j.useRef)(null), k = (0, j.useRef)(null), ne = (0, j.useRef)(null), re = gt(E, {
3065
+ function K({ children: e, background: t, backgroundImage: n, backgroundVideo: r, backgroundVideoLoop: i, backgroundVideoMuted: a, backgroundIframe: o, backgroundColor: s, backgroundGradient: c, backgroundSize: l, backgroundPosition: u, backgroundRepeat: d, backgroundOpacity: f, backgroundTransition: p, visibility: m, autoAnimate: h, autoAnimateId: g, autoAnimateRestart: _, autoAnimateUnmatched: v, autoAnimateEasing: y, autoAnimateDuration: b, autoAnimateDelay: x, transition: S, transitionSpeed: C, autoSlide: ee, notes: w, backgroundInteractive: T, preload: E, ...D }) {
3066
+ let O = (0, M.useContext)(st), k = (0, M.useRef)(null), A = (0, M.useRef)(null), te = (0, M.useRef)(null), ne = _t(D, {
3041
3067
  background: t,
3042
3068
  backgroundImage: n,
3043
3069
  backgroundVideo: r,
@@ -3064,21 +3090,21 @@ function _t({ children: e, background: t, backgroundImage: n, backgroundVideo: r
3064
3090
  autoSlide: ee,
3065
3091
  notes: w,
3066
3092
  backgroundInteractive: T,
3067
- preload: te
3068
- }), A = ht(re);
3069
- return (0, j.useLayoutEffect)(() => {
3070
- let e = O.current;
3071
- if (!D || !e || typeof D.syncSlide != "function") return;
3072
- if (k.current !== D) {
3073
- k.current = D, ne.current = A;
3093
+ preload: E
3094
+ }), j = gt(ne);
3095
+ return (0, M.useLayoutEffect)(() => {
3096
+ let e = k.current;
3097
+ if (!O || !e || typeof O.syncSlide != "function") return;
3098
+ if (A.current !== O) {
3099
+ A.current = O, te.current = j;
3074
3100
  return;
3075
3101
  }
3076
- if (A === "[]") return;
3077
- let t = k.current === D, n = ne.current === A;
3078
- t && n || (D.syncSlide(e), k.current = D, ne.current = A);
3079
- }, [D, A]), /* @__PURE__ */ (0, G.jsx)("section", {
3080
- ref: O,
3081
- ...re,
3102
+ if (j === "[]") return;
3103
+ let t = A.current === O, n = te.current === j;
3104
+ t && n || (O.syncSlide(e), A.current = O, te.current = j);
3105
+ }, [O, j]), /* @__PURE__ */ (0, G.jsx)("section", {
3106
+ ref: k,
3107
+ ...ne,
3082
3108
  children: e
3083
3109
  });
3084
3110
  }
@@ -3103,16 +3129,16 @@ function yt() {
3103
3129
  walkTokens: null
3104
3130
  };
3105
3131
  }
3106
- var bt = yt();
3107
- function xt(e) {
3108
- bt = e;
3132
+ var q = yt();
3133
+ function bt(e) {
3134
+ q = e;
3109
3135
  }
3110
- var K = { exec: () => null };
3111
- function q(e, t = "") {
3136
+ var xt = { exec: () => null };
3137
+ function J(e, t = "") {
3112
3138
  let n = typeof e == "string" ? e : e.source, r = {
3113
3139
  replace: (e, t) => {
3114
3140
  let i = typeof t == "string" ? t : t.source;
3115
- return i = i.replace(J.caret, "$1"), n = n.replace(e, i), r;
3141
+ return i = i.replace(Y.caret, "$1"), n = n.replace(e, i), r;
3116
3142
  },
3117
3143
  getRegex: () => new RegExp(n, t)
3118
3144
  };
@@ -3124,7 +3150,7 @@ var St = (() => {
3124
3150
  } catch {
3125
3151
  return !1;
3126
3152
  }
3127
- })(), J = {
3153
+ })(), Y = {
3128
3154
  codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm,
3129
3155
  outputLinkReplace: /\\([\[\]])/g,
3130
3156
  indentCodeCompensation: /^(\s+)(?:```)/,
@@ -3181,117 +3207,117 @@ var St = (() => {
3181
3207
  headingBeginRegex: (e) => RegExp(`^ {0,${Math.min(3, e - 1)}}#`),
3182
3208
  htmlBeginRegex: (e) => RegExp(`^ {0,${Math.min(3, e - 1)}}<(?:[a-z].*>|!--)`, "i"),
3183
3209
  blockquoteBeginRegex: (e) => RegExp(`^ {0,${Math.min(3, e - 1)}}>`)
3184
- }, Ct = /^(?:[ \t]*(?:\n|$))+/, wt = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/, Tt = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, Y = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, Et = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, Dt = / {0,3}(?:[*+-]|\d{1,9}[.)])/, Ot = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/, kt = q(Ot).replace(/bull/g, Dt).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(), At = q(Ot).replace(/bull/g, Dt).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(), jt = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, Mt = /^[^\n]+/, Nt = /(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/, Pt = q(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", Nt).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), Ft = q(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, Dt).getRegex(), It = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", Lt = /<!--(?:-?>|[\s\S]*?(?:-->|$))/, Rt = q("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", "i").replace("comment", Lt).replace("tag", It).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), zt = q(jt).replace("hr", Y).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", It).getRegex(), Bt = {
3185
- blockquote: q(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", zt).getRegex(),
3210
+ }, Ct = /^(?:[ \t]*(?:\n|$))+/, wt = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/, Tt = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, Et = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, Dt = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, Ot = / {0,3}(?:[*+-]|\d{1,9}[.)])/, kt = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/, At = J(kt).replace(/bull/g, Ot).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(), jt = J(kt).replace(/bull/g, Ot).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(), Mt = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, Nt = /^[^\n]+/, Pt = /(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/, Ft = J(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", Pt).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), It = J(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, Ot).getRegex(), Lt = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", Rt = /<!--(?:-?>|[\s\S]*?(?:-->|$))/, zt = J("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", "i").replace("comment", Rt).replace("tag", Lt).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), Bt = J(Mt).replace("hr", Et).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", Lt).getRegex(), Vt = {
3211
+ blockquote: J(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", Bt).getRegex(),
3186
3212
  code: wt,
3187
- def: Pt,
3213
+ def: Ft,
3188
3214
  fences: Tt,
3189
- heading: Et,
3190
- hr: Y,
3191
- html: Rt,
3192
- lheading: kt,
3193
- list: Ft,
3194
- newline: Ct,
3195
- paragraph: zt,
3196
- table: K,
3197
- text: Mt
3198
- }, Vt = q("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", Y).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", It).getRegex(), Ht = {
3199
- ...Bt,
3215
+ heading: Dt,
3216
+ hr: Et,
3217
+ html: zt,
3200
3218
  lheading: At,
3201
- table: Vt,
3202
- paragraph: q(jt).replace("hr", Y).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", Vt).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", It).getRegex()
3203
- }, Ut = {
3204
- ...Bt,
3205
- html: q("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment", Lt).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),
3219
+ list: It,
3220
+ newline: Ct,
3221
+ paragraph: Bt,
3222
+ table: xt,
3223
+ text: Nt
3224
+ }, Ht = J("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", Et).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", Lt).getRegex(), Ut = {
3225
+ ...Vt,
3226
+ lheading: jt,
3227
+ table: Ht,
3228
+ paragraph: J(Mt).replace("hr", Et).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", Ht).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", Lt).getRegex()
3229
+ }, Wt = {
3230
+ ...Vt,
3231
+ html: J("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment", Rt).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),
3206
3232
  def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
3207
3233
  heading: /^(#{1,6})(.*)(?:\n+|$)/,
3208
- fences: K,
3234
+ fences: xt,
3209
3235
  lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
3210
- paragraph: q(jt).replace("hr", Y).replace("heading", " *#{1,6} *[^\n]").replace("lheading", kt).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex()
3211
- }, Wt = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, Gt = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, Kt = /^( {2,}|\\)\n(?!\s*$)/, qt = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/, Jt = /[\p{P}\p{S}]/u, Yt = /[\s\p{P}\p{S}]/u, Xt = /[^\s\p{P}\p{S}]/u, Zt = q(/^((?![*_])punctSpace)/, "u").replace(/punctSpace/g, Yt).getRegex(), Qt = /(?!~)[\p{P}\p{S}]/u, $t = /(?!~)[\s\p{P}\p{S}]/u, en = /(?:[^\s\p{P}\p{S}]|~)/u, tn = q(/link|precode-code|html/, "g").replace("link", /\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-", St ? "(?<!`)()" : "(^^|[^`])").replace("code", /(?<b>`+)[^`]+\k<b>(?!`)/).replace("html", /<(?! )[^<>]*?>/).getRegex(), nn = /^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/, rn = q(nn, "u").replace(/punct/g, Jt).getRegex(), an = q(nn, "u").replace(/punct/g, Qt).getRegex(), on = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)", sn = q(on, "gu").replace(/notPunctSpace/g, Xt).replace(/punctSpace/g, Yt).replace(/punct/g, Jt).getRegex(), cn = q(on, "gu").replace(/notPunctSpace/g, en).replace(/punctSpace/g, $t).replace(/punct/g, Qt).getRegex(), ln = q("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu").replace(/notPunctSpace/g, Xt).replace(/punctSpace/g, Yt).replace(/punct/g, Jt).getRegex(), un = q(/^~~?(?:((?!~)punct)|[^\s~])/, "u").replace(/punct/g, Jt).getRegex(), dn = q("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)", "gu").replace(/notPunctSpace/g, Xt).replace(/punctSpace/g, Yt).replace(/punct/g, Jt).getRegex(), fn = q(/\\(punct)/, "gu").replace(/punct/g, Jt).getRegex(), pn = q(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(), mn = q(Lt).replace("(?:-->|$)", "-->").getRegex(), hn = q("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment", mn).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), gn = /(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/, _n = q(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label", gn).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), vn = q(/^!?\[(label)\]\[(ref)\]/).replace("label", gn).replace("ref", Nt).getRegex(), yn = q(/^!?\[(ref)\](?:\[\])?/).replace("ref", Nt).getRegex(), bn = q("reflink|nolink(?!\\()", "g").replace("reflink", vn).replace("nolink", yn).getRegex(), xn = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/, Sn = {
3212
- _backpedal: K,
3213
- anyPunctuation: fn,
3214
- autolink: pn,
3215
- blockSkip: tn,
3216
- br: Kt,
3217
- code: Gt,
3218
- del: K,
3219
- delLDelim: K,
3220
- delRDelim: K,
3221
- emStrongLDelim: rn,
3222
- emStrongRDelimAst: sn,
3223
- emStrongRDelimUnd: ln,
3224
- escape: Wt,
3225
- link: _n,
3226
- nolink: yn,
3227
- punctuation: Zt,
3228
- reflink: vn,
3229
- reflinkSearch: bn,
3230
- tag: hn,
3231
- text: qt,
3232
- url: K
3233
- }, Cn = {
3234
- ...Sn,
3235
- link: q(/^!?\[(label)\]\((.*?)\)/).replace("label", gn).getRegex(),
3236
- reflink: q(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", gn).getRegex()
3237
- }, wn = {
3238
- ...Sn,
3239
- emStrongRDelimAst: cn,
3236
+ paragraph: J(Mt).replace("hr", Et).replace("heading", " *#{1,6} *[^\n]").replace("lheading", At).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex()
3237
+ }, Gt = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, Kt = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, qt = /^( {2,}|\\)\n(?!\s*$)/, Jt = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/, Yt = /[\p{P}\p{S}]/u, Xt = /[\s\p{P}\p{S}]/u, Zt = /[^\s\p{P}\p{S}]/u, Qt = J(/^((?![*_])punctSpace)/, "u").replace(/punctSpace/g, Xt).getRegex(), $t = /(?!~)[\p{P}\p{S}]/u, en = /(?!~)[\s\p{P}\p{S}]/u, tn = /(?:[^\s\p{P}\p{S}]|~)/u, nn = J(/link|precode-code|html/, "g").replace("link", /\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-", St ? "(?<!`)()" : "(^^|[^`])").replace("code", /(?<b>`+)[^`]+\k<b>(?!`)/).replace("html", /<(?! )[^<>]*?>/).getRegex(), rn = /^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/, an = J(rn, "u").replace(/punct/g, Yt).getRegex(), on = J(rn, "u").replace(/punct/g, $t).getRegex(), sn = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)", cn = J(sn, "gu").replace(/notPunctSpace/g, Zt).replace(/punctSpace/g, Xt).replace(/punct/g, Yt).getRegex(), ln = J(sn, "gu").replace(/notPunctSpace/g, tn).replace(/punctSpace/g, en).replace(/punct/g, $t).getRegex(), un = J("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu").replace(/notPunctSpace/g, Zt).replace(/punctSpace/g, Xt).replace(/punct/g, Yt).getRegex(), dn = J(/^~~?(?:((?!~)punct)|[^\s~])/, "u").replace(/punct/g, Yt).getRegex(), fn = J("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)", "gu").replace(/notPunctSpace/g, Zt).replace(/punctSpace/g, Xt).replace(/punct/g, Yt).getRegex(), pn = J(/\\(punct)/, "gu").replace(/punct/g, Yt).getRegex(), mn = J(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(), hn = J(Rt).replace("(?:-->|$)", "-->").getRegex(), gn = J("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment", hn).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), _n = /(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/, vn = J(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label", _n).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), yn = J(/^!?\[(label)\]\[(ref)\]/).replace("label", _n).replace("ref", Pt).getRegex(), bn = J(/^!?\[(ref)\](?:\[\])?/).replace("ref", Pt).getRegex(), xn = J("reflink|nolink(?!\\()", "g").replace("reflink", yn).replace("nolink", bn).getRegex(), Sn = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/, Cn = {
3238
+ _backpedal: xt,
3239
+ anyPunctuation: pn,
3240
+ autolink: mn,
3241
+ blockSkip: nn,
3242
+ br: qt,
3243
+ code: Kt,
3244
+ del: xt,
3245
+ delLDelim: xt,
3246
+ delRDelim: xt,
3240
3247
  emStrongLDelim: an,
3241
- delLDelim: un,
3242
- delRDelim: dn,
3243
- url: q(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol", xn).replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),
3248
+ emStrongRDelimAst: cn,
3249
+ emStrongRDelimUnd: un,
3250
+ escape: Gt,
3251
+ link: vn,
3252
+ nolink: bn,
3253
+ punctuation: Qt,
3254
+ reflink: yn,
3255
+ reflinkSearch: xn,
3256
+ tag: gn,
3257
+ text: Jt,
3258
+ url: xt
3259
+ }, wn = {
3260
+ ...Cn,
3261
+ link: J(/^!?\[(label)\]\((.*?)\)/).replace("label", _n).getRegex(),
3262
+ reflink: J(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", _n).getRegex()
3263
+ }, Tn = {
3264
+ ...Cn,
3265
+ emStrongRDelimAst: ln,
3266
+ emStrongLDelim: on,
3267
+ delLDelim: dn,
3268
+ delRDelim: fn,
3269
+ url: J(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol", Sn).replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),
3244
3270
  _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,
3245
3271
  del: /^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,
3246
- text: q(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol", xn).getRegex()
3247
- }, Tn = {
3248
- ...wn,
3249
- br: q(Kt).replace("{2,}", "*").getRegex(),
3250
- text: q(wn.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex()
3272
+ text: J(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol", Sn).getRegex()
3251
3273
  }, En = {
3252
- normal: Bt,
3253
- gfm: Ht,
3254
- pedantic: Ut
3274
+ ...Tn,
3275
+ br: J(qt).replace("{2,}", "*").getRegex(),
3276
+ text: J(Tn.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex()
3255
3277
  }, Dn = {
3256
- normal: Sn,
3257
- gfm: wn,
3258
- breaks: Tn,
3259
- pedantic: Cn
3278
+ normal: Vt,
3279
+ gfm: Ut,
3280
+ pedantic: Wt
3260
3281
  }, On = {
3282
+ normal: Cn,
3283
+ gfm: Tn,
3284
+ breaks: En,
3285
+ pedantic: wn
3286
+ }, kn = {
3261
3287
  "&": "&amp;",
3262
3288
  "<": "&lt;",
3263
3289
  ">": "&gt;",
3264
3290
  "\"": "&quot;",
3265
3291
  "'": "&#39;"
3266
- }, kn = (e) => On[e];
3267
- function An(e, t) {
3292
+ }, An = (e) => kn[e];
3293
+ function jn(e, t) {
3268
3294
  if (t) {
3269
- if (J.escapeTest.test(e)) return e.replace(J.escapeReplace, kn);
3270
- } else if (J.escapeTestNoEncode.test(e)) return e.replace(J.escapeReplaceNoEncode, kn);
3295
+ if (Y.escapeTest.test(e)) return e.replace(Y.escapeReplace, An);
3296
+ } else if (Y.escapeTestNoEncode.test(e)) return e.replace(Y.escapeReplaceNoEncode, An);
3271
3297
  return e;
3272
3298
  }
3273
- function jn(e) {
3299
+ function Mn(e) {
3274
3300
  try {
3275
- e = encodeURI(e).replace(J.percentDecode, "%");
3301
+ e = encodeURI(e).replace(Y.percentDecode, "%");
3276
3302
  } catch {
3277
3303
  return null;
3278
3304
  }
3279
3305
  return e;
3280
3306
  }
3281
- function Mn(e, t) {
3282
- let n = e.replace(J.findPipe, (e, t, n) => {
3307
+ function Nn(e, t) {
3308
+ let n = e.replace(Y.findPipe, (e, t, n) => {
3283
3309
  let r = !1, i = t;
3284
3310
  for (; --i >= 0 && n[i] === "\\";) r = !r;
3285
3311
  return r ? "|" : " |";
3286
- }).split(J.splitPipe), r = 0;
3312
+ }).split(Y.splitPipe), r = 0;
3287
3313
  if (n[0].trim() || n.shift(), n.length > 0 && !n.at(-1)?.trim() && n.pop(), t) {
3288
3314
  if (n.length > t) n.splice(t);
3289
3315
  else for (; n.length < t;) n.push("");
3290
3316
  }
3291
- for (; r < n.length; r++) n[r] = n[r].trim().replace(J.slashPipe, "|");
3317
+ for (; r < n.length; r++) n[r] = n[r].trim().replace(Y.slashPipe, "|");
3292
3318
  return n;
3293
3319
  }
3294
- function Nn(e, t, n) {
3320
+ function Pn(e, t, n) {
3295
3321
  let r = e.length;
3296
3322
  if (r === 0) return "";
3297
3323
  let i = 0;
@@ -3303,7 +3329,7 @@ function Nn(e, t, n) {
3303
3329
  }
3304
3330
  return e.slice(0, r - i);
3305
3331
  }
3306
- function Pn(e, t) {
3332
+ function Fn(e, t) {
3307
3333
  if (e.indexOf(t[1]) === -1) return -1;
3308
3334
  let n = 0;
3309
3335
  for (let r = 0; r < e.length; r++) if (e[r] === "\\") r++;
@@ -3311,7 +3337,7 @@ function Pn(e, t) {
3311
3337
  else if (e[r] === t[1] && (n--, n < 0)) return r;
3312
3338
  return n > 0 ? -2 : -1;
3313
3339
  }
3314
- function Fn(e, t = 0) {
3340
+ function In(e, t = 0) {
3315
3341
  let n = t, r = "";
3316
3342
  for (let t of e) if (t === " ") {
3317
3343
  let e = 4 - n % 4;
@@ -3319,7 +3345,7 @@ function Fn(e, t = 0) {
3319
3345
  } else r += t, n++;
3320
3346
  return r;
3321
3347
  }
3322
- function In(e, t, n, r, i) {
3348
+ function Ln(e, t, n, r, i) {
3323
3349
  let a = t.href, o = t.title || null, s = e[1].replace(i.other.outputLinkReplace, "$1");
3324
3350
  r.state.inLink = !0;
3325
3351
  let c = {
@@ -3332,7 +3358,7 @@ function In(e, t, n, r, i) {
3332
3358
  };
3333
3359
  return r.state.inLink = !1, c;
3334
3360
  }
3335
- function Ln(e, t, n) {
3361
+ function Rn(e, t, n) {
3336
3362
  let r = e.match(n.other.indentCodeCompensation);
3337
3363
  if (r === null) return t;
3338
3364
  let i = r[1];
@@ -3343,12 +3369,12 @@ function Ln(e, t, n) {
3343
3369
  return r.length >= i.length ? e.slice(i.length) : e;
3344
3370
  }).join("\n");
3345
3371
  }
3346
- var Rn = class {
3372
+ var zn = class {
3347
3373
  options;
3348
3374
  rules;
3349
3375
  lexer;
3350
3376
  constructor(e) {
3351
- this.options = e || bt;
3377
+ this.options = e || q;
3352
3378
  }
3353
3379
  space(e) {
3354
3380
  let t = this.rules.block.newline.exec(e);
@@ -3365,14 +3391,14 @@ var Rn = class {
3365
3391
  type: "code",
3366
3392
  raw: t[0],
3367
3393
  codeBlockStyle: "indented",
3368
- text: this.options.pedantic ? e : Nn(e, "\n")
3394
+ text: this.options.pedantic ? e : Pn(e, "\n")
3369
3395
  };
3370
3396
  }
3371
3397
  }
3372
3398
  fences(e) {
3373
3399
  let t = this.rules.block.fences.exec(e);
3374
3400
  if (t) {
3375
- let e = t[0], n = Ln(e, t[3] || "", this.rules);
3401
+ let e = t[0], n = Rn(e, t[3] || "", this.rules);
3376
3402
  return {
3377
3403
  type: "code",
3378
3404
  raw: e,
@@ -3386,7 +3412,7 @@ var Rn = class {
3386
3412
  if (t) {
3387
3413
  let e = t[2].trim();
3388
3414
  if (this.rules.other.endingHash.test(e)) {
3389
- let t = Nn(e, "#");
3415
+ let t = Pn(e, "#");
3390
3416
  (this.options.pedantic || !t || this.rules.other.endingSpaceChar.test(t)) && (e = t.trim());
3391
3417
  }
3392
3418
  return {
@@ -3402,16 +3428,16 @@ var Rn = class {
3402
3428
  let t = this.rules.block.hr.exec(e);
3403
3429
  if (t) return {
3404
3430
  type: "hr",
3405
- raw: Nn(t[0], "\n")
3431
+ raw: Pn(t[0], "\n")
3406
3432
  };
3407
3433
  }
3408
3434
  blockquote(e) {
3409
3435
  let t = this.rules.block.blockquote.exec(e);
3410
3436
  if (t) {
3411
- let e = Nn(t[0], "\n").split("\n"), n = "", r = "", i = [];
3437
+ let e = Pn(t[0], "\n").split("\n"), n = "", r = "", i = [];
3412
3438
  for (; e.length > 0;) {
3413
- let t = !1, a = [], o;
3414
- for (o = 0; o < e.length; o++) if (this.rules.other.blockquoteStart.test(e[o])) a.push(e[o]), t = !0;
3439
+ let t = !1, a = [], o = 0;
3440
+ for (; o < e.length; o++) if (this.rules.other.blockquoteStart.test(e[o])) a.push(e[o]), t = !0;
3415
3441
  else if (!t) a.push(e[o]);
3416
3442
  else break;
3417
3443
  e = e.slice(o);
@@ -3459,7 +3485,7 @@ ${c}` : c;
3459
3485
  let n = !1, r = "", s = "";
3460
3486
  if (!(t = a.exec(e)) || this.rules.block.hr.test(e)) break;
3461
3487
  r = t[0], e = e.substring(r.length);
3462
- let c = Fn(t[2].split("\n", 1)[0], t[1].length), l = e.split("\n", 1)[0], u = !c.trim(), d = 0;
3488
+ let c = In(t[2].split("\n", 1)[0], t[1].length), l = e.split("\n", 1)[0], u = !c.trim(), d = 0;
3463
3489
  if (this.options.pedantic ? (d = 2, s = c.trimStart()) : u ? d = t[1].length + 1 : (d = c.search(this.rules.other.nonSpaceChar), d = d > 4 ? 1 : d, s = c.slice(d), d += t[1].length), u && this.rules.other.blankLine.test(l) && (r += l + "\n", e = e.substring(l.length + 1), n = !0), !n) {
3464
3490
  let t = this.rules.other.nextBulletRegex(d), n = this.rules.other.hrRegex(d), i = this.rules.other.fencesBeginRegex(d), a = this.rules.other.headingBeginRegex(d), o = this.rules.other.htmlBeginRegex(d), f = this.rules.other.blockquoteBeginRegex(d);
3465
3491
  for (; e;) {
@@ -3548,7 +3574,7 @@ ${c}` : c;
3548
3574
  table(e) {
3549
3575
  let t = this.rules.block.table.exec(e);
3550
3576
  if (!t || !this.rules.other.tableDelimiter.test(t[2])) return;
3551
- let n = Mn(t[1]), r = t[2].replace(this.rules.other.tableAlignChars, "").split("|"), i = t[3]?.trim() ? t[3].replace(this.rules.other.tableRowBlankLine, "").split("\n") : [], a = {
3577
+ let n = Nn(t[1]), r = t[2].replace(this.rules.other.tableAlignChars, "").split("|"), i = t[3]?.trim() ? t[3].replace(this.rules.other.tableRowBlankLine, "").split("\n") : [], a = {
3552
3578
  type: "table",
3553
3579
  raw: t[0],
3554
3580
  header: [],
@@ -3563,7 +3589,7 @@ ${c}` : c;
3563
3589
  header: !0,
3564
3590
  align: a.align[e]
3565
3591
  });
3566
- for (let e of i) a.rows.push(Mn(e, a.header.length).map((e, t) => ({
3592
+ for (let e of i) a.rows.push(Nn(e, a.header.length).map((e, t) => ({
3567
3593
  text: e,
3568
3594
  tokens: this.lexer.inline(e),
3569
3595
  header: !1,
@@ -3631,10 +3657,10 @@ ${c}` : c;
3631
3657
  let e = t[2].trim();
3632
3658
  if (!this.options.pedantic && this.rules.other.startAngleBracket.test(e)) {
3633
3659
  if (!this.rules.other.endAngleBracket.test(e)) return;
3634
- let t = Nn(e.slice(0, -1), "\\");
3660
+ let t = Pn(e.slice(0, -1), "\\");
3635
3661
  if ((e.length - t.length) % 2 == 0) return;
3636
3662
  } else {
3637
- let e = Pn(t[2], "()");
3663
+ let e = Fn(t[2], "()");
3638
3664
  if (e === -2) return;
3639
3665
  if (e > -1) {
3640
3666
  let n = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + e;
@@ -3646,7 +3672,7 @@ ${c}` : c;
3646
3672
  let e = this.rules.other.pedanticHrefTitle.exec(n);
3647
3673
  e && (n = e[1], r = e[3]);
3648
3674
  } else r = t[3] ? t[3].slice(1, -1) : "";
3649
- return n = n.trim(), this.rules.other.startAngleBracket.test(n) && (n = this.options.pedantic && !this.rules.other.endAngleBracket.test(e) ? n.slice(1) : n.slice(1, -1)), In(t, {
3675
+ return n = n.trim(), this.rules.other.startAngleBracket.test(n) && (n = this.options.pedantic && !this.rules.other.endAngleBracket.test(e) ? n.slice(1) : n.slice(1, -1)), Ln(t, {
3650
3676
  href: n && n.replace(this.rules.inline.anyPunctuation, "$1"),
3651
3677
  title: r && r.replace(this.rules.inline.anyPunctuation, "$1")
3652
3678
  }, t[0], this.lexer, this.rules);
@@ -3664,7 +3690,7 @@ ${c}` : c;
3664
3690
  text: e
3665
3691
  };
3666
3692
  }
3667
- return In(n, e, n[0], this.lexer, this.rules);
3693
+ return Ln(n, e, n[0], this.lexer, this.rules);
3668
3694
  }
3669
3695
  }
3670
3696
  emStrong(e, t, n = "") {
@@ -3797,29 +3823,29 @@ ${c}` : c;
3797
3823
  };
3798
3824
  }
3799
3825
  }
3800
- }, zn = class e {
3826
+ }, Bn = class e {
3801
3827
  tokens;
3802
3828
  options;
3803
3829
  state;
3804
3830
  inlineQueue;
3805
3831
  tokenizer;
3806
3832
  constructor(e) {
3807
- this.tokens = [], this.tokens.links = Object.create(null), this.options = e || bt, this.options.tokenizer = this.options.tokenizer || new Rn(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = {
3833
+ this.tokens = [], this.tokens.links = Object.create(null), this.options = e || q, this.options.tokenizer = this.options.tokenizer || new zn(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = {
3808
3834
  inLink: !1,
3809
3835
  inRawBlock: !1,
3810
3836
  top: !0
3811
3837
  };
3812
3838
  let t = {
3813
- other: J,
3814
- block: En.normal,
3815
- inline: Dn.normal
3839
+ other: Y,
3840
+ block: Dn.normal,
3841
+ inline: On.normal
3816
3842
  };
3817
- this.options.pedantic ? (t.block = En.pedantic, t.inline = Dn.pedantic) : this.options.gfm && (t.block = En.gfm, t.inline = this.options.breaks ? Dn.breaks : Dn.gfm), this.tokenizer.rules = t;
3843
+ this.options.pedantic ? (t.block = Dn.pedantic, t.inline = On.pedantic) : this.options.gfm && (t.block = Dn.gfm, t.inline = this.options.breaks ? On.breaks : On.gfm), this.tokenizer.rules = t;
3818
3844
  }
3819
3845
  static get rules() {
3820
3846
  return {
3821
- block: En,
3822
- inline: Dn
3847
+ block: Dn,
3848
+ inline: On
3823
3849
  };
3824
3850
  }
3825
3851
  static lex(t, n) {
@@ -3829,7 +3855,7 @@ ${c}` : c;
3829
3855
  return new e(n).inlineTokens(t);
3830
3856
  }
3831
3857
  lex(e) {
3832
- e = e.replace(J.carriageReturn, "\n"), this.blockTokens(e, this.tokens);
3858
+ e = e.replace(Y.carriageReturn, "\n"), this.blockTokens(e, this.tokens);
3833
3859
  for (let e = 0; e < this.inlineQueue.length; e++) {
3834
3860
  let t = this.inlineQueue[e];
3835
3861
  this.inlineTokens(t.src, t.tokens);
@@ -3837,7 +3863,7 @@ ${c}` : c;
3837
3863
  return this.inlineQueue = [], this.tokens;
3838
3864
  }
3839
3865
  blockTokens(e, t = [], n = !1) {
3840
- for (this.tokenizer.lexer = this, this.options.pedantic && (e = e.replace(J.tabCharGlobal, " ").replace(J.spaceLine, "")); e;) {
3866
+ for (this.tokenizer.lexer = this, this.options.pedantic && (e = e.replace(Y.tabCharGlobal, " ").replace(Y.spaceLine, "")); e;) {
3841
3867
  let r;
3842
3868
  if (this.options.extensions?.block?.some((n) => (r = n.call({ lexer: this }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), !0) : !1)) continue;
3843
3869
  if (r = this.tokenizer.space(e)) {
@@ -3895,10 +3921,10 @@ ${c}` : c;
3895
3921
  }
3896
3922
  let i = e;
3897
3923
  if (this.options.extensions?.startBlock) {
3898
- let t = Infinity, n = e.slice(1), r;
3924
+ let t = 1 / 0, n = e.slice(1), r;
3899
3925
  this.options.extensions.startBlock.forEach((e) => {
3900
3926
  r = e.call({ lexer: this }, n), typeof r == "number" && r >= 0 && (t = Math.min(t, r));
3901
- }), t < Infinity && t >= 0 && (i = e.substring(0, t + 1));
3927
+ }), t < 1 / 0 && t >= 0 && (i = e.substring(0, t + 1));
3902
3928
  }
3903
3929
  if (this.state.top && (r = this.tokenizer.paragraph(i))) {
3904
3930
  let a = t.at(-1);
@@ -3988,10 +4014,10 @@ ${c}` : c;
3988
4014
  }
3989
4015
  let i = e;
3990
4016
  if (this.options.extensions?.startInline) {
3991
- let t = Infinity, n = e.slice(1), r;
4017
+ let t = 1 / 0, n = e.slice(1), r;
3992
4018
  this.options.extensions.startInline.forEach((e) => {
3993
4019
  r = e.call({ lexer: this }, n), typeof r == "number" && r >= 0 && (t = Math.min(t, r));
3994
- }), t < Infinity && t >= 0 && (i = e.substring(0, t + 1));
4020
+ }), t < 1 / 0 && t >= 0 && (i = e.substring(0, t + 1));
3995
4021
  }
3996
4022
  if (r = this.tokenizer.inlineText(i)) {
3997
4023
  e = e.substring(r.raw.length), r.raw.slice(-1) !== "_" && (o = r.raw.slice(-1)), a = !0;
@@ -4010,18 +4036,18 @@ ${c}` : c;
4010
4036
  }
4011
4037
  return t;
4012
4038
  }
4013
- }, Bn = class {
4039
+ }, Vn = class {
4014
4040
  options;
4015
4041
  parser;
4016
4042
  constructor(e) {
4017
- this.options = e || bt;
4043
+ this.options = e || q;
4018
4044
  }
4019
4045
  space(e) {
4020
4046
  return "";
4021
4047
  }
4022
4048
  code({ text: e, lang: t, escaped: n }) {
4023
- let r = (t || "").match(J.notSpaceStart)?.[0], i = e.replace(J.endingNewline, "") + "\n";
4024
- return r ? "<pre><code class=\"language-" + An(r) + "\">" + (n ? i : An(i, !0)) + "</code></pre>\n" : "<pre><code>" + (n ? i : An(i, !0)) + "</code></pre>\n";
4049
+ let r = (t || "").match(Y.notSpaceStart)?.[0], i = e.replace(Y.endingNewline, "") + "\n";
4050
+ return r ? "<pre><code class=\"language-" + jn(r) + "\">" + (n ? i : jn(i, !0)) + "</code></pre>\n" : "<pre><code>" + (n ? i : jn(i, !0)) + "</code></pre>\n";
4025
4051
  }
4026
4052
  blockquote({ tokens: e }) {
4027
4053
  return `<blockquote>
@@ -4091,7 +4117,7 @@ ${e}</tr>
4091
4117
  return `<em>${this.parser.parseInline(e)}</em>`;
4092
4118
  }
4093
4119
  codespan({ text: e }) {
4094
- return `<code>${An(e, !0)}</code>`;
4120
+ return `<code>${jn(e, !0)}</code>`;
4095
4121
  }
4096
4122
  br(e) {
4097
4123
  return "<br>";
@@ -4100,24 +4126,24 @@ ${e}</tr>
4100
4126
  return `<del>${this.parser.parseInline(e)}</del>`;
4101
4127
  }
4102
4128
  link({ href: e, title: t, tokens: n }) {
4103
- let r = this.parser.parseInline(n), i = jn(e);
4129
+ let r = this.parser.parseInline(n), i = Mn(e);
4104
4130
  if (i === null) return r;
4105
4131
  e = i;
4106
4132
  let a = "<a href=\"" + e + "\"";
4107
- return t && (a += " title=\"" + An(t) + "\""), a += ">" + r + "</a>", a;
4133
+ return t && (a += " title=\"" + jn(t) + "\""), a += ">" + r + "</a>", a;
4108
4134
  }
4109
4135
  image({ href: e, title: t, text: n, tokens: r }) {
4110
4136
  r && (n = this.parser.parseInline(r, this.parser.textRenderer));
4111
- let i = jn(e);
4112
- if (i === null) return An(n);
4137
+ let i = Mn(e);
4138
+ if (i === null) return jn(n);
4113
4139
  e = i;
4114
- let a = `<img src="${e}" alt="${An(n)}"`;
4115
- return t && (a += ` title="${An(t)}"`), a += ">", a;
4140
+ let a = `<img src="${e}" alt="${jn(n)}"`;
4141
+ return t && (a += ` title="${jn(t)}"`), a += ">", a;
4116
4142
  }
4117
4143
  text(e) {
4118
- return "tokens" in e && e.tokens ? this.parser.parseInline(e.tokens) : "escaped" in e && e.escaped ? e.text : An(e.text);
4144
+ return "tokens" in e && e.tokens ? this.parser.parseInline(e.tokens) : "escaped" in e && e.escaped ? e.text : jn(e.text);
4119
4145
  }
4120
- }, Vn = class {
4146
+ }, Hn = class {
4121
4147
  strong({ text: e }) {
4122
4148
  return e;
4123
4149
  }
@@ -4148,12 +4174,12 @@ ${e}</tr>
4148
4174
  checkbox({ raw: e }) {
4149
4175
  return e;
4150
4176
  }
4151
- }, Hn = class e {
4177
+ }, Un = class e {
4152
4178
  options;
4153
4179
  renderer;
4154
4180
  textRenderer;
4155
4181
  constructor(e) {
4156
- this.options = e || bt, this.options.renderer = this.options.renderer || new Bn(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new Vn();
4182
+ this.options = e || q, this.options.renderer = this.options.renderer || new Vn(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new Hn();
4157
4183
  }
4158
4184
  static parse(t, n) {
4159
4185
  return new e(n).parse(t);
@@ -4299,11 +4325,11 @@ ${e}</tr>
4299
4325
  }
4300
4326
  return n;
4301
4327
  }
4302
- }, Un = class {
4328
+ }, Wn = class {
4303
4329
  options;
4304
4330
  block;
4305
4331
  constructor(e) {
4306
- this.options = e || bt;
4332
+ this.options = e || q;
4307
4333
  }
4308
4334
  static passThroughHooks = /* @__PURE__ */ new Set([
4309
4335
  "preprocess",
@@ -4329,22 +4355,22 @@ ${e}</tr>
4329
4355
  return e;
4330
4356
  }
4331
4357
  provideLexer() {
4332
- return this.block ? zn.lex : zn.lexInline;
4358
+ return this.block ? Bn.lex : Bn.lexInline;
4333
4359
  }
4334
4360
  provideParser() {
4335
- return this.block ? Hn.parse : Hn.parseInline;
4361
+ return this.block ? Un.parse : Un.parseInline;
4336
4362
  }
4337
- }, Wn = new class {
4363
+ }, Gn = new class {
4338
4364
  defaults = yt();
4339
4365
  options = this.setOptions;
4340
4366
  parse = this.parseMarkdown(!0);
4341
4367
  parseInline = this.parseMarkdown(!1);
4342
- Parser = Hn;
4343
- Renderer = Bn;
4344
- TextRenderer = Vn;
4345
- Lexer = zn;
4346
- Tokenizer = Rn;
4347
- Hooks = Un;
4368
+ Parser = Un;
4369
+ Renderer = Vn;
4370
+ TextRenderer = Hn;
4371
+ Lexer = Bn;
4372
+ Tokenizer = zn;
4373
+ Hooks = Wn;
4348
4374
  constructor(...e) {
4349
4375
  this.use(...e);
4350
4376
  }
@@ -4365,7 +4391,7 @@ ${e}</tr>
4365
4391
  default: {
4366
4392
  let e = r;
4367
4393
  this.defaults.extensions?.childTokens?.[e.type] ? this.defaults.extensions.childTokens[e.type].forEach((r) => {
4368
- let i = e[r].flat(Infinity);
4394
+ let i = e[r].flat(1 / 0);
4369
4395
  n = n.concat(this.walkTokens(i, t));
4370
4396
  }) : e.tokens && (n = n.concat(this.walkTokens(e.tokens, t)));
4371
4397
  }
@@ -4395,7 +4421,7 @@ ${e}</tr>
4395
4421
  }
4396
4422
  "childTokens" in e && e.childTokens && (t.childTokens[e.name] = e.childTokens);
4397
4423
  }), n.extensions = t), e.renderer) {
4398
- let t = this.defaults.renderer || new Bn(this.defaults);
4424
+ let t = this.defaults.renderer || new Vn(this.defaults);
4399
4425
  for (let n in e.renderer) {
4400
4426
  if (!(n in t)) throw Error(`renderer '${n}' does not exist`);
4401
4427
  if (["options", "parser"].includes(n)) continue;
@@ -4408,7 +4434,7 @@ ${e}</tr>
4408
4434
  n.renderer = t;
4409
4435
  }
4410
4436
  if (e.tokenizer) {
4411
- let t = this.defaults.tokenizer || new Rn(this.defaults);
4437
+ let t = this.defaults.tokenizer || new zn(this.defaults);
4412
4438
  for (let n in e.tokenizer) {
4413
4439
  if (!(n in t)) throw Error(`tokenizer '${n}' does not exist`);
4414
4440
  if ([
@@ -4425,13 +4451,13 @@ ${e}</tr>
4425
4451
  n.tokenizer = t;
4426
4452
  }
4427
4453
  if (e.hooks) {
4428
- let t = this.defaults.hooks || new Un();
4454
+ let t = this.defaults.hooks || new Wn();
4429
4455
  for (let n in e.hooks) {
4430
4456
  if (!(n in t)) throw Error(`hook '${n}' does not exist`);
4431
4457
  if (["options", "block"].includes(n)) continue;
4432
4458
  let r = n, i = e.hooks[r], a = t[r];
4433
- t[r] = Un.passThroughHooks.has(n) ? (e) => {
4434
- if (this.defaults.async && Un.passThroughHooksRespectAsync.has(n)) return (async () => {
4459
+ t[r] = Wn.passThroughHooks.has(n) ? (e) => {
4460
+ if (this.defaults.async && Wn.passThroughHooksRespectAsync.has(n)) return (async () => {
4435
4461
  let n = await i.call(t, e);
4436
4462
  return a.call(t, n);
4437
4463
  })();
@@ -4468,10 +4494,10 @@ ${e}</tr>
4468
4494
  }, this;
4469
4495
  }
4470
4496
  lexer(e, t) {
4471
- return zn.lex(e, t ?? this.defaults);
4497
+ return Bn.lex(e, t ?? this.defaults);
4472
4498
  }
4473
4499
  parser(e, t) {
4474
- return Hn.parse(e, t ?? this.defaults);
4500
+ return Un.parse(e, t ?? this.defaults);
4475
4501
  }
4476
4502
  parseMarkdown(e) {
4477
4503
  return (t, n) => {
@@ -4483,16 +4509,16 @@ ${e}</tr>
4483
4509
  if (typeof t > "u" || t === null) return a(/* @__PURE__ */ Error("marked(): input parameter is undefined or null"));
4484
4510
  if (typeof t != "string") return a(/* @__PURE__ */ Error("marked(): input parameter is of type " + Object.prototype.toString.call(t) + ", string expected"));
4485
4511
  if (i.hooks && (i.hooks.options = i, i.hooks.block = e), i.async) return (async () => {
4486
- let n = i.hooks ? await i.hooks.preprocess(t) : t, r = await (i.hooks ? await i.hooks.provideLexer() : e ? zn.lex : zn.lexInline)(n, i), a = i.hooks ? await i.hooks.processAllTokens(r) : r;
4512
+ let n = i.hooks ? await i.hooks.preprocess(t) : t, r = await (i.hooks ? await i.hooks.provideLexer() : e ? Bn.lex : Bn.lexInline)(n, i), a = i.hooks ? await i.hooks.processAllTokens(r) : r;
4487
4513
  i.walkTokens && await Promise.all(this.walkTokens(a, i.walkTokens));
4488
- let o = await (i.hooks ? await i.hooks.provideParser() : e ? Hn.parse : Hn.parseInline)(a, i);
4514
+ let o = await (i.hooks ? await i.hooks.provideParser() : e ? Un.parse : Un.parseInline)(a, i);
4489
4515
  return i.hooks ? await i.hooks.postprocess(o) : o;
4490
4516
  })().catch(a);
4491
4517
  try {
4492
4518
  i.hooks && (t = i.hooks.preprocess(t));
4493
- let n = (i.hooks ? i.hooks.provideLexer() : e ? zn.lex : zn.lexInline)(t, i);
4519
+ let n = (i.hooks ? i.hooks.provideLexer() : e ? Bn.lex : Bn.lexInline)(t, i);
4494
4520
  i.hooks && (n = i.hooks.processAllTokens(n)), i.walkTokens && this.walkTokens(n, i.walkTokens);
4495
- let r = (i.hooks ? i.hooks.provideParser() : e ? Hn.parse : Hn.parseInline)(n, i);
4521
+ let r = (i.hooks ? i.hooks.provideParser() : e ? Un.parse : Un.parseInline)(n, i);
4496
4522
  return i.hooks && (r = i.hooks.postprocess(r)), r;
4497
4523
  } catch (e) {
4498
4524
  return a(e);
@@ -4502,7 +4528,7 @@ ${e}</tr>
4502
4528
  onError(e, t) {
4503
4529
  return (n) => {
4504
4530
  if (n.message += "\nPlease report this to https://github.com/markedjs/marked.", e) {
4505
- let e = "<p>An error occurred:</p><pre>" + An(n.message + "", !0) + "</pre>";
4531
+ let e = "<p>An error occurred:</p><pre>" + jn(n.message + "", !0) + "</pre>";
4506
4532
  return t ? Promise.resolve(e) : e;
4507
4533
  }
4508
4534
  if (t) return Promise.reject(n);
@@ -4511,39 +4537,39 @@ ${e}</tr>
4511
4537
  }
4512
4538
  }();
4513
4539
  function X(e, t) {
4514
- return Wn.parse(e, t);
4540
+ return Gn.parse(e, t);
4515
4541
  }
4516
4542
  X.options = X.setOptions = function(e) {
4517
- return Wn.setOptions(e), X.defaults = Wn.defaults, xt(X.defaults), X;
4518
- }, X.getDefaults = yt, X.defaults = bt, X.use = function(...e) {
4519
- return Wn.use(...e), X.defaults = Wn.defaults, xt(X.defaults), X;
4543
+ return Gn.setOptions(e), X.defaults = Gn.defaults, bt(X.defaults), X;
4544
+ }, X.getDefaults = yt, X.defaults = q, X.use = function(...e) {
4545
+ return Gn.use(...e), X.defaults = Gn.defaults, bt(X.defaults), X;
4520
4546
  }, X.walkTokens = function(e, t) {
4521
- return Wn.walkTokens(e, t);
4522
- }, X.parseInline = Wn.parseInline, X.Parser = Hn, X.parser = Hn.parse, X.Renderer = Bn, X.TextRenderer = Vn, X.Lexer = zn, X.lexer = zn.lex, X.Tokenizer = Rn, X.Hooks = Un, X.parse = X, X.options, X.setOptions, X.use, X.walkTokens, X.parseInline, Hn.parse, zn.lex;
4523
- function Gn(...e) {
4547
+ return Gn.walkTokens(e, t);
4548
+ }, X.parseInline = Gn.parseInline, X.Parser = Un, X.parser = Un.parse, X.Renderer = Vn, X.TextRenderer = Hn, X.Lexer = Bn, X.lexer = Bn.lex, X.Tokenizer = zn, X.Hooks = Wn, X.parse = X, X.options, X.setOptions, X.use, X.walkTokens, X.parseInline, Un.parse, Bn.lex;
4549
+ function Kn(...e) {
4524
4550
  return e.filter(Boolean).join(" ");
4525
4551
  }
4526
- function Kn(e, t) {
4552
+ function qn(e, t) {
4527
4553
  return e ? t ? {
4528
4554
  ...e,
4529
4555
  ...t
4530
4556
  } : e : t;
4531
4557
  }
4532
- function qn({ animation: e, index: t, as: n, asChild: r, className: i, style: a, children: o }) {
4533
- let s = Gn("fragment", e, i);
4558
+ function Jn({ animation: e, index: t, as: n, asChild: r, className: i, style: a, children: o }) {
4559
+ let s = Kn("fragment", e, i);
4534
4560
  if (r) {
4535
4561
  let e;
4536
4562
  try {
4537
- e = j.Children.only(o);
4563
+ e = M.Children.only(o);
4538
4564
  } catch {
4539
4565
  throw Error("Fragment with asChild expects exactly one React element child.");
4540
4566
  }
4541
- if (!(0, j.isValidElement)(e) || e.type === j.Fragment) throw Error("Fragment with asChild expects exactly one non-Fragment React element child.");
4567
+ if (!(0, M.isValidElement)(e) || e.type === M.Fragment) throw Error("Fragment with asChild expects exactly one non-Fragment React element child.");
4542
4568
  let n = {
4543
- className: Gn(e.props.className, s),
4544
- style: Kn(e.props.style, a)
4569
+ className: Kn(e.props.className, s),
4570
+ style: qn(e.props.style, a)
4545
4571
  };
4546
- return t !== void 0 && (n["data-fragment-index"] = t), (0, j.cloneElement)(e, n);
4572
+ return t !== void 0 && (n["data-fragment-index"] = t), (0, M.cloneElement)(e, n);
4547
4573
  }
4548
4574
  return /* @__PURE__ */ (0, G.jsx)(n ?? "span", {
4549
4575
  className: s,
@@ -4554,24 +4580,24 @@ function qn({ animation: e, index: t, as: n, asChild: r, className: i, style: a,
4554
4580
  }
4555
4581
  //#endregion
4556
4582
  //#region src/components/slides/slide-scroll-hint.tsx
4557
- var Jn = 8, Yn = 1;
4558
- function Xn(e) {
4583
+ var Yn = 8, Xn = 1;
4584
+ function Zn(e) {
4559
4585
  let { scrollHeight: t, clientHeight: n, scrollTop: r } = e;
4560
- return t > n + Yn && r <= Jn;
4586
+ return t > n + Xn && r <= Yn;
4561
4587
  }
4562
- function Zn(e) {
4588
+ function Qn(e) {
4563
4589
  let t = e.querySelector(".fragment:not(.visible)");
4564
4590
  return t ? t.getBoundingClientRect().top - e.getBoundingClientRect().top + e.scrollTop : e.scrollHeight;
4565
4591
  }
4566
- function Qn(e, t) {
4567
- let n = (0, M.c)(4), [r, i] = (0, j.useState)(!1), a, o;
4592
+ function $n(e, t) {
4593
+ let n = (0, N.c)(4), [r, i] = (0, M.useState)(!1), a, o;
4568
4594
  return n[0] !== t || n[1] !== e ? (a = () => {
4569
4595
  let n = e.current, r = t.current;
4570
4596
  if (!n || !r) return;
4571
4597
  let a = 0, o = () => {
4572
4598
  cancelAnimationFrame(a), a = requestAnimationFrame(() => {
4573
- i(Xn({
4574
- scrollHeight: Zn(n),
4599
+ i(Zn({
4600
+ scrollHeight: Qn(n),
4575
4601
  clientHeight: n.clientHeight,
4576
4602
  scrollTop: n.scrollTop
4577
4603
  }));
@@ -4588,10 +4614,10 @@ function Qn(e, t) {
4588
4614
  }), n.addEventListener("scroll", o, { passive: !0 }), () => {
4589
4615
  cancelAnimationFrame(a), s.disconnect(), c?.disconnect(), n.removeEventListener("scroll", o);
4590
4616
  };
4591
- }, o = [e, t], n[0] = t, n[1] = e, n[2] = a, n[3] = o) : (a = n[2], o = n[3]), (0, j.useEffect)(a, o), r;
4617
+ }, o = [e, t], n[0] = t, n[1] = e, n[2] = a, n[3] = o) : (a = n[2], o = n[3]), (0, M.useEffect)(a, o), r;
4592
4618
  }
4593
- var $n = (e) => {
4594
- let t = (0, M.c)(6), { className: n } = e, i;
4619
+ var er = (e) => {
4620
+ let t = (0, N.c)(6), { className: n } = e, i;
4595
4621
  t[0] === n ? i = t[1] : (i = r("pointer-events-none absolute inset-x-0 bottom-0 z-10 flex flex-col items-center", "animate-in fade-in-0 duration-200", n), t[0] = n, t[1] = i);
4596
4622
  let a;
4597
4623
  t[2] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ (0, G.jsx)("div", { className: "h-16 w-full bg-linear-to-t from-background via-background/80 to-transparent" }), t[2] = a) : a = t[2];
@@ -4607,8 +4633,8 @@ var $n = (e) => {
4607
4633
  "aria-hidden": !0,
4608
4634
  children: [a, o]
4609
4635
  }), t[4] = i, t[5] = s), s;
4610
- }, er = (e) => {
4611
- let t = (0, M.c)(10), { children: n, className: i } = e, a = (0, j.useRef)(null), o = (0, j.useRef)(null), s = Qn(a, o), c;
4636
+ }, tr = (e) => {
4637
+ let t = (0, N.c)(10), { children: n, className: i } = e, a = (0, M.useRef)(null), o = (0, M.useRef)(null), s = $n(a, o), c;
4612
4638
  t[0] === i ? c = t[1] : (c = r("relative h-full w-full", i), t[0] = i, t[1] = c);
4613
4639
  let l;
4614
4640
  t[2] === n ? l = t[3] : (l = /* @__PURE__ */ (0, G.jsx)("div", {
@@ -4622,7 +4648,7 @@ var $n = (e) => {
4622
4648
  })
4623
4649
  }), t[2] = n, t[3] = l);
4624
4650
  let u;
4625
- t[4] === s ? u = t[5] : (u = s && /* @__PURE__ */ (0, G.jsx)($n, {}), t[4] = s, t[5] = u);
4651
+ t[4] === s ? u = t[5] : (u = s && /* @__PURE__ */ (0, G.jsx)(er, {}), t[4] = s, t[5] = u);
4626
4652
  let d;
4627
4653
  return t[6] !== c || t[7] !== l || t[8] !== u ? (d = /* @__PURE__ */ (0, G.jsxs)("div", {
4628
4654
  className: c,
@@ -4631,7 +4657,7 @@ var $n = (e) => {
4631
4657
  };
4632
4658
  //#endregion
4633
4659
  //#region src/components/slides/compose-slides.ts
4634
- function tr({ cells: e, getType: t }) {
4660
+ function nr({ cells: e, getType: t }) {
4635
4661
  let n = [], r = null, i = null, a = () => {
4636
4662
  let e = { subslides: [] };
4637
4663
  return n.push(e), r = e, i = null, e;
@@ -4657,7 +4683,7 @@ function tr({ cells: e, getType: t }) {
4657
4683
  }
4658
4684
  return { stacks: n };
4659
4685
  }
4660
- function nr({ composition: e, cells: t, getId: n }) {
4686
+ function rr({ composition: e, cells: t, getId: n }) {
4661
4687
  let r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
4662
4688
  for (let [e, r] of t.entries()) a.set(n(r), e);
4663
4689
  return e.stacks.forEach((e, t) => {
@@ -4700,27 +4726,27 @@ function nr({ composition: e, cells: t, getId: n }) {
4700
4726
  targetToCellIndex: i
4701
4727
  };
4702
4728
  }
4703
- function rr(e, t) {
4729
+ function ir(e, t) {
4704
4730
  let { h: n, v: r, f: i } = t;
4705
4731
  return e.get(`${n},${r},${i}`) ?? e.get(`${n},${r},-1`);
4706
4732
  }
4707
- function ir({ start: e, stop: t, step: n, cells: r, cellToTarget: i, getId: a }) {
4733
+ function ar({ start: e, stop: t, step: n, cells: r, cellToTarget: i, getId: a }) {
4708
4734
  for (let o = e; o !== t; o += n) {
4709
4735
  let e = i.get(a(r[o]));
4710
4736
  if (e) return e;
4711
4737
  }
4712
4738
  }
4713
- function ar({ activeIndex: e, cells: t, cellToTarget: n, getId: r }) {
4739
+ function or({ activeIndex: e, cells: t, cellToTarget: n, getId: r }) {
4714
4740
  if (e == null) return;
4715
4741
  let i = t[e];
4716
- return i ? n.get(r(i)) || (ir({
4742
+ return i ? n.get(r(i)) || (ar({
4717
4743
  start: e - 1,
4718
4744
  stop: -1,
4719
4745
  step: -1,
4720
4746
  cells: t,
4721
4747
  cellToTarget: n,
4722
4748
  getId: r
4723
- }) ?? ir({
4749
+ }) ?? ar({
4724
4750
  start: e + 1,
4725
4751
  stop: t.length,
4726
4752
  step: 1,
@@ -4729,7 +4755,7 @@ function ar({ activeIndex: e, cells: t, cellToTarget: n, getId: r }) {
4729
4755
  getId: r
4730
4756
  })) : void 0;
4731
4757
  }
4732
- function or(e, t) {
4758
+ function sr(e, t) {
4733
4759
  let n = {
4734
4760
  h: t.h,
4735
4761
  v: t.v,
@@ -4739,8 +4765,8 @@ function or(e, t) {
4739
4765
  }
4740
4766
  //#endregion
4741
4767
  //#region src/core/islands/stubs/slide-cell-view.tsx
4742
- var sr = (e) => (n.warn("SlideCellView islands stub rendered; this should never happen in a read-only embed."), null), cr = (e) => (n.warn("SlideCellReadOnlyView islands stub rendered; this should never happen in a read-only embed."), null), lr = 300, ur = (e) => {
4743
- let t = (0, M.c)(25), { layout: n, setLayout: a, cellId: o, className: s } = e, c = o ? n.cells.get(o)?.speakerNotes ?? "" : "", [l, u] = (0, j.useState)(c), d = (0, j.useRef)(!1), f;
4768
+ var cr = (e) => (n.warn("SlideCellView islands stub rendered; this should never happen in a read-only embed."), null), lr = (e) => (n.warn("SlideCellReadOnlyView islands stub rendered; this should never happen in a read-only embed."), null), ur = 300, dr = (e) => {
4769
+ let t = (0, N.c)(25), { layout: n, setLayout: a, cellId: o, className: s } = e, c = o ? n.cells.get(o)?.speakerNotes ?? "" : "", [l, u] = (0, M.useState)(c), d = (0, M.useRef)(!1), f;
4744
4770
  t[0] !== n || t[1] !== a ? (f = (e, t) => {
4745
4771
  d.current = !1;
4746
4772
  let r = n.cells.get(e);
@@ -4754,7 +4780,7 @@ var sr = (e) => (n.warn("SlideCellView islands stub rendered; this should never
4754
4780
  cells: i
4755
4781
  });
4756
4782
  }, t[0] = n, t[1] = a, t[2] = f) : f = t[2];
4757
- let p = E(f), m = ee(p, lr), h = (0, j.useRef)(o), g, _;
4783
+ let p = D(f), m = ee(p, ur), h = (0, M.useRef)(o), g, _;
4758
4784
  t[3] !== o || t[4] !== l || t[5] !== c || t[6] !== m ? (g = () => {
4759
4785
  if (h.current !== o) {
4760
4786
  m.flush(), d.current = !1, u(c), h.current = o;
@@ -4766,11 +4792,11 @@ var sr = (e) => (n.warn("SlideCellView islands stub rendered; this should never
4766
4792
  c,
4767
4793
  l,
4768
4794
  m
4769
- ], t[3] = o, t[4] = l, t[5] = c, t[6] = m, t[7] = g, t[8] = _) : (g = t[7], _ = t[8]), (0, j.useEffect)(g, _);
4795
+ ], t[3] = o, t[4] = l, t[5] = c, t[6] = m, t[7] = g, t[8] = _) : (g = t[7], _ = t[8]), (0, M.useEffect)(g, _);
4770
4796
  let v, y;
4771
4797
  t[9] === m ? (v = t[10], y = t[11]) : (v = () => () => {
4772
4798
  m.flush();
4773
- }, y = [m], t[9] = m, t[10] = v, t[11] = y), (0, j.useEffect)(v, y);
4799
+ }, y = [m], t[9] = m, t[10] = v, t[11] = y), (0, M.useEffect)(v, y);
4774
4800
  let b;
4775
4801
  t[12] !== o || t[13] !== m ? (b = (e) => {
4776
4802
  u(e), o && (d.current = !0, m(o, e));
@@ -4780,7 +4806,7 @@ var sr = (e) => (n.warn("SlideCellView islands stub rendered; this should never
4780
4806
  let C;
4781
4807
  t[17] === Symbol.for("react.memo_cache_sentinel") ? (C = /* @__PURE__ */ (0, G.jsxs)("header", {
4782
4808
  className: "flex items-center gap-1.5 px-3 h-8 shrink-0 text-xs font-medium uppercase tracking-wide text-muted-foreground",
4783
- children: [/* @__PURE__ */ (0, G.jsx)(A, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ (0, G.jsx)("span", { children: "Speaker notes" })]
4809
+ children: [/* @__PURE__ */ (0, G.jsx)(j, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ (0, G.jsx)("span", { children: "Speaker notes" })]
4784
4810
  }), t[17] = C) : C = t[17];
4785
4811
  let w;
4786
4812
  t[18] !== o || t[19] !== l || t[20] !== x ? (w = /* @__PURE__ */ (0, G.jsx)("div", {
@@ -4801,26 +4827,28 @@ var sr = (e) => (n.warn("SlideCellView islands stub rendered; this should never
4801
4827
  return t[22] !== S || t[23] !== w ? (T = /* @__PURE__ */ (0, G.jsxs)("section", {
4802
4828
  className: S,
4803
4829
  "aria-label": "Speaker notes",
4804
- onKeyDown: dr,
4830
+ onKeyDown: fr,
4805
4831
  children: [C, w]
4806
4832
  }), t[22] = S, t[23] = w, t[24] = T) : T = t[24], T;
4807
4833
  };
4808
- function dr(e) {
4834
+ function fr(e) {
4809
4835
  return e.stopPropagation();
4810
4836
  }
4811
- var fr = "\n\n---\n\n", pr = (e, t) => e.map((e) => t.get(e.id)?.speakerNotes ?? "").filter((e) => e.trim().length > 0).join("\n\n"), mr = (e, t) => {
4812
- let n = e.blocks.map((e) => pr(e.cells, t)), r = e.blocks.map((e, t) => e.isFragment ? "" : n[t]).filter((e) => e.length > 0).join("\n\n"), i = /* @__PURE__ */ new Map(), a = [];
4837
+ var pr = "\n\n---\n\n", mr = (e, t) => e.map((e) => t.get(e.id)?.speakerNotes ?? "").filter((e) => e.trim().length > 0).join("\n\n"), hr = (e, t) => {
4838
+ let n = e.blocks.map((e) => mr(e.cells, t)), r = e.blocks.map((e, t) => e.isFragment ? "" : n[t]).filter((e) => e.length > 0).join("\n\n"), i = /* @__PURE__ */ new Map(), a = [];
4813
4839
  return e.blocks.forEach((e, t) => {
4814
4840
  if (!e.isFragment) return;
4815
4841
  let o = n[t];
4816
4842
  o.length > 0 && a.push(o);
4817
- let s = [r, ...a].filter((e) => e.length > 0).join(fr);
4843
+ let s = [r, ...a].filter((e) => e.length > 0).join(pr);
4818
4844
  s.length > 0 && i.set(t, s);
4819
4845
  }), {
4820
4846
  slideLevel: r,
4821
4847
  cumulativeByBlock: i
4822
4848
  };
4823
- }, hr = "<!--\n NOTE: You need to build the notes plugin after making changes to this file.\n-->\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n\n <title>reveal.js - Speaker View</title>\n\n <style>\n body {\n font-family: Helvetica;\n font-size: 18px;\n }\n\n #current-slide,\n #upcoming-slide,\n #speaker-controls {\n padding: 6px;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n }\n\n #current-slide iframe,\n #upcoming-slide iframe {\n width: 100%;\n height: 100%;\n border: 1px solid #ddd;\n }\n\n #current-slide .label,\n #upcoming-slide .label {\n position: absolute;\n top: 10px;\n left: 10px;\n z-index: 2;\n }\n\n #connection-status {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 20;\n padding: 30% 20% 20% 20%;\n font-size: 18px;\n color: #222;\n background: #fff;\n text-align: center;\n box-sizing: border-box;\n line-height: 1.4;\n }\n\n .overlay-element {\n height: 34px;\n line-height: 34px;\n padding: 0 10px;\n text-shadow: none;\n background: rgba( 220, 220, 220, 0.8 );\n color: #222;\n font-size: 14px;\n }\n\n .overlay-element.interactive:hover {\n background: rgba( 220, 220, 220, 1 );\n }\n\n #current-slide {\n position: absolute;\n width: 60%;\n height: 100%;\n top: 0;\n left: 0;\n padding-right: 0;\n }\n\n #upcoming-slide {\n position: absolute;\n width: 40%;\n height: 40%;\n right: 0;\n top: 0;\n }\n\n /* Speaker controls */\n #speaker-controls {\n position: absolute;\n top: 40%;\n right: 0;\n width: 40%;\n height: 60%;\n overflow: auto;\n font-size: 18px;\n }\n\n .speaker-controls-time.hidden,\n .speaker-controls-notes.hidden {\n display: none;\n }\n\n .speaker-controls-time .label,\n .speaker-controls-pace .label,\n .speaker-controls-notes .label {\n text-transform: uppercase;\n font-weight: normal;\n font-size: 0.66em;\n color: #666;\n margin: 0;\n }\n\n .speaker-controls-time, .speaker-controls-pace {\n border-bottom: 1px solid rgba( 200, 200, 200, 0.5 );\n margin-bottom: 10px;\n padding: 10px 16px;\n padding-bottom: 20px;\n cursor: pointer;\n }\n\n .speaker-controls-time .reset-button {\n opacity: 0;\n float: right;\n color: #666;\n text-decoration: none;\n }\n .speaker-controls-time:hover .reset-button {\n opacity: 1;\n }\n\n .speaker-controls-time .timer,\n .speaker-controls-time .clock {\n width: 50%;\n }\n\n .speaker-controls-time .timer,\n .speaker-controls-time .clock,\n .speaker-controls-time .pacing .hours-value,\n .speaker-controls-time .pacing .minutes-value,\n .speaker-controls-time .pacing .seconds-value {\n font-size: 1.9em;\n }\n\n .speaker-controls-time .timer {\n float: left;\n }\n\n .speaker-controls-time .clock {\n float: right;\n text-align: right;\n }\n\n .speaker-controls-time span.mute {\n opacity: 0.3;\n }\n\n .speaker-controls-time .pacing-title {\n margin-top: 5px;\n }\n\n .speaker-controls-time .pacing.ahead {\n color: blue;\n }\n\n .speaker-controls-time .pacing.on-track {\n color: green;\n }\n\n .speaker-controls-time .pacing.behind {\n color: red;\n }\n\n .speaker-controls-notes {\n padding: 10px 16px;\n }\n\n .speaker-controls-notes .value {\n margin-top: 5px;\n line-height: 1.4;\n font-size: 1.2em;\n }\n\n /* Layout selector\xA0*/\n #speaker-layout {\n position: absolute;\n top: 10px;\n right: 10px;\n color: #222;\n z-index: 10;\n }\n #speaker-layout select {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n border: 0;\n box-shadow: 0;\n cursor: pointer;\n opacity: 0;\n\n font-size: 1em;\n background-color: transparent;\n\n -moz-appearance: none;\n -webkit-appearance: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n\n #speaker-layout select:focus {\n outline: none;\n box-shadow: none;\n }\n\n .clear {\n clear: both;\n }\n\n /* Speaker layout: Wide */\n body[data-speaker-layout=\"wide\"] #current-slide,\n body[data-speaker-layout=\"wide\"] #upcoming-slide {\n width: 50%;\n height: 45%;\n padding: 6px;\n }\n\n body[data-speaker-layout=\"wide\"] #current-slide {\n top: 0;\n left: 0;\n }\n\n body[data-speaker-layout=\"wide\"] #upcoming-slide {\n top: 0;\n left: 50%;\n }\n\n body[data-speaker-layout=\"wide\"] #speaker-controls {\n top: 45%;\n left: 0;\n width: 100%;\n height: 50%;\n font-size: 1.25em;\n }\n\n /* Speaker layout: Tall */\n body[data-speaker-layout=\"tall\"] #current-slide,\n body[data-speaker-layout=\"tall\"] #upcoming-slide {\n width: 45%;\n height: 50%;\n padding: 6px;\n }\n\n body[data-speaker-layout=\"tall\"] #current-slide {\n top: 0;\n left: 0;\n }\n\n body[data-speaker-layout=\"tall\"] #upcoming-slide {\n top: 50%;\n left: 0;\n }\n\n body[data-speaker-layout=\"tall\"] #speaker-controls {\n padding-top: 40px;\n top: 0;\n left: 45%;\n width: 55%;\n height: 100%;\n font-size: 1.25em;\n }\n\n /* Speaker layout: Notes only */\n body[data-speaker-layout=\"notes-only\"] #current-slide,\n body[data-speaker-layout=\"notes-only\"] #upcoming-slide {\n display: none;\n }\n\n body[data-speaker-layout=\"notes-only\"] #speaker-controls {\n padding-top: 40px;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n font-size: 1.25em;\n }\n\n @media screen and (max-width: 1080px) {\n body[data-speaker-layout=\"default\"] #speaker-controls {\n font-size: 16px;\n }\n }\n\n @media screen and (max-width: 900px) {\n body[data-speaker-layout=\"default\"] #speaker-controls {\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 800px) {\n body[data-speaker-layout=\"default\"] #speaker-controls {\n font-size: 12px;\n }\n }\n\n </style>\n </head>\n\n <body>\n\n <div id=\"connection-status\">Loading speaker view...</div>\n\n <div id=\"current-slide\"></div>\n <div id=\"upcoming-slide\"><span class=\"overlay-element label\">Upcoming</span></div>\n <div id=\"speaker-controls\">\n <div class=\"speaker-controls-time\">\n <h4 class=\"label\">Time <span class=\"reset-button\">Click to Reset</span></h4>\n <div class=\"clock\">\n <span class=\"clock-value\">0:00 AM</span>\n </div>\n <div class=\"timer\">\n <span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n </div>\n <div class=\"clear\"></div>\n\n <h4 class=\"label pacing-title\" style=\"display: none\">Pacing – Time to finish current slide</h4>\n <div class=\"pacing\" style=\"display: none\">\n <span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n </div>\n </div>\n\n <div class=\"speaker-controls-notes hidden\">\n <h4 class=\"label\">Notes</h4>\n <div class=\"value\"></div>\n </div>\n </div>\n <div id=\"speaker-layout\" class=\"overlay-element interactive\">\n <span class=\"speaker-layout-label\"></span>\n <select class=\"speaker-layout-dropdown\"></select>\n </div>\n\n <script>\n\n (function() {\n\n var notes,\n notesValue,\n currentState,\n currentSlide,\n upcomingSlide,\n layoutLabel,\n layoutDropdown,\n pendingCalls = {},\n lastRevealApiCallId = 0,\n connected = false\n\n var connectionStatus = document.querySelector( '#connection-status' );\n\n var SPEAKER_LAYOUTS = {\n 'default': 'Default',\n 'wide': 'Wide',\n 'tall': 'Tall',\n 'notes-only': 'Notes only'\n };\n\n setupLayout();\n\n let openerOrigin;\n\n try {\n openerOrigin = window.opener.location.origin;\n }\n catch ( error ) { console.warn( error ) }\n\n // In order to prevent XSS, the speaker view will only run if its\n // opener has the same origin as itself\n if( window.location.origin !== openerOrigin ) {\n connectionStatus.innerHTML = 'Cross origin error.<br>The speaker window can only be opened from the same origin.';\n return;\n }\n\n var connectionTimeout = setTimeout( function() {\n connectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';\n }, 5000 );\n\n window.addEventListener( 'message', function( event ) {\n\n // Validate the origin of all messages to avoid parsing messages\n // that aren't meant for us. Ignore when running off file:// so\n // that the speaker view continues to work without a web server.\n if( window.location.origin !== event.origin && window.location.origin !== 'file://' ) {\n return\n }\n\n clearTimeout( connectionTimeout );\n connectionStatus.style.display = 'none';\n\n var data = JSON.parse( event.data );\n\n // The overview mode is only useful to the reveal.js instance\n // where navigation occurs so we don't sync it\n if( data.state ) delete data.state.overview;\n\n // Messages sent by the notes plugin inside of the main window\n if( data && data.namespace === 'reveal-notes' ) {\n if( data.type === 'connect' ) {\n handleConnectMessage( data );\n }\n else if( data.type === 'state' ) {\n handleStateMessage( data );\n }\n else if( data.type === 'return' ) {\n pendingCalls[data.callId](data.result);\n delete pendingCalls[data.callId];\n }\n }\n // Messages sent by the reveal.js inside of the current slide preview\n else if( data && data.namespace === 'reveal' ) {\n const supportedEvents = [\n 'slidechanged',\n 'fragmentshown',\n 'fragmenthidden',\n 'paused',\n 'resumed',\n 'previewiframe',\n 'previewimage',\n 'previewvideo',\n 'closeoverlay'\n ];\n\n if( /ready/.test( data.eventName ) ) {\n // Send a message back to notify that the handshake is complete\n window.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'connected'} ), '*' );\n }\n else if( supportedEvents.includes( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {\n dispatchStateToMainWindow( data.state );\n }\n }\n\n } );\n\n /**\n * Updates the presentation in the main window to match the state\n * of the presentation in the notes window.\n */\n const dispatchStateToMainWindow = debounce(( state ) => {\n window.opener.postMessage( JSON.stringify({ method: 'setState', args: [ state ]} ), '*' );\n }, 500);\n\n /**\n * Asynchronously calls the Reveal.js API of the main frame.\n */\n function callRevealApi( methodName, methodArguments, callback ) {\n\n var callId = ++lastRevealApiCallId;\n pendingCalls[callId] = callback;\n window.opener.postMessage( JSON.stringify( {\n namespace: 'reveal-notes',\n type: 'call',\n callId: callId,\n methodName: methodName,\n arguments: methodArguments\n } ), '*' );\n\n }\n\n /**\n * Called when the main window is trying to establish a\n * connection.\n */\n function handleConnectMessage( data ) {\n\n if( connected === false ) {\n connected = true;\n\n setupIframes( data );\n setupKeyboard();\n setupNotes();\n setupTimer();\n setupHeartbeat();\n }\n\n }\n\n /**\n * Called when the main window sends an updated state.\n */\n function handleStateMessage( data ) {\n\n // Store the most recently set state to avoid circular loops\n // applying the same state\n currentState = JSON.stringify( data.state );\n\n // No need for updating the notes in case of fragment changes\n if ( data.notes ) {\n notes.classList.remove( 'hidden' );\n notesValue.style.whiteSpace = data.whitespace;\n if( data.markdown ) {\n notesValue.innerHTML = marked.parse( data.notes );\n }\n else {\n notesValue.innerHTML = data.notes;\n }\n }\n else {\n notes.classList.add( 'hidden' );\n }\n\n // Don't show lightboxes in the upcoming slide\n const { previewVideo, previewImage, previewIframe, ...upcomingState } = data.state;\n\n // Update the note slides\n currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n upcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ upcomingState ] }), '*' );\n upcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'next' }), '*' );\n\n }\n\n // Limit to max one state update per X ms\n handleStateMessage = debounce( handleStateMessage, 200 );\n\n /**\n * Forward keyboard events to the current slide window.\n * This enables keyboard events to work even if focus\n * isn't set on the current slide iframe.\n *\n * Block F5 default handling, it reloads and disconnects\n * the speaker notes window.\n */\n function setupKeyboard() {\n\n document.addEventListener( 'keydown', function( event ) {\n if( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {\n event.preventDefault();\n return false;\n }\n currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );\n } );\n\n }\n\n /**\n * Creates the preview iframes.\n */\n function setupIframes( data ) {\n\n var params = [\n 'receiver',\n 'progress=false',\n 'history=false',\n 'transition=none',\n 'autoSlide=0',\n 'backgroundTransition=none'\n ].join( '&' );\n\n var urlSeparator = /\\?/.test(data.url) ? '&' : '?';\n var hash = '#/' + data.state.indexh + '/' + data.state.indexv;\n var currentURL = data.url + urlSeparator + params + '&scrollActivationWidth=false&postMessageEvents=true' + hash;\n var upcomingURL = data.url + urlSeparator + params + '&scrollActivationWidth=false&controls=false' + hash;\n\n currentSlide = document.createElement( 'iframe' );\n currentSlide.setAttribute( 'width', 1280 );\n currentSlide.setAttribute( 'height', 1024 );\n currentSlide.setAttribute( 'src', currentURL );\n document.querySelector( '#current-slide' ).appendChild( currentSlide );\n\n upcomingSlide = document.createElement( 'iframe' );\n upcomingSlide.setAttribute( 'width', 640 );\n upcomingSlide.setAttribute( 'height', 512 );\n upcomingSlide.setAttribute( 'src', upcomingURL );\n document.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );\n\n }\n\n /**\n * Setup the notes UI.\n */\n function setupNotes() {\n\n notes = document.querySelector( '.speaker-controls-notes' );\n notesValue = document.querySelector( '.speaker-controls-notes .value' );\n\n }\n\n /**\n * We send out a heartbeat at all times to ensure we can\n * reconnect with the main presentation window after reloads.\n */\n function setupHeartbeat() {\n\n setInterval( () => {\n window.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'heartbeat'} ), '*' );\n }, 1000 );\n\n }\n\n function getTimings( callback ) {\n\n callRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {\n callRevealApi( 'getConfig', [], function ( config ) {\n var totalTime = config.totalTime;\n var minTimePerSlide = config.minimumTimePerSlide || 0;\n var defaultTiming = config.defaultTiming;\n if ((defaultTiming == null) && (totalTime == null)) {\n callback(null);\n return;\n }\n // Setting totalTime overrides defaultTiming\n if (totalTime) {\n defaultTiming = 0;\n }\n var timings = [];\n for ( var i in slideAttributes ) {\n var slide = slideAttributes[ i ];\n var timing = defaultTiming;\n if( slide.hasOwnProperty( 'data-timing' )) {\n var t = slide[ 'data-timing' ];\n timing = parseInt(t);\n if( isNaN(timing) ) {\n console.warn(\"Could not parse timing '\" + t + \"' of slide \" + i + \"; using default of \" + defaultTiming);\n timing = defaultTiming;\n }\n }\n timings.push(timing);\n }\n if ( totalTime ) {\n // After we've allocated time to individual slides, we summarize it and\n // subtract it from the total time\n var remainingTime = totalTime - timings.reduce( function(a, b) { return a + b; }, 0 );\n // The remaining time is divided by the number of slides that have 0 seconds\n // allocated at the moment, giving the average time-per-slide on the remaining slides\n var remainingSlides = (timings.filter( function(x) { return x == 0 }) ).length\n var timePerSlide = Math.round( remainingTime / remainingSlides, 0 )\n // And now we replace every zero-value timing with that average\n timings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );\n }\n var slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length\n if ( slidesUnderMinimum ) {\n message = \"The pacing time for \" + slidesUnderMinimum + \" slide(s) is under the configured minimum of \" + minTimePerSlide + \" seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).\";\n alert(message);\n }\n callback( timings );\n } );\n } );\n\n }\n\n /**\n * Return the number of seconds allocated for presenting\n * all slides up to and including this one.\n */\n function getTimeAllocated( timings, callback ) {\n\n callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n var allocated = 0;\n for (var i in timings.slice(0, currentSlide + 1)) {\n allocated += timings[i];\n }\n callback( allocated );\n } );\n\n }\n\n /**\n * Create the timer and clock and start updating them\n * at an interval.\n */\n function setupTimer() {\n\n var start = new Date(),\n timeEl = document.querySelector( '.speaker-controls-time' ),\n clockEl = timeEl.querySelector( '.clock-value' ),\n hoursEl = timeEl.querySelector( '.hours-value' ),\n minutesEl = timeEl.querySelector( '.minutes-value' ),\n secondsEl = timeEl.querySelector( '.seconds-value' ),\n pacingTitleEl = timeEl.querySelector( '.pacing-title' ),\n pacingEl = timeEl.querySelector( '.pacing' ),\n pacingHoursEl = pacingEl.querySelector( '.hours-value' ),\n pacingMinutesEl = pacingEl.querySelector( '.minutes-value' ),\n pacingSecondsEl = pacingEl.querySelector( '.seconds-value' );\n\n var timings = null;\n getTimings( function ( _timings ) {\n\n timings = _timings;\n if (_timings !== null) {\n pacingTitleEl.style.removeProperty('display');\n pacingEl.style.removeProperty('display');\n }\n\n // Update once directly\n _updateTimer();\n\n // Then update every second\n setInterval( _updateTimer, 1000 );\n\n } );\n\n\n function _resetTimer() {\n\n if (timings == null) {\n start = new Date();\n _updateTimer();\n }\n else {\n // Reset timer to beginning of current slide\n getTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n var slideEndTiming = slideEndTimingSeconds * 1000;\n callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n var currentSlideTiming = timings[currentSlide] * 1000;\n var previousSlidesTiming = slideEndTiming - currentSlideTiming;\n var now = new Date();\n start = new Date(now.getTime() - previousSlidesTiming);\n _updateTimer();\n } );\n } );\n }\n\n }\n\n timeEl.addEventListener( 'click', function() {\n _resetTimer();\n return false;\n } );\n\n function _displayTime( hrEl, minEl, secEl, time) {\n\n var sign = Math.sign(time) == -1 ? \"-\" : \"\";\n time = Math.abs(Math.round(time / 1000));\n var seconds = time % 60;\n var minutes = Math.floor( time / 60 ) % 60 ;\n var hours = Math.floor( time / ( 60 * 60 )) ;\n hrEl.innerHTML = sign + zeroPadInteger( hours );\n if (hours == 0) {\n hrEl.classList.add( 'mute' );\n }\n else {\n hrEl.classList.remove( 'mute' );\n }\n minEl.innerHTML = ':' + zeroPadInteger( minutes );\n if (hours == 0 && minutes == 0) {\n minEl.classList.add( 'mute' );\n }\n else {\n minEl.classList.remove( 'mute' );\n }\n secEl.innerHTML = ':' + zeroPadInteger( seconds );\n }\n\n function _updateTimer() {\n\n var diff, hours, minutes, seconds,\n now = new Date();\n\n diff = now.getTime() - start.getTime();\n\n clockEl.innerHTML = now.toLocaleTimeString( 'en-US', { hour12: true, hour: '2-digit', minute:'2-digit' } );\n _displayTime( hoursEl, minutesEl, secondsEl, diff );\n if (timings !== null) {\n _updatePacing(diff);\n }\n\n }\n\n function _updatePacing(diff) {\n\n getTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n var slideEndTiming = slideEndTimingSeconds * 1000;\n\n callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n var currentSlideTiming = timings[currentSlide] * 1000;\n var timeLeftCurrentSlide = slideEndTiming - diff;\n if (timeLeftCurrentSlide < 0) {\n pacingEl.className = 'pacing behind';\n }\n else if (timeLeftCurrentSlide < currentSlideTiming) {\n pacingEl.className = 'pacing on-track';\n }\n else {\n pacingEl.className = 'pacing ahead';\n }\n _displayTime( pacingHoursEl, pacingMinutesEl, pacingSecondsEl, timeLeftCurrentSlide );\n } );\n } );\n }\n\n }\n\n /**\n * Sets up the speaker view layout and layout selector.\n */\n function setupLayout() {\n\n layoutDropdown = document.querySelector( '.speaker-layout-dropdown' );\n layoutLabel = document.querySelector( '.speaker-layout-label' );\n\n // Render the list of available layouts\n for( var id in SPEAKER_LAYOUTS ) {\n var option = document.createElement( 'option' );\n option.setAttribute( 'value', id );\n option.textContent = SPEAKER_LAYOUTS[ id ];\n layoutDropdown.appendChild( option );\n }\n\n // Monitor the dropdown for changes\n layoutDropdown.addEventListener( 'change', function( event ) {\n\n setLayout( layoutDropdown.value );\n\n }, false );\n\n // Restore any currently persisted layout\n setLayout( getLayout() );\n\n }\n\n /**\n * Sets a new speaker view layout. The layout is persisted\n * in local storage.\n */\n function setLayout( value ) {\n\n var title = SPEAKER_LAYOUTS[ value ];\n\n layoutLabel.innerHTML = 'Layout' + ( title ? ( ': ' + title ) : '' );\n layoutDropdown.value = value;\n\n document.body.setAttribute( 'data-speaker-layout', value );\n\n // Persist locally\n if( supportsLocalStorage() ) {\n window.localStorage.setItem( 'reveal-speaker-layout', value );\n }\n\n }\n\n /**\n * Returns the ID of the most recently set speaker layout\n * or our default layout if none has been set.\n */\n function getLayout() {\n\n if( supportsLocalStorage() ) {\n var layout = window.localStorage.getItem( 'reveal-speaker-layout' );\n if( layout ) {\n return layout;\n }\n }\n\n // Default to the first record in the layouts hash\n for( var id in SPEAKER_LAYOUTS ) {\n return id;\n }\n\n }\n\n function supportsLocalStorage() {\n\n try {\n localStorage.setItem('test', 'test');\n localStorage.removeItem('test');\n return true;\n }\n catch( e ) {\n return false;\n }\n\n }\n\n function zeroPadInteger( num ) {\n\n var str = '00' + parseInt( num );\n return str.substring( str.length - 2 );\n\n }\n\n /**\n * Limits the frequency at which a function can be called.\n */\n function debounce( fn, ms ) {\n\n var lastTime = 0,\n timeout;\n\n return function() {\n\n var args = arguments;\n var context = this;\n\n clearTimeout( timeout );\n\n var timeSinceLastCall = Date.now() - lastTime;\n if( timeSinceLastCall > ms ) {\n fn.apply( context, args );\n lastTime = Date.now();\n }\n else {\n timeout = setTimeout( function() {\n fn.apply( context, args );\n lastTime = Date.now();\n }, ms - timeSinceLastCall );\n }\n\n }\n\n }\n\n })();\n\n <\/script>\n </body>\n</html>";
4849
+ };
4850
+ //#endregion
4851
+ //#region ../node_modules/.pnpm/reveal.js@6.0.2/node_modules/reveal.js/dist/plugin/notes.mjs
4824
4852
  function gr() {
4825
4853
  return {
4826
4854
  async: !1,
@@ -5627,10 +5655,10 @@ ${c}` : c;
5627
5655
  }
5628
5656
  let i = e;
5629
5657
  if (this.options.extensions?.startBlock) {
5630
- let t = Infinity, n = e.slice(1), r;
5658
+ let t = 1 / 0, n = e.slice(1), r;
5631
5659
  this.options.extensions.startBlock.forEach((e) => {
5632
5660
  r = e.call({ lexer: this }, n), typeof r == "number" && r >= 0 && (t = Math.min(t, r));
5633
- }), t < Infinity && t >= 0 && (i = e.substring(0, t + 1));
5661
+ }), t < 1 / 0 && t >= 0 && (i = e.substring(0, t + 1));
5634
5662
  }
5635
5663
  if (this.state.top && (r = this.tokenizer.paragraph(i))) {
5636
5664
  let a = t.at(-1);
@@ -5720,10 +5748,10 @@ ${c}` : c;
5720
5748
  }
5721
5749
  let i = e;
5722
5750
  if (this.options.extensions?.startInline) {
5723
- let t = Infinity, n = e.slice(1), r;
5751
+ let t = 1 / 0, n = e.slice(1), r;
5724
5752
  this.options.extensions.startInline.forEach((e) => {
5725
5753
  r = e.call({ lexer: this }, n), typeof r == "number" && r >= 0 && (t = Math.min(t, r));
5726
- }), t < Infinity && t >= 0 && (i = e.substring(0, t + 1));
5754
+ }), t < 1 / 0 && t >= 0 && (i = e.substring(0, t + 1));
5727
5755
  }
5728
5756
  if (r = this.tokenizer.inlineText(i)) {
5729
5757
  e = e.substring(r.raw.length), r.raw.slice(-1) !== "_" && (o = r.raw.slice(-1)), a = !0;
@@ -6097,7 +6125,7 @@ ${e}</tr>
6097
6125
  default: {
6098
6126
  let e = r;
6099
6127
  this.defaults.extensions?.childTokens?.[e.type] ? this.defaults.extensions.childTokens[e.type].forEach((r) => {
6100
- let i = e[r].flat(Infinity);
6128
+ let i = e[r].flat(1 / 0);
6101
6129
  n = n.concat(this.walkTokens(i, t));
6102
6130
  }) : e.tokens && (n = n.concat(this.walkTokens(e.tokens, t)));
6103
6131
  }
@@ -6257,7 +6285,7 @@ var Ui = () => {
6257
6285
  function r() {
6258
6286
  if (t && !t.closed) t.focus();
6259
6287
  else {
6260
- if (t = window.open("about:blank", "reveal.js - Notes", "width=1100,height=700"), t.marked = $, t.document.write(hr), !t) {
6288
+ if (t = window.open("about:blank", "reveal.js - Notes", "width=1100,height=700"), t.marked = $, t.document.write("<!--\n NOTE: You need to build the notes plugin after making changes to this file.\n-->\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n\n <title>reveal.js - Speaker View</title>\n\n <style>\n body {\n font-family: Helvetica;\n font-size: 18px;\n }\n\n #current-slide,\n #upcoming-slide,\n #speaker-controls {\n padding: 6px;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n }\n\n #current-slide iframe,\n #upcoming-slide iframe {\n width: 100%;\n height: 100%;\n border: 1px solid #ddd;\n }\n\n #current-slide .label,\n #upcoming-slide .label {\n position: absolute;\n top: 10px;\n left: 10px;\n z-index: 2;\n }\n\n #connection-status {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 20;\n padding: 30% 20% 20% 20%;\n font-size: 18px;\n color: #222;\n background: #fff;\n text-align: center;\n box-sizing: border-box;\n line-height: 1.4;\n }\n\n .overlay-element {\n height: 34px;\n line-height: 34px;\n padding: 0 10px;\n text-shadow: none;\n background: rgba( 220, 220, 220, 0.8 );\n color: #222;\n font-size: 14px;\n }\n\n .overlay-element.interactive:hover {\n background: rgba( 220, 220, 220, 1 );\n }\n\n #current-slide {\n position: absolute;\n width: 60%;\n height: 100%;\n top: 0;\n left: 0;\n padding-right: 0;\n }\n\n #upcoming-slide {\n position: absolute;\n width: 40%;\n height: 40%;\n right: 0;\n top: 0;\n }\n\n /* Speaker controls */\n #speaker-controls {\n position: absolute;\n top: 40%;\n right: 0;\n width: 40%;\n height: 60%;\n overflow: auto;\n font-size: 18px;\n }\n\n .speaker-controls-time.hidden,\n .speaker-controls-notes.hidden {\n display: none;\n }\n\n .speaker-controls-time .label,\n .speaker-controls-pace .label,\n .speaker-controls-notes .label {\n text-transform: uppercase;\n font-weight: normal;\n font-size: 0.66em;\n color: #666;\n margin: 0;\n }\n\n .speaker-controls-time, .speaker-controls-pace {\n border-bottom: 1px solid rgba( 200, 200, 200, 0.5 );\n margin-bottom: 10px;\n padding: 10px 16px;\n padding-bottom: 20px;\n cursor: pointer;\n }\n\n .speaker-controls-time .reset-button {\n opacity: 0;\n float: right;\n color: #666;\n text-decoration: none;\n }\n .speaker-controls-time:hover .reset-button {\n opacity: 1;\n }\n\n .speaker-controls-time .timer,\n .speaker-controls-time .clock {\n width: 50%;\n }\n\n .speaker-controls-time .timer,\n .speaker-controls-time .clock,\n .speaker-controls-time .pacing .hours-value,\n .speaker-controls-time .pacing .minutes-value,\n .speaker-controls-time .pacing .seconds-value {\n font-size: 1.9em;\n }\n\n .speaker-controls-time .timer {\n float: left;\n }\n\n .speaker-controls-time .clock {\n float: right;\n text-align: right;\n }\n\n .speaker-controls-time span.mute {\n opacity: 0.3;\n }\n\n .speaker-controls-time .pacing-title {\n margin-top: 5px;\n }\n\n .speaker-controls-time .pacing.ahead {\n color: blue;\n }\n\n .speaker-controls-time .pacing.on-track {\n color: green;\n }\n\n .speaker-controls-time .pacing.behind {\n color: red;\n }\n\n .speaker-controls-notes {\n padding: 10px 16px;\n }\n\n .speaker-controls-notes .value {\n margin-top: 5px;\n line-height: 1.4;\n font-size: 1.2em;\n }\n\n /* Layout selector\xA0*/\n #speaker-layout {\n position: absolute;\n top: 10px;\n right: 10px;\n color: #222;\n z-index: 10;\n }\n #speaker-layout select {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n border: 0;\n box-shadow: 0;\n cursor: pointer;\n opacity: 0;\n\n font-size: 1em;\n background-color: transparent;\n\n -moz-appearance: none;\n -webkit-appearance: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n\n #speaker-layout select:focus {\n outline: none;\n box-shadow: none;\n }\n\n .clear {\n clear: both;\n }\n\n /* Speaker layout: Wide */\n body[data-speaker-layout=\"wide\"] #current-slide,\n body[data-speaker-layout=\"wide\"] #upcoming-slide {\n width: 50%;\n height: 45%;\n padding: 6px;\n }\n\n body[data-speaker-layout=\"wide\"] #current-slide {\n top: 0;\n left: 0;\n }\n\n body[data-speaker-layout=\"wide\"] #upcoming-slide {\n top: 0;\n left: 50%;\n }\n\n body[data-speaker-layout=\"wide\"] #speaker-controls {\n top: 45%;\n left: 0;\n width: 100%;\n height: 50%;\n font-size: 1.25em;\n }\n\n /* Speaker layout: Tall */\n body[data-speaker-layout=\"tall\"] #current-slide,\n body[data-speaker-layout=\"tall\"] #upcoming-slide {\n width: 45%;\n height: 50%;\n padding: 6px;\n }\n\n body[data-speaker-layout=\"tall\"] #current-slide {\n top: 0;\n left: 0;\n }\n\n body[data-speaker-layout=\"tall\"] #upcoming-slide {\n top: 50%;\n left: 0;\n }\n\n body[data-speaker-layout=\"tall\"] #speaker-controls {\n padding-top: 40px;\n top: 0;\n left: 45%;\n width: 55%;\n height: 100%;\n font-size: 1.25em;\n }\n\n /* Speaker layout: Notes only */\n body[data-speaker-layout=\"notes-only\"] #current-slide,\n body[data-speaker-layout=\"notes-only\"] #upcoming-slide {\n display: none;\n }\n\n body[data-speaker-layout=\"notes-only\"] #speaker-controls {\n padding-top: 40px;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n font-size: 1.25em;\n }\n\n @media screen and (max-width: 1080px) {\n body[data-speaker-layout=\"default\"] #speaker-controls {\n font-size: 16px;\n }\n }\n\n @media screen and (max-width: 900px) {\n body[data-speaker-layout=\"default\"] #speaker-controls {\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 800px) {\n body[data-speaker-layout=\"default\"] #speaker-controls {\n font-size: 12px;\n }\n }\n\n </style>\n </head>\n\n <body>\n\n <div id=\"connection-status\">Loading speaker view...</div>\n\n <div id=\"current-slide\"></div>\n <div id=\"upcoming-slide\"><span class=\"overlay-element label\">Upcoming</span></div>\n <div id=\"speaker-controls\">\n <div class=\"speaker-controls-time\">\n <h4 class=\"label\">Time <span class=\"reset-button\">Click to Reset</span></h4>\n <div class=\"clock\">\n <span class=\"clock-value\">0:00 AM</span>\n </div>\n <div class=\"timer\">\n <span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n </div>\n <div class=\"clear\"></div>\n\n <h4 class=\"label pacing-title\" style=\"display: none\">Pacing – Time to finish current slide</h4>\n <div class=\"pacing\" style=\"display: none\">\n <span class=\"hours-value\">00</span><span class=\"minutes-value\">:00</span><span class=\"seconds-value\">:00</span>\n </div>\n </div>\n\n <div class=\"speaker-controls-notes hidden\">\n <h4 class=\"label\">Notes</h4>\n <div class=\"value\"></div>\n </div>\n </div>\n <div id=\"speaker-layout\" class=\"overlay-element interactive\">\n <span class=\"speaker-layout-label\"></span>\n <select class=\"speaker-layout-dropdown\"></select>\n </div>\n\n <script>\n\n (function() {\n\n var notes,\n notesValue,\n currentState,\n currentSlide,\n upcomingSlide,\n layoutLabel,\n layoutDropdown,\n pendingCalls = {},\n lastRevealApiCallId = 0,\n connected = false\n\n var connectionStatus = document.querySelector( '#connection-status' );\n\n var SPEAKER_LAYOUTS = {\n 'default': 'Default',\n 'wide': 'Wide',\n 'tall': 'Tall',\n 'notes-only': 'Notes only'\n };\n\n setupLayout();\n\n let openerOrigin;\n\n try {\n openerOrigin = window.opener.location.origin;\n }\n catch ( error ) { console.warn( error ) }\n\n // In order to prevent XSS, the speaker view will only run if its\n // opener has the same origin as itself\n if( window.location.origin !== openerOrigin ) {\n connectionStatus.innerHTML = 'Cross origin error.<br>The speaker window can only be opened from the same origin.';\n return;\n }\n\n var connectionTimeout = setTimeout( function() {\n connectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';\n }, 5000 );\n\n window.addEventListener( 'message', function( event ) {\n\n // Validate the origin of all messages to avoid parsing messages\n // that aren't meant for us. Ignore when running off file:// so\n // that the speaker view continues to work without a web server.\n if( window.location.origin !== event.origin && window.location.origin !== 'file://' ) {\n return\n }\n\n clearTimeout( connectionTimeout );\n connectionStatus.style.display = 'none';\n\n var data = JSON.parse( event.data );\n\n // The overview mode is only useful to the reveal.js instance\n // where navigation occurs so we don't sync it\n if( data.state ) delete data.state.overview;\n\n // Messages sent by the notes plugin inside of the main window\n if( data && data.namespace === 'reveal-notes' ) {\n if( data.type === 'connect' ) {\n handleConnectMessage( data );\n }\n else if( data.type === 'state' ) {\n handleStateMessage( data );\n }\n else if( data.type === 'return' ) {\n pendingCalls[data.callId](data.result);\n delete pendingCalls[data.callId];\n }\n }\n // Messages sent by the reveal.js inside of the current slide preview\n else if( data && data.namespace === 'reveal' ) {\n const supportedEvents = [\n 'slidechanged',\n 'fragmentshown',\n 'fragmenthidden',\n 'paused',\n 'resumed',\n 'previewiframe',\n 'previewimage',\n 'previewvideo',\n 'closeoverlay'\n ];\n\n if( /ready/.test( data.eventName ) ) {\n // Send a message back to notify that the handshake is complete\n window.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'connected'} ), '*' );\n }\n else if( supportedEvents.includes( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {\n dispatchStateToMainWindow( data.state );\n }\n }\n\n } );\n\n /**\n * Updates the presentation in the main window to match the state\n * of the presentation in the notes window.\n */\n const dispatchStateToMainWindow = debounce(( state ) => {\n window.opener.postMessage( JSON.stringify({ method: 'setState', args: [ state ]} ), '*' );\n }, 500);\n\n /**\n * Asynchronously calls the Reveal.js API of the main frame.\n */\n function callRevealApi( methodName, methodArguments, callback ) {\n\n var callId = ++lastRevealApiCallId;\n pendingCalls[callId] = callback;\n window.opener.postMessage( JSON.stringify( {\n namespace: 'reveal-notes',\n type: 'call',\n callId: callId,\n methodName: methodName,\n arguments: methodArguments\n } ), '*' );\n\n }\n\n /**\n * Called when the main window is trying to establish a\n * connection.\n */\n function handleConnectMessage( data ) {\n\n if( connected === false ) {\n connected = true;\n\n setupIframes( data );\n setupKeyboard();\n setupNotes();\n setupTimer();\n setupHeartbeat();\n }\n\n }\n\n /**\n * Called when the main window sends an updated state.\n */\n function handleStateMessage( data ) {\n\n // Store the most recently set state to avoid circular loops\n // applying the same state\n currentState = JSON.stringify( data.state );\n\n // No need for updating the notes in case of fragment changes\n if ( data.notes ) {\n notes.classList.remove( 'hidden' );\n notesValue.style.whiteSpace = data.whitespace;\n if( data.markdown ) {\n notesValue.innerHTML = marked.parse( data.notes );\n }\n else {\n notesValue.innerHTML = data.notes;\n }\n }\n else {\n notes.classList.add( 'hidden' );\n }\n\n // Don't show lightboxes in the upcoming slide\n const { previewVideo, previewImage, previewIframe, ...upcomingState } = data.state;\n\n // Update the note slides\n currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ] }), '*' );\n upcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'setState', args: [ upcomingState ] }), '*' );\n upcomingSlide.contentWindow.postMessage( JSON.stringify({ method: 'next' }), '*' );\n\n }\n\n // Limit to max one state update per X ms\n handleStateMessage = debounce( handleStateMessage, 200 );\n\n /**\n * Forward keyboard events to the current slide window.\n * This enables keyboard events to work even if focus\n * isn't set on the current slide iframe.\n *\n * Block F5 default handling, it reloads and disconnects\n * the speaker notes window.\n */\n function setupKeyboard() {\n\n document.addEventListener( 'keydown', function( event ) {\n if( event.keyCode === 116 || ( event.metaKey && event.keyCode === 82 ) ) {\n event.preventDefault();\n return false;\n }\n currentSlide.contentWindow.postMessage( JSON.stringify({ method: 'triggerKey', args: [ event.keyCode ] }), '*' );\n } );\n\n }\n\n /**\n * Creates the preview iframes.\n */\n function setupIframes( data ) {\n\n var params = [\n 'receiver',\n 'progress=false',\n 'history=false',\n 'transition=none',\n 'autoSlide=0',\n 'backgroundTransition=none'\n ].join( '&' );\n\n var urlSeparator = /\\?/.test(data.url) ? '&' : '?';\n var hash = '#/' + data.state.indexh + '/' + data.state.indexv;\n var currentURL = data.url + urlSeparator + params + '&scrollActivationWidth=false&postMessageEvents=true' + hash;\n var upcomingURL = data.url + urlSeparator + params + '&scrollActivationWidth=false&controls=false' + hash;\n\n currentSlide = document.createElement( 'iframe' );\n currentSlide.setAttribute( 'width', 1280 );\n currentSlide.setAttribute( 'height', 1024 );\n currentSlide.setAttribute( 'src', currentURL );\n document.querySelector( '#current-slide' ).appendChild( currentSlide );\n\n upcomingSlide = document.createElement( 'iframe' );\n upcomingSlide.setAttribute( 'width', 640 );\n upcomingSlide.setAttribute( 'height', 512 );\n upcomingSlide.setAttribute( 'src', upcomingURL );\n document.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );\n\n }\n\n /**\n * Setup the notes UI.\n */\n function setupNotes() {\n\n notes = document.querySelector( '.speaker-controls-notes' );\n notesValue = document.querySelector( '.speaker-controls-notes .value' );\n\n }\n\n /**\n * We send out a heartbeat at all times to ensure we can\n * reconnect with the main presentation window after reloads.\n */\n function setupHeartbeat() {\n\n setInterval( () => {\n window.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'heartbeat'} ), '*' );\n }, 1000 );\n\n }\n\n function getTimings( callback ) {\n\n callRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {\n callRevealApi( 'getConfig', [], function ( config ) {\n var totalTime = config.totalTime;\n var minTimePerSlide = config.minimumTimePerSlide || 0;\n var defaultTiming = config.defaultTiming;\n if ((defaultTiming == null) && (totalTime == null)) {\n callback(null);\n return;\n }\n // Setting totalTime overrides defaultTiming\n if (totalTime) {\n defaultTiming = 0;\n }\n var timings = [];\n for ( var i in slideAttributes ) {\n var slide = slideAttributes[ i ];\n var timing = defaultTiming;\n if( slide.hasOwnProperty( 'data-timing' )) {\n var t = slide[ 'data-timing' ];\n timing = parseInt(t);\n if( isNaN(timing) ) {\n console.warn(\"Could not parse timing '\" + t + \"' of slide \" + i + \"; using default of \" + defaultTiming);\n timing = defaultTiming;\n }\n }\n timings.push(timing);\n }\n if ( totalTime ) {\n // After we've allocated time to individual slides, we summarize it and\n // subtract it from the total time\n var remainingTime = totalTime - timings.reduce( function(a, b) { return a + b; }, 0 );\n // The remaining time is divided by the number of slides that have 0 seconds\n // allocated at the moment, giving the average time-per-slide on the remaining slides\n var remainingSlides = (timings.filter( function(x) { return x == 0 }) ).length\n var timePerSlide = Math.round( remainingTime / remainingSlides, 0 )\n // And now we replace every zero-value timing with that average\n timings = timings.map( function(x) { return (x==0 ? timePerSlide : x) } );\n }\n var slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length\n if ( slidesUnderMinimum ) {\n message = \"The pacing time for \" + slidesUnderMinimum + \" slide(s) is under the configured minimum of \" + minTimePerSlide + \" seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).\";\n alert(message);\n }\n callback( timings );\n } );\n } );\n\n }\n\n /**\n * Return the number of seconds allocated for presenting\n * all slides up to and including this one.\n */\n function getTimeAllocated( timings, callback ) {\n\n callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n var allocated = 0;\n for (var i in timings.slice(0, currentSlide + 1)) {\n allocated += timings[i];\n }\n callback( allocated );\n } );\n\n }\n\n /**\n * Create the timer and clock and start updating them\n * at an interval.\n */\n function setupTimer() {\n\n var start = new Date(),\n timeEl = document.querySelector( '.speaker-controls-time' ),\n clockEl = timeEl.querySelector( '.clock-value' ),\n hoursEl = timeEl.querySelector( '.hours-value' ),\n minutesEl = timeEl.querySelector( '.minutes-value' ),\n secondsEl = timeEl.querySelector( '.seconds-value' ),\n pacingTitleEl = timeEl.querySelector( '.pacing-title' ),\n pacingEl = timeEl.querySelector( '.pacing' ),\n pacingHoursEl = pacingEl.querySelector( '.hours-value' ),\n pacingMinutesEl = pacingEl.querySelector( '.minutes-value' ),\n pacingSecondsEl = pacingEl.querySelector( '.seconds-value' );\n\n var timings = null;\n getTimings( function ( _timings ) {\n\n timings = _timings;\n if (_timings !== null) {\n pacingTitleEl.style.removeProperty('display');\n pacingEl.style.removeProperty('display');\n }\n\n // Update once directly\n _updateTimer();\n\n // Then update every second\n setInterval( _updateTimer, 1000 );\n\n } );\n\n\n function _resetTimer() {\n\n if (timings == null) {\n start = new Date();\n _updateTimer();\n }\n else {\n // Reset timer to beginning of current slide\n getTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n var slideEndTiming = slideEndTimingSeconds * 1000;\n callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n var currentSlideTiming = timings[currentSlide] * 1000;\n var previousSlidesTiming = slideEndTiming - currentSlideTiming;\n var now = new Date();\n start = new Date(now.getTime() - previousSlidesTiming);\n _updateTimer();\n } );\n } );\n }\n\n }\n\n timeEl.addEventListener( 'click', function() {\n _resetTimer();\n return false;\n } );\n\n function _displayTime( hrEl, minEl, secEl, time) {\n\n var sign = Math.sign(time) == -1 ? \"-\" : \"\";\n time = Math.abs(Math.round(time / 1000));\n var seconds = time % 60;\n var minutes = Math.floor( time / 60 ) % 60 ;\n var hours = Math.floor( time / ( 60 * 60 )) ;\n hrEl.innerHTML = sign + zeroPadInteger( hours );\n if (hours == 0) {\n hrEl.classList.add( 'mute' );\n }\n else {\n hrEl.classList.remove( 'mute' );\n }\n minEl.innerHTML = ':' + zeroPadInteger( minutes );\n if (hours == 0 && minutes == 0) {\n minEl.classList.add( 'mute' );\n }\n else {\n minEl.classList.remove( 'mute' );\n }\n secEl.innerHTML = ':' + zeroPadInteger( seconds );\n }\n\n function _updateTimer() {\n\n var diff, hours, minutes, seconds,\n now = new Date();\n\n diff = now.getTime() - start.getTime();\n\n clockEl.innerHTML = now.toLocaleTimeString( 'en-US', { hour12: true, hour: '2-digit', minute:'2-digit' } );\n _displayTime( hoursEl, minutesEl, secondsEl, diff );\n if (timings !== null) {\n _updatePacing(diff);\n }\n\n }\n\n function _updatePacing(diff) {\n\n getTimeAllocated( timings, function ( slideEndTimingSeconds ) {\n var slideEndTiming = slideEndTimingSeconds * 1000;\n\n callRevealApi( 'getSlidePastCount', [], function ( currentSlide ) {\n var currentSlideTiming = timings[currentSlide] * 1000;\n var timeLeftCurrentSlide = slideEndTiming - diff;\n if (timeLeftCurrentSlide < 0) {\n pacingEl.className = 'pacing behind';\n }\n else if (timeLeftCurrentSlide < currentSlideTiming) {\n pacingEl.className = 'pacing on-track';\n }\n else {\n pacingEl.className = 'pacing ahead';\n }\n _displayTime( pacingHoursEl, pacingMinutesEl, pacingSecondsEl, timeLeftCurrentSlide );\n } );\n } );\n }\n\n }\n\n /**\n * Sets up the speaker view layout and layout selector.\n */\n function setupLayout() {\n\n layoutDropdown = document.querySelector( '.speaker-layout-dropdown' );\n layoutLabel = document.querySelector( '.speaker-layout-label' );\n\n // Render the list of available layouts\n for( var id in SPEAKER_LAYOUTS ) {\n var option = document.createElement( 'option' );\n option.setAttribute( 'value', id );\n option.textContent = SPEAKER_LAYOUTS[ id ];\n layoutDropdown.appendChild( option );\n }\n\n // Monitor the dropdown for changes\n layoutDropdown.addEventListener( 'change', function( event ) {\n\n setLayout( layoutDropdown.value );\n\n }, false );\n\n // Restore any currently persisted layout\n setLayout( getLayout() );\n\n }\n\n /**\n * Sets a new speaker view layout. The layout is persisted\n * in local storage.\n */\n function setLayout( value ) {\n\n var title = SPEAKER_LAYOUTS[ value ];\n\n layoutLabel.innerHTML = 'Layout' + ( title ? ( ': ' + title ) : '' );\n layoutDropdown.value = value;\n\n document.body.setAttribute( 'data-speaker-layout', value );\n\n // Persist locally\n if( supportsLocalStorage() ) {\n window.localStorage.setItem( 'reveal-speaker-layout', value );\n }\n\n }\n\n /**\n * Returns the ID of the most recently set speaker layout\n * or our default layout if none has been set.\n */\n function getLayout() {\n\n if( supportsLocalStorage() ) {\n var layout = window.localStorage.getItem( 'reveal-speaker-layout' );\n if( layout ) {\n return layout;\n }\n }\n\n // Default to the first record in the layouts hash\n for( var id in SPEAKER_LAYOUTS ) {\n return id;\n }\n\n }\n\n function supportsLocalStorage() {\n\n try {\n localStorage.setItem('test', 'test');\n localStorage.removeItem('test');\n return true;\n }\n catch( e ) {\n return false;\n }\n\n }\n\n function zeroPadInteger( num ) {\n\n var str = '00' + parseInt( num );\n return str.substring( str.length - 2 );\n\n }\n\n /**\n * Limits the frequency at which a function can be called.\n */\n function debounce( fn, ms ) {\n\n var lastTime = 0,\n timeout;\n\n return function() {\n\n var args = arguments;\n var context = this;\n\n clearTimeout( timeout );\n\n var timeSinceLastCall = Date.now() - lastTime;\n if( timeSinceLastCall > ms ) {\n fn.apply( context, args );\n lastTime = Date.now();\n }\n else {\n timeout = setTimeout( function() {\n fn.apply( context, args );\n lastTime = Date.now();\n }, ms - timeSinceLastCall );\n }\n\n }\n\n }\n\n })();\n\n <\/script>\n </body>\n</html>"), !t) {
6261
6289
  alert("Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.");
6262
6290
  return;
6263
6291
  }
@@ -6366,12 +6394,12 @@ function Xi(e) {
6366
6394
  return Ji.has(e.key) ? 1 : Yi.has(e.key) ? -1 : 0;
6367
6395
  }
6368
6396
  function Zi(e) {
6369
- let t = (0, M.c)(4), n;
6397
+ let t = (0, N.c)(4), n;
6370
6398
  t[0] === Symbol.for("react.memo_cache_sentinel") ? (n = {
6371
6399
  width: 960,
6372
6400
  height: 540
6373
6401
  }, t[0] = n) : n = t[0];
6374
- let [r, i] = (0, j.useState)(n), a, o;
6402
+ let [r, i] = (0, M.useState)(n), a, o;
6375
6403
  return t[1] === e ? (a = t[2], o = t[3]) : (a = () => {
6376
6404
  let t = e.current;
6377
6405
  if (!t) return;
@@ -6385,15 +6413,15 @@ function Zi(e) {
6385
6413
  });
6386
6414
  });
6387
6415
  return n.observe(t), () => n.disconnect();
6388
- }, o = [e], t[1] = e, t[2] = a, t[3] = o), (0, j.useEffect)(a, o), r;
6416
+ }, o = [e], t[1] = e, t[2] = a, t[3] = o), (0, M.useEffect)(a, o), r;
6389
6417
  }
6390
6418
  var Qi = (e) => {
6391
- let t = (0, M.c)(6), { text: n } = e, r, i;
6419
+ let t = (0, N.c)(6), { text: n } = e, r, i;
6392
6420
  if (t[0] !== n) {
6393
6421
  let e = n.split("\n");
6394
6422
  r = "notes", i = e.map((t, n) => {
6395
6423
  let r = n === e.length - 1;
6396
- return t === "---" ? /* @__PURE__ */ (0, G.jsx)("hr", {}, n) : /* @__PURE__ */ (0, G.jsxs)(j.Fragment, { children: [t, !r && /* @__PURE__ */ (0, G.jsx)("br", {})] }, n);
6424
+ return t === "---" ? /* @__PURE__ */ (0, G.jsx)("hr", {}, n) : /* @__PURE__ */ (0, G.jsxs)(M.Fragment, { children: [t, !r && /* @__PURE__ */ (0, G.jsx)("br", {})] }, n);
6397
6425
  }), t[0] = n, t[1] = r, t[2] = i;
6398
6426
  } else r = t[1], i = t[2];
6399
6427
  let a;
@@ -6411,14 +6439,14 @@ function ea(e) {
6411
6439
  return n.has(t.id) || t.id === r ? "skip" : i.get(t.id)?.type ?? "slide";
6412
6440
  }
6413
6441
  function ta(e) {
6414
- let t = (0, M.c)(15), { activeCell: n, slideConfigs: r, noOutputIds: i } = e, a = n?.id ?? null, o;
6442
+ let t = (0, N.c)(15), { activeCell: n, slideConfigs: r, noOutputIds: i } = e, a = n?.id ?? null, o;
6415
6443
  t[0] !== n || t[1] !== i ? (o = n != null && i.has(n.id), t[0] = n, t[1] = i, t[2] = o) : o = t[2];
6416
6444
  let s = o, c = n != null && r.get(n.id)?.type === "skip" || s, l;
6417
6445
  t[3] === a ? l = t[4] : (l = {
6418
6446
  activeCellId: a,
6419
6447
  cellId: null
6420
6448
  }, t[3] = a, t[4] = l);
6421
- let [u, d] = (0, j.useState)(l), f = u.cellId;
6449
+ let [u, d] = (0, M.useState)(l), f = u.cellId;
6422
6450
  u.activeCellId === a ? s && f !== a && (f = a, d({
6423
6451
  activeCellId: a,
6424
6452
  cellId: f
@@ -6431,14 +6459,14 @@ function ta(e) {
6431
6459
  cellId: m,
6432
6460
  show: !0
6433
6461
  }, t[5] = m, t[6] = h);
6434
- let [g, _] = (0, j.useState)(h), v = g.show;
6462
+ let [g, _] = (0, M.useState)(h), v = g.show;
6435
6463
  g.cellId !== m && (v = !0, _({
6436
6464
  cellId: m,
6437
6465
  show: !0
6438
6466
  }));
6439
6467
  let y;
6440
6468
  t[7] === Symbol.for("react.memo_cache_sentinel") ? (y = () => _(na), t[7] = y) : y = t[7];
6441
- let b = E(y), x = c || p ? n ?? null : null, S;
6469
+ let b = D(y), x = c || p ? n ?? null : null, S;
6442
6470
  return t[8] !== m || t[9] !== v || t[10] !== p || t[11] !== s || t[12] !== x || t[13] !== b ? (S = {
6443
6471
  parkedPreviewCell: x,
6444
6472
  isHeldEdit: p,
@@ -6462,7 +6490,7 @@ function ra(e) {
6462
6490
  }
6463
6491
  }
6464
6492
  var ia = (e) => {
6465
- let t = (0, M.c)(13), { cell: n } = e, r;
6493
+ let t = (0, N.c)(13), { cell: n } = e, r;
6466
6494
  t[0] !== n.id || t[1] !== n.name ? (r = x(n.id, n.name), t[0] = n.id, t[1] = n.name, t[2] = r) : r = t[2];
6467
6495
  let i = n.id, a = n.status, o = n.output, s;
6468
6496
  t[3] === n ? s = t[4] : (s = u(n, !1), t[3] = n, t[4] = s);
@@ -6480,21 +6508,21 @@ var ia = (e) => {
6480
6508
  children: c
6481
6509
  }), t[10] = r, t[11] = c, t[12] = l) : l = t[12], l;
6482
6510
  }, aa = (e) => {
6483
- let t = (0, M.c)(24), { subslide: n, resolveShowCode: r, isEditable: i, slideConfigs: a, contentStyle: o } = e, s, c, l, u, d, f;
6511
+ let t = (0, N.c)(24), { subslide: n, resolveShowCode: r, isEditable: i, slideConfigs: a, contentStyle: o } = e, s, c, l, u, d, f;
6484
6512
  if (t[0] !== o || t[1] !== i || t[2] !== r || t[3] !== a || t[4] !== n) {
6485
- let { slideLevel: e, cumulativeByBlock: p } = mr(n, a);
6513
+ let { slideLevel: e, cumulativeByBlock: p } = hr(n, a);
6486
6514
  l = e;
6487
6515
  let m = n.blocks.some((e) => e.cells.some((e) => r(e.id)));
6488
- c = _t, s = er, u = m ? "mo-slide-content flex flex-col gap-3" : "mo-slide-content", d = o, f = n.blocks.map((e, t) => {
6489
- let n = e.cells.map((e) => r(e.id) ? i ? /* @__PURE__ */ (0, G.jsx)(sr, { cell: e }, e.id) : /* @__PURE__ */ (0, G.jsx)(cr, { cell: e }, e.id) : /* @__PURE__ */ (0, G.jsx)(ia, { cell: e }, e.id));
6516
+ c = K, s = tr, u = m ? "mo-slide-content flex flex-col gap-3" : "mo-slide-content", d = o, f = n.blocks.map((e, t) => {
6517
+ let n = e.cells.map((e) => r(e.id) ? i ? /* @__PURE__ */ (0, G.jsx)(cr, { cell: e }, e.id) : /* @__PURE__ */ (0, G.jsx)(lr, { cell: e }, e.id) : /* @__PURE__ */ (0, G.jsx)(ia, { cell: e }, e.id));
6490
6518
  if (e.isFragment) {
6491
6519
  let e = p.get(t);
6492
- return /* @__PURE__ */ (0, G.jsxs)(qn, {
6520
+ return /* @__PURE__ */ (0, G.jsxs)(Jn, {
6493
6521
  as: "div",
6494
6522
  children: [n, e && /* @__PURE__ */ (0, G.jsx)(Qi, { text: e })]
6495
6523
  }, t);
6496
6524
  }
6497
- return /* @__PURE__ */ (0, G.jsx)(j.Fragment, { children: n }, t);
6525
+ return /* @__PURE__ */ (0, G.jsx)(M.Fragment, { children: n }, t);
6498
6526
  }), t[0] = o, t[1] = i, t[2] = r, t[3] = a, t[4] = n, t[5] = s, t[6] = c, t[7] = l, t[8] = u, t[9] = d, t[10] = f;
6499
6527
  } else s = t[5], c = t[6], l = t[7], u = t[8], d = t[9], f = t[10];
6500
6528
  let p;
@@ -6515,210 +6543,210 @@ function oa(e) {
6515
6543
  return t && n || r;
6516
6544
  }
6517
6545
  var sa = (e) => {
6518
- let t = (0, M.c)(5), { cell: n, isNoOutputPreview: r, isEditable: i, showCode: a } = e;
6546
+ let t = (0, N.c)(5), { cell: n, isNoOutputPreview: r, isEditable: i, showCode: a } = e;
6519
6547
  if (oa({
6520
6548
  isNoOutputPreview: r,
6521
6549
  isEditable: i,
6522
6550
  showCode: a
6523
6551
  })) {
6524
6552
  let e;
6525
- return t[0] !== n || t[1] !== i ? (e = i ? /* @__PURE__ */ (0, G.jsx)(sr, { cell: n }) : /* @__PURE__ */ (0, G.jsx)(cr, { cell: n }), t[0] = n, t[1] = i, t[2] = e) : e = t[2], e;
6553
+ return t[0] !== n || t[1] !== i ? (e = i ? /* @__PURE__ */ (0, G.jsx)(cr, { cell: n }) : /* @__PURE__ */ (0, G.jsx)(lr, { cell: n }), t[0] = n, t[1] = i, t[2] = e) : e = t[2], e;
6526
6554
  }
6527
6555
  let o;
6528
6556
  return t[3] === n ? o = t[4] : (o = /* @__PURE__ */ (0, G.jsx)(ia, { cell: n }), t[3] = n, t[4] = o), o;
6529
6557
  }, ca = (e) => {
6530
- let n = (0, M.c)(160), { slideCells: o, layout: s, setLayout: c, noOutputIds: u, activeIndex: x, onSlideChange: S, mode: C, configWidth: ee, isEditable: T } = e, A = T !== void 0 && T, ie = (0, j.useRef)(null), N = (0, j.useRef)(null), { width: ae, height: oe } = Zi(ie), se = te() != null, P = D(w), F = D(ne).kind, ce = D(k), le = F !== "wasm" || ce, I;
6531
- n[0] !== P || n[1] !== F ? (I = P || !h(F) ? [] : [Ui], n[0] = P, n[1] = F, n[2] = I) : I = n[2];
6532
- let ue = I, [de, fe] = (0, j.useState)(la), pe = re(o), me;
6533
- n[3] === pe ? me = n[4] : (me = !O() && pe, n[3] = pe, n[4] = me);
6534
- let he = me, ge;
6535
- n[5] === P ? ge = n[6] : (ge = b(P, window.location.search), n[5] = P, n[6] = ge);
6536
- let L = !ge && he, _e = x == null ? void 0 : o[x], ve;
6537
- n[7] !== _e || n[8] !== o ? (ve = _e ?? o.at(0), n[7] = _e, n[8] = o, n[9] = ve) : ve = n[9];
6538
- let ye = ve, be;
6539
- n[10] !== _e || n[11] !== s.cells || n[12] !== u ? (be = {
6540
- activeCell: _e,
6558
+ let n = (0, N.c)(160), { slideCells: o, layout: s, setLayout: c, noOutputIds: u, activeIndex: x, onSlideChange: S, mode: C, configWidth: ee, isEditable: T } = e, j = T !== void 0 && T, re = (0, M.useRef)(null), P = (0, M.useRef)(null), { width: ie, height: ae } = Zi(re), oe = E() != null, F = O(w), I = O(te).kind, se = O(A), ce = I !== "wasm" || se, L;
6559
+ n[0] !== F || n[1] !== I ? (L = F || !h(I) ? [] : [Ui], n[0] = F, n[1] = I, n[2] = L) : L = n[2];
6560
+ let le = L, [ue, de] = (0, M.useState)(la), fe = ne(o), pe;
6561
+ n[3] === fe ? pe = n[4] : (pe = !k() && fe, n[3] = fe, n[4] = pe);
6562
+ let me = pe, he;
6563
+ n[5] === F ? he = n[6] : (he = b(F, window.location.search), n[5] = F, n[6] = he);
6564
+ let R = !he && me, ge = x == null ? void 0 : o[x], _e;
6565
+ n[7] !== ge || n[8] !== o ? (_e = ge ?? o.at(0), n[7] = ge, n[8] = o, n[9] = _e) : _e = n[9];
6566
+ let ve = _e, ye;
6567
+ n[10] !== ge || n[11] !== s.cells || n[12] !== u ? (ye = {
6568
+ activeCell: ge,
6541
6569
  slideConfigs: s.cells,
6542
6570
  noOutputIds: u
6543
- }, n[10] = _e, n[11] = s.cells, n[12] = u, n[13] = be) : be = n[13];
6544
- let { parkedPreviewCell: R, isHeldEdit: xe, isNoOutputPreview: z, heldEditCellId: Se, heldShowsCode: Ce, toggleHeldShowsCode: we } = ta(be), Te;
6545
- n[14] !== he || n[15] !== s.cells || n[16] !== de ? (Te = (e) => $i({
6571
+ }, n[10] = ge, n[11] = s.cells, n[12] = u, n[13] = ye) : ye = n[13];
6572
+ let { parkedPreviewCell: z, isHeldEdit: be, isNoOutputPreview: B, heldEditCellId: xe, heldShowsCode: Se, toggleHeldShowsCode: Ce } = ta(ye), we;
6573
+ n[14] !== me || n[15] !== s.cells || n[16] !== ue ? (we = (e) => $i({
6546
6574
  cells: s.cells,
6547
6575
  cellId: e,
6548
- showCodeOverrides: de,
6549
- codeAvailable: he
6550
- }), n[14] = he, n[15] = s.cells, n[16] = de, n[17] = Te) : Te = n[17];
6551
- let Ee = Te, B = _e?.id ?? ye?.id, De;
6552
- n[18] !== B || n[19] !== Ce || n[20] !== xe || n[21] !== Ee ? (De = xe ? Ce : Ee(B), n[18] = B, n[19] = Ce, n[20] = xe, n[21] = Ee, n[22] = De) : De = n[22];
6553
- let Oe = De, ke;
6554
- n[23] !== B || n[24] !== he || n[25] !== s.cells ? (ke = he && B != null && (s.cells.get(B)?.showCode ?? !1), n[23] = B, n[24] = he, n[25] = s.cells, n[26] = ke) : ke = n[26];
6555
- let Ae = ke, je;
6556
- n[27] !== Se || n[28] !== s.cells || n[29] !== u ? (je = (e) => ea({
6576
+ showCodeOverrides: ue,
6577
+ codeAvailable: me
6578
+ }), n[14] = me, n[15] = s.cells, n[16] = ue, n[17] = we) : we = n[17];
6579
+ let Te = we, V = ge?.id ?? ve?.id, Ee;
6580
+ n[18] !== V || n[19] !== Se || n[20] !== be || n[21] !== Te ? (Ee = be ? Se : Te(V), n[18] = V, n[19] = Se, n[20] = be, n[21] = Te, n[22] = Ee) : Ee = n[22];
6581
+ let De = Ee, Oe;
6582
+ n[23] !== V || n[24] !== me || n[25] !== s.cells ? (Oe = me && V != null && (s.cells.get(V)?.showCode ?? !1), n[23] = V, n[24] = me, n[25] = s.cells, n[26] = Oe) : Oe = n[26];
6583
+ let ke = Oe, Ae;
6584
+ n[27] !== xe || n[28] !== s.cells || n[29] !== u ? (Ae = (e) => ea({
6557
6585
  cell: e,
6558
6586
  noOutputIds: u,
6559
- heldEditCellId: Se,
6587
+ heldEditCellId: xe,
6560
6588
  slideConfigs: s.cells
6561
- }), n[27] = Se, n[28] = s.cells, n[29] = u, n[30] = je) : je = n[30];
6562
- let Me;
6563
- n[31] !== o || n[32] !== je ? (Me = tr({
6589
+ }), n[27] = xe, n[28] = s.cells, n[29] = u, n[30] = Ae) : Ae = n[30];
6590
+ let je;
6591
+ n[31] !== o || n[32] !== Ae ? (je = nr({
6564
6592
  cells: o,
6565
- getType: je
6566
- }), n[31] = o, n[32] = je, n[33] = Me) : Me = n[33];
6567
- let Ne = Me, Pe;
6568
- n[34] !== Ne || n[35] !== o ? (Pe = nr({
6569
- composition: Ne,
6593
+ getType: Ae
6594
+ }), n[31] = o, n[32] = Ae, n[33] = je) : je = n[33];
6595
+ let Me = je, Ne;
6596
+ n[34] !== Me || n[35] !== o ? (Ne = rr({
6597
+ composition: Me,
6570
6598
  cells: o,
6571
6599
  getId: ua
6572
- }), n[34] = Ne, n[35] = o, n[36] = Pe) : Pe = n[36];
6573
- let { cellToTarget: Fe, targetToCellIndex: Ie } = Pe, Le = s.deck?.transition ?? "slide", Re = s.deck?.verticalAlign, ze;
6574
- n[37] === Re ? ze = n[38] : (ze = ra(Re), n[37] = Re, n[38] = ze);
6575
- let Be = ze, Ve;
6576
- n[39] === Symbol.for("react.memo_cache_sentinel") ? (Ve = v(window.location.href), n[39] = Ve) : Ve = n[39];
6577
- let He = Ve, V;
6578
- n[40] !== Le || n[41] !== oe || n[42] !== ae ? (V = {
6600
+ }), n[34] = Me, n[35] = o, n[36] = Ne) : Ne = n[36];
6601
+ let { cellToTarget: Pe, targetToCellIndex: Fe } = Ne, Ie = s.deck?.transition ?? "slide", Le = s.deck?.verticalAlign, Re;
6602
+ n[37] === Le ? Re = n[38] : (Re = ra(Le), n[37] = Le, n[38] = Re);
6603
+ let ze = Re, Be;
6604
+ n[39] === Symbol.for("react.memo_cache_sentinel") ? (Be = v(window.location.href), n[39] = Be) : Be = n[39];
6605
+ let Ve = Be, H;
6606
+ n[40] !== Ie || n[41] !== ae || n[42] !== ie ? (H = {
6579
6607
  embedded: !0,
6580
- width: ae,
6581
- height: oe,
6608
+ width: ie,
6609
+ height: ae,
6582
6610
  center: !1,
6583
6611
  minScale: .2,
6584
6612
  maxScale: 2,
6585
- transition: Le,
6613
+ transition: Ie,
6586
6614
  keyboardCondition: da,
6587
- url: He,
6615
+ url: Ve,
6588
6616
  scrollActivationWidth: 0
6589
- }, n[40] = Le, n[41] = oe, n[42] = ae, n[43] = V) : V = n[43];
6590
- let H = V, Ue;
6591
- n[44] !== x || n[45] !== le || n[46] !== Fe || n[47] !== o ? (Ue = (e) => {
6617
+ }, n[40] = Ie, n[41] = ae, n[42] = ie, n[43] = H) : H = n[43];
6618
+ let U = H, He;
6619
+ n[44] !== x || n[45] !== ce || n[46] !== Pe || n[47] !== o ? (He = (e) => {
6592
6620
  if (x == null && window.location.hash.startsWith("#/")) {
6593
- if (!le) return;
6621
+ if (!ce) return;
6594
6622
  window.dispatchEvent(new HashChangeEvent("hashchange")), qi(e);
6595
6623
  return;
6596
6624
  }
6597
- let t = ar({
6625
+ let t = or({
6598
6626
  activeIndex: x,
6599
6627
  cells: o,
6600
- cellToTarget: Fe,
6628
+ cellToTarget: Pe,
6601
6629
  getId: fa
6602
- }), n = t && or(e.getIndices(), t);
6630
+ }), n = t && sr(e.getIndices(), t);
6603
6631
  n && (e.slide(n.h, n.v, n.f), qi(e));
6604
- }, n[44] = x, n[45] = le, n[46] = Fe, n[47] = o, n[48] = Ue) : Ue = n[48];
6605
- let We = E(Ue), Ge;
6606
- n[49] === We ? Ge = n[50] : (Ge = () => {
6607
- let e = N.current;
6608
- e != null && We(e);
6609
- }, n[49] = We, n[50] = Ge);
6610
- let Ke;
6611
- n[51] !== x || n[52] !== le || n[53] !== Fe || n[54] !== We || n[55] !== o ? (Ke = [
6632
+ }, n[44] = x, n[45] = ce, n[46] = Pe, n[47] = o, n[48] = He) : He = n[48];
6633
+ let Ue = D(He), We;
6634
+ n[49] === Ue ? We = n[50] : (We = () => {
6635
+ let e = P.current;
6636
+ e != null && Ue(e);
6637
+ }, n[49] = Ue, n[50] = We);
6638
+ let Ge;
6639
+ n[51] !== x || n[52] !== ce || n[53] !== Pe || n[54] !== Ue || n[55] !== o ? (Ge = [
6612
6640
  x,
6613
- le,
6614
- Fe,
6641
+ ce,
6642
+ Pe,
6615
6643
  o,
6616
- We
6617
- ], n[51] = x, n[52] = le, n[53] = Fe, n[54] = We, n[55] = o, n[56] = Ke) : Ke = n[56], (0, j.useEffect)(Ge, Ke);
6618
- let qe;
6619
- n[57] !== B || n[58] !== Ae || n[59] !== xe || n[60] !== we ? (qe = () => {
6620
- if (!(B == null || Ae)) {
6621
- if (xe) {
6622
- we();
6644
+ Ue
6645
+ ], n[51] = x, n[52] = ce, n[53] = Pe, n[54] = Ue, n[55] = o, n[56] = Ge) : Ge = n[56], (0, M.useEffect)(We, Ge);
6646
+ let Ke;
6647
+ n[57] !== V || n[58] !== ke || n[59] !== be || n[60] !== Ce ? (Ke = () => {
6648
+ if (!(V == null || ke)) {
6649
+ if (be) {
6650
+ Ce();
6623
6651
  return;
6624
6652
  }
6625
- (0, j.startTransition)(() => fe((e) => {
6653
+ (0, M.startTransition)(() => de((e) => {
6626
6654
  let t = new Set(e);
6627
- return t.has(B) ? t.delete(B) : t.add(B), t;
6655
+ return t.has(V) ? t.delete(V) : t.add(V), t;
6628
6656
  }));
6629
6657
  }
6630
- }, n[57] = B, n[58] = Ae, n[59] = xe, n[60] = we, n[61] = qe) : qe = n[61];
6631
- let Je = E(qe), Ye, Xe;
6632
- n[62] !== L || n[63] !== Je ? (Ye = () => {
6633
- let e = N.current;
6658
+ }, n[57] = V, n[58] = ke, n[59] = be, n[60] = Ce, n[61] = Ke) : Ke = n[61];
6659
+ let qe = D(Ke), Je, Ye;
6660
+ n[62] !== R || n[63] !== qe ? (Je = () => {
6661
+ let e = P.current;
6634
6662
  return e && Ki({
6635
6663
  deck: e,
6636
- enabled: L,
6637
- onToggle: Je
6664
+ enabled: R,
6665
+ onToggle: qe
6638
6666
  }), () => {
6639
- N.current?.removeKeyBinding(Gi);
6667
+ P.current?.removeKeyBinding(Gi);
6640
6668
  };
6641
- }, Xe = [L, Je], n[62] = L, n[63] = Je, n[64] = Ye, n[65] = Xe) : (Ye = n[64], Xe = n[65]), (0, j.useEffect)(Ye, Xe);
6642
- let Ze;
6643
- n[66] !== S || n[67] !== R || n[68] !== Ie ? (Ze = (e) => {
6644
- if (R != null) return;
6645
- let t = rr(Ie, e.getIndices());
6669
+ }, Ye = [R, qe], n[62] = R, n[63] = qe, n[64] = Je, n[65] = Ye) : (Je = n[64], Ye = n[65]), (0, M.useEffect)(Je, Ye);
6670
+ let Xe;
6671
+ n[66] !== S || n[67] !== z || n[68] !== Fe ? (Xe = (e) => {
6672
+ if (z != null) return;
6673
+ let t = ir(Fe, e.getIndices());
6646
6674
  t != null && S?.(t);
6647
- }, n[66] = S, n[67] = R, n[68] = Ie, n[69] = Ze) : Ze = n[69];
6648
- let U = E(Ze), Qe;
6649
- n[70] === U ? Qe = n[71] : (Qe = () => {
6650
- let e = N.current;
6651
- e && U(e);
6652
- }, n[70] = U, n[71] = Qe);
6653
- let $e = E(Qe), et;
6654
- n[72] !== le || n[73] !== L || n[74] !== We || n[75] !== U || n[76] !== Je ? (et = (e) => {
6655
- We(e), le && U(e), Ki({
6675
+ }, n[66] = S, n[67] = z, n[68] = Fe, n[69] = Xe) : Xe = n[69];
6676
+ let Ze = D(Xe), Qe;
6677
+ n[70] === Ze ? Qe = n[71] : (Qe = () => {
6678
+ let e = P.current;
6679
+ e && Ze(e);
6680
+ }, n[70] = Ze, n[71] = Qe);
6681
+ let $e = D(Qe), et;
6682
+ n[72] !== ce || n[73] !== R || n[74] !== Ue || n[75] !== Ze || n[76] !== qe ? (et = (e) => {
6683
+ Ue(e), ce && Ze(e), Ki({
6656
6684
  deck: e,
6657
- enabled: L,
6658
- onToggle: Je
6685
+ enabled: R,
6686
+ onToggle: qe
6659
6687
  });
6660
6688
  let t = e.getSlidesElement()?.closest(".reveal");
6661
6689
  t instanceof HTMLElement && (t.tabIndex = -1, t.focus({ preventScroll: !0 }));
6662
- }, n[72] = le, n[73] = L, n[74] = We, n[75] = U, n[76] = Je, n[77] = et) : et = n[77];
6663
- let tt = E(et), nt;
6664
- n[78] !== x || n[79] !== S || n[80] !== R || n[81] !== o ? (nt = (e) => {
6665
- if (!R || x == null || i.fromInput(e)) return;
6690
+ }, n[72] = ce, n[73] = R, n[74] = Ue, n[75] = Ze, n[76] = qe, n[77] = et) : et = n[77];
6691
+ let tt = D(et), nt;
6692
+ n[78] !== x || n[79] !== S || n[80] !== z || n[81] !== o ? (nt = (e) => {
6693
+ if (!z || x == null || i.fromInput(e)) return;
6666
6694
  let t = Xi(e);
6667
6695
  if (t === 0) return;
6668
6696
  e.preventDefault(), e.stopPropagation();
6669
6697
  let n = x + t;
6670
6698
  n < 0 || n >= o.length || S?.(n);
6671
- }, n[78] = x, n[79] = S, n[80] = R, n[81] = o, n[82] = nt) : nt = n[82];
6672
- let rt = E(nt), it;
6699
+ }, n[78] = x, n[79] = S, n[80] = z, n[81] = o, n[82] = nt) : nt = n[82];
6700
+ let rt = D(nt), it;
6673
6701
  n[83] === $e ? it = n[84] : (it = () => {
6674
6702
  $e();
6675
6703
  }, n[83] = $e, n[84] = it);
6676
- let W = E(it), at;
6677
- n[85] === Symbol.for("react.memo_cache_sentinel") ? (at = { capture: !0 }, n[85] = at) : at = n[85], t(document, "keydown", rt, at);
6678
- let ot = xe ? null : z ? "Hidden as there is no output" : "Skipped in presentation", st;
6679
- n[86] !== Ce || n[87] !== xe || n[88] !== R?.id || n[89] !== Ee ? (st = xe ? Ce : Ee(R?.id), n[86] = Ce, n[87] = xe, n[88] = R?.id, n[89] = Ee, n[90] = st) : st = n[90];
6704
+ let at = D(it), W;
6705
+ n[85] === Symbol.for("react.memo_cache_sentinel") ? (W = { capture: !0 }, n[85] = W) : W = n[85], t(document, "keydown", rt, W);
6706
+ let ot = be ? null : B ? "Hidden as there is no output" : "Skipped in presentation", st;
6707
+ n[86] !== Se || n[87] !== be || n[88] !== z?.id || n[89] !== Te ? (st = be ? Se : Te(z?.id), n[86] = Se, n[87] = be, n[88] = z?.id, n[89] = Te, n[90] = st) : st = n[90];
6680
6708
  let ct = st, lt;
6681
- n[91] !== A || n[92] !== z || n[93] !== ct ? (lt = oa({
6682
- isNoOutputPreview: z,
6683
- isEditable: A,
6709
+ n[91] !== j || n[92] !== B || n[93] !== ct ? (lt = oa({
6710
+ isNoOutputPreview: B,
6711
+ isEditable: j,
6684
6712
  showCode: ct
6685
- }), n[91] = A, n[92] = z, n[93] = ct, n[94] = lt) : lt = n[94];
6713
+ }), n[91] = j, n[92] = B, n[93] = ct, n[94] = lt) : lt = n[94];
6686
6714
  let ut = lt, dt;
6687
- n[95] !== oe || n[96] !== ae ? (dt = {
6688
- width: ae,
6689
- height: oe
6690
- }, n[95] = oe, n[96] = ae, n[97] = dt) : dt = n[97];
6715
+ n[95] !== ae || n[96] !== ie ? (dt = {
6716
+ width: ie,
6717
+ height: ae
6718
+ }, n[95] = ae, n[96] = ie, n[97] = dt) : dt = n[97];
6691
6719
  let ft;
6692
- if (n[98] !== Ne.stacks || n[99] !== A || n[100] !== s.cells || n[101] !== Ee || n[102] !== Be) {
6720
+ if (n[98] !== Me.stacks || n[99] !== j || n[100] !== s.cells || n[101] !== Te || n[102] !== ze) {
6693
6721
  let e;
6694
- n[104] !== A || n[105] !== s.cells || n[106] !== Ee || n[107] !== Be ? (e = (e, t) => e.subslides.length === 1 ? /* @__PURE__ */ (0, G.jsx)(aa, {
6722
+ n[104] !== j || n[105] !== s.cells || n[106] !== Te || n[107] !== ze ? (e = (e, t) => e.subslides.length === 1 ? /* @__PURE__ */ (0, G.jsx)(aa, {
6695
6723
  subslide: e.subslides[0],
6696
- resolveShowCode: Ee,
6697
- isEditable: A,
6724
+ resolveShowCode: Te,
6725
+ isEditable: j,
6698
6726
  slideConfigs: s.cells,
6699
- contentStyle: Be
6727
+ contentStyle: ze
6700
6728
  }, t) : /* @__PURE__ */ (0, G.jsx)(vt, { children: e.subslides.map((e, t) => /* @__PURE__ */ (0, G.jsx)(aa, {
6701
6729
  subslide: e,
6702
- resolveShowCode: Ee,
6703
- isEditable: A,
6730
+ resolveShowCode: Te,
6731
+ isEditable: j,
6704
6732
  slideConfigs: s.cells,
6705
- contentStyle: Be
6706
- }, t)) }, t), n[104] = A, n[105] = s.cells, n[106] = Ee, n[107] = Be, n[108] = e) : e = n[108], ft = Ne.stacks.map(e), n[98] = Ne.stacks, n[99] = A, n[100] = s.cells, n[101] = Ee, n[102] = Be, n[103] = ft;
6733
+ contentStyle: ze
6734
+ }, t)) }, t), n[104] = j, n[105] = s.cells, n[106] = Te, n[107] = ze, n[108] = e) : e = n[108], ft = Me.stacks.map(e), n[98] = Me.stacks, n[99] = j, n[100] = s.cells, n[101] = Te, n[102] = ze, n[103] = ft;
6707
6735
  } else ft = n[103];
6708
- let mt;
6709
- n[109] !== ue || n[110] !== tt || n[111] !== W || n[112] !== $e || n[113] !== H || n[114] !== ft ? (mt = /* @__PURE__ */ (0, G.jsx)(pt, {
6710
- deckRef: N,
6736
+ let pt;
6737
+ n[109] !== le || n[110] !== tt || n[111] !== at || n[112] !== $e || n[113] !== U || n[114] !== ft ? (pt = /* @__PURE__ */ (0, G.jsx)(mt, {
6738
+ deckRef: P,
6711
6739
  className: "aspect-video w-full overflow-hidden border rounded bg-background mo-slides-theme prose-slides focus:outline-hidden focus-visible:outline-hidden",
6712
- config: H,
6740
+ config: U,
6713
6741
  onReady: tt,
6714
- onSlideChange: W,
6742
+ onSlideChange: at,
6715
6743
  onFragmentShown: $e,
6716
6744
  onFragmentHidden: $e,
6717
- plugins: ue,
6745
+ plugins: le,
6718
6746
  children: ft
6719
- }), n[109] = ue, n[110] = tt, n[111] = W, n[112] = $e, n[113] = H, n[114] = ft, n[115] = mt) : mt = n[115];
6747
+ }), n[109] = le, n[110] = tt, n[111] = at, n[112] = $e, n[113] = U, n[114] = ft, n[115] = pt) : pt = n[115];
6720
6748
  let ht;
6721
- n[116] !== A || n[117] !== z || n[118] !== R || n[119] !== ot || n[120] !== ct || n[121] !== ut || n[122] !== Be ? (ht = R && /* @__PURE__ */ (0, G.jsxs)("div", {
6749
+ n[116] !== j || n[117] !== B || n[118] !== z || n[119] !== ot || n[120] !== ct || n[121] !== ut || n[122] !== ze ? (ht = z && /* @__PURE__ */ (0, G.jsxs)("div", {
6722
6750
  className: "absolute inset-0 z-10 border rounded bg-background flex flex-col overflow-hidden",
6723
6751
  "aria-label": ot ?? void 0,
6724
6752
  children: [ot && /* @__PURE__ */ (0, G.jsxs)("div", {
@@ -6728,31 +6756,31 @@ var sa = (e) => {
6728
6756
  className: "flex-1 overflow-auto flex",
6729
6757
  children: /* @__PURE__ */ (0, G.jsx)("div", {
6730
6758
  className: ut ? "mo-slide-content flex flex-col gap-3" : "mo-slide-content",
6731
- style: Be,
6759
+ style: ze,
6732
6760
  children: /* @__PURE__ */ (0, G.jsx)(sa, {
6733
- cell: R,
6734
- isNoOutputPreview: z,
6735
- isEditable: A,
6761
+ cell: z,
6762
+ isNoOutputPreview: B,
6763
+ isEditable: j,
6736
6764
  showCode: ct
6737
6765
  })
6738
6766
  })
6739
6767
  })]
6740
- }, R.id), n[116] = A, n[117] = z, n[118] = R, n[119] = ot, n[120] = ct, n[121] = ut, n[122] = Be, n[123] = ht) : ht = n[123];
6768
+ }, z.id), n[116] = j, n[117] = B, n[118] = z, n[119] = ot, n[120] = ct, n[121] = ut, n[122] = ze, n[123] = ht) : ht = n[123];
6741
6769
  let gt;
6742
- n[124] !== Oe || n[125] !== Ae || n[126] !== L || n[127] !== Je ? (gt = L && /* @__PURE__ */ (0, G.jsx)(l, {
6743
- content: Ae ? "Code is always shown for this slide" : Oe ? "Hide code (C)" : "Show code (C)",
6770
+ n[124] !== De || n[125] !== ke || n[126] !== R || n[127] !== qe ? (gt = R && /* @__PURE__ */ (0, G.jsx)(l, {
6771
+ content: ke ? "Code is always shown for this slide" : De ? "Hide code (C)" : "Show code (C)",
6744
6772
  children: /* @__PURE__ */ (0, G.jsx)(a, {
6745
6773
  "data-testid": "marimo-plugin-slides-toggle-code",
6746
6774
  variant: "ghost",
6747
6775
  size: "icon",
6748
- className: r("text-muted-foreground h-7 w-7", Oe && "text-foreground bg-muted", Ae && "opacity-50 cursor-not-allowed"),
6749
- "aria-pressed": Oe,
6750
- "aria-disabled": Ae,
6751
- "aria-label": Ae ? "Code always shown" : Oe ? "Hide code" : "Show code",
6752
- onClick: Je,
6776
+ className: r("text-muted-foreground h-7 w-7", De && "text-foreground bg-muted", ke && "opacity-50 cursor-not-allowed"),
6777
+ "aria-pressed": De,
6778
+ "aria-disabled": ke,
6779
+ "aria-label": ke ? "Code always shown" : De ? "Hide code" : "Show code",
6780
+ onClick: qe,
6753
6781
  children: /* @__PURE__ */ (0, G.jsx)(_, { className: "h-4 w-4" })
6754
6782
  })
6755
- }), n[124] = Oe, n[125] = Ae, n[126] = L, n[127] = Je, n[128] = gt) : gt = n[128];
6783
+ }), n[124] = De, n[125] = ke, n[126] = R, n[127] = qe, n[128] = gt) : gt = n[128];
6756
6784
  let _t;
6757
6785
  n[129] === Symbol.for("react.memo_cache_sentinel") ? (_t = /* @__PURE__ */ (0, G.jsx)(l, {
6758
6786
  content: "Fullscreen (F)",
@@ -6763,90 +6791,90 @@ var sa = (e) => {
6763
6791
  className: "text-muted-foreground h-7 w-7",
6764
6792
  "aria-label": "Enter fullscreen",
6765
6793
  onClick: () => {
6766
- N.current?.getViewportElement()?.requestFullscreen().catch(pa);
6794
+ P.current?.getViewportElement()?.requestFullscreen().catch(pa);
6767
6795
  },
6768
6796
  children: /* @__PURE__ */ (0, G.jsx)(y, { className: "h-4 w-4" })
6769
6797
  })
6770
6798
  }), n[129] = _t) : _t = n[129];
6771
- let yt;
6772
- n[130] === gt ? yt = n[131] : (yt = /* @__PURE__ */ (0, G.jsxs)("div", {
6799
+ let K;
6800
+ n[130] === gt ? K = n[131] : (K = /* @__PURE__ */ (0, G.jsxs)("div", {
6773
6801
  className: "absolute top-2 right-2 z-20 opacity-0 group-hover:opacity-70 text-muted-foreground transition-opacity",
6774
6802
  children: [gt, _t]
6775
- }), n[130] = gt, n[131] = yt);
6776
- let bt;
6777
- n[132] !== dt || n[133] !== mt || n[134] !== ht || n[135] !== yt ? (bt = /* @__PURE__ */ (0, G.jsx)("div", {
6778
- ref: ie,
6803
+ }), n[130] = gt, n[131] = K);
6804
+ let yt;
6805
+ n[132] !== dt || n[133] !== pt || n[134] !== ht || n[135] !== K ? (yt = /* @__PURE__ */ (0, G.jsx)("div", {
6806
+ ref: re,
6779
6807
  className: "h-full w-full min-w-0 flex items-center justify-center overflow-hidden",
6780
6808
  children: /* @__PURE__ */ (0, G.jsxs)("div", {
6781
6809
  className: "group relative",
6782
6810
  style: dt,
6783
6811
  children: [
6784
- mt,
6812
+ pt,
6785
6813
  ht,
6786
- yt
6814
+ K
6787
6815
  ]
6788
6816
  })
6789
- }), n[132] = dt, n[133] = mt, n[134] = ht, n[135] = yt, n[136] = bt) : bt = n[136];
6790
- let xt = bt;
6817
+ }), n[132] = dt, n[133] = pt, n[134] = ht, n[135] = K, n[136] = yt) : yt = n[136];
6818
+ let q = yt;
6791
6819
  if (C === "read") {
6792
6820
  let e;
6793
- return n[137] === xt ? e = n[138] : (e = /* @__PURE__ */ (0, G.jsx)("div", {
6821
+ return n[137] === q ? e = n[138] : (e = /* @__PURE__ */ (0, G.jsx)("div", {
6794
6822
  className: "flex-1 min-w-0 flex flex-row gap-3",
6795
- children: xt
6796
- }), n[137] = xt, n[138] = e), e;
6823
+ children: q
6824
+ }), n[137] = q, n[138] = e), e;
6797
6825
  }
6798
- let K;
6799
- n[139] === xt ? K = n[140] : (K = /* @__PURE__ */ (0, G.jsx)(p, {
6826
+ let bt;
6827
+ n[139] === q ? bt = n[140] : (bt = /* @__PURE__ */ (0, G.jsx)(p, {
6800
6828
  defaultSize: 92,
6801
6829
  minSize: 60,
6802
- children: xt
6803
- }), n[139] = xt, n[140] = K);
6804
- let q;
6805
- n[141] === Symbol.for("react.memo_cache_sentinel") ? (q = {
6830
+ children: q
6831
+ }), n[139] = q, n[140] = bt);
6832
+ let xt;
6833
+ n[141] === Symbol.for("react.memo_cache_sentinel") ? (xt = {
6806
6834
  coarse: 12,
6807
6835
  fine: 4
6808
- }, n[141] = q) : q = n[141];
6809
- let St;
6810
- n[142] === se ? St = n[143] : (St = /* @__PURE__ */ (0, G.jsx)(d, {
6836
+ }, n[141] = xt) : xt = n[141];
6837
+ let J;
6838
+ n[142] === oe ? J = n[143] : (J = /* @__PURE__ */ (0, G.jsx)(d, {
6811
6839
  className: "mo-slides-notes-resize",
6812
- hitAreaMargins: q,
6813
- disabled: se
6814
- }), n[142] = se, n[143] = St);
6815
- let J = ye?.id, Ct;
6816
- n[144] !== s || n[145] !== c || n[146] !== J ? (Ct = /* @__PURE__ */ (0, G.jsx)(p, {
6840
+ hitAreaMargins: xt,
6841
+ disabled: oe
6842
+ }), n[142] = oe, n[143] = J);
6843
+ let St = ve?.id, Y;
6844
+ n[144] !== s || n[145] !== c || n[146] !== St ? (Y = /* @__PURE__ */ (0, G.jsx)(p, {
6817
6845
  defaultSize: 10,
6818
6846
  minSize: 4,
6819
6847
  collapsible: !0,
6820
6848
  collapsedSize: 4,
6821
- children: /* @__PURE__ */ (0, G.jsx)(ur, {
6849
+ children: /* @__PURE__ */ (0, G.jsx)(dr, {
6822
6850
  layout: s,
6823
6851
  setLayout: c,
6824
- cellId: J
6852
+ cellId: St
6825
6853
  })
6826
- }), n[144] = s, n[145] = c, n[146] = J, n[147] = Ct) : Ct = n[147];
6827
- let wt;
6828
- n[148] !== K || n[149] !== St || n[150] !== Ct ? (wt = /* @__PURE__ */ (0, G.jsxs)(f, {
6854
+ }), n[144] = s, n[145] = c, n[146] = St, n[147] = Y) : Y = n[147];
6855
+ let Ct;
6856
+ n[148] !== bt || n[149] !== J || n[150] !== Y ? (Ct = /* @__PURE__ */ (0, G.jsxs)(f, {
6829
6857
  direction: "vertical",
6830
6858
  autoSaveId: "marimo:slides:notes-panel",
6831
6859
  className: "flex-1 min-w-0",
6832
6860
  children: [
6833
- K,
6834
- St,
6835
- Ct
6861
+ bt,
6862
+ J,
6863
+ Y
6836
6864
  ]
6837
- }), n[148] = K, n[149] = St, n[150] = Ct, n[151] = wt) : wt = n[151];
6838
- let Tt;
6839
- n[152] !== ye || n[153] !== ee || n[154] !== s || n[155] !== c ? (Tt = /* @__PURE__ */ (0, G.jsx)(g, {
6865
+ }), n[148] = bt, n[149] = J, n[150] = Y, n[151] = Ct) : Ct = n[151];
6866
+ let wt;
6867
+ n[152] !== ve || n[153] !== ee || n[154] !== s || n[155] !== c ? (wt = /* @__PURE__ */ (0, G.jsx)(g, {
6840
6868
  configWidth: ee,
6841
6869
  layout: s,
6842
6870
  setLayout: c,
6843
- activeConfigCell: ye
6844
- }), n[152] = ye, n[153] = ee, n[154] = s, n[155] = c, n[156] = Tt) : Tt = n[156];
6845
- let Y;
6846
- return n[157] !== wt || n[158] !== Tt ? (Y = /* @__PURE__ */ (0, G.jsxs)("div", {
6871
+ activeConfigCell: ve
6872
+ }), n[152] = ve, n[153] = ee, n[154] = s, n[155] = c, n[156] = wt) : wt = n[156];
6873
+ let Tt;
6874
+ return n[157] !== Ct || n[158] !== wt ? (Tt = /* @__PURE__ */ (0, G.jsxs)("div", {
6847
6875
  className: "flex-1 min-w-0 flex flex-row gap-3",
6848
- children: [wt, Tt]
6849
- }), n[157] = wt, n[158] = Tt, n[159] = Y) : Y = n[159], Y;
6876
+ children: [Ct, wt]
6877
+ }), n[157] = Ct, n[158] = wt, n[159] = Tt) : Tt = n[159], Tt;
6850
6878
  };
6851
6879
  function la() {
6852
6880
  return /* @__PURE__ */ new Set();