PageSourceSearch

https://snapester.com/_next/static/chunks/efc4a31655ffef8f.js

js snapester.com collected 2026-10-01 23:49:11 UTC 219,236 bytes, 170 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55352,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"BailoutToCSR",{enumerable:!0,get:function(){return i}});let r=e.r(1012);function i({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new r.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},11428,(e,t,a)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"encodeURIPath",{enumerable:!0,get:function(){return r}})},81173,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"PreloadChunks",{enumerable:!0,get:function(){return o}});let r=e.r(52201),i=e.r(32514),n=e.r(68039),s=e.r(11428),l=e.r(87233);function o({moduleIds:e}){if("u">typeof window)return null;let t=n.workAsyncStorage.getStore();if(void 0===t)return null;let a=[];if(t.reactLoadableManifest&&e){let r=t.reactLoadableManifest;for(let t of e){if(!r[t])continue;let e=r[t].files;a.push(...e)}}if(0===a.length)return null;let o=(0,l.getDeploymentIdQueryOrEmptyString)();return(0,r.jsx)(r.Fragment,{children:a.map(e=>{let a=`${t.assetPrefix}/_next/${(0,s.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,r.jsx)("link",{precedence:"dynamic",href:a,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,i.preload)(a,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},72162,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return d}});let r=e.r(52201),i=e.r(81506),n=e.r(55352),s=e.r(81173);function l(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},d=function(e){let t={...o,...e},a=(0,i.lazy)(()=>t.loader().then(l)),d=t.loading;function c(e){let l=d?(0,r.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?i.Suspense:i.Fragment,p=t.ssr?(0,r.jsxs)(r.Fragment,{children:["u"<typeof window?(0,r.jsx)(s.PreloadChunks,{moduleIds:t.modules}):null,(0,r.jsx)(a,{...e})]}):(0,r.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(a,{...e})});return(0,r.jsx)(c,{...o?{fallback:l}:{},children:p})}return c.displayName="LoadableComponent",c}},17156,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return i}});let r=e.r(51162)._(e.r(72162));function i(e,t){let a={};"function"==typeof e&&(a.loader=e);let i={...a,...t};return(0,r.default)({...i,modules:i.loadableGenerated?.modules})}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},49754,e=>{e.v("/_next/static/media/worker.c47db340.js")},48533,e=>{e.v(e.b(["static/chunks/9cd3938d1ae93fa1.js","static/chunks/turbopack-8048b989c72a1308.js"]))},2520,e=>{"use strict";let t,a,r,i;var n,s,l=e.i(52201),o=e.i(81506),d=e.i(31197),c=e.i(58474),c=c,p=e.i(96283),u=e.i(38450),m=e.i(17863);let h=(0,m.default)("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),g=(0,m.default)("redo-2",[["path",{d:"m15 14 5-5-5-5",key:"12vg1m"}],["path",{d:"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",key:"6uklza"}]]),f=(0,m.default)("zoom-in",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),x=(0,m.default)("zoom-out",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),b=(0,m.default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);var y=e.i(54928),y=y;let v=(0,m.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);var w=e.i(78594);let j=(0,m.default)("file-image",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]),k=(0,m.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);var N=e.i(29708),N=N;let S=(0,m.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var C=e.i(28051),C=C;let E=(0,m.default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),M=(0,m.default)("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]),P=[{id:"default",label:"Default",items:[{id:"16:9",name:"16:9",detail:"2000 × 1125",aspectMeta:"16:9"},{id:"4:3",name:"4:3",detail:"2000 × 1500",aspectMeta:"4:3"}
1,{id:"1:1",name:"1:1",detail:"2000 × 2000",aspectMeta:"1:1"},{id:"3:2",name:"3:2",detail:"2000 × 1333",aspectMeta:"3:2"},{id:"4:5",name:"4:5",detail:"2000 × 2500",aspectMeta:"4:5"},{id:"9:16",name:"9:16",detail:"2000 × 3556",aspectMeta:"9:16"},{id:"21:9",name:"21:9",detail:"2000 × 857",aspectMeta:"21:9"},{id:"auto",name:"Auto",detail:"Match your image",aspectMeta:"16:9"}]},{id:"x",label:"X (Twitter)",items:[{id:"preset:1200x675",name:"Post (large)",detail:"1200 × 675",aspectMeta:"16:9"},{id:"preset:1200x628",name:"Link / card",detail:"1200 × 628",aspectMeta:"1.91:1"},{id:"preset:1500x500",name:"Profile banner",detail:"1500 × 500",aspectMeta:"3:1"},{id:"preset:1600x900",name:"Post (HD)",detail:"1600 × 900",aspectMeta:"16:9"}]},{id:"youtube",label:"YouTube",items:[{id:"preset:1280x720",name:"Thumbnail",detail:"1280 × 720",aspectMeta:"16:9"},{id:"preset:2560x1440",name:"Channel art",detail:"2560 × 1440",aspectMeta:"16:9"},{id:"preset:1920x1080",name:"Video (1080p)",detail:"1920 × 1080",aspectMeta:"16:9"},{id:"preset:1080x1920",name:"Shorts",detail:"1080 × 1920",aspectMeta:"9:16"}]},{id:"instagram",label:"Instagram",items:[{id:"preset:1080x1080",name:"Square post",detail:"1080 × 1080",aspectMeta:"1:1"},{id:"preset:1080x1350",name:"Portrait post",detail:"1080 × 1350",aspectMeta:"4:5"},{id:"preset:1080x1920",name:"Story / Reels",detail:"1080 × 1920",aspectMeta:"9:16"},{id:"preset:1080x566",name:"Landscape post",detail:"1080 × 566",aspectMeta:"1.91:1"}]},{id:"saas",label:"SaaS & web",items:[{id:"preset:1200x630",name:"Open Graph",detail:"1200 × 630",aspectMeta:"1.91:1"},{id:"preset:512x512",name:"Logo / icon",detail:"512 × 512",aspectMeta:"1:1"},{id:"preset:2000x800",name:"Hero strip",detail:"2000 × 800",aspectMeta:"5:2"},{id:"preset:1200x600",name:"Meta / ad card",detail:"1200 × 600",aspectMeta:"2:1"},{id:"preset:1024x1024",name:"App store",detail:"1024 × 1024",aspectMeta:"1:1"}]}];function $({activeRatio:e,onSelect:t,isPro:a,onShowPro:r,disabled:i}){let[n,s]=o.useState(!1),d=o.useRef(null),[c,p]=o.useState("2000"),[u,m]=o.useState("1125");o.useEffect(()=>{function e(e){"Escape"===e.key&&s(!1)}function t(e){let t=e.target;n&&d.current&&!d.current.contains(t)&&s(!1)}return window.addEventListener("keydown",e),window.addEventListener("mousedown",t),()=>{window.removeEventListener("keydown",e),window.removeEventListener("mousedown",t)}},[n]);let h=o.useMemo(()=>P.flatMap(e=>e.items),[]).find(t=>t.id===e)??null,g=o.useMemo(()=>h?`${h.name} \xb7 ${h.detail.replace(/\s/g,"")}`:"auto"===e?"Auto":"custom"===e?"Custom":e.startsWith("preset:")?e.slice(7).replace("x"," × "):e,[h,e]);return(0,l.jsxs)("div",{className:"ed-ratio-popover-wrap",ref:d,children:[(0,l.jsxs)("button",{type:"button",className:`ed-ratio-trigger${i?" ed-ratio-trigger--disabled":""}`,disabled:i,onClick:()=>{i||s(e=>!e)},title:"Change aspect ratio","aria-expanded":n,"aria-haspopup":"dialog",children:[(0,l.jsx)("span",{className:"ed-ratio-trigger-label",children:"Aspect"}),(0,l.jsx)("span",{className:"ed-ratio-trigger-value",children:g})]}),n&&(0,l.jsxs)("div",{className:"ed-ratio-popover ed-ratio-popover--animate",role:"dialog","aria-label":"Aspect ratio presets",onWheelCapture:e=>e.stopPropagation(),children:[(0,l.jsxs)("div",{className:"ed-ratio-custom",children:[(0,l.jsxs)("div",{className:"ed-ratio-custom-header",children:[(0,l.jsx)("span",{className:"ed-ratio-custom-title",children:"Custom size"}),(0,l.jsx)("span",{className:"ed-badge-pro",children:"Pro"})]}),a?(0,l.jsxs)("div",{className:"ed-ratio-dims ed-ratio-dims--inline",children:[(0,l.jsxs)("div",{className:"ed-ratio-dim",children:[(0,l.jsx)("span",{children:"W"}),(0,l.jsx)("input",{value:c,onChange:e=>p(e.target.value.replace(/[^\d]/g,"")),inputMode:"numeric","aria-label":"Width in pixels"})]}),(0,l.jsx)("span",{className:"ed-ratio-x","aria-hidden":!0,children:"×"}),(0,l.jsxs)("div",{className:"ed-ratio-dim",children:[(0,l.jsx)("span",{children:"H"}),(0,l.jsx)("input",{value:u,onChange:e=>m(e.target.value.replace(/[^\d]/g,"")),inputMode:"numeric","aria-label":"Height in pixels"})]}),(0,l.jsx)("button",{type:"button",className:"ed-ratio-set-btn",onClick:function(){if(!a)return void r("custom_dims");let e=Math.max(100,Math.min(4e3,parseInt(c||"0",10)||2e3)),i=Math.max(100,Math.min(4e3,parseInt(u||"0",10)||1125));t(`preset:${e}x${i}`),s(!1)},children:"Apply"})]}):(0,l.jsx)("button",{type:"button",className:"ed-ratio-custom-locked",onClick:()=>{r("custom_dims")},children:(0,l.jsx)("span",{children:"Unlock any width and height (100–4000px)"})})]}),P.map(a=>(0,l.jsxs)("div",{className:"ed-ratio-section",children:[(0,l.jsx)("div",{className:"ed-ratio-section-title",children:a.label}),(0,l.jsx)("div",{className:"ed-ratio-grid ed-ratio-grid--3",children:a.items.map(a=>{let r,i,n,o=a.id===e,d=(i=(r=a.aspectMeta.split(":").map(e=>Number(e.trim())))[0],n=r[1],!Number.isFinite(i)||!Number.isFinite(n)||i<=0||n<=0?{w:1,h:1}:{w:i,h:n});return(0,l.jsxs)("button",{type:"button",className:`ed-ratio-card ed-ratio-card--tile${o?" ed-ratio-card-active":""}`,onClick:()=>{t(a.id),s(!1)},"aria-pressed":o,children:[(0,l.jsx)("div",{className:"ed-ratio-card-thumb",style:{"--ar-w":d.w,"--ar-h":d.h}}),(0,l.jsxs)("div",{className:"ed-ratio-card-text",children:[(0,l.jsx)("div",{className:"ed-ratio-card-label",children:a.name}),(0,l.jsx)("div",{className:"ed-ratio-card-sub",children:a.detail})]})]},a.id)})})]},a.id))]})]})}var I=e.i(6454);async function R(){let e=(0,I.createClient)();await e.auth.signOut(),window.location.reload()}var T=e.i(13449),L=e.i(82887),c=c,F=e.i(69007);function D({open:e,onClose:t}){let[a,r]=o.useState(!1);return(o.useEffect(()=>{if(e){let e=setTimeout(()=>r(!0),10);return()=>clearTimeout(e)}r(!1)},[e]),e)?(0,l.jsx)("div",{className:`ed-modal-overlay ${a?"ed-modal-overlay-visible":""}`,role:"presentation",onClick:e=>{e.target===e.currentTarget&&t()},children:(0,l.jsxs)("div",{className:"ed-modal ed-feedback-modal",role:"dialog","aria-modal":"true","aria-label":"Send feedback",children:[(0,l.jsx)("button",{className:"ed-modal-close",type:"button","aria-label":"Close",onClick:t,children:(0,l.jsx)(c.default,{size:16})}),(0,l.jsxs)("div",{className:"ed-feedback-modal-header",children:[(0,l.jsxs)("div",{className:"ed-feedback-modal-title-row",children:[(0,l.jsx)("span",{className:"ed-feedback-modal-icon","aria-hidden":!0,
1children:(0,l.jsx)(M,{size:17,strokeWidth:2.2})}),(0,l.jsx)("h2",{className:"ed-feedback-modal-title",children:"Send feedback"})]}),(0,l.jsx)("p",{className:"ed-feedback-modal-subtitle",children:"Report a bug, suggest a feature, or tell us what felt off while editing."})]}),(0,l.jsx)(F.FeedbackFormPanel,{variant:"editor",onSuccess:t})]})}):null}function z({className:e}){return(0,l.jsx)("svg",{className:e,viewBox:"0 0 24 24","aria-hidden":!0,width:15,height:15,children:(0,l.jsx)("path",{fill:"currentColor",d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"})})}function W({zoom:e,activeRatio:t,canUndo:a,canRedo:r,hasImage:i,isCopied:n,isPro:s,isExporting:d,isAuthLoading:c,isVideoBackground:p,account:m,onUndo:P,onRedo:I,onZoomBump:F,onZoomFit:W,onResetView:A,onRatioSelect:O,onCopy:H,onPreview:B,onExport:_,onExportFormat:Y,onShowPro:X,onShareToX:V,exportLimitReached:U,copyDisabled:G=!1}){let[q,K]=o.useState(!1),[Q,J]=o.useState(!1),[Z,ee]=o.useState(!1),et=o.useRef(null),ea=o.useRef(null);function er(e,t){(K(!1),U)?X("export_limit"):t&&!s?X(e.startsWith("gif_")||e.startsWith("video_")||"mp4"===e?"premium_video_gif":"export_format"):Y(e)}return o.useEffect(()=>{function e(e){let t=e.target;q&&!et.current?.contains(t)&&K(!1),Q&&!ea.current?.contains(t)&&J(!1)}return window.addEventListener("mousedown",e),()=>window.removeEventListener("mousedown",e)},[q,Q]),(0,l.jsxs)("header",{className:"ed-header",children:[(0,l.jsxs)("div",{className:"ed-header-left",children:[(0,l.jsxs)(u.default,{href:"/",className:"ed-logo","aria-label":"Back to Snapester home",children:[(0,l.jsx)("div",{className:"ed-logo-mark",children:(0,l.jsx)("img",{src:"/snapester-icon.svg",alt:"",width:20,height:20,style:{objectFit:"contain"}})}),(0,l.jsx)("span",{className:"ed-logo-text",children:"Snapester"})]}),(0,l.jsx)("div",{className:"ed-header-divider"}),(0,l.jsxs)("div",{className:"flex gap-0.5",children:[(0,l.jsx)("button",{type:"button",className:"ed-icon-btn",title:"Undo (Ctrl+Z)",disabled:!a,onClick:P,"aria-label":"Undo",children:(0,l.jsx)(h,{size:17})}),(0,l.jsx)("button",{type:"button",className:"ed-icon-btn",title:"Redo (Ctrl+Shift+Z)",disabled:!r,onClick:I,"aria-label":"Redo",children:(0,l.jsx)(g,{size:17})})]}),(0,l.jsx)("div",{className:"ed-header-divider"}),(0,l.jsxs)("div",{className:`flex items-center gap-1${!i?" ed-header-zoom--disabled":""}`,children:[(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-icon-btn-sm",title:"Zoom out",disabled:!i,onClick:()=>F(-1),"aria-label":"Zoom out",children:(0,l.jsx)(x,{size:16})}),(0,l.jsxs)("span",{className:"ed-zoom-label",children:[Math.round(100*e),"%"]}),(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-icon-btn-sm",title:"Zoom in",disabled:!i,onClick:()=>F(1),"aria-label":"Zoom in",children:(0,l.jsx)(f,{size:16})}),(0,l.jsx)("button",{type:"button",className:"ed-badge-btn",disabled:!i,onClick:W,title:"Fit canvas to viewport",children:"Fit"}),(0,l.jsx)("div",{className:"ed-header-divider ed-header-divider--before-reset"}),(0,l.jsx)("button",{type:"button",className:"ed-icon-btn",disabled:!i,onClick:A,title:"Reset editor — back to start (clears project, new session)","aria-label":"Reset editor to initial state",children:(0,l.jsx)(E,{size:17})})]})]}),(0,l.jsx)("div",{className:"ed-header-center",children:(0,l.jsxs)("div",{className:"ed-header-center-inner",children:[(0,l.jsx)($,{activeRatio:t,onSelect:O,isPro:s,onShowPro:X,disabled:!i}),(0,l.jsx)("div",{className:"ed-share-x-wrap",children:(0,l.jsxs)("button",{type:"button",className:"ed-share-x-btn",onClick:V,disabled:!i||d||c||U,title:"Copy image, then open X to paste","aria-label":"Share on X",children:[(0,l.jsx)(z,{className:"ed-share-x-icon"}),(0,l.jsx)("span",{className:"ed-share-x-label",children:"Share on X"})]})})]})}),(0,l.jsxs)("div",{className:"ed-header-right",children:[(0,l.jsxs)("div",{className:"ed-header-utility",children:[(0,l.jsx)("a",{href:L.CHROME_EXTENSION_EDITOR_URL,target:"_blank",rel:"noopener noreferrer",className:"ed-icon-btn ed-header-action-btn ed-header-ext-btn",title:"Add Snapester to Chrome","aria-label":"Add Snapester to Chrome",children:(0,l.jsx)(T.ChromeIcon,{size:17})}),m&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-header-divider ed-header-divider--compact"}),(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-header-action-btn ed-header-feedback-btn",onClick:()=>ee(!0),title:"Send feedback","aria-label":"Send feedback",children:(0,l.jsx)(M,{size:17,strokeWidth:2.2})})]}),m&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-header-divider ed-header-divider--compact"}),(0,l.jsxs)("div",{className:"relative",ref:ea,children:[(0,l.jsx)("button",{type:"button",className:"ed-icon-btn",onClick:()=>J(e=>!e),"aria-label":"Account menu",style:{width:28,height:28,borderRadius:"50%"},children:(0,l.jsx)("img",{src:m.avatarUrl||`https://api.dicebear.com/7.x/avataaars/svg?seed=${m.userId}`,alt:"",style:{width:26,height:26,borderRadius:"50%",objectFit:"cover"}})}),Q&&(0,l.jsxs)("div",{className:"ed-account-dropdown",children:[(0,l.jsxs)("div",{className:"px-4 py-2 border-b",style:{borderColor:"var(--ed-border)"},children:[(0,l.jsx)("div",{className:"text-xs font-semibold truncate max-w-[170px]",style:{color:"var(--ed-text)"},title:m.name,children:m.name}),(0,l.jsx)("div",{className:"text-[11px] font-medium truncate max-w-[170px]",style:{color:"var(--ed-secondary)"},title:m.email,children:m.email}),(0,l.jsx)("div",{className:"text-[10px] mt-0.5",style:{color:m.isPro?"var(--ed-accent)":"var(--ed-subtle)"},children:m.planLabel}),m.trialEndsLabel&&(0,l.jsxs)("div",{className:"text-[10px] mt-0.5",style:{color:"var(--ed-subtle)"},children:["Trial ends ",m.trialEndsLabel]}),m.exportQuota&&(0,l.jsxs)("div",{className:"text-[10px] mt-1",style:{color:"var(--ed-subtle)"},children:["Exports:"," ",(0,l.jsxs)("span",{style:{color:"var(--ed-secondary)",fontWeight:600},children:[m.exportQuota.used,"/",m.exportQuota.limit]})]})]}),(0,l.jsxs)(u.default,{href:"/dashboard",className:"ed-account-item",target:"_blank",rel:"noreferrer",children:[(0,l.jsx)(S,{size:13})," Dashboard"]}),(0,l.jsxs)(u.default,{href:"/dashboard/billing",className:"ed-account-item",target:"_blank",rel:"noreferrer",children:[(0,l.jsx)(N.default,{size:13})," My Plan"]}),(0,l.jsx)("div",{className:"ed-account-divider"}),(0,l.jsxs)("button",{type:"button",className:"ed-account-item ed-account-item-danger",onClick:()=>{R()},children:[(0,l.jsx)(C.default,{size:13})," Sign Out"]})]})]})]})]}),(0,l.jsx)("div",{className:"ed-header-divider"}),(0,l.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,l.jsxs)("button",{type:"button",className:"ed-btn ed-btn-secondary",disabled:!i||c||U||G,onClick:H,title:G?"Switch to Image export to copy — GIF and video must be downloaded":"Copy to clipboard",children:[(0,l.jsx)(b,{size:13}),(0,l.jsx)("span",{children:"Copy"})]}),(0,l.jsxs)("button",{type:"button",className:"ed-btn ed-btn-secondary",disabled:!i||c||U,onClick:B,title:"Preview full resolution",children:[(0,l.jsx)(y.default,{size:13}),(0,l.jsx)("span",{children:"Preview"})]}),(0,l.jsxs)("div",{className:"relative flex",ref:et,children:[(0,l.jsxs)("button",{type:"button",className:"ed-btn ed-btn-primary",style:{borderRadius:"8px 0 0 8px",paddingRight:8},disabled:!i||c||U,onClick:()=>{U?X("export_limit"):_()},title:"Export as PNG",children:[(0,l.jsx)(v,{size:13}),(0,l.jsxs)("span",{children:["Export",m?.exportQuota&&(0,l.jsxs)("span",{style:{marginLeft:8,fontSize:11,opacity:.85},children:[m.exportQuota.used,"/",m.exportQuota.limit]})]})]}),(0,l.jsx)("button",{type:"button",className:"ed-btn ed-btn-primary",style:{borderRadius:"0 8px 8px 0",paddingLeft:6,paddingRight:6,borderLeft:"1px solid rgba(255,255,255,0.15)"},disabled:!i||c||U,onClick:()=>K(e=>!e),title:"More export options","aria-label":"Export options",children:(0,l.jsx)(w.ChevronDown,{size:12,style:{transform:q?"rotate(180deg)":"none",transition:"transform 0.15s"}})}),q&&(0,l.jsx)("div",{className:"absolute right-0 top-full mt-1.5 rounded-xl py-1 z-[200] min-w-[200px]",style:{background:"var(--ed-overlay)",border:"1px solid var(--ed-border-md)"},children:p?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-widest px-3 py-1.5",style:{color:"var(--ed-subtle)"},children:"Image"}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("png",!1),children:[(0,l.jsx)(j,{size:12})," PNG Image"]}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("jpg",!s),children:[(0,l.jsx)(j,{size:12})," JPG High Quality",(0,l.jsx)("span",{className:"ed-badge-pro ml-auto",children:"PRO"})]}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("webp",!s),children:[(0,l.jsx)(j,{size:12})," WebP",(0,l.jsx)("span",{className:"ed-badge-pro ml-auto",children:"PRO"})]}),(0,l.jsx)("div",{className:"my-1",style:{borderTop:"1px solid var(--ed-border)"}}
1),(0,l.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-widest px-3 py-1.5",style:{color:"var(--ed-subtle)"},children:"GIF"}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("gif_720",!0),children:[(0,l.jsx)(N.default,{size:12})," 720p GIF",(0,l.jsx)("span",{className:"ed-badge-pro ml-auto",children:"PRO"})]}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("gif_1080",!0),children:[(0,l.jsx)(N.default,{size:12})," 1080p GIF",(0,l.jsx)("span",{className:"ed-badge-pro ml-auto",children:"PRO"})]}),(0,l.jsx)("div",{className:"my-1",style:{borderTop:"1px solid var(--ed-border)"}}),(0,l.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-widest px-3 py-1.5",style:{color:"var(--ed-subtle)"},children:"Video"}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("video_720",!0),children:[(0,l.jsx)(k,{size:12})," HD 720p Video",(0,l.jsx)("span",{className:"ed-badge-pro ml-auto",children:"PRO"})]}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("video_1080",!0),children:[(0,l.jsx)(k,{size:12})," FHD 1080p Video",(0,l.jsx)("span",{className:"ed-badge-pro ml-auto",children:"PRO"})]}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("video_2k",!0),children:[(0,l.jsx)(k,{size:12})," 2K Quad HD Video",(0,l.jsx)("span",{className:"ed-badge-pro ml-auto",children:"PRO"})]})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-widest px-3 py-1.5",style:{color:"var(--ed-subtle)"},children:"Image"}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("png",!1),children:[(0,l.jsx)(j,{size:12})," PNG Image"]}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("jpg",!s),children:[(0,l.jsx)(j,{size:12})," JPG High Quality",(0,l.jsx)("span",{className:"ed-badge-pro ml-auto",children:"PRO"})]}),(0,l.jsxs)("button",{className:"ed-export-item",onClick:()=>er("webp",!s),children:[(0,l.jsx)(j,{size:12})," WebP",(0,l.jsx)("span",{className:"ed-badge-pro ml-auto",children:"PRO"})]})]})})]})]})]}),(0,l.jsx)(D,{open:Z,onClose:()=>ee(!1)})]})}let A=(0,m.default)("image-plus",[["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}],["path",{d:"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5",key:"1ue2ih"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]),O=(0,m.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),H=[{id:"images",label:"Wallpapers"},{id:"gradients",label:"Gradients"},{id:"premium",label:"Themes"},{id:"videos",label:"Videos"},{id:"mesh",label:"Mesh"},{id:"texture",label:"Texture"},{id:"solid",label:"Solid"},{id:"transparent",label:"Clear"},{id:"recent",label:"Recent"}];function B({activeTab:e,onTabChange:t,disabled:a=!1}){return(0,l.jsx)("nav",{className:"ed-bg-tabs","aria-label":"Background categories",children:H.map(r=>(0,l.jsxs)("button",{type:"button",className:`ed-bg-tab${e===r.id?" ed-bg-tab-active":""}`,disabled:a,onClick:()=>{a||t(r.id)},"aria-pressed":e===r.id,children:[r.label,"videos"===r.id&&(0,l.jsx)("span",{className:"ed-bg-tab-new","aria-label":"New",children:"New"})]},r.id))})}let _=(0,m.default)("shuffle",[["path",{d:"m18 14 4 4-4 4",key:"10pe0f"}],["path",{d:"m18 2 4 4-4 4",key:"pucp1d"}],["path",{d:"M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22",key:"1ailkh"}],["path",{d:"M2 6h1.972a4 4 0 0 1 3.6 2.2",key:"km57vx"}],["path",{d:"M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45",key:"os18l9"}]]);function Y(e){let t=e.trim();return!t.startsWith("http")||t.startsWith("data:")?t:`/api/editor/proxy-img?u=${encodeURIComponent(t)}`}function X(e){return e.replace(/url\(\s*(['"]?)(https?:\/\/[^'")]+)\1\s*\)/gi,(e,t,a)=>"string"!=typeof a||a.startsWith("data:")?e:`url(${JSON.stringify(Y(a))})`)}function V({backgroundValue:e,type:t,isActive:a,label:r,onSelect:i}
1){let[n,s]=o.useState(null);return(o.useEffect(()=>{if("video"!==t)return;let a=!1,r=document.createElement("video");return r.crossOrigin="anonymous",r.muted=!0,r.preload="metadata",r.src=e,r.onloadeddata=()=>{a||(r.currentTime=.5)},r.onseeked=()=>{if(!a){try{let e=document.createElement("canvas");e.width=160,e.height=90;let t=e.getContext("2d");t&&(t.drawImage(r,0,0,160,90),s(e.toDataURL("image/jpeg",.7)))}catch{}r.src=""}},r.onerror=()=>{r.src=""},()=>{a=!0,r.src=""}},[e,t]),"video"===t)?(0,l.jsxs)("button",{type:"button",className:`ed-video-swatch${a?" ed-bg-swatch-active":""}`,onClick:i,title:r,"aria-label":r,"aria-pressed":a,children:[n?(0,l.jsx)("img",{src:n,alt:r,style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"cover"}}):(0,l.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",style:{color:"var(--ed-subtle)"},children:(0,l.jsx)(k,{size:18,style:{opacity:.5}})}),(0,l.jsx)("div",{className:"ed-video-play-badge",children:(0,l.jsx)(k,{size:8,fill:"currentColor"})})]}):(0,l.jsx)("button",{type:"button",className:`ed-bg-swatch${a?" ed-bg-swatch-active":""}`,style:"transparent"===t?{background:"repeating-conic-gradient(var(--ed-border, #3a3a45) 0% 25%, var(--ed-bg-elevated, #252530) 0% 50%) 50% / 10px 10px"}:"gradient"===t||"mesh"===t||"texture"===t?{background:X(e),backgroundSize:"cover",backgroundPosition:"center"}:"image-url"===t?{backgroundImage:`url(${JSON.stringify(Y(e))})`,backgroundSize:"cover",backgroundPosition:"center",backgroundColor:"#1a1a24"}:"solid"===t?{backgroundColor:e}:{},onClick:i,title:r,"aria-label":r,"aria-pressed":a})}let U=[{id:"premium-bg-1",name:"Premium 1",css:"url('/backgrounds/gradients/1.webp') center/cover"},{id:"premium-bg-2",name:"Premium 2",css:"url('/backgrounds/gradients/2.webp') center/cover"},{id:"premium-bg-3",name:"Premium 3",css:"url('/backgrounds/gradients/3.webp') center/cover"},{id:"premium-bg-4",name:"Premium 4",css:"url('/backgrounds/gradients/4.webp') center/cover"},{id:"premium-bg-5",name:"Premium 5",css:"url('/backgrounds/gradients/5.webp') center/cover"},{id:"premium-bg-6",name:"Premium 6",css:"url('/backgrounds/gradients/6.webp') center/cover"},{id:"premium-bg-7",name:"Premium 7",css:"url('/backgrounds/gradients/7.webp') center/cover"},{id:"premium-bg-8",name:"Premium 8",css:"url('/backgrounds/gradients/8.webp') center/cover"},{id:"premium-bg-9",name:"Premium 9",css:"url('/backgrounds/gradients/9.webp') center/cover"},{id:"premium-bg-10",name:"Premium 10",css:"url('/backgrounds/gradients/10.webp') center/cover"},{id:"premium-bg-11",name:"Premium 11",css:"url('/backgrounds/gradients/11.webp') center/cover"},{id:"premium-bg-12",name:"Premium 12",css:"url('/backgrounds/gradients/12.webp') center/cover"},{id:"premium-bg-13",name:"Premium 13",css:"url('/backgrounds/gradients/13.webp') center/cover"},{id:"premium-bg-14",name:"Premium 14",css:"url('/backgrounds/gradients/14.webp') center/cover"},{id:"bento-gradient",name:"Bento Studio",css:"radial-gradient(at 0% 0%, #ff7a18 0%, transparent 50%), radial-gradient(at 100% 0%, #ffb347 0%, transparent 50%), radial-gradient(at 100% 100%, #8b5cf6 0%, transparent 50%), radial-gradient(at 0% 100%, #3b82f6 0%, transparent 50%), #111118"},{id:"cyberpunk-dusk",name:"Cyberpunk",css:"linear-gradient(160deg, #120136 0%, #035aa6 40%, #40ba93 100%)"},{id:"rose-gold",name:"Rose Gold",css:"linear-gradient(135deg, #fdfcfb 0%, #e2d1c3 100%)"}],G=[{id:"macos-ventura",name:"Ventura",category:"macos",css:`
2            radial-gradient(ellipse 110% 90% at -5% 85%,  #c43500 0%, transparent 48%),
3            radial-gradient(ellipse 90% 70% at 55% 95%,   #ff6a00 0%, transparent 52%),
4            radial-gradient(ellipse 70% 90% at 105% 10%,  #50b8e8 0%, transparent 48%),
5            radial-gradient(ellipse 90% 70% at 30% 5%,    #f0c040 0%, transparent 48%),
6            linear-gradient(135deg, #e06c00 0%, #f09000 25%, #e05500 50%, #c03000 70%, #5090c0 100%)
7        `},{id:"macos-big-sur",name:"Big Sur",category:"macos",css:`
8            radial-gradient(ellipse 130% 90% at 10% 100%, #c0006b 0%, transparent 50%),
9            radial-gradient(ellipse 90% 70% at 50% 15%, #f5d0ff 0%, transparent 48%),
10            radial-gradient(ellipse 70% 90% at 90% 5%,  #006fc0 0%, transparent 50%),
11            radial-gradient(ellipse 110% 110% at 45% 65%, #ff3a5c 0%, transparent 55%),
12            radial-gradient(ellipse 90% 90% at 95% 65%,  #ff8c00 0%, transparent 52%),
13            linear-gradient(145deg, #6a1bb5 0%, #d41b6b 35%, #ff6b22 55%, #ffc530 75%, #009bcf 100%)
14        `},{id:"macos-sonoma",name:"Sonoma",category:"macos",css:`
15            radial-gradient(ellipse 110% 110% at 0% 100%,  #1a3a6e 0%, transparent 52%),
16            radial-gradient(ellipse 90% 70% at 50% 85%,    #3a6abf 0%, transparent 52%),
17            radial-gradient(ellipse 90% 70% at 105% 5%,    #6ab0e0 0%, transparent 48%),
18            radial-gradient(ellipse 70% 90% at 18% 15%,    #8098c8 0%, transparent 48%),
19            linear-gradient(145deg, #1c2e5a 0%, #3050a0 30%, #4880cc 5
195%, #70aadc 75%, #a8cce8 100%)
20        `},{id:"macos-sequoia",name:"Sequoia",category:"macos",css:`
21            radial-gradient(ellipse 90% 110% at 12% 55%,   #0a5c30 0%, transparent 58%),
22            radial-gradient(ellipse 90% 70% at 82% 82%,    #187848 0%, transparent 52%),
23            radial-gradient(ellipse 70% 90% at 95% 8%,     #4aae6a 0%, transparent 48%),
24            radial-gradient(ellipse 90% 70% at 28% 8%,     #2a8050 0%, transparent 52%),
25            linear-gradient(145deg, #0d3a1e 0%, #1a5830 30%, #2a8050 55%, #3da068 75%, #5ec085 100%)
26        `},{id:"macos-monterey",name:"Monterey",category:"macos",css:`
27            radial-gradient(ellipse 130% 90% at 0% 40%,    #8B3DD4 0%, transparent 52%),
28            radial-gradient(ellipse 90% 70% at 60% 105%,   #E040BD 0%, transparent 48%),
29            radial-gradient(ellipse 70% 90% at 105% 0%,    #42A5F5 0%, transparent 52%),
30            radial-gradient(ellipse 90% 70% at 28% 8%,     #7E57C2 0%, transparent 48%),
31            radial-gradient(ellipse 70% 70% at 68% 28%,    #F06292 0%, transparent 42%),
32            linear-gradient(135deg, #5B00BA 0%, #9C27B0 30%, #E040FB 55%, #FF80AB 75%, #448AFF 100%)
33        `},{id:"macos-night",name:"Night Mode",category:"macos",css:`
34            radial-gradient(ellipse 90% 90% at 18% 82%,   #1a2a7a 0%, transparent 58%),
35            radial-gradient(ellipse 70% 70% at 82% 18%,   #2a3090 0%, transparent 52%),
36            radial-gradient(ellipse 70% 70% at 48% 48%,   #151a50 0%, transparent 58%),
37            radial-gradient(ellipse 50% 50% at 68% 68%,   #3a1880 0%, transparent 48%),
38            linear-gradient(145deg, #080a28 0%, #101840 40%, #181f58 70%, #101838 100%)
39        `},{id:"macos-sunrise",name:"Sunrise",category:"macos",css:`
40            radial-gradient(ellipse 110% 70% at 50% 105%, #ff6b35 0%, #ff3d71 28%, transparent 58%),
41            radial-gradient(ellipse 90% 70% at 18% 28%,   #ffd166 0%, transparent 48%),
42            radial-gradient(ellipse 90% 70% at 82% 18%,   #06d6a0 0%, transparent 48%),
43            linear-gradient(to bottom, #118ab2 0%, #073b4c 15%, #1a0d30 40%, #3d1550 60%, #c1121f 80%, #ff6b35 100%)
44        `},{id:"macos-abstract-blue",name:"Abstract Blue",category:"macos",css:`
45            radial-gradient(ellipse 90% 70% at 38% 58%,   #0033aa 0%, transparent 48%),
46            radial-gradient(ellipse 70% 90% at 82% 18%,   #0055cc 0%, transparent 52%),
47            radial-gradient(ellipse 70% 70% at 8% 28%,    #2a2580 0%, transparent 48%),
48            linear-gradient(145deg, #08081e 0%, #0e1e58 30%, #162468 55%, #204090 75%, #2e58b8 100%)
49        `},{id:"macos-aurora",name:"Aurora",category:"macos",css:`
50            radial-gradient(ellipse 110% 80% at 0% 60%,   #00c896 0%, transparent 52%),
51            radial-gradient(ellipse 90% 70% at 100% 40%,  #ff7a18 0%, transparent 52%),
52            radial-gradient(ellipse 80% 90% at 50% 0%,    #00a8e8 0%, transparent 48%),
53            radial-gradient(ellipse 70% 70% at 50% 100%,  #00e0b0 0%, transparent 48%),
54            linear-gradient(160deg, #003840 0%, #004a50 30%, #00607a 60%, #0a3060 100%)
55        `},{id:"macos-candy",name:"Candy",category:"macos",css:`
56            radial-gradient(ellipse 110% 80% at 0% 100%,  #ff6ec7 0%, transparent 52%),
57            radial-gradient(ellipse 90% 70% at 100% 0%,   #7ec8ff 0%, transparent 52%),
58            radial-gradient(ellipse 80% 80% at 50% 50%,   #ffb347 0%, transparent 48%),
59            radial-gradient(ellipse 70% 70% at 20% 20%,   #ff9de2 0%, transparent 48%),
60            linear-gradient(135deg, #ff6ec7 0%, #ffb347 40%, #7ec8ff 100%)
61        `},{id:"macos-deep-space",name:"Deep Space",category:"macos",css:`
62            radial-gradient(ellipse 90% 80% at 20% 80%,   #4a00a0 0%, transparent 55%),
63            radial-gradient(ellipse 80% 70% at 80% 20%,   #0070c0 0%, transparent 52%),
64            radial-gradient(ellipse 70% 60% at 50% 50%,   #800080 0%, transparent 48%),
65            radial-gradient(ellipse 60% 80% at 90% 70%,   #c00060 0%, transparent 48%),
66            linear-gradient(145deg, #050010 0%, #100028 30%, #1a0040 55%, #0a1040 80%, #080820 100%)
67        `},{id:"macos-golden-hour",name:"Golden Hour",category:"macos",css:`
68            radial-gradient(ellipse 120% 80% at 0% 80%,   #ff6000 0%, transparent 52%),
69            radial-gradient(ellipse 90% 70% at 70% 20%,   #ffcc00 0%, transparent 48%),
70            radial-gradient(ellipse 80% 60% at 100% 60%,  #ff4500 0%, transparent 48%),
71            radial-gradient(ellipse 70% 80% at 30% 10%,   #ffa500 0%, transparent 48%),
72            linear-gradient(145deg, #1a0800 0%, #3a1500 30%, #6a2800 55%, #a84000 75%, #d06010 100%)
73        `},{id:"macos-forest-light",name:"Forest Light",category:"macos",css:`
74            radial-gradient(ellipse 110% 80% at 10% 80%,  #006030 0%, transparent 52%),
75            radial-gradient(ellipse 90% 70% at 80% 30%,   #30a060 0%, transparent 50%),
76            radial-gradient(ellipse 70% 80% at 50% 10%,   #80cc40 0%, transparent 48%),
77            radial-gradient(ellipse 80% 60% at 90% 80%,   #008040 0%, transparent 48%),
78            linear-gradient(145deg, #0a2010 0%, #154020 30%, #1a6030 55%, #259848 75%, #40b860 100%)
79        `},{id:"macos-rose-quartz",name:"Rose Quartz",category:"macos",css:`
80            radial-gradient(ellipse 110% 80% at 0% 50%,   #d4507a 0%, transparent 52%),
81            radial-gradient(ellipse 90% 70% at 100% 50%,  #9050c0 0%, transparent 50%),
82            radial-gradient(ellipse 80% 70% at 50% 0%,    #e080a0 0%, transparent 48%),
83            radial-gradient(ellipse 70% 70% at 50% 100%,  #c060a8 0%, transparent 48%),
84            linear-gradient(135deg, #3a0030 0%, #6a1050 30%, #9030a0 55%, #b03088 75%, #d05090 100%)
85        `},{id:"macos-steel-blue",name:"Steel Blue",category:"macos",css:`
86            radial-gradient(ellipse 110% 80% at 0% 0%,    #1a4080 0%, transparent 55%),
87            radial-gradient(ellipse 90% 70% at 100% 100%, #2060a0 0%, transparent 52%),
88            radial-gradient(ellipse 70% 80% at 50% 50%,   #305090 0%, transparent 48%),
89            radial-gradient(ellipse 80% 60% at 80% 10%,   #4080c0 0%, transparent 48%),
90            linear-gradient(145deg, #090e1e 0%, #101828 30%, #18284a 55%, #203860 75%, #2a4870 100%)
91        `}],q=[{id:"texture-indigo-smoke",name:"Indigo Smoke",category:"texture",css:`
92            radial-gradient(ellipse at 60% 20%, rgba(99,102,241,0.55) 0%, transparent 55%),
93            radial-gradient(ellipse at 20% 80%, rgba(79,70,229,0.45) 0%, transparent 50%),
94            radial-gradient(ellipse at 80% 80%, rgba(139,92,246,0.40) 0%, transparent 50%),
95            #1a1630
96        `},{id:"texture-teal-mist",name:"Teal Mist",category:"texture",css:`
97            radial-gradient(ellipse at 30% 30%, rgba(20,184,166,0.55) 0%, transparent 55%),
98            radial-gradient(ellipse at 70% 70%, rgba(6,182,212,0.45) 0%, transparent 55%),
99            radial-gradient(ellipse at 50% 90%, rgba(16,185,129,0.30) 0%, transparent 50%),
100            #0e2020
101        `},{id:"texture-rose-dusk",name:"Rose Dusk",category:"texture",css:`
102            radial-gradient(ellipse at 25% 25%, rgba(244,63,94,0.50) 0%, transparent 50%),
103            radial-gradient(ellipse at 75% 75%, rgba(236,72,153,0.45) 0%, transparent 55%),
104            radial-gradient(ellipse at 50% 50%, rgba(190,24,93,0.30) 0%, transparent 65%),
105            #281018
106        `},{id:"texture-amber-ember",name:"Amber Ember",category:"texture",css:`
107            radial-gradient(ellipse at 60% 80%, rgba(245,158,11,0.55) 0%, transparent 55%),
108            radial-gradient(ellipse at 20% 20%, rgba(251,191,36,0.45) 0%, transparent 50%),
109            radial-gradient(ellipse at 80% 30%, rgba(239,68,68,0.35) 0%, transparent 50%),
110            #281800
111        `},{id:"texture-cosmic-dust",name:"Cosmic Dust",category:"texture",css:`
112            radial-gradient(ellipse at 20% 50%, rgba(124,106,245,0.55) 0%, transparent 50%),
113            radial-gradient(ellipse at 80% 50%, rgba(236,72,153,0.45) 0%, transparent 50%),
114            radial-gradient(ellipse at 50% 20%, rgba(59,130,246,0.40) 0%, transparent 50%),
115            radial-gradient(ellipse at 50% 80%, rgba(16,185,129,0.30) 0%, transparent 50%),
116            #150828
117        `},{id:"texture-forest-haze",name:"Forest Haze",category:"texture",css:`
118            radial-gradient(ellipse at 40% 60%, rgba(16,185,129,0.55) 0%, transparent 55%),
119            radial-gradient(ellipse at 70% 20%, rgba(52,211,153,0.40) 0%, transparent 50%),
120            radial-gradient(ellipse at 15% 85%, rgba(6,182,212,0.30) 0%, transparent 48%),
121            #0a1e14
122        `},{id:"texture-warm-fog",name:"Warm Fog",category:"texture",css:`
123            radial-gradient(ellipse at 20% 70%, rgba(245,158,11,0.50) 0%, transparent 55%),
124            radial-gradient(ellipse at 80% 30%, rgba(239,68,68,0.40) 0%, transparent 55%),
125            radial-gradient(ellipse at 50% 50%, rgba(251,146,60,0.30) 0%, transparent 65%),
126            #281408
127        `},{id:"texture-slate-cloud",name:"Slate Cloud",category:"texture",css:`
128            radial-gradient(ellipse at 30% 70%, rgba(100,116,139,0.55) 0%, transparent 55%),
129            radial-gradient(ellipse at 70% 30%, rgba(148,163,184,0.45) 0%, transparent 50%),
130            radial-gradient(ellipse at 50% 50%, rgba(71,85,105,0.35) 0%, transparent 60%),
131            #141820
132        `},{id:"texture-paper",name:"Soft Paper",category:"texture",css:`
133            radial-gradient(ellipse at 30% 30%, rgba(209,213,219,0.60) 0%, transparent 60%),
134            radial-gradient(ellipse at 70% 70%, rgba(229,231,235,0.50) 0%, transparent 55%),
135            #f0ede8
136        `},{id:"texture-warm-paper",name:"Warm Linen",category:"texture",css:`
137            radial-gradient(ellipse at 30% 30%, rgba(245,158,11,0.25) 0%, transparent 55%),
138            radial-gradient(ellipse at 70% 70%, rgba(180,120,60,0.20) 0%, transparent 55%),
139            #ede5d5
140        `},{id:"texture-blush",name:"Blush",category:"texture",css:`
141            radial-gradient(ellipse at 30% 40%, rgba(244,114,182,0.40) 0%, transparent 55%),
142            radial-gradient(ellipse at 70% 60%, rgba(251,191,36,0.30) 0%, transparent 55%),
143            radial-gradient(ellipse at 50% 20%, rgba(167,139,250,0.30) 0%, transparent 50%),
144            #2a1428
145        `},{id:"texture-soft-sky",name:"Soft Sky",category:"texture",css:`
146            radial-gradient(ellipse at 50% 0%,   rgba(186,230,253,0.80) 0%, transparent 60%),
147            radial-gradient(ellipse at 20% 80%,  rgba(147,197,253,0.50) 0%, transparent 55%),
148            radial-gradient(ellipse at 80% 60%,  rgba(165,243,252,0.40) 0%, transparent 50%),
149            #dbeafe
150        `},{id:"texture-mint-cloud",name:"Mint Cloud",category:"texture",css:`
151            radial-gradient(ellipse at 40% 30%, rgba(110,231,183,0.70) 0%, transparent 55%),
152            radial-gradient(ellipse at 70% 70%, rgba(167,243,208,0.55) 0%, transparent 55%),
153            radial-gradient(ellipse at 20% 70%, rgba(52,211,153,0.40) 0%, transparent 50%),
154            #d1fae5
155        `},{id:"texture-lavender-haze",name:"Lavender Haze",category:"texture",css:`
156            radial-gradient(ellipse at 30% 30%, rgba(167,139,250,0.65) 0%, transparent 55%),
157            radial-gradient(ellipse at 70% 70%, rgba(196,181,253,0.50) 0%, transparent 55%),
158            radial-gradient(ellipse at 50% 80%, rgba(139,92,246,0.35) 0%, transparent 50%),
159            #ede9fe
160        `},{id:"texture-peach-glow",name:"Peach Glow",category:"texture",css:`
161            radial-gradient(ellipse at 40% 40%, rgba(251,146,60,0.55) 0%, transparent 55%),
162            radial-gradient(ellipse at 70% 60%, rgba(252,196,160,0.45) 0%, transparent 55%),
163            radial-gradient(ellipse at 20% 70%, rgba(245,101,50,0.30) 0%, transparent 50%),
164            #fde7ce
165        `},{id:"texture-charcoal-glow",name:"Charcoal Glow",category:"texture",css:`
166            radial-gradient(ellipse at 50% 50%, rgba(148,163,184,0.20) 0%, transparent 70%),
167            radial-gradient(ellipse at 20% 20%, rgba(203,213,225,0.15) 0%, transparent 55%),
168            radial-gradient(ellipse at 80% 80%, rgba(100,116,139,0.18) 0%, transparent 55%),
169            #1e2028
170        `}],K=[{id:"mesh-purple",name:"Purple Mesh",category:"mesh",css:"radial-gradient(at 40% 20%, #8B5CF6 0%, transparent 60%), radial-gradient(at 80% 80%, #EC4899 0%, transparent 60%), radial-gradient(at 20% 70%, #3B82F6 0%, transparent 55%), radial-gradient(at 60% 55%, #6D28D9 0%, transparent 50%), #1a0830"},{id:"mesh-teal",name:"Teal Mesh",category:"mesh",css:"radial-gradient(at 20% 30%, #0EA5E9 0%, transparent 60%), radial-gradient(at 80% 70%, #10B981 0%, transparent 60%), radial-gradient(at 60% 10%, #06B6D4 0%, transparent 50%), radial-gradient(at 40% 70%, #0284C7 0%, transparent 50%), #062030"},{id:"mesh-sunset",name:"Sunset Mesh",category:"mesh",css:"radial-gradient(at 30% 60%, #F59E0B 0%, transparent 60%), radial-gradient(at 70% 30%, #EF4444 0%, transparent 60%), radial-gradient(at 90% 80%, #EC4899 0%, transparent 50%), radial-gradient(at 20% 20%, #F97316 0%, transparent 55%), #281008"},{id:"mesh-green",name:"Green Mesh",category:"mesh",css:"radial-gradient(at 20% 80%, #10B981 0%, transparent 60%), radial-gradient(at 80% 20%, #84CC16 0%, transparent 60%), radial-gradient(at 50% 50%, #059669 0%, transparent 50%), radial-gradient(at 70% 70%, #22C55E 0%, transparent 50%), #081e0f"},{id:"mesh-deep-violet",name:"Deep Violet",category:"mesh",css:"radial-gradient(at 20% 20%, #5B21B6 0%, transparent 65%), radial-gradient(at 80% 80%, #7C3AED 0%, transparent 65%), radial-gradient(at 60% 40%, #8B5CF6 0%, transparent 50%), radial-gradient(at 40% 70%, #4C1D95 0%, transparent 55%), #120030"},{id:"mesh-rose",name:"Rose Mesh",category:"mesh",css:"radial-gradient(at 40% 60%, #F43F5E 0%, transparent 60%), radial-gradient(at 70% 20%, #EC4899 0%, transparent 60%), radial-gradient(at 10% 30%, #FB7185 0%, transparent 50%), radial-gradient(at 80% 75%, #E11D48 0%, transparent 52%), #28081a"},{id:"mesh-blue-pink",name:"Blue Pink",category:"mesh",css:"radial-gradient(at 0% 50%, #3B82F6 0%, transparent 65%), radial-gradient(at 100% 50%, #EC4899 0%, transparent 65%), radial-gradient(at 50% 0%, #8B5CF6 0%, transparent 55%), radial-gradient(at 50% 100%, #60A5FA 0%, transparent 55%), #100830"},{id:"mesh-gold",name:"Gold Mesh",category:"mesh",css:"radial-gradient(at 30% 30%, #F59E0B 0%, transparent 60%), radial-gradient(at 80% 70%, #D97706 0%, transparent 60%), radial-gradient(at 60% 90%, #FBBF24 0%, transparent 50%), radial-gradient(at 15% 75%, #F472B6 0%, transparent 52%), #1e1000"},{id:"mesh-noir",name:"Noir Smoke",category:"mesh",css:"radial-gradient(at 30% 40%, rgba(124,106,245,0.80) 0%, transparent 60%), radial-gradient(at 70% 60%, rgba(236,72,153,0.65) 0%, transparent 60%), radial-gradient(at 50% 10%, rgba(59,130,246,0.60) 0%, transparent 55%), radial-gradient(at 80% 90%, rgba(16,185,129,0.45) 0%, transparent 52%), #0f0f18"},{id:"mesh-dawn",name:"Dawn Sky",category:"mesh",css:"radial-gradient(at 40% 80%, #F97316 0%, transparent 60%), radial-gradient(at 60% 10%, #FBBF24 0%, transparent 55%), radial-gradient(at 20% 40%, #F43F5E 0%, transparent 52%), radial-gradient(at 80% 50%, #FB923C 0%, transparent 58%), #201008"},{id:"mesh-ocean",name:"Ocean Deep",category:"mesh",css:"radial-gradient(at 10% 20%, #0EA5E9 0%, transparent 60%), radial-gradient(at 90% 80%, #0284C7 0%, transparent 60%), radial-gradient(at 50% 60%, #0369A
1701 0%, transparent 52%), radial-gradient(at 70% 10%, #38BDF8 0%, transparent 52%), #041420"},{id:"mesh-forest",name:"Night Forest",category:"mesh",css:"radial-gradient(at 20% 70%, #065F46 0%, transparent 60%), radial-gradient(at 80% 30%, #047857 0%, transparent 60%), radial-gradient(at 50% 50%, #059669 0%, transparent 52%), radial-gradient(at 75% 80%, #10B981 0%, transparent 50%), #040f08"},{id:"mesh-plum",name:"Plum Wine",category:"mesh",css:"radial-gradient(at 20% 30%, #9D174D 0%, transparent 60%), radial-gradient(at 80% 70%, #7C2D12 0%, transparent 60%), radial-gradient(at 50% 10%, #BE185D 0%, transparent 55%), radial-gradient(at 30% 80%, #831843 0%, transparent 55%), #200810"},{id:"mesh-neon",name:"Neon Lab",category:"mesh",css:"radial-gradient(at 20% 20%, #00ffcc 0%, transparent 55%), radial-gradient(at 80% 80%, #ff00aa 0%, transparent 55%), radial-gradient(at 80% 20%, #0080ff 0%, transparent 55%), radial-gradient(at 20% 80%, #ffcc00 0%, transparent 50%), #080818"},{id:"mesh-copper",name:"Copper Glow",category:"mesh",css:"radial-gradient(at 30% 30%, #b45309 0%, transparent 60%), radial-gradient(at 70% 70%, #d97706 0%, transparent 60%), radial-gradient(at 80% 20%, #92400e 0%, transparent 55%), radial-gradient(at 20% 70%, #f59e0b 0%, transparent 52%), #1c0e00"},{id:"mesh-ice",name:"Arctic Ice",category:"mesh",css:"radial-gradient(at 30% 30%, #bae6fd 0%, transparent 60%), radial-gradient(at 70% 70%, #7dd3fc 0%, transparent 60%), radial-gradient(at 80% 10%, #e0f2fe 0%, transparent 55%), radial-gradient(at 10% 80%, #38bdf8 0%, transparent 55%), #0c1e30"},{id:"mesh-coral",name:"Coral Reef",category:"mesh",css:"radial-gradient(at 30% 40%, #fb7185 0%, transparent 60%), radial-gradient(at 70% 60%, #f43f5e 0%, transparent 60%), radial-gradient(at 80% 20%, #fda4af 0%, transparent 55%), radial-gradient(at 20% 80%, #f97316 0%, transparent 55%), #281010"},{id:"mesh-mint",name:"Mint Breeze",category:"mesh",css:"radial-gradient(at 30% 30%, #34d399 0%, transparent 60%), radial-gradient(at 70% 70%, #6ee7b7 0%, transparent 60%), radial-gradient(at 80% 20%, #a7f3d0 0%, transparent 55%), radial-gradient(at 20% 70%, #10b981 0%, transparent 55%), #0a2018"},{id:"mesh-dusk",name:"Twilight Dusk",category:"mesh",css:"radial-gradient(at 20% 20%, #7c3aed 0%, transparent 60%), radial-gradient(at 80% 80%, #f43f5e 0%, transparent 60%), radial-gradient(at 80% 20%, #f59e0b 0%, transparent 55%), radial-gradient(at 30% 70%, #6d28d9 0%, transparent 55%), #180820"},{id:"mesh-slate",name:"Slate Storm",category:"mesh",css:"radial-gradient(at 20% 30%, #475569 0%, transparent 60%), radial-gradient(at 80% 70%, #334155 0%, transparent 60%), radial-gradient(at 60% 10%, #64748b 0%, transparent 55%), radial-gradient(at 40% 80%, #1e293b 0%, transparent 55%), #0e1520"}],Q=["#ffffff","#000000","#f8f9fa","#2c2c2e","#3b82f6","#1d4ed8","#8b5cf6","#4c1d95","#f472b6","#be185d","#10b981","#065f46","#ff7a18","#f59e0b","#ef4444","#14b8a6"],J=[{section:"Wallpapers",items:[{name:"Ventura",url:"/backgrounds/wallpapers/1.webp"},{name:"Tahoe",url:"/backgrounds/wallpapers/2.webp"},{name:"Sonoma",url:"/backgrounds/wallpapers/3.webp"},{name:"Ventura",url:"/backgrounds/wallpapers/4.webp"},{name:"Big Sur",url:"/backgrounds/wallpapers/5.webp"},{name:"Monterey",url:"/backgrounds/wallpapers/6.webp"},{name:"Monterey",url:"/backgrounds/wallpapers/7.webp"},{name:"Monterey",url:"/backgrounds/wallpapers/8.webp"},{name:"Big Sur",url:"/backgrounds/wallpapers/9.webp"},{name:"Mac Dark",url:"/backgrounds/wallpapers/10.webp"},{name:"Windows Light",url:"/backgrounds/wallpapers/11.webp"},{name:"Windows Dark",url:"/backgrounds/wallpapers/12.webp"},{name:"Tahoe Beach Down",url:"/backgrounds/wallpapers/13.webp"},{name:"Tahoe Beach Day",url:"/backgrounds/wallpapers/14.webp"},{name:"Tahoe Beach Dusk",url:"/backgrounds/wallpapers/15.webp"},{name:"Sonoma Horizon",url:"/backgrounds/wallpapers/16.webp"},{name:"Day Thumbnail",url:"/backgrounds/wallpapers/17.webp"},{name:"Mountain Thumbnail",url:"/backgrounds/wallpapers/18.webp"}]}],Z=[{id:"vid1",name:"Abstract Flow",url:"/backgrounds/videos/1.mp4"},{id:"vid2",name:"Purple Waves",url:"/backgrounds/videos/2.mp4"},{id:"vid4",name:"Aurora Mist",url:"/backgrounds/videos/4.mp4"},{id:"vid5",name:"Ember Flow",url:"/backgrounds/videos/5.mp4"},{id:"vid6",name:"Midnight Glow",url:"/backgrounds/videos/6.mp4"},{id:"vid7",name:"Neon Veil",url:"/backgrounds/videos/7.mp4"},{id:"vid8",name:"Sapphire Drift",url:"/backgrounds/videos/8.mp4"},{id:"vid9",name:"Velvet Pulse",url:"/backgrounds/videos/9.mp4"}],ee="snapester-editor-bg-recent";function et(e){return e.trim().replace(/\s+/g," ")}function ea(e){let t=0;for(let a=0;a<e.length;a++)t=31*t+e.charCodeAt(a)|0;return t}function er(){try{let e=localStorage.getItem(ee);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function ei(){return er().filter(e=>e&&e.type&&"string"==typeof e.value).sort((e,t)=>
170t.at-e.at)}function en({title:e,onShuffle:t}){return(0,l.jsxs)("div",{className:"ed-bg-section-header",children:[(0,l.jsx)("span",{className:"ed-bg-section-title",children:e}),t&&(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-icon-btn-sm",title:`Shuffle ${e}`,onClick:t,"aria-label":`Shuffle ${e}`,children:(0,l.jsx)(_,{size:11})})]})}function es({activeTab:e,currentBackground:t,onSelect:a}){let[r,i]=o.useState("#ff7a18"),[n,s]=o.useState(()=>ei());return(o.useEffect(()=>{function e(){s(ei())}return window.addEventListener("snapester-bg-recent-updated",e),()=>window.removeEventListener("snapester-bg-recent-updated",e)},[]),"gradients"===e)?(0,l.jsxs)("div",{className:"ed-bg-section",children:[(0,l.jsx)(en,{title:"Magic Gradients",onShuffle:()=>{a({type:"gradient",value:U[Math.floor(Math.random()*U.length)].css.trim()})}}),(0,l.jsx)("div",{className:"ed-bg-grid",children:U.map(e=>(0,l.jsx)(V,{type:"gradient",backgroundValue:e.css,label:e.name,isActive:"gradient"===t.type&&t.value.trim()===e.css.trim(),onSelect:()=>a({type:"gradient",value:e.css.trim()})},e.id))})]}):"mesh"===e?(0,l.jsxs)("div",{className:"ed-bg-section",children:[(0,l.jsx)(en,{title:"Mesh Gradients",onShuffle:()=>{a({type:"mesh",value:K[Math.floor(Math.random()*K.length)].css.trim()})}}),(0,l.jsx)("div",{className:"ed-bg-grid",children:K.map(e=>(0,l.jsx)(V,{type:"mesh",backgroundValue:e.css,label:e.name,isActive:"mesh"===t.type&&t.value.trim()===e.css.trim(),onSelect:()=>a({type:"mesh",value:e.css.trim()})},e.name))})]}):"texture"===e?(0,l.jsxs)("div",{className:"ed-bg-section",children:[(0,l.jsx)(en,{title:"Textures",onShuffle:()=>{a({type:"texture",value:q[Math.floor(Math.random()*q.length)].css.trim()})}}),(0,l.jsx)("div",{className:"ed-bg-grid",children:q.map(e=>(0,l.jsx)(V,{type:"texture",backgroundValue:e.css,label:e.name,isActive:"texture"===t.type&&t.value.trim()===e.css.trim(),onSelect:()=>a({type:"texture",value:e.css.trim()})},e.name))})]}):"premium"===e?(0,l.jsxs)("div",{className:"ed-bg-section",children:[(0,l.jsx)(en,{title:"macOS Themes",onShuffle:()=>{a({type:"gradient",value:G[Math.floor(Math.random()*G.length)].css.trim()})}}),(0,l.jsx)("div",{className:"ed-bg-grid",children:G.map(e=>(0,l.jsx)(V,{type:"gradient",backgroundValue:e.css,label:e.id,isActive:"gradient"===t.type&&t.value.trim()===e.css.trim(),onSelect:()=>a({type:"gradient",value:e.css.trim()})},e.id))})]}):"solid"===e?(0,l.jsxs)("div",{className:"ed-bg-section",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,l.jsx)("input",{type:"color",value:r,onChange:e=>{i(e.target.value),a({type:"solid",value:e.target.value})},className:"ed-color-swatch",style:{width:32,height:32},"aria-label":"Pick solid color"}),(0,l.jsx)("input",{type:"text",value:r,maxLength:7,className:"ed-hex-input",onChange:e=>{let t=e.target.value;i(t),/^#[0-9a-f]{6}$/i.test(t)&&a({type:"solid",value:t})},"aria-label":"Hex color value"})]}),(0,l.jsx)("div",{className:"ed-solid-grid",children:Q.map(e=>(0,l.jsx)("button",{type:"button",className:`ed-solid-swatch${"solid"===t.type&&t.value.toLowerCase()===e.toLowerCase()?" ed-solid-swatch-active":""}`,style:{backgroundColor:e},title:e,"aria-label":e,onClick:()=>{i(e),a({type:"solid",value:e})}},e))})]}):"videos"===e?(0,l.jsxs)("div",{className:"ed-bg-section",children:[(0,l.jsx)(en,{title:"Videos",onShuffle:()=>{let e=Z[Math.floor(Math.random()*Z.length)];e&&a({type:"video",value:e.url})}}),(0,l.jsx)("div",{className:"ed-bg-grid",children:Z.map(e=>(0,l.jsx)(V,{type:"video",backgroundValue:e.url,label:e.name||e.id,isActive:"video"===t.type&&t.value===e.url,onSelect:()=>a({type:"video",value:e.url})},e.id))})]}):"transparent"===e?(0,l.jsxs)("div",{className:"ed-bg-section flex flex-col items-center justify-center gap-4 py-8",children:[(0,l.jsx)("p",{className:"text-xs text-center",style:{color:"var(--ed-subtle)"},children:"Removes the background, leaving a transparent canvas."}),(0,l.jsx)("button",{type:"button",className:"ed-btn ed-btn-primary ed-btn-full",onClick:()=>a({type:"transparent",value:""}
170),children:"Clear Background"})]}):"recent"===e?0===n.length?(0,l.jsx)("div",{className:"ed-bg-section flex flex-col items-center justify-center gap-2 py-10 px-3 text-center text-xs",style:{color:"var(--ed-subtle)"},children:(0,l.jsx)("p",{children:"Backgrounds you use in exports will appear here."})}):(0,l.jsxs)("div",{className:"ed-bg-section",children:[(0,l.jsx)("div",{className:"ed-bg-section-header",children:(0,l.jsx)("span",{className:"ed-bg-section-title",children:"Recent"})}),(0,l.jsx)("div",{className:"ed-bg-grid",children:n.map(e=>(0,l.jsx)(V,{type:e.type,backgroundValue:e.value,label:e.label,isActive:t.type===e.type&&("gradient"===t.type||"mesh"===t.type||"texture"===t.type?t.value.trim()===e.value.trim():t.value===e.value),onSelect:()=>a({type:e.type,value:e.value})},`${e.catalogId}-${e.at}`))})]}):"images"===e?(0,l.jsx)(l.Fragment,{children:J.map(e=>(0,l.jsxs)("div",{className:"ed-bg-section",children:[(0,l.jsx)(en,{title:e.section,onShuffle:()=>{a({type:"image-url",value:e.items[Math.floor(Math.random()*e.items.length)].url})}}),(0,l.jsx)("div",{className:"ed-bg-grid",children:e.items.map(e=>(0,l.jsx)(V,{type:"image-url",backgroundValue:e.url,label:e.name,isActive:"image-url"===t.type&&t.value===e.url,onSelect:()=>a({type:"image-url",value:e.url})},e.name+e.url))})]},e.section))}):null}function el({onShuffle:e,disabled:t=!1}){return(0,l.jsxs)("button",{type:"button",className:"ed-shuffle-btn",onClick:e,disabled:t,title:"Pick a random background",children:[(0,l.jsx)(_,{size:14}),(0,l.jsx)("span",{children:"Shuffle background"})]})}let eo=e=>{let t,a=new Set,r=(e,r)=>{let i="function"==typeof e?e(t):e;if(!Object.is(i,t)){let e=t;t=(null!=r?r:"object"!=typeof i||null===i)?i:Object.assign({},t,i),a.forEach(a=>a(t,e))}},i=()=>t,n={setState:r,getState:i,getInitialState:()=>s,subscribe:e=>(a.add(e),()=>a.delete(e))},s=t=e(r,i,n);return n},ed=e=>{let t=e?eo(e):eo,a=e=>(function(e,t=e=>e){let a=o.default.useSyncExternalStore(e.subscribe,o.default.useCallback(()=>t(e.getState()),[e,t]),o.default.useCallback(()=>t(e.getInitialState()),[e,t]));return o.default.useDebugValue(a),a})(t,e);return Object.assign(a,t),a};function ec(e){let t=e>1500;return{mode:"none",glassWidth:t?15:10,glassOpacity:100,glassColor:"#ffffff",borderWidth:t?15:7,borderColor:"#ff7a18",borderOpacity:100}}let ep=ec(2e3);function eu(e){let t=e.aspectRatio;if("auto"===t){let t=e.imageNatural?.w,a=e.imageNatural?.h;return t&&a&&e.image?{canvasW:2e3,canvasH:Math.round(2e3/(t/a))}:{canvasW:2e3,canvasH:1125}}if("custom"===t)return{canvasW:e.canvasW,canvasH:e.canvasH};if(t.startsWith("preset:")){let a=t.slice(7).trim().match(/^(\d{2,5})\s*[xX×]\s*(\d{2,5})$/);if(a){let e=Math.min(4e3,Math.max(100,parseInt(a[1],10))),t=Math.min(4e3,Math.max(100,parseInt(a[2],10)));if(Number.isFinite(e)&&Number.isFinite(t))return{canvasW:e,canvasH:t}}return{canvasW:e.canvasW,canvasH:e.canvasH}}let a=t.split(":").map(Number),r=a[0],i=a[1];return!Number.isFinite(r)||!Number.isFinite(i)||r<=0||i<=0?{canvasW:2e3,canvasH:1125}:{canvasW:Math.round(2e3),canvasH:Math.round(i/r*2e3)}}let em={image:null,imageNatural:null,images:[],activeImageId:null,background:{type:"image-url",value:J[0]?.items[0]?.url??""},frame:{type:"none"},transform:{padding:110,radius:30,scale:100,rotation:0,panX:0,panY:0,tiltX:0,tiltY:0,flipH:!1,flipV:!1},shadow:{spread:0,blur:0,x:0,y:0,opacity:0,color:"#000000"},filters:{brightness:0,contrast:0,saturation:0,hue:0,blur:0,sharpness:0,invert:!1,preset:"none"},imageEdge:{...ep},aspectRatio:"16:9",canvasW:2e3,canvasH:1125,zoom:1,exportFormat:"png",exportOutputKind:"image",exportGifPreset:"gif_720",exportVideoPreset:"video_720",exportQuality:92,exportScale:1,exportGifMaxMB:15,watermarkEnabled:!0,theme:"dark",rightTab:"edit",bgTab:"images",layers:[],activeLayerId:null,bgVideo:null,isExporting:!1,exportProgress:0,imageOriginal:null,cropRect:null,exportFilename:"snapester-export"};function eh(e){return structuredClone(e)}function eg(e){let t=[...(e.images??[]).map(e=>e.zIndex??0),...(e.layers??[]).map(e=>e.zIndex??0)];return t.length?Math.max(...t):-1}function ef(e){let t=e.images??[],a=t.find(t=>
170t.id===e.activeImageId)??null;return a?{...e,images:t,image:a.image,imageNatural:a.imageNatural,imageOriginal:a.imageOriginal,cropRect:a.cropRect,transform:a.transform,shadow:a.shadow,filters:a.filters,imageEdge:a.imageEdge}:{...e,images:t,image:null,imageNatural:null,imageOriginal:null,cropRect:null}}function ex(e,t){if(!e.activeImageId)return e;let a=(e.images??[]).map(a=>a.id===e.activeImageId?t(a):a);return ef({...e,images:a})}function eb(e,t,a){return a?{past:[...e.past,e.present],present:t,future:[]}:{...e,present:t}}let ey=(a=(e,t)=>({past:[],present:eh(em),future:[],setImage:t=>e(e=>{let a=e.present.images??[];if(!t){let t={...e.present,images:[],activeImageId:null,image:null,imageNatural:null,imageOriginal:null,cropRect:null};return eb(e,t,!0)}if(!e.present.activeImageId){let r=crypto.randomUUID(),i={id:r,image:t,imageOriginal:t.src,cropRect:null,imageNatural:null,transform:eh(e.present.transform),shadow:eh(e.present.shadow),filters:eh(e.present.filters),imageEdge:eh(e.present.imageEdge),isHidden:!1,isLocked:!1,zIndex:a.length,stackX:0,stackY:0};return eb(e,ef({...e.present,images:[...a,i],activeImageId:r}),!0)}let r=a.map(a=>a.id===e.present.activeImageId?{...a,image:t,imageNatural:a.imageNatural&&a.image.src===t.src?a.imageNatural:null}:a),i=ef({...e.present,images:r});return eb(e,i,!0)}),loadNewScreenshot:(t,a)=>e(e=>{let r=J[0]?.items[0]?.url??"",i=crypto.randomUUID(),n={id:i,image:{src:t,name:a},imageOriginal:t,cropRect:null,imageNatural:null,transform:eh(em.transform),shadow:eh(em.shadow),filters:eh(em.filters),imageEdge:eh(ec(e.present.canvasW)),isHidden:!1,isLocked:!1,zIndex:0,stackX:0,stackY:0},s=ef({...e.present,images:[n],activeImageId:i,background:{type:"image-url",value:r}});return eb(e,s,!0)}),addScreenshot:(t,a)=>e(e=>{let r=J[0]?.items[0]?.url??"",i=e.present.images??[];if(i.length>=5)return e;let n=crypto.randomUUID(),s=i.length,l={id:n,image:{src:t,name:a},imageOriginal:t,cropRect:null,imageNatural:null,transform:eh(em.transform),shadow:eh(em.shadow),filters:eh(em.filters),imageEdge:eh(ep),isHidden:!1,isLocked:!1,zIndex:eg(e.present)+1,stackX:Math.min(18,6*s),stackY:Math.min(18,6*s)};if(0===i.length){let t=ef({...e.present,images:[l],activeImageId:n,background:{type:"image-url",value:r}});return eb(e,t,!0)}let o=ef({...e.present,images:[...i,l],activeImageId:n});return eb(e,o,!0)}),setActiveImage:t=>e(e=>eb(e,ef({...e.present,activeImageId:t}),!1)),reorderImages:(t,a)=>e(e=>{let r=e.present.images??[];if(t===a||t<0||a<0||t>=r.length||a>=r.length)return e;let i=[...r],[n]=i.splice(t,1);if(!n)return e;i.splice(a,0,n);let s=i.map((e,t)=>({...e,zIndex:t}));return eb(e,ef({...e.present,images:s}),!0)}),setStackOrder:t=>e(e=>{let a=e.present.images??[],r=e.present.layers??[];if(!t.length)return e;let i=new Map(a.map(e=>[e.id,e])),n=new Map(r.map(e=>[e.id,e])),s=a,l=r;return t.forEach((e,t)=>{if("image"===e.kind){let a=i.get(e.id);a&&i.set(e.id,{...a,zIndex:t})}else{let a=n.get(e.id);if(!a)return;n.set(e.id,{...a,zIndex:t})}}),s=Array.from(i.values()).sort((e,t)=>e.zIndex-t.zIndex),l=Array.from(n.values()).sort((e,t)=>e.zIndex-t.zIndex),eb(e,ef({...e.present,images:s,layers:l}),!0)}),deleteImage:t=>e(e=>{let a=(e.present.images??[]).filter(e=>e.id!==t),r=e.present.activeImageId===t?a[a.length-1]?.id??a[0]?.id??null:e.present.activeImageId;return eb(e,ef({...e.present,images:a,activeImageId:r}),!0)}),setImageHidden:(t,a)=>e(e=>{let r=(e.present.images??[]).map(e=>e.id===t?{...e,isHidden:a}:e);return eb(e,ef({...e.present,images:r}),!1)}),setImageLocked:(t,a)=>e(e=>{let r=(e.present.images??[]).map(e=>e.id===t?{...e,isLocked:a}:e);return eb(e,ef({...e.present,images:r}),!1)}),setImageNatural:t=>e(e=>{let a=e.present.activeImageId;if(!a||!t)return e;let r=(e.present.images??[]).map(e=>e.id===a?{...e,imageNatural:t}:e),i=ef({...e.present,images:r});if("auto"!==i.aspectRatio)return eb(e,i,!1);let n=eu(i);return eb(e,{...i,...n},!1)}),setImageNaturalFor:(t,a)=>e(e=>{let r=(e.present.images??[]).map(e=>e.id===t?{...e,imageNatural:a}:e),i=ef({...e.present,images:r});if("auto"!==i.aspectRatio)return eb(e,i,!1);let n=eu(i);return eb(e,{...i,...n},!1)}
170),setBackground:t=>e(e=>eb(e,{...e.present,background:{...t,value:"string"==typeof t.value?t.value.trim():t.value}},!0)),setFrame:t=>e(e=>eb(e,{...e.present,frame:{...e.present.frame,...t}},!0)),setTransform:t=>e(e=>{let a=e.present.activeImageId;if(!a)return eb(e,{...e.present,transform:{...e.present.transform,...t}},!0);let r=(e.present.images??[]).map(e=>e.id===a?{...e,transform:{...e.transform,...t}}:e);return eb(e,ef({...e.present,images:r}),!0)}),setShadow:t=>e(e=>{let a=e.present.activeImageId;if(!a)return eb(e,{...e.present,shadow:{...e.present.shadow,...t}},!0);let r=(e.present.images??[]).map(e=>e.id===a?{...e,shadow:{...e.shadow,...t}}:e);return eb(e,ef({...e.present,images:r}),!0)}),setImageEdge:t=>e(e=>{let a=e.present.activeImageId;if(!a)return eb(e,{...e.present,imageEdge:{...e.present.imageEdge,...t}},!0);let r=(e.present.images??[]).map(e=>e.id===a?{...e,imageEdge:{...e.imageEdge,...t}}:e);return eb(e,ef({...e.present,images:r}),!0)}),setFilters:t=>e(e=>{let a=e.present.activeImageId;if(!a)return eb(e,{...e.present,filters:{...e.present.filters,...t}},!0);let r=(e.present.images??[]).map(e=>e.id===a?{...e,filters:{...e.filters,...t}}:e);return eb(e,ef({...e.present,images:r}),!0)}),setAspectRatio:t=>e(e=>{let a={...e.present,aspectRatio:t},r=eu(a);return eb(e,{...a,...r},!0)}),setCanvasDims:(t,a)=>e(e=>{let r=Math.min(4e3,Math.max(400,Math.round(t))),i=Math.min(4e3,Math.max(300,Math.round(a)));return eb(e,{...e.present,canvasW:r,canvasH:i,aspectRatio:"custom"},!0)}),setCanvasDimsModal:(t,a)=>e(e=>{let r=Math.min(3e3,Math.max(100,Math.round(t))),i=Math.min(3e3,Math.max(100,Math.round(a)));return eb(e,{...e.present,canvasW:r,canvasH:i,aspectRatio:"custom"},!0)}),applyCanvasFromAspect:()=>e(e=>{let t=eu(e.present);return eb(e,{...e.present,...t},!1)}),setZoom:t=>e(e=>eb(e,{...e.present,zoom:t},!1)),setExportFormat:t=>e(e=>eb(e,{...e.present,exportFormat:t},!1)),setExportOutputKind:t=>e(e=>eb(e,{...e.present,exportOutputKind:t},!1)),setExportGifPreset:t=>e(e=>eb(e,{...e.present,exportGifPreset:t},!1)),setExportVideoPreset:t=>e(e=>eb(e,{...e.present,exportVideoPreset:t},!1)),setExportQuality:t=>e(e=>eb(e,{...e.present,exportQuality:t},!1)),setExportScale:t=>e(e=>eb(e,{...e.present,exportScale:t},!1)),setExportGifMaxMB:t=>e(e=>eb(e,{...e.present,exportGifMaxMB:t},!1)),setWatermarkEnabled:t=>e(e=>eb(e,{...e.present,watermarkEnabled:t},!0)),setTheme:t=>e(e=>eb(e,{...e.present,theme:t},!1)),setRightTab:t=>e(e=>eb(e,{...e.present,rightTab:t},!1)),setBgTab:t=>e(e=>eb(e,{...e.present,bgTab:t},!1)),undo:()=>{let{past:a,present:r,future:i}=t();if(0===a.length)return;let n=a[a.length-1];e({past:a.slice(0,-1),present:n,future:[r,...i]})},redo:()=>{let{past:a,present:r,future:i}=t();0===i.length||e({past:[...a,r],present:i[0],future:i.slice(1)})},canUndo:()=>t().past.length>0,canRedo:()=>t().future.length>0,addLayer:t=>e(e=>{let a=eg(e.present)+1,r={id:crypto.randomUUID(),name:`Layer ${(e.present.layers||[]).length+1}`,type:"shape",x:50,y:50,width:15,height:15,rotation:0,opacity:100,isHidden:!1,isLocked:!1,..."text"===t.type?{fontFamily:"Poppins, sans-serif",fontWeight:700,fontSize:32,textAlign:"center",color:"#f0f0fa",textStrokeWidth:0,textStrokeColor:"#000000",textShadowColor:"#000000",textShadowBlur:0,textShadowX:0,textShadowY:0,textShadowOpacity:0}:{},..."shape"===t.type&&"rect"===t.shapeType?{fillEnabled:!1,borderWidth:10,borderColor:"#ff7a18",color:"#ff7a18",borderRadius:30,width:20,height:20}:{},..."shape"===t.type&&"circle"===t.shapeType?{fillEnabled:!1,borderWidth:10,borderColor:"#ff7a18",color:"#ff7a18",width:20,height:20}:{},..."shape"===t.type&&"arrow"===t.shapeType?{color:"#ff7a18",bodyWidth:12,headLength:42,headWidth:35,arrowHead:"end",curve:0,arrowSx:8,arrowSy:50,arrowCx:50,arrowCy:32,arrowEx:92,arrowEy:50,width:30,height:20}:{},..."emoji"===t.type?{emoji:"😀",fontSize:56,width:12,height:12}:{},...t,zIndex:a},i={...e.present,layers:[...e.present.layers||[],r],activeLayerId:r.id};return eb(e,i,!0)}),updateLayer:(t,a,r=!0)=>e(e=>{let i=(e.present.layers||[]).map(e=>e.id===t?{...e,...a}:e);return eb(e,{...e.present,layers:i},r)}),deleteLayer:t=>e(e=>{let a=(e.present.layers||[]).filter(e=>e.id!==t),r=e.present.activeLayerId===t?null:e.present.activeLayerId;return eb(e,{...e.present,layers:a,activeLayerId:r},!0)}),reorderLayers:(t,a)=>e(e=>{let r=[...e.present.layers||[]],[i]=r.splice(t,1);return r.splice(a,0,i),r.forEach((e,t)=>{e.zIndex=t}),eb(e,{...e.present,layers:r}
170,!0)}),duplicateLayer:t=>e(e=>{let a=(e.present.layers||[]).find(e=>e.id===t);if(!a)return e;let r=eg(e.present)+1,i={...a,id:crypto.randomUUID(),x:a.x+2,y:a.y+2,zIndex:r},n=[...e.present.layers||[],i];return eb(e,{...e.present,layers:n,activeLayerId:i.id},!0)}),setActiveLayer:t=>e(e=>eb(e,{...e.present,activeLayerId:t},!1)),setBgVideo:t=>e(e=>eb(e,{...e.present,bgVideo:t,background:t?{type:"video",value:t}:e.present.background},!0)),setExporting:t=>e(e=>({...e,present:{...e.present,isExporting:t,exportProgress:t?0:e.present.exportProgress}})),setExportProgress:t=>e(e=>({...e,present:{...e.present,exportProgress:t}})),setCropRect:t=>e(e=>{let a=ex(e.present,e=>({...e,cropRect:t}));return eb(e,a,!0)}),setImageOriginal:t=>e(e=>{let a=ex(e.present,e=>({...e,imageOriginal:t}));return eb(e,a,!1)}),setExportFilename:t=>e(e=>eb(e,{...e.present,exportFilename:t},!1)),resetView:()=>e(e=>{let t=em.transform,a={padding:t.padding,scale:t.scale,rotation:t.rotation,panX:t.panX,panY:t.panY,tiltX:t.tiltX,tiltY:t.tiltY,flipH:t.flipH,flipV:t.flipV},r=e.present.activeImageId;if(!r)return eb(e,{...e.present,transform:{...e.present.transform,...a},zoom:1,activeLayerId:null},!0);let i=(e.present.images??[]).map(e=>e.id===r?{...e,transform:{...e.transform,...a}}:e);return eb(e,ef({...e.present,images:i,zoom:1,activeLayerId:null}),!0)}),reset:()=>e({past:[],present:eh(em),future:[]})}))?ed(a):ed;function ev(e){if(!e||"object"!=typeof e)return eh(em);let t=e.transform,a=em.transform,r=Array.isArray(e.images)?e.images:em.images;return ef({...em,...e,transform:t&&"object"==typeof t?{...a,...t}:a,shadow:e.shadow&&"object"==typeof e.shadow?{...em.shadow,...e.shadow}:em.shadow,filters:e.filters&&"object"==typeof e.filters?{...em.filters,...e.filters}:em.filters,imageEdge:e.imageEdge&&"object"==typeof e.imageEdge?{...em.imageEdge,...e.imageEdge}:em.imageEdge,background:e.background&&"object"==typeof e.background&&"type"in e.background?{type:e.background.type,value:e.background.value??""}:em.background,frame:e.frame&&"object"==typeof e.frame?{...em.frame,...e.frame}:em.frame,images:r,layers:Array.isArray(e.layers)?e.layers:em.layers,isExporting:!1,exportProgress:0})}let ew=[.25,.5,.75,1,1.25,1.5,2],ej={soft:{spread:40,blur:40,x:0,y:16,opacity:20,color:"#000000"},hard:{spread:20,blur:10,x:4,y:8,opacity:50,color:"#000000"},floating:{spread:60,blur:60,x:0,y:30,opacity:35,color:"#000000"},neon:{spread:40,blur:80,x:0,y:0,opacity:70,color:"#ff7a18"},none:{spread:0,blur:0,x:0,y:0,opacity:0,color:"#000000"}};function ek(){let e=o.useRef(null),t=o.useRef(null),a=ey(e=>e.present.background),r=ey(e=>e.present.bgTab),i=ey(e=>!!e.present.image),n=ey(e=>(e.present.images??[]).length),s=ey(e=>e.addScreenshot),d=ey(e=>e.setBackground),c=ey(e=>e.setBgTab),u=o.useCallback(e=>{let a=t.current;if(!a||a.scrollHeight<=a.clientHeight||0===e.deltaY)return;let r=a.scrollTop,i=Math.max(0,Math.min(a.scrollHeight-a.clientHeight,r+e.deltaY));i!==r&&(a.scrollTop=i,e.preventDefault(),e.stopPropagation())},[]);return o.useEffect(()=>{"motion"===r&&c("videos")},[r,c]),(0,l.jsxs)("aside",{className:"ed-left-panel","aria-label":"Background panel",children:[(0,l.jsxs)("div",{className:"ed-panel-header",children:[(0,l.jsx)(O,{size:12,style:{color:"var(--ed-subtle)"}}),(0,l.jsx)("span",{className:"ed-panel-header-title",children:"Backgroun
170d"})]}),(0,l.jsxs)("div",{className:"px-3 pt-2 pb-1",children:[(0,l.jsx)("input",{ref:e,type:"file",accept:"image/*",className:"sr-only","aria-hidden":!0,onChange:e=>{!function(e){if(!e?.type.startsWith("image/"))return;if(n>=5)return p.toast.error("You can add up to 5 images");let t=new FileReader;t.onload=()=>s(String(t.result),e.name),t.readAsDataURL(e)}(e.target.files?.[0]),e.target.value=""}}),(0,l.jsxs)("button",{type:"button",className:"ed-btn ed-btn-primary ed-btn-full ed-btn-lg",disabled:!i||n>=5,onClick:()=>e.current?.click(),style:{borderRadius:10},title:i?n>=5?"Max 5 images":"Add another screenshot on top":"Load an image first",children:[(0,l.jsx)(A,{size:14}),"Add image"]})]}),(0,l.jsx)(B,{activeTab:r,onTabChange:e=>c(e),disabled:!i}),(0,l.jsx)("div",{ref:t,className:`ed-bg-scroll${!i?" ed-bg-scroll--locked":""}`,title:i?void 0:"Add an image to change the background",onWheelCapture:u,children:(0,l.jsx)(es,{activeTab:r,currentBackground:a,onSelect:d})}),(0,l.jsx)(el,{onShuffle:function(){let e=[];for(let t of(J.forEach(t=>t.items.forEach(t=>e.push({type:"image-url",value:t.url}))),G.forEach(t=>e.push({type:"gradient",value:t.css})),U.forEach(t=>e.push({type:"gradient",value:t.css})),K.forEach(t=>e.push({type:"mesh",value:t.css})),q.forEach(t=>e.push({type:"texture",value:t.css})),Z))e.push({type:"video",value:t.url});let t=e[Math.floor(Math.random()*e.length)];t&&d(t)},disabled:!i})]})}let eN=(0,m.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);function eS(e){let t=(e.value??"").trim(),a={backgroundColor:"transparent",backgroundImage:"none",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover"};if("gradient"===e.type||"mesh"===e.type||"texture"===e.type){let e=function(e){let t,a=e.trim().replace(/\s+/g," "),r=a.match(/,\s*((?:#[0-9a-fA-F]{3,8})|(?:rgba?\([^)]+\))|(?:hsla?\([^)]+\)))\s*$/);r&&(t=r[1],a=a.slice(0,r.index).trim());let i=a.match(/^(url\([^)]+\))\s*(.*)$/i);if(i){let e=i[1].trim(),a=(i[2]||"").trim();if(!a)return{image:e,color:t};let r=a.split("/");return r.length>=2?{image:e,color:t,position:r[0].trim()||void 0,size:r.slice(1).join("/").trim()||void 0}:{image:e,color:t,position:a}}return{image:a,color:t}}(X(t).trim());return{...a,backgroundImage:e.image,backgroundColor:e.color??a.backgroundColor,backgroundPosition:e.position??a.backgroundPosition,backgroundSize:e.size??a.backgroundSize,backgroundRepeat:e.repeat??a.backgroundRepeat}}return"solid"===e.type?{...a,backgroundColor:t||"transparent",backgroundImage:"none"}:"image-url"===e.type?{...a,backgroundImage:`url(${JSON.stringify(Y(t))})`}:"video"===e.type?{...a,backgroundColor:"#0a0a0f"}:"transparent"===e.type?{...a,backgroundImage:"repeating-conic-gradient(#808080 0% 25%, transparent 0% 50%)",backgroundPosition:"0 0",backgroundRepeat:"repeat",backgroundSize:"20px 20px"}:{...a,backgroundColor:t||"#0a0a0f"}}function eC(e){let t=e.curve??0;return{sx:e.arrowSx??5,sy:e.arrowSy??50,cx:e.arrowCx??50,cy:e.arrowCy??50+t,ex:e.arrowEx??95,ey:e.arrowEy??50}}function eE(e){let t=eC(e),a=e.width,r=e.height,i=(e.rotation||0)*Math.PI/180,n=Math.cos(i),s=Math.sin(i),l=(t,i)=>{let l=a/100*(t-50),o=r/100*(i-50);return{x:e.x+(l*n-o*s),y:e.y+(l*s+o*n)}},o=l(t.sx,t.sy),d=l(t.cx,t.cy),c=l(t.ex,t.ey);return{sx:o.x,sy:o.y,cx:d.x,cy:d.y,ex:c.x,ey:c.y}}function eM(e,t=!1){if("shape"!==e.type||"arrow"!==e.shapeType)return{};let a=eE(e),r=e.rotation||0,i=-r*Math.PI/180,n=Math.cos(i),s=Math.sin(i),l=[{x:a.sx,y:a.sy},{x:a.cx,y:a.cy},{x:a.ex,y:a.ey}].map(t=>{let a=t.x-e.x,r=t.y-e.y;return{x:a*n-r*s,y:a*s+r*n}}),o=1.5*!t,d=Math.min(...l.map(e=>e.x))-o,c=Math.max(...l.map(e=>e.x))+o,p=Math.min(...l.map(e=>e.y))-o,u=Math.max(...l.map(e=>e.y))+o,m=Math.max(5,c-d),h=Math.max(5,u-p),g=(d+c)/2,f=(p+u)/2,x=r*Math.PI/180,b=Math.cos(x),y=Math.sin(x),v=e.x+(g*b-f*y),w=e.y+(g*y+f*b),j=e=>({x:(e.x-(g-m/2))/m*100,y:(e.y-(f-h/2))/h*100}),k=j(l[0]),N=j(l[1]),S=j(l[2]),C=e=>Math.round(1e4*e)/1e4;return{x:C(v),y:C(w),width:C(m),height:C(h),arrowSx:C(k.x),arrowSy:C(k.y),arrowCx:C(N.x),arrowCy:C(N.y),arrowEx:C(S.x),arrowEy:C(S.y)}}function eP(e){let t=Math.hypot(e.x,e.y);return 0===t?{x:0,y:0}:{x:e.x/t,y:e.y/t}}function e$(e,t,a,r,i,n){let s=eC(t),l={x:a+s.sx/100*i,y:r+s.sy/100*n},o={x:a+s.cx/100*i,y:r+s.cy/100*n},d={x:a+s.ex/100*i,y:r+s.ey/100*n},c=i/400,p=Math.max(.5,(t.bodyWidth??12)*c),u=Math.max(.5,(t.headLength??42)*c),m=Math.max(.5,(t.headWidth??35)*c);!function(e,t,a,r,i){let{color:n,headLength:s,headWidth:l,arrowHead:o}=i,d=Math.max(.5,i.bodyWidth),c=eP({x:r.x-a.x,y:r.y-a.y}),p={x:-c.y,y:c.x},u=eP({x:a.x-t.x,y:a.y-t.y}),m={x:-u.y,y:u.x},h={x:r.x-c.x*s,y:r.y-c.y*s},g={x:t.x+u.x*s,y:t.y+u.y*s},f="end"===o||"both"===o?h:r,x="start"===o||"both"===o?g:t,b=eP({x:c.x+u.x,y:c.y+u.y}),y={x:-b.y,y:b.x},v={x:a.x+y.x*(d/2),y:a.y+y.y*(d/2)},w={x:a.x-y.x*(d/2),y:a.y-y.y*(d/2)},j={x:f.x+p.x*(d/2),y:f.y+p.y*(d/2)},k={x:f.x-p.x*(d/2),y:f.y-p.y*(d/2)},N={x:x.x+m.x*(d/2),y:x.y+m.y*(d/2)},S={x:x.x-m.x*(d/2),y:x.y-m.y*(d/2)},C=d/2;function E(e,t,a,r,i,n){let s=Math.atan2(a.y-t.y,a.x-t.x),l=Math.atan2(r.y-t.y,r.x-t.x),o=t.x+i*C,d=t.y+n*C,c=(a.x-t.x)*(d-t.y)-(a.y-t.y)*(o-t.x);e.arc(t.x,t.y,C,s,l,c>0)}let M=new Path2D;if("end"===o||"both"===o){let e={x:h.x+p.x*(l/2),y:h.y+p.y*(l/2)},t={x:h.x-p.x*(l/2),y:h.y-p.y*(l/2)};M.moveTo(r.x,r.y),M.lineTo(e.x,e.y),M.lineTo(t.x,t.y),M.closePath()}if("start"===o||"both"===o){let e={x:g.x+m.x*(l/2),y:g.y+m.y*(l/2)},a={x:g.x-m.x*(l/2),y:g.y-m.y*(l/2)};M.moveTo(t.x,t.y),M.lineTo(e.x,e.y),M.lineTo(a.x,a.y),M.closePath()}M.moveTo(N.x,N.y),M.quadraticCurveTo(v.x,v.y,j.x,j.y),"end"!==o&&"both"!==o?E(M,f,j,k,-c.x,-c.y):M.lineTo(k.x,k.y),M.quadraticCurveTo(w.x,w.y,S.x,S.y),"start"!==o&&"both"!==o?E(M,x,S,N,u.x,u.y):M.lineTo(N.x,N.y),M.closePath(),e.fillStyle=n,e.fill(M)}(e,l,o,d,{color:t.color||"#ff7a18",bodyWidth:p,headLength:u,headWidth:m,arrowHead:t.arrowHead||"end"})}function eI({layer:e}
170){let t=o.useRef(null),a=o.useRef(null),r=o.useCallback(()=>{let r=t.current,i=a.current;if(!r||!i)return;let n=Math.max(1,Math.floor(i.clientWidth)),s=Math.max(1,Math.floor(i.clientHeight)),l=Math.min(2,window.devicePixelRatio||1),o=n+1e3,d=s+1e3;r.width=Math.floor(o*l),r.height=Math.floor(d*l),r.style.width=`${o}px`,r.style.height=`${d}px`;let c=r.getContext("2d");c&&(c.setTransform(l,0,0,l,0,0),c.clearRect(0,0,o,d),c.save(),c.translate(500,500),e$(c,e,0,0,n,s),c.restore())},[e]);return o.useLayoutEffect(()=>{r()},[r]),o.useEffect(()=>{let e=a.current;if(!e)return;let t=new ResizeObserver(()=>r());return t.observe(e),()=>t.disconnect()},[r]),(0,l.jsx)("div",{ref:a,style:{width:"100%",height:"100%",position:"relative"},children:(0,l.jsx)("canvas",{ref:t,style:{display:"block",position:"absolute",top:-500,left:-500,pointerEvents:"none",zIndex:1},"aria-hidden":!0})})}let eR={n:0,ne:45,e:90,se:135,s:180,sw:225,w:270,nw:315};function eT(e,t){let a=((eR[e]??0)+t+360)%360;return a<22.5||a>=337.5?"ns-resize":a<67.5?"nesw-resize":a<112.5?"ew-resize":a<157.5?"nwse-resize":a<202.5?"ns-resize":a<247.5?"nesw-resize":a<292.5?"ew-resize":a<337.5?"nwse-resize":"ns-resize"}function eL({layer:e,isActive:t,onSelect:a,onUpdate:r}){let i,n,s,d,c=e.isLocked,p=ey(e=>e.present.isExporting),u=o.useRef(null),m=(t,a)=>{t.stopPropagation(),t.preventDefault();let i=t.clientX,n=t.clientY,s=e.width,l=e.height,o=e.x,d=e.y,c=u.current?.closest("#sc-composer");if(!c)return;let p=c.getBoundingClientRect(),m=t=>{let c=(t.clientX-i)/p.width*100,u=(t.clientY-n)/p.height*100,m=(e.rotation||0)*Math.PI/180,h=Math.cos(m),g=Math.sin(m),f=c*h+u*g,x=-c*g+u*h,b=s,y=l;("e"===a||"ne"===a||"se"===a)&&(b=Math.max(1,s+f)),("w"===a||"nw"===a||"sw"===a)&&(b=Math.max(1,s-f)),("s"===a||"se"===a||"sw"===a)&&(y=Math.max(1,l+x)),("n"===a||"ne"===a||"nw"===a)&&(y=Math.max(1,l-x));let v=0,w=0;("e"===a||"ne"===a||"se"===a)&&(v+=(b-s)/2),("w"===a||"nw"===a||"sw"===a)&&(v-=(b-s)/2),("s"===a||"se"===a||"sw"===a)&&(w+=(y-l)/2),("n"===a||"ne"===a||"nw"===a)&&(w-=(y-l)/2);let j=o+v*h-w*g,k=d+v*g+w*h;if(("nw"===a||"ne"===a||"sw"===a||"se"===a)&&("text"===e.type||"emoji"===e.type)){let t=Math.round(Math.max(8,Math.min(220,(e.fontSize??("emoji"===e.type?56:32))*Math.sqrt(b/s*(y/l)))));r({width:b,height:y,x:j,y:k,fontSize:t},!1)}else r({width:b,height:y,x:j,y:k},!1)},h=()=>{r({},!0),window.removeEventListener("pointermove",m),window.removeEventListener("pointerup",h)};window.addEventListener("pointermove",m),window.addEventListener("pointerup",h)},h=(t,a)=>{t.stopPropagation(),t.preventDefault();let i=e.id,n=eE(e),s={...e},l=u.current?.closest("#sc-composer");if(!l)return;let o=l.getBoundingClientRect(),d=(t.clientX-o.left)/o.width*100,c=(t.clientY-o.top)/o.height*100,p=e=>{let t=u.current?.closest("#sc-composer")??null;if(!t)return;let i=t.getBoundingClientRect(),l=(e.clientX-i.left)/i.width*100,o=(e.clientY-i.top)/i.height*100,p=l-d,m=o-c,h={sx:n.sx,sy:n.sy,cx:n.cx,cy:n.cy,ex:n.ex,ey:n.ey};"s"===a?(h.sx=n.sx+p,h.sy=n.sy+m):"c"===a?(h.cx=n.cx+p,h.cy=n.cy+m):(h.ex=n.ex+p,h.ey=n.ey+m);let g=-(s.rotation||0)*Math.PI/180,f=Math.cos(g),x=Math.sin(g),b=(e,t)=>{let a=e-s.x,r=t-s.y;return{x:(a*f-r*x)/s.width*100+50,y:(a*x+r*f)/s.height*100+50}},y=b(h.sx,h.sy),v=b(h.cx,h.cy),w=b(h.ex,h.ey);r(eM({...s,arrowSx:y.x,arrowSy:y.y,arrowCx:v.x,arrowCy:v.y,arrowEx:w.x,arrowEy:w.y},!0),!1)},m=()=>{let e=ey.getState().present.layers.find(e=>e.id===i);e&&"shape"===e.type&&"arrow"===e.shapeType?r(eM(e,!1),!0):r({},!0),window.removeEventListener("pointermove",p),window.removeEventListener("pointerup",m)};window.addEventListener("pointermove",p),window.addEventListener("pointerup",m)},[g,f]=o.useState({w:0,h:0});o.useLayoutEffect(()=>{let e=u.current?.closest("#sc-composer");if(!e)return;let t=()=>{let t=e.getBoundingClientRect();f({w:t.width,h:t.height})};t();let a=new ResizeObserver(t);return a.observe(e),()=>a.disconnect()},[]);let x="shape"===e.type&&"arrow"===e.shapeType,b=e.x-e.width/2,y=e.y-e.height/2,v=e.width,w=e.height,j="shape"===e.type&&"circle"===e.shapeType?"50%":"shape"===e.type&&"rect"===e.shapeType?`${e.borderRadius??8}px`:x?"0":"blur"===e.type?`${e.borderRadius??8}px`:"4px";return(0,l.jsxs)("div",{ref:u,"data-editor-annotation-layer":!0,onPointerDown:t=>{if(0!==t.button||(t.stopPropagation(),a(),c))return;t.preventDefault();let i=t.clientX,n=t.clientY,s=e.x,l=e.y,o=u.current?.closest("#sc-composer");if(!o)return;let d=o.getBoundingClientRect(),p=e=>{r({x:s+(e.clientX-i)/d.width*100,y:l+(e.clientY-n)/d.height*100},!1)},m=()=>{r({},!0),window.removeEventListener("pointermove",p),window.removeEventListener("pointerup",m)}
170;window.addEventListener("pointermove",p),window.addEventListener("pointerup",m)},style:{position:"absolute",left:x&&g.w?`${b*g.w/100}px`:`${b}%`,top:x&&g.h?`${y*g.h/100}px`:`${y}%`,width:x&&g.w?`${v*g.w/100}px`:`${v}%`,height:x&&g.h?`${w*g.h/100}px`:`${w}%`,zIndex:e.zIndex,pointerEvents:"auto",cursor:c?"default":t?"move":"pointer",display:"flex",alignItems:"center",justifyContent:"center",touchAction:"none",userSelect:"none",boxSizing:"border-box",overflow:x?"visible":void 0,opacity:(e.opacity??100)/100,transform:e.tiltX||e.tiltY?`perspective(1200px) rotateX(${e.tiltX}deg) rotateY(${e.tiltY}deg) rotate(${e.rotation}deg)`:`rotate(${e.rotation}deg)`},children:["shape"===e.type&&"rect"===e.shapeType&&(0,l.jsx)("div",{style:{width:"100%",height:"100%",backgroundColor:!1!==e.fillEnabled?e.backgroundColor||e.color||"#ffffff":"transparent",border:`${e.borderWidth||0}px solid ${e.borderColor||e.color||"#ffffff"}`,borderRadius:`${e.borderRadius??8}px`}}),"shape"===e.type&&"circle"===e.shapeType&&(0,l.jsx)("div",{style:{width:"100%",height:"100%",backgroundColor:!1!==e.fillEnabled?e.backgroundColor||e.color||"#ffffff"
170:"transparent",border:`${e.borderWidth||0}px solid ${e.borderColor||e.color||"#ffffff"}`,borderRadius:"50%"}}),"shape"===e.type&&"arrow"===e.shapeType&&(0,l.jsx)(eI,{layer:e}),"text"===e.type&&(i=e.textAlign||"center",(0,l.jsx)("div",{style:{width:"100%",height:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"stretch",boxSizing:"border-box",padding:"8px",overflow:"hidden"},children:(0,l.jsx)("div",{style:{width:"100%",color:e.color??"var(--ed-text)",fontSize:`${e.fontSize||32}px`,fontWeight:e.fontWeight||600,fontFamily:e.fontFamily||"Poppins, sans-serif",textAlign:i,letterSpacing:`${e.letterSpacing||0}px`,lineHeight:e.lineHeight||1.2,wordBreak:"break-word",whiteSpace:"pre-wrap",textShadow:function(e){let t,a,r=e.textShadowBlur??0,i=e.textShadowX??0,n=e.textShadowY??0,s=(e.textShadowOpacity??0)/100;if(s<=0&&0===r&&0===i&&0===n)return;let l=e.textShadowColor||"#000000";return`${i}px ${n}px ${r}px ${a=parseInt(3===(t=l.replace("#","")).length?t.split("").map(e=>e+e).join(""):t,16)||0,`rgba(${a>>16&255},${a>>8&255},${255&a},${s})`}`}(e),WebkitTextStroke:(e.textStrokeWidth??0)>0?`${e.textStrokeWidth}px ${e.textStrokeColor||"#000000"}`:void 0,paintOrder:(e.textStrokeWidth??0)>0?"stroke fill":void 0},children:e.text||"Type something..."})})),"emoji"===e.type&&(0,l.jsx)("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:`${e.fontSize||56}px`,lineHeight:1,fontFamily:'Apple Color Emoji, "Segoe UI Emoji", "Noto Color Emoji", "EmojiSymbols", "Android Emoji", sans-serif',userSelect:"none",pointerEvents:"none"},children:e.emoji||"😀"}),"blur"===e.type&&(0,l.jsx)("div",{style:{width:"100%",height:"100%",backdropFilter:`blur(${e.blurRadius||20}px)`,WebkitBackdropFilter:`blur(${e.blurRadius||20}px)`,borderRadius:`${e.borderRadius??8}px`,backgroundColor:"rgba(255,255,255,0.05)",border:"1px solid rgba(255,255,255,0.1)"}}),t&&!p&&(0,l.jsx)("div",{"aria-hidden":!0,style:{position:"absolute",inset:0,borderRadius:j,pointerEvents:"none",zIndex:20,boxShadow:"inset 0 0 0 2px rgba(255, 122, 24, 0.95), inset 0 0 0 1px rgba(255, 255, 255, 0.2)"}}),t&&!c&&!p&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{title:"Rotate",onPointerDown:e=>{if(e.stopPropagation(),e.preventDefault(),!u.current?.closest("#sc-composer")||!u.current)return;let t=u.current.getBoundingClientRect(),a=t.left+t.width/2,i=t.top+t.height/2,n=e=>{let t=180*Math.atan2(e.clientY-i,e.clientX-a)/Math.PI+90;t<0&&(t+=360),r({rotation:Math.round(t)},!1)},s=()=>{r({},!0),window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",s)};window.addEventListener("pointermove",n),window.addEventListener("pointerup",s)},style:{position:"absolute",top:-30,left:"50%",transform:"translateX(-50%)",width:12,height:12,borderRadius:"50%",backgroundColor:"var(--accent)",cursor:"grab",pointerEvents:"auto",zIndex:30}}),["nw","n","ne","w","e","sw","s","se"].map(t=>{let a={position:"absolute",width:10,height:10,backgroundColor:"#fff",border:"2px solid var(--ed-accent, var(--accent, #ff7a18))",pointerEvents:"auto",zIndex:30};return"nw"===t?(0,l.jsx)("div",{title:`Resize ${t}`,onPointerDown:e=>m(e,t),style:{...a,top:-6,left:-6,cursor:eT(t,e.rotation||0)}},t):"n"===t?(0,l.jsx)("div",{title:`Resize ${t}`,onPointerDown:e=>m(e,t),style:{...a,top:-6,left:"50%",transform:"translateX(-50%)",cursor:eT(t,e.rotation||0)}},t):"ne"===t?(0,l.jsx)("div",{title:`Resize ${t}`,onPointerDown:e=>m(e,t),style:{...a,top:-6,right:-6,cursor:eT(t,e.rotation||0)}},t):"w"===t?(0,l.jsx)("div",{title:`Resize ${t}`,onPointerDown:e=>m(e,t),style:{...a,left:-6,top:"50%",transform:"translateY(-50%)",cursor:eT(t,e.rotation||0)}},t):"e"===t?(0,l.jsx)("div",{title:`Resize ${t}`,onPointerDown:e=>m(e,t),style:{...a,right:-6,top:"50%",transform:"translateY(-50%)",cursor:eT(t,e.rotation||0)}},t):"sw"===t?(0,l.jsx)("div",{title:`Resize ${t}`,onPointerDown:e=>m(e,t),style:{...a,bottom:-6,left:-6,cursor:eT(t,e.rotation||0)}},t):"s"===t?(0,l.jsx)("div",{title:`Resize ${t}`,onPointerDown:e=>m(e,t),style:{...a,bottom:-6,left:"50%",transform:"translateX(-50%)",cursor:eT(t,e.rotation||0)}},t):(0,l.jsx)("div",{title:`Resize ${t}`,onPointerDown:e=>m(e,"se"),style:{...a,bottom:-6,right:-6,cursor:eT(t,e.rotation||0)}},t)}),"shape"===e.type&&"arrow"===e.shapeType&&(s=.25*(n=eC(e)).sx+.5*n.cx+.25*n.ex,d=.25*n.sy+.5*n.cy+.25*n.ey,(0,l.jsxs)(l.Fragment,{children:[[{k:"s",x:n.sx,y:n.sy,t:"Start"},{k:"e",x:n.ex,y:n.ey,t:"End"}].map(({k:e,x:t,y:a,t:r})=>(0,l.jsx)("div",{title:`${r} — drag to reposition`,onPointerDown:t=>h(t,e),style:{position:"absolute",left:`${t}%`,top:`${a}%`,transform:"translate(-50%, -50%)",width:14,height:14,borderRadius:"50%",backgroundColor:"#ffffff",border:"2.5px solid #ff7a18",boxShadow:"0 0 0 1.5px rgba(255,122,24,0.35), 0 2px 6px rgba(0,0,0,0.4)",pointerEvents:"auto",zIndex:42,cursor:"grab"}},e)),(0,l.jsx)("div",{title:"Bend — drag to curve the arrow",onPointerDown:e=>h(e,"c"),style:{position:"absolute",left:`${s}%`,top:`${d}%`,transform:"translate(-50%, -50%) rotate(45deg)",width:10,height:10,borderRadius:"2px",backgroundColor:"#ff7a18",border:"2px s
170olid #ffffff",boxShadow:"0 0 0 1px rgba(255,122,24,0.5), 0 2px 5px rgba(0,0,0,0.35)",pointerEvents:"auto",zIndex:41,cursor:"grab"}})]}))]})]})}function eF(e){let t=e.replace("#","").trim(),a=parseInt(3===t.length?t.split("").map(e=>e+e).join(""):t,16);return{red:a>>16&255,green:a>>8&255,blue:255&a}}function eD(e,t){let{red:a,green:r,blue:i}=eF(e);return`rgba(${a},${r},${i},${t})`}function ez(e){if("none"===e.mode)return;if("border"===e.mode){let{red:t,green:a,blue:r}=eF(e.borderColor),i=e.borderOpacity/100,n=Math.max(1,e.borderWidth);return`0 0 0 ${n}px rgba(${t},${a},${r},${i})`}let t=(e.glassColor??"#ffffff").trim()||"#ffffff",a=e.glassOpacity/100,r=Math.max(1,Math.round(e.glassWidth)),i=Math.min(.35,.18*a+.06);return`0 0 0 1px ${eD("#ffffff",i)}, 0 0 0 ${r}px ${eD(t,.4*a)}`}function eW(e,t,a,r,i){let n,s;if(!a)return{drawWidth:0,drawHeight:0};let l=Math.max(0,e-2*i),o=Math.max(0,t-2*i),d=a.width/a.height;d>l/o?(n=l,s=l/d):(s=o,n=o*d);let c=r/100;return{drawWidth:n*c,drawHeight:s*c}}function eA({present:e,zoom:t,isPro:a=!1,canvasScrollRef:r,onSetActiveLayer:i,onSetActiveImage:n,onSetImageNaturalFor:s,onTransformChange:d,emptyUpload:c=null}){let[p,u]=o.useState(!1),m=o.useRef(null),h=o.useRef(null),g=o.useRef(null),f=o.useRef(null),x=o.useRef(null),b=o.useRef(null),y=e.images??[],v=y.find(t=>t.id===e.activeImageId)??y[0]??null,w=v?.transform??e.transform,j=y.map(t=>eW(e.canvasW,e.canvasH,t.imageNatural?{width:t.imageNatural.w,height:t.imageNatural.h}:null,t.transform.scale,t.transform.padding)),k=y.findIndex(t=>t.id===e.activeImageId),{drawWidth:N,drawHeight:S}=k>=0?j[k]:{drawWidth:0,drawHeight:0},C=e.layers||[],E=ey(e=>e.present.activeLayerId),M=ey(e=>e.setActiveLayer),P=ey(e=>e.updateLayer);o.useEffect(()=>{E&&u(!1)},[E]);let $=o.useMemo(()=>[...y.map((e,t)=>({kind:"image",z:e.zIndex??t,id:e.id,i:t})),...C.filter(e=>!e.isHidden).map(e=>({kind:"layer",z:e.zIndex,id:e.id,layer:e}))].sort((e,t)=>e.z!==t.z?e.z-t.z:e.id.localeCompare(t.id)),[y,C]),I=e.transform,R=o.useMemo(()=>({width:Math.max(1,e.canvasW),height:Math.max(1,e.canvasH)}),[e.canvasW,e.canvasH]),T=eW(e.canvasW,e.canvasH,R,I.scale,I.padding),L=Math.max(1,Math.round(.76*T.drawWidth)),F=Math.max(1,Math.round(.76*T.drawHeight)),D=1,z=1;y.forEach((e,t)=>{let{drawWidth:a,drawHeight:r}=j[t];D=Math.max(D,(a||0)/2+Math.abs(e.stackX)),z=Math.max(z,(r||0)/2+Math.abs(e.stackY))});let W=0===y.length&&c,A=Math.max(.36,Math.min(1.95,Math.min(e.canvasW,e.canvasH)/520)),O=W?Math.max(1,L):y.length?Math.max(1,2*D):1,H=W?Math.max(1,F):y.length?Math.max(1,2*z):1,B=ez(e.imageEdge??ep),_=`translate(${I.panX}%, ${I.panY}%) rotate(${I.rotation}deg)`;function X(e,t,a){return Math.max(t,Math.min(a,e))}function V(e,t,a,r,i,n,s){t&&a&&(e.stopPropagation(),n||(m.current={startX:e.clientX,startY:e.clientY,startPanX:r,startPanY:i,startDrawW:Math.max(1,t),startDrawH:Math.max(1,a)},(s??e.currentTarget).setPointerCapture(e.pointerId)))}function U(e){!m.current||(g.current={dx:e.clientX-m.current.startX,dy:e.clientY-m.current.startY},h.current||(h.current=requestAnimationFrame(()=>{if(h.current=null,!m.current||!g.current)return;let{dx:e,dy:t}=g.current,a=Math.round(m.current.startPanX+e/m.current.startDrawW*100),r=Math.round(m.current.startPanY+t/m.current.startDrawH*100),i=X(a,-200,200),n=X(r,-200,200),s=f.current;s&&s.panX===i&&s.panY===n||(f.current={panX:i,panY:n},d({panX:i,panY:n}))})))}function G(e){m.current=null,g.current=null,f.current=null,h.current&&(cancelAnimationFrame(h.current),h.current=null);try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}}function q(e){return t=>{if(!N||!S)return;t.stopPropagation(),t.preventDefault(),M(null),u(!0);let a=Math.max(160,Math.max(N,S)||1);x.current={startX:t.clientX,startY:t.clientY,startScale:w.scale,handle:e,basis:a},t.currentTarget.setPointerCapture(t.pointerId)}}function K(e){if(!x.current)return;let t=e.clientX-x.current.startX,a=e.clientY-x.current.startY,r="se"===x.current.handle?t+a:"nw"===x.current.handle?-t-a:"ne"===x.current.handle?t-a:-t+a;d({scale:X(Math.round(x.current.startScale*(1+r/x.current.basis)),25,400)})}function Q(e){x.current=null;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}}
170return(I.tiltX||I.tiltY)&&(_=`perspective(1200px) rotateX(${I.tiltX}deg) rotateY(${I.tiltY}deg) ${_}`),_+=` scaleX(${I.flipH?-1:1}) scaleY(${I.flipV?-1:1})`,(0,l.jsx)("div",{className:"ed-canvas-scroller",ref:r,children:(0,l.jsx)("div",{className:"ed-canvas-bleed",children:(0,l.jsx)("div",{className:"relative flex-shrink-0",style:{transform:`scale(${t})`,transformOrigin:"center center"},children:(0,l.jsxs)("div",{id:"sc-composer",className:"relative overflow-hidden",style:{width:e.canvasW,height:e.canvasH,...W?{"--ed-empty-scale":String(A)}:void 0},onPointerDownCapture:e=>{if(0!==e.button)return;let t=e.target;if(t?.closest?.(".ed-image-handle")||t?.closest?.("[data-editor-annotation-layer]"))return;let a=e.currentTarget,r=function(e,t,a){for(let{e:r}of y.map((e,t)=>({e,z:e.zIndex??t})).filter(e=>!e.e.isHidden).sort((e,t)=>t.z-e.z)){let i=a.querySelector(`[data-editor-image-hit="${r.id}"]`);if(!i)continue;let n=i.getBoundingClientRect();if(e>=n.left&&e<n.right&&t>=n.top&&t<n.bottom)return r.id}return null}(e.clientX,e.clientY,a);if(!r)return;let i=y.find(e=>e.id===r);if(!i)return;let{drawWidth:s,drawHeight:l}=j[y.indexOf(i)];if(!s||!l)return;n(r),u(!0),M(null);let o=t?.closest("[data-editor-image-hit]");if(o?.getAttribute("data-editor-image-hit")===r)return;let d=e.nativeEvent;if(d.preventDefault(),"function"==typeof d.stopImmediatePropagation&&d.stopImmediatePropagation(),i.isLocked)return;let c=a.querySelector(`[data-editor-image-hit="${r}"]`);c&&V(e,s,l,i.transform.panX,i.transform.panY,i.isLocked,c)},onPointerDown:e=>{let t=e.target;if(e.currentTarget===e.target){i(null),u(!1);return}t?.closest?.("#bg-layer")&&(i(null),u(!1))},children:[(0,l.jsx)("div",{id:"bg-layer",className:"absolute inset-0",style:eS(e.background),children:"video"===e.background.type&&(0,l.jsx)("video",{src:Y(e.background.value),autoPlay:!0,muted:!0,loop:!0,playsInline:!0,crossOrigin:"anonymous",style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"cover"}})}),W?(0,l.jsx)("div",{className:"ed-canvas-empty-backdrop","aria-hidden":!0}):(0,l.jsx)("div",{className:"absolute inset-0 pointer-events-none"}),(0,l.jsxs)("div",{className:"absolute inset-0 z-[2]",style:{pointerEvents:"none"},children:[W&&c?(0,l.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",style:{pointerEvents:"none",zIndex:4},children:(0,l.jsx)("div",{className:"ed-image-wrap",ref:b,style:{width:L,height:F,position:"relative"},children:(0,l.jsx)("div",{style:{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",zIndex:3,pointerEvents:"auto"},onPointerDown:e=>e.stopPropagation(),children:(0,l.jsxs)("div",{style:{transform:_,width:L,height:F,position:"relative"},children:[(0,l.jsx)("div",{className:"ed-image-clip",style:{borderRadius:I.radius,overflow:"hidden",width:"100%",height:"100%",position:"relative",isolation:"isolate",backfaceVisibility:"hidden"},children:(0,l.jsx)("div",{className:"ed-canvas-empty-fill",children:(0,l.jsxs)("div",{className:`ed-canvas-empty-box${c.isDragOver?" is-dragover":""}`,onClick:()=>c.fileInputRef.current?.click(),role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),c.fileInputRef.current?.click())},"aria-label":"Add files: drag and drop, click, or paste",children:[(0,l.jsx)("div",{className:"ed-canvas-empty-icon-wrap","aria-hidden":!0,children:(0,l.jsx)(eN,{className:"ed-canvas-empty-icon",strokeWidth:1.5})}),(0,l.jsx)("h2",{className:"ed-canvas-empty-title",children:"Add your files"}),(0,l.jsx)("p",{className:"ed-canvas-empty-line",children:"Drag & drop, click to browse, or paste"}),(0,l.jsx)("p",{className:"ed-canvas-empty-hint",children:"PNG, JPG, WebP, GIF"}),(0,l.jsxs)("div",{className:"ed-canvas-empty-paste",children:[(0,l.jsx)("span",{children:"Paste with"}),(0,l.jsx)("kbd",{className:"ed-canvas-empty-kbd",title:"or Ctrl+V on Windows",children:"⌘V"}),(0,l.jsx)("span",{children:"/ Ctrl+V"})]})]})})}),B&&(0,l.jsx)("div",{"aria-hidden":!0,style:{position:"absolute",inset:0,borderRadius:I.radius,boxShadow:B,pointerEvents:"none"}})]})})})}):null,$.map(t=>{if("layer"===t.kind)return(0,l.jsx)(eL,{layer:t.layer,isActive:E===t.layer.id,onSelect:()=>M(t.layer.id),onUpdate:(e,a)=>P(t.layer.id,e,a)},t.id);let a=y[t.i],{drawWidth:r,drawHeight:i}=j[t.i],n=a.id===e.activeImageId;if(a.isHidden)return null;let o=a.transform,d=a.shadow,c=a.filters,u=a.imageEdge??ep,m=ez(u),h="none"===u.mode?0:"border"===u.mode?Math.max(1,u.borderWidth):Math.max(1,Math.round(u.glassWidth)),g=`translate(${o.panX}%, ${o.panY}%) rotate(${o.rotation}deg)`;
170(o.tiltX||o.tiltY)&&(g=`perspective(1200px) rotateX(${o.tiltX}deg) rotateY(${o.tiltY}deg) ${g}`),g+=` scaleX(${o.flipH?-1:1}) scaleY(${o.flipV?-1:1})`;let{red:f,green:x,blue:v}=eF(d.color),w=d.opacity/100,k=0===d.spread&&0===d.blur&&0===d.opacity?"none":`drop-shadow(${d.x}px ${d.y}px ${d.spread}px rgba(${f},${x},${v},${w}))${d.blur>0?` drop-shadow(0 0 ${d.blur}px rgba(${f},${x},${v},${.4*w}))`:""}`,N=`brightness(${1+c.brightness/100}) contrast(${1+c.contrast/100}) saturate(${1+c.saturation/100}) hue-rotate(${c.hue}deg) blur(${c.blur}px) invert(${+!!c.invert})`;return(0,l.jsx)("div",{style:{position:"absolute",left:0,top:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:t.z,pointerEvents:"none"},children:(0,l.jsx)("div",{ref:a.id===y[0]?.id?b:void 0,className:"ed-image-wrap",style:{position:"relative",width:O,height:H,pointerEvents:"none"},children:(0,l.jsx)("div",{style:{position:"absolute",left:"50%",top:"50%",transform:`translate(calc(-50% + ${a.stackX}px), calc(-50% + ${a.stackY}px))`,pointerEvents:"auto"},children:(0,l.jsxs)("div",{"data-editor-image-hit":a.id,style:{transform:g,filter:k,width:r||void 0,height:i||void 0,position:"relative",cursor:a.isLocked?"pointer":"grab",pointerEvents:"auto","--ed-frame-offset":`${h}px`},onPointerDown:e=>{V(e,r,i,o.panX,o.panY,a.isLocked)},onPointerMove:U,onPointerUp:G,onPointerCancel:G,children:[(0,l.jsx)("div",{className:"ed-image-clip",style:{borderRadius:o.radius,overflow:"hidden",width:"100%",height:"100%",position:"relative",isolation:"isolate",backfaceVisibility:"hidden"},children:(0,l.jsx)("img",{alt:a.image.name?.trim()?`Screenshot: ${a.image.name.trim()}`:"Screenshot on canvas",src:Y(a.image.src),style:{width:"100%",height:"100%",display:"block",filter:N},draggable:!1,onDragStart:e=>e.preventDefault(),onLoad:e=>s(a.id,{w:e.currentTarget.naturalWidth,h:e.currentTarget.naturalHeight})})}),m&&(0,l.jsx)("div",{"aria-hidden":!0,style:{position:"absolute",inset:0,borderRadius:o.radius,boxShadow:m,pointerEvents:"none",zIndex:1}}),n&&p&&!E&&!e.isExporting&&(0,l.jsx)("div",{"aria-hidden":!0,className:"ed-image-selection",style:{position:"absolute",inset:`-${h}px`,borderRadius:o.radius+h,pointerEvents:"none",zIndex:2,boxShadow:"0 0 0 2.5px rgba(255,122,24,0.95), 0 0 0 1px rgba(255,255,255,0.30)"}}),n&&p&&!E&&!e.isExporting&&!a.isLocked&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-image-handle","data-handle":"nw",onPointerDown:q("nw"),onPointerMove:K,onPointerUp:Q,onPointerCancel:Q}),(0,l.jsx)("div",{className:"ed-image-handle","data-handle":"ne",onPointerDown:q("ne"),onPointerMove:K,onPointerUp:Q,onPointerCancel:Q}),(0,l.jsx)("div",{className:"ed-image-handle","data-handle":"sw",onPointerDown:q("sw"),onPointerMove:K,onPointerUp:Q,onPointerCancel:Q}),(0,l.jsx)("div",{className:"ed-image-handle","data-handle":"se",onPointerDown:q("se"),onPointerMove:K,onPointerUp:Q,onPointerCancel:Q})]})]})})})},a.id)})]}),e.watermarkEnabled&&y.length>0&&(0,l.jsxs)("div",{className:"ed-watermark","aria-label":"Snapester watermark",style:{"--ed-watermark-scale":Math.max(1.1,Math.min(2.6,Math.min(e.canvasW,e.canvasH)/900))},children:[(0,l.jsx)("span",{className:"ed-watermark-prefix",children:"Made with"}),(0,l.jsx)("span",{className:"ed-watermark-brand",children:"Snapester"})]})]})})})})}var eO=e.i(40639),eO=eO,eH=e.i(45539);let eB=(0,m.default)("crop",[["path",{d:"M6 2v14a2 2 0 0 0 2 2h14",key:"ron5a4"}],["path",{d:"M18 22V8a2 2 0 0 0-2-2H2",key:"7s9ehn"}]]);function e_({hasImage:e,onCrop:t}){return(0,l.jsx)("div",{className:"px-3 pt-3 pb-1",children:(0,l.jsxs)("button",{type:"button",className:"ed-btn ed-btn-primary ed-btn-full ed-btn-lg",disabled:!e,onClick:t,style:{borderRadius:10},children:[(0,l.jsx)(eB,{size:14}),"Crop Image"]})})}function eY({canvasW:e,canvasH:t,isPro:a,onApply:r,onShowPro:i}){let[n,s]=o.useState(String(e)),[d,c]=o.useState(String(t));return o.useEffect(()=>{s(String(e)),c(String(t))},[e,t]),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-section-title ed-section-title-first",children:"Canvas"}),(0,l.jsxs)("div",{className:"ed-dim-row",children:[(0,l.jsxs)("div",{className:"ed-dim-box",children:[(0,l.jsx)("span",{className:"ed-dim-label",children:"W"}),(0,l.jsx)("input",{type:"number",className:"ed-dim-input",min:400,max:4e3,value:n,title:"Canvas width (400–4000 px)",onChange:e=>s(e.target.value)}),(0,l.jsx)("span",{className:"ed-dim-unit",children:"px"})]}),(0,l.jsx)("span",{className:"text-xs",style:{color:"var(--ed-subtle)",flexShrink:0},children:"×"}),(0,l.jsxs)("div",{className:"ed-dim-box",children:[(0,l.jsx)("span",{className:"ed-dim-label",children:"H"}),(0,l.jsx)("input",{type:"number",className:"ed-dim-input",min:300,max:4e3,value:d,title:"Canvas height (300–4000 px)",onChange:e=>c(e.target.value)}),(0,l.jsx)("span",{className:"ed-dim-unit",children:"px"})]}),(0,l.jsx)("button",{type:"button",className:"ed-dim-apply",title:a?"Apply dimensions":"Upgrade to Pro to set custom dimensions",onClick:function(){if(!a)return void i("custom_dims");let e=parseInt(n,10),t=parseInt(d,10);Number.isFinite(e)&&Number.isFinite(t)&&r(e,t)},children:"↵"})]})]})}function eX({label:e,value:t,min:a,max:r,step:i=1,displayValue:n,onChange:s,id:d}
170){let c=o.useRef(null),p=o.useRef(!1),u=Math.max(0,Math.min(100,(t-a)/(r-a)*100)),m=n??String(t);function h(e){let n=c.current;if(!n)return t;let s=n.getBoundingClientRect(),l=Math.round((a+Math.max(0,Math.min(1,(e-s.left)/s.width))*(r-a))/i)*i;return Math.max(a,Math.min(r,l))}function g(e){p.current=!1;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}}return(0,l.jsxs)("div",{ref:c,id:d,className:"ed-slider-pill",title:"Drag the bar to set the value. When focused, use ← → (or ↑ ↓) to nudge. The value is not a text field.",onPointerDown:function(e){e.preventDefault(),p.current=!0,e.currentTarget.setPointerCapture(e.pointerId),s(h(e.clientX))},onPointerMove:function(e){p.current&&s(h(e.clientX))},onPointerUp:g,onPointerCancel:g,onKeyDown:function(e){"ArrowRight"===e.key||"ArrowUp"===e.key?(e.preventDefault(),s(Math.min(r,t+i))):("ArrowLeft"===e.key||"ArrowDown"===e.key)&&(e.preventDefault(),s(Math.max(a,t-i)))},role:"slider","aria-label":e,"aria-valuenow":t,"aria-valuemin":a,"aria-valuemax":r,tabIndex:0,children:[(0,l.jsx)("div",{className:"ed-slider-fill",style:{width:`${u}%`}}),(0,l.jsx)("div",{className:"ed-slider-thumb",style:{left:`calc(${u}% - 1.5px)`},"aria-hidden":"true"}),(0,l.jsx)("span",{className:"ed-slider-label",children:e}),(0,l.jsx)("span",{className:"ed-slider-value","aria-hidden":"true",children:m})]})}function eV({transform:e,onTransformChange:t}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-section-title",children:"Image"}),(0,l.jsxs)("div",{className:"ed-prop-area flex flex-col gap-1.5",children:[(0,l.jsx)(eX,{label:"Padding",value:e.padding,min:0,max:200,step:2,displayValue:`${e.padding}px`,onChange:e=>t({padding:e}),id:"ctrl-padding"}),(0,l.jsx)(eX,{label:"Scale",value:e.scale,min:20,max:300,step:1,displayValue:`${e.scale}%`,onChange:e=>t({scale:e}),id:"ctrl-scale"}),(0,l.jsx)(eX,{label:"Rotation",value:e.rotation,min:-45,max:45,step:1,displayValue:`${e.rotation}\xb0`,onChange:e=>t({rotation:e}),id:"ctrl-rotation"}),(0,l.jsxs)("div",{className:"ed-slider-pair",children:[(0,l.jsx)(eX,{label:"Pan X",value:e.panX,min:-100,max:100,step:1,displayValue:`${e.panX}%`,onChange:e=>t({panX:e}),id:"ctrl-panX"}),(0,l.jsx)(eX,{label:"Pan Y",value:e.panY,min:-100,max:100,step:1,displayValue:`${e.panY}%`,onChange:e=>t({panY:e}),id:"ctrl-panY"})]})]})]})}let eU=[{id:"none",label:"None",blurb:"Image only"},{id:"glass",label:"Glass",blurb:"Frosted outer ring"},{id:"border",label:"Border",blurb:"Solid stroke"}];function eG({mode:e}){return(0,l.jsx)("span",{className:"ed-border-preview","aria-hidden":!0,children:(0,l.jsx)("span",{className:`ed-border-preview__tile ed-border-preview__tile--${e}`})})}function eq({imageEdge:e,onImageEdgeChange:t,transform:a,onTransformChange:r}){let i=(e.glassColor??"#ffffff").trim()||"#ffffff",n=(e.borderColor??"#ff7a18").trim()||"#ff7a18";return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-section-title",children:"Border"}),(0,l.jsx)("div",{className:"ed-border-mode-grid",role:"group","aria-label":"Border style",children:eU.map(a=>{let r=e.mode===a.id;return(0,l.jsxs)("button",{type:"button",className:`ed-border-mode-chip${r?" is-active":""}`,onClick:()=>t({mode:a.id}),title:a.blurb,children:[(0,l.jsx)(eG,{mode:a.id}),(0,l.jsx)("span",{className:"ed-border-mode-title",children:a.label})]},a.id)})}),(0,l.jsxs)("div",{className:"ed-prop-area flex flex-col gap-1.5 pt-0",children:[(0,l.jsx)(eX,{label:"Rounded",value:a.radius,min:0,max:80,step:1,displayValue:`${a.radius}px`,onChange:e=>r({radius:e}),id:"ctrl-radius"}),"glass"===e.mode&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"ed-border-color-row",children:[(0,l.jsx)("span",{className:"ed-border-color-label",id:"edge-glass-lbl",children:"Glass color"}),(0,l.jsxs)("div",{className:"ed-border-color-wrap",children:[(0,l.jsx)("input",{type:"color",className:"ed-border-color-input",value:i,onChange:e=>t({glassColor:e.target.value}),"aria-labelledby":"edge-glass-lbl"}),(0,l.jsx)("span",{className:"ed-border-color-hex","aria-hidden":!0,children:i})]})]}),(0,l.jsx)(eX,{label:"Glass width",value:e.glassWidth,min:1,max:32,step:1,displayValue:`${e.glassWidth}px`,onChange:e=>t({glassWidth:e}),id:"ctrl-edge-glass-w"}),(0,l.jsx)(eX,{label:"Glass opacity",value:e.glassOpacity,min:0,max:100,step:1,displayValue:`${e.glassOpacity}%`,onChange:e=>t({glassOpacity:e}),id:"ctrl-edge-glass-op"})]}),"border"===e.mode&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"ed-border-color-row",children:[(0,l.jsx)("span",{className:"ed-border-color-label",id:"edge-color-lbl",children:"Color"}),(0,l.jsxs)("div",{className:"ed-border-color-wrap",children:[(0,l.jsx)("input",{type:"color",className:"ed-border-color-input",value:n,onChange:e=>t({borderColor:e.target.value}),"aria-labelledby":"edge-color-lbl"}),(0,l.jsx)("span",{className:"ed-border-color-hex","aria-hidden":!0,
170children:n})]})]}),(0,l.jsx)(eX,{label:"Border width",value:e.borderWidth,min:1,max:32,step:1,displayValue:`${e.borderWidth}px`,onChange:e=>t({borderWidth:e}),id:"ctrl-edge-border-w"}),(0,l.jsx)(eX,{label:"Border opacity",value:e.borderOpacity,min:0,max:100,step:1,displayValue:`${e.borderOpacity}%`,onChange:e=>t({borderOpacity:e}),id:"ctrl-edge-border-op"})]})]})]})}let eK=["soft","hard","floating","neon","none"],eQ={soft:"Soft",hard:"Hard",floating:"Float",neon:"Neon",none:"None"};function eJ({shadow:e,onShadowChange:t}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-section-title",children:"Shadow"}),(0,l.jsxs)("div",{className:"ed-prop-area flex flex-col gap-1.5",children:[(0,l.jsx)(eX,{label:"Spread",value:e.spread,min:0,max:200,step:2,displayValue:`${e.spread}px`,onChange:e=>t({spread:e}),id:"ctrl-shadow-spread"}),(0,l.jsx)(eX,{label:"Blur",value:e.blur,min:0,max:100,step:2,displayValue:`${e.blur}px`,onChange:e=>t({blur:e}),id:"ctrl-shadow-blur"}),(0,l.jsxs)("div",{className:"ed-slider-pair",children:[(0,l.jsx)(eX,{label:"X",value:e.x,min:-60,max:60,step:1,displayValue:`${e.x}px`,onChange:e=>t({x:e}),id:"ctrl-shadow-x"}),(0,l.jsx)(eX,{label:"Y",value:e.y,min:-60,max:60,step:1,displayValue:`${e.y}px`,onChange:e=>t({y:e}),id:"ctrl-shadow-y"})]}),(0,l.jsxs)("div",{className:"ed-slider-pair items-center",children:[(0,l.jsx)("div",{className:"flex items-center gap-2 flex-shrink-0",children:(0,l.jsx)("input",{type:"color",className:"ed-color-swatch",style:{width:32,height:32,padding:2},value:e.color,onChange:e=>t({color:e.target.value}),title:"Shadow color",id:"ctrl-shadow-color"})}),(0,l.jsx)(eX,{label:"Opacity",value:e.opacity,min:0,max:100,step:1,displayValue:`${e.opacity}%`,onChange:e=>t({opacity:e}),id:"ctrl-shadow-opacity"})]})]}),(0,l.jsx)("div",{className:"ed-shadow-presets",children:eK.map(a=>(0,l.jsx)("button",{type:"button",className:"ed-shadow-preset",onClick:()=>t({...e,...ej[a]}),children:eQ[a]},a))})]})}function eZ(e,t,a){return Math.max(t,Math.min(a,e))}function e0({transform:e,background:t,canvasW:a,canvasH:r,imageSrc:i,onTransformChange:n}){let s=o.useRef(null),d=o.useRef(null),c=0!==e.tiltX||0!==e.tiltY;function p(e){s.current=null;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}}let u=eS(t),m="video"===t.type&&""!==(t.value??"").trim(),h=function(e,t){let[a,r]=o.useState(null);return o.useEffect(()=>{if(!t||!e)return void r(null);r(null);let a=document.createElement("video");a.muted=!0,a.playsInline=!0,a.preload="auto",a.crossOrigin="anonymous",a.setAttribute("playsinline","");let i=!1,n=!1,s=()=>{if(i)return;let e=a.videoWidth,t=a.videoHeight;if(!(e<2)&&!(t<2))try{let i=document.createElement("canvas");i.width=e,i.height=t;let s=i.getContext("2d");if(!s)return;s.drawImage(a,0,0,e,t),r(i.toDataURL("image/png")),n=!0}catch{r(null)}},l=()=>{i||s()},o=()=>{i||(a.currentTime=.001)},d=()=>{i||r(null)};a.addEventListener("seeked",l),a.addEventListener("loadedmetadata",o),a.addEventListener("error",d),a.src=e,a.load();let c=window.setTimeout(()=>{i||n||s()},320);return()=>{i=!0,window.clearTimeout(c),a.removeEventListener("seeked",l),a.removeEventListener("loadedmetadata",o),a.removeEventListener("error",d),a.src=""}},[t,e]),a}(m?Y(t.value.trim()):null,m),g={transform:`perspective(380px) rotateX(${e.tiltX}deg) rotateY(${e.tiltY}deg)`,transition:s.current?"none":"transform 0.12s ease-out"},f=Math.max(1,r),x={"--ed-tilt-cw":String(Math.max(1,a)),"--ed-tilt-ch":String(f)};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-section-title",children:"Tilt"}),(0,l.jsxs)("div",{className:"ed-prop-area flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"ed-tilt-wrap",children:[(0,l.jsxs)("div",{className:"ed-tilt-bg",style:x,children:[m&&h?(0,l.jsx)("img",{src:h,alt:"",className:"ed-tilt-bg-layer ed-tilt-bg-img","aria-hidden":!0,draggable:!1}):m&&!h?(0,l.jsx)("div",{className:"ed-tilt-bg-layer",style:{backgroundColor:"#0a0a0f"},"aria-hidden":!0}):(0,l.jsx)("div",{className:"ed-tilt-bg-layer",style:u,"aria-hidden":!0}),(0,l.jsx)("div",{ref:d,className:"ed-tilt-drag",onPointerDown:function(t){t.preventDefault(),t.currentTarget.setPointerCapture(t.pointerId),s.current={startX:t.clientX,startY:t.clientY,initTiltX:e.tiltX,initTiltY:e.tiltY}},onPointerMove:function(e){if(!s.current)return;let t=e.clientX-s.current.startX,a=e.clientY-s.current.startY;n({tiltX:eZ(Math.round((s.current.initTiltX-.4*a)*2)/2,-30,30),tiltY:eZ(Math.round((s.current.initTiltY+.4*t)*2)/2,-30,30)})},onPointerUp:p,onPointerCancel:p,"aria-label":"Drag to set tilt. Horizontal drag changes Tilt Y, vertical drag changes Tilt X.",title:"Drag to tilt",children:(0,l.jsx)("div",{className:"ed-tilt-card",style:g,children:i?(0,l.jsx)("img",{src:i,alt:"",className:"ed-tilt-card-img",draggable:!1}):(0,l.jsx)("div",{className:"ed-tilt-card-placeholder"})})})]}),(0,l.jsxs)("div",{className:"ed-tilt-labels",children:[(0,l.jsxs)("span",{children:["X ",e.tiltX>0?"+":"",e.tiltX,"°"]}),(0,l.jsx)("span",{className:"ed-tilt-hint-text",children:c?"drag to adjust":"drag card to tilt"}),(0,l.jsxs)("span",{children:["Y ",e.tiltY>0?"+":"",e.tiltY,"°"]})]})]}),(0,l.jsx)(eX,{label:"Tilt X",value:e.tiltX,min:-30,max:30,step:1,displayValue:`${e.tiltX}\xb0`,onChange:e=>n({tiltX:e}),id:"ctrl-tiltX"}),(0,l.jsx)(eX,{label:"Tilt Y",value:e.tiltY,min:-30,max:30,step:1,displayValue:`${e.tiltY}\xb0`,onChange:e=>n({tiltY:e}),id:"ctrl-tiltY"}),(0,l.jsxs)("button",{type:"button",className:"ed-tilt-reset-btn",onClick:()=>n({tiltX:0,tiltY:0}),disabled:!c,children:[(0,l.jsx)(E,{size:11,strokeWidth:2.4}),"Reset Tilt"]})]})]})}let e1={padding:110,radius:30,scale:100,rotation:0,panX:0,panY:0,tiltX:0,tiltY:0,flipH:!1,flipV:!1},e2={spread:0,blur:0,x:0,y:0,opacity:0,color:"#000000"};function e5({present:e,isPro:t,onCrop:a,onTransformChange:r,onShadowChange:i,onImageEdgeChange:n,onCanvasDims:s,onFitCanvas:o,onShowPro:d}){let c=e.images?.[0]?.image?.src??null;return(0,l.jsxs)("div",{className:"ed-panel-scroll",children:[(0,l.jsx)(e_,{hasImage:!!e.image,onCrop:a}),(0,l.jsx)(eY,{canvasW:e.canvasW,canvasH:e.canvasH,isPro:t,onApply:function(e,t){s(e,t),requestAnimationFrame(o)},onShowPro:d}),(0,l.jsx)(eV,{transform:e.transform,onTransformChange:r}),(0,l.jsx)(eq,{imageEdge:e.imageEdge,onImageEdgeChange:n,transform:e.transform,onTransformChange:r}),(0,l.jsx)(e0,{transform:e.transform,background:e.background,canvasW:e.canvasW,canvasH:e.canvasH,imageSrc:c,onTransformChange:r}),(0,l.jsx)(eJ,{shadow:e.shadow,onShadowChange:i}),(0,l.jsxs)("button",{type:"button",className:"ed-reset-all-btn",onClick:function(){r(e1),i(e2),n({...ec(e.canvasW),mode:"none"})},title:"Reset all image, tilt, border and shadow properties to defaults",children:[(0,l.jsx)(E,{size:13,strokeWidth:2.2}),"Reset All"]})]})}var y=y;let e8=(0,m.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),e4=(0,m.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var e3=e.i(30133);
170let e6=(0,m.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var e7=e.i(99435),e7=e7;let e9=(0,m.default)("type",[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]]),te=(0,m.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),tt=(0,m.default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),ta=(0,m.default)("move-up-right",[["path",{d:"M13 5H19V11",key:"1n1gyv"}],["path",{d:"M19 5L5 19",key:"72u4yj"}]]),tr=(0,m.default)("droplet",[["path",{d:"M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z",key:"c7niix"}]]),ti=(0,m.default)("lock-open",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 9.9-1",key:"1mm8w8"}]]),tn=(0,m.default)("smile",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]);var y=y,e7=e7;function ts({layer:e,isActive:t,onSelect:a,onUpdate:r,onDuplicate:i,onDelete:n,draggable:s=!1,onDragStart:o,onDragOver:d,onDrop:c}){let p="shape"===e.type?e.shapeType??"shape":e.type,u="text"===e.type?e9:"emoji"===e.type?tn:"blur"===e.type?tr:"shape"===e.type&&"circle"===e.shapeType?tt:"shape"===e.type&&"arrow"===e.shapeType?ta:te;return(0,l.jsxs)("div",{className:`ed-layer-item${t?" ed-layer-item-active":""}`,draggable:s,onDragStart:o,onDragOver:d,onDrop:c,onClick:a,role:"button",tabIndex:0,onKeyDown:e=>{"Enter"===e.key&&a()},"aria-pressed":t,children:[(0,l.jsx)("span",{className:"ed-layer-grip","aria-hidden":!0,children:(0,l.jsx)(e4,{size:12})}),(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-icon-btn-sm",title:e.isHidden?"Show layer":"Hide layer",onPointerDown:e=>{e.stopPropagation()},onClick:t=>{t.stopPropagation(),r({isHidden:!e.isHidden})},"aria-label":e.isHidden?"Show layer":"Hide layer",children:e.isHidden?(0,l.jsx)(e8,{size:10}):(0,l.jsx)(y.default,{size:10})}),(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-icon-btn-sm",title:e.isLocked?"Unlock layer":"Lock layer",onPointerDown:e=>{e.stopPropagation()},onClick:t=>{t.stopPropagation(),r({isLocked:!e.isLocked})},"aria-label":e.isLocked?"Unlock layer":"Lock layer",children:e.isLocked?(0,l.jsx)(e6,{size:10}):(0,l.jsx)(ti,{size:10})}),(0,l.jsxs)("span",{className:`ed-layer-name${e.isHidden?" ed-layer-name-hidden":""}`,children:[(0,l.jsx)("span",{className:"ed-layer-type-badge","aria-label":p,title:p,children:u?(0,l.jsx)(u,{size:11}):p})," ","text"===e.type?e.text?.slice(0,20)||"Text":"emoji"===e.type?e.emoji||"Emoji":e.name]}),(0,l.jsxs)("div",{className:"flex items-center gap-0.5 ml-auto",children:[(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-icon-btn-sm",title:"Duplicate layer",onPointerDown:e=>{e.stopPropagation()},onClick:e=>{e.stopPropagation(),i()},"aria-label":"Duplicate",children:(0,l.jsx)(b,{size:10})}),(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-icon-btn-sm",title:"Delete layer",onPointerDown:e=>{e.stopPropagation()},onClick:e=>{e.stopPropagation(),n()},"aria-label":"Delete",style:{color:"var(--ed-red)"},children:(0,l.jsx)(e7.default,{size:10})})]})]})}let tl=(0,m.default)("text-align-start",[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]]),to=(0,m.default)("text-align-center",[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M17 12H7",key:"16if0g"}],["path",{d:"M19 19H5",key:"vjpgq2"}]]),td=(0,m.default)("text-align-end",[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M21 19H7",key:"4cu937"}
170]]),tc=(0,m.default)("text-align-justify",[["path",{d:"M3 5h18",key:"1u36vt"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 19h18",key:"awlh7x"}]]);var N=N,tp=e.i(32348),tu=e.i(17156),tm=e.i(32514),th=e.i(14195);let tg=(0,tu.default)(()=>e.A(41909),{loadableGenerated:{modules:[34306]},ssr:!1,loading:()=>(0,l.jsx)("div",{className:"ed-emoji-picker-skeleton",style:{width:300,height:380},children:"Loading emojis…"})});function tf({value:e,onChange:t,disabled:a}){let[r,i]=o.useState(!1),[n,s]=o.useState(!1),d=o.useRef(null),c=o.useRef(null);o.useEffect(()=>{s(!0)},[]),o.useEffect(()=>{if(!r)return;let e=e=>{let t=e.target;d.current?.contains(t)||c.current?.contains(t)||i(!1)},t=e=>{"Escape"===e.key&&i(!1)};return document.addEventListener("mousedown",e,!0),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e,!0),document.removeEventListener("keydown",t)}},[r]);let p=r&&n&&(0,tm.createPortal)((0,l.jsxs)("div",{className:"ed-emoji-center-portal",style:{position:"fixed",inset:0,zIndex:2e4,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto"},children:[(0,l.jsx)("button",{type:"button",className:"ed-emoji-center-backdrop","aria-label":"Close emoji picker",onClick:()=>i(!1)}),(0,l.jsx)("div",{ref:c,className:"ed-emoji-center-panel ed-emoji-popover-panel ed-emoji-center-panel--flex rounded-xl border shadow-2xl",style:{position:"relative",borderColor:"var(--ed-border)",background:"var(--ed-panel)",maxWidth:"min(96vw, 360px)",maxHeight:"min(90vh, 480px)"},role:"dialog","aria-label":"Emoji picker",onClick:e=>e.stopPropagation(),children:(0,l.jsx)(tg,{onEmojiClick:e=>{t(e.emoji),i(!1)},width:300,height:380,theme:th.Theme.DARK,emojiStyle:th.EmojiStyle.NATIVE,searchPlaceholder:"Search",autoFocusSearch:!1,previewConfig:{showPreview:!1},skinTonePickerLocation:th.SkinTonePickerLocation.SEARCH})})]}),document.body);return(0,l.jsxs)("div",{ref:d,className:"ed-emoji-field relative w-full",children:[(0,l.jsxs)("button",{type:"button",className:"ed-emoji-picker-trigger",disabled:a,onClick:()=>i(e=>!e),title:"Choose emoji","aria-expanded":r,"aria-haspopup":"dialog",children:[(0,l.jsx)("span",{className:"ed-emoji-picker-preview",style:{fontFamily:'Apple Color Emoji, "Segoe UI Emoji", "Noto Color Emoji", "EmojiSymbols", sans-serif'},children:e||"😀"}),(0,l.jsx)("span",{className:"ed-emoji-picker-trigger-text",children:"Choose emoji"})]}),p]})}function tx(e,t){if("string"==typeof e&&/^#[0-9a-fA-F]{6}$/i.test(e))return e.toLowerCase();if("string"==typeof e&&/^#[0-9a-fA-F]{3}$/i.test(e)){let t=e[1],a=e[2],r=e[3];return`#${t}${t}${a}${a}${r}${r}`.toLowerCase()}return t}function tb({layer:e,onUpdate:t}){let a=e.fontFamily??"Poppins, sans-serif",r="text"===e.type||"emoji"===e.type||"blur"===e.type||"shape"===e.type&&("rect"===e.shapeType||"circle"===e.shapeType||"arrow"===e.shapeType);return(0,l.jsxs)("div",{className:"ed-layer-props ed-layer-props--stack",children:["text"===e.type&&(0,l.jsxs)("div",{className:"ed-layers-props-block ed-layers-props-block--flush",children:[(0,l.jsx)("textarea",{className:"ed-text-input",rows:2,value:e.text??"",onChange:e=>t({text:e.target.value}),style:{resize:"none"}}),(0,l.jsx)("div",{className:"ed-layers-props-field ed-layers-props-field--tight",children:(0,l.jsxs)(tp.Select,{value:a,onValueChange:e=>t({fontFamily:e}),children:[(0,l.jsx)(tp.SelectTrigger,{className:"ed-select-trigger",children:(0,l.jsx)(tp.SelectValue,{placeholder:"Font"})}),(0,l.jsxs)(tp.SelectContent,{className:"ed-select-content",children:[(0,l.jsx)(tp.SelectItem,{className:"ed-select-item",value:"Poppins, sans-serif",children:"Poppins"}),(0,l.jsx)(tp.SelectItem,{className:"ed-select-item",value:"Inter, sans-serif",children:"Inter"}),(0,l.jsx)(tp.SelectItem,{className:"ed-select-item",value:"'JetBrains Mono', monospace",children:"JetBrains Mono"}),(0,l.jsx)(tp.SelectItem,{className:"ed-select-item",value:"Georgia, serif",children:"Georgia"})]})]})}),(0,l.jsxs)("div",{className:"ed-layers-color-inline",children:[(0,l.jsx)("span",{className:"ed-layers-props-sublabel",children:"Color"}),(0,l.jsx)("input",{type:"color",className:"ed-color-swatch",value:tx(e.color,"#f0f0fa"),onChange:e=>t({color:e.target.value}),"aria-label":"Text color"})]}),(0,l.jsx)("div",{className:"ed-layers-props-field ed-layers-props-field--tight",children:(0,l.jsx)(eX,{label:"Size",value:e.fontSize??32,min:8,max:200,step:1,displayValue:`${e.fontSize??32}px`,onChange:e=>t({fontSize:e})})}),(0,l.jsxs)("div",{className:"ed-layers-color-inline",children:[(0,l.jsx)("span",{className:"ed-layers-props-sublabel",children:"Outline"}),(0,l.jsx)("input",{type:"color",className:"ed-color-swatch",value:tx(e.textStrokeColor,"#000000"),onChange:e=>t({textStrokeColor:e.target.value}),"aria-label":"Text outline color"})]}),(0,l.jsx)("div",{className:"ed-layers-props-field ed-layers-props-field--tight",children:(0,l.jsx)(eX,{label:"Out width",value:e.textStrokeWidth??0,min:0,max:8,step:.5,displayValue:`${e.textStrokeWidth??0}px`,onChange:e=>t({textStrokeWidth:e})})}),(0,l.jsxs)("div",{className:"ed-layers-color-inline",children:[(0,l.jsx)("span",{className:"ed-layers-props-sublabel",children:"Sh color"}),(0,l.jsx)("input",{type:"color",className:"ed-color-swatch",value:tx(e.textShadowColor,"#000000"),onChange:e=>t({textShadowColor:e.target.value}),"aria-label":"Text shadow color"})]}),(0,l.jsxs)("div",{className:"ed-layers-props-field ed-layers-props-field--tight",children:[(0,l.jsx)(eX,{label:"Sh opacity",value:e.textShadowOpacity??0,min:0,max:100,step:1,displayValue:`${e.textShadowOpacity??0}%`,onChange:e=>t({textShadowOpacity:e})}),(0,l.jsx)(eX,{label:"Sh blur",value:e.textShadowBlur??0,min:0,max:40,step:1,displayValue:`${e.textShadowBlur??0}px`,onChange:e=>t({textShadowBlur:e})}),(0,l.jsx)(eX,{label:"Sh X",value:e.textShadowX??0,min:-40,max:40,step:1,displayValue:`${e.textShadowX??0}px`,onChange:e=>t({textShadowX:e})}),(0,l.jsx)(eX,{label:"Sh Y",value:e.textShadowY??0,min:-40,max:40,step:1,displayValue:`${e.textShadowY??0}px`,onChange:e=>t({textShadowY:e})})]}),(0,l.jsx)("div",{className:"ed-align-tablist",role:"tablist","aria-label":"Text alignment",children:[{id:"left",icon:tl,label:"Left"},{id:"center",icon:to,label:"Center"},{id:"right",icon:td,label:"Right"},{id:"justify",icon:tc,label:"Justify"}].map(({id:a,icon:r,label:i})=>{let n=(e.textAlign??"center")===a;return(0,l.jsx)("button",{type:"button",role:"tab","aria-selected":n,
170className:`ed-align-tab${n?" ed-align-tab--active":""}`,onClick:()=>t({textAlign:a}),title:i,children:(0,l.jsx)(r,{size:14,strokeWidth:2})},a)})})]}),"emoji"===e.type&&(0,l.jsxs)("div",{className:"ed-layers-props-block ed-layers-props-block--flush",children:[(0,l.jsxs)("div",{className:"ed-layers-labeled-emoji",children:[(0,l.jsx)("span",{className:"ed-layers-props-sublabel",children:"Character"}),(0,l.jsx)(tf,{value:e.emoji,onChange:e=>t({emoji:e,name:"Emoji"})})]}),(0,l.jsx)("div",{className:"ed-layers-props-field ed-layers-props-field--tight",children:(0,l.jsx)(eX,{label:"Size",value:e.fontSize??56,min:16,max:220,step:1,displayValue:`${e.fontSize??56}px`,onChange:e=>t({fontSize:e})})})]}),"blur"===e.type&&(0,l.jsx)("div",{className:"ed-layers-props-block ed-layers-props-block--flush",children:(0,l.jsxs)("div",{className:"ed-layers-props-field ed-layers-props-field--tight",children:[(0,l.jsx)(eX,{label:"Strength",value:e.blurRadius??20,min:0,max:48,step:1,displayValue:`${e.blurRadius??20}px`,onChange:e=>t({blurRadius:e})}),(0,l.jsx)(eX,{label:"Rounding",value:e.borderRadius??8,min:0,max:1e3,step:1,displayValue:`${e.borderRadius??8}px`,onChange:e=>t({borderRadius:e})})]})}),"shape"===e.type&&"arrow"===e.shapeType&&(0,l.jsxs)("div",{className:"ed-layers-props-block ed-layers-props-block--flush",children:[(0,l.jsxs)("div",{className:"ed-layers-color-inline ed-layers-color-inline--arrow",children:[(0,l.jsx)("span",{className:"ed-layers-props-sublabel",children:"Color"}),(0,l.jsx)("input",{type:"color",className:"ed-color-swatch",value:e.color||"#ff7a18",onChange:e=>t({color:e.target.value}),"aria-label":"Arrow color"})]}),(0,l.jsxs)("div",{className:"ed-layers-props-field ed-layers-props-field--tight",children:[(0,l.jsx)(eX,{label:"Thickness",value:e.bodyWidth??12,min:2,max:28,step:1,displayValue:`${e.bodyWidth??12}px`,onChange:e=>t({bodyWidth:e})}),(0,l.jsx)(eX,{label:"Head length",value:e.headLength??42,min:8,max:80,step:1,displayValue:`${e.headLength??42}`,onChange:e=>t({headLength:e})}),(0,l.jsx)(eX,{label:"Head width",value:e.headWidth??35,min:8,max:90,step:1,displayValue:`${e.headWidth??35}`,onChange:e=>t({headWidth:e})})]})]}),"shape"===e.type&&("rect"===e.shapeType||"circle"===e.shapeType)&&(0,l.jsx)("div",{className:"ed-layers-props-block ed-layers-props-block--flush",children:(0,l.jsxs)("div",{className:"ed-layers-props-field ed-layers-props-field--tight",children:[!1!==e.fillEnabled&&(0,l.jsxs)("div",{className:"ed-layers-color-inline",children:[(0,l.jsx)("span",{className:"ed-layers-props-sublabel",children:"Fill"}),(0,l.jsx)("input",{type:"color",className:"ed-color-swatch",value:e.backgroundColor??"#ff7a18",onChange:e=>t({backgroundColor:e.target.value}),"aria-label":"Fill"})]}),(0,l.jsxs)("div",{className:"ed-layers-color-inline",children:[(0,l.jsx)("span",{className:"ed-layers-props-sublabel",children:"Border"}),(0,l.jsx)("input",{type:"color",className:"ed-color-swatch",value:e.borderColor||e.color||"#ff7a18",onChange:e=>t({borderColor:e.target.value}),"aria-label":"Border color"})]}),(0,l.jsx)(eX,{label:"Border W",value:e.borderWidth??0,min:0,max:32,step:1,displayValue:`${e.borderWidth??0}px`,onChange:e=>t({borderWidth:e})}),"rect"===e.shapeType&&(0,l.jsx)(eX,{label:"Radius",value:e.borderRadius??0,min:0,max:100,step:1,onChange:e=>t({borderRadius:e})})]})}),(0,l.jsxs)("div",{className:"ed-layers-props-block ed-layers-props-block--shared"+(r?" ed-layers-props-block--tight-top":""),children:[(0,l.jsx)("div",{className:"ed-layers-props-heading",children:"Properties"}),(0,l.jsxs)("div",{className:"ed-layers-props-field ed-layers-props-field--tight",children:[(0,l.jsxs)("div",{className:"ed-slider-pair ed-slider-pair--layer",children:[(0,l.jsx)(eX,{label:"Opacity",value:e.opacity,min:0,max:100,step:1,displayValue:`${e.opacity}%`,onChange:e=>t({opacity:e})}),(0,l.jsx)(eX,{label:"Rotate",value:e.rotation??0,min:-180,max:180,step:1,displayValue:`${e.rotation??0}\xb0`,onChange:e=>t({rotation:e})})]}),(0,l.jsxs)("div",{className:"ed-slider-pair ed-slider-pair--layer mt-1.5",children:[(0,l.jsx)(eX,{label:"Tilt X",value:e.tiltX??0,min:-45,max:45,step:1,displayValue:`${e.tiltX??0}\xb0`,onChange:e=>t({tiltX:e})}),(0,l.jsx)(eX,{label:"Tilt Y",value:e.tiltY??0,min:-45,max:45,step:1,displayValue:`${e.tiltY??0}\xb0`,onChange:e=>t({tiltY:e})})]}),(0,l.jsx)("div",{className:"px-3 mt-1.5",children:(0,l.jsxs)("button",{type:"button",className:"ed-btn ed-btn-ghost w-full text-[10px] h-7 font-bold uppercase tracking-wider flex items-center justify-center gap-1.5",style:{background:"rgba(255, 122, 24, 0.08)",color:"var(--ed-accent)",border:"1px solid rgba(255, 122, 24, 0.15)",borderRadius:"8px"},onClick:()=>{let e=ey.getState().present.transform;t({tiltX:e.tiltX,tiltY:e.tiltY})},children:[(0,l.jsx)(N.default,{size:11,fill:"currentColor"}),"Match Image Tilt"]})}),(0,l.jsx)(eX,{label:"Z-Order",value:e.zIndex,min:0,max:100,step:1,onChange:e=>t({zIndex:e})})]})]})]})}
170let ty=[{icon:e9,label:"Text",action:{type:"text",text:"New Text"}},{icon:te,label:"Rect",action:{type:"shape",shapeType:"rect"}},{icon:tt,label:"Circle",action:{type:"shape",shapeType:"circle"}},{icon:ta,label:"Arrow",action:{type:"shape",shapeType:"arrow"}},{icon:tr,label:"Blur",action:{type:"blur",blurRadius:20}},{icon:tn,label:"Emoji",action:{type:"emoji",emoji:"😀",name:"Emoji"}}];function tv(){let e=ey(e=>e.present.layers),t=ey(e=>e.present.activeLayerId),a=ey(e=>!!e.present.image),r=ey(e=>e.present.images??[]),i=ey(e=>e.present.activeImageId),n=ey(e=>e.setActiveImage),s=ey(e=>e.setStackOrder),d=ey(e=>e.deleteImage),c=ey(e=>e.setImageHidden),p=ey(e=>e.setImageLocked),u=ey(e=>e.addLayer),m=ey(e=>e.updateLayer),h=ey(e=>e.deleteLayer),g=ey(e=>e.duplicateLayer),f=ey(e=>e.setActiveLayer),x=(e||[]).find(e=>e.id===t)??null,b=o.useRef(null),v=o.useMemo(()=>[...(r??[]).map(e=>({kind:"image",id:e.id,zIndex:e.zIndex??0})),...(e??[]).map(e=>({kind:"layer",id:e.id,zIndex:e.zIndex??0}))].sort((e,t)=>t.zIndex-e.zIndex),[r,e]);function w(e,t,a){let r=v.findIndex(a=>a.id===e&&a.kind===t);if(r<0)return;let i=[...v],[n]=i.splice(r,1);n&&(i.splice(a,0,n),s([...i].reverse().map(e=>({kind:e.kind,id:e.id}))))}return(0,l.jsxs)("div",{className:"ed-panel-scroll",children:[(0,l.jsx)("div",{className:"ed-section-title ed-section-title-first",children:"Add Object"}),(0,l.jsx)("div",{className:"ed-add-tools-grid mb-4",children:ty.map(e=>(0,l.jsxs)("button",{type:"button",className:"ed-tool-btn",onClick:()=>u(e.action),disabled:!a,title:a?void 0:"Upload an image to add layers",children:[(0,l.jsx)(e.icon,{size:13}),e.label]},e.label))}),(0,l.jsx)("div",{className:"ed-section-title",children:"Layers"}),0===v.length?(0,l.jsx)("div",{className:"mx-3 my-2 text-xs rounded-lg px-3 py-3 text-center",style:{color:"var(--ed-subtle)",background:"var(--ed-elevated)",border:"1px solid var(--ed-border)"},children:"No layers yet. Add images, text, shapes, or blur regions above."}):(0,l.jsx)("div",{className:"ed-layers-stack pb-2",children:v.map((a,s)=>{if("image"===a.kind){let e=r.find(e=>e.id===a.id);if(!e)return null;let o=i===e.id&&!t;return(0,l.jsxs)("div",{className:`ed-layer-item${o?" ed-layer-item-active":""}`,draggable:!0,onDragStart:t=>{b.current={kind:"image",id:e.id},t.dataTransfer.effectAllowed="move"},onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect="move"},onDrop:e=>{e.preventDefault();let t=b.current;b.current=null,t&&w(t.id,t.kind,s)},onClick:()=>{f(null),n(e.id)},role:"button",tabIndex:0,"aria-pressed":o,children:[(0,l.jsx)("span",{className:"ed-layer-grip","aria-hidden":!0,children:(0,l.jsx)(e4,{size:12})}),(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-icon-btn-sm",title:e.isHidden?"Show image":"Hide image",onPointerDown:e=>{e.stopPropagation()},onClick:t=>{t.stopPropagation(),c(e.id,!e.isHidden)},"aria-label":e.isHidden?"Show image":"Hide image",children:e.isHidden?(0,l.jsx)(e8,{size:10}):(0,l.jsx)(y.default,{size:10})}),(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-icon-btn-sm",title:e.isLocked?"Unlock image":"Lock image",onPointerDown:e=>{e.stopPropagation()},onClick:t=>{t.stopPropagation(),p(e.id,!e.isLocked)},"aria-label":e.isLocked?"Unlock image":"Lock image",children:e.isLocked?(0,l.jsx)(e6,{size:10}):(0,l.jsx)(ti,{size:10})}),(0,l.jsxs)("span",{className:`ed-layer-name${e.isHidden?" ed-layer-name-hidden":""}`,children:[(0,l.jsx)("span",{className:"ed-layer-type-badge","aria-label":"Image layer",title:"Image",children:(0,l.jsx)(e3.Image,{size:11})})," ",(e.image?.name?.length??0)>20?`${e.image.name.slice(0,20)}…`:e.image?.name||"Image"]}),(0,l.jsx)("div",{className:"flex items-center gap-0.5 ml-auto",children:(0,l.jsx)("button",{type:"button",className:"ed-icon-btn ed-icon-btn-sm",title:"Delete image",onPointerDown:e=>{e.stopPropagation()},onClick:t=>{t.stopPropagation(),d(e.id)},"aria-label":"Delete image",style:{color:"var(--ed-red)"},children:(0,l.jsx)(e7.default,{size:10})})})]},`image-${e.id}`)}let o=(e||[]).find(e=>e.id===a.id);return o?(0,l.jsx)(ts,{layer:o,isActive:t===o.id,onSelect:()=>f(o.id),onUpdate:e=>m(o.id,e),onDuplicate:()=>g(o.id),onDelete:()=>h(o.id),draggable:!0,onDragStart:e=>{b.current={kind:"layer",id:o.id},e.dataTransfer.effectAllowed="move"},onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect="move"},onDrop:e=>{e.preventDefault();let t=b.current;b.current=null,t&&w(t.id,t.kind,s)}},`layer-${o.id}`):null})}),x&&(0,l.jsxs)("div",{className:"ed-layers-selected-wrap",children:[(0,l.jsx)("div",{className:"ed-section-title",children:"Selected"}
170),(0,l.jsx)(tb,{layer:x,onUpdate:e=>m(x.id,e)})]})]})}var N=N;let tw=[{id:"png",label:"PNG",subLabel:"Lossless",isPro:!1},{id:"jpg",label:"JPG",subLabel:"Smaller",isPro:!0},{id:"webp",label:"WebP",subLabel:"Web",isPro:!0}],tj=[{value:1,label:"2K",isPro:!1},{value:2,label:"4K",isPro:!0},{value:3,label:"6K",isPro:!0}],tk=[{id:"gif_720",label:"720p",subLabel:"Fast",isPro:!0},{id:"gif_1080",label:"1080p",subLabel:"HQ",isPro:!0}],tN=[{id:"video_720",label:"720p",subLabel:"HD",isPro:!0},{id:"video_1080",label:"1080p",subLabel:"FHD",isPro:!0},{id:"video_2k",label:"2K",subLabel:"Ultra",isPro:!0}];function tS({present:e,isPro:t,onFormatChange:a,onQualityChange:r,onScaleChange:i,onWatermarkChange:n,onDownload:s,onDownloadFormat:d,onShowPro:c}){let p=e.exportFilename,u=ey(e=>e.setExportFilename),m=ey(e=>e.setExportOutputKind),h=ey(e=>e.setExportGifPreset),g=ey(e=>e.setExportVideoPreset),f="video"===e.background.type,x=f?["image","gif","video"]:["image"],b=f?e.exportOutputKind:"image",y=e.exportGifPreset,w=e.exportVideoPreset;o.useEffect(()=>{f&&(x.includes(e.exportOutputKind)||m(x[0]||"image"))},[f,x.join(","),e.exportOutputKind,m]);let j=Math.round(e.canvasW*e.exportScale),S=Math.round(e.canvasH*e.exportScale);function C(e,a){a&&!t?c("premium_video_gif"):d(e)}return(0,l.jsxs)("div",{className:"ed-panel-scroll pb-4",children:[(0,l.jsx)("div",{className:"ed-section-title ed-section-title-first",children:"Export"}),x.length>1&&(0,l.jsxs)("div",{className:"ed-export-kind-tabs",children:[x.includes("image")&&(0,l.jsxs)("button",{type:"button",className:`ed-export-kind-tab${"image"===b?" is-active":""}`,onClick:()=>m("image"),children:[(0,l.jsx)(e3.Image,{size:13})," Image"]}),x.includes("gif")&&(0,l.jsxs)("button",{type:"button",className:`ed-export-kind-tab${"gif"===b?" is-active":""}`,onClick:()=>m("gif"),children:[(0,l.jsx)(N.default,{size:13})," GIF"]}),x.includes("video")&&(0,l.jsxs)("button",{type:"button",className:`ed-export-kind-tab${"video"===b?" is-active":""}`,onClick:()=>m("video"),children:[(0,l.jsx)(k,{size:13})," Video"]})]}),"image"===b&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-section-title",children:"Format"}),(0,l.jsx)("div",{className:"ed-option-tabs ed-format-group mb-3",children:tw.map(r=>(0,l.jsxs)("label",{className:"ed-format-option relative cursor-pointer",title:r.isPro?"Pro feature":void 0,children:[(0,l.jsx)("input",{type:"radio",name:"export-format",checked:e.exportFormat===r.id,onChange:()=>{var e;return e=r.id,void(r.isPro&&!t?c("export_format"):a(e))}}),(0,l.jsx)("span",{className:"text-[11px] font-bold",style:{color:"var(--ed-text)"},children:r.label}),r.isPro&&(0,l.jsx)("span",{className:"ed-badge-pro absolute -top-1.5 -right-1.5",children:"PRO"})]},r.id))}),"png"!==e.exportFormat&&(0,l.jsx)("div",{className:"px-3 mb-3",children:(0,l.jsx)(eX,{label:"Quality",value:e.exportQuality,min:60,max:100,step:1,displayValue:`${e.exportQuality}%`,onChange:r,id:"ctrl-quality"})}),(0,l.jsxs)("div",{className:"ed-export-output-row",children:[(0,l.jsx)("div",{className:"ed-export-output-label",children:"Output"}),(0,l.jsxs)("div",{className:"ed-export-output-meta",children:[j," × ",S," px"]})]}),(0,l.jsx)("div",{className:"ed-section-title",children:"Scale"}),(0,l.jsx)("div",{className:"ed-option-tabs ed-option-tabs-scale ed-format-group mb-3",children:tj.map(a=>(0,l.jsxs)("label",{className:"ed-format-option relative cursor-pointer",title:a.isPro?"Pro feature":void 0,children:[(0,l.jsx)("input",{type:"radio",name:"export-scale",checked:e.exportScale===a.value,onChange:()=>{var e;return e=a.value,void(a.isPro&&!t?c("export_scale"):i(e))}}),(0,l.jsx)("span",{className:"text-[11px] font-bold",style:{color:"var(--ed-text)"},children:a.label}),a.isPro&&(0,l.jsx)("span",{className:"ed-badge-pro absolute -top-1.5 -right-1.5",children:"PRO"})]},a.value))})]}),"gif"===b&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-section-title",children:"Scale"}),(0,l.jsx)("div",{className:"ed-option-tabs ed-option-tabs-scale ed-format-group ed-format-group-2 mb-3",children:tk.map(e=>(0,l.jsxs)("label",{className:"ed-format-option relative cursor-pointer",title:e.isPro?"Pro feature":void 0,children:[(0,l.jsx)("input",{type:"radio",name:"export-gif",checked:y===e.id,onChange:()=>{e.isPro&&!t?c("premium_video_gif"):h(e.id)}}),(0,l.jsx)("span",{className:"text-[11px] font-bold",style:{color:"var(--ed-text)"},children:e.label}),e.isPro&&(0,l.jsx)("span",{className:"ed-badge-pro absolute -top-1.5 -right-1.5",children:"PRO"})]},e.id))}),(0,l.jsx)("div",{className:"ed-section-title",children:"Max File Size"}),(0,l.jsxs)("div",{className:"px-3 mb-3",children:[(0,l.jsx)(eX,{label:"Target Limit",value:e.exp
170ortGifMaxMB,min:5,max:50,step:1,displayValue:`${e.exportGifMaxMB} MB`,onChange:e=>ey.getState().setExportGifMaxMB(e),id:"ctrl-gif-max-mb"}),(0,l.jsx)("div",{className:"text-[10px] mt-1 opacity-60",style:{color:"var(--ed-text)"},children:"Optimizes GIF quality to stay under this limit. 15MB is recommended for X."})]})]}),"video"===b&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"ed-section-title",children:"Scale"}),(0,l.jsx)("div",{className:"ed-option-tabs ed-option-tabs-scale ed-format-group mb-3",children:tN.map(e=>(0,l.jsxs)("label",{className:"ed-format-option relative cursor-pointer",title:e.isPro?"Pro feature":void 0,children:[(0,l.jsx)("input",{type:"radio",name:"export-video",checked:w===e.id,onChange:()=>{e.isPro&&!t?c("premium_video_gif"):g(e.id)}}),(0,l.jsx)("span",{className:"text-[11px] font-bold",style:{color:"var(--ed-text)"},children:e.label}),e.isPro&&(0,l.jsx)("span",{className:"ed-badge-pro absolute -top-1.5 -right-1.5",children:"PRO"})]},e.id))})]}),(0,l.jsx)("div",{className:"ed-section-title",children:"Branding"}),(0,l.jsxs)("div",{className:"ed-toggle-row",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("span",{className:"ed-toggle-label",children:"Snapester Watermark"}),!t&&(0,l.jsx)("span",{className:"ed-badge-pro ml-2",children:"PRO"})]}),(0,l.jsxs)("label",{className:"flex items-center gap-0",children:[(0,l.jsx)("input",{type:"checkbox",className:"ed-toggle-input",checked:e.watermarkEnabled,onChange:e=>{var a;(a=e.target.checked)||t?n(a):c("watermark")},id:"toggle-watermark"}),(0,l.jsx)("span",{className:"ed-toggle-track"})]})]}),(0,l.jsx)("p",{className:"px-3 pb-3 text-[11px] leading-relaxed",style:{color:"var(--ed-subtle)"},children:t?"Toggle the Snapester watermark on your export.":"Upgrade to Pro to remove the watermark from exports."}),(0,l.jsx)("div",{className:"ed-section-title",children:"Filename"}),(0,l.jsx)("div",{className:"px-3 mb-4",children:(0,l.jsx)("input",{type:"text",className:"ed-text-input",value:p,onChange:e=>u(e.target.value),placeholder:"snapester-export","aria-label":"Export filename"})}),(0,l.jsx)("div",{className:"px-3 flex flex-col gap-2",children:"image"===b?(0,l.jsxs)("button",{type:"button",className:"ed-btn ed-btn-primary ed-btn-full ed-btn-lg",onClick:s,disabled:!e.image,style:{borderRadius:10},children:[(0,l.jsx)(v,{size:14}),"Download Image"]}):"gif"===b?(0,l.jsxs)("button",{type:"button",className:"ed-btn ed-btn-primary ed-btn-full ed-btn-lg",onClick:()=>C(y,!0),disabled:!e.image,style:{borderRadius:10},children:[(0,l.jsx)(N.default,{size:14}),"Export GIF"]}):(0,l.jsxs)("button",{type:"button",className:"ed-btn ed-btn-primary ed-btn-full ed-btn-lg",onClick:()=>C(w,!0),disabled:!e.image,style:{borderRadius:10},children:[(0,l.jsx)(k,{size:14}),"Export Video"]})})]})}let tC=[{id:"edit",label:"Edit",Icon:eO.default},{id:"layers",label:"Layers",Icon:eH.Layers},{id:"export",label:"Export",Icon:v}];function tE({present:e,isPro:t,activeTab:a,onTabChange:r,hasImage:i,onCrop:n,onTransformChange:s,onShadowChange:d,onImageEdgeChange:c,onCanvasDims:p,onFitCanvas:u,onFormatChange:m,onQualityChange:h,onScaleChange:g,onWatermarkChange:f,onDownload:x,onDownloadFormat:b,onShowPro:y}){let v=o.useRef(null),w=o.useCallback(e=>{let t=v.current;if(!t)return;let a=t.querySelector("#panel-edit:not([hidden])")||t.querySelector("#panel-layers:not([hidden])")||t.querySelector("#panel-export:not([hidden])"),r=a?.querySelector(".ed-panel-scroll");r&&!(r.scrollHeight<=r.clientHeight)&&(r.scrollTop+=e.deltaY,0!==e.deltaY&&(e.preventDefault(),e.stopPropagation()))},[]),j=!i;return(0,l.jsxs)("aside",{ref:v,className:"ed-right-panel","aria-label":"Edit controls",onWheelCapture:w,title:j?"Load an image to use edit controls":void 0,children:[(0,l.jsx)("div",{className:"ed-right-tabs",role:"tablist","aria-label":"Editor panels",children:tC.map(({id:e,label:t,Icon:i})=>(0,l.jsxs)("button",{type:"button",role:"tab","aria-selected":a===e,"aria-controls":`panel-${e}`,className:`ed-right-tab${a===e?" ed-right-tab-active":""}`,onClick:()=>{j||r(e)},disabled:j,title:j?"Load an image first":void 0,children:[(0,l.jsx)(i,{size:13}),t]},e))}),(0,l.jsxs)("div",{className:`flex flex-col flex-1 min-h-0 overflow-hidden${j?" ed-right-panels--locked":""}`,children:[(0,l.jsx)("div",{id:"panel-edit",role:"tabpanel",hidden:"edit"!==a,className:"flex flex-col flex-1 min-h-0 overflow-hidden",children:"edit"===a&&(0,l.jsx)(e5,{present:e,isPro:t,onCrop:n,onTransformChange:s,onShadowChange:d,onImageEdgeChange:c,onCanvasDims:p,onFitCanvas:u,onShowPro:y})}),(0,l.jsx)("div",{id:"panel-layers",role:"tabpanel",hidden:"layers"!==a,className:"flex flex-col flex-1 min-h-0 overflow-hidden",children:"layers"===a&&(0,l.jsx)(tv,{})}),(0,l.jsx)("div",{id:"panel-export",role:"tabpanel",hidden:"export"!==a,className:"flex flex-col flex-1 min-h-0 overflow-hidden",children:"export"===a&&(0,l.jsx)(tS,{present:e,isPro:t,onFormatChange:m,onQualityChange:h,onScaleChange:g,onWatermarkChange:f,onDownload:x,onDownloadFormat:b,onShowPro:y})})]})]})}let tM=(0,m.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),tP="(max-width: 1150px)";function t$(){let[e,t]=o.useState(()=>window.matchMedia(tP).matches);return(o.useEffect(()=>{let e=window.matchMedia(tP),a=()=>t(e.matches);return a(),e.addEventListener("change",a),()=>e.removeEventListener("change",a)},[]),e)?(0,l.jsx)("div",{className:"ed-mobile-gate",role:"status","aria-live":"polite",children:(0,l.jsxs)("div",{className:"ed-mobile-gate-card",children:[(0,l.jsx)("div",{className:"ed-mobile-gate-icon","aria-hidden":!0,
170children:(0,l.jsx)(tM,{size:32,strokeWidth:1.5})}),(0,l.jsx)("h2",{className:"ed-mobile-gate-title",children:"Editor works best on desktop"}),(0,l.jsx)("p",{className:"ed-mobile-gate-body",children:"The Snapester screenshot editor is not optimized for small screens yet. Open this page on a computer or larger display for the full experience."}),(0,l.jsx)(u.default,{href:"/",className:"ed-mobile-gate-link",children:"Back to home"})]})}):null}function tI({open:e,onOpenChange:t}){let{present:a,setImage:r,setCropRect:i,undo:n}=ey(),s=o.useRef(null),d=o.useRef(null),c=o.useRef(null);o.useRef(null);let[u,m]=o.useState({x:0,y:0,w:100,h:100}),[h,g]=o.useState({ox:0,oy:0,scale:1,iw:1,ih:1,dw:1,dh:1}),f=(e,t,a)=>Math.max(t,Math.min(a,e)),x=o.useCallback(()=>{if(!d.current||!s.current)return;let e=d.current,t=s.current,a=e.naturalWidth||1,r=e.naturalHeight||1,i=t.getBoundingClientRect(),n=e.getBoundingClientRect(),l=Math.max(1,n.width),o=Math.max(1,n.height),c=n.left-i.left;g({ox:c,oy:n.top-i.top,scale:l/a,iw:a,ih:r,dw:l,dh:o})},[]),b=o.useCallback((e,t)=>{let a=f(e.x,t.ox,t.ox+t.dw-24),r=f(e.y,t.oy,t.oy+t.dh-24),i=f(e.w,24,t.ox+t.dw-a),n=f(e.h,24,t.oy+t.dh-r);return{x:a,y:r,w:i,h:n}},[]);o.useEffect(()=>{if(e&&a.imageOriginal){let e=setTimeout(()=>{x()},50);return()=>clearTimeout(e)}},[e,a.imageOriginal,x]),o.useEffect(()=>{if(e&&h.iw>1)if(a.cropRect){let e=a.cropRect;m(b({x:h.ox+e.x*h.scale,y:h.oy+e.y*h.scale,w:e.w*h.scale,h:e.h*h.scale},h))}else m({x:h.ox,y:h.oy,w:h.dw,h:h.dh})},[e,h,a.cropRect,b]),o.useEffect(()=>{if(!e)return;let t=()=>x();return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[e,x]);let y=async()=>{if(!a.imageOriginal)return;let e=Math.round((u.x-h.ox)/h.scale),n=Math.round((u.y-h.oy)/h.scale),s=Math.round(u.w/h.scale),l=Math.round(u.h/h.scale),o={x:f(e,0,h.iw-1),y:f(n,0,h.ih-1),w:f(s,1,h.iw-e),h:f(l,1,h.ih-n)},d=new Image;d.crossOrigin="anonymous",d.src=a.imageOriginal,await new Promise(e=>{d.onload=e,d.onerror=e});let c=document.createElement("canvas");c.width=o.w,c.height=o.h;let m=c.getContext("2d");m&&(m.imageSmoothingEnabled=!0,m.imageSmoothingQuality="high",m.drawImage(d,o.x,o.y,o.w,o.h,0,0,o.w,o.h),r({src:c.toDataURL("image/png",1),name:a.image?.name}),i(o),t(!1),p.toast.success("Image cropped successfully"))};if(!e)return null;let v=s.current?.clientWidth||1,w=s.current?.clientHeight||1,j=Math.max(0,Math.min(v,u.x)),k=Math.max(0,Math.min(w,u.y)),N=Math.max(0,Math.min(v,u.x+u.w)),S=Math.max(0,Math.min(w,u.y+u.h)),C=`path('evenodd, M0 0 H${v} V${w} H0 Z M${j} ${k} H${N} V${S} H${j} Z')`;return(0,l.jsx)("div",{className:"ed-modal-overlay ed-modal-overlay-visible",onPointerDown:()=>t(!1),children:(0,l.jsxs)("div",{className:"ed-modal ed-crop-modal",onPointerDown:e=>e.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Crop image",children:[(0,l.jsxs)("div",{className:"ed-crop-header",children:[(0,l.jsx)("div",{className:"ed-crop-title",children:"Crop"}),(0,l.jsx)("button",{className:"ed-modal-close",type:"button",onClick:()=>t(!1),"aria-label":"Close crop",children:"×"})]}),(0,l.jsx)("div",{className:"ed-crop-body",children:(0,l.jsxs)("div",{className:"ed-crop-stage",ref:s,children:[(0,l.jsxs)("div",{className:"ed-crop-stage-clip",children:[(0,l.jsx)("img",{ref:d,id:"crop-image",src:a.imageOriginal||"",alt:"",draggable:!1,onLoad:x}),(0,l.jsx)("div",{className:"ed-crop-dim",style:{clipPath:C}})]}),(0,l.jsxs)("div",{className:"ed-crop-rect",ref:c,style:{left:u.x,top:u.y,width:u.w,height:u.h},onPointerDown:e=>{var t;let a,r,i,n;t=e.target.dataset.cropHandle||"move",e.preventDefault(),e.stopPropagation(),e.currentTarget.setPointerCapture(e.pointerId),a={x:e.clientX,y:e.clientY},r={...u},i=e=>{let i=e.clientX-a.x,n=e.clientY-a.y,s={...r};"move"===t?(s.x=r.x+i,s.y=r.y+n):(t.includes("e")&&(s.w=r.w+i),t.includes("s")&&(s.h=r.h+n),t.includes("w")&&(s.x=r.x+i,s.w=r.w-i),t.includes("n")&&(s.y=r.y+n,s.h=r.h-n)),m(b(s,h))},n=()=>{window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",n)},window.addEventListener("pointermove",i),window.addEventListener("pointerup",n)},children:[(0,l.jsx)("div",{className:"ed-crop-handle","data-crop-handle":"nw"}),(0,l.jsx)("div",{className:"ed-crop-handle","data-crop-handle":"n"}),(0,l.jsx)("div",{className:"ed-crop-handle","data-crop-handle":"ne"}),(0,l.jsx)("div",{className:"ed-crop-handle","data-crop-handle":"e"}),(0,l.jsx)("div",{className:"ed-crop-handle","data-crop-handle":"se"}),(0,l.jsx)("div",{className:"ed-crop-handle","data-crop-handle":"s"}),(0,l.jsx)("div",{className:"ed-crop-handle","data-crop-handle":"sw"}),(0,l.jsx)("div",{className:"ed-crop-handle","data-crop-handle":"w"})]})]})}),(0,l.jsxs)("div",{className:"ed-modal-actions",children:[(0,l.jsx)("button",{className:"ed-btn ed-btn-secondary",type:"button",onClick:()=>{m({x:h.ox,y:h.oy,w:h.dw,h:h.dh})},children:"Reset"}),(0,l.jsx)("button",{className:"ed-btn ed-btn-primary",type:"button",onClick:y,children:"Apply Crop"})]})]})})}var tR=e.i(8022),tT=e.i(40444);function tL(){let[e,t]=(0,o.useState)(null),[a,r]=(0,o.useState)(!0),[i,n]=(0,o.useState)(null),s=(0,o.useCallback)(async()=>{r(!0),n(null);try{let e=await (0,tR.getProfile)();e.error?(n(e.error),t(null)):t(e.data)}catch(e){n(e instanceof Error?e.message:"Failed to load profile.")}finally{r(!1)}},[]);return(0,o.useEffect)(()=>{s()},[s]),{profile:e,isPro:(0,tT.profileHasProFeatures)(e??void 0),isLoading:a,error:i,refetch:s}}var c=c,tF=e.i(20054),tD=e.i(15833);let tz={default:{title:"Snapester Pro",subtitle:"Unlock higher resolutions, more formats, custom sizes, and optional watermark removal."},export_limit:{title:"Export limit reached",subtitle:"Free accounts include 10 exports. Upgrade for unlimited exports and premium tools, or open your dashboard to review usage."}
170,export_count:{title:"Export limit reached",subtitle:"You have used your free exports. Upgrade to Pro or sign in on the web to sync your account."},custom_dims:{title:"Custom dimensions",subtitle:"Pro lets you set exact canvas width and height for pixel-perfect exports."},custom_canvas:{title:"Custom dimensions",subtitle:"Pro lets you set exact canvas width and height for pixel-perfect exports."},export_format:{title:"JPG & WebP",subtitle:"Pro unlocks compressed formats for the web and social sharing."},premium_video_gif:{title:"GIF & video exports",subtitle:"Pro unlocks animated GIF and MP4 exports from video backgrounds, at all quality levels."},export_scale:{title:"High Resolution",subtitle:"Export at up to 2K/4K resolution scales for pixel-perfect results."},watermark:{title:"Watermark",subtitle:"Pro lets you disable the Snapester branding on exports."}};function tW({trigger:e,onClose:t,onRequestSignIn:a}){let{profile:r,isPro:i,isLoading:n}=tL(),s=!!e,d=tz[e||"default"]||tz.default,[p,m]=o.useState(!1),[h,g]=o.useState(null),[f,x]=o.useState(null);if(o.useEffect(()=>{if(s){let e=setTimeout(()=>m(!0),10);return()=>clearTimeout(e)}m(!1)},[s]),o.useEffect(()=>{if(!s)return;let e=!1;return(async()=>{try{let t=(0,I.createClient)(),{data:a}=await t.from("pricing_tiers").select("id, price, tier_name, is_active, sort_order").order("sort_order",{ascending:!0});if(e)return;let r=a||[];if(!r.length)return;let i=r.find(e=>e.is_active)||r[r.length-1]||null,n=Math.max(...r.map(e=>e.price));g(i),x(Number.isFinite(n)?n:null)}catch{}})(),()=>{e=!0}},[s]),!s)return null;let b=r?{plan:r.plan,proTrialEndsAt:r.proTrialEndsAt??null}:null,y=(0,tT.canStartProTrial)(b),v=(0,tT.hasUsedProTrial)(r?.proTrialEndsAt)&&!(0,tT.isProTrialActive)(r?.proTrialEndsAt),w=(0,tT.planHasProFeatures)(r?.plan),j=d.subtitle;"export_limit"===e||"export_count"===e?r?i||(j=y?"You have reached your free export allowance. Try Pro free for 7 days — no credit card required.":v?"Your Pro trial has ended. Upgrade to lifetime Pro for unlimited exports and premium tools.":"You have reached your free export allowance. Upgrade to Pro for unlimited exports and premium tools."):j="Free use includes 10 exports while signed out. Sign in to sync your account, or try Pro free for 7 days.":!i&&r&&y?j=`${d.subtitle} Try every Pro feature free for ${tD.PRO_TRIAL_DAYS} days — ${tD.PRO_TRIAL_NO_CARD_LABEL.toLowerCase()}.`:!i&&r&&v&&(j="Your Pro trial has ended. Upgrade to lifetime Pro to keep unlimited exports and every format.");let k=h?.price,N="number"==typeof k&&"number"==typeof f&&k<f,S=tD.PRO_TRIAL_LOGIN_NEXT,C=`Try ${tD.PRO_TRIAL_DAYS}-day Pro trial`;r&&!n&&(y?(S=tD.PRO_TRIAL_BILLING_PATH,C=`Try ${tD.PRO_TRIAL_DAYS}-day Pro trial`):w?(S="/dashboard/billing",C="Subscription Settings"):(S="/api/dodo/checkout",C="number"==typeof k?`Get lifetime access — $${k}`:"Get lifetime access"));let E=!i&&(!r||y),M=!r&&!n,P=r&&!n?"/api/dodo/checkout":`/login?next=${encodeURIComponent("/dashboard/billing")}`,$="number"==typeof k?`Get Lifetime access — $${k}`:"Lifetime — $9",R="number"==typeof k?k:9;return(0,l.jsx)("div",{className:`ed-modal-overlay ${p?"ed-modal-overlay-visible":""}`,role:"presentation",onClick:e=>{e.target===e.currentTarget&&t()},children:(0,l.jsxs)("div",{className:"ed-modal ed-pro-modal",role:"dialog","aria-modal":"true","aria-label":"Snapester Pro",children:[(0,l.jsx)("button",{className:"ed-modal-close",type:"button","aria-label":"Close",onClick:t,children:(0,l.jsx)(c.default,{size:16})}),(0,l.jsxs)("div",{className:"ed-pro-hero",children:[(0,l.jsxs)("div",{className:"ed-pro-brand",children:[(0,l.jsx)("div",{className:"ed-pro-logo",children:(0,l.jsx)("img",{src:"/snapester-icon.svg",width:"28",height:"28",alt:""})}),(0,l.jsx)("div",{className:"ed-pro-brand-name",children:"Snapester Pro"})]}),(0,l.jsx)("h2",{className:"ed-pro-title",children:d.title}),(0,l.jsx)("p",{className:"ed-pro-subtitle",children:j}),(0,l.jsx)("div",{className:`ed-pro-price-row${E?" ed-pro-price-row--inline":""}`,"aria-label":"Pro pricing",children:E?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"ed-pro-price-group ed-pro-price-group--trial",children:[(0,l.jsxs)("span",{className:"ed-pro-trial-chip",children:[tD.PRO_TRIAL_DAYS,"-day Pro trial"]}),(0,l.jsx)("span",{className:"ed-pro-price ed-pro-price--trial-zero",children:"$0"}),(0,l.jsxs)("span",{className:"ed-pro-price-lifetime",children:["$",R]}),(0,l.jsx)("span",{className:"ed-pro-price-meta ed-pro-price-meta--xs",children:"Lifetime"})]}),(0,l.jsx)("span",{className:"ed-pro-price-dot","aria-hidden":!0,
170children:"·"}),(0,l.jsx)("span",{className:"ed-pro-trial-note ed-pro-trial-note--inline",children:tD.PRO_TRIAL_NO_CARD_LABEL})]}):"number"==typeof k?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("span",{className:"ed-pro-price",children:["$",k]}),(0,l.jsx)("span",{className:"ed-pro-price-meta",children:"Lifetime"}),N&&(0,l.jsxs)("span",{className:"ed-pro-price-was",children:["$",f]})]}):(0,l.jsx)("span",{className:"ed-pro-price-meta",children:"One-time payment • Lifetime access"})})]}),(0,l.jsx)("div",{className:"ed-pro-features",children:tF.PRO_PLAN_FEATURES.filter(e=>!1!==e.showInProModal).map(e=>{let t=e.icon;return(0,l.jsxs)("div",{className:"ed-pro-feature",children:[(0,l.jsx)("div",{className:"ed-pro-feature-icon","aria-hidden":!0,children:(0,l.jsx)(t,{size:16,strokeWidth:1.8})}),(0,l.jsxs)("div",{className:"ed-pro-feature-text",children:[(0,l.jsx)("div",{className:"ed-pro-feature-title",children:e.label}),(0,l.jsx)("div",{className:"ed-pro-feature-desc",children:e.shortDescription})]})]},e.label)})}),(0,l.jsx)("div",{className:"ed-pro-actions",children:i?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(u.default,{href:"/dashboard/billing",target:"_blank",rel:"noopener noreferrer",className:"ed-pro-cta ed-pro-cta-secondary",children:"Subscription Settings"}),(0,l.jsx)("button",{type:"button",className:"ed-pro-cta ed-pro-cta-ghost",onClick:t,children:"Return to Editor"})]}):E?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(u.default,{href:S,target:"_blank",rel:"noopener noreferrer",className:"ed-pro-cta ed-pro-cta-primary",onClick:t,children:C}),M?a?(0,l.jsx)("button",{type:"button",className:"ed-pro-cta ed-pro-cta-lifetime",onClick:()=>{t(),a()},children:"Sign in"}):(0,l.jsx)(u.default,{href:tD.PRO_TRIAL_LOGIN_NEXT,target:"_blank",rel:"noopener noreferrer",className:"ed-pro-cta ed-pro-cta-lifetime",onClick:t,children:"Sign in"}):(0,l.jsx)(u.default,{href:P,target:"_blank",rel:"noopener noreferrer",className:"ed-pro-cta ed-pro-cta-lifetime",onClick:t,children:$})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(u.default,{href:S,target:"_blank",rel:"noopener noreferrer",className:"ed-pro-cta ed-pro-cta-primary",onClick:t,children:C}),!r||n||y?r||n?null:a?(0,l.jsx)("button",{type:"button",className:"ed-pro-cta ed-pro-cta-ghost",onClick:()=>{t(),a()},children:"Sign in"}):(0,l.jsx)(u.default,{href:tD.PRO_TRIAL_LOGIN_NEXT,target:"_blank",rel:"noopener noreferrer",className:"ed-pro-cta ed-pro-cta-ghost",onClick:t,children:"Sign in"}):(0,l.jsx)(u.default,{href:"/dashboard",target:"_blank",rel:"noopener noreferrer",className:"ed-pro-cta ed-pro-cta-ghost",onClick:t,children:"Dashboard"})]})})]})})}var c=c,tA=e.i(52023),tO=e.i(5223);function tH({open:e,onClose:t,returnPath:a}){let[r,i]=o.useState(!1);return(o.useEffect(()=>{if(e){let e=window.setTimeout(()=>i(!0),10);return()=>clearTimeout(e)}i(!1)},[e]),e)?(0,l.jsx)("div",{className:`ed-modal-overlay ${r?"ed-modal-overlay-visible":""}`,role:"presentation",onClick:e=>{e.target===e.currentTarget&&t()},children:(0,l.jsxs)("div",{className:"w-full max-w-[400px] rounded-3xl border border-black/[0.07] bg-white shadow-[0_8px_40px_rgba(0,0,0,0.12)]",role:"dialog","aria-modal":"true","aria-label":"Sign in",onClick:e=>e.stopPropagation(),children:[(0,l.jsxs)("div",{className:"flex items-center justify-between px-6 pt-6",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,l.jsx)(tO.BrandMark,{size:26,variant:"nav",idPrefix:"editor-login"}),(0,l.jsx)("span",{className:"text-sm font-semibold tracking-tight text-ink",children:"Snapester"})]}),(0,l.jsx)("button",{type:"button",className:"rounded-lg p-1.5 text-ink/50 transition-colors hover:bg-black/[0.06] hover:text-ink","aria-label":"Close",onClick:t,children:(0,l.jsx)(c.default,{size:16})})]}),(0,l.jsxs)("div",{className:"px-8 pt-2 pb-7",children:[(0,l.jsx)("h2",{className:"text-[20px] font-semibold tracking-tight text-ink",children:"Sign in"}),(0,l.jsx)("p",{className:"mt-1.5 text-[13px] leading-relaxed text-muted",children:"You need a signed-in account to copy, preview, and download from the editor."}),(0,l.jsxs)("p",{className:"mt-3 rounded-xl border border-black/[0.08] bg-black/[0.03] px-3 py-2.5 text-[12px] leading-relaxed text-ink/85",role:"note",children:[(0,l.jsx)("span",{className:"font-medium text-ink",children:"Your work is saved in this browser."})," When you sign in, you’ll return here with the same design, layers, and styles."]}),(0,l.jsx)("div",{className:"mt-5 h-px bg-black/[0.06]"}),(0,l.jsx)("div",{className:"pt-5",children:(0,l.jsx)(o.Suspense,{fallback:(0,l.jsx)("div",{className:"h-[52px] rounded-2xl border border-black/10 bg-[#fafafa] animate-pulse"}),children:(0,l.jsx)(tA.LoginForm,{defaultNextPath:a,className:"w-full"})})}),(0,l.jsx)("p",{className:"mt-4 text-center text-[11px] leading-relaxed text-muted/70",children:"New to Snapester? Your account is created on first sign-in."})]})]})}):null}var tB=e.i(99397);let t_="preview",tY=[[.1,.12],[.33,.09],[.55,.14],[.78,.1],[.2,.5],[.5,.48],[.8,.52],[.45,.85]];function tX(e,t,a){let r=Math.min(8,tY.length),i=Math.max(9,Math.min(16,Math.round(.02*Math.min(t,a))));e.save(),e.textAlign="center",e.textBaseline="middle",e.font=`600 ${i}px system-ui, -apple-system, Segoe UI, sans-serif`;for(let n=0;n<r;n+=1){let[r,s]=tY[n],l=r*t,o=s*a;e.save(),e.translate(l,o),e.rotate(-.52),e.strokeStyle="rgba(0,0,0,0.35)",e.lineWidth=Math.max(.4,.06*i),e.lineJoin="round",e.fillStyle="rgba(255,255,255,0.38)",e.strokeText(t_,0,0),e.fillText(t_,0,0),e.restore(
170)}e.restore()}async function tV(e,t,a){let r=await createImageBitmap(e),i=document.createElement("canvas");i.width=r.width,i.height=r.height;let n=i.getContext("2d");if(!n)throw Error("No canvas context for preview bake");n.drawImage(r,0,0),r.close(),tX(n,i.width,i.height);let s=Math.max(.6,Math.min(1,a/100));return new Promise(t.includes("jpeg")||"image/jpg"===t?(e,t)=>{i.toBlob(a=>a?e(a):t(Error("toBlob failed")),"image/jpeg",s)}:t.includes("webp")?(e,t)=>{i.toBlob(a=>a?e(a):t(Error("toBlob failed")),"image/webp",s)}:(e,t)=>{i.toBlob(a=>a?e(a):t(Error("toBlob failed")),"image/png")})}var tU=e.i(33766);let tG=(r=0,()=>r++);var tq=e.i(82432);let tK={get url(){return`file://${e.P("codex/node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js")}`}};class tQ{#e=null;#t={};#a={};#r=[];#i=[];loaded=!1;#n=()=>{this.#e&&(this.#e.onmessage=({data:{id:e,type:t,data:a}})=>{switch(t){case tU.FFMessageType.LOAD:this.loaded=!0,this.#t[e](a);break;case tU.FFMessageType.MOUNT:case tU.FFMessageType.UNMOUNT:case tU.FFMessageType.EXEC:case tU.FFMessageType.FFPROBE:case tU.FFMessageType.WRITE_FILE:case tU.FFMessageType.READ_FILE:case tU.FFMessageType.DELETE_FILE:case tU.FFMessageType.RENAME:case tU.FFMessageType.CREATE_DIR:case tU.FFMessageType.LIST_DIR:case tU.FFMessageType.DELETE_DIR:this.#t[e](a);break;case tU.FFMessageType.LOG:this.#r.forEach(e=>e(a));break;case tU.FFMessageType.PROGRESS:this.#i.forEach(e=>e(a));break;case tU.FFMessageType.ERROR:this.#a[e](a)}delete this.#t[e],delete this.#a[e]})};#s=({type:e,data:t},a=[],r)=>this.#e?new Promise((i,n)=>{let s=tG();this.#e&&this.#e.postMessage({id:s,type:e,data:t},a),this.#t[s]=i,this.#a[s]=n,r?.addEventListener("abort",()=>{n(new DOMException(`Message # ${s} was aborted`,"AbortError"))},{once:!0})}):Promise.reject(tq.ERROR_NOT_LOADED);on(e,t){"log"===e?this.#r.push(t):"progress"===e&&this.#i.push(t)}off(e,t){"log"===e?this.#r=this.#r.filter(e=>e!==t):"progress"===e&&(this.#i=this.#i.filter(e=>e!==t))}load=({classWorkerURL:t,...a}={},{signal:r}={})=>(this.#e||(this.#e=t?new Worker(new URL(t,tK.url),{type:"module"}):new Worker(e.r(48533),{type:"module",type:void 0}),this.#n()),this.#s({type:tU.FFMessageType.LOAD,data:a},void 0,r));exec=(e,t=-1,{signal:a}={})=>this.#s({type:tU.FFMessageType.EXEC,data:{args:e,timeout:t}},void 0,a);ffprobe=(e,t=-1,{signal:a}={})=>this.#s({type:tU.FFMessageType.FFPROBE,data:{args:e,timeout:t}},void 0,a);terminate=()=>{for(let e of Object.keys(this.#a))this.#a[e](tq.ERROR_TERMINATED),delete this.#a[e],delete this.#t[e];this.#e&&(this.#e.terminate(),this.#e=null,this.loaded=!1)};writeFile=(e,t,{signal:a}={})=>{let r=[];return t instanceof Uint8Array&&r.push(t.buffer),this.#s({type:tU.FFMessageType.WRITE_FILE,data:{path:e,data:t}},r,a)};mount=(e,t,a)=>this.#s({type:tU.FFMessageType.MOUNT,data:{fsType:e,options:t,mountPoint:a}},[]);unmount=e=>this.#s({type:tU.FFMessageType.UNMOUNT,data:{mountPoint:e}},[]);readFile=(e,t="binary",{signal:a}={})=>this.#s({type:tU.FFMessageType.READ_FILE,data:{path:e,encoding:t}},void 0,a);deleteFile=(e,{signal:t}={})=>this.#s({type:tU.FFMessageType.DELETE_FILE,data:{path:e}},void 0,t);rename=(e,t,{signal:a}={})=>this.#s({type:tU.FFMessageType.RENAME,data:{oldPath:e,newPath:t}},void 0,a);createDir=(e,{signal:t}={})=>this.#s({type:tU.FFMessageType.CREATE_DIR,data:{path:e}},void 0,t);listDir=(e,{signal:t}={})=>this.#s({type:tU.FFMessageType.LIST_DIR,data:{path:e}},void 0,t);deleteDir=(e,{signal:t}={})=>this.#s({type:tU.FFMessageType.DELETE_DIR,data:{path:e}},void 0,t)}(n=s||(s={})).MEMFS="MEMFS",n.NODEFS="NODEFS",n.NODERAWFS="NODERAWFS",n.IDBFS="IDBFS",n.WORKERFS="WORKERFS",n.PROXYFS="PROXYFS";let tJ=Error("failed to get response body reader"),tZ=Error("failed to complete download"),t0=async(e,t)=>{let a,r=await fetch(e);try{let i=parseInt(r.headers.get("Content-Length")||"-1"),n=r.body?.getReader();if(!n)throw tJ;let s=[],l=0;for(;;){let{done:a,value:r}=await n.read(),o=r?r.length:0;if(a){if(-1!=i&&i!==l)throw tZ;t&&t({url:e,total:i,received:l,delta:o,done:a});break}s.push(r),l+=o,t&&t({url:e,total:i,received:l,delta:o,done:a})}let o=new Uint8Array(l),d=0;for(let e of s)o.set(e,d),d+=e.length;a=o.buffer}catch(i){console.log("failed to send download progress event: ",i),a=await r.arrayBuffer(),t&&t({url:e,total:a.byteLength,received:a.byteLength,delta:0,done:!0})}return a},t1=async(e,t,a=!1,r)=>{let i=new Blob([a?await t0(e,r):await (await fetch(e)).arrayBuffer()],{type:t});return URL.createObjectURL(i)},t2="https://unpkg.com/@ffmpeg/[email protected]/dist/umd",t5=[{fps:12,maxDim:1280,duration:8,colors:192},{fps:10,maxDim:1080,duration:7,colors:160},{fps:8,maxDim:960,duration:6,colors:128},{fps:8,maxDim:720,duration:5,colors:128}],t8=[{fps:15,maxDim:1920,duration:10,colors:256},{fps:12,maxDim:1440,duration:8,colors:224},...t5],t4=null;async function t3(e){return t=e,t4||(t4=(async()=>{let e=new tQ;return e.on("progress",({progress:e})=>
170{if(Number.isFinite(e)||e===1/0){let a=Math.max(0,Math.min(1,e));t?.(55+44*a)}}),await e.load({coreURL:await t1(`${t2}/ffmpeg-core.js`,"text/javascript"),wasmURL:await t1(`${t2}/ffmpeg-core.wasm`,"application/wasm")}),e})().catch(e=>{throw t4=null,e})),t4}function t6(e){return e.arrayBuffer().then(e=>new Uint8Array(e))}function t7(e){return"string"==typeof e?new TextEncoder().encode(e):e}async function t9(e,t){let a=await e.exec(t);if(0!==a)throw Error(`Something went wrong: ${a}`)}function ae(e){return new Promise((t,a)=>{let r=new Image;r.crossOrigin="anonymous",r.decoding="async",r.onload=()=>t(r),r.onerror=()=>a(Error("Could not load screenshot for export")),r.src=e})}function at(e,t){let a=Math.min(1,t/Math.max(e.canvasW,e.canvasH));return a>=.999?e:{...e,canvasW:Math.round(e.canvasW*a),canvasH:Math.round(e.canvasH*a),transform:{...e.transform,padding:e.transform.padding*a,radius:e.transform.radius*a},shadow:{...e.shadow,spread:e.shadow.spread*a,blur:e.shadow.blur*a,x:e.shadow.x*a,y:e.shadow.y*a},layers:e.layers.map(e=>({...e,fontSize:e.fontSize?e.fontSize*a:e.fontSize,borderRadius:e.borderRadius?e.borderRadius*a:e.borderRadius,borderWidth:e.borderWidth?e.borderWidth*a:e.borderWidth})),images:(e.images??[]).map(e=>({...e,stackX:e.stackX*a,stackY:e.stackY*a,transform:{...e.transform,padding:e.transform.padding*a,radius:e.transform.radius*a},shadow:{...e.shadow,spread:e.shadow.spread*a,blur:e.shadow.blur*a,x:e.shadow.x*a,y:e.shadow.y*a},imageEdge:{...e.imageEdge,glassWidth:e.imageEdge.glassWidth*a,borderWidth:e.imageEdge.borderWidth*a}}))}}function aa(e,t,a,r,i,n){let s=Math.max(0,Math.min(n,r/2,i/2));"function"==typeof e.roundRect?e.roundRect(t,a,r,i,s):(e.moveTo(t+s,a),e.arcTo(t+r,a,t+r,a+i,s),e.arcTo(t+r,a+i,t,a+i,s),e.arcTo(t,a+i,t,a,s),e.arcTo(t,a,t+r,a,s),e.closePath())}function ar(e,t,a,r,i,n){e.beginPath(),aa(e,t,a,r,i,n)}function ai(e){return`brightness(${1+e.brightness/100}) contrast(${1+e.contrast/100}) saturate(${1+e.saturation/100}) hue-rotate(${e.hue}deg) blur(${e.blur}px) invert(${+!!e.invert})`}function an(e,t,a,r,i){let n=new DOMPoint(t/2,a/2,0,1).matrixTransform(e),s=new DOMPoint(r,i,0,1).matrixTransform(e);return[s.x-n.x,s.y-n.y]}function as(e,t,a){return[an(e,t,a,0,0),an(e,t,a,t,0),an(e,t,a,t,a),an(e,t,a,0,a)]}function al(e,t){if(t.length<4)return;let a=t[0],r=t[1],i=t[2],n=t[3];e.moveTo(a[0],a[1]),e.lineTo(r[0],r[1]),e.lineTo(i[0],i[1]),e.lineTo(n[0],n[1]),e.closePath()}function ao(e,t,a){e.beginPath(),al(e,t),al(e,a)}function ad(e,t,a,r,i,n,s,l,o,d){let[c,p]=i,[u,m]=n,[h,g]=s,[f,x]=l,[b,y]=o,[v,w]=d,j=f*(y-w)+b*(w-x)+v*(x-y);if(1e-10>Math.abs(j))return;let k=(c*(b*w-v*y)+u*(v*x-f*w)+h*(f*y-b*x))/j,N=(p*(b*w-v*y)+m*(v*x-f*w)+g*(f*y-b*x))/j;e.save(),e.beginPath(),e.moveTo(c,p),e.lineTo(u,m),e.lineTo(h,g),e.closePath(),e.clip(),e.transform((c*(y-w)+u*(w-x)+h*(x-y))/j,(p*(y-w)+m*(w-x)+g*(x-y))/j,(c*(v-b)+u*(f-v)+h*(b-f))/j,(p*(v-b)+m*(f-v)+g*(b-f))/j,k,N),e.drawImage(t,0,0,a,r),e.restore()}function ac(e,t,a,r,i){if(4!==i.length)return;let[n,s,l,o]=i,d=[a,0],c=[a,r],p=[0,r];e.imageSmoothingEnabled=!0,"string"==typeof e.imageSmoothingQuality&&(e.imageSmoothingQuality="high"),ad(e,t,a,r,n,s,o,[0,0],d,p),ad(e,t,a,r,s,l,o,d,c,p)}function ap(e,t){let a=e.replace("#",""),r=parseInt(3===a.length?a.split("").map(e=>e+e).join(""):a,16);return`rgba(${r>>16&255}, ${r>>8&255}, ${255&r}, ${t})`}async function au(e,t){.025>Math.abs(e.currentTime-t)||await new Promise(a=>{let r=()=>{e.removeEventListener("seeked",r),a()};e.addEventListener("seeked",r),e.currentTime=t})}function am(e){return Math.min(30,Number.isFinite(e.duration)&&e.duration>0?e.duration:30)}async function ah(e,t){await Promise.allSettled(t.map(t=>e.deleteFile(t)))}async function ag(e,t,a,r,i,n,s,l,o,d){let{canvas:c,ctx:p}=function(e){let t=document.createElement("canvas");t.width=e.canvasW,t.height=e.canvasH;let a=t.getContext("2d");if(!a)throw Error("Could not create export canvas");return{canvas:t,ctx:a}}(t),u=c.captureStream(i),m="video/webm;codecs=vp9",h="video/mp4;codecs=h264",g=MediaRecorder.isTypeSupported(m)?m:MediaRecorder.isTypeSupported(h)?h:"video/webm",f=new MediaRecorder(u,{mimeType:g,videoBitsPerSecond:n}),x=[];f.ondataavailable=e=>{e.data.size>0&&x.push(e.data)};let b=e.paused,y=e.currentTime;await au(e,0),await e.play();let v=performance.now();await new Promise(i=>{let n=0;f.onstop=()=>{cancelAnimationFrame(n),i()},f.start(1e3);let o=()=>{let i;p.clearRect(0,0,t.canvasW,t.canvasH),p.drawImage(e,0,0,t.canvasW,t.canvasH),0!==(i=t.images??[]).length&&(i.forEach((e,r)=>{let i=a[r];if(!i)return;let{drawW:n,drawH:s}=function(e,t){let a=t.imageNatural?.w||0,r=t.imageNatural?.h||0;if(!a||!r||!t.image)return{drawW:0,drawH:0};let i=Math.max(0,e.canvasW-2*t.transform.padding),n=Math.max(0,e.canvasH-2*t.transform.padding),s=a/r,l=i/n,o=t.transform.scale/100;return{drawW:(s>l?i:n*s)*o,drawH:(s>l?i/s:n)*o}}(t,e);if(!n||!s)return;let l=e.transform,o=e.shadow,d=t.canvasW/2+e.stackX+l.panX/100*n,c=t.canvasH/2+e.stackY+l.panY/100*s,u=-n/2,m=-s/2,h=e.imageEdge??ep;if(l.tiltX||l.tiltY){let a=t.canvasW/2+e.stackX,r=t.canvasH/2+e.stackY,d=function(e,t,a){if("u"<typeof DOMMatrix)return new globalThis.DOMMatrix;let r=e/2,i=t/2,n=a.panX/100*e,s=a.panY/100*t,l=a.flipH?-1:1,o=a.flipV?-1:1;return new DOMMatrix(`translate3d(${r}px, ${i}
170px, 0) perspective(1200px) rotateX(${a.tiltX}deg) rotateY(${a.tiltY}deg) translate3d(${n}px, ${s}px, 0) rotate(${a.rotation}deg) scale3d(${l}, ${o}, 1) translate3d(${-r}px, ${-i}px, 0)`)}(n,s,l),c=as(d,n,s);if(p.save(),p.translate(a,r),o.opacity>0){p.save(),p.shadowColor=ap(o.color,o.opacity/100),p.shadowBlur=Math.max(o.spread,o.blur),p.shadowOffsetX=o.x,p.shadowOffsetY=o.y,p.fillStyle="rgba(0,0,0,0.01)";let e=c[0],t=c[1],a=c[2],r=c[3];p.beginPath(),p.moveTo(e[0],e[1]),p.lineTo(t[0],t[1]),p.lineTo(a[0],a[1]),p.lineTo(r[0],r[1]),p.closePath(),p.fill(),p.restore()}let u=Math.max(1,Math.round(n)),m=Math.max(1,Math.round(s)),g=document.createElement("canvas");g.width=u,g.height=m;let f=g.getContext("2d");f.filter=ai(e.filters),ar(f,0,0,u,m,l.radius*(u/n)),f.clip(),f.drawImage(i,0,0,u,m),f.filter="none",ac(p,g,u,m,c),p.filter="none",p.shadowColor="transparent",p.shadowBlur=0,p.shadowOffsetX=0,p.shadowOffsetY=0,function(e,t,a,r,i){if("none"!==i.mode){if("border"===i.mode){let n=Math.max(1,i.borderWidth),s=(i.borderColor??"#ff7a18").replace("#",""),l=parseInt(3===s.length?s.split("").map(e=>e+e).join(""):s,16)||0,o=(i.borderOpacity??100)/100;ao(e,[an(r,t,a,-n,-n),an(r,t,a,t+n,-n),an(r,t,a,t+n,a+n),an(r,t,a,-n,a+n)],[an(r,t,a,0,0),an(r,t,a,t,0),an(r,t,a,t,a),an(r,t,a,0,a)]),e.fillStyle=`rgba(${l>>16&255},${l>>8&255},${255&l},${o})`,e.fill("evenodd");return}if("glass"===i.mode){let n=Math.max(1,Math.round(i.glassWidth)),s=(i.glassOpacity??100)/100,l=Math.min(.35,.18*s+.06),o=((i.glassColor??"#ffffff").trim()||"#ffffff").replace("#",""),d=parseInt(3===o.length?o.split("").map(e=>e+e).join(""):o,16)||0xffffff,c=[an(r,t,a,-n,-n),an(r,t,a,t+n,-n),an(r,t,a,t+n,a+n),an(r,t,a,-n,a+n)],p=[an(r,t,a,0,0),an(r,t,a,t,0),an(r,t,a,t,a),an(r,t,a,0,a)];ao(e,c,p),e.fillStyle=`rgba(${d>>16&255},${d>>8&255},${255&d},${.4*s})`,e.fill("evenodd"),e.beginPath(),al(e,p),e.strokeStyle=`rgba(255,255,255,${l})`,e.lineWidth=1,e.stroke()}}}(p,n,s,d,h),p.restore()}else p.save(),p.translate(d,c),p.rotate(l.rotation*Math.PI/180),p.scale(l.flipH?-1:1,l.flipV?-1:1),p.save(),p.filter=ai(e.filters),p.shadowColor=ap(o.color,o.opacity/100),p.shadowBlur=Math.max(o.spread,o.blur),p.shadowOffsetX=o.x,p.shadowOffsetY=o.y,ar(p,u,m,n,s,l.radius),p.clip(),p.drawImage(i,u,m,n,s),p.restore(),p.filter="none",p.shadowColor="transparent",p.shadowBlur=0,p.shadowOffsetX=0,p.shadowOffsetY=0,function(e,t,a,r,i,n,s){if("none"!==s.mode){if("border"===s.mode){let l=Math.max(1,s.borderWidth),o=r+2*l,d=i+2*l,c=Math.max(0,Math.min(n,r/2,i/2)),p=Math.max(0,Math.min(n+l,o/2,d/2)),u=(s.borderColor??"#ff7a18").replace("#",""),m=parseInt(3===u.length?u.split("").map(e=>e+e).join(""):u,16)||0,h=(s.borderOpacity??100)/100;e.beginPath(),aa(e,t-l,a-l,o,d,p),aa(e,t,a,r,i,c),e.fillStyle=`rgba(${m>>16&255},${m>>8&255},${255&m},${h})`,e.fill("evenodd");return}if("glass"===s.mode){let l=Math.max(1,Math.round(s.glassWidth)),o=(s.glassOpacity??100)/100,d=Math.min(.35,.18*o+.06),c=((s.glassColor??"#ffffff").trim()||"#ffffff").replace("#",""),p=parseInt(3===c.length?c.split("").map(e=>e+e).join(""):c,16)||0xffffff,u=r+2*l,m=i+2*l,h=Math.max(0,Math.min(n,r/2,i/2)),g=Math.max(0,Math.min(n+l,u/2,m/2));e.beginPath(),aa(e,t-l,a-l,u,m,g),aa(e,t,a,r,i,h),e.fillStyle=`rgba(${p>>16&255},${p>>8&255},${255&p},${.4*o})`,e.fill("evenodd"),e.beginPath(),aa(e,t,a,r,i,h),e.strokeStyle=`rgba(255,255,255,${d})`,e.lineWidth=1,e.stroke()}}}(p,u,m,n,s,l.radius,h),p.restore()}),p.filter="none"),function(e,t){for(let a of[...t.layers||[]].filter(e=>!e.isHidden).sort((e,t)=>e.zIndex-t.zIndex)){let r=a.width/100*t.canvasW,i=a.height/100*t.canvasH,n=a.x/100*t.canvasW-r/2,s=a.y/100*t.canvasH-i/2,l=!!(a.tiltX||a.tiltY),o="shape"===a.type&&"arrow"===a.shapeType;if(l&&!o){let t=Math.max(1,Math.round(r)),l=Math.max(1,Math.round(i)),o=document.createElement("canvas");o.width=t,o.height=l;let d=o.getContext("2d");if("shape"===a.type&&"rect"===a.shapeType)ar(d,0,0,t,l,(a.borderRadius??8)*(t/r)),!1!==a.fillEnabled&&(d.fillStyle=a.backgroundColor||a.color||"#ffffff",d.fill()),a.borderWidth&&(d.strokeStyle=a.borderColor||a.color||"#ffffff",d.lineWidth=a.borderWidth*(t/r),d.stroke());else if("shape"===a.type&&"circle"===a.shapeType)d.beginPath(),d.ellipse(t/2,l/2,t/2,l/2,0,0,2*Math.PI),!1!==a.fillEnabled&&(d.fillStyle=a.backgroundColor||a.color||"#ffffff",d.fill()),a.borderWidth&&(d.strokeStyle=a.borderColor||a.color||"#ffffff",d.lineWidth=a.borderWidth*(t/r),d.stroke());else if("text"===a.type){let e=(a.fontSize||32)*(t/r),i=a.textAlign||"center";d.font=`${a.fontWeight||600} ${e}px ${a.fontFamily||"Poppins, sans-serif"}`,d.textBaseline="middle",d.fillStyle=a.color||"#f0f0fa";let n="left"===i?8:"right"===i?t-8:t/2;d.textAlign="justify"===i?"left":i,d.fillText(a.text||"",n,l/2,t-16)}else if("emoji"===a.type){let e=(a.fontSize||56)*(t/r);d.font=`${e}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "EmojiSymbol
170s", "Android Emoji", sans-serif`,d.textAlign="center",d.textBaseline="middle",d.fillText(a.emoji||"😀",t/2,l/2)}else if("blur"===a.type){let e=(a.borderRadius??8)*(t/r);d.save(),d.beginPath(),"function"==typeof d.roundRect?d.roundRect(0,0,t,l,e):d.rect(0,0,t,l),d.clip(),d.fillStyle="rgba(200,210,230,0.45)",d.fill(),d.strokeStyle="rgba(255,255,255,0.25)",d.lineWidth=1,d.stroke(),d.restore()}else"shape"===a.type&&"arrow"===a.shapeType&&e$(d,a,0,0,t,l);let c=as(function(e,t,a){if("u"<typeof DOMMatrix)return new globalThis.DOMMatrix;let r=e/2,i=t/2;return new DOMMatrix(`translate3d(${r}px, ${i}px, 0) perspective(1200px) rotateX(${a.tiltX||0}deg) rotateY(${a.tiltY||0}deg) rotate(${a.rotation||0}deg) translate3d(${-r}px, ${-i}px, 0)`)}(r,i,a),r,i);e.save(),e.globalAlpha=(a.opacity??100)/100,e.translate(n+r/2,s+i/2),ac(e,o,t,l,c),e.restore()}else{if(e.save(),e.globalAlpha=(a.opacity??100)/100,e.translate(n+r/2,s+i/2),e.rotate((a.rotation||0)*Math.PI/180),e.translate(-(n+r/2),-(s+i/2)),"shape"===a.type&&"rect"===a.shapeType)ar(e,n,s,r,i,a.borderRadius??8),!1!==a.fillEnabled&&(e.fillStyle=a.backgroundColor||a.color||"#ffffff",e.fill()),a.borderWidth&&(e.strokeStyle=a.borderColor||a.color||"#ffffff",e.lineWidth=a.borderWidth,e.stroke());else if("shape"===a.type&&"circle"===a.shapeType)e.beginPath(),e.ellipse(n+r/2,s+i/2,r/2,i/2,0,0,2*Math.PI),!1!==a.fillEnabled&&(e.fillStyle=a.backgroundColor||a.color||"#ffffff",e.fill()),a.borderWidth&&(e.strokeStyle=a.borderColor||a.color||"#ffffff",e.lineWidth=a.borderWidth,e.stroke());else if("text"===a.type){let t=a.text||"Type something...",l=a.textAlign||"center";e.font=`${a.fontWeight||600} ${a.fontSize||32}px ${a.fontFamily||"Poppins, sans-serif"}`;let o="left"===a.textAlign?n+8:"right"===a.textAlign?n+r-8:n+r/2,d=(a.textShadowOpacity??0)/100;d>0&&(e.shadowColor=ap(a.textShadowColor||"#000000",d),e.shadowBlur=a.textShadowBlur??0,e.shadowOffsetX=a.textShadowX??0,e.shadowOffsetY=a.textShadowY??0),e.textBaseline="middle",e.fillStyle=a.color??"#f0f0fa","justify"===l?(e.textAlign="left",e.fillText(t,n+8,s+i/2,r-16)):(e.textAlign=l,e.fillText(t,o,s+i/2,r-16)),e.shadowColor="transparent",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0;let c=a.textStrokeWidth??0;c>0&&(e.lineJoin="round",e.miterLimit=2,e.lineWidth=c,e.strokeStyle=a.textStrokeColor||"#000000","justify"===l?(e.textAlign="left",e.strokeText(t,n+8,s+i/2,r-16)):(e.textAlign=l,e.strokeText(t,o,s+i/2,r-16)))}else if("emoji"===a.type){let t=a.emoji||"😀",l=Math.max(8,a.fontSize||56);e.font=`${l}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "EmojiSymbols", "Android Emoji", sans-serif`,e.textAlign="center",e.textBaseline="middle",e.fillText(t,n+r/2,s+i/2)}else if("blur"===a.type){let t=a.blurRadius||20,l=a.borderRadius??8,o=document.createElement("canvas");o.width=e.canvas.width,o.height=e.canvas.height,o.getContext("2d").drawImage(e.canvas,0,0),e.save(),e.beginPath(),aa(e,n,s,r,i,l),e.clip(),e.filter=`blur(${t}px)`,e.drawImage(o,0,0),e.filter="none",e.fillStyle="rgba(255,255,255,0.08)",e.fill(),e.restore()}else"shape"===a.type&&"arrow"===a.shapeType&&e$(e,a,n,s,r,i);e.restore()}}}(p,t),function(e,t,a){if(!t.watermarkEnabled)return;let r=Math.max(1.1,Math.min(2.6,Math.min(t.canvasW,t.canvasH)/900)),i="Made with",n="Snapester",s=16*r,l=9*r,o=13*r,d=18*r;e.save(),e.textBaseline="middle",e.font=`500 ${o}px Poppins, system-ui, -apple-system, sans-serif`;let c=e.measureText(i),p=c.width,u=null!=c.actualBoundingBoxAscent&&null!=c.actualBoundingBoxDescent?c.actualBoundingBoxAscent+c.actualBoundingBoxDescent:1.25*o;e.font=`700 ${d}px Poppins, system-ui, -apple-system, sans-serif`;let m=e.measureText(n),h=m.width,g=null!=m.actualBoundingBoxAscent&&null!=m.actualBoundingBoxDescent?m.actualBoundingBoxAscent+m.actualBoundingBoxDescent:1.25*d,f=Math.ceil(5*r),x=2*s+p+l+h+2*f,b=11*r*2+Math.max(u,g)+2*r,y=t.canvasW-x-20*r,v=t.canvasH-b-20*r;e.shadowColor="rgba(0,0,0,0.18)",e.shadowBlur=26*r,e.shadowOffsetY=12*r,ar(e,y,v,x,b,b/2);let w=e.createLinearGradient(y,v,y,v+b);w.addColorStop(0,"rgba(255, 255, 255, 0.76)"),w.addColorStop(1,"rgba(255, 255, 255, 0.62)"),e.fillStyle=w,e.fill(),e.shadowColor="transparent",e.strokeStyle="rgba(255, 255, 255, 0.66)",e.lineWidth=Math.max(1,+r),e.stroke();let j=v+b/2,k=y+s+f;e.fillStyle="rgba(0, 0, 0, 0.60)",e.font=`500 ${o}px Poppins, system-ui, -apple-system, sans-serif`,e.fillText(i,k,j),k+=p+l,e.fillStyle="rgba(0, 0, 0, 0.84)",e.font=`700 ${d}px Poppins, system-ui, -apple-system, sans-serif`,e.fillText(n,k,j),e.restore(
170)}(p,t,0),d&&tX(p,t.canvasW,t.canvasH);let c=(performance.now()-v)/1e3;(s(Math.min(l,c/r*l)),c>=r||e.ended)?f.stop():n=requestAnimationFrame(o)};o()}),u.getTracks().forEach(e=>e.stop()),await au(e,y).catch(()=>void 0),b?e.pause():e.play();let w=new Blob(x,{type:g});if(0===w.size)throw Error("Video recording failed. Please try again.");return{blob:w,extension:g.includes("mp4")?"mp4":"webm"}}async function af(e,t,a,r){let i=t.images??[];if(0===i.length)throw Error("Please add an image first");let n=await Promise.all(i.map(e=>ae(e.image.src))),s=await t3(r),l=am(e),o=null,d=!0===a.bakeFreePreviewWatermark,c=a.targetRes||"gif_720",p=t5,u=1024*(t.exportGifMaxMB||15)*1024;"gif_1080"===c&&(p=t8);for(let i=0;i<p.length;i+=1){let m=p[i],h=at(t,m.maxDim),g=Math.min(l,m.duration),f=`gif-input-${c}.webm`,x=`palette-${c}.png`,b=`output-${c}.gif`;await ah(s,[f,x,b]);let y=await ag(e,h,n,g,m.fps,8e6,r,45,a.userIsPro??!1,d);await s.writeFile(f,await t6(y.blob)),await t9(s,["-i",f,"-vf",`fps=${m.fps},scale=${h.canvasW}:${h.canvasH}:flags=lanczos,palettegen=max_colors=${m.colors}`,x]),await t9(s,["-i",f,"-i",x,"-lavfi",`fps=${m.fps},scale=${h.canvasW}:${h.canvasH}:flags=lanczos[x];[x][1:v]paletteuse=dither=sierra2_4a`,b]);let v=t7(await s.readFile(b));if(o=v,v.byteLength<=u||i===p.length-1)return r(100),new Blob([v],{type:"image/gif"});r(90+Math.min(8,(i+1)*2))}if(o)return r(100),new Blob([o],{type:"image/gif"});throw Error("GIF export failed.")}let ax={video_720:{maxDim:1280,bitrate:6e6},video_1080:{maxDim:1920,bitrate:12e6},video_2k:{maxDim:2560,bitrate:24e6}};async function ab(e,t,a,r){let i=t.images??[];if(0===i.length)throw Error("Please add an image first");let n=await Promise.all(i.map(e=>ae(e.image.src))),s=!0===a.bakeFreePreviewWatermark,l=ax[a.targetRes||"video_720"]||ax.video_720,o=at(t,l.maxDim),d=am(e),c=await ag(e,o,n,d,30,l.bitrate,r,65,a.userIsPro??!1,s),p=await t3(r),u="mp4"===c.extension?"input.mp4":"input.webm";await Promise.allSettled(["input.webm","input.mp4","output.webm"].map(e=>p.deleteFile(e))),await p.writeFile(u,await t6(c.blob));try{await t9(p,["-i",u,"-c:v","libvpx-vp9","-crf","18","-b:v","0","-an","output.webm"]);let e=t7(await p.readFile("output.webm"));return r(100),{blob:new Blob([e],{type:"video/webm"}),extension:"webm"}}catch(e){return console.warn("[editor] ffmpeg video optimize failed, downloading recorder output",e),r(100),c}}var ay=e.i(7376);let av=(i=0,()=>(i+=1,`u${`0000${(1679616*Math.random()|0).toString(36)}`.slice(-4)}${i}`));function aw(e){let t=[];for(let a=0,r=e.length;a<r;a++)t.push(e[a]);return t}let aj=null;function ak(e={}){return aj||(aj=e.includeStyleProperties?e.includeStyleProperties:aw(window.getComputedStyle(document.documentElement)))}function aN(e,t){let a=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return a?parseFloat(a.replace("px","")):0}function aS(e,t={}){let a,r,i,n;return{width:t.width||(a=aN(e,"border-left-width"),r=aN(e,"border-right-width"),e.clientWidth+a+r),height:t.height||(i=aN(e,"border-top-width"),n=aN(e,"border-bottom-width"),e.clientHeight+i+n)}}function aC(e){return new Promise((t,a)=>{let r=new Image;r.onload=()=>{r.decode().then(()=>{requestAnimationFrame(()=>t(r))})},r.onerror=a,r.crossOrigin="anonymous",r.decoding="async",r.src=e})}async function aE(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}async function aM(e,t,a){let r="http://www.w3.org/2000/svg",i=document.createElementNS(r,"svg"),n=document.createElementNS(r,"foreignObject");return i.setAttribute("width",`${t}`),i.setAttribute("height",`${a}`),i.setAttribute("viewBox",`0 0 ${t} ${a}`),n.setAttribute("width","100%"),n.setAttribute("height","100%"),n.setAttribute("x","0"),n.setAttribute("y","0"),n.setAttribute("externalResourcesRequired","true"),i.appendChild(n),n.appendChild(e),aE(i)}let aP=(e,t)=>{if(e instanceof t)return!0;let a=Object.getPrototypeOf(e);return null!==a&&(a.constructor.name===t.name||aP(a,t))};function a$(e,t,a,r){let i,n,s,l=window.getComputedStyle(e,a),o=l.getPropertyValue("content");
170if(""===o||"none"===o)return;let d=av();try{t.className=`${t.className} ${d}`}catch(e){return}let c=document.createElement("style");c.appendChild((i=`.${d}:${a}`,s=l.cssText?(n=l.getPropertyValue("content"),`${l.cssText} content: '${n.replace(/'|"/g,"")}';`):ak(r).map(e=>{let t=l.getPropertyValue(e),a=l.getPropertyPriority(e);return`${e}: ${t}${a?" !important":""};`}).join(" "),document.createTextNode(`${i}{${s}}`))),t.appendChild(c)}let aI="application/font-woff",aR="image/jpeg",aT={woff:aI,woff2:aI,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:aR,jpeg:aR,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function aL(e){let t;return aT[((t=/\.([^./]*?)$/g.exec(e))?t[1]:"").toLowerCase()]||""}function aF(e){return -1!==e.search(/^(data:)/)}function aD(e,t){return`data:${t};base64,${e}`}async function az(e,t,a){let r=await fetch(e,t);if(404===r.status)throw Error(`Resource "${r.url}" not found`);let i=await r.blob();return new Promise((e,t)=>{let n=new FileReader;n.onerror=t,n.onloadend=()=>{try{e(a({res:r,result:n.result}))}catch(e){t(e)}},n.readAsDataURL(i)})}let aW={};async function aA(e,t,a){var r,i,n;let s,l,o=(r=e,i=t,n=a.includeQueryParams,l=r.replace(/\?.*/,""),n&&(l=r),/ttf|otf|eot|woff2?/i.test(l)&&(l=l.replace(/.*\//,"")),i?`[${i}]${l}`:l);if(null!=aW[o])return aW[o];a.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());try{let r=await az(e,a.fetchRequestInit,({res:e,result:a})=>(t||(t=e.headers.get("Content-Type")||""),a.split(/,/)[1]));s=aD(r,t)}catch(r){s=a.imagePlaceholder||"";let t=`Failed to fetch resource: ${e}`;r&&(t="string"==typeof r?r:r.message),t&&console.warn(t)}return aW[o]=s,s}async function aO(e){let t=e.toDataURL();return"data:,"===t?e.cloneNode(!1):aC(t)}async function aH(e,t){if(e.currentSrc){let t=document.createElement("canvas"),a=t.getContext("2d");return t.width=e.clientWidth,t.height=e.clientHeight,null==a||a.drawImage(e,0,0,t.width,t.height),aC(t.toDataURL())}let a=e.poster,r=aL(a);return aC(await aA(a,r,t))}async function aB(e,t){var a;try{if(null==(a=null==e?void 0:e.contentDocument)?void 0:a.body)return await aU(e.contentDocument.body,t,!0)}catch(e){}return e.cloneNode(!1)}async function a_(e,t){return aP(e,HTMLCanvasElement)?aO(e):aP(e,HTMLVideoElement)?aH(e,t):aP(e,HTMLIFrameElement)?aB(e,t):e.cloneNode(aY(e))}let aY=e=>null!=e.tagName&&"SVG"===e.tagName.toUpperCase();async function aX(e,t,a){var r,i;if(aY(t))return t;let n=[];return 0===(n=null!=e.tagName&&"SLOT"===e.tagName.toUpperCase()&&e.assignedNodes?aw(e.assignedNodes()):aP(e,HTMLIFrameElement)&&(null==(r=e.contentDocument)?void 0:r.body)?aw(e.contentDocument.body.childNodes):aw((null!=(i=e.shadowRoot)?i:e).childNodes)).length||aP(e,HTMLVideoElement)||await n.reduce((e,r)=>e.then(()=>aU(r,a)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}async function aV(e,t){let a=e.querySelectorAll?e.querySelectorAll("use"):[];if(0===a.length)return e;let r={};for(let i=0;i<a.length;i++){let n=a[i].getAttribute("xlink:href");if(n){let a=e.querySelector(n),i=document.querySelector(n);a||!i||r[n]||(r[n]=await aU(i,t,!0))}}let i=Object.values(r);if(i.length){let t="http://www.w3.org/1999/xhtml",a=document.createElementNS(t,"svg");a.setAttribute("xmlns",t),a.style.position="absolute",a.style.width="0",a.style.height="0",a.style.overflow="hidden",a.style.display="none";let r=document.createElementNS(t,"defs");a.appendChild(r);for(let e=0;e<i.length;e++)r.appendChild(i[e]);e.appendChild(a)}return e}async function aU(e,t,a){return a||!t.filter||t.filter(e)?Promise.resolve(e).then(e=>a_(e,t)).then(a=>aX(e,a,t)).then(a=>(function(e,t,a){if(aP(t,Element)&&(!function(e,t,a){let r=t.style;if(!r)return;let i=window.getComputedStyle(e);i.cssText?(r.cssText=i.cssText,r.transformOrigin=i.transformOrigin):ak(a).forEach(a=>{let n=i.getPropertyValue(a);if("font-size"===a&&n.endsWith("px")){let e=Math.floor(parseFloat(n.substring(0,n.length-2)))-.1;n=`${e}px`}aP(e,HTMLIFrameElement)&&"display"===a&&"inline"===n&&(n="block"),"d"===a&&t.getAttribute("d")&&(n=`path(${t.getAttribute("d")}
170)`),r.setProperty(a,n,i.getPropertyPriority(a))})}(e,t,a),a$(e,t,":before",a),a$(e,t,":after",a),aP(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),aP(e,HTMLInputElement)&&t.setAttribute("value",e.value),aP(e,HTMLSelectElement))){let a=Array.from(t.children).find(t=>e.value===t.getAttribute("value"));a&&a.setAttribute("selected","")}return t})(e,a,t)).then(e=>aV(e,t)):null}let aG=/url\((['"]?)([^'"]+?)\1\)/g,aq=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,aK=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;async function aQ(e,t,a,r,i){try{let n,s,l=a?function(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;let a=document.implementation.createHTMLDocument(),r=a.createElement("base"),i=a.createElement("a");return a.head.appendChild(r),a.body.appendChild(i),t&&(r.href=t),i.href=e,i.href}(t,a):t,o=aL(t);if(i){let e=await i(l);n=aD(e,o)}else n=await aA(l,o,r);return e.replace((s=t.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1"),RegExp(`(url\\(['"]?)(${s})(['"]?\\))`,"g")),`$1${n}$3`)}catch(e){}return e}function aJ(e){return -1!==e.search(aG)}async function aZ(e,t,a){let r;if(!aJ(e))return e;let i=function(e,{preferredFontFormat:t}){return t?e.replace(aK,e=>{for(;;){let[a,,r]=aq.exec(e)||[];if(!r)return"";if(r===t)return`src: ${a};`}}):e}(e,a);return(r=[],i.replace(aG,(e,t,a)=>(r.push(a),e)),r.filter(e=>!aF(e))).reduce((e,r)=>e.then(e=>aQ(e,r,t,a)),Promise.resolve(i))}async function a0(e,t,a){var r;let i=null==(r=t.style)?void 0:r.getPropertyValue(e);if(i){let r=await aZ(i,null,a);return t.style.setProperty(e,r,t.style.getPropertyPriority(e)),!0}return!1}async function a1(e,t){await a0("background",e,t)||await a0("background-image",e,t),await a0("mask",e,t)||await a0("-webkit-mask",e,t)||await a0("mask-image",e,t)||await a0("-webkit-mask-image",e,t)}async function a2(e,t){let a=aP(e,HTMLImageElement);if(!(a&&!aF(e.src))&&!(aP(e,SVGImageElement)&&!aF(e.href.baseVal)))return;let r=a?e.src:e.href.baseVal,i=await aA(r,aL(r),t);await new Promise((r,n)=>{e.onload=r,e.onerror=t.onImageErrorHandler?(...e)=>{try{r(t.onImageErrorHandler(...e))}catch(e){n(e)}}:n,e.decode&&(e.decode=r),"lazy"===e.loading&&(e.loading="eager"),a?(e.srcset="",e.src=i):e.href.baseVal=i})}async function a5(e,t){let a=aw(e.childNodes).map(e=>a8(e,t));await Promise.all(a).then(()=>e)}async function a8(e,t){aP(e,Element)&&(await a1(e,t),await a2(e,t),await a5(e,t))}let a4={};async function a3(e){let t=a4[e];if(null!=t)return t;let a=await fetch(e);return t={url:e,cssText:await a.text()},a4[e]=t,t}async function a6(e,t){let a=e.cssText,r=/url\(["']?([^"')]+)["']?\)/g;return Promise.all((a.match(/url\([^)]+\)/g)||[]).map(async i=>{let n=i.replace(r,"$1");return n.startsWith("https://")||(n=new URL(n,e.url).href),az(n,t.fetchRequestInit,({result:e})=>(a=a.replace(i,`url(${e})`),[i,e]))})).then(()=>a)}function a7(e){if(null==e)return[];let t=[],a=e.replace(/(\/\*[\s\S]*?\*\/)/gi,""),r=RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)}
170)","gi");for(;;){let e=r.exec(a);if(null===e)break;t.push(e[0])}a=a.replace(r,"");let i=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,n=RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})","gi");for(;;){let e=i.exec(a);if(null===e){if(null===(e=n.exec(a)))break;i.lastIndex=n.lastIndex}else n.lastIndex=i.lastIndex;t.push(e[0])}return t}async function a9(e,t){let a=[],r=[];return e.forEach(a=>{if("cssRules"in a)try{aw(a.cssRules||[]).forEach((e,i)=>{if(e.type===CSSRule.IMPORT_RULE){let n=i+1,s=e.href,l=a3(s).then(e=>a6(e,t)).then(e=>a7(e).forEach(e=>{try{a.insertRule(e,e.startsWith("@import")?n+=1:a.cssRules.length)}catch(t){console.error("Error inserting rule from remote css",{rule:e,error:t})}})).catch(e=>{console.error("Error loading remote css",e.toString())});r.push(l)}})}catch(n){let i=e.find(e=>null==e.href)||document.styleSheets[0];null!=a.href&&r.push(a3(a.href).then(e=>a6(e,t)).then(e=>a7(e).forEach(e=>{i.insertRule(e,i.cssRules.length)})).catch(e=>{console.error("Error loading remote stylesheet",e)})),console.error("Error inlining remote css file",n)}}),Promise.all(r).then(()=>(e.forEach(e=>{if("cssRules"in e)try{aw(e.cssRules||[]).forEach(e=>{a.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),a))}async function re(e,t){if(null==e.ownerDocument)throw Error("Provided element is not within a Document");let a=aw(e.ownerDocument.styleSheets);return(await a9(a,t)).filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>aJ(e.style.getPropertyValue("src")))}function rt(e){return e.trim().replace(/["']/g,"")}async function ra(e,t){let a,r=await re(e,t),i=(a=new Set,!function e(t){(t.style.fontFamily||getComputedStyle(t).fontFamily).split(",").forEach(e=>{a.add(rt(e))}),Array.from(t.children).forEach(t=>{t instanceof HTMLElement&&e(t)}
170)}(e),a);return(await Promise.all(r.filter(e=>i.has(rt(e.style.fontFamily))).map(e=>{let a=e.parentStyleSheet?e.parentStyleSheet.href:null;return aZ(e.cssText,a,t)}))).join("\n")}async function rr(e,t){let a=null!=t.fontEmbedCSS?t.fontEmbedCSS:t.skipFonts?null:await ra(e,t);if(a){let t=document.createElement("style"),r=document.createTextNode(a);t.appendChild(r),e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t)}}async function ri(e,t={}){let{width:a,height:r}=aS(e,t),i=await aU(e,t,!0);return await rr(i,t),await a8(i,t),!function(e,t){let{style:a}=e;t.backgroundColor&&(a.backgroundColor=t.backgroundColor),t.width&&(a.width=`${t.width}px`),t.height&&(a.height=`${t.height}px`);let r=t.style;null!=r&&Object.keys(r).forEach(e=>{a[e]=r[e]})}(i,t),await aM(i,a,r)}async function rn(e,t={}){let{width:a,height:r}=aS(e,t),i=await ri(e,t),n=await aC(i),s=document.createElement("canvas"),l=s.getContext("2d"),o=t.pixelRatio||function(){let e,t;try{t=ay.default}catch(e){}let a=t&&t.env?t.env.devicePixelRatio:null;return a&&Number.isNaN(e=parseInt(a,10))&&(e=1),e||window.devicePixelRatio||1}(),d=t.canvasWidth||a,c=t.canvasHeight||r;return s.width=d*o,s.height=c*o,!t.skipAutoScale&&(s.width>16384||s.height>16384)&&(s.width>16384&&s.height>16384?s.width>s.height?(s.height*=16384/s.width,s.width=16384):(s.width*=16384/s.height,s.height=16384):s.width>16384?(s.height*=16384/s.width,s.width=16384):(s.width*=16384/s.height,s.height=16384)),s.style.width=`${d}`,s.style.height=`${c}`,t.backgroundColor&&(l.fillStyle=t.backgroundColor,l.fillRect(0,0,s.width,s.height)),l.drawImage(n,0,0,s.width,s.height),s}async function rs(e,t={}){return(await rn(e,t)).toDataURL()}async function rl(e,t={}){return(await rn(e,t)).toDataURL("image/jpeg",t.quality||1)}async function ro(e,t,a){let r=document.getElementById("canvas-zoom-wrap");r&&(r.style.transform="scale(1)"),e.setAttribute("data-capturing","true"),await new Promise(e=>{let t=0,a=()=>{++t>=2?e():requestAnimationFrame(a)};requestAnimationFrame(a)});try{let e=window.getSelection();e&&e.rangeCount&&e.removeAllRanges()}catch{}try{let t=document.activeElement;t instanceof HTMLElement&&e.contains(t)&&t.blur()}catch{}let i=e.querySelector("#bg-layer"),n=i?.getAttribute("style");if(i){var s;let e=getComputedStyle(i);for(let t of["background-color","background-image","background-size","background-position","background-repeat","background-blend-mode"])i.style.setProperty(t,e.getPropertyValue(t));let t=i.style.getPropertyValue("background-image")||e.getPropertyValue("background-image");await (0===(s=function(e){let t;if(!e||"none"===e)return[];let a=[],r=/url\((['"]?)([^'"]+?)\1\)/g;for(;null!==(t=r.exec(e));){let e=t[2];e&&!e.startsWith("data:")&&a.push(e)}return a}(t)).length?Promise.resolve():Promise.all(s.map(e=>new Promise(t=>{let a=e.startsWith("data:")||e.startsWith("/")||e.startsWith("http")?e:new URL(e,document.baseURI).href,r=new Image;a.startsWith("data:")||(r.crossOrigin="anonymous");let i=()=>t();r.onload=()=>{r.decode?r.decode().then(i).catch(i):i()},r.onerror=i,r.src=a}))).then(()=>void 0))}let l=Array.from(e.querySelectorAll("video")),o=[];for(let e of l)try{let t=document.createElement("canvas");t.width=e.videoWidth||e.clientWidth||1920,t.height=e.videoHeight||e.clientHeight||1080;let a=t.getContext("2d");if(a){a.drawImage(e,0,0,t.width,t.height);let r=document.createElement("img");r.src=t.toDataURL("image/png"),r.style.cssText=e.style.cssText,r.className=e.className,r.style.visibility="visible",e.parentElement?.insertBefore(r,e),e.style.visibility="hidden",o.push({v:e,img:r})}}catch(e){console.warn("[capture] failed to snapshot video frame",e)}try{return await a()}finally{for(let{v:e,img:t}of(i&&(null==n?i.removeAttribute("style"):i.setAttribute("style",n)),o))e.style.visibility="visible",t.remove();e.removeAttribute("data-capturing"),r&&(r.style.transform=t)}}async function rd(e,t,a){return ro(e,a,async()=>{let a,r=(a=Math.max(1,Math.min(3,t.exportScale)),{width:t.canvasW,height:t.canvasH,pixelRatio:a,cacheBust:!0,includeQueryParams:!0,skipFonts:!1,skipAutoScale:!0,fetchRequestInit:{mode:"cors",credentials:"omit"},onImageErrorHandler:e=>console.error("[capture] img err",e)});if("jpg"===t.exportFormat)return rl(e,{...r,quality:t.exportQuality/100});if("webp"===t.exportFormat){let a=await rn(e,r),i=t.exportQuality/100,n=a.toDataURL("image/webp",i);return n.startsWith("data:image/webp")?n:a.toDataURL("image/png")}return rs(e,{...r,quality:1})})}let rc="snapester-editor-guest-v1";function rp(e){return ev({...e,isExporting:!1,exportProgress:0})}function ru(e){var t;let a,r;return JSON.stringify({v:2,h:(a=(t={past:e.past.map(rp),present:rp(e.present),future:e.future.map(rp)}).past.length>40?t.past.slice(t.past.length-40):t.past,r=t.future.length>40?t.future.slice(0,40):t.future,{past:a,present:t.present,future:r})})}function rm(e){let t=ru(e);try{if(t.length>45e5){let t=ru({past:[],present:rp(e.present),future:[]}
170);if(t.length>45e5)return void console.warn("[guest-persist] draft still too large; skipped");localStorage.setItem(rc,t);return}localStorage.setItem(rc,t)}catch(t){try{let t=ru({past:[],present:rp(e.present),future:[]});localStorage.setItem(rc,t)}catch{console.warn("[guest-persist] save failed",t)}}}function rh(){try{localStorage.removeItem(rc)}catch{}}async function rg(e){return new Promise((t,a)=>{let r=new FileReader;r.onerror=()=>a(Error("File read failed")),r.onload=()=>t(String(r.result)),r.readAsDataURL(e)})}function rf(e){return"video"===e.background.type&&("gif"===e.exportOutputKind||"video"===e.exportOutputKind)}function rx(e){if(!e.value)return e.type;if("solid"===e.type)return`solid:${e.value}`;if("transparent"===e.type)return"transparent";if("video"===e.type)try{let t=new URL(e.value);return`video:${t.pathname.split("/").pop()??"unknown"}`}catch{return"video:unknown"}if("image-url"===e.type)try{let t=new URL(e.value),a=t.pathname.split("/").pop();return`img:${t.hostname}${a?`:${a}`:""}`}catch{return"img:custom"}let t=e.value.trim().slice(0,64).replace(/\s+/g," ");return`${e.type}:${t}`}function rb(e){let t={},a=e.transform;(a.radius??0)>0&&(t.rounded=a.radius),(a.padding??0)>0&&(t.padding=a.padding),((a.tiltX??0)!==0||(a.tiltY??0)!==0)&&(t.tilt={x:a.tiltX,y:a.tiltY}),0!==a.rotation&&(t.rotation=a.rotation),(a.flipH||a.flipV)&&(t.flip={h:a.flipH,v:a.flipV});let r=e.shadow;r.opacity>0&&(r.spread>0||r.blur>0)&&(t.shadow={opacity:r.opacity,spread:r.spread,blur:r.blur});let i=e.imageEdge;return"glass"===i.mode&&(t.glass=!0),"border"===i.mode&&(t.border=!0),e.watermarkEnabled&&(t.watermark=!0),t}function ry(){let e=o.useRef(null),t=o.useRef(null),a=o.useRef(null),r=o.useRef(!0),[i,n]=o.useState(!1),[s,u]=o.useState(null),[m,h]=o.useState(!1),[g,f]=o.useState(null),[x,b]=o.useState(!1),[y,v]=o.useState(!1),[w,j]=o.useState(!1),[k,N]=o.useState(null),[S,C]=o.useState(!1),[E,M]=o.useState(!1),[P,$]=o.useState(0),I=(0,d.usePathname)(),{profile:R,isPro:T,isLoading:L,refetch:F}=tL(),D=!!R&&!(0,tT.profileHasUnlimitedExports)(R)&&(R.exportsLimit??0)>0&&(R.exportsUsed??0)>=(R.exportsLimit??0),z=R&&!(0,tT.profileHasUnlimitedExports)(R)&&(R.exportsLimit??0)>0?{used:R.exportsUsed,limit:R.exportsLimit}:null,A=R&&(0,tT.isProTrialActive)(R.proTrialEndsAt)&&R.proTrialEndsAt?new Date(R.proTrialEndsAt).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}):null,O=!L&&!!R&&(0,tT.shouldShowProTrialPromo)(R),H=ey(e=>e.present),B=ey(e=>e.loadNewScreenshot),_=ey(e=>e.addScreenshot),Y=ey(e=>e.setImageNaturalFor),X=ey(e=>e.setActiveImage),V=ey(e=>e.setTransform),Q=ey(e=>e.setShadow),ei=ey(e=>e.setImageEdge),en=ey(e=>e.setAspectRatio),es=ey(e=>
170e.setCanvasDims),el=ey(e=>e.setZoom),eo=ey(e=>e.setRightTab),ed=ey(e=>e.setExportFormat),ec=ey(e=>e.setExportQuality),ep=ey(e=>e.setExportScale),eu=ey(e=>e.setWatermarkEnabled),em=ey(e=>e.setActiveLayer),eh=ey(e=>e.setExporting),eg=ey(e=>e.setExportProgress),ef=ey(e=>e.undo),ex=ey(e=>e.redo),eb=ey(e=>e.canUndo()),ej=ey(e=>e.canRedo()),eN=ey(e=>e.reset),eS=o.useRef(!1);o.useEffect(()=>{L||!T||eS.current||(eu(!1),eS.current=!0),L||T||(eS.current=!1)},[L,T,eu]);let eC=!L&&!R,eE=o.useRef(eC);o.useEffect(()=>{eE.current=eC},[eC]);let eM=o.useRef(!1),eP=o.useRef(!1),e$=o.useRef(!1),eI=o.useRef(!1),eR=o.useRef(!1),eT=o.useRef(R);o.useEffect(()=>{eT.current=R},[R]);let eL=o.useCallback(()=>{eT.current&&(eI.current=!0,eP.current=!1,rh())},[]);function eF(){return!L&&!!eM.current&&(!R||!eI.current&&eP.current)}o.useEffect(()=>{!L&&(R||(eR.current=!0))},[L,R]),o.useEffect(()=>{if(L||!R||!eR.current)return;eR.current=!1;let e=ey.getState();rm({past:e.past,present:e.present,future:e.future}),eP.current=!0},[L,R]),o.useLayoutEffect(()=>{if(eM.current=!1,L)return;let e=!1;try{e=new URLSearchParams(window.location.search).has("captureKey")}catch{}if(e){e$.current=!0,eI.current=!1,eM.current=!0;return}if(e$.current){eM.current=!0;return}let t=function(){try{let t=localStorage.getItem(rc);if(!t)return null;var e=JSON.parse(t);if(!e||"object"!=typeof e)return null;if(2===e.v&&e.h&&"object"==typeof e.h){let t=e.h;return t.present?{past:Array.isArray(t.past)?t.past.map(e=>ev(e)):[],present:ev(t.present),future:Array.isArray(t.future)?t.future.map(e=>ev(e)):[]}:null}return e.present?{past:Array.isArray(e.past)?e.past.map(e=>ev(e)):[],present:ev(e.present),future:Array.isArray(e.future)?e.future.map(e=>ev(e)):[]}:null}catch{return null}}(),a=ey.getState(),r=!a.present.image&&(a.present.images?.length??0)===0;if(!R){t&&r&&ey.setState({past:t.past,present:t.present,future:t.future}),eI.current=!1,eP.current=!1,eM.current=!0;return}t&&r&&ey.setState({past:t.past,present:t.present,future:t.future}),eP.current=!!t,eM.current=!0},[L,R]),o.useEffect(()=>{if(L)return;let e=null,t=()=>{if(!eF())return;let e=ey.getState();rm({past:e.past,present:e.present,future:e.future})},a=ey.subscribe(()=>{eF()&&(e&&clearTimeout(e),e=setTimeout(t,500))});return()=>{a(),e&&clearTimeout(e)}},[L,R]),o.useEffect(()=>{if(L)return;let e=()=>{if("hidden"!==document.visibilityState||!eF())return;let e=ey.getState();rm({past:e.past,present:e.present,future:e.future})},t=()=>{if(!eF())return;let e=ey.getState();rm({past:e.past,present:e.present,future:e.future})};return document.addEventListener("visibilitychange",e),window.addEventListener("beforeunload",t),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("beforeunload",t)}},[L,R]);let eD=o.useCallback(()=>{let e=t.current;if(!e)return;let{canvasW:a,canvasH:r}=ey.getState().present;if(!a||!r)return;let i=e.getBoundingClientRect();el(Math.max(.1,Math.min((i.width-80)/a,(i.height-80)/r,1)))},[el]),ez=o.useCallback(()=>{R?eL():rh(),eN(),r.current=!0,requestAnimationFrame(()=>eD())},[eN,eD,R,eL]);o.useLayoutEffect(()=>{H.image&&r.current&&(r.current=!1,E&&eD())},[H.image,eD,E]),o.useLayoutEffect(()=>{let e=!1,a=0,r=null,i=()=>{let n;if(e)return;let s=t.current;s?((n=()=>{e||eD()})(),r&&r.disconnect(),(r=new ResizeObserver(n)).observe(s),M(!0)):(a+=1)<24?requestAnimationFrame(i):M(!0)};return i(),()=>{e=!0,r?.disconnect()}},[eD]),o.useLayoutEffect(()=>{E&&eD()},[H.canvasW,H.canvasH,eD,E]),o.useEffect(()=>{t3()},[]),o.useEffect(()=>()=>{s&&URL.revokeObjectURL(s)},[s]),o.useEffect(()=>{if(!s)return;let e=()=>$(e=>e+1);return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[s]);let eW=o.useMemo(()=>{let e,t,a,r,i,n=window.innerWidth,l=window.innerHeight;if(!s)return{width:800,height:450};let o=g?.w??Math.max(1,Math.round(H.canvasW*H.exportScale)),d=g?.h??Math.max(1,Math.round(H.canvasH*H.exportScale));return e=Math.max(200,Math.min(1100,n-64)),t=Math.max(240,Math.min(900,Math.min(l-96,.9*l))),a=o/d,(i=(r=e)/a)>t&&(r=(i=t)*a),r>e&&(i=(r=e)/a),{width:Math.max(1,Math.round(r)),height:Math.max(1,Math.round(i))}},[s,g,P,H.canvasW,H.canvasH,H.exportScale]);o.useEffect(()=>{e.current?.setAttribute("data-theme",H.theme)},[H.theme]),o.useEffect(()=>{let e=new URLSearchParams(window.location.search).get("captureKey");if(!e)return;let t=!1,a={v:!1},r=null;function i(){if(t||a.v||!r||!r.objectStoreNames.contains("captures"))return;let i=r.transaction("captures","readonly").objectStore("captures").get(e);i.onsuccess=()=>{var n;let s,l=i.result;l&&r&&(n=r,(s=new FileReader).onload=()=>
170{if(!t&&!a.v){a.v=!0,e$.current=!0,B(String(s.result),"capture.png"),function(){try{let e=new URL(window.location.href);if(!e.searchParams.has("captureKey"))return;e.searchParams.delete("captureKey");let t=e.pathname+e.search+e.hash;window.history.replaceState(window.history.state,"",t)}catch{}}();try{n.transaction("captures","readwrite").objectStore("captures").delete(e)}catch(e){console.warn("[Snapester] captureKey delete failed:",e)}}},s.onerror=()=>{console.warn("[Snapester] captureKey FileReader failed")},s.readAsDataURL(l))}}let n=indexedDB.open("SnapesterCaptures",2);n.onupgradeneeded=e=>{let t=e.target.result;t.objectStoreNames.contains("captures")||t.createObjectStore("captures")},n.onsuccess=()=>{t||(r=n.result,i())},n.onerror=()=>{console.warn("[Snapester] captureKey: IndexedDB open failed")};let s=()=>{i()};window.addEventListener("snapester-capture-ready",s);let l=window.setInterval(()=>{i()},200),o=window.setTimeout(()=>{clearInterval(l)},12e3);return()=>{t=!0,clearInterval(l),clearTimeout(o),window.removeEventListener("snapester-capture-ready",s)}},[B]),o.useEffect(()=>{function e(e){let t=e.clipboardData?.items;if(t){for(let a of t)if(a.type.startsWith("image/")){let t=a.getAsFile();if(!t)continue;rg(t).then(e=>{if((ey.getState().present.images??[]).length>0){if((ey.getState().present.images??[]).length>=5)return void p.toast.error("You can add up to 5 images");_(e,t.name)}else B(e,t.name)}),p.toast.success("Pasted image"),e.preventDefault();return}}}function t(e){if((e.ctrlKey||e.metaKey)&&"z"===e.key&&(e.preventDefault(),e.shiftKey?ex():ef()),"Delete"===e.key||"Backspace"===e.key){let t=e.target?.tagName?.toLowerCase();if("input"===t||"textarea"===t||e.target?.isContentEditable)return;let a=ey.getState().present.activeLayerId;a&&(e.preventDefault(),ey.getState().deleteLayer(a))}}return window.addEventListener("paste",e),window.addEventListener("keydown",t),()=>{window.removeEventListener("paste",e),window.removeEventListener("keydown",t)}},[B,_,ef,ex]);let eO=o.useCallback(e=>{e?.type.startsWith("image/")&&rg(e).then(t=>{if((ey.getState().present.images??[]).length>0){if((ey.getState().present.images??[]).length>=5)return void p.toast.error("You can add up to 5 images");_(t,e.name)}else B(t,e.name)})},[B,_]),eH=o.useCallback(async e=>{if(!H.image)return void p.toast.error("Load an image first");
170if(e.download||e.clipboard||e.preview){if(L)return;if(!R)return void C(!0)}if((e.download||e.clipboard||e.preview)&&D)return void N("export_limit");let t=function(e,t){if(null!=t)return t;if("video"===e.background.type){if("gif"===e.exportOutputKind)return e.exportGifPreset;if("video"===e.exportOutputKind)return e.exportVideoPreset}return e.exportFormat}(H,e.format);if("png"!==t&&(["jpg","webp","mp4"].includes(t)||t.startsWith("gif_")||t.startsWith("video_"))&&!T)return void N(t.startsWith("gif_")||t.startsWith("video_")||"mp4"===t?"premium_video_gif":"export_format");if(e.clipboard&&rf(H))return void p.toast.error("Copy isn’t available for GIF or video exports. Use Download or switch to Image.");e.preview&&em(null),b(!!e.preview),eh(!0),eg(0);try{let a="video"===H.background.type,r="mp4"===t||t.startsWith("video_")||t.startsWith("gif_"),i=e.preview&&!T,n=null,s=t;if(a&&r){let e,a=document.querySelector("#bg-layer video");if(!a)throw Error("Video background element not found");let r={...{canvasW:H.canvasW,canvasH:H.canvasH,exportFormat:H.exportFormat,exportQuality:H.exportQuality,exportScale:H.exportScale},targetRes:t,userIsPro:!!T,bakeFreePreviewWatermark:i},l=(e=0,t=>{let a=Math.max(0,Math.min(100,Math.floor(t)));a<e||(e=a,eg(a))});if(t.startsWith("gif_"))n=await af(a,H,r,l),s="gif";else{let e=await ab(a,H,r,l);n=e.blob,s=e.extension}}else{let e=document.getElementById("sc-composer");if(!e)throw Error("Composer element not found");let a=await rd(e,{canvasW:H.canvasW,canvasH:H.canvasH,exportFormat:t||"png",exportQuality:H.exportQuality,exportScale:H.exportScale},`scale(${H.zoom})`),r=await fetch(a);n=await r.blob(),i&&n&&(n=await tV(n,n.type||"image/png",H.exportQuality))}if(!n)throw Error("Capture produced no output");if(e.preview){let e=URL.createObjectURL(n);h(n.type.startsWith("video/")),f({w:Math.max(1,Math.round(H.canvasW*H.exportScale)),h:Math.max(1,Math.round(H.canvasH*H.exportScale))}),u(e),eL()}else{if(e.clipboard){if(!window.ClipboardItem)return void p.toast.error("Clipboard API not supported in this browser");await navigator.clipboard.write([new ClipboardItem({[n.type]:n})]),v(!0),setTimeout(()=>v(!1),2e3)}else{let e=URL.createObjectURL(n),t=document.createElement("a");t.href=e;let a="snapester-export"===H.exportFilename?`snapester-export-${Date.now()}`:H.exportFilename;t.download=`${a}.${s}`,t.click(),URL.revokeObjectURL(e)}if(!function(e){if(!e)return;"transparent"===e.type&&e.value;let{catalogId:t,label:a}=function(e){let{type:t,value:a}=e,r=a.trim();if("gradient"===t){let e=et(r);for(let t of U)if(et(t.css)===e)return{catalogId:t.id,label:t.name};for(let t of G)if(et(t.css)===e)return{catalogId:t.id,label:t.name}}if("mesh"===t){let e=et(r);for(let t of K)if(et(t.css)===e)return{catalogId:t.id,label:t.name}}if("texture"===t){let e=et(r);for(let t of q)if(et(t.css)===e)return{catalogId:t.id,label:t.name}}if("image-url"===t){for(let e of J)for(let t of e.items)if(t.url===r)return{catalogId:`wpi-${ea(r)}`,label:t.name}}if("video"===t){for(let e of Z)if(e.url===r)return{catalogId:e.id,label:e.name}}if("solid"===t)return{catalogId:`solid-${r}`,label:r.toUpperCase()};if("transparent"===t)return{catalogId:"transparent",label:"Clear"};let i=r.length>48?`${r.slice(0,24)}…`:r;return{catalogId:`${t}-${Math.abs(ea(r))}`,label:i||t}}(e),r=Date.now(),i={catalogId:t,type:e.type,value:e.value,label:a||t,at:r},n=`${i.type}::${i.value.slice(0,2e3)}`,s=[i,...er().filter(e=>`${e.type}::${e.value.slice(0,2e3)}`!==n)].slice(0,24);try{localStorage.setItem(ee,JSON.stringify(s)),window.dispatchEvent(new Event("snapester-bg-recent-updated"))}catch{}}(H.background),R){(async()=>{(await (0,tR.incrementExportCount)()).error||F()})(),"mp4"===s||s.startsWith("video_")||s.startsWith("gif_");let e=s.startsWith("video")||"mp4"===s?"video":s.startsWith("gif")?"gif":"image",t={format:s,resolution:`${Math.round(H.canvasW*H.exportScale)}x${Math.round(H.canvasH*H.exportScale)}`,exportType:e,backgroundId:rx(H.background),backgroundType:H.background.type,imageCount:(H.images??[]).filter(e=>!e.isHidden).length||1,aspectRatio:H.aspectRatio,properties:rb(H),layerTypes:[...new Set((H.layers??[]).filter(e=>"shape"!==e.type||"arrow"!==e.shapeType).map(e=>e.type))],scale:H.exportScale,plan:R.plan};(0,tR.recordExportEvent)(t),(0,tR.notifyDiscordExport)({...t,userEmail:R.email,userName:R?.fullName})}eL()}}catch(t){let e=t&&"object"==typeof t&&"message"in t?String(t.message):"Export failed";p.toast.error(e)}finally{eh(!1),b(!1)}},[H,D,T,R,L,F,eh,eg,em,eL]),eB=o.useCallback(async()=>
170{if(!H.image)return void p.toast.error("Load an image first");if(L)return;if(!R)return void C(!0);if(D)return void N("export_limit");if(!window.ClipboardItem)return void p.toast.error("Clipboard API not supported in this browser");eh(!0),eg(0);let e=p.toast.loading("Preparing image…");try{let t=document.getElementById("sc-composer");if(!t)throw Error("Composer element not found");let a=await rd(t,{canvasW:H.canvasW,canvasH:H.canvasH,exportFormat:"png",exportQuality:H.exportQuality,exportScale:H.exportScale},`scale(${H.zoom})`),r=await fetch(a),i=await r.blob();if(!i)throw Error("Capture produced no image");await navigator.clipboard.write([new ClipboardItem({[i.type]:i})]),v(!0),setTimeout(()=>v(!1),2e3),e&&p.toast.dismiss(e),p.toast.success("Image copied to clipboard"),(async()=>{(await (0,tR.incrementExportCount)()).error||F()})();let n={format:"png",resolution:`${Math.round(H.canvasW*H.exportScale)}x${Math.round(H.canvasH*H.exportScale)}`,exportType:"share",backgroundId:rx(H.background),backgroundType:H.background.type,imageCount:(H.images??[]).filter(e=>!e.isHidden).length||1,aspectRatio:H.aspectRatio,properties:rb(H),layerTypes:[...new Set((H.layers??[]).filter(e=>"shape"!==e.type||"arrow"!==e.shapeType).map(e=>e.type))],scale:H.exportScale,plan:R.plan};(0,tR.recordExportEvent)(n),(0,tR.notifyDiscordExport)({...n,userEmail:R.email,userName:R?.fullName}),window.setTimeout(()=>{window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent("Image Created using @SnapesterApp")}`,"_blank","noopener,noreferrer")},450)}catch(a){e&&p.toast.dismiss(e);let t=a&&"object"==typeof a&&"message"in a?String(a.message):"Could not copy image";p.toast.error(t)}finally{eh(!1),eg(0)}},[H,D,L,R,F,eh,eg,N,v,eL]),e_=Math.max(0,Math.min(100,Math.round(H.exportProgress)));return(0,l.jsxs)("div",{ref:e,className:"ed-shell","data-theme":H.theme,children:[(0,l.jsx)(t$,{}),(0,l.jsx)(W,{zoom:H.zoom,activeRatio:H.aspectRatio,canUndo:eb,canRedo:ej,hasImage:!!H.image,isCopied:y,isPro:!!T,isExporting:H.isExporting,isAuthLoading:L,isVideoBackground:"video"===H.background.type,copyDisabled:rf(H),exportLimitReached:D,account:R?{email:R.email,name:R.fullName??"Snapester User",avatarUrl:R.avatarUrl,userId:R.id,isPro:!!T,planLabel:(0,tT.formatProfilePlanLabel)(R),trialEndsLabel:A,exportQuota:z}:null,onUndo:ef,onRedo:ex,onZoomBump:function(e){let t=ew.findIndex(e=>e>=H.zoom),a=Math.min(ew.length-1,Math.max(0,t+e));el(ew[a])},onZoomFit:eD,onResetView:ez,onRatioSelect:function(e){en(e),requestAnimationFrame(eD)},onCopy:()=>void eH({clipboard:!0}),onPreview:()=>void eH({preview:!0}),onExport:()=>void eH({download:!0}),onExportFormat:e=>void eH({download:!0,format:e}),onShowPro:N,onShareToX:()=>void eB()}),(0,l.jsxs)("div",{className:"ed-body",children:[(0,l.jsx)(ek,{}),(0,l.jsxs)("main",{className:`ed-canvas-area${E?"":" ed-canvas-area--fit-pending"}`,onDragOver:e=>{e.preventDefault(),j(!0)},onDragLeave:()=>j(!1),onDrop:e=>{e.preventDefault(),j(!1);let t=e.dataTransfer.files?.[0];t&&eO(t)},children:[(0,l.jsx)("input",{ref:a,type:"file",accept:"image/*",className:"sr-only","aria-hidden":!H.image,onChange:e=>{let t=e.target.files?.[0];t&&eO(t),e.target.value=""}}),H.image&&w&&(0,l.jsx)("div",{className:"absolute inset-4 rounded-2xl border-2 border-dashed pointer-events-none z-10 flex items-center justify-center",style:{borderColor:"var(--ed-accent)",background:"rgba(255,122,24,0.05)"},children:(0,l.jsx)("span",{className:"text-sm font-semibold",style:{color:"var(--ed-accent)"},children:"Drop to add image"})}),(0,l.jsx)(eA,{present:H,zoom:H.zoom,isPro:!!T,canvasScrollRef:t,onSetActiveLayer:em,onSetActiveImage:X,onSetImageNaturalFor:Y,onTransformChange:e=>V(e),emptyUpload:H.image?null:{fileInputRef:a,isDragOver:w}})]}),(0,l.jsx)(tE,{present:H,isPro:!!T,activeTab:H.rightTab,onTabChange:eo,hasImage:!!H.image,onCrop:()=>n(!0),onTransformChange:e=>V(e),onShadowChange:e=>Q(e),onImageEdgeChange:e=>ei(e),onCanvasDims:(e,t)=>es(e,t),onFitCanvas:eD,onFormatChange:ed,onQualityChange:ec,onScaleChange:ep,onWatermarkChange:eu,onDownload:()=>void eH({download:!0}),onDownloadFormat:e=>void eH({download:!0,format:e}),onShowPro:N}
170)]}),(0,l.jsx)(tI,{open:i,onOpenChange:n}),s&&(0,l.jsx)("div",{className:"ed-preview-backdrop",onClick:()=>{u(null),h(!1),f(null)},children:(0,l.jsxs)("div",{className:"ed-preview-card",onClick:e=>e.stopPropagation(),children:[(0,l.jsx)("button",{type:"button",className:"ed-preview-close",onClick:()=>{u(null),h(!1),f(null)},"aria-label":"Close preview",children:(0,l.jsx)(c.default,{size:20,strokeWidth:2.5,"aria-hidden":!0})}),(0,l.jsx)("div",{className:"ed-preview-media-wrap",onContextMenu:e=>e.preventDefault(),style:{width:eW.width,height:eW.height},children:m?(0,l.jsx)("video",{src:s,controls:!0,playsInline:!0,className:"ed-preview-img",controlsList:"nodownload noremoteplayback",disablePictureInPicture:!0,onContextMenu:e=>e.preventDefault()}):(0,l.jsx)("img",{src:s,alt:"Export preview",className:"ed-preview-img",draggable:!1,onContextMenu:e=>e.preventDefault()})})]})}),H.isExporting&&(0,l.jsx)("div",{className:"ed-export-overlay",children:(0,l.jsxs)("div",{className:"ed-export-card",children:[(0,l.jsx)("div",{className:"ed-spinner"}),(0,l.jsxs)("div",{className:"text-sm font-medium",style:{color:"var(--ed-text)"},children:[x?"Creating preview…":"Exporting…"," ",e_,"%"]})]})}),(0,l.jsx)(tW,{trigger:k,onClose:()=>N(null),onRequestSignIn:()=>C(!0)}),(0,l.jsx)(tH,{open:S,onClose:()=>C(!1),returnPath:I||"/editor"}),(0,l.jsx)(tB.ProTrialPromoGate,{show:O,onTrialStarted:F})]})}e.s(["EditorShell",()=>ry],2520)},68154,e=>{"use strict";var t=e.i(52201),a=e.i(81506);function r(){let[e,r]=a.useState(!1),[i,n]=a.useState(!1);return(a.useEffect(()=>{r(!1)},[]),a.useEffect(()=>{if(!e)return;let t=document.documentElement;t.setAttribute("data-anti-screenshot","true");let a=e=>e.preventDefault(),r=e=>e.preventDefault(),i=e=>{let t=e.key?.toLowerCase?.()??"",a=e.metaKey&&e.shiftKey&&("3"===t||"4"===t||"5"===t),r=e.ctrlKey&&e.shiftKey&&("i"===t||"j"===t||"c"===t);("printscreen"===t||a||r)&&(e.preventDefault(),e.stopPropagation(),n(!0),window.setTimeout(()=>n(!1),1200))},s=()=>{n("visible"!==document.visibilityState)};return document.addEventListener("contextmenu",a),document.addEventListener("dragstart",r),window.addEventListener("keydown",i,{capture:!0}),document.addEventListener("visibilitychange",s),()=>{t.removeAttribute("data-anti-screenshot"),document.removeEventListener("contextmenu",a),document.removeEventListener("dragstart",r),window.removeEventListener("keydown",i,!0),document.removeEventListener("visibilitychange",s)}},[e]),e&&i)?(0,t.jsx)("div",{className:"ed-anti-screenshot-cover","aria-hidden":!0}):null}e.s(["AntiScreenshotGuard",()=>r])}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.