@minamorl/flashmath 0.0.0-stage → 0.1.1

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 (89) hide show
  1. package/LICENSE +225 -0
  2. package/NOTICE +25 -0
  3. package/README.md +188 -2
  4. package/dist/ast.d.ts +107 -0
  5. package/dist/chunk-6CC22KD6.js +1 -0
  6. package/dist/chunk-CBRBGK2B.js +1 -0
  7. package/dist/chunk-KDAOMSCC.js +1 -0
  8. package/dist/chunk-PLZAWTCY.js +1 -0
  9. package/dist/chunk-SHAALSPE.js +1 -0
  10. package/dist/chunk-TXV67IQS.js +1 -0
  11. package/dist/chunk-WZSFAGJH.js +1 -0
  12. package/dist/configuration-cache.d.ts +4 -0
  13. package/dist/configuration-cache.js +1 -0
  14. package/dist/configuration.d.ts +13 -0
  15. package/dist/configuration.js +1 -0
  16. package/dist/fonts/mjx-ncm-c.woff2 +0 -0
  17. package/dist/fonts/mjx-ncm-cb.woff2 +0 -0
  18. package/dist/fonts/mjx-ncm-s.woff2 +0 -0
  19. package/dist/fonts/mjx-ncm-sb.woff2 +0 -0
  20. package/dist/fonts/provenance.json +24 -0
  21. package/dist/fonts.css +29 -0
  22. package/dist/index.d.ts +6 -0
  23. package/dist/index.js +1 -0
  24. package/dist/mathml.d.ts +18 -0
  25. package/dist/native-layout.d.ts +7 -0
  26. package/dist/native-variants.d.ts +2 -0
  27. package/dist/native-variants.js +1 -0
  28. package/dist/output.d.ts +4 -0
  29. package/dist/output.js +1 -0
  30. package/dist/package-mark.d.ts +5 -0
  31. package/dist/packages/action.d.ts +17 -0
  32. package/dist/packages/ams.d.ts +19 -0
  33. package/dist/packages/amscd.d.ts +30 -0
  34. package/dist/packages/autoload.d.ts +16 -0
  35. package/dist/packages/base.d.ts +22 -0
  36. package/dist/packages/bbm.d.ts +24 -0
  37. package/dist/packages/bboldx.d.ts +12 -0
  38. package/dist/packages/bbox.d.ts +11 -0
  39. package/dist/packages/begingroup.d.ts +9 -0
  40. package/dist/packages/boldsymbol.d.ts +11 -0
  41. package/dist/packages/braket.d.ts +9 -0
  42. package/dist/packages/bussproofs-layout.d.ts +5 -0
  43. package/dist/packages/bussproofs-metrics.d.ts +1 -0
  44. package/dist/packages/bussproofs.d.ts +13 -0
  45. package/dist/packages/cancel.d.ts +8 -0
  46. package/dist/packages/cases.d.ts +16 -0
  47. package/dist/packages/centernot.d.ts +15 -0
  48. package/dist/packages/color.d.ts +30 -0
  49. package/dist/packages/colortbl.d.ts +10 -0
  50. package/dist/packages/colorv2.d.ts +15 -0
  51. package/dist/packages/configmacros.d.ts +11 -0
  52. package/dist/packages/dsfont.d.ts +12 -0
  53. package/dist/packages/empheq.d.ts +17 -0
  54. package/dist/packages/enclose.d.ts +13 -0
  55. package/dist/packages/extpfeil.d.ts +10 -0
  56. package/dist/packages/fontsizev3.d.ts +11 -0
  57. package/dist/packages/gensymb.d.ts +11 -0
  58. package/dist/packages/html.d.ts +8 -0
  59. package/dist/packages/mathtools.d.ts +17 -0
  60. package/dist/packages/mhchem-grammar.d.ts +179 -0
  61. package/dist/packages/mhchem-machine.d.ts +50 -0
  62. package/dist/packages/mhchem.d.ts +8 -0
  63. package/dist/packages/newcommand.d.ts +13 -0
  64. package/dist/packages/noerrors.d.ts +23 -0
  65. package/dist/packages/noundefined.d.ts +9 -0
  66. package/dist/packages/physics.d.ts +14 -0
  67. package/dist/packages/registry.d.ts +4 -0
  68. package/dist/packages/registry.js +1 -0
  69. package/dist/packages/require.d.ts +17 -0
  70. package/dist/packages/retry.d.ts +11 -0
  71. package/dist/packages/setoptions.d.ts +20 -0
  72. package/dist/packages/tagformat.d.ts +19 -0
  73. package/dist/packages/texhtml.d.ts +14 -0
  74. package/dist/packages/textcomp.d.ts +13 -0
  75. package/dist/packages/textmacros.d.ts +16 -0
  76. package/dist/packages/types.d.ts +47 -0
  77. package/dist/packages/unicode.d.ts +18 -0
  78. package/dist/packages/units.d.ts +19 -0
  79. package/dist/packages/upgreek.d.ts +11 -0
  80. package/dist/packages/verb.d.ts +11 -0
  81. package/dist/parser.d.ts +149 -0
  82. package/dist/preamble.d.ts +23 -0
  83. package/dist/react.d.ts +5 -0
  84. package/dist/react.js +1 -0
  85. package/dist/scanner.d.ts +40 -0
  86. package/dist/serialize.d.ts +3 -0
  87. package/dist/session-state.d.ts +18 -0
  88. package/dist/symbols.d.ts +544 -0
  89. package/package.json +56 -4
@@ -0,0 +1 @@
1
+ import{a as D}from"./chunk-6CC22KD6.js";import{A as P,B as Q,C as q,D as re,E as j,F as z,G as ae,M as $,N as V,O as oe,a as M,b as U,d as _,e as L,f as T,g as W,h as se,i as S,j as N,k as x,l as g,m as C,n as w,o as G,p as A,q as K,r as R,s as ne,t as H,u as E,v as B,w as J,x as X,y as I,z as Y}from"./chunk-SHAALSPE.js";ne();_();K();_();K();function Z(b,e,t){let n=0,i=new A(x(b),e),s=[],r=()=>{i.skip();let d=i.next();if(!d)return"";if(d[0]!==123)return w([d]);let m=[],k=1;for(;k;){let u=i.next();if(!u)throw Error("Missing array preamble brace");u[0]===123&&k++,u[0]===125&&k--,k&&m.push(u)}return w(m)},a=[],o="",l="",c="",h="1em",f="",p=(d,m="auto",k=null,u="1em",y="")=>{if(s.length>=e)throw Error("Array column limit exceeded");s.push({align:d,width:m,before:a,after:[],insert:k,separator:o,gap:u,vertical:y}),a=[],o=""};for(;i.peek();){i.skip();let d=i.next();if(!d)break;let m=w([d]);if(m==="*"){let u=Number(r());if(!Number.isSafeInteger(u)||u<0||u>e)throw Error("Invalid array repeat");let y=r();if(y.length*u>e)throw Error("Array preamble limit exceeded");i.push(x(y.repeat(u)));continue}let k=t.get(m);if(k){if(++n>e)throw Error("Array preamble limit exceeded");let u=k.body;for(let y=1;y<=k.count;y++)u=u.replaceAll("#"+y,r());i.push(x(u));continue}if(m==="|"||m===":"){o?(s.length&&s.at(-1).after.push(...x("\\hspace{.5em}")),p("center","auto",x("\\,"),"0"),o=m,a.push(...x("\\hspace{.5em}")),h="0"):(o=m,s.length||(l=m));continue}if(m===">"){a.unshift(...x(r()));continue}if(m==="<"){s.length?s.at(-1).after.unshift(...x(r())):r();continue}if(m==="@"||m==="!"){let u=x(r()),y=m==="@"?"0":".5em";s.length===0&&(f=(m==="@"?"0":".5em")+" .5em"),p("center","auto",u,y),c=m,h=y;continue}if(m==="w"||m==="W"){let u=r(),y=r();p({l:"left",r:"right",c:"center"}[u]??"center",y,null,"1em","top");continue}if(m==="p"||m==="m"||m==="b"){p("left",r(),null,"1em",m==="p"?"top":m==="m"?"middle":"bottom");continue}if(m==="l"||m==="c"||m==="r"){p({l:"left",c:"center",r:"right"}[m]);continue}if(!(m==="{"||m==="}"))throw new M(`Illegal pream-token (${m})`,d[1])}c&&s.at(-1)?.insert&&(f=(f?f.split(" ")[0]:".5em")+" "+(c==="@"?"0":".5em"));for(let d=1;d<s.length;d++)s[d].separator&&s[d-1].insert!==null&&s[d].insert!==null&&(s[d-1].gap!=="0"&&(s[d-1].insert.push(...x("\\hspace{.25em}")),s[d-1].gap="0"),s[d].gap!=="0"&&s[d].insert.unshift(...x("\\hspace{.25em}")));return s.length||p("center"),{columns:s,left:l,right:o,padding:f,spacing:h}}se();oe();function O(){return{packageData:new Map,macros:new Map,environments:new Map,labels:new Map,counter:0,initialized:!1}}ae();re();var te="http://www.w3.org/1998/Math/MathML",v=b=>b>=48&&b<=57,ee=(b,e)=>!!b&&b[0]===e[0]&&g(b)===g(e),F=class b{constructor(e,t,n=V(t.packages),i=O()){this.tex=e;this.options=t;this.configuration=n;this.session=i;if(this.macros=i.macros,this.environments=i.environments,this.numbered=t.tags==="all"&&!!t.display,this.stream=new A(x(e,t.maxTokens??2e5),t.maxTokens??2e5),!i.initialized)for(let[s,r]of Object.entries(t.macros??{}))this.macros.set(s,R(r));i.initialized=!0,this.frame(0,!1,s=>{this.result=s});for(let s of n.initializers)s(this)}tex;options;configuration;session;get characters(){return this.configuration.characterHandlers}stream;macros;environments;localLabels=new Map;frames=[];nodes=0;expansions=0;position=0;columns=new Map;label="";numbered=!1;hasTaggableEnvironment=!1;envStack=[];hsize="";inline=!1;nonscript=!1;pendingBreak="";result=[];currentCommand="";error(e){throw new M(e,this.position)}node(e,t=[],n="",i={},s=this.position){++this.nodes>(this.options.maxNodes??1e5)&&this.error("Node limit exceeded");let r={kind:e,attributes:i,children:t,text:n,start:s,op:0,limits:0,relation:e===3&&H.has(n),fixed:!1,rawAttrs:!1};return(e===1||e===3||e===2||e===4)&&this.f?.tokenTransform?.(r),r}row(e,t=!1){if(!t&&e.length===1)return e[0];let n=this.node(6,e);return n.inferred=!t,n}atom(e,t="ORD"){return this.node(6,e,"",{"data-mjx-texclass":t})}fixInitialMO(e){let t=e.find(n=>(n.kind!==5||n.styledSpace)&&!(n.kind===6&&n.attributes["data-mjx-texclass"]&&!n.children.length));for(;t;){if(t.kind===3||t.attributes["data-mjx-texclass"]==="REL"){e.unshift(this.node(1));return}if([10,11,12,13,14,15].includes(t.kind)){t=t.children[0];continue}if([16,18,19,6].includes(t.kind)){let n=t.children.filter(i=>i.kind!==5&&i.kind!==4);if(n.length===1){t=n[0];continue}}return}}get f(){return this.frames[this.frames.length-1]}frame(e,t,n,i="",s=null){this.frames.length>=(this.options.maxDepth??1024)&&this.error("Nesting limit exceeded");let r=this.f;this.frames.push({tokenTransform:r?.tokenTransform,nodes:[],stop:e,single:t,done:n,font:r?.font??"",multi:r?.multi??!1,level:r?.level??0,display:r?.display??this.options.display??!1,env:i,table:s,fraction:null})}append(e){if(this.pendingBreak){let t=this.pendingBreak;this.pendingBreak="",e.kind===3&&P(e.text)?.[3]?.linebreakstyle!=="after"?e.attributes.linebreak=t:this.f.nodes.push(this.node(5,[],"",t==="auto"?{}:{linebreak:t}))}this.nonscript&&(this.nonscript=!1,this.f.level>0&&(e.kind===5||e.kind===16&&e.children[0]?.kind===5))||(this.f.table?.bottom&&(this.f.table.bottom=""),this.f.nodes.push(e))}close(){let e=this.f;if(this.pendingBreak){let n=this.pendingBreak;this.pendingBreak="",e.nodes.push(this.node(5,[],"",n==="auto"?{}:{linebreak:n}))}let t=e.nodes;if(e.fraction){let n=e.fraction,i=this.node(7,[this.row(n.num),this.row(t)],"",n.attrs);if(n.left||n.right){let s=this.f.level===0?"2.047em":"1.2em";i=this.atom([this.atom([this.delimiterNode(n.left,s)],"OPEN"),i,this.atom([this.delimiterNode(n.right,s)],"CLOSE")])}t=[i]}this.frames.pop(),e.done(t)}argument(e,t=!1,n=""){this.stream.skip();let i=this.stream.peek();(!i||i[0]===0)&&this.error(`Missing argument for ${n||this.currentCommand}`),i[0]===125&&this.error(this.f.env==="argument"?`Missing argument for ${n||this.currentCommand}`:"Extra close brace or missing open brace"),i[0]===123?(this.stream.next(),this.frame(125,!1,s=>e(t?this.atom(s):this.row(s))),this.f.env="argument"):this.frame(0,!0,s=>e(this.row(s))),this.f.argumentScope=!0}args(e,t,n=""){let i=[],s=this.currentCommand,r=()=>{this.currentCommand=s,i.length===e?t(i):this.argument(a=>{i.push(a),r()},!1,n)};r()}tokensArgument(e=this.currentCommand){let t=this.argumentSpan(e);return t.tokens.slice(t.start,t.end)}argumentSpan(e=this.currentCommand){this.stream.skip();let t=this.stream.next();if((!t||t[0]===0)&&this.error(`Missing argument for ${e}`),t[0]===125&&this.error("Extra close brace or missing open brace"),t[0]!==123)return{tokens:[t],start:0,end:1};let n=this.stream.takeGroup();if(n)return n;let i=[],s=1;for(;s;){let r=this.stream.next();r||this.error("Missing close brace"),r[0]===123&&s++,r[0]===125&&s--,s&&i.push(r)}return{tokens:i,start:0,end:i.length}}optional(){if(this.stream.skip(),this.stream.peek()?.[0]!==91)return null;this.stream.next();let e=[],t=0;for(;;){let n=this.stream.next();if(n||this.error(`Could not find closing ']' for argument to ${this.currentCommand}`),n[0]===93&&t===0)return e;n[0]===123&&t++,n[0]===125&&--t<0&&this.error("Extra close brace while looking for ']'"),e.push(n)}}parseTokens(e,t){this.parseSpan({tokens:e,start:0,end:e.length},t)}parseSpan(e,t){this.stream.push([[0,0,0,""]]),this.stream.pushSpan(e),this.frame(-2,!1,n=>t(this.row(n))),this.f.argumentScope=!0}substitute(e,t){let n=[];for(let i=0;i<e.body.length;i++){let s=e.body[i];if(s[0]!==35){n.push(s);continue}let r=e.body[++i];if(r?.[0]===35)n.push(r);else{let a=r?r[0]-49:-1;(a<0||a>=t.length)&&this.error("Illegal macro parameter reference");for(let o of t[a])n.length>=(this.options.maxTokens??2e5)&&this.error("Token limit exceeded"),n.push(o)}n.length>(this.options.maxTokens??2e5)&&this.error("Token limit exceeded")}return n}expand(e){++this.expansions>(this.options.maxExpansions??1e4)&&this.error("Macro expansion limit exceeded"),this.stream.skip();for(let s of e.prefix)ee(this.stream.next(),s)||this.error("Use of macro doesn't match its definition");let t=[];if(e.optional){let s=this.optional()??e.optional;t.push({tokens:s,start:0,end:s.length})}for(let s=t.length;s<e.count;s++){let r=e.delimiters[s]??[];if(!r.length){t.push(this.argumentSpan());continue}let a=[],o=0;for(;;){let l=this.stream.next();if(l||this.error("Missing macro argument delimiter"),a.push(l),l[0]===123&&o++,l[0]===125&&o--,o===0&&a.length>=r.length&&r.every((c,h)=>ee(a[a.length-r.length+h],c))){a.length-=r.length;break}}if(a[0]?.[0]===123&&a.at(-1)?.[0]===125){let l=0,c=!0;for(let h=0;h<a.length-1;h++)a[h][0]===123&&l++,a[h][0]===125&&l--,l===0&&(c=!1);c&&(a.shift(),a.pop())}t.push({tokens:a,start:0,end:a.length})}let n=[],i=0;for(let s=0;s<e.body.length;s++){if(e.body[s][0]!==35)continue;i<s&&n.push({tokens:e.body,start:i,end:s});let r=e.body[++s];if(r?.[0]===35)n.push({tokens:e.body,start:s,end:s+1});else{let a=r?r[0]-49:-1;(a<0||a>=t.length)&&this.error("Illegal macro parameter reference"),n.push(t[a])}i=s+1}i<e.body.length&&n.push({tokens:e.body,start:i,end:e.body.length});for(let s=n.length-1;s>=0;s--)this.stream.pushSpan(n[s])}delimiter(){this.stream.skip();let e=this.stream.next();e?.[0]===123&&(e=this.stream.next(),this.stream.next()?.[0]!==125&&this.error("Missing close brace")),e||this.error(`Missing or unrecognized delimiter for ${this.currentCommand}`);for(let n=0;n<30&&!(e[0]!==-1&&e[0]!==-3);n++){let i=e[0]===-1?this.macros.get(g(e)):void 0;if(i?.body.length===1){e=i.body[0];continue}let s=q(e),r=(s<0?this.configuration.extensions.get(g(e)):this.configuration.commands[s])?.definition;if(r?.char&&(r.type==="delimiter"||E.has(r.char)||"<>".includes(r.char)))return r.char==="<"?"\u27E8":r.char===">"?"\u27E9":r.char;this.error(`Missing or unrecognized delimiter for ${this.currentCommand}`)}let t=g(e);return t==="."?"":t==="<"?"\u27E8":t===">"?"\u27E9":(E.has(t)||this.error(`Missing or unrecognized delimiter for ${this.currentCommand}`),t)}delimiterNode(e,t="",n=""){let i=n?{"data-mjx-texclass":n}:{};return e?!B.has(e)&&e!=="<"&&e!==">"&&Object.assign(i,{fence:"true",symmetric:"true",...["\u23D0","\u23EA","\u23AA","/","\\","\u231C","\u231D","\u231E","\u231F"].includes(e)?{stretchy:"true"}:{}}):Object.assign(i,{fence:"true",stretchy:"true",symmetric:"true"}),t&&Object.assign(i,{minsize:t,maxsize:t,...e==="|"||e==="\u2016"?{fence:"true",stretchy:"true",symmetric:"true"}:{}}),this.node(3,[],e,i)}symbol(e,t,n=L[t]){let i={},s=3,r=n.char;n.type==="lcGreek"?(s=1,i.mathvariant="italic"):n.type==="ucGreek"?(s=1,i.mathvariant=this.f.font||"normal"):n.type==="mathchar0mi"?(s=1,i.mathvariant=String(n.attrs?.mathvariant??(n.attrs&&Object.keys(n.attrs).length?"":"italic")),i.mathvariant||delete i.mathvariant):n.type==="mathchar7"?(s=1,i.mathvariant=this.f.font||String(n.attrs?.mathvariant??"normal")):n.type==="delimiter"&&(B.has(r)&&(i.fence="false"),i.stretchy="false"),s===3&&E.has(r)&&(i.stretchy="false");for(let[o,l]of Object.entries(n.attrs??{}))["mathvariant","largeop","movablelimits","symmetric"].includes(o)&&(i[o]=String(l));n.attrs?.texClass!==void 0&&(i["data-mjx-texclass"]=["ORD","OP","BIN","REL","OPEN","CLOSE","PUNCT","INNER"][Number(n.attrs.texClass)]??"NONE"),n.attrs?.variantForm&&(i["data-mjx-alternate"]="1"),n.name==="to"&&(i.accent="false"),s===1&&i.mathvariant==="italic"&&Array.from(r).length===1&&delete i.mathvariant;let a=this.node(s,[],r,i,e[1]-1);return a.limits=n.attrs?.movesupsub?1:0,a.fixed=s===3,a}character(e){let t=g(e),n=e[0],i=S(n)?1:3,s=t,r={};if(n>127){let o=t.codePointAt(0),l=W.find(c=>o>=c[0]&&o<=c[1]);l&&(i=l[3]==="mi"?1:3,l[4]&&(r.mathvariant=l[4])),i===1&&(n>=913&&n<=937||n>=12288&&n<55296)&&(r.mathvariant="normal")}n===124&&(r["data-mjx-texclass"]="ORD"),n===45&&(s="\u2212"),n===42&&(s="\u2217"),n===96&&(s="\u2018"),i===3&&E.has(s)&&(r.stretchy="false"),this.f.font&&(r.mathvariant=this.f.font);let a=this.node(i,[],s,r,e[1]);return a.fixed=i===3,a}number(e){if(this.options.numberPattern instanceof RegExp&&!this.f.single){let i=this.options.numberPattern;i.lastIndex=e[1];let s=i.exec(e[3]);if(!s||!s[0].length)return this.character(e);if(s&&s[0].length){let r=e[1]+s[0].length,a=e[2];for(;a<r;){let o=this.stream.peek();if(!o||o[3]!==e[3]||o[1]!==a)break;a=o[2],this.stream.next()}if(a===r)return this.node(2,[],s[0].replace(/[{}]/g,""),this.f.font?{mathvariant:this.f.font}:{},e[1])}}let t=g(e),n=this.options.decimalSeparator===","?44:46;for(;!this.f.single;){let i=this.stream.peek();if(!i)break;if(v(i[0])){t+=g(this.stream.next());continue}if(i[0]===123){let s=this.stream.next(),r=[],a=1,o;for(;a;){let l=this.stream.next();l||this.error("Missing close brace"),l[0]===123&&a++,l[0]===125&&a--,a?r.push(l):o=l}if(r.length===1&&r[0][0]===(n===44?46:44)){let l=[];for(let c=0;c<3&&v(this.stream.peek()?.[0]??0);c++)l.push(this.stream.next());if(l.length===3){if(t+=g(r[0])+w(l),v(this.stream.peek()?.[0]??0))break;continue}this.stream.push([s,...r,o,...l])}else this.stream.push([s,...r,o]);break}if(i[0]===n&&!t.includes(String.fromCharCode(n))){if(this.stream.next(),v(this.stream.peek()?.[0]??0)){t+=String.fromCharCode(n);continue}this.stream.push([i])}break}return this.node(2,[],t,this.f.font?{mathvariant:this.f.font}:{},e[1])}script(e,t=!1){let i=this.f.nodes.pop()??this.node(1),s=r=>{let a=i,o,l,c=a.limits!==0&&(a.kind===13||a.kind===14||a.kind===15);!a.scriptBoundary&&([10,11,12].includes(a.kind)||a.limits!==0&&[13,14,15].includes(a.kind))&&(a.kind===10||a.kind===13?o=a.children[1]:a.kind===11||a.kind===14?l=a.children[1]:(o=a.children[1],l=a.children[2]),a=a.children[0]),e?l&&!t?(l.kind===3&&l.attributes["data-mjx-alternate"]?(l.attributes["data-mjx-pseudoscript"]="true",r=this.row([l,r],!0)):this.error("Double exponent: use braces to clarify"),l=r):l=l?this.row([l,r],!0):r:(o&&this.error("Double subscripts: use braces to clarify"),o=r);let h=a.limits>0&&(a.kind===3||this.f.display||a.limits===2)||c,f=o&&l?h?15:12:o?h?13:10:h?14:11,p=this.node(f,[a,...o?[o]:[],...l?[l]:[]],"",{},a.start);p.op=a.op,p.limits=a.limits,this.append(p)};if(t){[11,12,14,15].includes(i.kind)&&this.error("Prime causes double exponent: use braces to clarify");let r=1;for(;[39,8217].includes(this.stream.peek()?.[0]??0);)this.stream.next(),r++;s(this.node(3,[],["","\u2032","\u2033","\u2034","\u2057"][r]??"\u2032".repeat(r),{"data-mjx-alternate":"1"}))}else{this.stream.skip();let r=this.stream.peek();r||this.error("Missing superscript or subscript argument"),[94,95,39,8217].includes(r[0])&&this.error(`Missing open brace for ${e?"superscript":"subscript"}`);let a=this.f.level;this.argument(o=>{s(o)},!0),this.f.level=a+1,this.f.display=!1,this.f.missingMessage="Extra open brace or missing close brace"}}dimension(){if(this.stream.skip(),this.stream.peek()?.[0]===123)return w(this.tokensArgument()).replace(",",".").trim();let e="";for(;this.stream.peek();){let t=this.stream.peek();if(t[0]===-1||t[0]===123||t[0]===125)break;let n=t[0];if(N(n)){if(this.stream.next(),e)break;continue}if(v(n)||S(n)||n===45||n===43||n===46||n===44){if(e+=g(this.stream.next()),/[a-z]{2}$/i.test(e))break}else break}return e||this.error("Missing dimension"),e.replace(",",".")}text(e,t=""){let n=w(e).replace(/%[^\r\n]*(?:\r?\n|$)/g,"").replace(/\\U\{([0-9a-fA-F]+)\}/g,(i,s)=>String.fromCodePoint(parseInt(s,16))).replace(/\\([{}%$#_& \\])/g,"$1").replace(/~/g,"\xA0");return n.startsWith(" ")&&(n="\xA0"+n.slice(1)),n.endsWith(" ")&&(n=n.slice(0,-1)+"\xA0"),this.node(4,[],n,t?{mathvariant:t}:{})}tagText(e){if(!/[\\$]/.test(e))return[this.node(4,[],e)];let t=O();t.macros=new Map(this.macros),t.labels=new Map([...this.session.labels,...this.localLabels]),t.initialized=!0;let n=(this.options.maxDepth??1024)-this.frames.length;n<1&&this.error("Nesting limit exceeded");let i=new b("\\text{"+e+"}",{...this.options,display:!1,tags:"none",maxDepth:n},this.configuration,t);return i.run(),this.nodes+=i.nodes,this.nodes>(this.options.maxNodes??1e5)&&this.error("Node limit exceeded"),i.result}renderText(e,t="",n=!1){let{tokens:i,start:s,end:r}=Array.isArray(e)?{tokens:e,start:0,end:e.length}:e,a=[],o=s,l=!1;for(let d=s;d<r;d++){let m=i[d],k=m[0]===-1?g(m):"";if(m[0]===123){let u=G(i,d);if(u!==void 0&&u<r){d=u;continue}}(m[0]===36||k==="("||k===")")&&(a.push({math:l,span:{tokens:i,start:o,end:d}}),o=d+1,l=!l)}a.push({math:l,span:{tokens:i,start:o,end:r}}),l&&this.error("Unclosed math delimiter in text");let c=[],h=0,f=this.f.display,p=()=>{for(;h<a.length;){let m=a[h++];if(m.span.start!==m.span.end){if(m.math){this.parseSpan(m.span,k=>{c.push(this.atom(k.kind===6&&!Object.keys(k.attributes).length?k.children:[k])),p()}),this.f.font="",this.f.display=!1;return}c.push(this.text(m.span.tokens.slice(m.span.start,m.span.end),t))}}let d=c.length===1?c[0]:this.row(c,!0);n&&f&&(d=this.node(16,d.kind===6?d.children:[d],"",{displaystyle:"false"})),this.append(d)};p()}tableStart(e,t,n,i){e==="eqnarray"&&(this.hasTaggableEnvironment=!0);let s={rows:[],cells:[],align:t,spacing:"1em",rowspacing:"4pt",display:e==="darray"||e==="eqnarray"||e.includes("eqalign"),lines:[],rowlines:[],frame:"",top:"",bottom:"",position:"",latex:n===-4,plan:Z(t,this.options.maxTokens??2e5,this.columns),originalFont:this.f.font,fill:"",rowBreak:{},cellBreak:{},tableBreak:!0,labels:[],noNumbers:new Set,rowspaces:[],numbered:e==="eqnarray"&&this.numbered,taggable:e==="eqnarray",tagCells:new Map};(e==="eqnarray"||e.includes("eqalign"))&&(s.spacing=e==="eqnarray"?"0em 0.278em":"0.278em",s.rowspacing=".5em"),e==="cases"&&(s.spacing="1em",s.rowspacing=".2em"),this.frame(n,!1,r=>{(r.length||s.cells.length)&&(this.finishCell(s,r),s.rows.push(s.cells),this.tagRow(s)),s.rows.length>1&&s.bottom&&r.length&&(s.bottom=""),this.completeTable(s,e,i??(a=>this.append(a)))},e,s),this.f.display=s.display,s.latex&&(this.stream.skip(),this.startCell(s))}startCell(e){let n=e.plan.columns.filter(i=>i.insert===null)[e.cells.length];n?.before.length&&C(this.stream.peek()??[0,0,0,""])!==T.end&&this.stream.push(n.before)}finishCell(e,t){let i=e.plan.columns.filter(a=>a.insert===null)[e.cells.length];if(i?.after.length)if(w(i.after)==="\\hspace{.5em}")t.push(this.node(5,[],"",{width:".5em"}));else for(let a of i.after)N(a[0])||t.push(this.character(a));let s={};e.fill&&(s.columnalign=e.fill,e.fill="");let r=e.rows.length+":"+e.cells.length;if(e.cellBreak[r]&&(s["data-vertical-align"]=e.cellBreak[r]),i?.width&&i.width!=="auto"){let a=this.node(4,[],X(t));t=[this.node(18,[a],"",{"data-mjx-vbox":i.vertical||"top",width:i.width,"data-overflow":"auto","data-align":i.align,"data-vertical-align":i.vertical||"top"})]}if(e.colors){let a=e.colors.cell||(e.colors.rowIndex===e.rows.length?e.colors.row:"")||e.colors.columns[e.cells.length];a&&(s.mathbackground=a),e.colors.cell=""}e.cells.push(this.node(23,t,"",s))}completeTable(e,t,n){let i=e.plan.columns.map((o,l)=>({c:o,i:l})).filter(o=>o.c.insert!==null),s=0,r=0,a=()=>{for(;s<e.rows.length;){if(r===i.length){r=0,s++;continue}let{c:o,i:l}=i[r++];this.parseTokens(o.insert,c=>{let h=this.node(23,c.kind===6?c.children:[c]),f=e.rows[s][l];f&&!f.children.length&&f.attributes.columnalign&&(h.attributes.columnalign=f.attributes.columnalign,delete f.attributes.columnalign),e.rows[s].splice(l,0,h),a()});return}n(this.tableNode(e,t))};a()}tagTable(){for(let e=this.frames.length-1;e>=0;e--){let t=this.frames[e].table;if(t?.taggable)return t}}setLabel(e){if(e==="")return;let t=this.tagTable();if((t?t.labels[t.rows.length]:this.label)&&this.error("Multiple \\label"),(this.session.labels.has(e)||this.localLabels.has(e))&&!this.options.ignoreDuplicateLabels&&this.error(`Label '${e}' multiply defined`),this.localLabels.set(e,{tag:"???",id:""}),t){t.labels[t.rows.length]=e;let i=t.explicitTags?.get(t.rows.length);if(i!==void 0){let s=String(j(this,"id",(this.options.useLabelIds!==!1?e:"")||i));this.localLabels.set(e,{tag:i,id:s});let r=t.tagCells.get(t.rows.length);r&&(r.attributes.id=s)}}else this.label=e}reference(e,t=!1){let n=this.session.labels.get(e)??this.localLabels.get(e)??{tag:"???",id:""};this.append(this.node(6,t?z(this,n.tag,!1,!0):[this.node(4,[],n.tag)],"",{href:String(j(this,"url",n.id,this.options.baseURL??"")),class:"MathJax_ref"}))}tagRow(e){let t=e.rows.length-1;e.numbered&&!e.noNumbers.has(t)&&!e.tagCells.has(t)&&e.tagCells.set(t,this.labelCell(e.labels[t]??""))}labelCell(e,t,n=!1){let i=t??String(j(this,"number",++this.session.counter)),s=String(j(this,"id",(this.options.useLabelIds!==!1?e:"")||i));return e&&this.localLabels.set(e,{tag:i,id:s}),this.node(23,z(this,i,n),"",{id:s,...this.options.tagAlign&&this.options.tagAlign!=="baseline"?{rowalign:this.options.tagAlign}:{}})}tableNode(e,t){let n=e.plan.columns.map(h=>({left:"l",right:"r",center:"c"})[h.align]).join("")||"c",i={columnspacing:e.spacing,rowspacing:e.rowspacing,columnalign:Array.from(n,h=>({l:"left",c:"center",r:"right"})[h]).join(" ")};!["matrix","array","pmatrix","cases"].includes(t)||t==="array"&&e.align,i.displaystyle=String(e.display),(t==="matrix"||t==="pmatrix")&&(i.columnalign="center"),e.plan.columns.slice(1).some(h=>h.separator)&&(i.columnlines=e.plan.columns.slice(1).map(h=>h.separator==="|"?"solid":h.separator===":"?"dashed":"none").join(" ")),e.plan.columns.some(h=>h.width!=="auto")&&(i.columnwidth=e.plan.columns.map(h=>h.width).join(" ")),e.plan.columns.some(h=>h.insert)&&(i.columnspacing=e.plan.columns.slice(1).map((h,f)=>e.plan.columns[f].insert?e.plan.columns[f].gap:h.insert?h.gap:"1em").join(" "),e.plan.columns.at(-1)?.insert!==null&&(i.columnspacing+=" "+e.plan.columns.at(-1).gap),e.plan.padding&&(i["data-array-padding"]=e.plan.padding)),e.rowlines.slice(0,e.rows.length-1).some(Boolean)&&(i.rowlines=Array.from({length:e.rows.length-1},(h,f)=>e.rowlines[f]??"none").join(" ")),e.rowspaces.length&&(i.rowspacing=Array.from({length:Math.max(e.rows.length,e.rowspaces.length)},(h,f)=>e.rowspaces[f]??(e.rowspacingBase===void 0?"0.4em":e.rowspacingBase+"em")).join(" "));let s=e.plan.left,r=e.plan.right,a="";if(s==="|"&&r==="|"&&e.top==="solid"&&e.bottom==="solid"?a="solid":s===":"&&r===":"&&e.top==="solid"&&e.bottom==="solid"&&(a="dashed"),a&&(delete i["data-frame-styles"],i.frame=a,i.framespacing=e.latex?".5em .125em":".2em .125em"),e.position&&(i.align=e.position),t==="displaylines"&&(i.displaystyle="true",i.rowspacing=".5em"),t==="eqnarray"){let h=Math.max(...e.rows.map(f=>f.length));i.columnalign=Array.from({length:h},(f,p)=>["right","center","left"][p%3]).join(" "),i.columnspacing=Array.from({length:h-1},(f,p)=>p%2===0?"0em":"0.278em").join(" "),i["data-break-align"]=Array.from({length:h},(f,p)=>["bottom","middle","top"][p%3]).join(" "),i.rowspacing="3pt",e.tableBreak||delete i["data-break-align"]}i.columnalign==="center"&&delete i.columnalign,i.displaystyle==="false"&&delete i.displaystyle,(t==="array"||t==="matrix"||t==="pmatrix"||t==="cases")&&(i["data-frame-styles"]="",i.framespacing=e.latex?".5em .125em":".2em .125em"),t==="leqalignno"&&(i.side="left");let o=this.node(20,e.rows.map((h,f)=>{if(t==="eqnarray")for(let p=0;p<h.length;p++)p%3===1&&h.length===3&&h[p].children.unshift(this.node(1)),p%3===2&&(h[p].children=[this.node(16,h[p].children,"",{indentshift:".7em"})]);if(t==="eqalignno"||t==="leqalignno"){let p=h.pop()??this.node(23);return this.node(22,[p,...h])}return e.tagCells.has(f)?this.node(22,[e.tagCells.get(f),...h]):this.node(21,h,"",e.rowBreak[f]?{"data-break-align":e.rowBreak[f]}:{})}),"",i);o.children.some(h=>h.kind===22)&&(this.options.tagSide&&this.options.tagSide!=="right"&&(o.attributes.side=this.options.tagSide),this.options.tagIndent&&this.options.tagIndent!=="0.8em"&&(o.attributes.minlabelspacing=this.options.tagIndent));let l=o,c=[];if((s==="|"||s===":")&&c.push("left"),(r==="|"||r===":")&&c.push("right"),e.top&&c.push("top"),e.bottom&&c.push("bottom"),a==="solid"&&delete o.attributes["data-frame-styles"],a==="dashed"||s==="|"&&r===":"||s===":"&&r==="|")return delete o.attributes.frame,o.attributes["data-frame-styles"]=[e.top||"none",r===":"?"dashed":r==="|"?"solid":"none",e.bottom||"none",s===":"?"dashed":s==="|"?"solid":"none"].join(" "),o;if(c.length&&!a){let h=this.node(24,[o],"",{notation:c.join(" "),"data-padding":"0"});o.attributes.framespacing=e.latex?".5em .125em":".2em .125em",l=h}return t==="pmatrix"&&(l=this.atom([this.delimiterNode("(","","OPEN"),l,this.delimiterNode(")","","CLOSE")],"INNER")),t==="cases"&&(l=this.atom([this.delimiterNode("{","","OPEN"),l,this.delimiterNode("","","CLOSE")],"INNER")),l}run(){for(;this.frames.length;){for(;this.f?.single&&this.f.nodes.length;)this.close();if(!this.frames.length)break;let e=this.stream.next();if(!e){this.frames.length!==1&&this.error(this.f.missingMessage??(this.f.env==="argument"?"Missing close brace":this.f.env==="left"?"Extra \\left or missing \\right":this.f.env?`Missing \\end{${this.f.env}}`:"Extra open brace or missing close brace")),this.close();break}this.position=e[1];let t=e[0];if(t===0&&this.f.stop===-2){this.close();continue}if(t===this.f.stop){this.close();continue}let n=this.options.texOptions?.active?.[g(e)];if(t!==-1&&n!==void 0&&this.configuration.packages.some(a=>a.name==="configmacros")){this.expand(R(n));continue}if(N(t))continue;let i=t>0?this.characters?.get(t):void 0;if(i){let a=!1;for(let o of i)if(o.execute(this,e,o.definition,o.id)!==!1){a=!0;break}if(a)continue}switch(t){case 37:for(;this.stream.peek()&&![10,13].includes(this.stream.peek()[0]);)this.stream.next();this.stream.next();continue;case 123:this.frame(125,!1,a=>this.append(this.atom(a)));continue;case 125:this.error("Extra close brace or missing open brace");case 94:this.script(!0);continue;case 95:this.script(!1);continue;case 39:case 8217:this.script(!0,!0);continue;case 35:this.error("You can't use 'macro parameter character #' in math mode");case 38:{let a=this.f;if(a.table||this.error("Misplaced &"),this.finishCell(a.table,a.nodes),a.nodes=[],a.font=a.table.originalFont,a.env==="cases"&&!a.table.latex){a.table.cells.length>1&&this.error("Extra alignment tab in \\cases text");let o=[],l=0;for(;this.stream.peek();){let c=this.stream.peek();if(l===0&&(c[0]===125||C(c)===T.end||C(c)===T.cr||g(c)==="\\"&&c[0]===-1))break;c[0]===38&&l===0&&this.error("Extra alignment tab in \\cases text"),this.stream.next(),c[0]===123&&l++,c[0]===125&&l--,o.push(c)}for(;o.length&&N(o[0][0]);)o.shift();for(;o.length&&N(o.at(-1)[0]);)o.pop();C(o[0])===T.text?this.stream.push(o):this.renderText(o);continue}a.table.latex&&this.startCell(a.table);continue}case-5:{let a=g(e)==="<"?"\u27E8":g(e)===">"?"\u27E9":g(e),o=this.node(3,[],a,{fence:"false",stretchy:"false",..."|\u2016".includes(a)?{"data-mjx-texclass":"ORD"}:{}});o.rawAttrs=!0,this.append(o);continue}case 126:this.append(this.node(4,[],"\xA0"));continue;case-1:case-3:{let a=q(e),o=L[a],l=o?.name??g(e),c=t===-1&&this.macros.size?this.macros.get(l):void 0;if(c){this.currentCommand="\\"+l,this.expand(c);continue}let h=a<0?this.configuration.extensions.get(l):this.configuration.commands[a]??this.configuration.extensions.get(l);if(!h){let f=[...this.configuration.packages].reverse().find(p=>p.undefinedCommand)?.undefinedCommand;if(f){f(this,l);continue}this.error(`Undefined control sequence \\${l}`)}this.currentCommand="\\"+l,h.execute(this,e,h.definition,a);continue}}let s=this.configuration.characters.size?this.configuration.characters.get(g(e)):void 0;if(s){s.execute(this,e,s.definition,-1);continue}if(v(t)||this.options.numberPattern!==void 0&&(t===44||t===46)||t===(this.options.decimalSeparator===","?44:46)&&v(this.stream.peek()?.[0]??0)){this.append(this.number(e));continue}let r=this.character(e);if(this.f.multi&&r.kind===1&&S(t)){if(this.options.identifierPattern instanceof RegExp){let a=this.options.identifierPattern;a.lastIndex=e[1];let o=a.exec(e[3]);if(o&&o[0].length){let l=e[1]+o[0].length,c=e[2];for(;c<l;){let h=this.stream.peek();if(!h||h[3]!==e[3]||h[1]!==c)break;c=h[2],r.text+=g(this.stream.next())}}}else for(;this.stream.peek()&&S(this.stream.peek()[0]);)r.text+=g(this.stream.next());r.text.length>1&&r.attributes.mathvariant==="normal"&&(r.attributes["data-mjx-auto-op"]="false")}this.append(r)}this.numbered&&!this.hasTaggableEnvironment&&this.options.display&&(this.result=[this.node(20,[this.node(22,[this.labelCell(this.label),this.node(23,this.result)])],"",{displaystyle:"true",...this.options.tagSide&&this.options.tagSide!=="right"?{side:this.options.tagSide}:{},...this.options.tagIndent&&this.options.tagIndent!=="0.8em"?{minlabelspacing:this.options.tagIndent}:{}})]),this.envStack.length&&this.error(`Missing \\end{${this.envStack.at(-1)}}`);for(let[e,t]of this.localLabels)this.session.labels.set(e,t);return this.finish(this.result),U(this.node(0,this.result,"",{xmlns:te,...this.options.display&&!this.inline?{display:"block"}:{},...this.hsize?{maxwidth:this.hsize,overflow:"linebreak"}:{}}))}linebreak(){this.stream.peek()?.[0]===42&&this.stream.next();let e=this.stream.peek()?.[0]===91?this.optional():null;e&&!/^[+-]?(?:\d+(?:[.,]\d*)?|[.,]\d+)\s*(?:em|ex|pt|px|mu|cm|mm|in|pc)$/.test(w(e).trim())&&this.error("Bracket argument to \\\\ must be a dimension");let t=this.f;if(t.table){let n=t.table;this.finishCell(n,t.nodes),n.rows.push(n.cells),this.tagRow(n),n.cells=[],t.nodes=[],t.font=n.originalFont,e&&(n.rowspaces[n.rows.length-1]=n.rowspacingBase===void 0?Q(I(w(e))+.4):I(w(e))+n.rowspacingBase+"em"),n.latex&&this.startCell(n);return}this.append(this.node(5,[],"",{linebreak:"newline",...e?{"data-lineleading":w(e).replace(",",".")}:{}}))}decorationBase(e){if(e.kind===3&&e.limits>0)return e.attributes.movablelimits="false",e.limits=0,e;if((e.limits!==0||e.children[0]?.attributes.movablelimits==="false")&&[13,14,15].includes(e.kind)){let t=e.children[0];return t.attributes.lspace="0",t.attributes.rspace="0",this.row([this.node(3,[],"",{rspace:"0"}),e],!0)}return e}clean(e,t,n){if(e.rawAttrs)return;let i=e.attributes,s=e.kind===3?P(e.text,t===0&&n>1?"prefix":t===n-1&&n>1?"postfix":"infix")?.[3]??{}:{};if(e.kind===3&&i.stretchy==="true"&&s.stretchy&&delete i.stretchy,e.fixed&&(s.stretchy?i.stretchy="false":e.text!=="|"&&e.text!=="\u2016"&&delete i.stretchy),!e.rawAttrs&&e.kind===3)for(let r of["fence","largeop","movablelimits","symmetric","accent"])i[r]===String(s[r]??!1)&&delete i[r];i.mathvariant?.startsWith("-tex-")&&(i["data-mjx-variant"]=i.mathvariant,i.mathvariant=i.mathvariant.includes("calligraphic")?i.mathvariant.includes("bold")?"bold-script":"script":i.mathvariant==="-tex-oldstyle"?"normal":"italic"),i.mathvariant==="italic"&&e.kind===1&&Array.from(e.text).length===1&&!i["data-mjx-variant"]&&delete i.mathvariant,!e.rawAttrs&&!i["data-mjx-variant"]&&i.mathvariant==="normal"&&(e.kind===3||e.kind===2||e.kind===4||e.kind===1&&Array.from(e.text).length>1)&&delete i.mathvariant}functionArgument(e){if(e.kind===5||e.text==="\u2061"||e.kind===16&&e.children[0]?.kind===5)return!1;let t=e;for(;[10,11,12,13,14,15].includes(t.kind);)t=t.children[0];if(t.kind!==3)return!0;let n=t.attributes["data-mjx-texclass"],i=n?["ORD","OP","BIN","REL","OPEN","CLOSE","PUNCT","INNER"].indexOf(n):P(t.text)?.[2]??0;return![2,3,5,6].includes(i)}finish(e){let t=[{children:e,sequence:!0}];for(;t.length;){let{children:n,sequence:i}=t.pop();for(let s=0;s<n.length;s++){let r=n[s];if(r.children.length&&t.push({children:r.children,sequence:[0,6,23,16,18,8,19,24].includes(r.kind)}),this.clean(r,s,n.length),[10,11,12,13,14,15].includes(r.kind)&&(r.children[0].op=0),i&&r.op&&s+1<n.length&&(r.text||Y(r))){let a=n[s+1];this.functionArgument(a)&&n.splice(++s,0,this.node(3,[],"\u2061",{"data-mjx-texclass":"NONE"}))}if(i&&r.kind===3&&r.relation)for(;s+1<n.length;){let a=n[s+1];if(!a.relation)break;if(this.clean(a,s+1,n.length),!J(r.attributes,a.attributes)){r.attributes.rspace??="0pt",a.attributes.lspace??="0pt";break}a.attributes.stretchy==="false"&&(r.attributes.stretchy="false"),r.text+=a.text,r.attributes["data-mjx-texclass"]="REL",n.splice(s+1,1)}}}}};function ie(b,e,t,n){if(typeof b!="string")throw new TypeError("TeX input must be a string");let i;try{return i=new F(b,e,t,n),i.run()}catch(s){if(!(s instanceof M)&&!(s instanceof Error&&s.message==="Token limit exceeded")||e.throwOnError)throw s;let r=s.message;typeof e.texOptions?.formatError=="function"&&e.texOptions.formatError(null,s);let a=[...(i?.configuration??t).packages].reverse().find(o=>o.formatError)?.formatError;return{kind:"math",attributes:{xmlns:te,...e.display?{display:"block"}:{}},children:a?[a(r,b)]:[{kind:"merror",attributes:{"data-mjx-error":r},children:[{kind:"mtext",attributes:{},children:[],text:r,start:0}],text:"",start:0}],text:"",start:0}}}function le(b={}){let{options:e,configuration:t}=$(b),n=O(),i=(s,r={})=>{let a={...e,...r};return D(ie(s,a,t,n),a)};for(let s of e.prior??[])i(s.tex,{display:s.display??e.display});return{parse:i}}function Te(b,e={}){let t=$(e);return t.options.prior?.length?le(e).parse(b):D(ie(b,t.options,t.configuration,O()),t.options)}export{le as a,Te as b};