UNPKG

image-editor-canva

Version:

A Canva-like image editor plugin for React

1 lines 201 kB
import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import{fabric as r}from"fabric";import A from"lodash.debounce";import*as i from"react";import{useState as a,useRef as o,useCallback as s,useEffect as c,useMemo as l,memo as d}from"react";import{ChevronRight as g,Check as u,Circle as f,ChevronDown as h,FileJson as I,FileType as C,MousePointerClick as p,Undo2 as B,Redo2 as m,Download as Q,FileImage as E,FileCode as v,X as y,Move as b,Minimize as w,ZoomIn as N,ZoomOut as k,LayoutTemplate as D,ImageIcon as x,SquareStack as S,Type as F,Shapes as M,Pencil as R,Palette as L,Layers as G,Settings as U,Minus as j,Plus as T,AlignLeft as O,AlignCenter as Y,AlignRight as J,SquareSplitHorizontal as z,ArrowUp as P,ArrowDown as _,Copy as H,Trash as K,ChevronsLeft as W,Upload as V,Search as q,GripVertical as Z,Eye as X,EyeOff as $,ChevronUp as ee}from"lucide-react";import{useFilePicker as te}from"use-file-picker";import{clsx as ne}from"clsx";import{twMerge as re}from"tailwind-merge";import*as Ae from"@radix-ui/react-tooltip";import{Slot as ie}from"@radix-ui/react-slot";import*as ae from"@radix-ui/react-separator";import*as oe from"@radix-ui/react-dropdown-menu";import{useEvent as se}from"react-use";import{FaBold as ce,FaItalic as le,FaUnderline as de,FaStrikethrough as ge,FaCircle as ue,FaSquare as fe,FaSquareFull as he}from"react-icons/fa";import{TbColorFilter as Ie}from"react-icons/tb";import{BsBorderWidth as Ce}from"react-icons/bs";import{RxTransparencyGrid as pe}from"react-icons/rx";import{IoTriangle as Be}from"react-icons/io5";import{FaDiamond as me}from"react-icons/fa6";import*as Qe from"@radix-ui/react-scroll-area";import{HexColorPicker as Ee}from"react-colorful";import*as ve from"@radix-ui/react-label";import*as ye from"@radix-ui/react-slider";import{createApi as be}from"unsplash-js";import*as we from"@radix-ui/react-dialog";var Ne=function(){return Ne=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var A in t=arguments[n])Object.prototype.hasOwnProperty.call(t,A)&&(e[A]=t[A]);return e},Ne.apply(this,arguments)};function ke(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var A=0;for(r=Object.getOwnPropertySymbols(e);A<r.length;A++)t.indexOf(r[A])<0&&Object.prototype.propertyIsEnumerable.call(e,r[A])&&(n[r[A]]=e[r[A]])}return n}function De(e,t,n,r){return new(n||(n=Promise))((function(A,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function o(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?A(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,o)}s((r=r.apply(e,t||[])).next())}))}function xe(e,t){var n,r,A,i={label:0,sent:function(){if(1&A[0])throw A[1];return A[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=o(0),a.throw=o(1),a.return=o(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,o[0]&&(i=0)),i;)try{if(n=1,r&&(A=2&o[0]?r.return:o[0]?r.throw||((A=r.return)&&A.call(r),0):r.next)&&!(A=A.call(r,o[1])).done)return A;switch(r=0,A&&(o=[2&o[0],A.value]),o[0]){case 0:case 1:A=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,r=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!(A=i.trys,(A=A.length>0&&A[A.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!A||o[1]>A[0]&&o[1]<A[3])){i.label=o[1];break}if(6===o[0]&&i.label<A[1]){i.label=A[1],A=o;break}if(A&&i.label<A[2]){i.label=A[2],i.ops.push(o);break}A[2]&&i.ops.pop(),i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e],r=0}finally{n=A=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}function Se(e,t,n){if(n||2===arguments.length)for(var r,A=0,i=t.length;A<i;A++)!r&&A in t||(r||(r=Array.prototype.slice.call(t,0,A)),r[A]=t[A]);return e.concat(r||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var Fe,Me,Re=["name","gradientAngle","selectable","hasControls","linkData","editable","extensionType","extension"],Le=["none","polaroid","sepia","kodachrome","contrast","brightness","greyscale","brownie","vintage","technicolor","pixelate","invert","blur","sharpen","emboss","removecolor","blacknwhite","vibrance","blendcolor","huerotate","resize","saturation","gamma"],Ge=(Fe=["Open Sans","Roboto","Lato","Montserrat","Poppins","Nunito","Source Sans Pro","Raleway","Inter","Playfair Display","Merriweather","Oswald","Ubuntu","Roboto Condensed","Noto Sans","PT Sans","Libre Baskerville","Crimson Text","Droid Sans","Arimo","Cabin","Karla","Work Sans","Fira Sans","Rubik","Quicksand","Oxygen","Muli","Titillium Web","Varela Round","Comfortaa","Dancing Script","Pacifico","Lobster","Righteous","Fredoka One","Amatic SC","Indie Flower","Shadows Into Light","Kalam","Caveat","Satisfy","Great Vibes","Allura","Alex Brush","Courgette","Kaushan Script","Tangerine","Abril Fatface","Bebas Neue","Anton","Fjalla One","Russo One","Alfa Slab One","Bungee","Permanent Marker","Creepster","Orbitron","Exo 2","Rajdhani","Audiowide","Electrolize","Jura","Michroma","Gruppo","Syncopate","Advent Pro","Kanit","Prompt","Sarabun","Mitr","Chakra Petch","IBM Plex Sans","IBM Plex Serif","IBM Plex Mono","Space Grotesk","DM Sans","Plus Jakarta Sans","Manrope","Epilogue","Outfit","Lexend","Red Hat Display","Sora","Urbanist","Commissioner","Public Sans","JetBrains Mono","Fira Code","Source Code Pro","Inconsolata","Space Mono","Roboto Mono","Ubuntu Mono","Courier Prime","Anonymous Pro","Overpass Mono"],Me=Se(Se([],["Arial","Arial Black","Verdana","Helvetica","Tahoma","Trebuchet MS","Times New Roman","Georgia","Garamond","Courier New","Brush Script MT","Palatino","Bookman","Comic Sans MS","Impact","Lucida Sans Unicode","Geneva","Lucida Console"],!0),Fe,!0),Array.from(new Set(Me))),Ue=["fill","font","filter","opacity","remove-bg","stroke-color","stroke-width"],je=["#f44336","#e91e63","#9c27b0","#673ab7","#3f51b5","#2196f3","#03a9f4","#00bcd4","#009688","#4caf50","#8bc34a","#cddc39","#ffeb3b","#ffc107","#ff9800","#ff5722","#795548","#607d8b","transparent"],Te="rgba(0,0,0,1)",Oe="rgba(0,0,0,1)",Ye=[],Je="Arial",ze={radius:225,left:100,top:100,fill:Te,stroke:Oe,strokeWidth:2},Pe={left:100,top:100,fill:Te,stroke:Oe,strokeWidth:2,width:400,height:400,angle:0},_e={left:100,top:100,fill:Te,stroke:Oe,strokeWidth:2,width:600,height:600,angle:0},He={left:100,top:100,fill:Te,stroke:Oe,strokeWidth:2,width:400,height:400,angle:0},Ke={type:"textbox",left:100,top:100,fill:Te,fontSize:32,fontFamily:Je};function We(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return re(ne(e))}var Ve=Ae.Provider,qe=Ae.Root,Ze=Ae.Trigger,Xe=Ae.Content,$e=i.forwardRef((function(t,n){var r=t.className,A=t.sideOffset,i=void 0===A?4:A,a=ke(t,["className","sideOffset"]);return e(Xe,Ne({ref:n,sideOffset:i,className:We("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r)},a))}));$e.displayName=Xe.displayName;var et=function(n){var r=n.label,A=n.children,i=n.side,a=void 0===i?"top":i,o=n.align,s=void 0===o?"center":o,c=n.sideOffset,l=void 0===c?4:c,d=n.alignOffset,g=void 0===d?0:d;return e(Ve,{children:t(qe,{delayDuration:100,children:[e(Ze,{asChild:!0,children:A}),e($e,{className:"text-white bg-slate-800 border-slate-800",side:a,align:s,sideOffset:l,alignOffset:g,children:e("p",{className:"font-semibold capitalize",children:r})})]})})};const tt=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,nt=ne,rt=(e,t)=>n=>{var r;if(null==(null==t?void 0:t.variants))return nt(e,null==n?void 0:n.class,null==n?void 0:n.className);const{variants:A,defaultVariants:i}=t,a=Object.keys(A).map((e=>{const t=null==n?void 0:n[e],r=null==i?void 0:i[e];if(null===t)return null;const a=tt(t)||tt(r);return A[e][a]})),o=n&&Object.entries(n).reduce(((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e}),{}),s=null==t||null===(r=t.compoundVariants)||void 0===r?void 0:r.reduce(((e,t)=>{let{class:n,className:r,...A}=t;return Object.entries(A).every((e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n}))?[...e,n,r]:e}),[]);return nt(e,a,s,null==n?void 0:n.class,null==n?void 0:n.className)};var At=rt("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-8 w-8"}},defaultVariants:{variant:"default",size:"default"}}),it=i.forwardRef((function(t,n){var r=t.className,A=t.variant,i=t.size,a=t.asChild,o=void 0!==a&&a,s=ke(t,["className","variant","size","asChild"]);return e(o?ie:"button",Ne({className:We(At({variant:A,size:i,className:r})),ref:n},s))}));it.displayName="Button";var at=i.forwardRef((function(t,n){var r=t.className,A=t.orientation,i=void 0===A?"horizontal":A,a=t.decorative,o=void 0===a||a,s=ke(t,["className","orientation","decorative"]);return e(ae.Root,Ne({ref:n,decorative:o,orientation:i,className:We("shrink-0 bg-border","horizontal"===i?"h-[1px] w-full":"h-full w-[1px]",r)},s))}));at.displayName=ae.Root.displayName;var ot=oe.Root,st=oe.Trigger;i.forwardRef((function(n,r){var A=n.className,i=n.inset,a=n.children,o=ke(n,["className","inset","children"]);return t(oe.SubTrigger,Ne({ref:r,className:We("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",i&&"pl-8",A)},o,{children:[a,e(g,{className:"ml-auto h-4 w-4"})]}))})).displayName=oe.SubTrigger.displayName,i.forwardRef((function(t,n){var r=t.className,A=ke(t,["className"]);return e(oe.SubContent,Ne({ref:n,className:We("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r)},A))})).displayName=oe.SubContent.displayName;var ct=i.forwardRef((function(t,n){var r=t.className,A=t.sideOffset,i=void 0===A?4:A,a=ke(t,["className","sideOffset"]);return e(oe.Portal,{children:e(oe.Content,Ne({ref:n,sideOffset:i,className:We("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r)},a))})}));ct.displayName=oe.Content.displayName;var lt,dt,gt,ut,ft=i.forwardRef((function(t,n){var r=t.className,A=t.inset,i=ke(t,["className","inset"]);return e(oe.Item,Ne({ref:n,className:We("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",A&&"pl-8",r)},i))}));ft.displayName=oe.Item.displayName,i.forwardRef((function(n,r){var A=n.className,i=n.children,a=n.checked,o=ke(n,["className","children","checked"]);return t(oe.CheckboxItem,Ne({ref:r,className:We("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",A),checked:a},o,{children:[e("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e(oe.ItemIndicator,{children:e(u,{className:"h-4 w-4"})})}),i]}))})).displayName=oe.CheckboxItem.displayName,i.forwardRef((function(n,r){var A=n.className,i=n.children,a=ke(n,["className","children"]);return t(oe.RadioItem,Ne({ref:r,className:We("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",A)},a,{children:[e("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e(oe.ItemIndicator,{children:e(f,{className:"h-2 w-2 fill-current"})})}),i]}))})).displayName=oe.RadioItem.displayName,i.forwardRef((function(t,n){var r=t.className,A=t.inset,i=ke(t,["className","inset"]);return e(oe.Label,Ne({ref:n,className:We("px-2 py-1.5 text-sm font-semibold",A&&"pl-8",r)},i))})).displayName=oe.Label.displayName,i.forwardRef((function(t,n){var r=t.className,A=ke(t,["className"]);return e(oe.Separator,Ne({ref:n,className:We("-mx-1 my-1 h-px bg-muted",r)},A))})).displayName=oe.Separator.displayName;class ht{constructor(e,t){this.layerFrame=e,this.parent=t,this.type="Group",this.children=[]}get name(){var e,t;return null!==(t=null===(e=this.layerFrame)||void 0===e?void 0:e.layerProperties.name)&&void 0!==t?t:""}get opacity(){var e,t;return null!==(t=null===(e=this.layerFrame)||void 0===e?void 0:e.layerProperties.opacity)&&void 0!==t?t:0}get composedOpacity(){return this.parent.composedOpacity*(this.opacity/255)}get additionalProperties(){var e;return null===(e=this.layerFrame)||void 0===e?void 0:e.layerProperties.additionalLayerProperties}addChild(e){this.children.push(e)}hasChildren(){return 0!==this.children.length}freeze(){this.children.forEach((e=>{var t,n;return null===(n=(t=e).freeze)||void 0===n?void 0:n.call(t)})),Object.freeze(this.children)}}(dt=lt||(lt={})).SectionDividerSetting="lsct",dt.TypeToolObjectSetting="TySh",dt.UnicodeLayerName="luni",dt.VectorStrokeData="vstk",dt.ObjectBasedEffects="lfx2",dt.GradientFillSetting="GdFl",dt.SolidColorSheetSetting="SoCo",dt.PatternFillSetting="PtFl",dt.VectorStrokeContentData="vscg",dt.BlendOptionsCapacity="iOpa",dt.VectorMaskSetting1="vmsk",dt.VectorMaskSetting2="vsms",dt.HueSaturation="hue2",dt.NestedSectionDividerSetting="lsdk",dt.LayerId="lyid",dt.ArtboardData="artb",dt.SmartObjectPlacedLayerData="SoLE",dt.PlacedLayerData="SoLd",dt.LinkedLayer="lnkD",dt.LinkedLayer2="lnk2",dt.LinkedLayer3="lnk3",function(e){e[e.Normal=0]="Normal",e[e.SceneGroup=1]="SceneGroup"}(gt||(gt={})),function(e){e[e.ClosedSubpathLength=0]="ClosedSubpathLength",e[e.ClosedSubpathBezierKnotLinked=1]="ClosedSubpathBezierKnotLinked",e[e.ClosedSubpathBezierKnotUnlinked=2]="ClosedSubpathBezierKnotUnlinked",e[e.OpenSubpathLength=3]="OpenSubpathLength",e[e.OpenSubpathBezierKnotLinked=4]="OpenSubpathBezierKnotLinked",e[e.OpenSubpathBezierKnotUnlinked=5]="OpenSubpathBezierKnotUnlinked",e[e.PathFillRule=6]="PathFillRule",e[e.Clipboard=7]="Clipboard",e[e.InitialFillRule=8]="InitialFillRule"}(ut||(ut={}));const It=(e,t)=>{const n=Math.max(e.length,t.length);for(let r=0;r<n;r++)if(e[r]!==t[r])return!1;return!0};class Ct extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype),this.name=new.target.name}}class pt extends Ct{}class Bt extends Ct{}class mt extends Ct{}class Qt extends Ct{}class Et extends Ct{}class vt extends Ct{}class yt extends Ct{}class bt extends Ct{}class wt extends Ct{}class Nt extends Ct{}class kt extends Ct{}class Dt extends Ct{}class xt extends Ct{}class St extends Ct{}class Ft extends Ct{}class Mt extends Ct{}class Rt extends Ct{}class Lt extends Ct{}class Gt extends Ct{}class Ut extends Ct{}class jt extends Ct{}class Tt extends Ct{}class Ot extends Ct{}class Yt extends Ct{}class Jt extends Ct{}class zt extends Ct{}class Pt extends Ct{}class _t extends Ct{}class Ht extends Ct{}class Kt extends Ct{}class Wt extends Ct{}class Vt extends Ct{}class qt extends Ct{}class Zt extends Ct{}class Xt extends Ct{}class $t extends Ct{}class en extends Ct{}class tn extends Ct{}class nn extends Ct{}class rn extends Ct{}class An extends Ct{}class an extends Ct{}class on extends Ct{}class sn extends Ct{}function cn(e,t){const n=e.getUint32(t),r=e.getUint32(t+4);if(n>=2097152)throw new zt;return 4294967296*n+r}const ln={u8:1,i8:1,u16:2,i16:2,u32:4,i32:4,f32:4,u64:8,i64:8,f64:8};class dn{static from(e){return new dn(new DataView(e.buffer,e.byteOffset,e.byteLength))}constructor(e,t=0){this.dataView=e,this.position=t}get length(){return this.dataView.byteLength}clone(e){const t=void 0!==e?e:this.position;return new dn(new DataView(this.dataView.buffer,this.dataView.byteOffset,this.dataView.byteLength),t)}pass(e){this.position+=e}unpass(e){this.position-=e}extract(e){if(this.position+e>this.dataView.byteLength)throw new Ut;return new Uint8Array(this.dataView.buffer,this.dataView.byteOffset+this.position,e)}iter(){return new Uint8Array(this.dataView.buffer,this.dataView.byteOffset+this.position)}take(e){const t=this.extract(e);return this.pass(e),t}peek(){return this.dataView.getUint8(this.position)}one(){const e=this.dataView.getUint8(this.position);return this.position+=1,e}read(e){const{dataView:t,position:n}=this;switch(this.pass(ln[e]),e){case"u8":return t.getUint8(n);case"u16":return t.getUint16(n);case"u32":return t.getUint32(n);case"u64":return cn(t,n);case"i8":return t.getInt8(n);case"i16":return t.getInt16(n);case"i32":return t.getInt32(n);case"i64":return function(e,t){const n=e.getInt32(t),r=e.getUint32(t+4);if(n>=2097152||n<-2097152||-2097152===n&&0===r)throw new zt;return 4294967296*n+r}(t,n);case"f32":return t.getFloat32(n);case"f64":return t.getFloat64(n);default:throw new TypeError(`Invalid ReadType: ${e}`)}}readString(e){const t=this.take(e);return(new TextDecoder).decode(t)}readUnicodeString(e=4){const t=2*this.read("u32"),n=this.take(t),r=new TextDecoder("utf-16be").decode(n);return this.padding(4+t,e),0===r.charCodeAt(r.length-1)?r.slice(0,-1):r}readFixedPoint32bit(){return this.read("u32")/65536}readIdString(){const e=this.read("u32");return this.readString(e||4)}padding(e,t){const n=e%t;n>0&&this.pass(t-n)}}const gn=(e,t,n)=>t<=e&&e<=n;function un(e){return e.bottom-e.top}function fn(e){return function(e){return e.right-e.left}(e)*un(e)}var hn,In,Cn,pn,Bn,mn,Qn;function En(e){const t=Object.keys(hn);for(const n of t)if(hn[n]===e)return e;throw new Nt}function vn(e,t,n){const r=e.items.get(t);if(!r)throw new Zt(`Cannot find key "${t}" in descriptor`);if(r.type!==n)throw new Xt(`Unexpected descriptor value type: expected "${n}" but got "${r.type}"`);return r}!function(e){e.PassThrough="pass",e.Normal="norm",e.Dissolve="diss",e.Darken="dark",e.Multiply="mul ",e.ColorBurn="idiv",e.LinearBurn="lbrn",e.DarkerColor="dkCl",e.Lighten="lite",e.Screen="scrn",e.ColorDodge="div ",e.LinearDodge="lddg",e.LighterColor="lgCl",e.Overlay="over",e.SoftLight="sLit",e.HardLight="hLit",e.VividLight="vLit",e.LinearLight="lLit",e.PinLight="pLit",e.HardMix="hMix",e.Difference="diff",e.Exclusion="smud",e.Subtract="fsub",e.Divide="fdiv",e.Hue="hue ",e.Saturation="sat ",e.Color="colr",e.Luminosity="lum "}(hn||(hn={})),function(e){e[e.Base=0]="Base",e[e.NonBase=1]="NonBase"}(In||(In={})),function(e){e[e.Bitmap=0]="Bitmap",e[e.Grayscale=1]="Grayscale",e[e.Indexed=2]="Indexed",e[e.Rgb=3]="Rgb",e[e.Cmyk=4]="Cmyk",e[e.Multichannel=7]="Multichannel",e[e.Duotone=8]="Duotone",e[e.Lab=9]="Lab"}(Cn||(Cn={})),function(e){e[e.One=1]="One",e[e.Eight=8]="Eight",e[e.Sixteen=16]="Sixteen",e[e.ThirtyTwo=32]="ThirtyTwo"}(pn||(pn={})),function(e){e.Alias="alis",e.Boolean="bool",e.Class="type",e.Descriptor="Objc",e.Double="doub",e.Enumerated="enum",e.GlobalClass="GlbC",e.GlobalObject="GlbO",e.Integer="long",e.LargeInteger="comp",e.List="VlLs",e.RawData="tdta",e.Reference="obj ",e.String="TEXT",e.UnitFloat="UntF",e.UnitFloats="UnFl",e.ObjectArray="ObAr"}(Bn||(Bn={})),function(e){e.Angle="#Ang",e.Density="#Rsl",e.Distance="#Rlt",e.Millimeters="#Mlm",e.None="#Nne",e.Percent="#Prc",e.Pixels="#Pxl",e.Points="#Pnt"}(mn||(mn={})),function(e){e[e.PSD=1]="PSD",e[e.PSB=2]="PSB"}(Qn||(Qn={}));const yn=[56,66,80,83],bn=[0,0,0,0,0,0],wn=[1,8,16,32];function Nn(e,t,n,r,A){const i=new dn(e),a=i.read("u16");if(!(a in Cr))throw new kt;const{red:o,green:s,blue:c,alpha:l}=(()=>{switch(a){case Cr.RawData:return function(e,t,n){const r=(e.length-2)/n,A=e.extract(r),i=n>=2?e.extract(r):void 0,a=n>=3?e.extract(r):void 0,o=n>=4?e.extract(r):void 0;if(t===pn.Eight)return{red:A,green:i,blue:a,alpha:o};throw new xt(`Unsupported image bit depth: ${t}`)}(i,t,r);case Cr.RleCompressed:return function(e,t,n,r){let A=0,i=0,a=0,o=0;const s=r.rleScanlineLengthFieldReadType;for(let t=0;t<n;t++)A+=e.read(s);if(t>=2)for(let t=0;t<n;t++)i+=e.read(s);if(t>=3)for(let t=0;t<n;t++)a+=e.read(s);if(4===t)for(let t=0;t<n;t++)o+=e.read(s);const c=2+t*n*r.rleScanlineLengthFieldSize,l=e.clone(c);return{red:l.take(A),green:i?l.take(i):void 0,blue:a?l.take(a):void 0,alpha:o?l.take(o):void 0}}(i,r,n,A);default:throw new Dt}})();return{compression:a,red:o,green:s,blue:c,alpha:l}}const kn=[56,66,73,77];function Dn(e){const t=e.take(4);if(!It(t,kn))throw new Gt;const n=e.read("i16"),r=function(e,t=0){const n=e.read("u8"),r=e.readString(n);if(t){const r=(n+1)%t;r>0&&e.pass(t-r)}return r}(e,2),A=e.read("u32"),i=e.position+A,a=A+A%2,o=e.position;let s=null;switch(n){case Qr.GridAndGuides:s=function(e){const t=e.read("u32");if(1!==t)throw new jt;const n=e.read("u32"),r=e.read("u32"),A=e.read("u32"),i=[];for(let t=0;t<A;++t){const t=e.read("i32"),n=Nr(e.read("u8"));i.push({position:t,direction:n})}return{version:t,gridSizeX:n,gridSizeY:r,guides:i}}(e);break;case Qr.Slices:s=function(e,t){const n=e.read("u32");if(6===n){const r=e.read("i32"),A=e.read("i32"),i=e.read("i32"),a=e.read("i32"),o=e.readUnicodeString(0),s=e.read("u32"),c=[];for(;c.length<s;){const t=e.read("u32"),n=e.read("u32"),r=kr(e.read("u32")),A=1===r?e.read("u32"):void 0;c.push({id:t,groupId:n,origin:r,associatedLayerId:A,name:e.readUnicodeString(0),type:e.read("u32"),left:e.read("i32"),top:e.read("i32"),right:e.read("i32"),bottom:e.read("i32"),url:e.readUnicodeString(0),target:e.readUnicodeString(0),message:e.readUnicodeString(0),altTag:e.readUnicodeString(0),isCellTextHtml:!!e.read("u8"),cellText:e.readUnicodeString(0),horizontalAlignment:e.read("i32"),verticalAlignment:e.read("i32"),alpha:e.read("u8"),red:e.read("u8"),green:e.read("u8"),blue:e.read("u8")})}return{version:n,boundTop:r,boundLeft:A,boundBottom:i,boundRight:a,sliceGroupName:o,slices:c,descriptor:e.position<t?Hr(e):void 0}}if(7===n||8===n)return{version:n,descriptor:Hr(e)};throw new Ot(`Invalid Slices section version: ${n}`)}(e,i);break;case Qr.ICCProfile:s=function(e,t){return e.take(t-e.position)}(e,i);break;case Qr.ResolutionInfo:s=function(e){return{horizontal:e.readFixedPoint32bit(),horizontalUnit:e.read("u16"),widthUnit:e.read("u16"),vertical:e.readFixedPoint32bit(),verticalUnit:e.read("u16"),heightUnit:e.read("u16")}}(e);break;case Qr.GlobalLightAltitude:case Qr.GlobalLightAngle:s=e.read("i32")}const c=o+a-e.position;return c>0&&e.pass(c),{id:n,name:r,resource:s}}function xn(e){const t={};for(const[n,r]of e)t[n]=r;return t}const Sn=(e,t,n)=>{const{top:r,left:A,bottom:i,right:a,opacity:o,clipping:s,hidden:c,transparencyLocked:l,blendMode:d,layerText:g,engineData:u,maskData:f,additionalLayerInfos:h}=t;return{name:e,top:r,left:A,bottom:i,right:a,opacity:o,clippingMask:s,hidden:c,transparencyLocked:l,blendMode:d,groupId:n,text:g,textProperties:u,maskData:f,additionalLayerProperties:xn(h.map((e=>[e.key,e])))}};class Fn{static create(e,t,n){const r=Sn(e.name,e,n);return new Fn(t,r)}constructor(e,t){this.channels=e,this.layerProperties=t}get red(){const e=this.channels.get(pr.Red);if(void 0===e)throw new Ft;return e}get green(){return this.channels.get(pr.Green)}get blue(){return this.channels.get(pr.Blue)}get alpha(){return this.channels.get(pr.TransparencyMask)}get userMask(){return this.channels.get(pr.UserSuppliedLayerMask)}get realUserMask(){return this.channels.get(pr.RealUserSuppliedLayerMask)}get width(){const{right:e,left:t}=this.layerProperties;return e-t+1}get height(){const{bottom:e,top:t}=this.layerProperties;return e-t+1}}class Mn{static create(e,t,n,r){const A=Sn(e,n,r);return new Mn(t,A)}constructor(e,t){this.id=e,this.layerProperties=t}}function Rn(e){return{data:Hr(e)}}function Ln(e){return{fillOpacity:e.read("u8")}}function Gn(e){return{data:Hr(e)}}function Un(e){return{hue:e.read("i16"),saturation:e.read("i16"),lightness:e.read("i16")}}function jn(e){return Array.from(Array(6),(()=>function(e){return{beginRamp:e.read("i16"),beginSustain:e.read("i16"),endSustain:e.read("i16"),endRamp:e.read("i16"),...Un(e)}}(e)))}function Tn(e){const t=e.read("u16"),n=e.read("u8");e.pass(1);return{version:t,colorize:n,colorization:Un(e),master:Un(e),adjustment:n?void 0:jn(e)}}function On(e){return{value:e.read("u32")}}function Yn(e,t){const n=[];let r=0;const A=e.position+t;for(;e.position<A&&(r=e.read("u64"));){const t=e.position,A=Jn(e);n.push(A);const i=r-(e.position-t);e.pass(i),e.padding(e.position,4)}return{layers:n}}function Jn(e){const t=e.readString(4);if("liFD"!==t)throw new Kt(`unknown layer type: '${t}'`);const n=e.read("i32"),r=function(e){const t=e.read("u8");return e.readString(t)}(e),A=e.readUnicodeString(0),i=e.readString(4),a=e.readString(4),o=e.read("u64");return{layerType:t,version:n,uniqueId:r,filename:A,filetype:i,creator:a,data:e.read("u8")?Hr(e):void 0,contents:e.take(o),uuid:n>5?e.readUnicodeString():void 0}}function zn(e){const t=e.read("u32"),n=e.read("u32");return{version:t,descriptor:_r(e),descriptorVersion:n}}function Pn(e){return{data:Hr(e)}}function _n(e,t){const n=function(e){if(e in Br)return e;throw new wt}(e.read("u32"));if(t<12)return{dividerType:n};const r=e.readString(4);if("8BIM"!==r)throw new _t(`Invalid Section Divider Setting signature: ${r}`);const A=En(e.readString(4));if(t<16)return{dividerType:n,dividerSignature:r,blendMode:A};const i=e.read("u32");if(!(i in gt))throw new _t(`Invalid Section Divider Setting subtype: ${i}`);return{dividerType:n,dividerSignature:r,blendMode:A,subType:i}}function Hn(e){const t=e.readString(4),n=e.read("u32");return{data:Hr(e),version:n,identifier:t}}function Kn(e){return{version:e.read("u32"),data:_r(e)}}function Wn(e){const t=e.read("u16");if(1!==t)throw new Ht(`Invalid type tool object setting version: ${t}`);const n=e.read("f64"),r=e.read("f64"),A=e.read("f64"),i=e.read("f64"),a=e.read("f64"),o=e.read("f64"),s=e.read("u16");if(50!==s)throw new Ht(`Invalid text version: ${s}`);const c=Hr(e),l=e.read("u16");if(1!==l)throw new Ht(`Invalid warp version: ${l}`);return{version:t,transformXX:n,transformXY:r,transformYX:A,transformYY:i,transformTX:a,transformTY:o,textVersion:s,textData:c,warpVersion:l,warpData:Hr(e),left:e.read("f64"),top:e.read("f64"),right:e.read("f64"),bottom:e.read("f64")}}function Vn(e){return{name:e.readUnicodeString(0)}}function qn(e){const[t,...n]=e.take(4);return t+(65536*n[0]+256*n[1]+n[2])/2**24}function Zn(e){return{vert:qn(e),horiz:qn(e)}}function Xn(e){const t=e.read("u16");switch(t){case ut.OpenSubpathLength:case ut.ClosedSubpathLength:return function(e,t){const n=e.read("i16"),r=e.read("i16"),A=e.read("i16");e.pass(6);const i=e.read("i16");return e.pass(10),{type:t,length:n,operation:r,subpathType:A,index:i}}(e,t);case ut.PathFillRule:return e.pass(24),{type:t};case ut.Clipboard:return function(e,t){const n=Array(4).map((()=>e.read("f32"))),r=e.read("f32");return e.pass(6),{type:t,bounds:n,resolution:r}}(e,t);case ut.InitialFillRule:return function(e,t){const n=!!(1&e.read("i16"));return e.pass(22),{type:t,fill:n}}(e,t);case ut.ClosedSubpathBezierKnotLinked:case ut.ClosedSubpathBezierKnotUnlinked:case ut.OpenSubpathBezierKnotLinked:case ut.OpenSubpathBezierKnotUnlinked:return function(e,t){return{type:t,preceding:Zn(e),anchor:Zn(e),leaving:Zn(e)}}(e,t);default:throw new Error(`Unknown PathRecordType: ${t} (bug in offsets?)`)}}function $n(e,t){const n=e.read("u32"),r=e.read("u32"),A=function(e,t){const n=Math.floor(t/26);return Array.from(Array(n),(()=>Xn(e)))}(e,t);return{version:n,pathRecords:A,invert:!!(1&r),notLink:!!(2&r),disable:!!(4&r)}}function er(e){return{version:e.read("u32"),data:Hr(e)}}function tr(e){return{data:Hr(e)}}function nr(e,t,n=0){const r=e.readString(4);if("8BIM"!==r&&"8B64"!==r)throw new Pt(`Invalid signature: ${r}`);const A=e.readString(4),i=e.read(function(e,t){if(t.aliLengthFieldSizeIsVariable)switch(e){case"LMsk":case"Lr16":case"Lr32":case"Layr":case"Mt16":case"Mt32":case"Mtrn":case"Alph":case"FMsk":case"Ink2":case"FEid":case"FXid":case"PxSD":case"cinf":return"u64"}return"u32"}(A,t)),a=e.position,o=function(e,t,n,r){switch(n){case lt.NestedSectionDividerSetting:case lt.SectionDividerSetting:return{signature:t,key:n,..._n(e,r)};case lt.TypeToolObjectSetting:return{signature:t,key:n,...Wn(e)};case lt.UnicodeLayerName:return{signature:t,key:n,...Vn(e)};case lt.VectorStrokeData:return{signature:t,key:n,...tr(e)};case lt.ObjectBasedEffects:return{signature:t,key:n,...zn(e)};case lt.GradientFillSetting:return{signature:t,key:n,...Gn(e)};case lt.SolidColorSheetSetting:return{signature:t,key:n,...Kn(e)};case lt.PatternFillSetting:return{signature:t,key:n,...Pn(e)};case lt.VectorStrokeContentData:return{signature:t,key:n,...er(e)};case lt.BlendOptionsCapacity:return{signature:t,key:n,...Ln(e)};case lt.VectorMaskSetting1:case lt.VectorMaskSetting2:return{signature:t,key:n,...$n(e,r)};case lt.HueSaturation:return{signature:t,key:n,...Tn(e)};case lt.LayerId:return{signature:t,key:n,...On(e)};case lt.ArtboardData:return{signature:t,key:n,...Rn(e)};case lt.PlacedLayerData:case lt.SmartObjectPlacedLayerData:return{signature:t,key:n,...Hn(e)};case lt.LinkedLayer:case lt.LinkedLayer2:case lt.LinkedLayer3:return{signature:t,key:n,...Yn(e,r)};default:return{signature:t,key:n,_isUnknown:!0,data:e.take(r)}}}(e,r,A,i),s=i-(e.position-a);return e.pass(s),e.padding(i,n),o}function rr(e,t,n){const r=[];for(;r.length<t;)r.push(Ar(e,n));return r.map((t=>{const r=function(e,t,n,r){const A=new Map,{length:i}=t;for(let a=0;a<i;a++){const[i,o]=t[a],s=wr(e.read("u16"));switch(s){case Cr.RawData:{const t=e.take(o);A.set(i,{compression:s,data:t});break}case Cr.RleCompressed:{const t=e.take(o>0?ar(e,ir(n,i),r.rleScanlineLengthFieldReadType):o);A.set(i,{compression:s,data:t});break}}}return A}(e,t.channelInformation,t,n);return[t,r]})).reverse()}function Ar(e,t){const[n,r,A,i]=function(e){const t=e.read("i32"),n=e.read("i32");let r=e.read("i32");0!==r&&(r-=1);let A=e.read("i32");return 0!==A&&(A-=1),[t,n,r,A]}(e),a=e.read("u16"),o=[];for(;o.length<a;){const n=e.read("i16"),r=e.read(t.layerRecordSectionChannelLengthFieldReadType)-2;o.push([n,r])}if("8BIM"!==e.readString(4))throw new bt;const s=En(e.readString(4)),c=e.read("u8"),l=function(e){if(e===In.Base)return In.Base;if(e===In.NonBase)return In.NonBase;throw new Mt}(e.read("u8")),{hidden:d,transparencyLocked:g}=function(e){const t=e.read("u8");return{transparencyLocked:!!(1&t),hidden:!!(2&t)}}(e);e.pass(1);const u=e.read("u32"),f=e.position,h=function(e){const t=e.read("u32"),n=e.position,[r,A,i,a]=or(e),o=e.read("u8"),s=lr(e),c=t>=36?function(e){const t=lr(e),n=e.read("u8"),[r,A,i,a]=or(e);return{top:r,left:A,bottom:i,right:a,flags:t,backgroundColor:n}}(e):void 0,l=s.masksHaveParametersApplied?function(e){const t=e.read("u8");return{userMaskDensity:t&cr.UserMaskDensity?e.read("u8"):void 0,userMaskFeather:t&cr.UserMaskFeather?e.read("f64"):void 0,vectorMaskDensity:t&cr.VectorMaskDensity?e.read("u8"):void 0,vectorMaskFeather:t&cr.VectorMaskFeather?e.read("f64"):void 0}}(e):void 0,d=t-(e.position-n);return e.pass(d),{top:r,left:A,bottom:i,right:a,backgroundColor:o,flags:s,parameters:l,realData:c}}(e);e.pass(e.read("u32"));const I=e.read("u8");let C=e.readString(I);e.padding(I+1,4);const p=[];for(;e.position-f<u;)p.push(nr(e,t));let B,m,Q;for(const e of p)if(!e._isUnknown)switch(e.key){case lt.SectionDividerSetting:({dividerType:B}=e);break;case lt.TypeToolObjectSetting:{const t=e.textData.descriptor.items.get("Txt ");t&&t.type===Bn.String&&(m=t.value);const n=e.textData.descriptor.items.get("EngineData");n&&n.type===Bn.RawData&&(Q=cA(n.data));break}case lt.UnicodeLayerName:({name:C}=e)}return{name:C,channelInformation:o,top:n,left:r,bottom:A,right:i,hidden:d,transparencyLocked:g,opacity:c,clipping:l,blendMode:s,additionalLayerInfos:p,dividerType:B,layerText:m,engineData:Q,maskData:h}}function ir(e,t){switch(t){case pr.UserSuppliedLayerMask:return un(e.maskData);case pr.RealUserSuppliedLayerMask:return un(function(e){const t=e.maskData.realData;if(!t)throw new Error("missing real mask data");return t}(e));default:return un(e)+1}}function ar(e,t,n){return Array.from(Array(t),(()=>e.read(n))).reduce(((e,t)=>e+t))}function or(e){return Array.from(Array(4),(()=>e.read("i32")))}var sr,cr;function lr(e){const t=e.read("u8");return{positionRelativeToLayer:!!(t&sr.PositionRelativeToLayer),layerMaskDisabled:!!(t&sr.LayerMaskDisabled),invertMaskWhenBlending:!!(t&sr.InvertMaskWhenBlending),userMaskFromRenderingOtherData:!!(t&sr.UserMaskFromRenderingOtherData),masksHaveParametersApplied:!!(t&sr.MasksHaveParametersApplied)}}function dr(e,t){const n=new dn(e);n.pass(t.layerAndMaskSectionLengthFieldSize),n.pass(t.layerInfoSectionLengthFieldSize);const r=n.read("i16"),A=Math.abs(r),i=rr(n,A,t);n.padding(n.position,4),n.pass(n.read("u32"));const a=function(e,t){const n=[];for(;e.position<e.length;)n.push(nr(e,t,4));return xn(n.map((e=>[e.key,e])))}(n,t),o=[],s=[],c=[],l=[{startIndex:0,groupId:0,parentGroupId:0}];let d=0;for(let e=0;e<A;e++){const[t,n]=i[e],r=l[l.length-1].groupId,{dividerType:A}=t;if(A===Br.CloseFolder||A===Br.OpenFolder)d+=1,l.push({startIndex:o.length,groupId:d,parentGroupId:r,layerRecord:t}),c.push("G");else if(A===Br.BoundingSection){const e=l.pop();if(void 0===e)throw new Rt;const n=e.groupId>0?e.groupId:void 0,r=e.layerRecord||t;s.push(Mn.create(r.name,e.groupId,r,n)),c.push("D")}else o.push(Fn.create(t,n,r)),c.push("L")}return s.sort(((e,t)=>e.id-t.id)),{layers:o,groups:s,orders:c,globalAdditionalLayerInformation:a}}!function(e){e[e.PositionRelativeToLayer=1]="PositionRelativeToLayer",e[e.LayerMaskDisabled=2]="LayerMaskDisabled",e[e.InvertMaskWhenBlending=4]="InvertMaskWhenBlending",e[e.UserMaskFromRenderingOtherData=8]="UserMaskFromRenderingOtherData",e[e.MasksHaveParametersApplied=16]="MasksHaveParametersApplied"}(sr||(sr={})),function(e){e[e.UserMaskDensity=1]="UserMaskDensity",e[e.UserMaskFeather=2]="UserMaskFeather",e[e.VectorMaskDensity=4]="VectorMaskDensity",e[e.VectorMaskFeather=8]="VectorMaskFeather"}(cr||(cr={}));function gr(e,t,n=4){const r=(4===n?e.getUint32(t):cn(e,t))+n;return{start:t,end:t+r,size:r}}function ur(e){const t=new DataView(e),n=function(e){const t=new dn(e),n=t.take(4);if(!It(n,yn))throw new pt;const r=t.read("u16");if(r!==Qn.PSD&&r!==Qn.PSB)throw new Bt;const A=Ir(r),i=t.take(6);if(!It(i,bn))throw new mt;const a=t.read("u16");if(!gn(a,1,56))throw new vt;const o=t.read("u32"),s=t.read("u32");if(!gn(o,1,A.maxPixels)||!gn(s,1,A.maxPixels))throw new yt;const c=t.read("u16");if(!wn.includes(c))throw new Et;const l=t.read("u16");if(!(l in Cn))throw new Qt;return{channelCount:a,version:r,width:s,height:o,depth:c,colorMode:l}}(new DataView(e,0,26)),r=Ir(n.version),A=gr(t,26),i=gr(t,A.end),a=gr(t,i.end,r.layerAndMaskSectionLengthFieldSize);return{fileHeader:n,colorModeData:new DataView(e,A.size),imageResources:new DataView(e,i.start,i.size),layerAndMaskInformation:new DataView(e,a.start,a.size),imageData:new DataView(e,a.end)}}const fr={maxPixels:3e4,rleScanlineLengthFieldSize:2,rleScanlineLengthFieldReadType:"u16",layerAndMaskSectionLengthFieldSize:4,layerInfoSectionLengthFieldSize:4,layerRecordSectionChannelLengthFieldReadType:"u32",aliLengthFieldSizeIsVariable:!1},hr={maxPixels:3e5,rleScanlineLengthFieldSize:4,rleScanlineLengthFieldReadType:"u32",layerAndMaskSectionLengthFieldSize:8,layerInfoSectionLengthFieldSize:8,layerRecordSectionChannelLengthFieldReadType:"u64",aliLengthFieldSizeIsVariable:!0};function Ir(e){switch(e){case Qn.PSD:return fr;case Qn.PSB:return hr;default:throw new Bt}}var Cr,pr,Br,mr,Qr,Er,vr,yr,br;function wr(e){if(!(e in Cr))throw new kt;return e}function Nr(e){if(!(e in mr))throw new Tt;return e}function kr(e){if(!(e in Er))throw new Yt(`Invalid slice origin: ${e}`);return e}function Dr(e,t=255){if(!(0<=t&&t<=255))throw new Lt;const n=e.length/4,r=function(e){switch(e){case pr.Red:return 0;case pr.Green:return 1;case pr.Blue:return 2;case pr.TransparencyMask:return 3;default:throw new St}}(pr.TransparencyMask),A=t/255;for(let t=0;t<n;t++){const n=4*t+r;e[n]=Math.floor(A*e[n])}return e}!function(e){e[e.RawData=0]="RawData",e[e.RleCompressed=1]="RleCompressed",e[e.ZipWithoutPrediction=2]="ZipWithoutPrediction",e[e.ZipWithPrediction=3]="ZipWithPrediction"}(Cr||(Cr={})),function(e){e[e.Red=0]="Red",e[e.Green=1]="Green",e[e.Blue=2]="Blue",e[e.TransparencyMask=-1]="TransparencyMask",e[e.UserSuppliedLayerMask=-2]="UserSuppliedLayerMask",e[e.RealUserSuppliedLayerMask=-3]="RealUserSuppliedLayerMask"}(pr||(pr={})),function(e){e[e.Other=0]="Other",e[e.OpenFolder=1]="OpenFolder",e[e.CloseFolder=2]="CloseFolder",e[e.BoundingSection=3]="BoundingSection"}(Br||(Br={})),function(e){e[e.Vertical=0]="Vertical",e[e.Horizontal=1]="Horizontal"}(mr||(mr={})),function(e){e[e.GridAndGuides=1032]="GridAndGuides",e[e.Slices=1050]="Slices",e[e.ICCProfile=1039]="ICCProfile",e[e.GlobalLightAngle=1037]="GlobalLightAngle",e[e.GlobalLightAltitude=1049]="GlobalLightAltitude",e[e.ResolutionInfo=1005]="ResolutionInfo"}(Qr||(Qr={})),function(e){e[e.AutoGenerated=0]="AutoGenerated",e[e.LayerGenerated=1]="LayerGenerated",e[e.UserGenerated=2]="UserGenerated"}(Er||(Er={})),function(e){e[e.PixelsPerInch=1]="PixelsPerInch",e[e.PixelsPerCM=2]="PixelsPerCM"}(vr||(vr={})),function(e){e[e.Inch=1]="Inch",e[e.CM=2]="CM",e[e.Point=3]="Point",e[e.Pica=4]="Pica",e[e.Column=5]="Column"}(yr||(yr={})),function(e){e.Class="Clss",e.Enumerated="Enmr",e.Identifier="Idnt",e.Index="indx",e.Name="name",e.Offset="rele",e.Property="prop"}(br||(br={}));let xr,Sr,Fr,Mr,Rr,Lr,Gr,Ur,jr,Tr,Or=(async()=>{let e;Fr=function(t){e=t};const t=new Array(128).fill(void 0);function n(e){return t[e]}t.push(void 0,null,!0,!1);let r=t.length;function A(e){const A=n(e);return function(e){e<132||(t[e]=r,r=e)}(e),A}let i=new(typeof TextDecoder>"u"?(0,module.require)("util").TextDecoder:TextDecoder)("utf-8",{ignoreBOM:!0,fatal:!0});i.decode();let a=null;function o(){return(null===a||0===a.byteLength)&&(a=new Uint8Array(e.memory.buffer)),a}let s=0;function c(e,t){const n=t(1*e.length,1)>>>0;return o().set(e,n/1),s=e.length,n}let l=null;function d(){return(null===l||0===l.byteLength)&&(l=new Int32Array(e.memory.buffer)),l}function g(e,t){return e>>>=0,o().subarray(e/1,e/1+t)}jr=function(t,n,r,A,i,a,o){try{const h=e.__wbindgen_add_to_stack_pointer(-16),I=c(n,e.__wbindgen_malloc),C=s,p=c(A,e.__wbindgen_malloc),B=s,m=c(a,e.__wbindgen_malloc),Q=s;e.decode_rgb(h,t,I,C,r,p,B,i,m,Q,o);var l=d()[h/4+0],u=d()[h/4+1],f=g(l,u).slice();return e.__wbindgen_free(l,1*u),f}finally{e.__wbindgen_add_to_stack_pointer(16)}},Tr=function(t,n,r,A,i,a,o,l,u){try{const C=e.__wbindgen_add_to_stack_pointer(-16),p=c(n,e.__wbindgen_malloc),B=s,m=c(A,e.__wbindgen_malloc),Q=s,E=c(a,e.__wbindgen_malloc),v=s,y=c(l,e.__wbindgen_malloc),b=s;e.decode_rgba(C,t,p,B,r,m,Q,i,E,v,o,y,b,u);var f=d()[C/4+0],h=d()[C/4+1],I=g(f,h).slice();return e.__wbindgen_free(f,1*h),I}finally{e.__wbindgen_add_to_stack_pointer(16)}},Gr=function(t,n,r){try{const o=e.__wbindgen_add_to_stack_pointer(-16),l=c(n,e.__wbindgen_malloc),u=s;e.decode_grayscale(o,t,l,u,r);var A=d()[o/4+0],i=d()[o/4+1],a=g(A,i).slice();return e.__wbindgen_free(A,1*i),a}finally{e.__wbindgen_add_to_stack_pointer(16)}},Ur=function(t,n,r,A,i){try{const u=e.__wbindgen_add_to_stack_pointer(-16),f=c(n,e.__wbindgen_malloc),h=s,I=c(A,e.__wbindgen_malloc),C=s;e.decode_grayscale_a(u,t,f,h,r,I,C,i);var a=d()[u/4+0],o=d()[u/4+1],l=g(a,o).slice();return e.__wbindgen_free(a,1*o),l}finally{e.__wbindgen_add_to_stack_pointer(16)}};let u=new(typeof TextEncoder>"u"?(0,module.require)("util").TextEncoder:TextEncoder)("utf-8");const f="function"==typeof u.encodeInto?function(e,t){return u.encodeInto(e,t)}:function(e,t){const n=u.encode(e);return t.set(n),{read:e.length,written:n.length}};Sr=function(){return function(e){r===t.length&&t.push(t.length+1);const n=r;return r=t[n],t[n]=e,n}(new Error)},Mr=function(t,r){const A=function(e,t,n){if(void 0===n){const n=u.encode(e),r=t(n.length,1)>>>0;return o().subarray(r,r+n.length).set(n),s=n.length,r}let r=e.length,A=t(r,1)>>>0;const i=o();let a=0;for(;a<r;a++){const t=e.charCodeAt(a);if(t>127)break;i[A+a]=t}if(a!==r){0!==a&&(e=e.slice(a)),A=n(A,r,r=a+3*e.length,1)>>>0;const t=o().subarray(A+a,A+r);a+=f(e,t).written}return s=a,A}(n(r).stack,e.__wbindgen_malloc,e.__wbindgen_realloc),i=s;d()[t/4+1]=i,d()[t/4+0]=A},xr=function(t,n){let r,A;try{r=t,A=n}finally{e.__wbindgen_free(r,A,1)}},Rr=function(e){A(e)},Lr=function(e,t){throw new Error(function(e,t){return e>>>=0,i.decode(o().subarray(e,e+t))}(e,t))},URL=globalThis.URL;const h=await(async(e={},t)=>{let n;if(t.startsWith("data:")){const r=t.replace(/^data:.*?base64,/,"");let A;if("function"==typeof Buffer&&"function"==typeof Buffer.from)A=Buffer.from(r,"base64");else{if("function"!=typeof atob)throw new Error("Cannot decode base64-encoded data URL");{const e=atob(r);A=new Uint8Array(e.length);for(let t=0;t<e.length;t++)A[t]=e.charCodeAt(t)}}n=await WebAssembly.instantiate(A,e)}else{const r=await fetch(t),A=r.headers.get("Content-Type")||"";if("instantiateStreaming"in WebAssembly&&A.startsWith("application/wasm"))n=await WebAssembly.instantiateStreaming(r,e);else{const t=await r.arrayBuffer();n=await WebAssembly.instantiate(t,e)}}return n.instance.exports})({"./webtoon_psd_decoder_bg.js":{__wbg_new_abda76e883ba8a5f:Sr,__wbg_stack_658279fe44541cf6:Mr,__wbg_error_f851667af71bcfc6:xr,__wbindgen_object_drop_ref:Rr,__wbindgen_throw:Lr}},"data:application/wasm;base64,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