satori 0.0.33 → 0.0.34

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.
package/README.md CHANGED
@@ -147,12 +147,11 @@ Satori uses the same Flexbox [layout engine](https://yogalayout.com) as React Na
147
147
  <tr><td><code>max-height</code></td><td>Supported</td></tr>
148
148
 
149
149
  <tr><td rowspan="5"><code>border</code></td></tr>
150
- <tr><td><code>borderWidth</code></td><td>Supported</td></tr>
151
- <tr><td><code>borderStyle</code></td><td><code>solid</code> and <code>dashed</code>, default to <code>solid</code></td></tr>
152
- <tr><td><code>borderColor</code></td><td>Supported</td></tr>
150
+ <tr><td>Width (<code>borderWidth</code>, <code>borderTopWidth</code>, ...)</td><td>Supported</td></tr>
151
+ <tr><td>Style (<code>borderStyle</code>, <code>borderTopStyle</code>, ...)</td><td><code>solid</code> and <code>dashed</code>, default to <code>solid</code></td></tr>
152
+ <tr><td>Color (<code>borderColor</code>, <code>borderTopColor</code>, ...)</td><td>Supported</td></tr>
153
153
  <tr><td>
154
- Shorthand</td><td>Supported, i.e. <code>1px solid gray</code><br/>
155
- Note that it isn't supported to set border width/style/color for individual directions.
154
+ Shorthand (<code>border</code>, <code>borderTop</code>, ...)</td><td>Supported, i.e. <code>1px solid gray</code><br/>
156
155
  </td></tr>
157
156
 
158
157
  <tr><td rowspan="6"><code>borderRadius</code></td></tr>
@@ -160,7 +159,7 @@ Satori uses the same Flexbox [layout engine](https://yogalayout.com) as React Na
160
159
  <tr><td><code>borderTopRightRadius</code></td><td>Supported</td></tr>
161
160
  <tr><td><code>borderBottomLeftRadius</code></td><td>Supported</td></tr>
162
161
  <tr><td><code>borderBottomRightRadius</code></td><td>Supported</td></tr>
163
- <tr><td>Shorthand</td><td>Supported, i.e. <code>5px</code></td></tr>
162
+ <tr><td>Shorthand</td><td>Supported, i.e. <code>5px</code>, <code>50% / 5px</code></td></tr>
164
163
 
165
164
  <tr><td rowspan="10">Flex</td></tr>
166
165
  <tr><td><code>flexDirection</code></td><td><code>column</code>, <code>row</code>, <code>row-reverse</code>, <code>column-reverse</code>, default to <code>row</code></td></tr>
@@ -199,7 +198,7 @@ Satori uses the same Flexbox [layout engine](https://yogalayout.com) as React Na
199
198
  <tr><td><code>backgroundRepeat</code></td><td><code>repeat</code>, <code>repeat-x</code>, <code>repeat-y</code>, <code>no-repeat</code>, defaults to <code>repeat</code></td></tr>
200
199
 
201
200
  <tr><td rowspan="5"><code>transform</code></td></tr>
202
- <tr><td>Translate (<code>translate</code>, <code>translateX</code>, <code>translateY</code>)</td><td>Support absolute values only</td></tr>
201
+ <tr><td>Translate (<code>translate</code>, <code>translateX</code>, <code>translateY</code>)</td><td>Supported</td></tr>
203
202
  <tr><td>Rotate</td><td>Supported</td></tr>
204
203
  <tr><td>Scale (<code>scale</code>, <code>scaleX</code>, <code>scaleY</code>)</td><td>Supported</td></tr>
205
204
  <tr><td>Skew (<code>skew</code>, <code>skewX</code>, <code>skewY</code>)</td><td>Supported</td></tr>
@@ -221,7 +220,7 @@ Satori uses the same Flexbox [layout engine](https://yogalayout.com) as React Na
221
220
 
222
221
  <tr>
223
222
  <td colspan="2"><code>boxShadow</code></td>
224
- <td>Supported except spread radius and inset shadow.<br/>Note: this property works similar to <code>drop-shadow</code> in CSS.</td>
223
+ <td>Supported</td>
225
224
  </tr>
226
225
 
227
226
  <tr>
package/dist/esm/index.js CHANGED
@@ -1,5 +1,7 @@
1
- import*as Nt from"yoga-layout-prebuilt";var mt=Nt;var $e;$e=mt.default;function Gt(e){$e=e}function ee(){return $e}function Ge(e){let t=typeof e;return!(t==="number"||t==="bigint"||t==="string"||t==="boolean")}function bt(e){return/^class\s/.test(Function.prototype.toString.call(e))}function yt(e){let t=typeof e>"u"?[]:[].concat(e).flat(1/0),n=[];for(let o=0;o<t.length;o++){let a=t[o];typeof a>"u"||typeof a=="boolean"||a===null||(typeof a=="number"&&(a=String(a)),typeof a=="string"&&n.length&&typeof n[n.length-1]=="string"?n[n.length-1]+=a:n.push(a))}return n}function pe(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}function K(e,t,n){let o=t[e];return typeof o>"u"?n:o}var ht=void 0,Me,We,Re=[32,160,4961,65792,65793,4153,4241,10].map(e=>String.fromCodePoint(e));function ae(e,t){if(!Me||!We){if(!(typeof Intl<"u"&&"Segmenter"in Intl))throw new Error("Intl.Segmenter does not exist, please use import a polyfill.");Me=new Intl.Segmenter(ht,{granularity:"word"}),We=new Intl.Segmenter(ht,{granularity:"grapheme"})}return t==="word"?[...Me.segment(e)].map(n=>n.segment):[...We.segment(e)].map(n=>n.segment)}function x(e,t,n){let o="";for(let[a,i]of Object.entries(t))typeof i<"u"&&(o+=` ${a}="${i}"`);return n?`<${e}${o}>${n}</${e}>`:`<${e}${o}/>`}function xt(e=20){let t=new Map;function n(a,i){if(t.size>=e){let r=t.keys().next().value;t.delete(r)}t.set(a,i)}function o(a){if(!t.has(a))return;let r=t.get(a);return t.delete(a),t.set(a,r),r}return{set:n,get:o}}var wt={accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",allowReorder:"allowreorder",arabicForm:"arabic-form",attributeName:"attributename",attributeType:"attributetype",autoReverse:"autoreverse",baseFrequency:"basefrequency",baseProfile:"baseprofile",baselineShift:"baseline-shift",calcMode:"calcmode",capHeight:"cap-height",clipPath:"clip-path",clipPathUnits:"clippathunits",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentscripttype",contentStyleType:"contentstyletype",diffuseConstant:"diffuseconstant",dominantBaseline:"dominant-baseline",edgeMode:"edgemode",enableBackground:"enable-background",externalResourcesRequired:"externalresourcesrequired",fillOpacity:"fill-opacity",fillRule:"fill-rule",filterRes:"filterres",filterUnits:"filterunits",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",glyphRef:"glyphref",gradientTransform:"gradienttransform",gradientUnits:"gradientunits",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",imageRendering:"image-rendering",kernelMatrix:"kernelmatrix",kernelUnitLength:"kernelunitlength",keyPoints:"keypoints",keySplines:"keysplines",keyTimes:"keytimes",lengthAdjust:"lengthadjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingconeangle",markerEnd:"marker-end",markerHeight:"markerheight",markerMid:"marker-mid",markerStart:"marker-start",markerUnits:"markerunits",markerWidth:"markerwidth",maskContentUnits:"maskcontentunits",maskUnits:"maskunits",numOctaves:"numoctaves",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathlength",patternContentUnits:"patterncontentunits",patternTransform:"patterntransform",patternUnits:"patternunits",pointerEvents:"pointer-events",pointsAtX:"pointsatx",pointsAtY:"pointsaty",pointsAtZ:"pointsatz",preserveAlpha:"preservealpha",preserveAspectRatio:"preserveaspectratio",primitiveUnits:"primitiveunits",refX:"refx",refY:"refy",renderingIntent:"rendering-intent",repeatCount:"repeatcount",repeatDur:"repeatdur",requiredExtensions:"requiredextensions",requiredFeatures:"requiredfeatures",shapeRendering:"shape-rendering",specularConstant:"specularconstant",specularExponent:"specularexponent",spreadMethod:"spreadmethod",startOffset:"startoffset",stdDeviation:"stddeviation",stitchTiles:"stitchtiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",suppressContentEditableWarning:"suppresscontenteditablewarning",suppressHydrationWarning:"suppresshydrationwarning",surfaceScale:"surfacescale",systemLanguage:"systemlanguage",tableValues:"tablevalues",targetX:"targetx",targetY:"targety",textAnchor:"text-anchor",textDecoration:"text-decoration",textLength:"textlength",textRendering:"text-rendering",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",viewBox:"viewbox",viewTarget:"viewtarget",wordSpacing:"word-spacing",writingMode:"writing-mode",xChannelSelector:"xchannelselector",xHeight:"x-height",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlLang:"xml:lang",xmlSpace:"xmlspace",xmlnsXlink:"xmlns:xlink",yChannelSelector:"ychannelselector",zoomAndPan:"zoomandpan"},Dt=/[\r\n%#()<>?[\\\]^`{|}"']/g;function Ne(e){if(!e)return"";if(Array.isArray(e))return e.map(Ne).join("");if(typeof e!="object")return String(e);let t=e.type;if(t==="text")throw new Error("<text> nodes are not currently supported, please convert them to <path>");let{children:n,...o}=e.props||{};return`<${t}${Object.entries(o).map(([a,i])=>` ${wt[a]||a}="${i}"`).join("")}>${Ne(n)}</${t}>`}function vt(e){let{viewBox:t,viewbox:n,width:o,height:a,className:i,style:r,children:s,...l}=e.props||{};t||(t=n);let m=t.split(" ").map(g=>parseInt(g,10));return l.xmlns="http://www.w3.org/2000/svg",l.viewBox=t,l.width=m[2],l.height=m[3],`data:image/svg+xml;utf8,${`<svg${Object.entries(l).map(([g,u])=>` ${wt[g]||g}="${u}"`).join("")}>${Ne(s)}</svg>`.replace(Dt,encodeURIComponent)}`}var Et={p:{display:"block",marginTop:"1em",marginBottom:"1em"},div:{display:"block"},blockquote:{display:"block",marginTop:"1em",marginBottom:"1em",marginLeft:40,marginRight:40},center:{display:"block",textAlign:"center"},hr:{display:"block",marginTop:"0.5em",marginBottom:"0.5em",marginLeft:"auto",marginRight:"auto",borderWidth:1,borderStyle:"inset"},h1:{display:"block",fontSize:"2em",marginTop:"0.67em",marginBottom:"0.67em",marginLeft:0,marginRight:0,fontWeight:"bold"},h2:{display:"block",fontSize:"1.5em",marginTop:"0.83em",marginBottom:"0.83em",marginLeft:0,marginRight:0,fontWeight:"bold"},h3:{display:"block",fontSize:"1.17em",marginTop:"1em",marginBottom:"1em",marginLeft:0,marginRight:0,fontWeight:"bold"},h4:{display:"block",marginTop:"1.33em",marginBottom:"1.33em",marginLeft:0,marginRight:0,fontWeight:"bold"},h5:{display:"block",fontSize:"0.83em",marginTop:"1.67em",marginBottom:"1.67em",marginLeft:0,marginRight:0,fontWeight:"bold"},h6:{display:"block",fontSize:"0.67em",marginTop:"2.33em",marginBottom:"2.33em",marginLeft:0,marginRight:0,fontWeight:"bold"},u:{textDecoration:"underline"},strong:{fontWeight:"bold"},b:{fontWeight:"bold"},i:{fontStyle:"italic"},em:{fontStyle:"italic"},code:{fontFamily:"monospace"},kbd:{fontFamily:"monospace"},pre:{display:"block",fontFamily:"monospace",whiteSpace:"pre",marginTop:"1em",marginBottom:"1em"},mark:{backgroundColor:"yellow",color:"black"},big:{fontSize:"larger"},small:{fontSize:"smaller"},s:{textDecoration:"line-through"}};var Bt=new Set(["color","font","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","textAlign","textTransform","textShadowOffset","textShadowColor","textShadowRadius","textDecorationLine","textDecorationStyle","textDecorationColor","whiteSpace","transform","wordBreak","opacity","filter","_viewportWidth","_viewportHeight","_inheritedClipPathId","_inheritedBackgroundClipTextPath"]);function De(e){let t={};for(let n in e)Bt.has(n)&&(t[n]=e[n]);return t}import{getPropertyName as tn,getStylesForProperty as nn}from"css-to-react-native";import{parseElementStyle as rn}from"css-background-parser";var he=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ut=he((e,t)=>{t.exports=["em","ex","ch","rem","vh","vw","vmin","vmax","px","mm","cm","in","pt","pc","mozmm"]}),zt=he((e,t)=>{t.exports=["deg","grad","rad","turn"]}),Ht=he((e,t)=>{t.exports=["dpi","dpcm","dppx"]}),Yt=he((e,t)=>{t.exports=["Hz","kHz"]}),Xt=he((e,t)=>{t.exports=["s","ms"]}),jt=Ut(),kt=zt(),St=Ht(),Tt=Yt(),Rt=Xt();function Ue(e){if(/\.\D?$/.test(e))throw new Error("The dot should be followed by a number");if(/^[+-]{2}/.test(e))throw new Error("Only one leading +/- is allowed");if(Vt(e)>1)throw new Error("Only one dot is allowed");if(/%$/.test(e)){this.type="percentage",this.value=Be(e),this.unit="%";return}var t=qt(e);if(!t){this.type="number",this.value=Be(e);return}this.type=Zt(t),this.value=Be(e.substr(0,e.length-t.length)),this.unit=t}Ue.prototype.valueOf=function(){return this.value};Ue.prototype.toString=function(){return this.value+(this.unit||"")};function se(e){return new Ue(e)}function Vt(e){var t=e.match(/\./g);return t?t.length:0}function Be(e){var t=parseFloat(e);if(isNaN(t))throw new Error("Invalid number: "+e);return t}var Jt=[].concat(kt,Tt,jt,St,Rt);function qt(e){var t=e.match(/\D+$/),n=t&&t[0];if(n&&Jt.indexOf(n)===-1)throw new Error("Invalid unit: "+n);return n}var Kt=Object.assign(_e(kt,"angle"),_e(Tt,"frequency"),_e(St,"resolution"),_e(Rt,"time"));function _e(e,t){return Object.fromEntries(e.map(n=>[n,t]))}function Zt(e){return Kt[e]||"length"}import Qt from"postcss-value-parser";function en(e,t){try{let n=new se(e);switch(n.unit){case"px":return{absolute:n.value};case"em":return{absolute:n.value*t};case"rem":return{absolute:n.value*16};case"%":return{relative:n.value};default:return{}}}catch{return{}}}function ze(e,t,n){switch(e){case"top":return{yRelative:0};case"left":return{xRelative:0};case"right":return{xRelative:100};case"bottom":return{yRelative:100};case"center":return{};default:let o=en(e,t);return o.absolute?{[n?"xAbsolute":"yAbsolute"]:o.absolute}:o.relative?{[n?"xRelative":"yRelative"]:o.relative}:{}}}function He(e,t){if(typeof e=="number")return{xAbsolute:e};let n;try{n=Qt(e).nodes.filter(o=>o.type==="word").map(o=>o.value)}catch{return{}}return n.length===1?ze(n[0],t,!0):n.length===2?((n[0]==="top"||n[0]==="bottom"||n[1]==="left"||n[1]==="right")&&n.reverse(),{...ze(n[0],t,!0),...ze(n[1],t,!1)}):{}}var on=new Set(["flex","flexGrow","flexShrink","flexBasis","fontWeight","lineHeight","opacity","scale","scaleX","scaleY"]),an=new Set(["lineHeight"]),_t=[1,0,0,1,0,0];function sn(e,t,n,o){return e==="border"&&!n.includes(t.borderColor)?t.borderColor=o:e==="borderColor"?t.borderColor=t.borderTopColor:e==="textDecoration"&&!n.includes(t.textDecorationColor)&&(t.textDecorationColor=o),t}function It(e,t){return typeof t=="number"?on.has(e)?an.has(e)?t:String(t):t+"px":t}function ln(e,t){return e==="lineHeight"?{lineHeight:It(e,t)}:e==="fontFamily"?{fontFamily:t.split(",").map(n=>n.trim().replace(/(^['"])|(['"]$)/g,"").toLocaleLowerCase())}:null}function fn(e){return e==="transform"?" Only absolute lengths such as `10px` are supported.":""}function Ye(e,t,n,{percentage:o}={percentage:!1}){if(typeof e=="number")return e;try{let a=new se(e);if(a.type==="length")switch(a.unit){case"em":return a.value*t;case"rem":return a.value*16;case"vw":return~~(a.value*n._viewportWidth/100);case"vh":return~~(a.value*n._viewportHeight/100);default:return a.value}else if(a.type==="angle")switch(a.unit){case"deg":return a.value;case"rad":return a.value*180/Math.PI;default:return a.value}else if(a.type==="percentage"&&o)return a.value/100*t}catch{}}function Ie(e,t){let n={};for(let a in e){if(a.startsWith("_")){n[a]=e[a];continue}let i=tn(a);try{Object.assign(n,ln(i,e[a])||sn(i,nn(i,It(i,e[a]),!0),e[a],e.color||t.color))}catch(r){throw console.error(r),new Error(`Failed to parse CSS \`${i}: ${e[a]}\`.${fn(i)}`)}}if(n.backgroundImage){let{backgrounds:a}=rn(n);n.backgroundImage=a}let o=typeof n.fontSize=="number"?n.fontSize:t.fontSize;if(typeof o=="string")try{let a=new se(o);switch(a.unit){case"em":o=a.value*t.fontSize;break;case"rem":o=a.value*16;break}}catch{o=16}typeof n.fontSize<"u"&&(n.fontSize=o),n.transformOrigin&&(n.transformOrigin=He(n.transformOrigin,o));for(let a in n){let i=n[a];if(a==="lineHeight")typeof i=="string"&&(i=n[a]=Ye(i,o,t,{percentage:!0})/o);else if(typeof i=="string"){let r=Ye(i,o,t);typeof r<"u"&&(n[a]=r),i=n[a]}if(a==="opacity"&&(i=n[a]=i*t.opacity),a==="transform"){let r=[..._t],s=i;for(let l of s){let m=Object.keys(l)[0],g=l[m],u=typeof g=="string"?Ye(g,o,t):g,d=[..._t];switch(m){case"translateX":d[4]=u;break;case"translateY":d[5]=u;break;case"scale":d[0]=u,d[3]=u;break;case"scaleX":d[0]=u;break;case"scaleY":d[3]=u;break;case"rotate":let h=u*Math.PI/180,f=Math.cos(h),c=Math.sin(h);d[0]=f,d[1]=c,d[2]=-c,d[3]=f;break;case"skewX":d[2]=Math.tan(u*Math.PI/180);break;case"skewY":d[1]=Math.tan(u*Math.PI/180);break}r=pe(d,r)}n.transform=r}}return n}function un(e){let t=new DataView(e),n=4,o=t.byteLength;for(;n<o;){let a=t.getUint16(n,!1);if(a>o)throw new TypeError("Invalid JPEG");let i=t.getUint8(a+1+n);if(i===192||i===193||i===194)return[t.getUint16(a+7+n,!1),t.getUint16(a+5+n,!1)];n+=a+2}throw new TypeError("Invalid JPEG")}function cn(e){let t=new Uint8Array(e.slice(6,10));return[t[0]|t[1]<<8,t[2]|t[3]<<8]}function dn(e){let t=new DataView(e);return[t.getUint16(18,!1),t.getUint16(22,!1)]}var Ct=xt(100),Xe=new Map,pn=["image/png","image/jpeg","image/gif","image/svg+xml"];function gn(e){let t="",n=new Uint8Array(e);for(let o=0;o<n.byteLength;o++)t+=String.fromCharCode(n[o]);return btoa(t)}async function Ce(e){if(!e)throw new Error("Image source is not provided.");if(e.startsWith("data:"))return[e];if(!globalThis.fetch)throw new Error("`fetch` is required to be polyfilled to load images.");if(Xe.has(e))return Xe.get(e);let t=Ct.get(e);if(t)return t;let n=new Promise((o,a)=>{fetch(e).then(i=>i.arrayBuffer()).then(i=>{let r,s;switch([...new Uint8Array(i.slice(0,4))].map(u=>u.toString(16)).join("")){case"89504e47":r="image/png",s=dn(i);break;case"47494638":r="image/gif",s=cn(i);break;case"ffd8ffe0":case"ffd8ffe1":case"ffd8ffe2":case"ffd8ffe3":case"ffd8ffe8":r="image/jpeg",s=un(i);break}if(!pn.includes(r))throw new Error(`Unsupported image type: ${r||"unknown"}`);let g=`data:${r};base64,${gn(i)}`;Ct.set(e,[g,...s]),o([g,...s])}).catch(a)});return Xe.set(e,n),n}async function je(e,t,n,o,a){let i=ee(),r={...n,...Ie(Et[t],n),...Ie(o,n)};if(t==="img"){let[s,l,m]=await Ce(a.src);if(l===void 0&&m===void 0){if(a.width===void 0||a.height===void 0)throw new Error("Image size cannot be determined. Please provide the width and height of the image.");l=parseInt(a.width),m=parseInt(a.height)}let g=m/l,u=r.width||a.width,d=r.height||a.height;!u&&!d&&(u=l,d=m),u||(u=d/g),d||(d=u*g),r.width=u,r.height=d,r.__src=s}if(t==="svg"){let l=(a.viewBox||a.viewbox).split(" ").map(d=>parseInt(d,10)),m=l[3]/l[2],{width:g,height:u}=a;typeof g>"u"&&u?typeof u=="string"&&u.endsWith("%")?g=parseInt(u)/m+"%":g=parseInt(u)/m:typeof u>"u"&&g?typeof g=="string"&&g.endsWith("%")?u=parseInt(g)*m+"%":u=parseInt(g)*m:(g||(g=l[2]),u||(u=l[3])),r.width||(r.width=g),r.height||(r.height=u)}return e.setDisplay(K(r.display,{flex:i.DISPLAY_FLEX,none:i.DISPLAY_NONE},i.DISPLAY_FLEX)),e.setAlignContent(K(r.alignContent,{stretch:i.ALIGN_STRETCH,center:i.ALIGN_CENTER,"flex-start":i.ALIGN_FLEX_START,"flex-end":i.ALIGN_FLEX_END,"space-between":i.ALIGN_SPACE_BETWEEN,"space-around":i.ALIGN_SPACE_AROUND,baseline:i.ALIGN_BASELINE,normal:i.ALIGN_AUTO},i.ALIGN_AUTO)),e.setAlignItems(K(r.alignItems,{stretch:i.ALIGN_STRETCH,center:i.ALIGN_CENTER,"flex-start":i.ALIGN_FLEX_START,"flex-end":i.ALIGN_FLEX_END,baseline:i.ALIGN_BASELINE,normal:i.ALIGN_AUTO},i.ALIGN_FLEX_START)),e.setAlignSelf(K(r.alignSelf,{stretch:i.ALIGN_STRETCH,center:i.ALIGN_CENTER,"flex-start":i.ALIGN_FLEX_START,"flex-end":i.ALIGN_FLEX_END,baseline:i.ALIGN_BASELINE,normal:i.ALIGN_AUTO},i.ALIGN_AUTO)),e.setJustifyContent(K(r.justifyContent,{center:i.JUSTIFY_CENTER,"flex-start":i.JUSTIFY_FLEX_START,"flex-end":i.JUSTIFY_FLEX_END,"space-between":i.JUSTIFY_SPACE_BETWEEN,"space-around":i.JUSTIFY_SPACE_AROUND},i.JUSTIFY_FLEX_START)),e.setFlexDirection(K(r.flexDirection,{row:i.FLEX_DIRECTION_ROW,column:i.FLEX_DIRECTION_COLUMN,"row-reverse":i.FLEX_DIRECTION_ROW_REVERSE,"column-reverse":i.FLEX_DIRECTION_COLUMN_REVERSE},i.FLEX_DIRECTION_ROW)),e.setFlexWrap(K(r.flexWrap,{wrap:i.WRAP_WRAP,nowrap:i.WRAP_NO_WRAP,"wrap-reverse":i.WRAP_WRAP_REVERSE},i.WRAP_NO_WRAP)),typeof r.flexBasis<"u"&&e.setFlexBasis(r.flexBasis),e.setFlexGrow(typeof r.flexGrow>"u"?0:r.flexGrow),e.setFlexShrink(typeof r.flexShrink>"u"?0:r.flexShrink),typeof r.maxHeight<"u"&&e.setMaxHeight(r.maxHeight),typeof r.maxWidth<"u"&&e.setMaxWidth(r.maxWidth),typeof r.minHeight<"u"&&e.setMinHeight(r.minHeight),typeof r.minWidth<"u"&&e.setMinWidth(r.minWidth),e.setOverflow(K(r.overflow,{visible:i.OVERFLOW_VISIBLE,hidden:i.OVERFLOW_HIDDEN},i.OVERFLOW_VISIBLE)),e.setMargin(i.EDGE_TOP,r.marginTop||0),e.setMargin(i.EDGE_BOTTOM,r.marginBottom||0),e.setMargin(i.EDGE_LEFT,r.marginLeft||0),e.setMargin(i.EDGE_RIGHT,r.marginRight||0),e.setBorder(i.EDGE_TOP,r.borderWidth||0),e.setBorder(i.EDGE_BOTTOM,r.borderWidth||0),e.setBorder(i.EDGE_LEFT,r.borderWidth||0),e.setBorder(i.EDGE_RIGHT,r.borderWidth||0),e.setPadding(i.EDGE_TOP,r.paddingTop||0),e.setPadding(i.EDGE_BOTTOM,r.paddingBottom||0),e.setPadding(i.EDGE_LEFT,r.paddingLeft||0),e.setPadding(i.EDGE_RIGHT,r.paddingRight||0),e.setPositionType(K(r.position,{absolute:i.POSITION_TYPE_ABSOLUTE,relative:i.POSITION_TYPE_RELATIVE},i.POSITION_TYPE_RELATIVE)),typeof r.top<"u"&&e.setPosition(i.EDGE_TOP,r.top),typeof r.bottom<"u"&&e.setPosition(i.EDGE_BOTTOM,r.bottom),typeof r.left<"u"&&e.setPosition(i.EDGE_LEFT,r.left),typeof r.right<"u"&&e.setPosition(i.EDGE_RIGHT,r.right),typeof r.height<"u"?e.setHeight(r.height):e.setHeightAuto(),typeof r.width<"u"?e.setWidth(r.width):e.setWidthAuto(),[r,De(r)]}function le({left:e,top:t,width:n,height:o},a,i,r){var l,m,g,u;let s;if(i)s=a;else{let d=(m=r==null?void 0:r.xAbsolute)!=null?m:((l=r==null?void 0:r.xRelative)!=null?l:50)*n/100,h=(u=r==null?void 0:r.yAbsolute)!=null?u:((g=r==null?void 0:r.yRelative)!=null?g:50)*o/100,f=e+d,c=t+h;s=pe([1,0,0,1,f,c],pe(a,[1,0,0,1,-f,-c])),a.__parent&&(s=pe(a.__parent,s)),a.splice(0,6,...s)}return`matrix(${s.map(d=>d.toFixed(2)).join(",")})`}function At({left:e,top:t,width:n,height:o,isInheritingTransform:a},i){let r="",s=1;return i.transform&&(r=le({left:e,top:t,width:n,height:o},i.transform,a,i.transformOrigin)),i.opacity&&(s=+i.opacity),{matrix:r,opacity:s}}function Ve({id:e,content:t,filter:n,left:o,top:a,width:i,height:r,matrix:s,opacity:l,image:m,clipPathId:g,debug:u,shape:d,decorationShape:h},f){let c="";if(u&&(c=x("rect",{x:o,y:a-r,width:i,height:r,fill:"transparent",stroke:"#575eff","stroke-width":1,transform:s||void 0,"clip-path":g?`url(#${g})`:void 0})),m){let y={href:m,x:o,y:a,width:i,height:r,transform:s||void 0,"clip-path":g?`url(#${g})`:void 0,style:f.filter?`filter:${f.filter}`:void 0};return[(n?`${n}<g filter="url(#satori_s-${e})">`:"")+x("image",{...y,opacity:l!==1?l:void 0})+(h||"")+(n?"</g>":"")+c,""]}let b={x:o,y:a,width:i,height:r,"font-weight":f.fontWeight,"font-style":f.fontStyle,"font-size":f.fontSize,"font-family":f.fontFamily,"letter-spacing":f.letterSpacing||void 0,transform:s||void 0,"clip-path":g?`url(#${g})`:void 0,style:f.filter?`filter:${f.filter}`:void 0};return[(n?`${n}<g filter="url(#satori_s-${e})">`:"")+x("text",{...b,fill:f.color,opacity:l!==1?l:void 0},t)+(h||"")+(n?"</g>":"")+c,d?x("text",b,t):""]}function fe({id:e,width:t,height:n},o){if(!o.shadowColor||!o.shadowOffset||typeof o.shadowRadius>"u")return"";let a=o.shadowRadius*o.shadowRadius/4,i=Math.min(o.shadowOffset.width-a,0),r=Math.max(o.shadowOffset.width+a+t,t),s=Math.min(o.shadowOffset.height-a,0),l=Math.max(o.shadowOffset.height+a+n,n);return`<defs><filter id="satori_s-${e}" x="${i/t*100}%" y="${s/n*100}%" width="${(r-i)/t*100}%" height="${(l-s)/n*100}%"><feDropShadow dx="${o.shadowOffset.width}" dy="${o.shadowOffset.height}" stdDeviation="${o.shadowRadius/2}" flood-color="${o.shadowColor}" flood-opacity="1"/></filter></defs>`}function Je({width:e,left:t,top:n,ascender:o,clipPathId:a},i){let{textDecorationColor:r,textDecorationStyle:s,textDecorationLine:l,fontSize:m}=i;if(!l||l==="none")return"";let g=Math.max(1,m*.1),u=l==="line-through"?n+o*.5:l==="underline"?n+o*1.1:n,d=s==="dashed"?`${g*1.2} ${g*2}`:s==="dotted"?`0 ${g*2}`:void 0;return x("line",{x1:t,y1:u,x2:t+e,y2:u,stroke:r,"stroke-width":g,"stroke-dasharray":d,"stroke-linecap":s==="dotted"?"round":"square","clip-path":a?`url(#${a})`:void 0})}var qe=void 0;async function*Ke(e,t){var dt;let n=ee(),{parentStyle:o,inheritedStyle:a,parent:i,font:r,id:s,isInheritingTransform:l,debug:m,embedFont:g,graphemeImages:u,canLoadAdditionalAssets:d}=t;o.textTransform==="uppercase"?e=e.toLocaleUpperCase(qe):o.textTransform==="lowercase"?e=e.toLocaleLowerCase(qe):o.textTransform==="capitalize"&&(e=ae(e,"word").map(_=>ae(_,"grapheme").map((C,A)=>A===0?C.toLocaleUpperCase(qe):C).join("")).join(""));let h=K(o.wordBreak,{normal:"word","break-all":"grapheme","break-word":"grapheme","keep-all":"word"},"word"),f=ae(e,h),c=n.Node.create();c.setAlignItems(n.ALIGN_BASELINE),o.textAlign==="left"?c.setJustifyContent(n.JUSTIFY_FLEX_START):o.textAlign==="center"?c.setJustifyContent(n.JUSTIFY_CENTER):o.textAlign==="right"?c.setJustifyContent(n.JUSTIFY_FLEX_END):o.textAlign==="justify"&&c.setJustifyContent(n.JUSTIFY_SPACE_BETWEEN),i.insertChild(c,i.getChildCount());let{textAlign:b,textOverflow:y,whiteSpace:v,lineHeight:O,filter:$,_inheritedBackgroundClipTextPath:N}=o,W=o.fontSize,R=r.getEngine(W,O,o),V=d?f.filter(_=>!R.check(_)):[];yield V,V.length&&(R=r.getEngine(W,O,o));let L=[],E=[],M=[],G=[],z=new Map,k=_=>{let C=0;for(let A of _){if(z.has(A)){C+=z.get(A);continue}let U=R.measure(A,o);z.set(A,U),C+=U}return C},P=0,J=[],p=0;for(let _ of f){let C=!1,A=u&&u[_];v==="pre"?C=_[0]===`
2
- `:v!=="nowrap"&&(A||Re.includes(_[0]))&&(C=!0),C?(v==="nowrap"?p+=k(J)+o.fontSize:(P=Math.max(P,k(J)),A&&(P=Math.max(P,o.fontSize))),J=[]):(!Re.includes(_[0])||!J.length)&&J.push(_===`
3
- `?" ":_)}P=Math.max(P,k(J)+p);let w=i.getMinWidth(),I=i.getMaxWidth(),Z=i.getWidth();isNaN(Z.value)&&(isNaN(w.value)||w.unit===1&&w.value>P)&&(isNaN(I.value)||I.unit===1&&(P=Math.min(P,I.value)),i.setMinWidth(P)),typeof o.flexShrink>"u"&&i.setFlexShrink(1);let ge=v==="pre-wrap"||v==="pre";c.setMeasureFunc(_=>{let C=0,A="",U=0,H=0,Y=0,X=-1,re=0,F=0,ie=0;L=[],M=[0];for(let ne=0;ne<f.length;ne++){let D=f[ne];if(!ge&&Re.includes(D[0]))A||(A=" "),U=k([A]),G[ne]=null;else{let oe=ge&&D===`
4
- `,j=oe?0:u&&u[D]?o.fontSize:k([D]);H||(A="",U=0);let B=U||",.!?:-@)>]}%#".indexOf(D[0])<0,q=!H||!!U;if(oe||ne&&B&&H+U+j>_&&v!=="nowrap"&&v!=="pre")L.push(H),E.push(ie),C++,re+=F,H=j,F=j?R.height(D):0,ie=j?R.baseline(D):0,M.push(1),X=-1,oe||(Y=Math.max(Y,_));else{H+=U+j;let de=R.height(D);de>F&&(F=de,ie=R.baseline(D)),q&&M[M.length-1]++}A="",U=0,q&&X++,Y=Math.max(Y,H),G[ne]={y:re,x:H-j,width:j,line:C,lineIndex:X}}}return H&&(C++,L.push(H),E.push(ie),re+=F),{width:Y,height:re}});let[$t,Mt]=yield,Pe="",we="",te=a._inheritedClipPathId,{left:st,top:lt,width:ve,height:ft}=c.getComputedLayout(),Oe=i.getComputedWidth()-i.getComputedPadding(n.EDGE_LEFT)-i.getComputedPadding(n.EDGE_RIGHT)-i.getComputedBorder(n.EDGE_LEFT)-i.getComputedBorder(n.EDGE_RIGHT),ue=$t+st,ce=Mt+lt,{matrix:Q,opacity:Ee}=At({left:st,top:lt,width:ve,height:ft,isInheritingTransform:l},o),ke="";o.textShadowOffset&&(ke=fe({width:ve,height:ft,id:s},{shadowColor:o.textShadowColor,shadowOffset:o.textShadowOffset,shadowRadius:o.textShadowRadius}));let me="",Se="",ut="",Fe=-1,ct=y==="ellipsis"?k(["\u2026"]):0,Wt=y==="ellipsis"?k([" "]):0,Te={};for(let _=0;_<f.length;_++){if(!G[_])continue;let C=G[_],A=f[_],U=null,H=u?u[A]:null,Y=C.y,X=C.x,re=C.width,F=C.line;if(F===Fe)continue;let ie=!1;if(L.length>1){let B=ve-L[F];if(b==="right"||b==="end")X+=B;else if(b==="center")X+=B/2;else if(b==="justify"&&F<L.length-1){let q=M[F];X+=(q>1?B/(q-1):0)*C.lineIndex,ie=!0}}if(Te[F]||(Te[F]=[X,ie?ve:L[F]]),y==="ellipsis"&&L[F]>Oe&&C.x+re+ct+Wt>Oe){let B=ae(A,"grapheme"),q="",de=0;for(let pt of B){let gt=C.x+k([q+pt]);if(q&&gt+ct>Oe)break;q+=pt,de=gt}A=q+"\u2026",Fe=F,Te[F][1]=de}let ne=E[F],D=R.baseline(A),oe=R.height(A),j=ne-D;if(H?Y+=0:g?(U=R.getSVG(A,{...o,left:ue+X,top:ce+Y+D+j,letterSpacing:o.letterSpacing}),m&&(ut+=x("rect",{x:ue+X,y:ce+Y+j,width:C.width,height:oe,fill:"transparent",stroke:"#575eff","stroke-width":1,transform:Q||void 0,"clip-path":te?`url(#${te})`:void 0})+x("line",{x1:ue+X,x2:ue+X+C.width,y1:ce+Y+j+D,y2:ce+Y+j+D,stroke:"#14c000","stroke-width":1,transform:Q||void 0,"clip-path":te?`url(#${te})`:void 0}))):Y+=D+j,o.textDecorationLine&&(F!==((dt=G[_+1])==null?void 0:dt.line)||Fe===F)){let B=Te[F];B&&!B[2]&&(me+=Je({left:ue+B[0],top:ce+oe*+F,width:B[1],ascender:R.baseline(A),clipPathId:te},o),B[2]=1)}if(U!==null)Se+=U+" ";else{let[B,q]=Ve({content:A,filter:ke,id:s,left:ue+X,top:ce+Y,width:re,height:oe,matrix:Q,opacity:Ee,image:H,clipPathId:te,debug:m,shape:!!N,decorationShape:me},o);Pe+=B,we+=q,me=""}}if(Se){let _=o.color!=="transparent"&&Ee!==0?x("path",{fill:o.color,d:Se,transform:Q||void 0,opacity:Ee!==1?Ee:void 0,"clip-path":te?`url(#${te})`:void 0,style:$?`filter:${$}`:void 0}):"";N&&(we=x("path",{d:Se,transform:Q||void 0})),Pe+=(ke?ke+x("g",{filter:`url(#satori_s-${s})`},_+me):_+me)+ut}return we&&(o._inheritedBackgroundClipTextPath.value+=we),Pe}var Ze=Ze||{};Ze.parse=function(){var e={linearGradient:/^(\-(webkit|o|ms|moz)\-)?(linear\-gradient)/i,repeatingLinearGradient:/^(\-(webkit|o|ms|moz)\-)?(repeating\-linear\-gradient)/i,radialGradient:/^(\-(webkit|o|ms|moz)\-)?(radial\-gradient)/i,repeatingRadialGradient:/^(\-(webkit|o|ms|moz)\-)?(repeating\-radial\-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/,percentageValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/,emValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/,angleValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^\#([0-9a-fA-F]+)/,literalColor:/^([a-zA-Z]+)/,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,number:/^(([0-9]*\.[0-9]+)|([0-9]+\.?))/},t="";function n(p){var w=new Error(t+": "+p);throw w.source=t,w}function o(){var p=a();return t.length>0&&n("Invalid input not EOF"),p}function a(){return O(i)}function i(){return r("linear-gradient",e.linearGradient,l)||r("repeating-linear-gradient",e.repeatingLinearGradient,l)||r("radial-gradient",e.radialGradient,u)||r("repeating-radial-gradient",e.repeatingRadialGradient,u)}function r(p,w,I){return s(w,function(Z){var ge=I();return ge&&(P(e.comma)||n("Missing comma before color stops")),{type:p,orientation:ge,colorStops:O($)}})}function s(p,w){var I=P(p);if(I){P(e.startCall)||n("Missing (");var Z=w(I);return P(e.endCall)||n("Missing )"),Z}}function l(){return m()||g()}function m(){return k("directional",e.sideOrCorner,1)}function g(){return k("angular",e.angleValue,1)}function u(){var p,w=d(),I;return w&&(p=[],p.push(w),I=t,P(e.comma)&&(w=d(),w?p.push(w):t=I)),p}function d(){var p=h()||f();if(p)p.at=b();else{var w=c();if(w){p=w;var I=b();I&&(p.at=I)}else{var Z=y();Z&&(p={type:"default-radial",at:Z})}}return p}function h(){var p=k("shape",/^(circle)/i,0);return p&&(p.style=z()||c()),p}function f(){var p=k("shape",/^(ellipse)/i,0);return p&&(p.style=M()||c()),p}function c(){return k("extent-keyword",e.extentKeywords,1)}function b(){if(k("position",/^at/,0)){var p=y();return p||n("Missing positioning value"),p}}function y(){var p=v();if(p.x||p.y)return{type:"position",value:p}}function v(){return{x:M(),y:M()}}function O(p){var w=p(),I=[];if(w)for(I.push(w);P(e.comma);)w=p(),w?I.push(w):n("One extra comma");return I}function $(){var p=N();return p||n("Expected color definition"),p.length=M(),p}function N(){return R()||L()||V()||W()}function W(){return k("literal",e.literalColor,0)}function R(){return k("hex",e.hexColor,1)}function V(){return s(e.rgbColor,function(){return{type:"rgb",value:O(E)}})}function L(){return s(e.rgbaColor,function(){return{type:"rgba",value:O(E)}})}function E(){return P(e.number)[1]}function M(){return k("%",e.percentageValue,1)||G()||z()}function G(){return k("position-keyword",e.positionKeywords,1)}function z(){return k("px",e.pixelValue,1)||k("em",e.emValue,1)}function k(p,w,I){var Z=P(w);if(Z)return{type:p,value:Z[I]}}function P(p){var w,I;return I=/^[\n\r\t\s]+/.exec(t),I&&J(I[0].length),w=p.exec(t),w&&J(w[0].length),w}function J(p){t=t.substr(p)}return function(p){return t=p.toString(),o()}}();var Qe=Ze;function mn(e){return e.type==="literal"?e.value:e.type==="hex"?`#${e.value}`:e.type==="rgb"?`rgb(${e.value.join(",")})`:e.type==="rgba"?`rgba(${e.value.join(",")})`:"transparent"}function hn(e,t){return typeof e=="string"&&e.endsWith("%")?t*parseFloat(e)/100:+e}function et(e,{x:t,y:n,defaultX:o,defaultY:a}){return(e?e.split(" ").map(i=>{try{let r=new se(i);return r.type==="length"||r.type==="number"?r.value:r.value+r.unit}catch{return null}}).filter(i=>i!==null):[o,a]).map((i,r)=>hn(i,[t,n][r]))}function Lt(e,t){let n=[];for(let r of t){let s=mn(r);if(!n.length&&(n.push({offset:0,color:s}),typeof r.length>"u"||r.length.value==="0"))continue;let l=typeof r.length>"u"?void 0:r.length.type==="%"?r.length.value/100:r.length.value/e;n.push({offset:l,color:s})}n.length||n.push({offset:0,color:"transparent"});let o=n[n.length-1];o.offset!==1&&(typeof o.offset>"u"?o.offset=1:n.push({offset:1,color:o.color}));let a=0,i=1;for(let r=0;r<n.length;r++)if(typeof n[r].offset>"u"){for(i<r&&(i=r);typeof n[i].offset>"u";)i++;n[r].offset=(n[i].offset-n[a].offset)/(i-a)*(r-a)+n[a].offset}else a=r;return n}async function tt({id:e,width:t,height:n},{image:o,size:a,position:i,repeat:r}){r=r||"repeat";let s=r==="repeat-x"||r==="repeat",l=r==="repeat-y"||r==="repeat",m=et(a,{x:t,y:n,defaultX:t,defaultY:n}),g=et(i,{x:t,y:n,defaultX:0,defaultY:0});if(o.startsWith("linear-gradient(")){let u=Qe.parse(o)[0],d,h,f,c;if(u.orientation.type==="directional")[d,h,f,c]={top:[0,1,0,0],bottom:[0,0,0,1],left:[1,0,0,0],right:[0,0,1,0]}[u.orientation.value];else if(u.orientation.type==="angular"){let y=+u.orientation.value/180*Math.PI-Math.PI/2,v=Math.cos(y),O=Math.sin(y);d=0,h=0,f=v,c=O,f<0&&(d-=f,f=0),c<0&&(h-=c,c=0)}let b=Lt(t,u.colorStops);return[`satori_bi${e}`,`<linearGradient id="satori_bi${e}" x1="${d}" y1="${h}" x2="${f}" y2="${c}">${b.map(y=>`<stop offset="${y.offset*100}%" stop-color="${y.color}"/>`).join("")}</linearGradient>`]}if(o.startsWith("radial-gradient(")){let u=Qe.parse(o)[0],d=u.orientation[0],[h,f]=m,c="circle",b=h/2,y=f/2;if(d.type==="shape"){if(c=d.value,d.at)if(d.at.type==="position")b=d.at.value.x.value,y=d.at.value.y.value;else throw new Error("orientation.at.type not implemented: "+d.at.type)}else throw new Error("orientation.type not implemented: "+d.type);let v=Lt(t,u.colorStops),O=`satori_radial_${e}`,$=`satori_pattern_${e}`,N={},W=Math.max(Math.abs(h-b),Math.abs(b)),R=Math.max(Math.abs(f-y),Math.abs(y));if(c==="circle")N.r=Math.sqrt(W*W+R*R);else if(c==="ellipse"){let E=R!==0?W/R:1;N.ry=Math.sqrt(W*W+R*R*E*E)/E,N.rx=N.ry*E}let V=x("pattern",{id:$,x:g[0],y:g[1],width:s?h:"100%",height:l?f:"100%",patternUnits:"userSpaceOnUse"},x("radialGradient",{id:O},v.map(E=>x("stop",{offset:E.offset,"stop-color":E.color})).join(""))+x(c,{cx:b,cy:y,width:h,height:f,...N,fill:`url(#${O})`}));return[$,V]}if(o.startsWith("url(")){let u=et(a,{x:t,y:n,defaultX:0,defaultY:0}),[d,h,f]=await Ce(o.slice(4,-1)),c=u[0]||h,b=u[1]||f;return[`satori_bi${e}`,x("pattern",{id:`satori_bi${e}`,patternContentUnits:"userSpaceOnUse",patternUnits:"userSpaceOnUse",x:g[0],y:g[1],width:s?c:"100%",height:l?b:"100%"},x("image",{x:0,y:0,width:c,height:b,href:d}))]}}function Ae(e,t,n){return n<e+t&&(n/2<e&&n/2<t?e=t=n/2:n/2<e?e=n-t:n/2<t&&(t=n-e)),[e,t]}function be({left:e,top:t,width:n,height:o},a){let{borderTopLeftRadius:i,borderTopRightRadius:r,borderBottomLeftRadius:s,borderBottomRightRadius:l}=a;return i=Math.min(i||0,n,o),r=Math.min(r||0,n,o),s=Math.min(s||0,n,o),l=Math.min(l||0,n,o),!i&&!r&&!s&&!l?"":([i,r]=Ae(i,r,n),[i,s]=Ae(i,s,o),[r,l]=Ae(r,l,o),[s,l]=Ae(s,l,n),`M${e+i},${t} h${n-i-r} a${r},${r} 0 0 1 ${r},${r} v${o-r-l} a${l},${l} 0 0 1 ${-l},${l} h${l+s-n} a${s},${s} 0 0 1 ${-s},${-s} v${s+i-o} a${i},${i} 0 0 1 ${i},${-i}`)}function nt({left:e,top:t,width:n,height:o,path:a,id:i},r){return r.overflow!=="hidden"?"":a?x("clipPath",{id:`satori_cp-${i}`,"clip-path":r._inheritedClipPathId?`url(#${r._inheritedClipPathId})`:void 0},x("path",{x:e,y:t,width:n,height:o,d:a})):x("clipPath",{id:`satori_cp-${i}`,"clip-path":r._inheritedClipPathId?`url(#${r._inheritedClipPathId})`:void 0},x("rect",{x:e,y:t,width:n,height:o}))}async function rt({id:e,left:t,top:n,width:o,height:a,isInheritingTransform:i,debug:r},s){if(s.display==="none")return"";let l="rect",m="transparent",g="",u=0,d="",h="",f=[],c=1,b="";s.backgroundColor&&f.push(s.backgroundColor),s.borderWidth&&(u=s.borderWidth,m=s.borderColor,s.borderStyle==="dashed"&&(g=u*2+" "+u)),s.opacity&&(c=+s.opacity),s.transform&&(d=le({left:t,top:n,width:o,height:a},s.transform,i,s.transformOrigin));let y="";if(s.backgroundImage){let L=[];for(let E=0;E<s.backgroundImage.length;E++){let M=s.backgroundImage[E],G=await tt({id:e+"_"+E,width:o,height:a},M);G&&L.push(G)}for(let E of L)f.push(`url(#${E[0]})`),h+=E[1],E[2]&&(y+=E[2])}let v=be({left:t,top:n,width:o,height:a},s);v&&(l="path");let O=nt({left:t,top:n,width:o,height:a,path:v,id:e},s),$=s._inheritedClipPathId,N=fe({width:o,height:a,id:e},s);r&&(b=x("rect",{x:t,y:n,width:o,height:a,fill:"transparent",stroke:"#ff5757","stroke-width":1,"stroke-dasharray":g||void 0,transform:d||void 0,"clip-path":$?`url(#${$})`:void 0})),f.length||f.push("transparent");let{backgroundClip:W,filter:R}=s,V=f.map((L,E)=>{if(L==="transparent"&&!(E===f.length-1&&u))return"";let M=!!u,G=E===f.length-1&&M&&W!=="text",z=W==="text"?`url(#satori_bct-${e})`:$?`url(#${$})`:void 0;return G&&(h+=x("clipPath",{id:`satori_bc-${e}`,"clip-path":z},x(l,{x:t,y:n,width:o,height:a,d:v||void 0})),z=`url(#satori_bc-${e})`),x(l,{x:t,y:n,width:o,height:a,fill:L,stroke:G||M?m:void 0,"stroke-width":G?u*2:M?1:void 0,"stroke-dasharray":g||void 0,d:v||void 0,transform:d||void 0,"clip-path":z,style:R?`filter:${R}`:void 0})}).join("");return W==="text"&&u&&(V=x(l,{x:t,y:n,width:o,height:a,fill:"transparent",stroke:m,"stroke-width":u*2,"stroke-dasharray":g||void 0,d:v||void 0,transform:d||void 0,"clip-path":$?`url(#${$})`:void 0})+V),(h?`<defs>${h}</defs>`:"")+O+(N?`${N}<g filter="url(#satori_s-${e})">`:"")+(c!==1?`<g opacity="${c}">`:"")+(y||V)+(c!==1?"</g>":"")+(N?"</g>":"")+b}function Le({id:e,left:t,top:n,width:o,height:a,src:i,debug:r,isInheritingTransform:s},l){if(l.display==="none")return"";let m="",g=1,u="",d=l.objectFit==="contain"?"xMidYMid":l.objectFit==="cover"?"xMidYMid slice":"none",h=be({left:t,top:n,width:o,height:a},l),f=l._inheritedClipPathId;h&&(m=x("clipPath",{id:`satori_c-${e}`,"clip-path":f?`url(#${f})`:void 0},x("path",{x:t,y:n,width:o,height:a,d:h}))),l.opacity&&(g=+l.opacity);let c=fe({width:o,height:a,id:e},l);return l.transform&&(u=le({left:t,top:n,width:o,height:a},l.transform,s,l.transformOrigin)),c+(c?`<g filter="url(#satori_s-${e})">`:"")+m+x("image",{x:t,y:n,width:o,height:a,href:i,preserveAspectRatio:d,transform:u||void 0,"clip-path":m?`url(#satori_c-${e})`:f?`url(#${f})`:void 0})+(c?"</g>":"")}async function*ye(e,t){var J;let n=ee(),{id:o,inheritedStyle:a,parent:i,font:r,debug:s,embedFont:l=!0,graphemeImages:m,canLoadAdditionalAssets:g}=t;if(e===null||typeof e>"u")return yield,yield,"";if(!Ge(e)||typeof e.type=="function"){let p;if(!Ge(e))p=Ke(String(e),t),yield(await p.next()).value;else{if(bt(e.type))throw new Error("Class component is not supported.");p=ye(e.type(e.props),t),yield(await p.next()).value}await p.next();let w=yield;return(await p.next(w)).value}let{type:u,props:d}=e,{style:h,children:f}=d||{},c=n.Node.create();i.insertChild(c,i.getChildCount());let[b,y]=await je(c,u,a,h,d),v=b.transform===a.transform;if(v||(b.transform.__parent=a.transform),b.overflow==="hidden"&&(y._inheritedClipPathId=`satori_cp-${o}`),b.backgroundClip==="text"){let p={value:""};y._inheritedBackgroundClipTextPath=p,b._inheritedBackgroundClipTextPath=p}let O=yt(f),$=[],N=0,W=[];for(let p of O){let w=ye(p,{id:o+"-"+N++,parentStyle:b,inheritedStyle:y,isInheritingTransform:!0,parent:c,font:r,embedFont:l,debug:s,graphemeImages:m,canLoadAdditionalAssets:g});g?W.push(...(await w.next()).value||[]):await w.next(),$.push(w)}yield W;for(let p of $)await p.next();let[R,V]=yield,{left:L,top:E,width:M,height:G}=c.getComputedLayout();L+=R,E+=V;let z="",k="",P="";if(u==="img"){let p=b.__src;k=Le({id:o,left:L,top:E,width:M,height:G,src:p,isInheritingTransform:v,debug:s},b)}else if(u==="svg"){let p=vt(e);k=Le({id:o,left:L,top:E,width:M,height:G,src:p,isInheritingTransform:v,debug:s},b)}else{let p=(J=h==null?void 0:h.display)!=null?J:"block";if(u==="div"&&f&&typeof f!="string"&&p!=="flex"&&p!=="none")throw new Error(`Expected <div> to have style={{display: 'flex'}} but received style={{display: '${p}'}}`);k=await rt({id:o,left:L,top:E,width:M,height:G,isInheritingTransform:v,debug:s},b)}for(let p of $)z+=(await p.next([L,E])).value;return b._inheritedBackgroundClipTextPath&&(P+=x("clipPath",{id:`satori_bct-${o}`,"clip-path":b._inheritedClipPathId?`url(#${b._inheritedClipPathId})`:void 0},b._inheritedBackgroundClipTextPath.value)),P+k+z}import it from"@shuding/opentype.js";function bn(e,t,[n,o],[a,i]){if(n!==a)return n?!a||n===e?-1:a===e?1:e===400&&n===500||e===500&&n===400?-1:e===400&&a===500||e===500&&a===400?1:e<400?n<e&&a<e?a-n:n<e?-1:a<e?1:n-a:e<n&&e<a?n-a:e<n?-1:e<a?1:a-n:1;if(o!==i){if(o===t)return-1;if(i===t)return 1}return-1}var xe=class{constructor(t){this.fonts=new Map;this.addFonts(t)}get({name:t,weight:n,style:o}){if(!this.fonts.has(t))return null;n==="normal"&&(n=400),n==="bold"&&(n=700);let a=[...this.fonts.get(t)],i=a[0];for(let r=1;r<a.length;r++){let[,s,l]=i,[,m,g]=a[r];bn(n,o,[s,l],[m,g])>0&&(i=a[r])}return i[0]}addFonts(t){for(let n of t){let o=n.data,a=it.parse("buffer"in o?o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength):o,{lowMemory:!0}),i=a.charToGlyphIndex;a.charToGlyphIndex=s=>{let l=i.call(a,s);return l===0&&a._trackBrokenChars&&a._trackBrokenChars.push(s),l},this.defaultFont||(this.defaultFont=a);let r=n.name.toLowerCase();this.fonts.has(r)||this.fonts.set(r,[]),this.fonts.get(r).push([a,n.weight,n.style])}}getEngine(t=16,n=1.2,{fontFamily:o,fontWeight:a=400,fontStyle:i="normal"}){if(!this.fonts.size)throw new Error("No fonts are loaded. At least one font is required to calculate the layout.");o=(Array.isArray(o)?o:[o]).map(f=>f.toLowerCase());let r=o.map(f=>this.get({name:f,weight:a,style:i})).filter(Boolean),s=Array.from(this.fonts.keys());for(let f of s)o.includes(f)||r.push(this.get({name:f,weight:a,style:i}));let l=new Map,m=(f,c=!0)=>{let b=f.charCodeAt(0);if(l.has(b))return l.get(b);let y=r.find((v,O)=>!!v.charToGlyphIndex(f)||c&&O===r.length-1);return y&&l.set(b,y),y},g=(f,c=!1)=>{var y,v;return((c?(v=(y=f.tables)==null?void 0:y.os2)==null?void 0:v.sTypoAscender:0)||f.ascender)/f.unitsPerEm*t},u=(f,c=!1)=>{var y,v;return((c?(v=(y=f.tables)==null?void 0:y.os2)==null?void 0:v.sTypoDescender:0)||f.descender)/f.unitsPerEm*t},d=f=>m(f,!1),h={check:f=>{let c=d(f);return c?(c._trackBrokenChars=[],c.stringToGlyphs(f),c._trackBrokenChars.length?(c._trackBrokenChars=void 0,!1):!0):!1},baseline:(f,c=typeof f>"u"?r[0]:m(f))=>{let b=g(c,!0),y=u(c,!0),v=h.height(f,c),{yMax:O,yMin:$}=c.tables.head,N=b-y,W=(O/(O-$)-1)*N;return v*((1.2/n+1)/2)+W},height:(f,c=typeof f>"u"?r[0]:m(f))=>(g(c)-u(c))*(n/1.2),measure:(f,c)=>this.measure(m,f,c),getSVG:(f,c)=>this.getSVG(m,f,c)};return h}patchFontFallbackResolver(t,n){let o=[];t._trackBrokenChars=o;let a=t.stringToGlyphs;return t.stringToGlyphs=(i,...r)=>{let s=a.call(t,i,...r);for(let l=0;l<s.length;l++)if(s[l].unicode===void 0){let m=o.shift(),g=n(m);if(g!==t){let u=g.charToGlyph(m),d=t.unitsPerEm/g.unitsPerEm,h=new it.Path;h.unitsPerEm=t.unitsPerEm,h.commands=u.path.commands.map(c=>{let b={...c};for(let y in b)typeof b[y]=="number"&&(b[y]*=d);return b});let f=new it.Glyph({...u,advanceWidth:u.advanceWidth*d,xMin:u.xMin*d,xMax:u.xMax*d,yMin:u.yMin*d,yMax:u.yMax*d,path:h});s[l]=f}}return s},()=>{t.stringToGlyphs=a,t._trackBrokenChars=void 0}}measure(t,n,{fontSize:o,letterSpacing:a=0}){let i=t(n),r=this.patchFontFallbackResolver(i,t);try{return i.getAdvanceWidth(n,o,{letterSpacing:a/o})}finally{r()}}getSVG(t,n,{fontSize:o,top:a,left:i,letterSpacing:r=0}){let s=t(n),l=this.patchFontFallbackResolver(s,t);try{return o===0?"":s.getPath(n,i,a,o,{letterSpacing:r/o}).toPathData(1)}finally{l()}}};function ot({width:e,height:t,content:n}){return x("svg",{width:e,height:t,viewBox:`0 0 ${e} ${t}`,xmlns:"http://www.w3.org/2000/svg"},n)}var Pt={emoji:/\p{RI}\p{RI}|\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?(\u{200D}\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?)+|\p{EPres}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?|\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})/u,ja:/\p{scx=Hira}|\p{scx=Kana}|[,;:]/u,ko:/\p{scx=Hangul}/u,zh:/\p{scx=Han}/u,th:/\p{scx=Thai}/u,bn:/\p{scx=Bengali}/u,ar:/\p{scx=Arabic}/u,ta:/\p{scx=Tamil}/u,ml:/\p{scx=Malayalam}/u,he:/\p{scx=Hebrew}/u,te:/\p{scx=Telugu}/u,devanagari:/\p{scx=Devanagari}/u};function Ot(e){for(let t in Pt)if(Pt[t].test(e))return t;return"unknown"}var at=new WeakMap;async function Ft(e,t){let n=ee();if(!n)throw new Error("Satori is not initialized.");let o;at.has(t.fonts)?o=at.get(t.fonts):at.set(t.fonts,o=new xe(t.fonts));let a=n.Node.create();a.setWidth(t.width),a.setHeight(t.height),a.setFlexDirection(n.FLEX_DIRECTION_ROW),a.setFlexWrap(n.WRAP_WRAP),a.setAlignContent(n.ALIGN_AUTO),a.setAlignItems(n.ALIGN_FLEX_START),a.setJustifyContent(n.JUSTIFY_FLEX_START),a.setOverflow(n.OVERFLOW_HIDDEN);let i={...t.graphemeImages},r=ye(e,{id:"id",parentStyle:{},inheritedStyle:{fontSize:16,fontWeight:"normal",fontFamily:"serif",fontStyle:"normal",lineHeight:1.2,color:"black",opacity:1,whiteSpace:"normal",_viewportWidth:t.width,_viewportHeight:t.height},parent:a,font:o,embedFont:t.embedFont,debug:t.debug,graphemeImages:i,canLoadAdditionalAssets:!!t.loadAdditionalAsset}),s=(await r.next()).value;if(t.loadAdditionalAsset&&s.length){s=Array.from(new Set(ae(s.join(""),"grapheme")));let m={};s.forEach(d=>{let h=Ot(d);m[h]=m[h]||[],h==="emoji"?m[h].push(d):m[h][0]=(m[h][0]||"")+d});let g=[],u={};await Promise.all(Object.entries(m).flatMap(([d,h])=>h.map(f=>t.loadAdditionalAsset(d,f).then(c=>{typeof c=="string"?u[f]=c:c&&g.push(c)})))),o.addFonts(g),Object.assign(i,u)}await r.next(),a.calculateLayout(t.width,t.height,n.DIRECTION_LTR);let l=(await r.next([0,0])).value;return a.freeRecursive(),ot({width:t.width,height:t.height,content:l})}export{Ft as default,Gt as init};
1
+ import*as er from"yoga-layout-prebuilt";var Tt=er;var Ue;Ue=Tt.default;function tr(e){Ue=e}function te(){return Ue}var xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),rr=xe((e,t)=>{t.exports=["em","ex","ch","rem","vh","vw","vmin","vmax","px","mm","cm","in","pt","pc","mozmm"]}),nr=xe((e,t)=>{t.exports=["deg","grad","rad","turn"]}),ir=xe((e,t)=>{t.exports=["dpi","dpcm","dppx"]}),or=xe((e,t)=>{t.exports=["Hz","kHz"]}),ar=xe((e,t)=>{t.exports=["s","ms"]}),sr=rr(),_t=nr(),It=ir(),Ct=or(),Lt=ar();function je(e){if(/\.\D?$/.test(e))throw new Error("The dot should be followed by a number");if(/^[+-]{2}/.test(e))throw new Error("Only one leading +/- is allowed");if(fr(e)>1)throw new Error("Only one dot is allowed");if(/%$/.test(e)){this.type="percentage",this.value=Xe(e),this.unit="%";return}var t=ur(e);if(!t){this.type="number",this.value=Xe(e);return}this.type=cr(t),this.value=Xe(e.substr(0,e.length-t.length)),this.unit=t}je.prototype.valueOf=function(){return this.value};je.prototype.toString=function(){return this.value+(this.unit||"")};function ie(e){return new je(e)}function fr(e){var t=e.match(/\./g);return t?t.length:0}function Xe(e){var t=parseFloat(e);if(isNaN(t))throw new Error("Invalid number: "+e);return t}var lr=[].concat(_t,Ct,sr,It,Lt);function ur(e){var t=e.match(/\D+$/),r=t&&t[0];if(r&&lr.indexOf(r)===-1)throw new Error("Invalid unit: "+r);return r}var dr=Object.assign(Ae(_t,"angle"),Ae(Ct,"frequency"),Ae(It,"resolution"),Ae(Lt,"time"));function Ae(e,t){return Object.fromEntries(e.map(r=>[r,t]))}function cr(e){return dr[e]||"length"}function Ke(e){let t=typeof e;return!(t==="number"||t==="bigint"||t==="string"||t==="boolean")}function $t(e){return/^class\s/.test(Function.prototype.toString.call(e))}function Wt(e){let t=typeof e>"u"?[]:[].concat(e).flat(1/0),r=[];for(let o=0;o<t.length;o++){let a=t[o];typeof a>"u"||typeof a=="boolean"||a===null||(typeof a=="number"&&(a=String(a)),typeof a=="string"&&r.length&&typeof r[r.length-1]=="string"?r[r.length-1]+=a:r.push(a))}return r}function le(e,t,r,o,a=!1){if(typeof e=="number")return e;try{if(e=e.trim(),/[ /\(,]/.test(e))return;let n=new ie(e);if(n.type==="length")switch(n.unit){case"em":return n.value*t;case"rem":return n.value*16;case"vw":return~~(n.value*o._viewportWidth/100);case"vh":return~~(n.value*o._viewportHeight/100);default:return n.value}else if(n.type==="angle")switch(n.unit){case"deg":return n.value;case"rad":return n.value*180/Math.PI;default:return n.value}else if(n.type==="percentage"&&a)return n.value/100*r}catch{}}function ye(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}function z(e,t,r,o){let a=t[e];if(typeof a>"u"){if(o&&typeof e<"u")throw new Error(`Invalid value for CSS property "${o}". Allowed values: ${Object.keys(t).map(n=>`"${n}"`).join(" | ")}. Received: "${e}".`);a=r}return a}var At=void 0,Ve,Je,$e=[32,160,4961,65792,65793,4153,4241,10].map(e=>String.fromCodePoint(e));function ue(e,t){if(!Ve||!Je){if(!(typeof Intl<"u"&&"Segmenter"in Intl))throw new Error("Intl.Segmenter does not exist, please use import a polyfill.");Ve=new Intl.Segmenter(At,{granularity:"word"}),Je=new Intl.Segmenter(At,{granularity:"grapheme"})}return t==="word"?[...Ve.segment(e)].map(r=>r.segment):[...Je.segment(e)].map(r=>r.segment)}function b(e,t,r){let o="";for(let[a,n]of Object.entries(t))typeof n<"u"&&(o+=` ${a}="${n}"`);return r?`<${e}${o}>${r}</${e}>`:`<${e}${o}/>`}function Ft(e=20){let t=new Map;function r(a,n){if(t.size>=e){let i=t.keys().next().value;t.delete(i)}t.set(a,n)}function o(a){if(!t.has(a))return;let i=t.get(a);return t.delete(a),t.set(a,i),i}return{set:r,get:o}}var Mt={accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlLang:"xml:lang",xmlSpace:"xml:space",xmlnsXlink:"xmlns:xlink"},pr=/[\r\n%#()<>?[\\\]^`{|}"']/g;function qe(e){if(!e)return"";if(Array.isArray(e))return e.map(qe).join("");if(typeof e!="object")return String(e);let t=e.type;if(t==="text")throw new Error("<text> nodes are not currently supported, please convert them to <path>");let{children:r,...o}=e.props||{};return`<${t}${Object.entries(o).map(([a,n])=>` ${Mt[a]||a}="${n}"`).join("")}>${qe(r)}</${t}>`}function Pt(e){let{viewBox:t,viewbox:r,width:o,height:a,className:n,style:i,children:s,...f}=e.props||{};t||(t=r);let d=t.split(" ").map(l=>parseInt(l,10));return f.xmlns="http://www.w3.org/2000/svg",f.viewBox=t,f.width=d[2],f.height=d[3],`data:image/svg+xml;utf8,${`<svg${Object.entries(f).map(([l,p])=>` ${Mt[l]||l}="${p}"`).join("")}>${qe(s)}</svg>`.replace(pr,encodeURIComponent)}`}var Z="flex",Ot={p:{display:Z,marginTop:"1em",marginBottom:"1em"},div:{display:Z},blockquote:{display:Z,marginTop:"1em",marginBottom:"1em",marginLeft:40,marginRight:40},center:{display:Z,textAlign:"center"},hr:{display:Z,marginTop:"0.5em",marginBottom:"0.5em",marginLeft:"auto",marginRight:"auto",borderWidth:1,borderStyle:"solid"},h1:{display:Z,fontSize:"2em",marginTop:"0.67em",marginBottom:"0.67em",marginLeft:0,marginRight:0,fontWeight:"bold"},h2:{display:Z,fontSize:"1.5em",marginTop:"0.83em",marginBottom:"0.83em",marginLeft:0,marginRight:0,fontWeight:"bold"},h3:{display:Z,fontSize:"1.17em",marginTop:"1em",marginBottom:"1em",marginLeft:0,marginRight:0,fontWeight:"bold"},h4:{display:Z,marginTop:"1.33em",marginBottom:"1.33em",marginLeft:0,marginRight:0,fontWeight:"bold"},h5:{display:Z,fontSize:"0.83em",marginTop:"1.67em",marginBottom:"1.67em",marginLeft:0,marginRight:0,fontWeight:"bold"},h6:{display:Z,fontSize:"0.67em",marginTop:"2.33em",marginBottom:"2.33em",marginLeft:0,marginRight:0,fontWeight:"bold"},u:{textDecoration:"underline"},strong:{fontWeight:"bold"},b:{fontWeight:"bold"},i:{fontStyle:"italic"},em:{fontStyle:"italic"},code:{fontFamily:"monospace"},kbd:{fontFamily:"monospace"},pre:{display:Z,fontFamily:"monospace",whiteSpace:"pre",marginTop:"1em",marginBottom:"1em"},mark:{backgroundColor:"yellow",color:"black"},big:{fontSize:"larger"},small:{fontSize:"smaller"},s:{textDecoration:"line-through"}};var mr=new Set(["color","font","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","textAlign","textTransform","textShadowOffset","textShadowColor","textShadowRadius","textDecorationLine","textDecorationStyle","textDecorationColor","whiteSpace","transform","wordBreak","opacity","filter","_viewportWidth","_viewportHeight","_inheritedClipPathId","_inheritedMaskId","_inheritedBackgroundClipTextPath"]);function Ze(e){let t={};for(let r in e)mr.has(r)&&(t[r]=e[r]);return t}import{getPropertyName as br,getStylesForProperty as we}from"css-to-react-native";import{parseElementStyle as xr}from"css-background-parser";import{parse as yr}from"css-box-shadow";import gr from"postcss-value-parser";function hr(e,t){try{let r=new ie(e);switch(r.unit){case"px":return{absolute:r.value};case"em":return{absolute:r.value*t};case"rem":return{absolute:r.value*16};case"%":return{relative:r.value};default:return{}}}catch{return{}}}function Qe(e,t,r){switch(e){case"top":return{yRelative:0};case"left":return{xRelative:0};case"right":return{xRelative:100};case"bottom":return{yRelative:100};case"center":return{};default:let o=hr(e,t);return o.absolute?{[r?"xAbsolute":"yAbsolute"]:o.absolute}:o.relative?{[r?"xRelative":"yRelative"]:o.relative}:{}}}function et(e,t){if(typeof e=="number")return{xAbsolute:e};let r;try{r=gr(e).nodes.filter(o=>o.type==="word").map(o=>o.value)}catch{return{}}return r.length===1?Qe(r[0],t,!0):r.length===2?((r[0]==="top"||r[0]==="bottom"||r[1]==="left"||r[1]==="right")&&r.reverse(),{...Qe(r[0],t,!0),...Qe(r[1],t,!1)}):{}}var wr=new Set(["flex","flexGrow","flexShrink","flexBasis","fontWeight","lineHeight","opacity","scale","scaleX","scaleY"]),Sr=new Set(["lineHeight"]);function Er(e,t,r,o){return e==="textDecoration"&&!r.includes(t.textDecorationColor)&&(t.textDecorationColor=o),t}function Se(e,t){return typeof t=="number"?wr.has(e)?Sr.has(e)?t:String(t):t+"px":t}function kr(e,t,r){if(e==="lineHeight")return{lineHeight:Se(e,t)};if(e==="fontFamily")return{fontFamily:t.split(",").map(o=>o.trim().replace(/(^['"])|(['"]$)/g,"").toLocaleLowerCase())};if(e==="borderRadius"){if(typeof t!="string"||!t.includes("/"))return;let[o,a]=t.split("/"),n=we(e,o,!0),i=we(e,a,!0);for(let s in n)i[s]=Se(e,n[s])+" "+Se(e,i[s]);return i}if(/^border(Top|Right|Bottom|Left)?$/.test(e)){let o=we("border",t,!0);o.borderWidth===1&&!String(t).includes("1px")&&(o.borderWidth=3),o.borderColor==="black"&&!String(t).includes("black")&&(o.borderColor=r);let a={Width:Se(e+"Width",o.borderWidth),Style:z(o.borderStyle,{solid:"solid",dashed:"dashed"},"solid",e+"Style"),Color:o.borderColor},n={};for(let i of e==="border"?["Top","Right","Bottom","Left"]:[e.slice(6)])for(let s in a)n["border"+i+s]=a[s];return n}if(e==="boxShadow"){if(!t)throw new Error('Invalid `boxShadow` value: "'+t+'".');return{[e]:typeof t=="string"?yr(t):t}}if(e==="transform"){if(typeof t!="string")throw new Error("Invalid `transform` value.");let o={},a=t.replace(/(-?[\d.]+%)/g,(i,s)=>{let f=~~(Math.random()*1e9);return o[f]=s,f+"px"}),n=we("transform",a,!0);for(let i of n.transform)for(let s in i)o[i[s]]&&(i[s]=o[i[s]]);return n}}function Bt(e){return e==="transform"?" Only absolute lengths such as `10px` are supported.":""}var Nt=/rgb\((\d+)\s+(\d+)\s+(\d+)\s*\/\s*([\.\d]+)\)/;function Dt(e){if(typeof e=="string"&&Nt.test(e.trim()))return e.trim().replace(Nt,(t,r,o,a,n)=>`rgba(${r}, ${o}, ${a}, ${n})`);if(typeof e=="object"&&e!==null){for(let t in e)e[t]=Dt(e[t]);return e}return e}function We(e,t){var a;let r={};for(let n in e){if(n.startsWith("_")){r[n]=e[n];continue}let i=br(n),s=e.color||t.color;try{let f=kr(i,e[n],s)||Er(i,we(i,Se(i,e[n]),!0),e[n],s);Object.assign(r,f)}catch(f){throw new Error(f.message+(f.message.includes(e[n])?`
2
+ `+Bt(i):`
3
+ in CSS rule \`${i}: ${e[n]}\`.${Bt(i)}`))}}if(r.backgroundImage){let{backgrounds:n}=xr(r);r.backgroundImage=n}let o=typeof r.fontSize=="number"?r.fontSize:t.fontSize;if(typeof o=="string")try{let n=new ie(o);switch(n.unit){case"em":o=n.value*t.fontSize;break;case"rem":o=n.value*16;break}}catch{o=16}typeof r.fontSize<"u"&&(r.fontSize=o),r.transformOrigin&&(r.transformOrigin=et(r.transformOrigin,o));for(let n in r){let i=r[n];if(n==="lineHeight")typeof i=="string"&&(i=r[n]=le(i,o,o,t,!0)/o);else{if(typeof i=="string"){let s=le(i,o,o,t);typeof s<"u"&&(r[n]=s),i=r[n]}if(typeof i=="string"||typeof i=="object"){let s=Dt(i);s&&(r[n]=s),i=r[n]}}if(n==="opacity"&&(i=r[n]=i*t.opacity),n==="transform"){let s=i;for(let f of s){let d=Object.keys(f)[0],l=f[d],p=typeof l=="string"&&(a=le(l,o,o,t))!=null?a:l;f[d]=p}}}return r}function vr(e){let t=new DataView(e),r=4,o=t.byteLength;for(;r<o;){let a=t.getUint16(r,!1);if(a>o)throw new TypeError("Invalid JPEG");let n=t.getUint8(a+1+r);if(n===192||n===193||n===194)return[t.getUint16(a+7+r,!1),t.getUint16(a+5+r,!1)];r+=a+2}throw new TypeError("Invalid JPEG")}function Rr(e){let t=new Uint8Array(e.slice(6,10));return[t[0]|t[1]<<8,t[2]|t[3]<<8]}function Tr(e){let t=new DataView(e);return[t.getUint16(18,!1),t.getUint16(22,!1)]}var Gt=Ft(100),tt=new Map,_r=["image/png","image/jpeg","image/gif","image/svg+xml"];function Ir(e){let t="",r=new Uint8Array(e);for(let o=0;o<r.byteLength;o++)t+=String.fromCharCode(r[o]);return btoa(t)}async function Fe(e){if(!e)throw new Error("Image source is not provided.");if(e.startsWith("data:"))return[e];if(!globalThis.fetch)throw new Error("`fetch` is required to be polyfilled to load images.");if(tt.has(e))return tt.get(e);let t=Gt.get(e);if(t)return t;let r=new Promise((o,a)=>{fetch(e).then(n=>n.arrayBuffer()).then(n=>{let i,s;switch([...new Uint8Array(n.slice(0,4))].map(p=>p.toString(16)).join("")){case"89504e47":i="image/png",s=Tr(n);break;case"47494638":i="image/gif",s=Rr(n);break;case"ffd8ffe0":case"ffd8ffe1":case"ffd8ffe2":case"ffd8ffe3":case"ffd8ffe8":i="image/jpeg",s=vr(n);break}if(!_r.includes(i))throw new Error(`Unsupported image type: ${i||"unknown"}`);let l=`data:${i};base64,${Ir(n)}`;Gt.set(e,[l,...s]),o([l,...s])}).catch(a)});return tt.set(e,r),r}async function rt(e,t,r,o,a){let n=te(),i={...r,...We(Ot[t],r),...We(o,r)};if(t==="img"){let[s,f,d]=await Fe(a.src);if(f===void 0&&d===void 0){if(a.width===void 0||a.height===void 0)throw new Error("Image size cannot be determined. Please provide the width and height of the image.");f=parseInt(a.width),d=parseInt(a.height)}let l=d/f,p=(i.borderLeftWidth||0)+(i.borderRightWidth||0)+(i.paddingLeft||0)+(i.paddingRight||0),m=(i.borderTopWidth||0)+(i.borderBottomWidth||0)+(i.paddingTop||0)+(i.paddingBottom||0),g=i.width||a.width,u=i.height||a.height,c=typeof g!="string"&&typeof u!="string";g!==void 0&&c&&(g-=p),u!==void 0&&c&&(u-=m),g===void 0&&u===void 0&&(g=f,u=d),g===void 0&&(g=u/l),u===void 0&&(u=g*l),i.width=c?g+p:g,i.height=c?u+m:u,i.__src=s}if(t==="svg"){let f=(a.viewBox||a.viewbox).split(" ").map(m=>parseInt(m,10)),d=f[3]/f[2],{width:l,height:p}=a;typeof l>"u"&&p?typeof p=="string"&&p.endsWith("%")?l=parseInt(p)/d+"%":l=parseInt(p)/d:typeof p>"u"&&l?typeof l=="string"&&l.endsWith("%")?p=parseInt(l)*d+"%":p=parseInt(l)*d:(l||(l=f[2]),p||(p=f[3])),i.width||(i.width=l),i.height||(i.height=p)}return e.setDisplay(z(i.display,{flex:n.DISPLAY_FLEX,none:n.DISPLAY_NONE},n.DISPLAY_FLEX,"display")),e.setAlignContent(z(i.alignContent,{stretch:n.ALIGN_STRETCH,center:n.ALIGN_CENTER,"flex-start":n.ALIGN_FLEX_START,"flex-end":n.ALIGN_FLEX_END,"space-between":n.ALIGN_SPACE_BETWEEN,"space-around":n.ALIGN_SPACE_AROUND,baseline:n.ALIGN_BASELINE,normal:n.ALIGN_AUTO},n.ALIGN_AUTO,"alignContent")),e.setAlignItems(z(i.alignItems,{stretch:n.ALIGN_STRETCH,center:n.ALIGN_CENTER,"flex-start":n.ALIGN_FLEX_START,"flex-end":n.ALIGN_FLEX_END,baseline:n.ALIGN_BASELINE,normal:n.ALIGN_AUTO},n.ALIGN_FLEX_START,"alignItems")),e.setAlignSelf(z(i.alignSelf,{stretch:n.ALIGN_STRETCH,center:n.ALIGN_CENTER,"flex-start":n.ALIGN_FLEX_START,"flex-end":n.ALIGN_FLEX_END,baseline:n.ALIGN_BASELINE,normal:n.ALIGN_AUTO},n.ALIGN_AUTO,"alignSelf")),e.setJustifyContent(z(i.justifyContent,{center:n.JUSTIFY_CENTER,"flex-start":n.JUSTIFY_FLEX_START,"flex-end":n.JUSTIFY_FLEX_END,"space-between":n.JUSTIFY_SPACE_BETWEEN,"space-around":n.JUSTIFY_SPACE_AROUND},n.JUSTIFY_FLEX_START,"justifyContent")),e.setFlexDirection(z(i.flexDirection,{row:n.FLEX_DIRECTION_ROW,column:n.FLEX_DIRECTION_COLUMN,"row-reverse":n.FLEX_DIRECTION_ROW_REVERSE,"column-reverse":n.FLEX_DIRECTION_COLUMN_REVERSE},n.FLEX_DIRECTION_ROW,"flexDirection")),e.setFlexWrap(z(i.flexWrap,{wrap:n.WRAP_WRAP,nowrap:n.WRAP_NO_WRAP,"wrap-reverse":n.WRAP_WRAP_REVERSE},n.WRAP_NO_WRAP,"flexWrap")),typeof i.flexBasis<"u"&&e.setFlexBasis(i.flexBasis),e.setFlexGrow(typeof i.flexGrow>"u"?0:i.flexGrow),e.setFlexShrink(typeof i.flexShrink>"u"?0:i.flexShrink),typeof i.maxHeight<"u"&&e.setMaxHeight(i.maxHeight),typeof i.maxWidth<"u"&&e.setMaxWidth(i.maxWidth),typeof i.minHeight<"u"&&e.setMinHeight(i.minHeight),typeof i.minWidth<"u"&&e.setMinWidth(i.minWidth),e.setOverflow(z(i.overflow,{visible:n.OVERFLOW_VISIBLE,hidden:n.OVERFLOW_HIDDEN},n.OVERFLOW_VISIBLE,"overflow")),e.setMargin(n.EDGE_TOP,i.marginTop||0),e.setMargin(n.EDGE_BOTTOM,i.marginBottom||0),e.setMargin(n.EDGE_LEFT,i.marginLeft||0),e.setMargin(n.EDGE_RIGHT,i.marginRight||0),e.setBorder(n.EDGE_TOP,i.borderTopWidth||0),e.setBorder(n.EDGE_BOTTOM,i.borderBottomWidth||0),e.setBorder(n.EDGE_LEFT,i.borderLeftWidth||0),e.setBorder(n.EDGE_RIGHT,i.borderRightWidth||0),e.setPadding(n.EDGE_TOP,i.paddingTop||0),e.setPadding(n.EDGE_BOTTOM,i.paddingBottom||0),e.setPadding(n.EDGE_LEFT,i.paddingLeft||0),e.setPadding(n.EDGE_RIGHT,i.paddingRight||0),e.setPositionType(z(i.position,{absolute:n.POSITION_TYPE_ABSOLUTE,relative:n.POSITION_TYPE_RELATIVE},n.POSITION_TYPE_RELATIVE,"position")),typeof i.top<"u"&&e.setPosition(n.EDGE_TOP,i.top),typeof i.bottom<"u"&&e.setPosition(n.EDGE_BOTTOM,i.bottom),typeof i.left<"u"&&e.setPosition(n.EDGE_LEFT,i.left),typeof i.right<"u"&&e.setPosition(n.EDGE_RIGHT,i.right),typeof i.height<"u"?e.setHeight(i.height):e.setHeightAuto(),typeof i.width<"u"?e.setWidth(i.width):e.setWidthAuto(),[i,Ze(i)]}var Ht=[1,0,0,1,0,0];function Cr(e,t,r){let o=[...Ht];for(let a of e){let n=Object.keys(a)[0],i=a[n];if(typeof i=="string")if(n==="translateX")i=parseFloat(i)/100*t,a[n]=i;else if(n==="translateY")i=parseFloat(i)/100*r,a[n]=i;else throw new Error(`Invalid transform: "${n}: ${i}".`);let s=i,f=[...Ht];switch(n){case"translateX":f[4]=s;break;case"translateY":f[5]=s;break;case"scale":f[0]=s,f[3]=s;break;case"scaleX":f[0]=s;break;case"scaleY":f[3]=s;break;case"rotate":let d=s*Math.PI/180,l=Math.cos(d),p=Math.sin(d);f[0]=l,f[1]=p,f[2]=-p,f[3]=l;break;case"skewX":f[2]=Math.tan(s*Math.PI/180);break;case"skewY":f[1]=Math.tan(s*Math.PI/180);break}o=ye(f,o)}e.splice(0,e.length),e.push(...o),e.__resolved=!0}function de({left:e,top:t,width:r,height:o},a,n,i){var d,l,p,m;let s;a.__resolved||Cr(a,r,o);let f=a;if(n)s=f;else{let g=(l=i==null?void 0:i.xAbsolute)!=null?l:((d=i==null?void 0:i.xRelative)!=null?d:50)*r/100,u=(m=i==null?void 0:i.yAbsolute)!=null?m:((p=i==null?void 0:i.yRelative)!=null?p:50)*o/100,c=e+g,y=t+u;s=ye([1,0,0,1,c,y],ye(f,[1,0,0,1,-c,-y])),f.__parent&&(s=ye(f.__parent,s)),f.splice(0,6,...s)}return`matrix(${s.map(g=>g.toFixed(2)).join(",")})`}function Yt({left:e,top:t,width:r,height:o,isInheritingTransform:a},n){let i="",s=1;return n.transform&&(i=de({left:e,top:t,width:r,height:o},n.transform,a,n.transformOrigin)),n.opacity!==void 0&&(s=+n.opacity),{matrix:i,opacity:s}}function nt({id:e,content:t,filter:r,left:o,top:a,width:n,height:i,matrix:s,opacity:f,image:d,clipPathId:l,debug:p,shape:m,decorationShape:g},u){let c="";if(p&&(c=b("rect",{x:o,y:a-i,width:n,height:i,fill:"transparent",stroke:"#575eff","stroke-width":1,transform:s||void 0,"clip-path":l?`url(#${l})`:void 0})),d){let h={href:d,x:o,y:a,width:n,height:i,transform:s||void 0,"clip-path":l?`url(#${l})`:void 0,style:u.filter?`filter:${u.filter}`:void 0};return[(r?`${r}<g filter="url(#satori_s-${e})">`:"")+b("image",{...h,opacity:f!==1?f:void 0})+(g||"")+(r?"</g>":"")+c,""]}let y={x:o,y:a,width:n,height:i,"font-weight":u.fontWeight,"font-style":u.fontStyle,"font-size":u.fontSize,"font-family":u.fontFamily,"letter-spacing":u.letterSpacing||void 0,transform:s||void 0,"clip-path":l?`url(#${l})`:void 0,style:u.filter?`filter:${u.filter}`:void 0};return[(r?`${r}<g filter="url(#satori_s-${e})">`:"")+b("text",{...y,fill:u.color,opacity:f!==1?f:void 0},t)+(g||"")+(r?"</g>":"")+c,m?b("text",y,t):""]}function Lr(e,t,r){return e.replace(/([MA])([0-9.-]+),([0-9.-]+)/g,function(o,a,n,i){return a+(parseFloat(n)+t)+","+(parseFloat(i)+r)})}function zt({id:e,width:t,height:r},o){if(!o.shadowColor||!o.shadowOffset||typeof o.shadowRadius>"u")return"";let a=o.shadowRadius*o.shadowRadius/4,n=Math.min(o.shadowOffset.width-a,0),i=Math.max(o.shadowOffset.width+a+t,t),s=Math.min(o.shadowOffset.height-a,0),f=Math.max(o.shadowOffset.height+a+r,r);return`<defs><filter id="satori_s-${e}" x="${n/t*100}%" y="${s/r*100}%" width="${(i-n)/t*100}%" height="${(f-s)/r*100}%"><feDropShadow dx="${o.shadowOffset.width}" dy="${o.shadowOffset.height}" stdDeviation="${o.shadowRadius/2}" flood-color="${o.shadowColor}" flood-opacity="1"/></filter></defs>`}function Me({width:e,height:t,shape:r,opacity:o,id:a},n){if(!n.boxShadow)return null;let i="",s="";for(let f=n.boxShadow.length-1;f>=0;f--){let d="",l=n.boxShadow[f];l.spreadRadius&&l.inset&&(l.spreadRadius=-l.spreadRadius);let p=l.blurRadius*l.blurRadius/4+(l.spreadRadius||0),m=Math.min(-p-(l.inset?l.offsetX:0),0),g=Math.max(p+e-(l.inset?l.offsetX:0),e),u=Math.min(-p-(l.inset?l.offsetY:0),0),c=Math.max(p+t-(l.inset?l.offsetY:0),t),y=`satori_s-${a}-${f}`,h=`satori_ms-${a}-${f}`,x=l.spreadRadius?r.replace('stroke-width="0"',`stroke-width="${l.spreadRadius*2}"`):r;d+=b("mask",{id:h,maskUnits:"userSpaceOnUse"},b("rect",{x:0,y:0,width:n._viewportWidth,height:n._viewportHeight,fill:l.inset?"#000":"#fff"})+x.replace('fill="#fff"',l.inset?'fill="#fff"':'fill="#000"').replace('stroke="#fff"',""));let E=x.replace(/d="([^"]+)"/,(k,T)=>'d="'+Lr(T,l.offsetX,l.offsetY)+'"').replace(/x="([^"]+)"/,(k,T)=>'x="'+(parseFloat(T)+l.offsetX)+'"').replace(/y="([^"]+)"/,(k,T)=>'y="'+(parseFloat(T)+l.offsetY)+'"');l.spreadRadius&&l.spreadRadius<0&&(d+=b("mask",{id:h+"-neg",maskUnits:"userSpaceOnUse"},E.replace('stroke="#fff"','stroke="#000"').replace(/stroke-width="[^"]+"/,`stroke-width="${-l.spreadRadius*2}"`))),l.spreadRadius&&l.spreadRadius<0&&(E=b("g",{mask:`url(#${h}-neg)`},E)),d+=b("defs",{},b("filter",{id:y,x:`${m/e*100}%`,y:`${u/t*100}%`,width:`${(g-m)/e*100}%`,height:`${(c-u)/t*100}%`},b("feGaussianBlur",{stdDeviation:l.blurRadius/2,result:"b"})+b("feFlood",{"flood-color":l.color,in:"SourceGraphic",result:"f"})+b("feComposite",{in:"f",in2:"b",operator:l.inset?"out":"in"})))+b("g",{mask:`url(#${h})`,filter:`url(#${y})`,opacity:o},E),l.inset?s+=d:i+=d}return[i,s]}function it({width:e,left:t,top:r,ascender:o,clipPathId:a},n){let{textDecorationColor:i,textDecorationStyle:s,textDecorationLine:f,fontSize:d}=n;if(!f||f==="none")return"";let l=Math.max(1,d*.1),p=f==="line-through"?r+o*.5:f==="underline"?r+o*1.1:r,m=s==="dashed"?`${l*1.2} ${l*2}`:s==="dotted"?`0 ${l*2}`:void 0;return b("line",{x1:t,y1:p,x2:t+e,y2:p,stroke:i,"stroke-width":l,"stroke-dasharray":m,"stroke-linecap":s==="dotted"?"round":"square","clip-path":a?`url(#${a})`:void 0})}var ot=void 0;async function*at(e,t){var kt;let r=te(),{parentStyle:o,inheritedStyle:a,parent:n,font:i,id:s,isInheritingTransform:f,debug:d,embedFont:l,graphemeImages:p,canLoadAdditionalAssets:m}=t;o.textTransform==="uppercase"?e=e.toLocaleUpperCase(ot):o.textTransform==="lowercase"?e=e.toLocaleLowerCase(ot):o.textTransform==="capitalize"&&(e=ue(e,"word").map(F=>ue(F,"grapheme").map((P,O)=>O===0?P.toLocaleUpperCase(ot):P).join("")).join(""));let g=z(o.wordBreak,{normal:"word","break-all":"grapheme","break-word":"grapheme","keep-all":"word"},"word","wordBreak"),u=ue(e,g),c=r.Node.create();c.setAlignItems(r.ALIGN_BASELINE),c.setJustifyContent(z(o.textAlign,{left:r.JUSTIFY_FLEX_START,right:r.JUSTIFY_FLEX_END,center:r.JUSTIFY_CENTER,justify:r.JUSTIFY_SPACE_BETWEEN,start:r.JUSTIFY_FLEX_START,end:r.JUSTIFY_FLEX_END},r.JUSTIFY_FLEX_START,"textAlign")),n.insertChild(c,n.getChildCount());let{textAlign:y,textOverflow:h,whiteSpace:x,lineHeight:E,filter:k,_inheritedBackgroundClipTextPath:T}=o,v=o.fontSize,R=i.getEngine(v,E,o),$=m?u.filter(F=>!R.check(F)):[];yield $,$.length&&(R=i.getEngine(v,E,o));let I=[],M=[],A=[],N=[],G=new Map,W=F=>{let P=0;for(let O of F){if(G.has(O)){P+=G.get(O);continue}let X=R.measure(O,o);G.set(O,X),P+=X}return P},B=0,U=[],S=0;for(let F of u){let P=!1,O=p&&p[F];x==="pre"?P=F[0]===`
4
+ `:x!=="nowrap"&&(O||$e.includes(F[0]))&&(P=!0),P?(x==="nowrap"?S+=W(U)+o.fontSize:(B=Math.max(B,W(U)),O&&(B=Math.max(B,o.fontSize))),U=[]):(!$e.includes(F[0])||!U.length)&&U.push(F===`
5
+ `?" ":F)}B=Math.max(B,W(U)+S);let w=n.getMinWidth(),_=n.getMaxWidth(),Q=n.getWidth();isNaN(Q.value)&&(isNaN(w.value)||w.unit===1&&w.value>B)&&(isNaN(_.value)||_.unit===1&&(B=Math.min(B,_.value)),n.setMinWidth(B)),typeof o.flexShrink>"u"&&n.setFlexShrink(1);let he=x==="pre-wrap"||x==="pre";c.setMeasureFunc(F=>{let P=0,O="",X=0,j=0,V=0,J=-1,ae=0,D=0,se=0;I=[],A=[0];for(let ne=0;ne<u.length;ne++){let H=u[ne];if(!he&&$e.includes(H[0]))O||(O=" "),X=W([O]),N[ne]=null;else{let fe=he&&H===`
6
+ `,q=fe?0:p&&p[H]?o.fontSize:W([H]);j||(O="",X=0);let Y=X||",.!?:-@)>]}%#".indexOf(H[0])<0,K=!j||!!X;if(fe||ne&&Y&&j+X+q>F&&x!=="nowrap"&&x!=="pre")I.push(j),M.push(se),P++,ae+=D,j=q,D=q?R.height(H):0,se=q?R.baseline(H):0,A.push(1),J=-1,fe||(V=Math.max(V,F));else{j+=X+q;let ge=R.height(H);ge>D&&(D=ge,se=R.baseline(H)),K&&A[A.length-1]++}O="",X=0,K&&J++,V=Math.max(V,j),N[ne]={y:ae,x:j-q,width:q,line:P,lineIndex:J}}}return j&&(P++,I.push(j),M.push(se),ae+=D),{width:V,height:ae}});let[Kt,Zt]=yield,He="",Re="",re=a._inheritedClipPathId,bt=a._inheritedMaskId,{left:xt,top:yt,width:Te,height:wt}=c.getComputedLayout(),Ye=n.getComputedWidth()-n.getComputedPadding(r.EDGE_LEFT)-n.getComputedPadding(r.EDGE_RIGHT)-n.getComputedBorder(r.EDGE_LEFT)-n.getComputedBorder(r.EDGE_RIGHT),pe=Kt+xt,me=Zt+yt,{matrix:ee,opacity:_e}=Yt({left:xt,top:yt,width:Te,height:wt,isInheritingTransform:f},o),Ie="";o.textShadowOffset&&(Ie=zt({width:Te,height:wt,id:s},{shadowColor:o.textShadowColor,shadowOffset:o.textShadowOffset,shadowRadius:o.textShadowRadius}));let be="",Ce="",St="",ze=-1,Et=h==="ellipsis"?W(["\u2026"]):0,Qt=h==="ellipsis"?W([" "]):0,Le={};for(let F=0;F<u.length;F++){if(!N[F])continue;let P=N[F],O=u[F],X=null,j=p?p[O]:null,V=P.y,J=P.x,ae=P.width,D=P.line;if(D===ze)continue;let se=!1;if(I.length>1){let Y=Te-I[D];if(y==="right"||y==="end")J+=Y;else if(y==="center")J+=Y/2;else if(y==="justify"&&D<I.length-1){let K=A[D];J+=(K>1?Y/(K-1):0)*P.lineIndex,se=!0}}if(Le[D]||(Le[D]=[J,se?Te:I[D]]),h==="ellipsis"&&I[D]>Ye&&P.x+ae+Et+Qt>Ye){let Y=ue(O,"grapheme"),K="",ge=0;for(let vt of Y){let Rt=P.x+W([K+vt]);if(K&&Rt+Et>Ye)break;K+=vt,ge=Rt}O=K+"\u2026",ze=D,Le[D][1]=ge}let ne=M[D],H=R.baseline(O),fe=R.height(O),q=ne-H;if(j?V+=0:l?(X=R.getSVG(O,{...o,left:pe+J,top:me+V+H+q,letterSpacing:o.letterSpacing}),d&&(St+=b("rect",{x:pe+J,y:me+V+q,width:P.width,height:fe,fill:"transparent",stroke:"#575eff","stroke-width":1,transform:ee||void 0,"clip-path":re?`url(#${re})`:void 0})+b("line",{x1:pe+J,x2:pe+J+P.width,y1:me+V+q+H,y2:me+V+q+H,stroke:"#14c000","stroke-width":1,transform:ee||void 0,"clip-path":re?`url(#${re})`:void 0}))):V+=H+q,o.textDecorationLine&&(D!==((kt=N[F+1])==null?void 0:kt.line)||ze===D)){let Y=Le[D];Y&&!Y[2]&&(be+=it({left:pe+Y[0],top:me+fe*+D,width:Y[1],ascender:R.baseline(O),clipPathId:re},o),Y[2]=1)}if(X!==null)Ce+=X+" ";else{let[Y,K]=nt({content:O,filter:Ie,id:s,left:pe+J,top:me+V,width:ae,height:fe,matrix:ee,opacity:_e,image:j,clipPathId:re,debug:d,shape:!!T,decorationShape:be},o);He+=Y,Re+=K,be=""}}if(Ce){let F=o.color!=="transparent"&&_e!==0?b("path",{fill:o.color,d:Ce,transform:ee||void 0,opacity:_e!==1?_e:void 0,"clip-path":re?`url(#${re})`:void 0,mask:bt?`url(#${bt})`:void 0,style:k?`filter:${k}`:void 0}):"";T&&(Re=b("path",{d:Ce,transform:ee||void 0})),He+=(Ie?Ie+b("g",{filter:`url(#satori_s-${s})`},F+be):F+be)+St}return Re&&(o._inheritedBackgroundClipTextPath.value+=Re),He}var st=st||{};st.parse=function(){var e={linearGradient:/^(\-(webkit|o|ms|moz)\-)?(linear\-gradient)/i,repeatingLinearGradient:/^(\-(webkit|o|ms|moz)\-)?(repeating\-linear\-gradient)/i,radialGradient:/^(\-(webkit|o|ms|moz)\-)?(radial\-gradient)/i,repeatingRadialGradient:/^(\-(webkit|o|ms|moz)\-)?(repeating\-radial\-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/,percentageValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/,emValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/,angleValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^\#([0-9a-fA-F]+)/,literalColor:/^([a-zA-Z]+)/,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,number:/^(([0-9]*\.[0-9]+)|([0-9]+\.?))/},t="";function r(S){var w=new Error(t+": "+S);throw w.source=t,w}function o(){var S=a();return t.length>0&&r("Invalid input not EOF"),S}function a(){return E(n)}function n(){return i("linear-gradient",e.linearGradient,f)||i("repeating-linear-gradient",e.repeatingLinearGradient,f)||i("radial-gradient",e.radialGradient,p)||i("repeating-radial-gradient",e.repeatingRadialGradient,p)}function i(S,w,_){return s(w,function(Q){var he=_();return he&&(B(e.comma)||r("Missing comma before color stops")),{type:S,orientation:he,colorStops:E(k)}})}function s(S,w){var _=B(S);if(_){B(e.startCall)||r("Missing (");var Q=w(_);return B(e.endCall)||r("Missing )"),Q}}function f(){return d()||l()}function d(){return W("directional",e.sideOrCorner,1)}function l(){return W("angular",e.angleValue,1)}function p(){var S,w=m(),_;return w&&(S=[],S.push(w),_=t,B(e.comma)&&(w=m(),w?S.push(w):t=_)),S}function m(){var S=g()||u();if(S)S.at=y();else{var w=c();if(w){S=w;var _=y();_&&(S.at=_)}else{var Q=h();Q&&(S={type:"default-radial",at:Q})}}return S}function g(){var S=W("shape",/^(circle)/i,0);return S&&(S.style=G()||c()),S}function u(){var S=W("shape",/^(ellipse)/i,0);return S&&(S.style=A()||c()),S}function c(){return W("extent-keyword",e.extentKeywords,1)}function y(){if(W("position",/^at/,0)){var S=h();return S||r("Missing positioning value"),S}}function h(){var S=x();if(S.x||S.y)return{type:"position",value:S}}function x(){return{x:A(),y:A()}}function E(S){var w=S(),_=[];if(w)for(_.push(w);B(e.comma);)w=S(),w?_.push(w):r("One extra comma");return _}function k(){var S=T();return S||r("Expected color definition"),S.length=A(),S}function T(){return R()||I()||$()||v()}function v(){return W("literal",e.literalColor,0)}function R(){return W("hex",e.hexColor,1)}function $(){return s(e.rgbColor,function(){return{type:"rgb",value:E(M)}})}function I(){return s(e.rgbaColor,function(){return{type:"rgba",value:E(M)}})}function M(){return B(e.number)[1]}function A(){return W("%",e.percentageValue,1)||N()||G()}function N(){return W("position-keyword",e.positionKeywords,1)}function G(){return W("px",e.pixelValue,1)||W("em",e.emValue,1)}function W(S,w,_){var Q=B(w);if(Q)return{type:S,value:Q[_]}}function B(S){var w,_;return _=/^[\n\r\t\s]+/.exec(t),_&&U(_[0].length),w=S.exec(t),w&&U(w[0].length),w}function U(S){t=t.substr(S)}return function(S){return t=S.toString(),o()}}();var ft=st;function Ar(e){return e.type==="literal"?e.value:e.type==="hex"?`#${e.value}`:e.type==="rgb"?`rgb(${e.value.join(",")})`:e.type==="rgba"?`rgba(${e.value.join(",")})`:"transparent"}function $r(e,t){return typeof e=="string"&&e.endsWith("%")?t*parseFloat(e)/100:+e}function lt(e,{x:t,y:r,defaultX:o,defaultY:a}){return(e?e.split(" ").map(n=>{try{let i=new ie(n);return i.type==="length"||i.type==="number"?i.value:i.value+i.unit}catch{return null}}).filter(n=>n!==null):[o,a]).map((n,i)=>$r(n,[t,r][i]))}function Ut(e,t){let r=[];for(let i of t){let s=Ar(i);if(!r.length&&(r.push({offset:0,color:s}),typeof i.length>"u"||i.length.value==="0"))continue;let f=typeof i.length>"u"?void 0:i.length.type==="%"?i.length.value/100:i.length.value/e;r.push({offset:f,color:s})}r.length||r.push({offset:0,color:"transparent"});let o=r[r.length-1];o.offset!==1&&(typeof o.offset>"u"?o.offset=1:r.push({offset:1,color:o.color}));let a=0,n=1;for(let i=0;i<r.length;i++)if(typeof r[i].offset>"u"){for(n<i&&(n=i);typeof r[n].offset>"u";)n++;r[i].offset=(r[n].offset-r[a].offset)/(n-a)*(i-a)+r[a].offset}else a=i;return r}async function ut({id:e,width:t,height:r},{image:o,size:a,position:n,repeat:i}){i=i||"repeat";let s=i==="repeat-x"||i==="repeat",f=i==="repeat-y"||i==="repeat",d=lt(a,{x:t,y:r,defaultX:t,defaultY:r}),l=lt(n,{x:t,y:r,defaultX:0,defaultY:0});if(o.startsWith("linear-gradient(")){let p=ft.parse(o)[0],[m,g]=d,u,c,y,h;if(p.orientation.type==="directional")[u,c,y,h]={top:[0,1,0,0],bottom:[0,0,0,1],left:[1,0,0,0],right:[0,0,1,0]}[p.orientation.value];else if(p.orientation.type==="angular"){let v=+p.orientation.value/180*Math.PI-Math.PI/2,R=Math.cos(v),$=Math.sin(v);u=0,c=0,y=R,h=$,y<0&&(u-=y,y=0),h<0&&(c-=h,h=0)}let x=Ut(t,p.colorStops),E=`satori_bi${e}`,k=`satori_pattern_${e}`,T=b("pattern",{id:k,x:l[0]/t,y:l[1]/r,width:s?m/t:"1",height:f?g/r:"1",patternUnits:"objectBoundingBox"},b("linearGradient",{id:E,x1:u,y1:c,x2:y,y2:h},x.map(v=>b("stop",{offset:v.offset*100+"%","stop-color":v.color})).join(""))+b("rect",{x:0,y:0,width:m,height:g,fill:`url(#${E})`}));return[k,T]}if(o.startsWith("radial-gradient(")){let p=ft.parse(o)[0],m=p.orientation[0],[g,u]=d,c="circle",y=g/2,h=u/2;if(m.type==="shape"){if(c=m.value,m.at)if(m.at.type==="position")y=m.at.value.x.value,h=m.at.value.y.value;else throw new Error("orientation.at.type not implemented: "+m.at.type)}else throw new Error("orientation.type not implemented: "+m.type);let x=Ut(t,p.colorStops),E=`satori_radial_${e}`,k=`satori_pattern_${e}`,T=`satori_mask_${e}`,v={},R=Math.max(Math.abs(g-y),Math.abs(y)),$=Math.max(Math.abs(u-h),Math.abs(h));if(c==="circle")v.r=Math.sqrt(R*R+$*$);else if(c==="ellipse"){let A=$!==0?R/$:1;v.ry=Math.sqrt(R*R+$*$*A*A)/A,v.rx=v.ry*A}let I=b("pattern",{id:k,x:l[0]/t,y:l[1]/r,width:s?g/t:"1",height:f?u/r:"1",patternUnits:"objectBoundingBox"},b("radialGradient",{id:E},x.map(A=>b("stop",{offset:A.offset,"stop-color":A.color})).join(""))+b("mask",{id:T},b("rect",{x:0,y:0,width:g,height:u,fill:"#fff"}))+b(c,{cx:y,cy:h,width:g,height:u,...v,fill:`url(#${E})`,mask:`url(#${T})`}));return[k,I]}if(o.startsWith("url(")){let p=lt(a,{x:t,y:r,defaultX:0,defaultY:0}),[m,g,u]=await Fe(o.slice(4,-1)),c=p[0]||g,y=p[1]||u;return[`satori_bi${e}`,b("pattern",{id:`satori_bi${e}`,patternContentUnits:"userSpaceOnUse",patternUnits:"userSpaceOnUse",x:l[0],y:l[1],width:s?c:"100%",height:f?y:"100%"},b("image",{x:0,y:0,width:c,height:y,href:m}))]}throw new Error(`Invalid background image: "${o}"`)}function Wr([e,t]){return Math.round(e*1e3)===0&&Math.round(t*1e3)===0?0:Math.round(e*t/Math.sqrt(e*e+t*t)*1e3)/1e3}function Pe(e,t,r){return r<e+t&&(r/2<e&&r/2<t?e=t=r/2:r/2<e?e=r-t:r/2<t&&(t=r-e)),[e,t]}function Oe(e){e[0]=e[1]=Math.min(e[0],e[1])}function Be(e,t,r,o,a){if(typeof e=="string"){let n=e.split(" ").map(s=>s.trim()),i=!n[1]&&!n[0].endsWith("%");return n[1]=n[1]||n[0],[i,[Math.min(le(n[0],o,t,a,!0),t),Math.min(le(n[1],o,r,a,!0),r)]]}return typeof e=="number"?[!0,[Math.min(e,t),Math.min(e,r)]]:[!0,void 0]}function oe({left:e,top:t,width:r,height:o},a,n){let{borderTopLeftRadius:i,borderTopRightRadius:s,borderBottomLeftRadius:f,borderBottomRightRadius:d,fontSize:l}=a,p,m,g,u;if([p,i]=Be(i,r,o,l,a),[m,s]=Be(s,r,o,l,a),[g,f]=Be(f,r,o,l,a),[u,d]=Be(d,r,o,l,a),!n&&!i&&!s&&!f&&!d)return"";i||(i=[0,0]),s||(s=[0,0]),f||(f=[0,0]),d||(d=[0,0]),[i[0],s[0]]=Pe(i[0],s[0],r),[f[0],d[0]]=Pe(f[0],d[0],r),[i[1],f[1]]=Pe(i[1],f[1],o),[s[1],d[1]]=Pe(s[1],d[1],o),p&&Oe(i),m&&Oe(s),g&&Oe(f),u&&Oe(d);let c=[];c[0]=[s,s],c[1]=[d,[-d[0],d[1]]],c[2]=[f,[-f[0],-f[1]]],c[3]=[i,[i[0],-i[1]]];let y=`h${r-i[0]-s[0]} a${c[0][0]} 0 0 1 ${c[0][1]}`,h=`v${o-s[1]-d[1]} a${c[1][0]} 0 0 1 ${c[1][1]}`,x=`h${d[0]+f[0]-r} a${c[2][0]} 0 0 1 ${c[2][1]}`,E=`v${f[1]+i[1]-o} a${c[3][0]} 0 0 1 ${c[3][1]}`;if(n){let T=function(N){let G=Wr([i,s,d,f][N]);return N===0?[[e+i[0]-G,t+i[1]-G],[e+i[0],t]]:N===1?[[e+r-s[0]+G,t+s[1]-G],[e+r,t+s[1]]]:N===2?[[e+r-d[0]+G,t+o-d[1]+G],[e+r-d[0],t+o]]:[[e+f[0]-G,t+o-f[1]+G],[e,t+o-f[1]]]},k=n.indexOf(!1);if(!n.includes(!0))throw new Error("Invalid `partialSides`.");if(k===-1)k=0;else for(;!n[k];)k=(k+1)%4;let v="",R=T(k),$=`M${R[0]} A${c[(k+3)%4][0]} 0 0 1 ${R[1]}`,I=0;for(;I<4&&n[(k+I)%4];I++)v+=$+" ",$=[y,h,x,E][(k+I)%4];let M=(k+I)%4;v+=$.split(" ")[0];let A=T(M);return v+=` A${c[(M+3)%4][0]} 0 0 1 ${A[0]}`,v}return`M${e+i[0]},${t} ${y} ${h} ${x} ${E}`}function Xt(e,t,r){return r[e+"Width"]===r[t+"Width"]&&r[e+"Style"]===r[t+"Style"]&&r[e+"Color"]===r[t+"Color"]}function Ne({id:e,currentClipPathId:t,borderPath:r,borderType:o,left:a,top:n,width:i,height:s},f){if(!(f.borderTopWidth||f.borderRightWidth||f.borderBottomWidth||f.borderLeftWidth))return null;let l=`satori_bc-${e}`;return[b("clipPath",{id:l,"clip-path":t?`url(#${t})`:void 0},b(o,{x:a,y:n,width:i,height:s,d:r||void 0})),l]}function ce({left:e,top:t,width:r,height:o,props:a,asContentMask:n,maskBorderOnly:i},s){let f=["borderTop","borderRight","borderBottom","borderLeft"];if(!n&&!f.some(g=>s[g+"Width"]))return"";let d="",l=0;for(;l>0&&Xt(f[l],f[(l+3)%4],s);)l=(l+3)%4;let p=[!1,!1,!1,!1],m=[];for(let g=0;g<4;g++){let u=(l+g)%4,c=(l+g+1)%4,y=f[u],h=f[c];if(p[u]=!0,m=[s[y+"Width"],s[y+"Style"],s[y+"Color"],y],!Xt(y,h,s)){let x=(m[0]||0)+(n&&!i&&s[y.replace("border","padding")]||0);x&&(d+=b("path",{width:r,height:o,...a,fill:"none",stroke:n?"#000":m[2],"stroke-width":x*2,"stroke-dasharray":!n&&m[1]==="dashed"?x*2+" "+x:void 0,d:oe({left:e,top:t,width:r,height:o},s,p)})),p=[!1,!1,!1,!1]}}if(p.some(Boolean)){let g=(m[0]||0)+(n&&!i&&s[m[3].replace("border","padding")]||0);g&&(d+=b("path",{width:r,height:o,...a,fill:"none",stroke:n?"#000":m[2],"stroke-width":g*2,"stroke-dasharray":!n&&m[1]==="dashed"?g*2+" "+g:void 0,d:oe({left:e,top:t,width:r,height:o},s,p)}))}return d}function Ee({id:e,left:t,top:r,width:o,height:a,matrix:n,borderOnly:i},s){let f=(s.borderLeftWidth||0)+(i?0:s.paddingLeft||0),d=(s.borderTopWidth||0)+(i?0:s.paddingTop||0),l=(s.borderRightWidth||0)+(i?0:s.paddingRight||0),p=(s.borderBottomWidth||0)+(i?0:s.paddingBottom||0),m={x:t+f,y:r+d,width:o-f-l,height:a-d-p};return b("mask",{id:e},b("rect",{...m,fill:"#fff",mask:s._inheritedMaskId?`url(#${s._inheritedMaskId})`:void 0})+ce({left:t,top:r,width:o,height:a,props:{transform:n||void 0},asContentMask:!0,maskBorderOnly:i},s))}function dt({left:e,top:t,width:r,height:o,path:a,matrix:n,id:i},s){if(s.overflow!=="hidden")return"";let f=Ee({id:`satori_om-${i}`,left:e,top:t,width:r,height:o,matrix:n,borderOnly:!0},s);return b("clipPath",{id:`satori_cp-${i}`,"clip-path":s._inheritedClipPathId?`url(#${s._inheritedClipPathId})`:void 0},b(a?"path":"rect",{x:e,y:t,width:r,height:o,d:a||void 0}))+f}async function ct({id:e,left:t,top:r,width:o,height:a,isInheritingTransform:n,debug:i},s){if(s.display==="none")return"";let f="rect",d="",l="",p=[],m=1,g="";s.backgroundColor&&p.push(s.backgroundColor),s.opacity!==void 0&&(m=+s.opacity),s.transform&&(d=de({left:t,top:r,width:o,height:a},s.transform,n,s.transformOrigin));let u="";if(s.backgroundImage){let I=[];for(let M=0;M<s.backgroundImage.length;M++){let A=s.backgroundImage[M],N=await ut({id:e+"_"+M,width:o,height:a},A);N&&I.unshift(N)}for(let M of I)p.push(`url(#${M[0]})`),l+=M[1],M[2]&&(u+=M[2])}let c=oe({left:t,top:r,width:o,height:a},s);c&&(f="path");let y=dt({left:t,top:r,width:o,height:a,path:c,id:e,matrix:d},s),h=s._inheritedClipPathId,x=s._inheritedMaskId;i&&(g=b("rect",{x:t,y:r,width:o,height:a,fill:"transparent",stroke:"#ff5757","stroke-width":1,transform:d||void 0,"clip-path":h?`url(#${h})`:void 0}));let{backgroundClip:E,filter:k}=s,T=E==="text"?`url(#satori_bct-${e})`:h?`url(#${h})`:void 0,v=p.map(I=>b(f,{x:t,y:r,width:o,height:a,fill:I,d:c||void 0,transform:d||void 0,"clip-path":T,style:k?`filter:${k}`:void 0,mask:x?`url(#${x})`:void 0})).join(""),R=Ne({id:e,left:t,top:r,width:o,height:a,currentClipPathId:h,borderPath:c,borderType:f},s);if(R){l+=R[0];let I=R[1];v+=ce({left:t,top:r,width:o,height:a,props:{transform:d||void 0,"clip-path":`url(#${I})`}},s)}let $=Me({width:o,height:a,id:e,opacity:m,shape:b(f,{x:t,y:r,width:o,height:a,fill:"#fff",stroke:"#fff","stroke-width":0,d:c||void 0,transform:d||void 0,"clip-path":T,mask:x?`url(#${x})`:void 0})},s);return(l?b("defs",{},l):"")+($?$[0]:"")+y+(m!==1?`<g opacity="${m}">`:"")+(u||v)+(m!==1?"</g>":"")+($?$[1]:"")+g}function De({id:e,left:t,top:r,width:o,height:a,src:n,debug:i,isInheritingTransform:s},f){if(f.display==="none")return"";let d="",l="",p="",m=1,g="",u="",c="";f.transform&&(g=de({left:t,top:r,width:o,height:a},f.transform,s,f.transformOrigin));let y=f.objectFit==="contain"?"xMidYMid":f.objectFit==="cover"?"xMidYMid slice":"none",h=oe({left:t,top:r,width:o,height:a},f),x=f._inheritedClipPathId,E=f._inheritedMaskId;h&&(p=b("clipPath",{id:`satori_c-${e}`,"clip-path":x?`url(#${x})`:void 0},b("path",{x:t,y:r,width:o,height:a,d:h})));let k=Ne({id:e,left:t,top:r,width:o,height:a,currentClipPathId:x,borderPath:h,borderType:h?"path":"rect"},f);if(k){u+=k[0];let M=k[1];c+=ce({left:t,top:r,width:o,height:a,props:{transform:g||void 0,"clip-path":`url(#${M})`,mask:E?`url(#${E})`:void 0}},f)}f.opacity&&(m=+f.opacity);let T=Me({width:o,height:a,id:e,opacity:m,shape:b(h?"path":"rect",{x:t,y:r,width:o,height:a,fill:"#fff",d:h||void 0,transform:g||void 0,"clip-path":x?`url(#${x})`:void 0,mask:E?`url(#${E})`:void 0})},f);h&&(d=`satori_cm-${e}`,l=Ee({id:`satori_cm-${e}`,left:t,top:r,width:o,height:a,matrix:g},f));let v=(f.borderLeftWidth||0)+(f.paddingLeft||0),R=(f.borderTopWidth||0)+(f.paddingTop||0),$=(f.borderRightWidth||0)+(f.paddingRight||0),I=(f.borderBottomWidth||0)+(f.paddingBottom||0);return(u?b("defs",{},u):"")+l+(T?T[0]:"")+p+b("image",{x:t+v,y:r+R,width:o-v-$,height:a-R-I,href:n,preserveAspectRatio:y,transform:g||void 0,"clip-path":p?`url(#satori_c-${e})`:x?`url(#${x})`:void 0,mask:d?`url(#${d})`:void 0})+(T?T[1]:"")+c}async function*ke(e,t){let r=te(),{id:o,inheritedStyle:a,parent:n,font:i,debug:s,embedFont:f=!0,graphemeImages:d,canLoadAdditionalAssets:l,getTwStyles:p}=t;if(e===null||typeof e>"u")return yield,yield,"";if(!Ke(e)||typeof e.type=="function"){let w;if(!Ke(e))w=at(String(e),t),yield(await w.next()).value;else{if($t(e.type))throw new Error("Class component is not supported.");w=ke(e.type(e.props),t),yield(await w.next()).value}await w.next();let _=yield;return(await w.next(_)).value}let{type:m,props:g}=e,{style:u,children:c,tw:y}=g||{};if(y){let w=p(y,u);u=Object.assign(w,u)}let h=r.Node.create();n.insertChild(h,n.getChildCount());let[x,E]=await rt(h,m,a,u,g),k=x.transform===a.transform;if(k||(x.transform.__parent=a.transform),x.overflow==="hidden"&&(E._inheritedClipPathId=`satori_cp-${o}`,E._inheritedMaskId=`satori_om-${o}`),x.backgroundClip==="text"){let w={value:""};E._inheritedBackgroundClipTextPath=w,x._inheritedBackgroundClipTextPath=w}let T=Wt(c),v=[],R=0,$=[];for(let w of T){let _=ke(w,{id:o+"-"+R++,parentStyle:x,inheritedStyle:E,isInheritingTransform:!0,parent:h,font:i,embedFont:f,debug:s,graphemeImages:d,canLoadAdditionalAssets:l,getTwStyles:p});l?$.push(...(await _.next()).value||[]):await _.next(),v.push(_)}yield $;for(let w of v)await w.next();let[I,M]=yield,{left:A,top:N,width:G,height:W}=h.getComputedLayout();A+=I,N+=M;let B="",U="",S="";if(m==="img"){let w=x.__src;U=De({id:o,left:A,top:N,width:G,height:W,src:w,isInheritingTransform:k,debug:s},x)}else if(m==="svg"){let w=Pt(e);U=De({id:o,left:A,top:N,width:G,height:W,src:w,isInheritingTransform:k,debug:s},x)}else{let w=u==null?void 0:u.display;if(m==="div"&&c&&typeof c!="string"&&w!=="flex"&&w!=="none")throw new Error('Expected <div> to have explicit "display: flex" or "display: none" if it has more than one child node.');U=await ct({id:o,left:A,top:N,width:G,height:W,isInheritingTransform:k,debug:s},x)}for(let w of v)B+=(await w.next([A,N])).value;return x._inheritedBackgroundClipTextPath&&(S+=b("clipPath",{id:`satori_bct-${o}`,"clip-path":x._inheritedClipPathId?`url(#${x._inheritedClipPathId})`:void 0},x._inheritedBackgroundClipTextPath.value)),S+U+B}import pt from"@shuding/opentype.js";function Fr(e,t,[r,o],[a,n]){if(r!==a)return r?!a||r===e?-1:a===e?1:e===400&&r===500||e===500&&r===400?-1:e===400&&a===500||e===500&&a===400?1:e<400?r<e&&a<e?a-r:r<e?-1:a<e?1:r-a:e<r&&e<a?r-a:e<r?-1:e<a?1:a-r:1;if(o!==n){if(o===t)return-1;if(n===t)return 1}return-1}var ve=class{constructor(t){this.fonts=new Map;this.addFonts(t)}get({name:t,weight:r,style:o}){if(!this.fonts.has(t))return null;r==="normal"&&(r=400),r==="bold"&&(r=700);let a=[...this.fonts.get(t)],n=a[0];for(let i=1;i<a.length;i++){let[,s,f]=n,[,d,l]=a[i];Fr(r,o,[s,f],[d,l])>0&&(n=a[i])}return n[0]}addFonts(t){for(let r of t){let o=r.data,a=pt.parse("buffer"in o?o.buffer.slice(o.byteOffset,o.byteOffset+o.byteLength):o,{lowMemory:!0}),n=a.charToGlyphIndex;a.charToGlyphIndex=s=>{let f=n.call(a,s);return f===0&&a._trackBrokenChars&&a._trackBrokenChars.push(s),f},this.defaultFont||(this.defaultFont=a);let i=r.name.toLowerCase();this.fonts.has(i)||this.fonts.set(i,[]),this.fonts.get(i).push([a,r.weight,r.style])}}getEngine(t=16,r=1.2,{fontFamily:o,fontWeight:a=400,fontStyle:n="normal"}){if(!this.fonts.size)throw new Error("No fonts are loaded. At least one font is required to calculate the layout.");o=(Array.isArray(o)?o:[o]).map(u=>u.toLowerCase());let i=o.map(u=>this.get({name:u,weight:a,style:n})).filter(Boolean),s=Array.from(this.fonts.keys());for(let u of s)o.includes(u)||i.push(this.get({name:u,weight:a,style:n}));let f=new Map,d=(u,c=!0)=>{let y=u.charCodeAt(0);if(f.has(y))return f.get(y);let h=i.find((x,E)=>!!x.charToGlyphIndex(u)||c&&E===i.length-1);return h&&f.set(y,h),h},l=(u,c=!1)=>{var h,x;return((c?(x=(h=u.tables)==null?void 0:h.os2)==null?void 0:x.sTypoAscender:0)||u.ascender)/u.unitsPerEm*t},p=(u,c=!1)=>{var h,x;return((c?(x=(h=u.tables)==null?void 0:h.os2)==null?void 0:x.sTypoDescender:0)||u.descender)/u.unitsPerEm*t},m=u=>d(u,!1),g={check:u=>{let c=m(u);return c?(c._trackBrokenChars=[],c.stringToGlyphs(u),c._trackBrokenChars.length?(c._trackBrokenChars=void 0,!1):!0):!1},baseline:(u,c=typeof u>"u"?i[0]:d(u))=>{let y=l(c,!0),h=p(c,!0),x=g.height(u,c),{yMax:E,yMin:k}=c.tables.head,T=y-h,v=(E/(E-k)-1)*T;return x*((1.2/r+1)/2)+v},height:(u,c=typeof u>"u"?i[0]:d(u))=>(l(c)-p(c))*(r/1.2),measure:(u,c)=>this.measure(d,u,c),getSVG:(u,c)=>this.getSVG(d,u,c)};return g}patchFontFallbackResolver(t,r){let o=[];t._trackBrokenChars=o;let a=t.stringToGlyphs;return t.stringToGlyphs=(n,...i)=>{let s=a.call(t,n,...i);for(let f=0;f<s.length;f++)if(s[f].unicode===void 0){let d=o.shift(),l=r(d);if(l!==t){let p=l.charToGlyph(d),m=t.unitsPerEm/l.unitsPerEm,g=new pt.Path;g.unitsPerEm=t.unitsPerEm,g.commands=p.path.commands.map(c=>{let y={...c};for(let h in y)typeof y[h]=="number"&&(y[h]*=m);return y});let u=new pt.Glyph({...p,advanceWidth:p.advanceWidth*m,xMin:p.xMin*m,xMax:p.xMax*m,yMin:p.yMin*m,yMax:p.yMax*m,path:g});s[f]=u}}return s},()=>{t.stringToGlyphs=a,t._trackBrokenChars=void 0}}measure(t,r,{fontSize:o,letterSpacing:a=0}){let n=t(r),i=this.patchFontFallbackResolver(n,t);try{return n.getAdvanceWidth(r,o,{letterSpacing:a/o})}finally{i()}}getSVG(t,r,{fontSize:o,top:a,left:n,letterSpacing:i=0}){let s=t(r),f=this.patchFontFallbackResolver(s,t);try{return o===0?"":s.getPath(r,n,a,o,{letterSpacing:i/o}).toPathData(1)}finally{f()}}};function mt({width:e,height:t,content:r}){return b("svg",{width:e,height:t,viewBox:`0 0 ${e} ${t}`,xmlns:"http://www.w3.org/2000/svg"},r)}var jt={emoji:/\p{RI}\p{RI}|\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?(\u{200D}\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?)+|\p{EPres}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})?|\p{Emoji}(\p{EMod}+|\u{FE0F}\u{20E3}?|[\u{E0020}-\u{E007E}]+\u{E007F})/u,ja:/\p{scx=Hira}|\p{scx=Kana}|[,;:]/u,ko:/\p{scx=Hangul}/u,zh:/\p{scx=Han}/u,th:/\p{scx=Thai}/u,bn:/\p{scx=Bengali}/u,ar:/\p{scx=Arabic}/u,ta:/\p{scx=Tamil}/u,ml:/\p{scx=Malayalam}/u,he:/\p{scx=Hebrew}/u,te:/\p{scx=Telugu}/u,devanagari:/\p{scx=Devanagari}/u};function Vt(e){for(let t in jt)if(jt[t].test(e))return t;return"unknown"}import*as Jt from"twrnc/create";var Mr={plugins:[{handler:({addUtilities:e})=>{e({"shadow-sm":{boxShadow:"0 1px 2px 0 rgb(0 0 0 / 0.05)"},shadow:{boxShadow:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)"},"shadow-md":{boxShadow:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)"},"shadow-lg":{boxShadow:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)"},"shadow-xl":{boxShadow:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"},"shadow-2xl":{boxShadow:"0 25px 50px -12px rgb(0 0 0 / 0.25)"},"shadow-inner":{boxShadow:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)"},"shadow-none":{boxShadow:"0 0 #0000"}})}}]};function Pr(){return Jt.create(Mr,"web")}var Ge;function gt({width:e,height:t}){return Ge||(Ge=Pr()),Ge.setWindowDimensions({width:+e,height:+t}),Ge}var ht=new WeakMap;async function qt(e,t){let r=te();if(!r)throw new Error("Satori is not initialized.");let o;ht.has(t.fonts)?o=ht.get(t.fonts):ht.set(t.fonts,o=new ve(t.fonts));let a=r.Node.create();a.setWidth(t.width),a.setHeight(t.height),a.setFlexDirection(r.FLEX_DIRECTION_ROW),a.setFlexWrap(r.WRAP_WRAP),a.setAlignContent(r.ALIGN_AUTO),a.setAlignItems(r.ALIGN_FLEX_START),a.setJustifyContent(r.JUSTIFY_FLEX_START),a.setOverflow(r.OVERFLOW_HIDDEN);let n={...t.graphemeImages},i=ke(e,{id:"id",parentStyle:{},inheritedStyle:{fontSize:16,fontWeight:"normal",fontFamily:"serif",fontStyle:"normal",lineHeight:1.2,color:"black",opacity:1,whiteSpace:"normal",_viewportWidth:t.width,_viewportHeight:t.height},parent:a,font:o,embedFont:t.embedFont,debug:t.debug,graphemeImages:n,canLoadAdditionalAssets:!!t.loadAdditionalAsset,getTwStyles:(d,l)=>{let m={...gt({width:t.width,height:t.height})([d])};return typeof m.lineHeight=="number"&&(m.lineHeight=m.lineHeight/(+m.fontSize||l.fontSize||16)),m.shadowColor&&m.boxShadow&&(m.boxShadow=m.boxShadow.replace(/rgba?\([^)]+\)/,m.shadowColor)),m}}),s=(await i.next()).value;if(t.loadAdditionalAsset&&s.length){s=Array.from(new Set(ue(s.join(""),"grapheme")));let d={};s.forEach(m=>{let g=Vt(m);d[g]=d[g]||[],g==="emoji"?d[g].push(m):d[g][0]=(d[g][0]||"")+m});let l=[],p={};await Promise.all(Object.entries(d).flatMap(([m,g])=>g.map(u=>t.loadAdditionalAsset(m,u).then(c=>{typeof c=="string"?p[u]=c:c&&l.push(c)})))),o.addFonts(l),Object.assign(n,p)}await i.next(),a.calculateLayout(t.width,t.height,r.DIRECTION_LTR);let f=(await i.next([0,0])).value;return a.freeRecursive(),mt({width:t.width,height:t.height,content:f})}export{qt as default,tr as init};
5
7
  //# sourceMappingURL=index.js.map