@qredence/fleet 0.7.4 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +5 -4
  3. package/bin/fleet-prime.mjs +33 -6
  4. package/bin/prime-runtime.mjs +79 -0
  5. package/dist/runtime-manifest.json +32 -0
  6. package/dist/web/client/assets/DialogTitle-BlVq-tcv.js +1 -0
  7. package/dist/web/client/assets/FloatingPortal-D8-EPDs2.js +1 -0
  8. package/dist/web/client/assets/activity-BPIKUzOU.js +1 -0
  9. package/dist/web/client/assets/agents-CGjUBYX7.js +2 -0
  10. package/dist/web/client/assets/agents-page-CTuFJL9H.js +1 -0
  11. package/dist/web/client/assets/alert-CzWGeumf.js +1 -0
  12. package/dist/web/client/assets/alert-dialog-D-e1Pr4q.js +1 -0
  13. package/dist/web/client/assets/arrow-up-right-CG9RNk4p.js +1 -0
  14. package/dist/web/client/assets/artifacts-panel-6JEdy6jU.js +1 -0
  15. package/dist/web/client/assets/badge-CzQFgmVK.js +1 -0
  16. package/dist/web/client/assets/button-CWYjn8Zk.js +1 -0
  17. package/dist/web/client/assets/{card-Hngi3HGC.js → card-Dj1SnGUU.js} +1 -1
  18. package/dist/web/client/assets/chat-command-palette-Bxr5EkO6.js +1 -0
  19. package/dist/web/client/assets/chat-hpzV6IA6.js +57 -0
  20. package/dist/web/client/assets/chat-queries-CfZiupub.js +3 -0
  21. package/dist/web/client/assets/clock-3-BwWCSCm_.js +1 -0
  22. package/dist/web/client/assets/code-block-pKKmFZ5w.js +3 -0
  23. package/dist/web/client/assets/collapsible-Bk6zCsRX.js +1 -0
  24. package/dist/web/client/assets/{command-CmtCIDdH.js → command-xo-NK4xO.js} +1 -1
  25. package/dist/web/client/assets/connectors-CFxLqG2x.js +2 -0
  26. package/dist/web/client/assets/connectors-page-DQJdoAnl.js +1 -0
  27. package/dist/web/client/assets/create-project-dialog-Db-WhUmP.js +1 -0
  28. package/dist/web/client/assets/createBaseUIEventDetails-DIxvaz-Y.js +1 -0
  29. package/dist/web/client/assets/dialog-CK8dym6z.js +1 -0
  30. package/dist/web/client/assets/eye-iNSvs0UA.js +1 -0
  31. package/dist/web/client/assets/file-code-corner-BkDULqko.js +1 -0
  32. package/dist/web/client/assets/{fork-picker-dialog-DfGlB17w.js → fork-picker-dialog-DSaFeUii.js} +1 -1
  33. package/dist/web/client/assets/globals-DJhWyayo.css +2 -0
  34. package/dist/web/client/assets/index-C9FHZDGw.js +13 -0
  35. package/dist/web/client/assets/input-CBoTMPC_.js +1 -0
  36. package/dist/web/client/assets/{input-group-EPMGh55u.js → input-group-BFubAtz9.js} +1 -1
  37. package/dist/web/client/assets/{ipython-tool-CMhnRVrC.js → ipython-tool-bieUhw9K.js} +1 -1
  38. package/dist/web/client/assets/markdown-CvBfbPCn.js +2 -0
  39. package/dist/web/client/assets/markdown-code-rFOkzN5N.js +4 -0
  40. package/dist/web/client/assets/mcp-connections-section-DEo6Kemv.js +2 -0
  41. package/dist/web/client/assets/message-queue-Btjt9wK2.js +1 -0
  42. package/dist/web/client/assets/{model-selector-list-BiU_7ivt.js → model-selector-list-CbDAT0Rw.js} +1 -1
  43. package/dist/web/client/assets/mutation-Da9zdeWr.js +1 -0
  44. package/dist/web/client/assets/notify-BIL0-CGy.js +1 -0
  45. package/dist/web/client/assets/open-panel-action-message-SdA1VU42.js +1 -0
  46. package/dist/web/client/assets/openui-renderer-DG-iML7M.js +291 -0
  47. package/dist/web/client/assets/pencil-Cbgq3ybX.js +1 -0
  48. package/dist/web/client/assets/plus-DUP2JPVG.js +1 -0
  49. package/dist/web/client/assets/product-page-header-Ck6I13CE.js +1 -0
  50. package/dist/web/client/assets/{prompt-input-Dy-DSPqF.js → prompt-input-CoV1gTUQ.js} +1 -1
  51. package/dist/web/client/assets/{prompt-suggestions-CrpAiKeB.js → prompt-suggestions-CAY5JI-C.js} +1 -1
  52. package/dist/web/client/assets/provider-catalog-CLEDlH_v.js +1 -0
  53. package/dist/web/client/assets/provider-label-BItazQ6H.js +1 -0
  54. package/dist/web/client/assets/reasoning-line-DGdPUMwT.js +1 -0
  55. package/dist/web/client/assets/rehype-katex-DITkIpVl.js +259 -0
  56. package/dist/web/client/assets/{repl-panel-DN5kZAcB.js → repl-panel-5xgkDXO5.js} +1 -1
  57. package/dist/web/client/assets/{resources-panel-DD6iWOF3.js → resources-panel-aJCKt9eF.js} +1 -1
  58. package/dist/web/client/assets/right-panel-context-CjX-HkDO.js +1 -0
  59. package/dist/web/client/assets/right-panel-registry-BAJ6TuEY.js +2 -0
  60. package/dist/web/client/assets/rotate-ccw-DLkfsmG9.js +1 -0
  61. package/dist/web/client/assets/routes-ja_liP8Z.js +14 -0
  62. package/dist/web/client/assets/select-DYh951qi.js +1 -0
  63. package/dist/web/client/assets/session-activity-panel-DwaXiSrS.js +1 -0
  64. package/dist/web/client/assets/{session-insights-panel-D0v_DKcb.js → session-insights-panel-BXEmuJKf.js} +1 -1
  65. package/dist/web/client/assets/session-reasoning-panel-CjJJK_bq.js +1 -0
  66. package/dist/web/client/assets/session-tool-renderer-DEABxZG3.js +166 -0
  67. package/dist/web/client/assets/{session-tree-panel-BBwP_EK2.js → session-tree-panel-5QgMvXoX.js} +1 -1
  68. package/dist/web/client/assets/settings-dialog-DiikSLhF.js +1 -0
  69. package/dist/web/client/assets/shield-check-7HDd-2Fn.js +1 -0
  70. package/dist/web/client/assets/{skeleton-DNAr5ULI.js → skeleton-B_Lq2XFl.js} +1 -1
  71. package/dist/web/client/assets/{skeleton-loaders-B28mF4tJ.js → skeleton-loaders-DWc1eDL3.js} +1 -1
  72. package/dist/web/client/assets/sparkles-CASAe1AI.js +1 -0
  73. package/dist/web/client/assets/{spinner-CSBXk3Lo.js → spinner-B5TaKP7k.js} +1 -1
  74. package/dist/web/client/assets/{subagent-chat-panel-DhvBO4dQ.js → subagent-chat-panel-R2RoX1Yt.js} +1 -1
  75. package/dist/web/client/assets/subagent-transcript-DVZhMo7a.js +1 -0
  76. package/dist/web/client/assets/{subagents-panel-DRo8Xs6j.js → subagents-panel-CMMRUP8F.js} +1 -1
  77. package/dist/web/client/assets/surfaces-BUjUJTyD.js +1 -0
  78. package/dist/web/client/assets/switch-BrxDfsX6.js +1 -0
  79. package/dist/web/client/assets/toast-BNWkgZ0u.js +1 -0
  80. package/dist/web/client/assets/tool-output-normalizer-DDU09Zc6.js +4 -0
  81. package/dist/web/client/assets/tool-part-normalizer-CF6bmJ0s.js +4 -0
  82. package/dist/web/client/assets/tool-result-7qREIVv_.js +5 -0
  83. package/dist/web/client/assets/tool-timeline-CGhwMeNl.js +2 -0
  84. package/dist/web/client/assets/trace-IsV5RRvM.js +1 -0
  85. package/dist/web/client/assets/trash-sm2UyOxe.js +1 -0
  86. package/dist/web/client/assets/types-gIgIxnnG.js +1 -0
  87. package/dist/web/client/assets/ui-preferences-B-PNDkyY.js +1 -0
  88. package/dist/web/client/assets/use-hover-capable-CLq8BADD.js +1 -0
  89. package/dist/web/client/assets/useBaseUiId-lKfDDIcw.js +1 -0
  90. package/dist/web/client/assets/useButton-CvcmqA2s.js +1 -0
  91. package/dist/web/client/assets/useNavigate-CVhM7pag.js +1 -0
  92. package/dist/web/client/assets/useRender-CzJUrRlB.js +1 -0
  93. package/dist/web/client/assets/useScrollLock-BcsteNzT.js +1 -0
  94. package/dist/web/client/assets/{utils-CFDGLzf6.js → utils-oBThwhjm.js} +1 -1
  95. package/dist/web/client/assets/with-selector-B_VDO56x.js +1 -0
  96. package/dist/web/client/assets/{workspace-panel-DdZutYnd.js → workspace-panel-Da5I4p_t.js} +1 -1
  97. package/dist/web/client/assets/workspace-path-nav-D-77sJ_A.js +2 -0
  98. package/dist/web/client/assets/wrench-BXX_Ah2s.js +1 -0
  99. package/dist/web/client/bundle-budget.json +6 -6
  100. package/dist/web/server/_tanstack-start-manifest_v-B6ne-00G-OFX7UD4K.js +119 -0
  101. package/dist/web/server/agents-BwzqhPjK-ANFHE5AG.js +22 -0
  102. package/dist/web/server/agents-page-DEqPV-eG-BR5MR74O.js +215 -0
  103. package/dist/web/server/{artifacts-panel-COSC8o7j-GKW2HH2G.js → artifacts-panel-DLO8OfXb-B2ZWCDFP.js} +35 -29
  104. package/dist/web/server/{chat-command-palette-CuOWdzkk-PKZQ5EZP.js → chat-command-palette-CaDQAMAu-KDH7BTDS.js} +22 -15
  105. package/dist/web/server/chunk-2ETDIMNM.js +40 -0
  106. package/dist/web/server/{chunk-2VKVSL6Y.js → chunk-35RIM6VP.js} +128 -127
  107. package/dist/web/server/chunk-5IE54MRG.js +207 -0
  108. package/dist/web/server/{chunk-VUBITQ5X.js → chunk-5MOXRFX6.js} +180 -7
  109. package/dist/web/server/{chunk-6GTTTYSE.js → chunk-6AFVCERK.js} +72 -79
  110. package/dist/web/server/chunk-6GYLXDX3.js +588 -0
  111. package/dist/web/server/chunk-7DQQMT5V.js +8993 -0
  112. package/dist/web/server/chunk-APOS34PW.js +8965 -0
  113. package/dist/web/server/{chunk-BUKOEXE7.js → chunk-AXN2OBPF.js} +2 -4
  114. package/dist/web/server/{chunk-WCKKN5BR.js → chunk-B5FKCW75.js} +357 -910
  115. package/dist/web/server/chunk-BD7YKYWL.js +1007 -0
  116. package/dist/web/server/{chunk-36CAMOVG.js → chunk-BZ2EAUZZ.js} +10 -12
  117. package/dist/web/server/chunk-CE7U5QB2.js +42 -0
  118. package/dist/web/server/chunk-FNV3WZXL.js +125 -0
  119. package/dist/web/server/{chunk-GLSR4ZI2.js → chunk-FSQWWR2M.js} +698 -832
  120. package/dist/web/server/chunk-FT7HNDR5.js +143 -0
  121. package/dist/web/server/chunk-GNXIDE26.js +44 -0
  122. package/dist/web/server/{chunk-ORCOCCER.js → chunk-HAFELESQ.js} +5 -7
  123. package/dist/web/server/{chunk-LLO4MNGE.js → chunk-HUHUPGHT.js} +53 -45
  124. package/dist/web/server/{chunk-QSM3BRMA.js → chunk-KBMRRJQN.js} +256 -157
  125. package/dist/web/server/chunk-KDCSEISZ.js +6890 -0
  126. package/dist/web/server/chunk-KSGGSGOA.js +50 -0
  127. package/dist/web/server/chunk-PQVTLG3E.js +270 -0
  128. package/dist/web/server/{chunk-YU6RHHK6.js → chunk-Q4ECIATK.js} +65 -53
  129. package/dist/web/server/{chunk-IN2ATSEG.js → chunk-R4BS3KYI.js} +2 -4
  130. package/dist/web/server/chunk-RX2ZJARF.js +73 -0
  131. package/dist/web/server/{chunk-AKSDWYJY.js → chunk-SYS5FDNA.js} +5 -5
  132. package/dist/web/server/chunk-TOJA3X5N.js +421 -0
  133. package/dist/web/server/chunk-TQ2RECTH.js +193 -0
  134. package/dist/web/server/{chunk-KHHXJZK7.js → chunk-TTNONWZZ.js} +16001 -14668
  135. package/dist/web/server/chunk-TXZDDJCT.js +5115 -0
  136. package/dist/web/server/{chunk-XA7EOCHM.js → chunk-UDUG3MYZ.js} +2 -2
  137. package/dist/web/server/{chunk-EBC7QORX.js → chunk-V2GCVTDP.js} +5056 -12556
  138. package/dist/web/server/{chunk-TMQ3MT3D.js → chunk-VDEUVEWL.js} +2255 -1
  139. package/dist/web/server/chunk-VM3U6PUU.js +769 -0
  140. package/dist/web/server/connectors-C0xm91Ss-DJVBGD73.js +22 -0
  141. package/dist/web/server/connectors-page-B6tJNZ6c-R5K4NSAT.js +66 -0
  142. package/dist/web/server/{create-project-dialog-0-arQpsX-ZELQKHS5.js → create-project-dialog-PFPHHWIV-GH7JR5IK.js} +27 -18
  143. package/dist/web/server/{dist-7G2NZPF4.js → dist-GQUZLXN5.js} +2 -2
  144. package/dist/web/server/{dist-E5637ZAY.js → dist-MN5NWCX6.js} +1 -1
  145. package/dist/web/server/{fork-picker-dialog-fj9p33Mq-I5SA3GLJ.js → fork-picker-dialog-DFpKOdAw-JPLJSYYU.js} +7 -12
  146. package/dist/web/server/{markdown-CShfYRVO-RBTK7TRB.js → markdown-Cc8V9dOF-JTNTJKQU.js} +7 -5
  147. package/dist/web/server/{markdown-code-BDV_2b2T-6JYA5FWZ.js → markdown-code-gaRnbgNM-V5LIRYCD.js} +46 -8
  148. package/dist/web/server/{message-queue-BBC843IU-GY4ZIMM4.js → message-queue-nQ2_kU82-KKSLYR4S.js} +7 -16
  149. package/dist/web/server/{model-selector-list-DE6aLNXt-LJZMCYOI.js → model-selector-list-By_G7_Hr-GXT27BZO.js} +12 -16
  150. package/dist/web/server/{openui-renderer-C3aqSKuS-PWLWJFYO.js → openui-renderer-B9D8-Av--LFZP4U5V.js} +20 -15
  151. package/dist/web/server/{prompt-suggestions-CpTK_fHV-UKJDTLVM.js → prompt-suggestions-B67Uy5Rk-5SMTSIFQ.js} +5 -4
  152. package/dist/web/server/{rehype-katex-IDPYWU6M.js → rehype-katex-CYHGKI6Q.js} +490 -843
  153. package/dist/web/server/{repl-panel-1kSS1UGd-U64BPA7X.js → repl-panel-1kSS1UGd-POXRYDDJ.js} +2 -3
  154. package/dist/web/server/{resources-panel-DWb0eGKa-K4EM3H7Y.js → resources-panel-CTzOOKPz-5G6RS2D6.js} +18 -12
  155. package/dist/web/server/router-CnBux_Ld-YTVBMJFL.js +23 -0
  156. package/dist/web/server/routes-BUGzvQoO-WW43X7W2.js +124 -0
  157. package/dist/web/server/server.js +3 -3
  158. package/dist/web/server/session-activity-panel-f0d3fCm7-I6L5IKFQ.js +181 -0
  159. package/dist/web/server/{session-insights-panel-CfMX2NRu-6HWZTTAC.js → session-insights-panel-BiVObm_6-AP4FITT7.js} +2 -12
  160. package/dist/web/server/session-reasoning-panel-QIt_xjP0-FKJWMNHO.js +70 -0
  161. package/dist/web/server/session-tool-renderer-Cg_ZPHxS-BNQKNJNZ.js +34 -0
  162. package/dist/web/server/{session-tree-panel-HNl6R9VZ-4JUF34M7.js → session-tree-panel-B--el8O5-NZOZJM5L.js} +18 -13
  163. package/dist/web/server/{settings-dialog-DGZBA5Z_-6HYFMPNZ.js → settings-dialog-D_eJN2ia-W47Y474K.js} +104 -795
  164. package/dist/web/server/{subagent-chat-panel-DuB4hqUk-LDCAJOCL.js → subagent-chat-panel-C9nWP21E-D5C2TTYD.js} +22 -17
  165. package/dist/web/server/{subagents-panel-wAvx3-Rs-L6UTDFUX.js → subagents-panel-fAKvBNRG-O7QHXNE2.js} +26 -22
  166. package/dist/web/server/{workspace-panel-CPzJZwgv-YS7PTI5C.js → workspace-panel-CZMNMU63-SYOSM3B7.js} +23 -17
  167. package/package.json +2 -2
  168. package/dist/web/client/assets/DialogTitle-D-zqaHvF.js +0 -1
  169. package/dist/web/client/assets/FloatingPortal-73ZRZeD9.js +0 -1
  170. package/dist/web/client/assets/action-swap-BcFwS6is.js +0 -1
  171. package/dist/web/client/assets/alert-dialog-DtXvVhsF.js +0 -1
  172. package/dist/web/client/assets/artifacts-panel-Bseg97yQ.js +0 -1
  173. package/dist/web/client/assets/badge-C--lf3bb.js +0 -57
  174. package/dist/web/client/assets/button-BJZe4vNJ.js +0 -1
  175. package/dist/web/client/assets/chat-command-palette-D_rm1r9d.js +0 -1
  176. package/dist/web/client/assets/chevron-up-CqeJYyZO.js +0 -1
  177. package/dist/web/client/assets/collapsible-DauSnbYp.js +0 -1
  178. package/dist/web/client/assets/create-project-dialog-m-9aoobN.js +0 -1
  179. package/dist/web/client/assets/createBaseUIEventDetails-DklXWq23.js +0 -1
  180. package/dist/web/client/assets/dialog-Ddouieuu.js +0 -1
  181. package/dist/web/client/assets/eye-Cs0lNChA.js +0 -1
  182. package/dist/web/client/assets/globals-C961mr-b.css +0 -2
  183. package/dist/web/client/assets/index-Bz5W4EOn.js +0 -13
  184. package/dist/web/client/assets/input-Def1xOZz.js +0 -1
  185. package/dist/web/client/assets/markdown-Big27m-v.js +0 -2
  186. package/dist/web/client/assets/markdown-code-7L4RiS50.js +0 -3
  187. package/dist/web/client/assets/message-queue-Bg2MiJHM.js +0 -1
  188. package/dist/web/client/assets/mutation-DOi2Qgfa.js +0 -1
  189. package/dist/web/client/assets/notify-DhtmUPfE.js +0 -1
  190. package/dist/web/client/assets/openui-renderer-MIB3JKYa.js +0 -291
  191. package/dist/web/client/assets/provider-label-B_vy60P0.js +0 -1
  192. package/dist/web/client/assets/rehype-katex-A4PtQgTX.js +0 -259
  193. package/dist/web/client/assets/right-panel-context-DHKWoetk.js +0 -1
  194. package/dist/web/client/assets/right-panel-registry-hKJN__3l.js +0 -2
  195. package/dist/web/client/assets/routes-C3h32Lj_.js +0 -16
  196. package/dist/web/client/assets/select-Buvv1tIo.js +0 -1
  197. package/dist/web/client/assets/session-reasoning-panel-DmEbXOrR.js +0 -1
  198. package/dist/web/client/assets/session-tool-renderer-Daol5fJw.js +0 -169
  199. package/dist/web/client/assets/settings-dialog-DYbx3xuq.js +0 -2
  200. package/dist/web/client/assets/sparkles-D_ANe-HY.js +0 -1
  201. package/dist/web/client/assets/subagent-transcript-Bx-rHni-.js +0 -1
  202. package/dist/web/client/assets/surfaces-B8xTOFeK.js +0 -1
  203. package/dist/web/client/assets/switch-CDfAwEvs.js +0 -1
  204. package/dist/web/client/assets/terminal-Ceucj7us.js +0 -1
  205. package/dist/web/client/assets/toast-9zXN-yVk.js +0 -1
  206. package/dist/web/client/assets/tool-part-normalizer-NbPs9kd1.js +0 -4
  207. package/dist/web/client/assets/tool-result-BccnO34D.js +0 -4
  208. package/dist/web/client/assets/tool-timeline-DlBZyd4j.js +0 -1
  209. package/dist/web/client/assets/types-D5hZ8IyV.js +0 -1
  210. package/dist/web/client/assets/ui-preferences-1YaENqef.js +0 -1
  211. package/dist/web/client/assets/use-hover-capable-MwFjBLZQ.js +0 -1
  212. package/dist/web/client/assets/workspace-path-nav-BRwuLsFl.js +0 -2
  213. package/dist/web/client/assets/wrench-BYnD147U.js +0 -1
  214. package/dist/web/server/_tanstack-start-manifest_v-YlngJGUa-YTWBGR7L.js +0 -93
  215. package/dist/web/server/chunk-2PAW6K4Q.js +0 -56
  216. package/dist/web/server/chunk-CHSKEU3V.js +0 -166
  217. package/dist/web/server/chunk-FB3UHLLN.js +0 -49
  218. package/dist/web/server/chunk-GLH2GWMG.js +0 -2182
  219. package/dist/web/server/chunk-OXEAXEWD.js +0 -13
  220. package/dist/web/server/chunk-SIJVVYQT.js +0 -234
  221. package/dist/web/server/chunk-UQV2NU63.js +0 -163
  222. package/dist/web/server/chunk-ZUZPJNLY.js +0 -25217
  223. package/dist/web/server/router-DZYr-9uT-AEXHEFXF.js +0 -31
  224. package/dist/web/server/routes-vYxWRhis-AAZ73SNP.js +0 -120
  225. package/dist/web/server/session-reasoning-panel-XXU2yIOW-XXCKHISS.js +0 -192
  226. package/dist/web/server/session-tool-renderer-Dtt74Mts-7YYNSWRV.js +0 -29
  227. package/dist/web/server/tool-timeline-BKWsrZHK-3LGCOTPH.js +0 -12
@@ -861,7 +861,7 @@ function closedDialog(node) {
861
861
  return node.tagName === "dialog" && !(node.properties || {}).open;
862
862
  }
863
863
 
864
- // node_modules/.pnpm/katex@0.16.47/node_modules/katex/dist/katex.mjs
864
+ // node_modules/.pnpm/katex@0.18.10/node_modules/katex/dist/katex.mjs
865
865
  var ParseError = class _ParseError extends Error {
866
866
  // The underlying error message without any context added.
867
867
  constructor(message, token) {
@@ -1059,15 +1059,16 @@ function getImplicitDefault(type) {
1059
1059
  }
1060
1060
  }
1061
1061
  function getDefaultValue(schema) {
1062
- if (schema.default !== void 0) {
1062
+ if (Object.prototype.hasOwnProperty.call(schema, "default") && schema.default !== void 0) {
1063
1063
  return schema.default;
1064
1064
  }
1065
1065
  var type = Array.isArray(schema.type) ? schema.type[0] : schema.type;
1066
1066
  return getImplicitDefault(type);
1067
1067
  }
1068
1068
  function applySetting(target, prop, options, schema) {
1069
- var optionValue = options[prop];
1070
- target[prop] = optionValue !== void 0 ? schema.processor ? schema.processor(optionValue) : optionValue : getDefaultValue(schema);
1069
+ var optionValue = Object.prototype.hasOwnProperty.call(options, prop) ? options[prop] : void 0;
1070
+ var processor = Object.prototype.hasOwnProperty.call(schema, "processor") ? schema.processor : void 0;
1071
+ target[prop] = optionValue !== void 0 ? processor ? processor(optionValue) : optionValue : getDefaultValue(schema);
1071
1072
  }
1072
1073
  var Settings = class {
1073
1074
  constructor(options) {
@@ -4246,10 +4247,8 @@ function getGlobalMetrics(size) {
4246
4247
  var metrics = fontMetricsBySizeIndex[sizeIndex] = {
4247
4248
  cssEmPerMu: sigmasAndXis.quad[sizeIndex] / 18
4248
4249
  };
4249
- for (var key in sigmasAndXis) {
4250
- if (sigmasAndXis.hasOwnProperty(key)) {
4251
- metrics[key] = sigmasAndXis[key][sizeIndex];
4252
- }
4250
+ for (var key of Object.keys(sigmasAndXis)) {
4251
+ metrics[key] = sigmasAndXis[key][sizeIndex];
4253
4252
  }
4254
4253
  }
4255
4254
  return fontMetricsBySizeIndex[sizeIndex];
@@ -5188,16 +5187,12 @@ var boldSymbol = function boldSymbol2(value, mode, type) {
5188
5187
  };
5189
5188
  }
5190
5189
  };
5191
- var makeOrd = function makeOrd2(group, options, type) {
5190
+ var makeOrd = function makeOrd2(group, options) {
5191
+ var type = group.type === "mathord" ? "mathord" : "textord";
5192
5192
  var mode = group.mode;
5193
5193
  var text2 = group.text;
5194
5194
  var classes = ["mord"];
5195
- var {
5196
- font,
5197
- fontFamily,
5198
- fontWeight,
5199
- fontShape
5200
- } = options;
5195
+ var font = options.font, fontFamily = options.fontFamily, fontWeight = options.fontWeight, fontShape = options.fontShape;
5201
5196
  var useFont = mode === "math" || mode === "text" && !!font;
5202
5197
  var fontOrFamily = useFont ? font : fontFamily;
5203
5198
  var wideFontName = "";
@@ -5225,7 +5220,7 @@ var makeOrd = function makeOrd2(group, options, type) {
5225
5220
  }
5226
5221
  if (lookupSymbol(text2, fontName, mode).metrics) {
5227
5222
  return makeSymbol(text2, fontName, mode, options, classes.concat(fontClasses));
5228
- } else if (ligatures.hasOwnProperty(text2) && fontName.slice(0, 10) === "Typewriter") {
5223
+ } else if (Object.prototype.hasOwnProperty.call(ligatures, text2) && fontName.slice(0, 10) === "Typewriter") {
5229
5224
  var parts = [];
5230
5225
  for (var i2 = 0; i2 < text2.length; i2++) {
5231
5226
  parts.push(makeSymbol(text2[i2], fontName, mode, options, classes.concat(fontClasses)));
@@ -5387,10 +5382,7 @@ var getVListChildrenAndDepth = function getVListChildrenAndDepth2(params) {
5387
5382
  };
5388
5383
  };
5389
5384
  var makeVList = function makeVList2(params, options) {
5390
- var {
5391
- children,
5392
- depth
5393
- } = getVListChildrenAndDepth(params);
5385
+ var _getVListChildrenAndD = getVListChildrenAndDepth(params), children = _getVListChildrenAndD.children, depth = _getVListChildrenAndD.depth;
5394
5386
  var pstrutSize = 0;
5395
5387
  for (var i2 = 0; i2 < children.length; i2++) {
5396
5388
  var child = children[i2];
@@ -5550,7 +5542,7 @@ var svgData = {
5550
5542
  oiiintSize2: ["oiiintSize2", 1.98, 0.659]
5551
5543
  };
5552
5544
  var staticSvg = function staticSvg2(value, options) {
5553
- var [pathName, width, height] = svgData[value];
5545
+ var _svgData$value = svgData[value], pathName = _svgData$value[0], width = _svgData$value[1], height = _svgData$value[2];
5554
5546
  var path2 = new PathNode(pathName);
5555
5547
  var svgNode = new SvgNode([path2], {
5556
5548
  "width": makeEm(width),
@@ -5560,7 +5552,7 @@ var staticSvg = function staticSvg2(value, options) {
5560
5552
  "viewBox": "0 0 " + 1e3 * width + " " + 1e3 * height,
5561
5553
  "preserveAspectRatio": "xMinYMin"
5562
5554
  });
5563
- var span = makeSvgSpan(["overlay"], [svgNode], options);
5555
+ var span = makeSvgSpan(["katex-overlay"], [svgNode], options);
5564
5556
  span.height = height;
5565
5557
  span.style.height = makeEm(height);
5566
5558
  span.style.width = makeEm(width);
@@ -5651,27 +5643,8 @@ var tightSpacings = {
5651
5643
  var _functions = {};
5652
5644
  var _htmlGroupBuilders = {};
5653
5645
  var _mathmlGroupBuilders = {};
5654
- function defineFunction(_ref) {
5655
- var {
5656
- type,
5657
- names,
5658
- props,
5659
- handler,
5660
- htmlBuilder: htmlBuilder3,
5661
- mathmlBuilder: mathmlBuilder3
5662
- } = _ref;
5663
- var data = {
5664
- type,
5665
- numArgs: props.numArgs,
5666
- argTypes: props.argTypes,
5667
- allowedInArgument: !!props.allowedInArgument,
5668
- allowedInText: !!props.allowedInText,
5669
- allowedInMath: props.allowedInMath === void 0 ? true : props.allowedInMath,
5670
- numOptionalArgs: props.numOptionalArgs || 0,
5671
- infix: !!props.infix,
5672
- primitive: !!props.primitive,
5673
- handler
5674
- };
5646
+ function defineFunction(data) {
5647
+ var type = data.type, names = data.names, htmlBuilder3 = data.htmlBuilder, mathmlBuilder3 = data.mathmlBuilder;
5675
5648
  for (var i2 = 0; i2 < names.length; ++i2) {
5676
5649
  _functions[names[i2]] = data;
5677
5650
  }
@@ -5684,24 +5657,14 @@ function defineFunction(_ref) {
5684
5657
  }
5685
5658
  }
5686
5659
  }
5687
- function defineFunctionBuilders(_ref2) {
5688
- var {
5689
- type,
5690
- htmlBuilder: htmlBuilder3,
5691
- mathmlBuilder: mathmlBuilder3
5692
- } = _ref2;
5693
- defineFunction({
5694
- type,
5695
- names: [],
5696
- props: {
5697
- numArgs: 0
5698
- },
5699
- handler() {
5700
- throw new Error("Should never be called.");
5701
- },
5702
- htmlBuilder: htmlBuilder3,
5703
- mathmlBuilder: mathmlBuilder3
5704
- });
5660
+ function defineFunctionBuilders(_ref) {
5661
+ var type = _ref.type, htmlBuilder3 = _ref.htmlBuilder, mathmlBuilder3 = _ref.mathmlBuilder;
5662
+ if (htmlBuilder3) {
5663
+ _htmlGroupBuilders[type] = htmlBuilder3;
5664
+ }
5665
+ if (mathmlBuilder3) {
5666
+ _mathmlGroupBuilders[type] = mathmlBuilder3;
5667
+ }
5705
5668
  }
5706
5669
  var normalizeArgument = function normalizeArgument2(arg) {
5707
5670
  return arg.type === "ordgroup" && arg.body.length === 1 ? arg.body[0] : arg;
@@ -5807,7 +5770,7 @@ var _traverseNonSpaceNodes = function traverseNonSpaceNodes(nodes, callback, pre
5807
5770
  }
5808
5771
  if (nonspace) {
5809
5772
  prev.node = node;
5810
- } else if (isRoot && node.hasClass("newline")) {
5773
+ } else if (isRoot && node.hasClass("katex-newline")) {
5811
5774
  prev.node = makeSpan(["leftmost"]);
5812
5775
  }
5813
5776
  prev.insertAfter = /* @__PURE__ */ ((index) => (n) => {
@@ -5871,8 +5834,8 @@ var buildGroup$1 = function buildGroup(group, options, baseOptions) {
5871
5834
  }
5872
5835
  };
5873
5836
  function buildHTMLUnbreakable(children, options) {
5874
- var body = makeSpan(["base"], children, options);
5875
- var strut = makeSpan(["strut"]);
5837
+ var body = makeSpan(["katex-base"], children, options);
5838
+ var strut = makeSpan(["katex-strut"]);
5876
5839
  strut.style.height = makeEm(body.height + body.depth);
5877
5840
  if (body.depth) {
5878
5841
  strut.style.verticalAlign = makeEm(-body.depth);
@@ -5888,7 +5851,7 @@ function buildHTML(tree, options) {
5888
5851
  }
5889
5852
  var expression = buildExpression$1(tree, options, "root");
5890
5853
  var eqnNum;
5891
- if (expression.length === 2 && expression[1].hasClass("tag")) {
5854
+ if (expression.length === 2 && expression[1].hasClass("katex-tag")) {
5892
5855
  eqnNum = expression.pop();
5893
5856
  }
5894
5857
  var children = [];
@@ -5897,7 +5860,7 @@ function buildHTML(tree, options) {
5897
5860
  parts.push(expression[i2]);
5898
5861
  if (expression[i2].hasClass("mbin") || expression[i2].hasClass("mrel") || expression[i2].hasClass("allowbreak")) {
5899
5862
  var nobreak = false;
5900
- while (i2 < expression.length - 1 && expression[i2 + 1].hasClass("mspace") && !expression[i2 + 1].hasClass("newline")) {
5863
+ while (i2 < expression.length - 1 && expression[i2 + 1].hasClass("mspace") && !expression[i2 + 1].hasClass("katex-newline")) {
5901
5864
  i2++;
5902
5865
  parts.push(expression[i2]);
5903
5866
  if (expression[i2].hasClass("nobreak")) {
@@ -5908,7 +5871,7 @@ function buildHTML(tree, options) {
5908
5871
  children.push(buildHTMLUnbreakable(parts, options));
5909
5872
  parts = [];
5910
5873
  }
5911
- } else if (expression[i2].hasClass("newline")) {
5874
+ } else if (expression[i2].hasClass("katex-newline")) {
5912
5875
  parts.pop();
5913
5876
  if (parts.length > 0) {
5914
5877
  children.push(buildHTMLUnbreakable(parts, options));
@@ -5923,7 +5886,7 @@ function buildHTML(tree, options) {
5923
5886
  var tagChild;
5924
5887
  if (tag) {
5925
5888
  tagChild = buildHTMLUnbreakable(buildExpression$1(tag, options, true), options);
5926
- tagChild.classes = ["tag"];
5889
+ tagChild.classes = ["katex-tag"];
5927
5890
  children.push(tagChild);
5928
5891
  } else if (eqnNum) {
5929
5892
  children.push(eqnNum);
@@ -5971,10 +5934,10 @@ var MathNode = class {
5971
5934
  */
5972
5935
  toNode() {
5973
5936
  var node = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type);
5974
- for (var attr in this.attributes) {
5975
- if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
5976
- node.setAttribute(attr, this.attributes[attr]);
5977
- }
5937
+ for (var _ref2 of Object.entries(this.attributes)) {
5938
+ var attr = _ref2[0];
5939
+ var value = _ref2[1];
5940
+ node.setAttribute(attr, value);
5978
5941
  }
5979
5942
  if (this.classes.length > 0) {
5980
5943
  node.className = createClass(this.classes);
@@ -5997,12 +5960,12 @@ var MathNode = class {
5997
5960
  */
5998
5961
  toMarkup() {
5999
5962
  var markup = "<" + this.type;
6000
- for (var attr in this.attributes) {
6001
- if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
6002
- markup += " " + attr + '="';
6003
- markup += escape(this.attributes[attr]);
6004
- markup += '"';
6005
- }
5963
+ for (var _ref4 of Object.entries(this.attributes)) {
5964
+ var attr = _ref4[0];
5965
+ var value = _ref4[1];
5966
+ markup += " " + attr + '="';
5967
+ markup += escape(value);
5968
+ markup += '"';
6006
5969
  }
6007
5970
  if (this.classes.length > 0) {
6008
5971
  markup += ' class ="' + escape(createClass(this.classes)) + '"';
@@ -6111,7 +6074,8 @@ var SpaceNode = class {
6111
6074
  var noVariantSymbols = /* @__PURE__ */ new Set(["\\imath", "\\jmath"]);
6112
6075
  var rowLikeTypes = /* @__PURE__ */ new Set(["mrow", "mtable"]);
6113
6076
  var makeText = function makeText2(text2, mode, options) {
6114
- if (symbols[mode][text2] && symbols[mode][text2].replace && text2.charCodeAt(0) !== 55349 && !(ligatures.hasOwnProperty(text2) && options && (options.fontFamily && options.fontFamily.slice(4, 6) === "tt" || options.font && options.font.slice(4, 6) === "tt"))) {
6077
+ var _options$fontFamily, _options$font;
6078
+ if (symbols[mode][text2] && symbols[mode][text2].replace && text2.charCodeAt(0) !== 55349 && !(Object.prototype.hasOwnProperty.call(ligatures, text2) && ((options == null || (_options$fontFamily = options.fontFamily) == null ? void 0 : _options$fontFamily.slice(4, 6)) === "tt" || (options == null || (_options$font = options.font) == null ? void 0 : _options$font.slice(4, 6)) === "tt"))) {
6115
6079
  text2 = symbols[mode][text2].replace;
6116
6080
  }
6117
6081
  return new TextNode(text2);
@@ -6504,7 +6468,7 @@ var Options = class _Options {
6504
6468
  */
6505
6469
  sizingClasses(oldOptions) {
6506
6470
  if (oldOptions.size !== this.size) {
6507
- return ["sizing", "reset-size" + oldOptions.size, "size" + this.size];
6471
+ return ["katex-sizing", "reset-size" + oldOptions.size, "size" + this.size];
6508
6472
  } else {
6509
6473
  return [];
6510
6474
  }
@@ -6515,7 +6479,7 @@ var Options = class _Options {
6515
6479
  */
6516
6480
  baseSizingClasses() {
6517
6481
  if (this.size !== _Options.BASESIZE) {
6518
- return ["sizing", "reset-size" + this.size, "size" + _Options.BASESIZE];
6482
+ return ["katex-sizing", "reset-size" + this.size, "size" + _Options.BASESIZE];
6519
6483
  } else {
6520
6484
  return [];
6521
6485
  }
@@ -6739,7 +6703,7 @@ var stretchySvg = function stretchySvg2(group, options) {
6739
6703
  if (!data) {
6740
6704
  throw new Error('No SVG data for "' + label + '".');
6741
6705
  }
6742
- var [paths, _minWidth, _viewBoxHeight] = data;
6706
+ var paths = data[0], _minWidth = data[1], _viewBoxHeight = data[2];
6743
6707
  var _height2 = _viewBoxHeight / 1e3;
6744
6708
  var numSvgChildren = paths.length;
6745
6709
  var widthClasses;
@@ -6780,17 +6744,13 @@ var stretchySvg = function stretchySvg2(group, options) {
6780
6744
  }
6781
6745
  }
6782
6746
  return {
6783
- span: makeSpan(["stretchy"], spans, options),
6747
+ span: makeSpan(["katex-stretchy"], spans, options),
6784
6748
  minWidth: _minWidth,
6785
6749
  height: _height2
6786
6750
  };
6787
6751
  }
6788
6752
  }
6789
- var {
6790
- span,
6791
- minWidth,
6792
- height
6793
- } = buildSvgSpan_();
6753
+ var _buildSvgSpan_ = buildSvgSpan_(), span = _buildSvgSpan_.span, minWidth = _buildSvgSpan_.minWidth, height = _buildSvgSpan_.height;
6794
6754
  span.height = height;
6795
6755
  span.style.height = makeEm(height);
6796
6756
  if (minWidth > 0) {
@@ -6802,7 +6762,7 @@ var stretchyEnclose = function stretchyEnclose2(inner2, label, topPad, bottomPad
6802
6762
  var img;
6803
6763
  var totalHeight = inner2.height + inner2.depth + topPad + bottomPad;
6804
6764
  if (/fbox|color|angl/.test(label)) {
6805
- img = makeSpan(["stretchy", label], [], options);
6765
+ img = makeSpan(["katex-stretchy", label], [], options);
6806
6766
  if (label === "fbox") {
6807
6767
  var color = options.color && options.getColor();
6808
6768
  if (color) {
@@ -6839,23 +6799,12 @@ var stretchyEnclose = function stretchyEnclose2(inner2, label, topPad, bottomPad
6839
6799
  img.style.height = makeEm(totalHeight);
6840
6800
  return img;
6841
6801
  };
6842
- var ATOMS = {
6843
- "bin": 1,
6844
- "close": 1,
6845
- "inner": 1,
6846
- "open": 1,
6847
- "punct": 1,
6848
- "rel": 1
6849
- };
6850
- var NON_ATOMS = {
6851
- "accent-token": 1,
6852
- "mathord": 1,
6853
- "op-token": 1,
6854
- "spacing": 1,
6855
- "textord": 1
6856
- };
6802
+ var atomList = ["bin", "close", "inner", "open", "punct", "rel"];
6803
+ var nonAtomList = ["accent-token", "mathord", "op-token", "spacing", "textord"];
6804
+ var Atoms = new Set(atomList);
6805
+ var NonAtoms = new Set(nonAtomList);
6857
6806
  function isAtom(value) {
6858
- return value in ATOMS;
6807
+ return Atoms.has(value);
6859
6808
  }
6860
6809
  function assertNodeType(node, type) {
6861
6810
  if (!node || node.type !== type) {
@@ -6871,11 +6820,24 @@ function assertSymbolNodeType(node) {
6871
6820
  return typedNode;
6872
6821
  }
6873
6822
  function checkSymbolNodeType(node) {
6874
- if (node && (node.type === "atom" || NON_ATOMS.hasOwnProperty(node.type))) {
6823
+ if (node.type === "atom" || NonAtoms.has(node.type)) {
6875
6824
  return node;
6876
6825
  }
6877
6826
  return null;
6878
6827
  }
6828
+ function assertCharacterGroup(group, errorMessage, allowSpaces) {
6829
+ var text2 = "";
6830
+ for (var node of group.body) {
6831
+ if (node.type === "textord") {
6832
+ text2 += node.text;
6833
+ } else if (allowSpaces && node.type === "spacing" && node.text === " ") {
6834
+ text2 += " ";
6835
+ } else {
6836
+ throw new ParseError(errorMessage, group);
6837
+ }
6838
+ }
6839
+ return text2;
6840
+ }
6879
6841
  var getBaseSymbol = (group) => {
6880
6842
  if (group instanceof SymbolNode) {
6881
6843
  return group;
@@ -6919,7 +6881,7 @@ var htmlBuilder$a = (grp, options) => {
6919
6881
  type: "textord",
6920
6882
  mode: group.mode,
6921
6883
  text: group.label
6922
- }, options, "textord");
6884
+ }, options);
6923
6885
  accent2 = assertSymbolDomNode(accent2);
6924
6886
  accent2.italic = 0;
6925
6887
  width = accent2.width;
@@ -6972,7 +6934,7 @@ var htmlBuilder$a = (grp, options) => {
6972
6934
  }]
6973
6935
  });
6974
6936
  }
6975
- var accentWrap = makeSpan(["mord", "accent"], [accentBody], options);
6937
+ var accentWrap = makeSpan(["mord", "katex-accent"], [accentBody], options);
6976
6938
  if (supSubGroup) {
6977
6939
  supSubGroup.children[0] = accentWrap;
6978
6940
  supSubGroup.height = Math.max(accentWrap.height, supSubGroup.height);
@@ -6992,9 +6954,7 @@ var NON_STRETCHY_ACCENT_REGEX = new RegExp(["\\acute", "\\grave", "\\ddot", "\\t
6992
6954
  defineFunction({
6993
6955
  type: "accent",
6994
6956
  names: ["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring", "\\widecheck", "\\widehat", "\\widetilde", "\\overrightarrow", "\\overleftarrow", "\\Overrightarrow", "\\overleftrightarrow", "\\overgroup", "\\overlinesegment", "\\overleftharpoon", "\\overrightharpoon"],
6995
- props: {
6996
- numArgs: 1
6997
- },
6957
+ numArgs: 1,
6998
6958
  handler: (context, args) => {
6999
6959
  var base2 = normalizeArgument(args[0]);
7000
6960
  var isStretchy = !NON_STRETCHY_ACCENT_REGEX.test(context.funcName);
@@ -7014,13 +6974,11 @@ defineFunction({
7014
6974
  defineFunction({
7015
6975
  type: "accent",
7016
6976
  names: ["\\'", "\\`", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\c", "\\r", "\\H", "\\v", "\\textcircled"],
7017
- props: {
7018
- numArgs: 1,
7019
- allowedInText: true,
7020
- allowedInMath: true,
7021
- // unless in strict mode
7022
- argTypes: ["primitive"]
7023
- },
6977
+ numArgs: 1,
6978
+ allowedInText: true,
6979
+ allowedInMath: true,
6980
+ // unless in strict mode
6981
+ argTypes: ["primitive"],
7024
6982
  handler: (context, args) => {
7025
6983
  var base2 = args[0];
7026
6984
  var mode = context.parser.mode;
@@ -7036,21 +6994,14 @@ defineFunction({
7036
6994
  isShifty: true,
7037
6995
  base: base2
7038
6996
  };
7039
- },
7040
- htmlBuilder: htmlBuilder$a,
7041
- mathmlBuilder: mathmlBuilder$9
6997
+ }
7042
6998
  });
7043
6999
  defineFunction({
7044
7000
  type: "accentUnder",
7045
7001
  names: ["\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underlinesegment", "\\utilde"],
7046
- props: {
7047
- numArgs: 1
7048
- },
7002
+ numArgs: 1,
7049
7003
  handler: (_ref, args) => {
7050
- var {
7051
- parser,
7052
- funcName
7053
- } = _ref;
7004
+ var parser = _ref.parser, funcName = _ref.funcName;
7054
7005
  var base2 = args[0];
7055
7006
  return {
7056
7007
  type: "accentUnder",
@@ -7125,15 +7076,10 @@ defineFunction({
7125
7076
  "\\\\cdleftarrow",
7126
7077
  "\\\\cdlongequal"
7127
7078
  ],
7128
- props: {
7129
- numArgs: 1,
7130
- numOptionalArgs: 1
7131
- },
7079
+ numArgs: 1,
7080
+ numOptionalArgs: 1,
7132
7081
  handler(_ref, args, optArgs) {
7133
- var {
7134
- parser,
7135
- funcName
7136
- } = _ref;
7082
+ var parser = _ref.parser, funcName = _ref.funcName;
7137
7083
  return {
7138
7084
  type: "xArrow",
7139
7085
  mode: parser.mode,
@@ -7251,9 +7197,6 @@ function mathmlBuilder$8(group, options) {
7251
7197
  } else if (group.mclass === "mopen" || group.mclass === "mclose") {
7252
7198
  node.attributes.lspace = "0em";
7253
7199
  node.attributes.rspace = "0em";
7254
- } else if (group.mclass === "minner") {
7255
- node.attributes.lspace = "0.0556em";
7256
- node.attributes.width = "+0.1111em";
7257
7200
  }
7258
7201
  }
7259
7202
  return node;
@@ -7261,21 +7204,15 @@ function mathmlBuilder$8(group, options) {
7261
7204
  defineFunction({
7262
7205
  type: "mclass",
7263
7206
  names: ["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"],
7264
- props: {
7265
- numArgs: 1,
7266
- primitive: true
7267
- },
7207
+ numArgs: 1,
7208
+ primitive: true,
7268
7209
  handler(_ref, args) {
7269
- var {
7270
- parser,
7271
- funcName
7272
- } = _ref;
7210
+ var parser = _ref.parser, funcName = _ref.funcName;
7273
7211
  var body = args[0];
7274
7212
  return {
7275
7213
  type: "mclass",
7276
7214
  mode: parser.mode,
7277
7215
  mclass: "m" + funcName.slice(5),
7278
- // TODO(kevinb): don't prefix with 'm'
7279
7216
  body: ordargument(body),
7280
7217
  isCharacterBox: isCharacterBox(body)
7281
7218
  };
@@ -7294,13 +7231,9 @@ var binrelClass = (arg) => {
7294
7231
  defineFunction({
7295
7232
  type: "mclass",
7296
7233
  names: ["\\@binrel"],
7297
- props: {
7298
- numArgs: 2
7299
- },
7234
+ numArgs: 2,
7300
7235
  handler(_ref2, args) {
7301
- var {
7302
- parser
7303
- } = _ref2;
7236
+ var parser = _ref2.parser;
7304
7237
  return {
7305
7238
  type: "mclass",
7306
7239
  mode: parser.mode,
@@ -7313,14 +7246,9 @@ defineFunction({
7313
7246
  defineFunction({
7314
7247
  type: "mclass",
7315
7248
  names: ["\\stackrel", "\\overset", "\\underset"],
7316
- props: {
7317
- numArgs: 2
7318
- },
7249
+ numArgs: 2,
7319
7250
  handler(_ref3, args) {
7320
- var {
7321
- parser,
7322
- funcName
7323
- } = _ref3;
7251
+ var parser = _ref3.parser, funcName = _ref3.funcName;
7324
7252
  var baseArg = args[1];
7325
7253
  var shiftedArg = args[0];
7326
7254
  var mclass;
@@ -7339,12 +7267,16 @@ defineFunction({
7339
7267
  suppressBaseShift: funcName !== "\\stackrel",
7340
7268
  body: ordargument(baseArg)
7341
7269
  };
7342
- var supsub = {
7270
+ var supsub = funcName === "\\underset" ? {
7343
7271
  type: "supsub",
7344
7272
  mode: shiftedArg.mode,
7345
7273
  base: baseOp,
7346
- sup: funcName === "\\underset" ? null : shiftedArg,
7347
- sub: funcName === "\\underset" ? shiftedArg : null
7274
+ sub: shiftedArg
7275
+ } : {
7276
+ type: "supsub",
7277
+ mode: shiftedArg.mode,
7278
+ base: baseOp,
7279
+ sup: shiftedArg
7348
7280
  };
7349
7281
  return {
7350
7282
  type: "mclass",
@@ -7353,21 +7285,15 @@ defineFunction({
7353
7285
  body: [supsub],
7354
7286
  isCharacterBox: isCharacterBox(supsub)
7355
7287
  };
7356
- },
7357
- htmlBuilder: htmlBuilder$9,
7358
- mathmlBuilder: mathmlBuilder$8
7288
+ }
7359
7289
  });
7360
7290
  defineFunction({
7361
7291
  type: "pmb",
7362
7292
  names: ["\\pmb"],
7363
- props: {
7364
- numArgs: 1,
7365
- allowedInText: true
7366
- },
7293
+ numArgs: 1,
7294
+ allowedInText: true,
7367
7295
  handler(_ref, args) {
7368
- var {
7369
- parser
7370
- } = _ref;
7296
+ var parser = _ref.parser;
7371
7297
  return {
7372
7298
  type: "pmb",
7373
7299
  mode: parser.mode,
@@ -7566,14 +7492,9 @@ function parseCD(parser) {
7566
7492
  defineFunction({
7567
7493
  type: "cdlabel",
7568
7494
  names: ["\\\\cdleft", "\\\\cdright"],
7569
- props: {
7570
- numArgs: 1
7571
- },
7495
+ numArgs: 1,
7572
7496
  handler(_ref, args) {
7573
- var {
7574
- parser,
7575
- funcName
7576
- } = _ref;
7497
+ var parser = _ref.parser, funcName = _ref.funcName;
7577
7498
  return {
7578
7499
  type: "cdlabel",
7579
7500
  mode: parser.mode,
@@ -7607,13 +7528,9 @@ defineFunction({
7607
7528
  defineFunction({
7608
7529
  type: "cdlabelparent",
7609
7530
  names: ["\\\\cdparent"],
7610
- props: {
7611
- numArgs: 1
7612
- },
7531
+ numArgs: 1,
7613
7532
  handler(_ref2, args) {
7614
- var {
7615
- parser
7616
- } = _ref2;
7533
+ var parser = _ref2.parser;
7617
7534
  return {
7618
7535
  type: "cdlabelparent",
7619
7536
  mode: parser.mode,
@@ -7632,26 +7549,17 @@ defineFunction({
7632
7549
  defineFunction({
7633
7550
  type: "textord",
7634
7551
  names: ["\\@char"],
7635
- props: {
7636
- numArgs: 1,
7637
- allowedInText: true
7638
- },
7552
+ numArgs: 1,
7553
+ allowedInText: true,
7639
7554
  handler(_ref, args) {
7640
- var {
7641
- parser
7642
- } = _ref;
7555
+ var parser = _ref.parser;
7643
7556
  var arg = assertNodeType(args[0], "ordgroup");
7644
- var group = arg.body;
7645
- var number = "";
7646
- for (var i2 = 0; i2 < group.length; i2++) {
7647
- var node = assertNodeType(group[i2], "textord");
7648
- number += node.text;
7649
- }
7557
+ var number = assertCharacterGroup(arg, "\\@char has non-numeric argument");
7650
7558
  var code = parseInt(number);
7651
7559
  var text2;
7652
7560
  if (isNaN(code)) {
7653
7561
  throw new ParseError("\\@char has non-numeric argument " + number);
7654
- } else if (code < 0 || code >= 1114111) {
7562
+ } else if (code < 0 || code > 1114111) {
7655
7563
  throw new ParseError("\\@char with invalid code point " + number);
7656
7564
  } else if (code <= 65535) {
7657
7565
  text2 = String.fromCharCode(code);
@@ -7679,15 +7587,11 @@ var mathmlBuilder$7 = (group, options) => {
7679
7587
  defineFunction({
7680
7588
  type: "color",
7681
7589
  names: ["\\textcolor"],
7682
- props: {
7683
- numArgs: 2,
7684
- allowedInText: true,
7685
- argTypes: ["color", "original"]
7686
- },
7590
+ numArgs: 2,
7591
+ allowedInText: true,
7592
+ argTypes: ["color", "original"],
7687
7593
  handler(_ref, args) {
7688
- var {
7689
- parser
7690
- } = _ref;
7594
+ var parser = _ref.parser;
7691
7595
  var color = assertNodeType(args[0], "color-token").color;
7692
7596
  var body = args[1];
7693
7597
  return {
@@ -7703,16 +7607,11 @@ defineFunction({
7703
7607
  defineFunction({
7704
7608
  type: "color",
7705
7609
  names: ["\\color"],
7706
- props: {
7707
- numArgs: 1,
7708
- allowedInText: true,
7709
- argTypes: ["color"]
7710
- },
7610
+ numArgs: 1,
7611
+ allowedInText: true,
7612
+ argTypes: ["color"],
7711
7613
  handler(_ref2, args) {
7712
- var {
7713
- parser,
7714
- breakOnTokenText
7715
- } = _ref2;
7614
+ var parser = _ref2.parser, breakOnTokenText = _ref2.breakOnTokenText;
7716
7615
  var color = assertNodeType(args[0], "color-token").color;
7717
7616
  parser.gullet.macros.set("\\current@color", color);
7718
7617
  var body = parser.parseExpression(true, breakOnTokenText);
@@ -7722,22 +7621,16 @@ defineFunction({
7722
7621
  color,
7723
7622
  body
7724
7623
  };
7725
- },
7726
- htmlBuilder: htmlBuilder$8,
7727
- mathmlBuilder: mathmlBuilder$7
7624
+ }
7728
7625
  });
7729
7626
  defineFunction({
7730
7627
  type: "cr",
7731
7628
  names: ["\\\\"],
7732
- props: {
7733
- numArgs: 0,
7734
- numOptionalArgs: 0,
7735
- allowedInText: true
7736
- },
7629
+ numArgs: 0,
7630
+ numOptionalArgs: 0,
7631
+ allowedInText: true,
7737
7632
  handler(_ref, args, optArgs) {
7738
- var {
7739
- parser
7740
- } = _ref;
7633
+ var parser = _ref.parser;
7741
7634
  var size = parser.gullet.future().text === "[" ? parser.parseSizeGroup(true) : null;
7742
7635
  var newLine = !parser.settings.displayMode || !parser.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline does nothing in display mode");
7743
7636
  return {
@@ -7752,7 +7645,7 @@ defineFunction({
7752
7645
  htmlBuilder(group, options) {
7753
7646
  var span = makeSpan(["mspace"], [], options);
7754
7647
  if (group.newLine) {
7755
- span.classes.push("newline");
7648
+ span.classes.push("katex-newline");
7756
7649
  if (group.size) {
7757
7650
  span.style.marginTop = makeEm(calculateSize(group.size, options));
7758
7651
  }
@@ -7819,15 +7712,10 @@ defineFunction({
7819
7712
  "\\\\globallong"
7820
7713
  // can’t be entered directly
7821
7714
  ],
7822
- props: {
7823
- numArgs: 0,
7824
- allowedInText: true
7825
- },
7715
+ numArgs: 0,
7716
+ allowedInText: true,
7826
7717
  handler(_ref) {
7827
- var {
7828
- parser,
7829
- funcName
7830
- } = _ref;
7718
+ var parser = _ref.parser, funcName = _ref.funcName;
7831
7719
  parser.consumeSpaces();
7832
7720
  var token = parser.fetch();
7833
7721
  if (globalMap[token.text]) {
@@ -7842,16 +7730,11 @@ defineFunction({
7842
7730
  defineFunction({
7843
7731
  type: "internal",
7844
7732
  names: ["\\def", "\\gdef", "\\edef", "\\xdef"],
7845
- props: {
7846
- numArgs: 0,
7847
- allowedInText: true,
7848
- primitive: true
7849
- },
7733
+ numArgs: 0,
7734
+ allowedInText: true,
7735
+ primitive: true,
7850
7736
  handler(_ref2) {
7851
- var {
7852
- parser,
7853
- funcName
7854
- } = _ref2;
7737
+ var parser = _ref2.parser, funcName = _ref2.funcName;
7855
7738
  var tok = parser.gullet.popToken();
7856
7739
  var name = tok.text;
7857
7740
  if (/^(?:[\\{}$&#^_]|EOF)$/.test(name)) {
@@ -7883,9 +7766,7 @@ defineFunction({
7883
7766
  delimiters2[numArgs].push(tok.text);
7884
7767
  }
7885
7768
  }
7886
- var {
7887
- tokens
7888
- } = parser.gullet.consumeArg();
7769
+ var _parser$gullet$consum = parser.gullet.consumeArg(), tokens = _parser$gullet$consum.tokens;
7889
7770
  if (insert) {
7890
7771
  tokens.unshift(insert);
7891
7772
  }
@@ -7911,16 +7792,11 @@ defineFunction({
7911
7792
  "\\\\globallet"
7912
7793
  // can’t be entered directly
7913
7794
  ],
7914
- props: {
7915
- numArgs: 0,
7916
- allowedInText: true,
7917
- primitive: true
7918
- },
7795
+ numArgs: 0,
7796
+ allowedInText: true,
7797
+ primitive: true,
7919
7798
  handler(_ref3) {
7920
- var {
7921
- parser,
7922
- funcName
7923
- } = _ref3;
7799
+ var parser = _ref3.parser, funcName = _ref3.funcName;
7924
7800
  var name = checkControlSequence(parser.gullet.popToken());
7925
7801
  parser.gullet.consumeSpaces();
7926
7802
  var tok = getRHS(parser);
@@ -7938,16 +7814,11 @@ defineFunction({
7938
7814
  "\\\\globalfuture"
7939
7815
  // can’t be entered directly
7940
7816
  ],
7941
- props: {
7942
- numArgs: 0,
7943
- allowedInText: true,
7944
- primitive: true
7945
- },
7817
+ numArgs: 0,
7818
+ allowedInText: true,
7819
+ primitive: true,
7946
7820
  handler(_ref4) {
7947
- var {
7948
- parser,
7949
- funcName
7950
- } = _ref4;
7821
+ var parser = _ref4.parser, funcName = _ref4.funcName;
7951
7822
  var name = checkControlSequence(parser.gullet.popToken());
7952
7823
  var middle = parser.gullet.popToken();
7953
7824
  var tok = parser.gullet.popToken();
@@ -8526,12 +8397,10 @@ function checkDelimiter(delim, context) {
8526
8397
  defineFunction({
8527
8398
  type: "delimsizing",
8528
8399
  names: ["\\bigl", "\\Bigl", "\\biggl", "\\Biggl", "\\bigr", "\\Bigr", "\\biggr", "\\Biggr", "\\bigm", "\\Bigm", "\\biggm", "\\Biggm", "\\big", "\\Big", "\\bigg", "\\Bigg"],
8529
- props: {
8530
- numArgs: 1,
8531
- argTypes: ["primitive"]
8532
- },
8400
+ numArgs: 1,
8401
+ argTypes: ["primitive"],
8533
8402
  handler: (context, args) => {
8534
- var delim = checkDelimiter(args[0], context);
8403
+ var delim = checkDelimiter(normalizeArgument(args[0]), context);
8535
8404
  return {
8536
8405
  type: "delimsizing",
8537
8406
  mode: context.parser.mode,
@@ -8572,10 +8441,8 @@ function assertParsed(group) {
8572
8441
  defineFunction({
8573
8442
  type: "leftright-right",
8574
8443
  names: ["\\right"],
8575
- props: {
8576
- numArgs: 1,
8577
- primitive: true
8578
- },
8444
+ numArgs: 1,
8445
+ primitive: true,
8579
8446
  handler: (context, args) => {
8580
8447
  var color = context.parser.gullet.macros.get("\\current@color");
8581
8448
  if (color && typeof color !== "string") {
@@ -8593,10 +8460,8 @@ defineFunction({
8593
8460
  defineFunction({
8594
8461
  type: "leftright",
8595
8462
  names: ["\\left"],
8596
- props: {
8597
- numArgs: 1,
8598
- primitive: true
8599
- },
8463
+ numArgs: 1,
8464
+ primitive: true,
8600
8465
  handler: (context, args) => {
8601
8466
  var delim = checkDelimiter(args[0], context);
8602
8467
  var parser = context.parser;
@@ -8679,10 +8544,8 @@ defineFunction({
8679
8544
  defineFunction({
8680
8545
  type: "middle",
8681
8546
  names: ["\\middle"],
8682
- props: {
8683
- numArgs: 1,
8684
- primitive: true
8685
- },
8547
+ numArgs: 1,
8548
+ primitive: true,
8686
8549
  handler: (context, args) => {
8687
8550
  var delim = checkDelimiter(args[0], context);
8688
8551
  if (!context.parser.leftrightDepth) {
@@ -8724,7 +8587,7 @@ var htmlBuilder$7 = (group, options) => {
8724
8587
  var imgShift;
8725
8588
  var isSingleChar = isCharacterBox(group.body);
8726
8589
  if (label === "sout") {
8727
- img = makeSpan(["stretchy", "sout"]);
8590
+ img = makeSpan(["katex-stretchy", "katex-sout"]);
8728
8591
  img.height = options.fontMetrics().defaultRuleThickness / scale;
8729
8592
  imgShift = -0.5 * options.fontMetrics().xHeight;
8730
8593
  } else if (label === "phase") {
@@ -8894,16 +8757,11 @@ var mathmlBuilder$6 = (group, options) => {
8894
8757
  defineFunction({
8895
8758
  type: "enclose",
8896
8759
  names: ["\\colorbox"],
8897
- props: {
8898
- numArgs: 2,
8899
- allowedInText: true,
8900
- argTypes: ["color", "hbox"]
8901
- },
8760
+ numArgs: 2,
8761
+ allowedInText: true,
8762
+ argTypes: ["color", "hbox"],
8902
8763
  handler(_ref, args, optArgs) {
8903
- var {
8904
- parser,
8905
- funcName
8906
- } = _ref;
8764
+ var parser = _ref.parser, funcName = _ref.funcName;
8907
8765
  var color = assertNodeType(args[0], "color-token").color;
8908
8766
  var body = args[1];
8909
8767
  return {
@@ -8920,16 +8778,11 @@ defineFunction({
8920
8778
  defineFunction({
8921
8779
  type: "enclose",
8922
8780
  names: ["\\fcolorbox"],
8923
- props: {
8924
- numArgs: 3,
8925
- allowedInText: true,
8926
- argTypes: ["color", "color", "hbox"]
8927
- },
8781
+ numArgs: 3,
8782
+ allowedInText: true,
8783
+ argTypes: ["color", "color", "hbox"],
8928
8784
  handler(_ref2, args, optArgs) {
8929
- var {
8930
- parser,
8931
- funcName
8932
- } = _ref2;
8785
+ var parser = _ref2.parser, funcName = _ref2.funcName;
8933
8786
  var borderColor = assertNodeType(args[0], "color-token").color;
8934
8787
  var backgroundColor = assertNodeType(args[1], "color-token").color;
8935
8788
  var body = args[2];
@@ -8941,22 +8794,16 @@ defineFunction({
8941
8794
  borderColor,
8942
8795
  body
8943
8796
  };
8944
- },
8945
- htmlBuilder: htmlBuilder$7,
8946
- mathmlBuilder: mathmlBuilder$6
8797
+ }
8947
8798
  });
8948
8799
  defineFunction({
8949
8800
  type: "enclose",
8950
8801
  names: ["\\fbox"],
8951
- props: {
8952
- numArgs: 1,
8953
- argTypes: ["hbox"],
8954
- allowedInText: true
8955
- },
8802
+ numArgs: 1,
8803
+ argTypes: ["hbox"],
8804
+ allowedInText: true,
8956
8805
  handler(_ref3, args) {
8957
- var {
8958
- parser
8959
- } = _ref3;
8806
+ var parser = _ref3.parser;
8960
8807
  return {
8961
8808
  type: "enclose",
8962
8809
  mode: parser.mode,
@@ -8968,14 +8815,9 @@ defineFunction({
8968
8815
  defineFunction({
8969
8816
  type: "enclose",
8970
8817
  names: ["\\cancel", "\\bcancel", "\\xcancel", "\\phase"],
8971
- props: {
8972
- numArgs: 1
8973
- },
8818
+ numArgs: 1,
8974
8819
  handler(_ref4, args) {
8975
- var {
8976
- parser,
8977
- funcName
8978
- } = _ref4;
8820
+ var parser = _ref4.parser, funcName = _ref4.funcName;
8979
8821
  var body = args[0];
8980
8822
  return {
8981
8823
  type: "enclose",
@@ -8983,22 +8825,15 @@ defineFunction({
8983
8825
  label: funcName,
8984
8826
  body
8985
8827
  };
8986
- },
8987
- htmlBuilder: htmlBuilder$7,
8988
- mathmlBuilder: mathmlBuilder$6
8828
+ }
8989
8829
  });
8990
8830
  defineFunction({
8991
8831
  type: "enclose",
8992
8832
  names: ["\\sout"],
8993
- props: {
8994
- numArgs: 1,
8995
- allowedInText: true
8996
- },
8833
+ numArgs: 1,
8834
+ allowedInText: true,
8997
8835
  handler(_ref5, args) {
8998
- var {
8999
- parser,
9000
- funcName
9001
- } = _ref5;
8836
+ var parser = _ref5.parser, funcName = _ref5.funcName;
9002
8837
  if (parser.mode === "math") {
9003
8838
  parser.settings.reportNonstrict("mathVsSout", "LaTeX's \\sout works only in text mode");
9004
8839
  }
@@ -9009,22 +8844,16 @@ defineFunction({
9009
8844
  label: funcName,
9010
8845
  body
9011
8846
  };
9012
- },
9013
- htmlBuilder: htmlBuilder$7,
9014
- mathmlBuilder: mathmlBuilder$6
8847
+ }
9015
8848
  });
9016
8849
  defineFunction({
9017
8850
  type: "enclose",
9018
8851
  names: ["\\angl"],
9019
- props: {
9020
- numArgs: 1,
9021
- argTypes: ["hbox"],
9022
- allowedInText: false
9023
- },
8852
+ numArgs: 1,
8853
+ argTypes: ["hbox"],
8854
+ allowedInText: false,
9024
8855
  handler(_ref6, args) {
9025
- var {
9026
- parser
9027
- } = _ref6;
8856
+ var parser = _ref6.parser;
9028
8857
  return {
9029
8858
  type: "enclose",
9030
8859
  mode: parser.mode,
@@ -9035,20 +8864,13 @@ defineFunction({
9035
8864
  });
9036
8865
  var _environments = {};
9037
8866
  function defineEnvironment(_ref) {
9038
- var {
9039
- type,
9040
- names,
9041
- props,
9042
- handler,
9043
- htmlBuilder: htmlBuilder3,
9044
- mathmlBuilder: mathmlBuilder3
9045
- } = _ref;
8867
+ var type = _ref.type, names = _ref.names, props = _ref.props, handler2 = _ref.handler, htmlBuilder3 = _ref.htmlBuilder, mathmlBuilder3 = _ref.mathmlBuilder;
9046
8868
  var data = {
9047
8869
  type,
9048
8870
  numArgs: props.numArgs || 0,
9049
8871
  allowedInText: false,
9050
8872
  numOptionalArgs: 0,
9051
- handler
8873
+ handler: handler2
9052
8874
  };
9053
8875
  for (var i2 = 0; i2 < names.length; ++i2) {
9054
8876
  _environments[names[i2]] = data;
@@ -9140,18 +8962,7 @@ function getAutoTag(name) {
9140
8962
  }
9141
8963
  }
9142
8964
  function parseArray(parser, _ref, style) {
9143
- var {
9144
- hskipBeforeAndAfter,
9145
- addJot,
9146
- cols,
9147
- arraystretch,
9148
- colSeparationType,
9149
- autoTag,
9150
- singleRow,
9151
- emptySingleRow,
9152
- maxNumCols,
9153
- leqno
9154
- } = _ref;
8965
+ var hskipBeforeAndAfter = _ref.hskipBeforeAndAfter, addJot = _ref.addJot, cols = _ref.cols, arraystretch = _ref.arraystretch, colSeparationType = _ref.colSeparationType, autoTag = _ref.autoTag, singleRow = _ref.singleRow, emptySingleRow = _ref.emptySingleRow, maxNumCols = _ref.maxNumCols, leqno = _ref.leqno;
9155
8966
  parser.gullet.beginGroup();
9156
8967
  if (!singleRow) {
9157
8968
  parser.gullet.macros.set("\\cr", "\\\\\\relax");
@@ -9221,7 +9032,7 @@ function parseArray(parser, _ref, style) {
9221
9032
  parser.consume();
9222
9033
  } else if (next === "\\end") {
9223
9034
  endRow();
9224
- if (row2.length === 1 && cell2.type === "styling" && cell2.body.length === 1 && cell2.body[0].type === "ordgroup" && cell2.body[0].body.length === 0 && (body.length > 1 || !emptySingleRow)) {
9035
+ if (row2.length === 1 && cell2.type === "styling" && cell2.body.length === 1 && cell2.body[0].type === "ordgroup" && cell2.body[0].body.length === 0 && (body.length > 1 || !emptySingleRow) && !Array.isArray(tags == null ? void 0 : tags[tags.length - 1]) && !(autoTag && (tags == null ? void 0 : tags[tags.length - 1]) === true)) {
9225
9036
  body.pop();
9226
9037
  }
9227
9038
  if (hLinesBeforeRow.length < body.length + 1) {
@@ -9465,8 +9276,8 @@ var htmlBuilder$6 = function htmlBuilder(group, options) {
9465
9276
  }
9466
9277
  var tableBody = makeSpan(["mtable"], cols);
9467
9278
  if (hlines.length > 0) {
9468
- var line = makeLineSpan("hline", options, ruleThickness);
9469
- var dashes = makeLineSpan("hdashline", options, ruleThickness);
9279
+ var line = makeLineSpan("katex-hline", options, ruleThickness);
9280
+ var dashes = makeLineSpan("katex-hdashline", options, ruleThickness);
9470
9281
  var vListElems = [{
9471
9282
  type: "elem",
9472
9283
  elem: tableBody,
@@ -9501,7 +9312,7 @@ var htmlBuilder$6 = function htmlBuilder(group, options) {
9501
9312
  positionType: "individualShift",
9502
9313
  children: tagSpans
9503
9314
  });
9504
- var tagCol = makeSpan(["tag"], [eqnNumCol], options);
9315
+ var tagCol = makeSpan(["katex-tag"], [eqnNumCol], options);
9505
9316
  return makeFragment([tableBody, tagCol]);
9506
9317
  }
9507
9318
  };
@@ -9611,14 +9422,13 @@ var alignedHandler = function alignedHandler2(context, args) {
9611
9422
  validateAmsEnvironmentContext(context);
9612
9423
  }
9613
9424
  var cols = [];
9614
- var separationType = context.envName.includes("at") ? "alignat" : "align";
9615
9425
  var isSplit = context.envName === "split";
9616
9426
  var res = parseArray(context.parser, {
9617
9427
  cols,
9618
9428
  addJot: true,
9619
9429
  autoTag: isSplit ? void 0 : getAutoTag(context.envName),
9620
9430
  emptySingleRow: true,
9621
- colSeparationType: separationType,
9431
+ colSeparationType: context.envName.includes("at") ? "alignat" : "align",
9622
9432
  maxNumCols: isSplit ? 2 : void 0,
9623
9433
  leqno: context.parser.settings.leqno
9624
9434
  }, "display");
@@ -9630,18 +9440,18 @@ var alignedHandler = function alignedHandler2(context, args) {
9630
9440
  body: []
9631
9441
  };
9632
9442
  if (args[0] && args[0].type === "ordgroup") {
9633
- var arg0 = "";
9634
- for (var i2 = 0; i2 < args[0].body.length; i2++) {
9635
- var textord2 = assertNodeType(args[0].body[i2], "textord");
9636
- arg0 += textord2.text;
9443
+ var message = "Number of columns should be a positive integer";
9444
+ var numColumns = assertCharacterGroup(args[0], message);
9445
+ if (!/^[0-9]+$/.test(numColumns) || Number(numColumns) < 1) {
9446
+ throw new ParseError(message, args[0]);
9637
9447
  }
9638
- numMaths = Number(arg0);
9448
+ numMaths = Number(numColumns);
9639
9449
  numCols = numMaths * 2;
9640
9450
  }
9641
9451
  var isAligned = !numCols;
9642
9452
  res.body.forEach(function(row2) {
9643
- for (var _i42 = 1; _i42 < row2.length; _i42 += 2) {
9644
- var styling = assertNodeType(row2[_i42], "styling");
9453
+ for (var i3 = 1; i3 < row2.length; i3 += 2) {
9454
+ var styling = assertNodeType(row2[i3], "styling");
9645
9455
  var ordgroup = assertNodeType(styling.body[0], "ordgroup");
9646
9456
  ordgroup.body.unshift(emptyGroup);
9647
9457
  }
@@ -9654,15 +9464,15 @@ var alignedHandler = function alignedHandler2(context, args) {
9654
9464
  numCols = row2.length;
9655
9465
  }
9656
9466
  });
9657
- for (var _i52 = 0; _i52 < numCols; ++_i52) {
9467
+ for (var i2 = 0; i2 < numCols; ++i2) {
9658
9468
  var align = "r";
9659
9469
  var pregap = 0;
9660
- if (_i52 % 2 === 1) {
9470
+ if (i2 % 2 === 1) {
9661
9471
  align = "l";
9662
- } else if (_i52 > 0 && isAligned) {
9472
+ } else if (i2 > 0 && isAligned) {
9663
9473
  pregap = 1;
9664
9474
  }
9665
- cols[_i52] = {
9475
+ cols[i2] = {
9666
9476
  type: "align",
9667
9477
  align,
9668
9478
  pregap,
@@ -9953,11 +9763,9 @@ defineFunction({
9953
9763
  type: "text",
9954
9764
  // Doesn't matter what this is.
9955
9765
  names: ["\\hline", "\\hdashline"],
9956
- props: {
9957
- numArgs: 0,
9958
- allowedInText: true,
9959
- allowedInMath: true
9960
- },
9766
+ numArgs: 0,
9767
+ allowedInText: true,
9768
+ allowedInMath: true,
9961
9769
  handler(context, args) {
9962
9770
  throw new ParseError(context.funcName + " valid only within array environment");
9963
9771
  }
@@ -9966,32 +9774,21 @@ var environments = _environments;
9966
9774
  defineFunction({
9967
9775
  type: "environment",
9968
9776
  names: ["\\begin", "\\end"],
9969
- props: {
9970
- numArgs: 1,
9971
- argTypes: ["text"]
9972
- },
9777
+ numArgs: 1,
9778
+ argTypes: ["text"],
9973
9779
  handler(_ref, args) {
9974
- var {
9975
- parser,
9976
- funcName
9977
- } = _ref;
9780
+ var parser = _ref.parser, funcName = _ref.funcName;
9978
9781
  var nameGroup = args[0];
9979
9782
  if (nameGroup.type !== "ordgroup") {
9980
9783
  throw new ParseError("Invalid environment name", nameGroup);
9981
9784
  }
9982
- var envName = "";
9983
- for (var i2 = 0; i2 < nameGroup.body.length; ++i2) {
9984
- envName += assertNodeType(nameGroup.body[i2], "textord").text;
9985
- }
9785
+ var envName = assertCharacterGroup(nameGroup, "Environment name should contain only text characters and spaces", true);
9986
9786
  if (funcName === "\\begin") {
9987
- if (!environments.hasOwnProperty(envName)) {
9787
+ if (!Object.prototype.hasOwnProperty.call(environments, envName)) {
9988
9788
  throw new ParseError("No such environment: " + envName, nameGroup);
9989
9789
  }
9990
9790
  var env = environments[envName];
9991
- var {
9992
- args: _args,
9993
- optArgs
9994
- } = parser.parseArguments("\\begin{" + envName + "}", env);
9791
+ var _parser$parseArgument = parser.parseArguments("\\begin{" + envName + "}", env), _args = _parser$parseArgument.args, optArgs = _parser$parseArgument.optArgs;
9995
9792
  var context = {
9996
9793
  mode: parser.mode,
9997
9794
  envName,
@@ -10050,20 +9847,12 @@ defineFunction({
10050
9847
  "\\bold",
10051
9848
  "\\frak"
10052
9849
  ],
10053
- props: {
10054
- numArgs: 1,
10055
- allowedInArgument: true
10056
- },
9850
+ numArgs: 1,
9851
+ allowedInArgument: true,
10057
9852
  handler: (_ref, args) => {
10058
- var {
10059
- parser,
10060
- funcName
10061
- } = _ref;
9853
+ var parser = _ref.parser, funcName = _ref.funcName;
10062
9854
  var body = normalizeArgument(args[0]);
10063
- var func = funcName;
10064
- if (func in fontAliases) {
10065
- func = fontAliases[func];
10066
- }
9855
+ var func = funcName in fontAliases ? fontAliases[funcName] : funcName;
10067
9856
  return {
10068
9857
  type: "font",
10069
9858
  mode: parser.mode,
@@ -10077,13 +9866,9 @@ defineFunction({
10077
9866
  defineFunction({
10078
9867
  type: "mclass",
10079
9868
  names: ["\\boldsymbol", "\\bm"],
10080
- props: {
10081
- numArgs: 1
10082
- },
9869
+ numArgs: 1,
10083
9870
  handler: (_ref2, args) => {
10084
- var {
10085
- parser
10086
- } = _ref2;
9871
+ var parser = _ref2.parser;
10087
9872
  var body = args[0];
10088
9873
  return {
10089
9874
  type: "mclass",
@@ -10102,19 +9887,11 @@ defineFunction({
10102
9887
  defineFunction({
10103
9888
  type: "font",
10104
9889
  names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it", "\\cal"],
10105
- props: {
10106
- numArgs: 0,
10107
- allowedInText: true
10108
- },
9890
+ numArgs: 0,
9891
+ allowedInText: true,
10109
9892
  handler: (_ref3, args) => {
10110
- var {
10111
- parser,
10112
- funcName,
10113
- breakOnTokenText
10114
- } = _ref3;
10115
- var {
10116
- mode
10117
- } = parser;
9893
+ var parser = _ref3.parser, funcName = _ref3.funcName, breakOnTokenText = _ref3.breakOnTokenText;
9894
+ var mode = parser.mode;
10118
9895
  var body = parser.parseExpression(true, breakOnTokenText);
10119
9896
  return {
10120
9897
  type: "font",
@@ -10126,9 +9903,7 @@ defineFunction({
10126
9903
  body
10127
9904
  }
10128
9905
  };
10129
- },
10130
- htmlBuilder: htmlBuilder$5,
10131
- mathmlBuilder: mathmlBuilder$4
9906
+ }
10132
9907
  });
10133
9908
  var htmlBuilder$4 = (group, options) => {
10134
9909
  var style = options.style;
@@ -10308,15 +10083,10 @@ defineFunction({
10308
10083
  "\\\\brackfrac"
10309
10084
  // ditto
10310
10085
  ],
10311
- props: {
10312
- numArgs: 2,
10313
- allowedInArgument: true
10314
- },
10086
+ numArgs: 2,
10087
+ allowedInArgument: true,
10315
10088
  handler: (_ref, args) => {
10316
- var {
10317
- parser,
10318
- funcName
10319
- } = _ref;
10089
+ var parser = _ref.parser, funcName = _ref.funcName;
10320
10090
  var numer = args[0];
10321
10091
  var denom = args[1];
10322
10092
  var hasBarLine;
@@ -10377,16 +10147,10 @@ defineFunction({
10377
10147
  defineFunction({
10378
10148
  type: "infix",
10379
10149
  names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"],
10380
- props: {
10381
- numArgs: 0,
10382
- infix: true
10383
- },
10150
+ numArgs: 0,
10151
+ infix: true,
10384
10152
  handler(_ref2) {
10385
- var {
10386
- parser,
10387
- funcName,
10388
- token
10389
- } = _ref2;
10153
+ var parser = _ref2.parser, funcName = _ref2.funcName, token = _ref2.token;
10390
10154
  var replaceWith;
10391
10155
  switch (funcName) {
10392
10156
  case "\\over":
@@ -10427,15 +10191,11 @@ var delimFromValue = function delimFromValue2(delimString) {
10427
10191
  defineFunction({
10428
10192
  type: "genfrac",
10429
10193
  names: ["\\genfrac"],
10430
- props: {
10431
- numArgs: 6,
10432
- allowedInArgument: true,
10433
- argTypes: ["math", "math", "size", "text", "math", "math"]
10434
- },
10194
+ numArgs: 6,
10195
+ allowedInArgument: true,
10196
+ argTypes: ["math", "math", "size", "text", "math", "math"],
10435
10197
  handler(_ref3, args) {
10436
- var {
10437
- parser
10438
- } = _ref3;
10198
+ var parser = _ref3.parser;
10439
10199
  var numer = args[4];
10440
10200
  var denom = args[5];
10441
10201
  var leftNode = normalizeArgument(args[0]);
@@ -10478,17 +10238,13 @@ defineFunction({
10478
10238
  defineFunction({
10479
10239
  type: "infix",
10480
10240
  names: ["\\above"],
10481
- props: {
10482
- numArgs: 1,
10483
- argTypes: ["size"],
10484
- infix: true
10485
- },
10241
+ numArgs: 1,
10242
+ argTypes: ["size"],
10243
+ infix: true,
10486
10244
  handler(_ref4, args) {
10487
- var {
10488
- parser,
10489
- funcName,
10490
- token
10491
- } = _ref4;
10245
+ var parser = _ref4.parser;
10246
+ _ref4.funcName;
10247
+ var token = _ref4.token;
10492
10248
  return {
10493
10249
  type: "infix",
10494
10250
  mode: parser.mode,
@@ -10501,15 +10257,11 @@ defineFunction({
10501
10257
  defineFunction({
10502
10258
  type: "genfrac",
10503
10259
  names: ["\\\\abovefrac"],
10504
- props: {
10505
- numArgs: 3,
10506
- argTypes: ["math", "size", "math"]
10507
- },
10260
+ numArgs: 3,
10261
+ argTypes: ["math", "size", "math"],
10508
10262
  handler: (_ref5, args) => {
10509
- var {
10510
- parser,
10511
- funcName
10512
- } = _ref5;
10263
+ var parser = _ref5.parser;
10264
+ _ref5.funcName;
10513
10265
  var numer = args[0];
10514
10266
  var barSize = assertNodeType(args[1], "infix").size;
10515
10267
  if (!barSize) {
@@ -10617,14 +10369,9 @@ var mathmlBuilder$2 = (group, options) => {
10617
10369
  defineFunction({
10618
10370
  type: "horizBrace",
10619
10371
  names: ["\\overbrace", "\\underbrace", "\\overbracket", "\\underbracket"],
10620
- props: {
10621
- numArgs: 1
10622
- },
10372
+ numArgs: 1,
10623
10373
  handler(_ref, args) {
10624
- var {
10625
- parser,
10626
- funcName
10627
- } = _ref;
10374
+ var parser = _ref.parser, funcName = _ref.funcName;
10628
10375
  return {
10629
10376
  type: "horizBrace",
10630
10377
  mode: parser.mode,
@@ -10639,15 +10386,11 @@ defineFunction({
10639
10386
  defineFunction({
10640
10387
  type: "href",
10641
10388
  names: ["\\href"],
10642
- props: {
10643
- numArgs: 2,
10644
- argTypes: ["url", "original"],
10645
- allowedInText: true
10646
- },
10389
+ numArgs: 2,
10390
+ argTypes: ["url", "original"],
10391
+ allowedInText: true,
10647
10392
  handler: (_ref, args) => {
10648
- var {
10649
- parser
10650
- } = _ref;
10393
+ var parser = _ref.parser;
10651
10394
  var body = args[1];
10652
10395
  var href = assertNodeType(args[0], "url").url;
10653
10396
  if (!parser.settings.isTrusted({
@@ -10679,15 +10422,11 @@ defineFunction({
10679
10422
  defineFunction({
10680
10423
  type: "href",
10681
10424
  names: ["\\url"],
10682
- props: {
10683
- numArgs: 1,
10684
- argTypes: ["url"],
10685
- allowedInText: true
10686
- },
10425
+ numArgs: 1,
10426
+ argTypes: ["url"],
10427
+ allowedInText: true,
10687
10428
  handler: (_ref2, args) => {
10688
- var {
10689
- parser
10690
- } = _ref2;
10429
+ var parser = _ref2.parser;
10691
10430
  var href = assertNodeType(args[0], "url").url;
10692
10431
  if (!parser.settings.isTrusted({
10693
10432
  command: "\\url",
@@ -10724,16 +10463,12 @@ defineFunction({
10724
10463
  defineFunction({
10725
10464
  type: "hbox",
10726
10465
  names: ["\\hbox"],
10727
- props: {
10728
- numArgs: 1,
10729
- argTypes: ["text"],
10730
- allowedInText: true,
10731
- primitive: true
10732
- },
10466
+ numArgs: 1,
10467
+ argTypes: ["text"],
10468
+ allowedInText: true,
10469
+ primitive: true,
10733
10470
  handler(_ref, args) {
10734
- var {
10735
- parser
10736
- } = _ref;
10471
+ var parser = _ref.parser;
10737
10472
  return {
10738
10473
  type: "hbox",
10739
10474
  mode: parser.mode,
@@ -10751,17 +10486,12 @@ defineFunction({
10751
10486
  defineFunction({
10752
10487
  type: "html",
10753
10488
  names: ["\\htmlClass", "\\htmlId", "\\htmlStyle", "\\htmlData"],
10754
- props: {
10755
- numArgs: 2,
10756
- argTypes: ["raw", "original"],
10757
- allowedInText: true
10758
- },
10489
+ numArgs: 2,
10490
+ argTypes: ["raw", "original"],
10491
+ allowedInText: true,
10759
10492
  handler: (_ref, args) => {
10760
- var {
10761
- parser,
10762
- funcName,
10763
- token
10764
- } = _ref;
10493
+ var parser = _ref.parser, funcName = _ref.funcName;
10494
+ _ref.token;
10765
10495
  var value = assertNodeType(args[0], "raw").string;
10766
10496
  var body = args[1];
10767
10497
  if (parser.settings.strict) {
@@ -10792,9 +10522,23 @@ defineFunction({
10792
10522
  };
10793
10523
  break;
10794
10524
  case "\\htmlData": {
10795
- var data = value.split(",");
10796
- for (var i2 = 0; i2 < data.length; i2++) {
10797
- var item = data[i2];
10525
+ var ESCAPED_COMMA = "{,}";
10526
+ var data = [];
10527
+ var current = "";
10528
+ for (var i2 = 0; i2 < value.length; i2++) {
10529
+ if (value.startsWith(ESCAPED_COMMA, i2)) {
10530
+ current += ",";
10531
+ i2 += ESCAPED_COMMA.length - 1;
10532
+ } else if (value[i2] === ",") {
10533
+ data.push(current);
10534
+ current = "";
10535
+ } else {
10536
+ current += value[i2];
10537
+ }
10538
+ }
10539
+ data.push(current);
10540
+ for (var _i6 = 0; _i6 < data.length; _i6++) {
10541
+ var item = data[_i6];
10798
10542
  var firstEquals = item.indexOf("=");
10799
10543
  if (firstEquals < 0) {
10800
10544
  throw new ParseError("\\htmlData key/value '" + item + "' missing equals sign");
@@ -10829,9 +10573,11 @@ defineFunction({
10829
10573
  classes.push(...group.attributes.class.trim().split(/\s+/));
10830
10574
  }
10831
10575
  var span = makeSpan(classes, elements, options);
10832
- for (var attr in group.attributes) {
10833
- if (attr !== "class" && group.attributes.hasOwnProperty(attr)) {
10834
- span.setAttribute(attr, group.attributes[attr]);
10576
+ for (var _ref3 of Object.entries(group.attributes)) {
10577
+ var attr = _ref3[0];
10578
+ var value = _ref3[1];
10579
+ if (attr !== "class") {
10580
+ span.setAttribute(attr, value);
10835
10581
  }
10836
10582
  }
10837
10583
  return span;
@@ -10843,15 +10589,11 @@ defineFunction({
10843
10589
  defineFunction({
10844
10590
  type: "htmlmathml",
10845
10591
  names: ["\\html@mathml"],
10846
- props: {
10847
- numArgs: 2,
10848
- allowedInArgument: true,
10849
- allowedInText: true
10850
- },
10592
+ numArgs: 2,
10593
+ allowedInArgument: true,
10594
+ allowedInText: true,
10851
10595
  handler: (_ref, args) => {
10852
- var {
10853
- parser
10854
- } = _ref;
10596
+ var parser = _ref.parser;
10855
10597
  return {
10856
10598
  type: "htmlmathml",
10857
10599
  mode: parser.mode,
@@ -10892,16 +10634,12 @@ var sizeData = function sizeData2(str) {
10892
10634
  defineFunction({
10893
10635
  type: "includegraphics",
10894
10636
  names: ["\\includegraphics"],
10895
- props: {
10896
- numArgs: 1,
10897
- numOptionalArgs: 1,
10898
- argTypes: ["raw", "url"],
10899
- allowedInText: false
10900
- },
10637
+ numArgs: 1,
10638
+ numOptionalArgs: 1,
10639
+ argTypes: ["raw", "url"],
10640
+ allowedInText: false,
10901
10641
  handler: (_ref, args, optArgs) => {
10902
- var {
10903
- parser
10904
- } = _ref;
10642
+ var parser = _ref.parser;
10905
10643
  var width = {
10906
10644
  number: 0,
10907
10645
  unit: "em"
@@ -11008,17 +10746,12 @@ defineFunction({
11008
10746
  defineFunction({
11009
10747
  type: "kern",
11010
10748
  names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"],
11011
- props: {
11012
- numArgs: 1,
11013
- argTypes: ["size"],
11014
- primitive: true,
11015
- allowedInText: true
11016
- },
10749
+ numArgs: 1,
10750
+ argTypes: ["size"],
10751
+ primitive: true,
10752
+ allowedInText: true,
11017
10753
  handler(_ref, args) {
11018
- var {
11019
- parser,
11020
- funcName
11021
- } = _ref;
10754
+ var parser = _ref.parser, funcName = _ref.funcName;
11022
10755
  var size = assertNodeType(args[0], "size");
11023
10756
  if (parser.settings.strict) {
11024
10757
  var mathFunction = funcName[1] === "m";
@@ -11053,15 +10786,10 @@ defineFunction({
11053
10786
  defineFunction({
11054
10787
  type: "lap",
11055
10788
  names: ["\\mathllap", "\\mathrlap", "\\mathclap"],
11056
- props: {
11057
- numArgs: 1,
11058
- allowedInText: true
11059
- },
10789
+ numArgs: 1,
10790
+ allowedInText: true,
11060
10791
  handler: (_ref, args) => {
11061
- var {
11062
- parser,
11063
- funcName
11064
- } = _ref;
10792
+ var parser = _ref.parser, funcName = _ref.funcName;
11065
10793
  var body = args[0];
11066
10794
  return {
11067
10795
  type: "lap",
@@ -11074,20 +10802,20 @@ defineFunction({
11074
10802
  var inner2;
11075
10803
  if (group.alignment === "clap") {
11076
10804
  inner2 = makeSpan([], [buildGroup$1(group.body, options)]);
11077
- inner2 = makeSpan(["inner"], [inner2], options);
10805
+ inner2 = makeSpan(["katex-inner"], [inner2], options);
11078
10806
  } else {
11079
- inner2 = makeSpan(["inner"], [buildGroup$1(group.body, options)]);
10807
+ inner2 = makeSpan(["katex-inner"], [buildGroup$1(group.body, options)]);
11080
10808
  }
11081
- var fix = makeSpan(["fix"], []);
10809
+ var fix = makeSpan(["katex-fix"], []);
11082
10810
  var node = makeSpan([group.alignment], [inner2, fix], options);
11083
- var strut = makeSpan(["strut"]);
10811
+ var strut = makeSpan(["katex-strut"]);
11084
10812
  strut.style.height = makeEm(node.height + node.depth);
11085
10813
  if (node.depth) {
11086
10814
  strut.style.verticalAlign = makeEm(-node.depth);
11087
10815
  }
11088
10816
  node.children.unshift(strut);
11089
- node = makeSpan(["thinbox"], [node], options);
11090
- return makeSpan(["mord", "vbox"], [node], options);
10817
+ node = makeSpan(["katex-thinbox"], [node], options);
10818
+ return makeSpan(["mord", "katex-vbox"], [node], options);
11091
10819
  },
11092
10820
  mathmlBuilder: (group, options) => {
11093
10821
  var node = new MathNode("mpadded", [buildGroup2(group.body, options)]);
@@ -11102,16 +10830,11 @@ defineFunction({
11102
10830
  defineFunction({
11103
10831
  type: "styling",
11104
10832
  names: ["\\(", "$"],
11105
- props: {
11106
- numArgs: 0,
11107
- allowedInText: true,
11108
- allowedInMath: false
11109
- },
10833
+ numArgs: 0,
10834
+ allowedInText: true,
10835
+ allowedInMath: false,
11110
10836
  handler(_ref, args) {
11111
- var {
11112
- funcName,
11113
- parser
11114
- } = _ref;
10837
+ var funcName = _ref.funcName, parser = _ref.parser;
11115
10838
  var outerMode = parser.mode;
11116
10839
  parser.switchMode("math");
11117
10840
  var close2 = funcName === "\\(" ? "\\)" : "$";
@@ -11131,11 +10854,9 @@ defineFunction({
11131
10854
  type: "text",
11132
10855
  // Doesn't matter what this is.
11133
10856
  names: ["\\)", "\\]"],
11134
- props: {
11135
- numArgs: 0,
11136
- allowedInText: true,
11137
- allowedInMath: false
11138
- },
10857
+ numArgs: 0,
10858
+ allowedInText: true,
10859
+ allowedInMath: false,
11139
10860
  handler(context, args) {
11140
10861
  throw new ParseError("Mismatched " + context.funcName);
11141
10862
  }
@@ -11157,14 +10878,10 @@ var chooseMathStyle = (group, options) => {
11157
10878
  defineFunction({
11158
10879
  type: "mathchoice",
11159
10880
  names: ["\\mathchoice"],
11160
- props: {
11161
- numArgs: 4,
11162
- primitive: true
11163
- },
10881
+ numArgs: 4,
10882
+ primitive: true,
11164
10883
  handler: (_ref, args) => {
11165
- var {
11166
- parser
11167
- } = _ref;
10884
+ var parser = _ref.parser;
11168
10885
  return {
11169
10886
  type: "mathchoice",
11170
10887
  mode: parser.mode,
@@ -11402,14 +11119,9 @@ var singleCharBigOps = {
11402
11119
  defineFunction({
11403
11120
  type: "op",
11404
11121
  names: ["\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint", "\u220F", "\u2210", "\u2211", "\u22C0", "\u22C1", "\u22C2", "\u22C3", "\u2A00", "\u2A01", "\u2A02", "\u2A04", "\u2A06"],
11405
- props: {
11406
- numArgs: 0
11407
- },
11122
+ numArgs: 0,
11408
11123
  handler: (_ref, args) => {
11409
- var {
11410
- parser,
11411
- funcName
11412
- } = _ref;
11124
+ var parser = _ref.parser, funcName = _ref.funcName;
11413
11125
  var fName = funcName;
11414
11126
  if (fName.length === 1) {
11415
11127
  fName = singleCharBigOps[fName];
@@ -11429,14 +11141,10 @@ defineFunction({
11429
11141
  defineFunction({
11430
11142
  type: "op",
11431
11143
  names: ["\\mathop"],
11432
- props: {
11433
- numArgs: 1,
11434
- primitive: true
11435
- },
11144
+ numArgs: 1,
11145
+ primitive: true,
11436
11146
  handler: (_ref2, args) => {
11437
- var {
11438
- parser
11439
- } = _ref2;
11147
+ var parser = _ref2.parser;
11440
11148
  var body = args[0];
11441
11149
  return {
11442
11150
  type: "op",
@@ -11446,9 +11154,7 @@ defineFunction({
11446
11154
  symbol: false,
11447
11155
  body: ordargument(body)
11448
11156
  };
11449
- },
11450
- htmlBuilder: htmlBuilder$2,
11451
- mathmlBuilder: mathmlBuilder$1
11157
+ }
11452
11158
  });
11453
11159
  var singleCharIntegrals = {
11454
11160
  "\u222B": "\\int",
@@ -11461,14 +11167,9 @@ var singleCharIntegrals = {
11461
11167
  defineFunction({
11462
11168
  type: "op",
11463
11169
  names: ["\\arcsin", "\\arccos", "\\arctan", "\\arctg", "\\arcctg", "\\arg", "\\ch", "\\cos", "\\cosec", "\\cosh", "\\cot", "\\cotg", "\\coth", "\\csc", "\\ctg", "\\cth", "\\deg", "\\dim", "\\exp", "\\hom", "\\ker", "\\lg", "\\ln", "\\log", "\\sec", "\\sin", "\\sinh", "\\sh", "\\tan", "\\tanh", "\\tg", "\\th"],
11464
- props: {
11465
- numArgs: 0
11466
- },
11170
+ numArgs: 0,
11467
11171
  handler(_ref3) {
11468
- var {
11469
- parser,
11470
- funcName
11471
- } = _ref3;
11172
+ var parser = _ref3.parser, funcName = _ref3.funcName;
11472
11173
  return {
11473
11174
  type: "op",
11474
11175
  mode: parser.mode,
@@ -11477,21 +11178,14 @@ defineFunction({
11477
11178
  symbol: false,
11478
11179
  name: funcName
11479
11180
  };
11480
- },
11481
- htmlBuilder: htmlBuilder$2,
11482
- mathmlBuilder: mathmlBuilder$1
11181
+ }
11483
11182
  });
11484
11183
  defineFunction({
11485
11184
  type: "op",
11486
11185
  names: ["\\det", "\\gcd", "\\inf", "\\lim", "\\max", "\\min", "\\Pr", "\\sup"],
11487
- props: {
11488
- numArgs: 0
11489
- },
11186
+ numArgs: 0,
11490
11187
  handler(_ref4) {
11491
- var {
11492
- parser,
11493
- funcName
11494
- } = _ref4;
11188
+ var parser = _ref4.parser, funcName = _ref4.funcName;
11495
11189
  return {
11496
11190
  type: "op",
11497
11191
  mode: parser.mode,
@@ -11500,22 +11194,15 @@ defineFunction({
11500
11194
  symbol: false,
11501
11195
  name: funcName
11502
11196
  };
11503
- },
11504
- htmlBuilder: htmlBuilder$2,
11505
- mathmlBuilder: mathmlBuilder$1
11197
+ }
11506
11198
  });
11507
11199
  defineFunction({
11508
11200
  type: "op",
11509
11201
  names: ["\\int", "\\iint", "\\iiint", "\\oint", "\\oiint", "\\oiiint", "\u222B", "\u222C", "\u222D", "\u222E", "\u222F", "\u2230"],
11510
- props: {
11511
- numArgs: 0,
11512
- allowedInArgument: true
11513
- },
11202
+ numArgs: 0,
11203
+ allowedInArgument: true,
11514
11204
  handler(_ref5) {
11515
- var {
11516
- parser,
11517
- funcName
11518
- } = _ref5;
11205
+ var parser = _ref5.parser, funcName = _ref5.funcName;
11519
11206
  var fName = funcName;
11520
11207
  if (fName.length === 1) {
11521
11208
  fName = singleCharIntegrals[fName];
@@ -11528,9 +11215,7 @@ defineFunction({
11528
11215
  symbol: true,
11529
11216
  name: fName
11530
11217
  };
11531
- },
11532
- htmlBuilder: htmlBuilder$2,
11533
- mathmlBuilder: mathmlBuilder$1
11218
+ }
11534
11219
  });
11535
11220
  var htmlBuilder$1 = (grp, options) => {
11536
11221
  var supGroup;
@@ -11622,14 +11307,9 @@ var mathmlBuilder2 = (group, options) => {
11622
11307
  defineFunction({
11623
11308
  type: "operatorname",
11624
11309
  names: ["\\operatorname@", "\\operatornamewithlimits"],
11625
- props: {
11626
- numArgs: 1
11627
- },
11310
+ numArgs: 1,
11628
11311
  handler: (_ref, args) => {
11629
- var {
11630
- parser,
11631
- funcName
11632
- } = _ref;
11312
+ var parser = _ref.parser, funcName = _ref.funcName;
11633
11313
  var body = args[0];
11634
11314
  return {
11635
11315
  type: "operatorname",
@@ -11659,13 +11339,9 @@ defineFunctionBuilders({
11659
11339
  defineFunction({
11660
11340
  type: "overline",
11661
11341
  names: ["\\overline"],
11662
- props: {
11663
- numArgs: 1
11664
- },
11342
+ numArgs: 1,
11665
11343
  handler(_ref, args) {
11666
- var {
11667
- parser
11668
- } = _ref;
11344
+ var parser = _ref.parser;
11669
11345
  var body = args[0];
11670
11346
  return {
11671
11347
  type: "overline",
@@ -11693,7 +11369,7 @@ defineFunction({
11693
11369
  size: defaultRuleThickness
11694
11370
  }]
11695
11371
  });
11696
- return makeSpan(["mord", "overline"], [vlist], options);
11372
+ return makeSpan(["mord", "katex-overline"], [vlist], options);
11697
11373
  },
11698
11374
  mathmlBuilder(group, options) {
11699
11375
  var operator = new MathNode("mo", [new TextNode("\u203E")]);
@@ -11706,14 +11382,10 @@ defineFunction({
11706
11382
  defineFunction({
11707
11383
  type: "phantom",
11708
11384
  names: ["\\phantom"],
11709
- props: {
11710
- numArgs: 1,
11711
- allowedInText: true
11712
- },
11385
+ numArgs: 1,
11386
+ allowedInText: true,
11713
11387
  handler: (_ref, args) => {
11714
- var {
11715
- parser
11716
- } = _ref;
11388
+ var parser = _ref.parser;
11717
11389
  var body = args[0];
11718
11390
  return {
11719
11391
  type: "phantom",
@@ -11734,14 +11406,10 @@ defineMacro("\\hphantom", "\\smash{\\phantom{#1}}");
11734
11406
  defineFunction({
11735
11407
  type: "vphantom",
11736
11408
  names: ["\\vphantom"],
11737
- props: {
11738
- numArgs: 1,
11739
- allowedInText: true
11740
- },
11409
+ numArgs: 1,
11410
+ allowedInText: true,
11741
11411
  handler: (_ref2, args) => {
11742
- var {
11743
- parser
11744
- } = _ref2;
11412
+ var parser = _ref2.parser;
11745
11413
  var body = args[0];
11746
11414
  return {
11747
11415
  type: "vphantom",
@@ -11750,8 +11418,8 @@ defineFunction({
11750
11418
  };
11751
11419
  },
11752
11420
  htmlBuilder: (group, options) => {
11753
- var inner2 = makeSpan(["inner"], [buildGroup$1(group.body, options.withPhantom())]);
11754
- var fix = makeSpan(["fix"], []);
11421
+ var inner2 = makeSpan(["katex-inner"], [buildGroup$1(group.body, options.withPhantom())]);
11422
+ var fix = makeSpan(["katex-fix"], []);
11755
11423
  return makeSpan(["mord", "rlap"], [inner2, fix], options);
11756
11424
  },
11757
11425
  mathmlBuilder: (group, options) => {
@@ -11765,15 +11433,11 @@ defineFunction({
11765
11433
  defineFunction({
11766
11434
  type: "raisebox",
11767
11435
  names: ["\\raisebox"],
11768
- props: {
11769
- numArgs: 2,
11770
- argTypes: ["size", "hbox"],
11771
- allowedInText: true
11772
- },
11436
+ numArgs: 2,
11437
+ argTypes: ["size", "hbox"],
11438
+ allowedInText: true,
11773
11439
  handler(_ref, args) {
11774
- var {
11775
- parser
11776
- } = _ref;
11440
+ var parser = _ref.parser;
11777
11441
  var amount = assertNodeType(args[0], "size").value;
11778
11442
  var body = args[1];
11779
11443
  return {
@@ -11802,18 +11466,43 @@ defineFunction({
11802
11466
  return node;
11803
11467
  }
11804
11468
  });
11469
+ var handler = (_ref, args) => {
11470
+ var parser = _ref.parser;
11471
+ return {
11472
+ type: "reflectbox",
11473
+ mode: parser.mode,
11474
+ body: args[0]
11475
+ };
11476
+ };
11477
+ defineFunction({
11478
+ type: "reflectbox",
11479
+ names: ["\\reflectbox"],
11480
+ numArgs: 1,
11481
+ argTypes: ["hbox"],
11482
+ allowedInText: true,
11483
+ handler,
11484
+ htmlBuilder(group, options) {
11485
+ return makeSpan(["mord", "reflectbox"], [buildGroup$1(group.body, options)], options);
11486
+ },
11487
+ mathmlBuilder(group, options) {
11488
+ return buildGroup2(group.body, options);
11489
+ }
11490
+ });
11491
+ defineFunction({
11492
+ type: "reflectbox",
11493
+ names: ["\\mathreflectbox"],
11494
+ numArgs: 1,
11495
+ argTypes: ["math"],
11496
+ handler
11497
+ });
11805
11498
  defineFunction({
11806
11499
  type: "internal",
11807
11500
  names: ["\\relax"],
11808
- props: {
11809
- numArgs: 0,
11810
- allowedInText: true,
11811
- allowedInArgument: true
11812
- },
11501
+ numArgs: 0,
11502
+ allowedInText: true,
11503
+ allowedInArgument: true,
11813
11504
  handler(_ref) {
11814
- var {
11815
- parser
11816
- } = _ref;
11505
+ var parser = _ref.parser;
11817
11506
  return {
11818
11507
  type: "internal",
11819
11508
  mode: parser.mode
@@ -11823,17 +11512,13 @@ defineFunction({
11823
11512
  defineFunction({
11824
11513
  type: "rule",
11825
11514
  names: ["\\rule"],
11826
- props: {
11827
- numArgs: 2,
11828
- numOptionalArgs: 1,
11829
- allowedInText: true,
11830
- allowedInMath: true,
11831
- argTypes: ["size", "size", "size"]
11832
- },
11515
+ numArgs: 2,
11516
+ numOptionalArgs: 1,
11517
+ allowedInText: true,
11518
+ allowedInMath: true,
11519
+ argTypes: ["size", "size", "size"],
11833
11520
  handler(_ref, args, optArgs) {
11834
- var {
11835
- parser
11836
- } = _ref;
11521
+ var parser = _ref.parser;
11837
11522
  var shift = optArgs[0];
11838
11523
  var width = assertNodeType(args[0], "size");
11839
11524
  var height = assertNodeType(args[1], "size");
@@ -11846,7 +11531,7 @@ defineFunction({
11846
11531
  };
11847
11532
  },
11848
11533
  htmlBuilder(group, options) {
11849
- var rule = makeSpan(["mord", "rule"], [], options);
11534
+ var rule = makeSpan(["mord", "katex-rule"], [], options);
11850
11535
  var width = calculateSize(group.width, options);
11851
11536
  var height = calculateSize(group.height, options);
11852
11537
  var shift = group.shift ? calculateSize(group.shift, options) : 0;
@@ -11883,7 +11568,7 @@ function sizingGroup(value, options, baseOptions) {
11883
11568
  var inner2 = buildExpression$1(value, options, false);
11884
11569
  var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier;
11885
11570
  for (var i2 = 0; i2 < inner2.length; i2++) {
11886
- var pos = inner2[i2].classes.indexOf("sizing");
11571
+ var pos = inner2[i2].classes.indexOf("katex-sizing");
11887
11572
  if (pos < 0) {
11888
11573
  Array.prototype.push.apply(inner2[i2].classes, options.sizingClasses(baseOptions));
11889
11574
  } else if (inner2[i2].classes[pos + 1] === "reset-size" + options.size) {
@@ -11902,16 +11587,10 @@ var htmlBuilder2 = (group, options) => {
11902
11587
  defineFunction({
11903
11588
  type: "sizing",
11904
11589
  names: sizeFuncs,
11905
- props: {
11906
- numArgs: 0,
11907
- allowedInText: true
11908
- },
11590
+ numArgs: 0,
11591
+ allowedInText: true,
11909
11592
  handler: (_ref, args) => {
11910
- var {
11911
- breakOnTokenText,
11912
- funcName,
11913
- parser
11914
- } = _ref;
11593
+ var breakOnTokenText = _ref.breakOnTokenText, funcName = _ref.funcName, parser = _ref.parser;
11915
11594
  var body = parser.parseExpression(false, breakOnTokenText);
11916
11595
  return {
11917
11596
  type: "sizing",
@@ -11933,15 +11612,11 @@ defineFunction({
11933
11612
  defineFunction({
11934
11613
  type: "smash",
11935
11614
  names: ["\\smash"],
11936
- props: {
11937
- numArgs: 1,
11938
- numOptionalArgs: 1,
11939
- allowedInText: true
11940
- },
11615
+ numArgs: 1,
11616
+ numOptionalArgs: 1,
11617
+ allowedInText: true,
11941
11618
  handler: (_ref, args, optArgs) => {
11942
- var {
11943
- parser
11944
- } = _ref;
11619
+ var parser = _ref.parser;
11945
11620
  var smashHeight = false;
11946
11621
  var smashDepth = false;
11947
11622
  var tbArg = optArgs[0] && assertNodeType(optArgs[0], "ordgroup");
@@ -11985,7 +11660,7 @@ defineFunction({
11985
11660
  node.depth = 0;
11986
11661
  }
11987
11662
  if (group.smashHeight && group.smashDepth) {
11988
- return makeSpan(["mord", "smash"], [node], options);
11663
+ return makeSpan(["mord", "katex-smash"], [node], options);
11989
11664
  }
11990
11665
  if (node.children) {
11991
11666
  for (var i2 = 0; i2 < node.children.length; i2++) {
@@ -12020,14 +11695,10 @@ defineFunction({
12020
11695
  defineFunction({
12021
11696
  type: "sqrt",
12022
11697
  names: ["\\sqrt"],
12023
- props: {
12024
- numArgs: 1,
12025
- numOptionalArgs: 1
12026
- },
11698
+ numArgs: 1,
11699
+ numOptionalArgs: 1,
12027
11700
  handler(_ref, args, optArgs) {
12028
- var {
12029
- parser
12030
- } = _ref;
11701
+ var parser = _ref.parser;
12031
11702
  var index = optArgs[0];
12032
11703
  var body = args[0];
12033
11704
  return {
@@ -12051,11 +11722,7 @@ defineFunction({
12051
11722
  }
12052
11723
  var lineClearance = theta + phi / 4;
12053
11724
  var minDelimiterHeight = inner2.height + inner2.depth + lineClearance + theta;
12054
- var {
12055
- span: img,
12056
- ruleWidth,
12057
- advanceWidth
12058
- } = makeSqrtImage(minDelimiterHeight, options);
11725
+ var _makeSqrtImage = makeSqrtImage(minDelimiterHeight, options), img = _makeSqrtImage.span, ruleWidth = _makeSqrtImage.ruleWidth, advanceWidth = _makeSqrtImage.advanceWidth;
12059
11726
  var delimDepth = img.height - ruleWidth;
12060
11727
  if (delimDepth > inner2.height + inner2.depth + lineClearance) {
12061
11728
  lineClearance = (lineClearance + delimDepth - inner2.height - inner2.depth) / 2;
@@ -12093,15 +11760,12 @@ defineFunction({
12093
11760
  elem: rootm
12094
11761
  }]
12095
11762
  });
12096
- var rootVListWrap = makeSpan(["root"], [rootVList]);
11763
+ var rootVListWrap = makeSpan(["katex-root"], [rootVList]);
12097
11764
  return makeSpan(["mord", "sqrt"], [rootVListWrap, body], options);
12098
11765
  }
12099
11766
  },
12100
11767
  mathmlBuilder(group, options) {
12101
- var {
12102
- body,
12103
- index
12104
- } = group;
11768
+ var body = group.body, index = group.index;
12105
11769
  return index ? new MathNode("mroot", [buildGroup2(body, options), buildGroup2(index, options)]) : new MathNode("msqrt", [buildGroup2(body, options)]);
12106
11770
  }
12107
11771
  });
@@ -12117,17 +11781,11 @@ function isStyleStr(s) {
12117
11781
  defineFunction({
12118
11782
  type: "styling",
12119
11783
  names: ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"],
12120
- props: {
12121
- numArgs: 0,
12122
- allowedInText: true,
12123
- primitive: true
12124
- },
11784
+ numArgs: 0,
11785
+ allowedInText: true,
11786
+ primitive: true,
12125
11787
  handler(_ref, args) {
12126
- var {
12127
- breakOnTokenText,
12128
- funcName,
12129
- parser
12130
- } = _ref;
11788
+ var breakOnTokenText = _ref.breakOnTokenText, funcName = _ref.funcName, parser = _ref.parser;
12131
11789
  var body = parser.parseExpression(true, breakOnTokenText);
12132
11790
  var style = funcName.slice(1, funcName.length - 5);
12133
11791
  if (!isStyleStr(style)) {
@@ -12196,11 +11854,7 @@ defineFunctionBuilders({
12196
11854
  if (builderDelegate) {
12197
11855
  return builderDelegate(group, options);
12198
11856
  }
12199
- var {
12200
- base: valueBase,
12201
- sup: valueSup,
12202
- sub: valueSub
12203
- } = group;
11857
+ var valueBase = group.base, valueSup = group.sup, valueSub = group.sub;
12204
11858
  var base2 = buildGroup$1(valueBase, options);
12205
11859
  var supm;
12206
11860
  var subm;
@@ -12383,7 +12037,7 @@ var defaultVariant = {
12383
12037
  defineFunctionBuilders({
12384
12038
  type: "mathord",
12385
12039
  htmlBuilder(group, options) {
12386
- return makeOrd(group, options, "mathord");
12040
+ return makeOrd(group, options);
12387
12041
  },
12388
12042
  mathmlBuilder(group, options) {
12389
12043
  var node = new MathNode("mi", [makeText(group.text, group.mode, options)]);
@@ -12397,7 +12051,7 @@ defineFunctionBuilders({
12397
12051
  defineFunctionBuilders({
12398
12052
  type: "textord",
12399
12053
  htmlBuilder(group, options) {
12400
- return makeOrd(group, options, "textord");
12054
+ return makeOrd(group, options);
12401
12055
  },
12402
12056
  mathmlBuilder(group, options) {
12403
12057
  var text2 = makeText(group.text, group.mode, options);
@@ -12418,44 +12072,37 @@ defineFunctionBuilders({
12418
12072
  return node;
12419
12073
  }
12420
12074
  });
12421
- var cssSpace = {
12422
- "\\nobreak": "nobreak",
12423
- "\\allowbreak": "allowbreak"
12424
- };
12425
- var regularSpace = {
12426
- " ": {},
12427
- "\\ ": {},
12428
- "~": {
12429
- className: "nobreak"
12430
- },
12431
- "\\space": {},
12432
- "\\nobreakspace": {
12433
- className: "nobreak"
12434
- }
12435
- };
12075
+ var cssSpace = /* @__PURE__ */ new Map([["\\nobreak", "nobreak"], ["\\allowbreak", "allowbreak"]]);
12076
+ var regularSpace = /* @__PURE__ */ new Map([[" ", {}], ["\\ ", {}], ["~", {
12077
+ className: "nobreak"
12078
+ }], ["\\space", {}], ["\\nobreakspace", {
12079
+ className: "nobreak"
12080
+ }]]);
12436
12081
  defineFunctionBuilders({
12437
12082
  type: "spacing",
12438
12083
  htmlBuilder(group, options) {
12439
- if (regularSpace.hasOwnProperty(group.text)) {
12440
- var className = regularSpace[group.text].className || "";
12084
+ var regularSpaceItem = regularSpace.get(group.text);
12085
+ var cssSpaceClass = cssSpace.get(group.text);
12086
+ if (regularSpaceItem) {
12087
+ var className = regularSpaceItem.className || "";
12441
12088
  if (group.mode === "text") {
12442
- var ord = makeOrd(group, options, "textord");
12089
+ var ord = makeOrd(group, options);
12443
12090
  ord.classes.push(className);
12444
12091
  return ord;
12445
12092
  } else {
12446
12093
  return makeSpan(["mspace", className], [mathsym(group.text, group.mode, options)], options);
12447
12094
  }
12448
- } else if (cssSpace.hasOwnProperty(group.text)) {
12449
- return makeSpan(["mspace", cssSpace[group.text]], [], options);
12095
+ } else if (cssSpaceClass) {
12096
+ return makeSpan(["mspace", cssSpaceClass], [], options);
12450
12097
  } else {
12451
12098
  throw new ParseError('Unknown type of space "' + group.text + '"');
12452
12099
  }
12453
12100
  },
12454
12101
  mathmlBuilder(group, options) {
12455
12102
  var node;
12456
- if (regularSpace.hasOwnProperty(group.text)) {
12103
+ if (regularSpace.has(group.text)) {
12457
12104
  node = new MathNode("mtext", [new TextNode("\xA0")]);
12458
- } else if (cssSpace.hasOwnProperty(group.text)) {
12105
+ } else if (cssSpace.has(group.text)) {
12459
12106
  return new MathNode("mspace");
12460
12107
  } else {
12461
12108
  throw new ParseError('Unknown type of space "' + group.text + '"');
@@ -12521,17 +12168,12 @@ defineFunction({
12521
12168
  "\\textup",
12522
12169
  "\\emph"
12523
12170
  ],
12524
- props: {
12525
- numArgs: 1,
12526
- argTypes: ["text"],
12527
- allowedInArgument: true,
12528
- allowedInText: true
12529
- },
12171
+ numArgs: 1,
12172
+ argTypes: ["text"],
12173
+ allowedInArgument: true,
12174
+ allowedInText: true,
12530
12175
  handler(_ref, args) {
12531
- var {
12532
- parser,
12533
- funcName
12534
- } = _ref;
12176
+ var parser = _ref.parser, funcName = _ref.funcName;
12535
12177
  var body = args[0];
12536
12178
  return {
12537
12179
  type: "text",
@@ -12553,14 +12195,10 @@ defineFunction({
12553
12195
  defineFunction({
12554
12196
  type: "underline",
12555
12197
  names: ["\\underline"],
12556
- props: {
12557
- numArgs: 1,
12558
- allowedInText: true
12559
- },
12198
+ numArgs: 1,
12199
+ allowedInText: true,
12560
12200
  handler(_ref, args) {
12561
- var {
12562
- parser
12563
- } = _ref;
12201
+ var parser = _ref.parser;
12564
12202
  return {
12565
12203
  type: "underline",
12566
12204
  mode: parser.mode,
@@ -12588,7 +12226,7 @@ defineFunction({
12588
12226
  elem: innerGroup
12589
12227
  }]
12590
12228
  });
12591
- return makeSpan(["mord", "underline"], [vlist], options);
12229
+ return makeSpan(["mord", "katex-underline"], [vlist], options);
12592
12230
  },
12593
12231
  mathmlBuilder(group, options) {
12594
12232
  var operator = new MathNode("mo", [new TextNode("\u203E")]);
@@ -12601,16 +12239,12 @@ defineFunction({
12601
12239
  defineFunction({
12602
12240
  type: "vcenter",
12603
12241
  names: ["\\vcenter"],
12604
- props: {
12605
- numArgs: 1,
12606
- argTypes: ["original"],
12607
- // In LaTeX, \vcenter can act only on a box.
12608
- allowedInText: false
12609
- },
12242
+ numArgs: 1,
12243
+ argTypes: ["original"],
12244
+ // In LaTeX, \vcenter can act only on a box.
12245
+ allowedInText: false,
12610
12246
  handler(_ref, args) {
12611
- var {
12612
- parser
12613
- } = _ref;
12247
+ var parser = _ref.parser;
12614
12248
  return {
12615
12249
  type: "vcenter",
12616
12250
  mode: parser.mode,
@@ -12638,10 +12272,8 @@ defineFunction({
12638
12272
  defineFunction({
12639
12273
  type: "verb",
12640
12274
  names: ["\\verb"],
12641
- props: {
12642
- numArgs: 0,
12643
- allowedInText: true
12644
- },
12275
+ numArgs: 0,
12276
+ allowedInText: true,
12645
12277
  handler(context, args, optArgs) {
12646
12278
  throw new ParseError("\\verb ended by end of line instead of matching delimiter");
12647
12279
  },
@@ -12764,13 +12396,11 @@ var Namespace = class {
12764
12396
  throw new ParseError("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");
12765
12397
  }
12766
12398
  var undefs = this.undefStack.pop();
12767
- for (var undef in undefs) {
12768
- if (undefs.hasOwnProperty(undef)) {
12769
- if (undefs[undef] == null) {
12770
- delete this.current[undef];
12771
- } else {
12772
- this.current[undef] = undefs[undef];
12773
- }
12399
+ for (var key of Object.keys(undefs)) {
12400
+ if (undefs[key] === void 0) {
12401
+ delete this.current[key];
12402
+ } else {
12403
+ this.current[key] = undefs[key];
12774
12404
  }
12775
12405
  }
12776
12406
  }
@@ -12788,7 +12418,7 @@ var Namespace = class {
12788
12418
  * `get(name) != null`.
12789
12419
  */
12790
12420
  has(name) {
12791
- return this.current.hasOwnProperty(name) || this.builtins.hasOwnProperty(name);
12421
+ return Object.prototype.hasOwnProperty.call(this.current, name) || Object.prototype.hasOwnProperty.call(this.builtins, name);
12792
12422
  }
12793
12423
  /**
12794
12424
  * Get the current value of a name, or `undefined` if there is no value.
@@ -12799,10 +12429,12 @@ var Namespace = class {
12799
12429
  * `if (namespace.has(...))`.
12800
12430
  */
12801
12431
  get(name) {
12802
- if (this.current.hasOwnProperty(name)) {
12432
+ if (Object.prototype.hasOwnProperty.call(this.current, name)) {
12803
12433
  return this.current[name];
12804
- } else {
12434
+ } else if (Object.prototype.hasOwnProperty.call(this.builtins, name)) {
12805
12435
  return this.builtins[name];
12436
+ } else {
12437
+ return void 0;
12806
12438
  }
12807
12439
  }
12808
12440
  /**
@@ -12825,8 +12457,8 @@ var Namespace = class {
12825
12457
  }
12826
12458
  } else {
12827
12459
  var top = this.undefStack[this.undefStack.length - 1];
12828
- if (top && !top.hasOwnProperty(name)) {
12829
- top[name] = this.current[name];
12460
+ if (top && !Object.prototype.hasOwnProperty.call(top, name)) {
12461
+ top[name] = Object.prototype.hasOwnProperty.call(this.current, name) ? this.current[name] : void 0;
12830
12462
  }
12831
12463
  }
12832
12464
  if (value == null) {
@@ -13318,6 +12950,8 @@ defineMacro("\u27E6", "\\llbracket");
13318
12950
  defineMacro("\u27E7", "\\rrbracket");
13319
12951
  defineMacro("\\lBrace", "\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");
13320
12952
  defineMacro("\\rBrace", "\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");
12953
+ defineMacro("\u21A4", "\\mapsfrom");
12954
+ defineMacro("\\mapsfrom", "\\html@mathml{\\mathrel{\\mathreflectbox{\\mapsto}}}{\\mathrel{\\char`\u21A4}}");
13321
12955
  defineMacro("\u2983", "\\lBrace");
13322
12956
  defineMacro("\u2984", "\\rBrace");
13323
12957
  defineMacro("\\minuso", "\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");
@@ -13601,16 +13235,14 @@ var MacroExpander = class {
13601
13235
  return null;
13602
13236
  }
13603
13237
  start = this.popToken();
13604
- ({
13605
- tokens,
13606
- end
13607
- } = this.consumeArg(["]"]));
13238
+ var _this$consumeArg = this.consumeArg(["]"]);
13239
+ tokens = _this$consumeArg.tokens;
13240
+ end = _this$consumeArg.end;
13608
13241
  } else {
13609
- ({
13610
- tokens,
13611
- start,
13612
- end
13613
- } = this.consumeArg());
13242
+ var _this$consumeArg2 = this.consumeArg();
13243
+ tokens = _this$consumeArg2.tokens;
13244
+ start = _this$consumeArg2.start;
13245
+ end = _this$consumeArg2.end;
13614
13246
  }
13615
13247
  this.pushToken(new Token("EOF", end.loc));
13616
13248
  this.pushTokens(tokens);
@@ -13879,14 +13511,17 @@ var MacroExpander = class {
13879
13511
  * `implicitCommands`.
13880
13512
  */
13881
13513
  isDefined(name) {
13882
- return this.macros.has(name) || functions.hasOwnProperty(name) || symbols.math.hasOwnProperty(name) || symbols.text.hasOwnProperty(name) || implicitCommands.hasOwnProperty(name);
13514
+ return this.macros.has(name) || Object.prototype.hasOwnProperty.call(functions, name) || Object.prototype.hasOwnProperty.call(symbols.math, name) || Object.prototype.hasOwnProperty.call(symbols.text, name) || Object.prototype.hasOwnProperty.call(implicitCommands, name);
13883
13515
  }
13884
13516
  /**
13885
13517
  * Determine whether a command is expandable.
13886
13518
  */
13887
13519
  isExpandable(name) {
13888
13520
  var macro = this.macros.get(name);
13889
- return macro != null ? typeof macro === "string" || typeof macro === "function" || !macro.unexpandable : functions.hasOwnProperty(name) && !functions[name].primitive;
13521
+ if (macro != null) {
13522
+ return typeof macro === "string" || typeof macro === "function" || !macro.unexpandable;
13523
+ }
13524
+ return Object.prototype.hasOwnProperty.call(functions, name) && !functions[name].primitive;
13890
13525
  }
13891
13526
  };
13892
13527
  var unicodeSubRegEx = /^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/;
@@ -14631,8 +14266,7 @@ var Parser = class _Parser {
14631
14266
  var lex = this.fetch();
14632
14267
  if (lex.text === "\\limits" || lex.text === "\\nolimits") {
14633
14268
  if (base2 && base2.type === "op") {
14634
- var limits = lex.text === "\\limits";
14635
- base2.limits = limits;
14269
+ base2.limits = lex.text === "\\limits";
14636
14270
  base2.alwaysHandleSupSub = true;
14637
14271
  } else if (base2 && base2.type === "operatorname") {
14638
14272
  if (base2.alwaysHandleSupSub) {
@@ -14709,7 +14343,7 @@ var Parser = class _Parser {
14709
14343
  break;
14710
14344
  }
14711
14345
  }
14712
- if (superscript || subscript) {
14346
+ if (superscript && subscript) {
14713
14347
  return {
14714
14348
  type: "supsub",
14715
14349
  mode: this.mode,
@@ -14717,6 +14351,20 @@ var Parser = class _Parser {
14717
14351
  sup: superscript,
14718
14352
  sub: subscript
14719
14353
  };
14354
+ } else if (superscript) {
14355
+ return {
14356
+ type: "supsub",
14357
+ mode: this.mode,
14358
+ base: base2,
14359
+ sup: superscript
14360
+ };
14361
+ } else if (subscript) {
14362
+ return {
14363
+ type: "supsub",
14364
+ mode: this.mode,
14365
+ base: base2,
14366
+ sub: subscript
14367
+ };
14720
14368
  } else {
14721
14369
  return base2;
14722
14370
  }
@@ -14739,10 +14387,7 @@ var Parser = class _Parser {
14739
14387
  } else if (this.mode === "math" && funcData.allowedInMath === false) {
14740
14388
  throw new ParseError("Can't use function '" + func + "' in math mode", token);
14741
14389
  }
14742
- var {
14743
- args,
14744
- optArgs
14745
- } = this.parseArguments(func, funcData);
14390
+ var _this$parseArguments = this.parseArguments(func, funcData), args = _this$parseArguments.args, optArgs = _this$parseArguments.optArgs;
14746
14391
  return this.callFunction(func, args, optArgs, token, breakOnTokenText);
14747
14392
  }
14748
14393
  /**
@@ -14766,7 +14411,9 @@ var Parser = class _Parser {
14766
14411
  * Parses the arguments of a function or environment
14767
14412
  */
14768
14413
  parseArguments(func, funcData) {
14769
- var totalArgs = funcData.numArgs + funcData.numOptionalArgs;
14414
+ var _funcData$numOptional;
14415
+ var numOptionalArgs = (_funcData$numOptional = funcData.numOptionalArgs) != null ? _funcData$numOptional : 0;
14416
+ var totalArgs = funcData.numArgs + numOptionalArgs;
14770
14417
  if (totalArgs === 0) {
14771
14418
  return {
14772
14419
  args: [],
@@ -14776,8 +14423,9 @@ var Parser = class _Parser {
14776
14423
  var args = [];
14777
14424
  var optArgs = [];
14778
14425
  for (var i2 = 0; i2 < totalArgs; i2++) {
14779
- var argType = funcData.argTypes && funcData.argTypes[i2];
14780
- var isOptional = i2 < funcData.numOptionalArgs;
14426
+ var _funcData$argTypes;
14427
+ var argType = (_funcData$argTypes = funcData.argTypes) == null ? void 0 : _funcData$argTypes[i2];
14428
+ var isOptional = i2 < numOptionalArgs;
14781
14429
  if ("primitive" in funcData && funcData.primitive && argType == null || // \sqrt expands into primitive if optional argument doesn't exist
14782
14430
  funcData.type === "sqrt" && i2 === 1 && optArgs[0] == null) {
14783
14431
  argType = "primitive";
@@ -14822,7 +14470,7 @@ var Parser = class _Parser {
14822
14470
  } : null;
14823
14471
  }
14824
14472
  case "raw": {
14825
- var token = this.parseStringGroup("raw", optional);
14473
+ var token = this.parseStringGroup(optional);
14826
14474
  return token != null ? {
14827
14475
  type: "raw",
14828
14476
  mode: "text",
@@ -14840,7 +14488,6 @@ var Parser = class _Parser {
14840
14488
  return _group2;
14841
14489
  }
14842
14490
  case "original":
14843
- case null:
14844
14491
  case void 0:
14845
14492
  return this.parseArgumentGroup(optional);
14846
14493
  default:
@@ -14859,7 +14506,7 @@ var Parser = class _Parser {
14859
14506
  * Parses a group, essentially returning the string formed by the
14860
14507
  * brace-enclosed tokens plus some position information.
14861
14508
  */
14862
- parseStringGroup(modeName, optional) {
14509
+ parseStringGroup(optional) {
14863
14510
  var argToken = this.gullet.scanArgument(optional);
14864
14511
  if (argToken == null) {
14865
14512
  return null;
@@ -14898,7 +14545,7 @@ var Parser = class _Parser {
14898
14545
  * Parses a color description.
14899
14546
  */
14900
14547
  parseColorGroup(optional) {
14901
- var res = this.parseStringGroup("color", optional);
14548
+ var res = this.parseStringGroup(optional);
14902
14549
  if (res == null) {
14903
14550
  return null;
14904
14551
  }
@@ -14926,7 +14573,7 @@ var Parser = class _Parser {
14926
14573
  if (!optional && this.gullet.future().text !== "{") {
14927
14574
  res = this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/, "size");
14928
14575
  } else {
14929
- res = this.parseStringGroup("size", optional);
14576
+ res = this.parseStringGroup(optional);
14930
14577
  }
14931
14578
  if (!res) {
14932
14579
  return null;
@@ -14961,7 +14608,7 @@ var Parser = class _Parser {
14961
14608
  parseUrlGroup(optional) {
14962
14609
  this.gullet.lexer.setCatcode("%", 13);
14963
14610
  this.gullet.lexer.setCatcode("~", 12);
14964
- var res = this.parseStringGroup("url", optional);
14611
+ var res = this.parseStringGroup(optional);
14965
14612
  this.gullet.lexer.setCatcode("%", 14);
14966
14613
  this.gullet.lexer.setCatcode("~", 13);
14967
14614
  if (res == null) {
@@ -15032,7 +14679,7 @@ var Parser = class _Parser {
15032
14679
  };
15033
14680
  } else {
15034
14681
  result = this.parseFunction(breakOnTokenText, name) || this.parseSymbol();
15035
- if (result == null && text2[0] === "\\" && !implicitCommands.hasOwnProperty(text2)) {
14682
+ if (result == null && text2[0] === "\\" && !Object.prototype.hasOwnProperty.call(implicitCommands, text2)) {
15036
14683
  if (this.settings.throwOnError) {
15037
14684
  throw new ParseError("Undefined control sequence: " + text2, firstToken);
15038
14685
  }
@@ -15118,7 +14765,7 @@ var Parser = class _Parser {
15118
14765
  star
15119
14766
  };
15120
14767
  }
15121
- if (unicodeSymbols.hasOwnProperty(text2[0]) && !symbols[this.mode][text2[0]]) {
14768
+ if (Object.prototype.hasOwnProperty.call(unicodeSymbols, text2[0]) && !symbols[this.mode][text2[0]]) {
15122
14769
  if (this.settings.strict && this.mode === "math") {
15123
14770
  this.settings.reportNonstrict("unicodeTextInMathMode", 'Accented Unicode text character "' + text2[0] + '" used in math mode', nucleus);
15124
14771
  }
@@ -15271,7 +14918,7 @@ var renderToHTMLTree = function renderToHTMLTree2(expression, options) {
15271
14918
  return renderError(error, expression, settings);
15272
14919
  }
15273
14920
  };
15274
- var version = "0.16.47";
14921
+ var version = "0.18.10";
15275
14922
  var __domTree = {
15276
14923
  Span,
15277
14924
  Anchor,