slidecanvas 1.0.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- "use strict";var Mt=Object.create;var Ce=Object.defineProperty,Pt=Object.defineProperties,Ht=Object.getOwnPropertyDescriptor,Tt=Object.getOwnPropertyDescriptors,Bt=Object.getOwnPropertyNames,ot=Object.getOwnPropertySymbols,Rt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty,Dt=Object.prototype.propertyIsEnumerable;var it=(h,t,s)=>t in h?Ce(h,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):h[t]=s,C=(h,t)=>{for(var s in t||(t={}))nt.call(t,s)&&it(h,s,t[s]);if(ot)for(var s of ot(t))Dt.call(t,s)&&it(h,s,t[s]);return h},I=(h,t)=>Pt(h,Tt(t));var Vt=(h,t)=>{for(var s in t)Ce(h,s,{get:t[s],enumerable:!0})},st=(h,t,s,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let x of Bt(t))!nt.call(h,x)&&x!==s&&Ce(h,x,{get:()=>t[x],enumerable:!(p=Ht(t,x))||p.enumerable});return h};var Se=(h,t,s)=>(s=h!=null?Mt(Rt(h)):{},st(t||!h||!h.__esModule?Ce(s,"default",{value:h,enumerable:!0}):s,h)),Ft=h=>st(Ce({},"__esModule",{value:!0}),h);var Xt={};Vt(Xt,{PptEditor:()=>Wt,PptxExporter:()=>ze,PptxParser:()=>Ae});module.exports=Ft(Xt);function We(h,{insertAt:t}={}){if(!h||typeof document=="undefined")return;let s=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css",t==="top"&&s.firstChild?s.insertBefore(p,s.firstChild):s.appendChild(p),p.styleSheet?p.styleSheet.cssText=h:p.appendChild(document.createTextNode(h))}We(`@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Lato:wght@400;700&family=Open+Sans:wght@400;600;700&family=Poppins:wght@400;500;600;700&family=Roboto:wght@400;500;700&family=Roboto+Slab:wght@400;700&family=Playfair+Display:wght@400;700&family=Merriweather:wght@400;700&family=Nunito+Sans:wght@400;600;700&family=Montserrat:wght@400;600;700&family=Oswald:wght@400;500&family=Raleway:wght@400;600;700&family=Ubuntu:wght@400;500;700&family=Lora:wght@400;700&family=PT+Sans:wght@400;700&family=PT+Serif:wght@400;700&family=Play:wght@400;700&family=Arvo:wght@400;700&family=Kanit:wght@400;500;600&display=swap";/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50: oklch(97.1% .013 17.38);--color-red-100: oklch(93.6% .032 17.717);--color-red-200: oklch(88.5% .062 18.334);--color-red-400: oklch(70.4% .191 22.216);--color-red-500: oklch(63.7% .237 25.331);--color-red-600: oklch(57.7% .245 27.325);--color-orange-50: oklch(98% .016 73.684);--color-amber-500: oklch(76.9% .188 70.08);--color-emerald-50: oklch(97.9% .021 166.113);--color-emerald-100: oklch(95% .052 163.051);--color-emerald-500: oklch(69.6% .17 162.48);--color-emerald-600: oklch(59.6% .145 163.225);--color-emerald-700: oklch(50.8% .118 165.612);--color-blue-50: oklch(97% .014 254.604);--color-blue-100: oklch(93.2% .032 255.585);--color-blue-400: oklch(70.7% .165 254.624);--color-blue-500: oklch(62.3% .214 259.815);--color-blue-600: oklch(54.6% .245 262.881);--color-blue-700: oklch(48.8% .243 264.376);--color-purple-50: oklch(97.7% .014 308.299);--color-purple-500: oklch(62.7% .265 303.9);--color-purple-600: oklch(55.8% .288 302.321);--color-slate-50: oklch(98.4% .003 247.858);--color-slate-100: oklch(96.8% .007 247.896);--color-slate-200: oklch(92.9% .013 255.508);--color-slate-300: oklch(86.9% .022 252.894);--color-slate-400: oklch(70.4% .04 256.788);--color-slate-500: oklch(55.4% .046 257.417);--color-slate-600: oklch(44.6% .043 257.281);--color-slate-700: oklch(37.2% .044 257.287);--color-slate-800: oklch(27.9% .041 260.031);--color-slate-900: oklch(20.8% .042 265.755);--color-black: #000;--color-white: #fff;--spacing: .25rem;--container-2xl: 42rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-base--line-height: 1.5 ;--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-4xl: 2.25rem;--text-4xl--line-height: calc(2.5 / 2.25);--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-black: 900;--tracking-tighter: -.05em;--tracking-tight: -.025em;--tracking-wider: .05em;--tracking-widest: .1em;--leading-tight: 1.25;--leading-relaxed: 1.625;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--ease-out: cubic-bezier(0, 0, .2, 1);--animate-spin: spin 1s linear infinite;--blur-sm: 8px;--blur-md: 12px;--aspect-video: 16 / 9;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono)}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor;@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-10{top:calc(var(--spacing) * 10)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1{bottom:calc(var(--spacing) * 1)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-10{bottom:calc(var(--spacing) * 10)}.left-0{left:calc(var(--spacing) * 0)}.left-1{left:calc(var(--spacing) * 1)}.left-1\\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-50{z-index:50}.z-\\[100\\]{z-index:100}.z-\\[1000\\]{z-index:1000}.z-\\[2000\\]{z-index:2000}.z-\\[2001\\]{z-index:2001}.z-\\[5000\\]{z-index:5000}.z-\\[9998\\]{z-index:9998}.z-\\[9999\\]{z-index:9999}.z-\\[10000\\]{z-index:10000}.z-\\[10001\\]{z-index:10001}.z-\\[99999\\]{z-index:99999}.container{width:100%;@media(width>=40rem){max-width:40rem}@media(width>=48rem){max-width:48rem}@media(width>=64rem){max-width:64rem}@media(width>=80rem){max-width:80rem}@media(width>=96rem){max-width:96rem}}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-1\\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-auto{margin-block:auto}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-0{margin-left:calc(var(--spacing) * 0)}.ml-0\\.5{margin-left:calc(var(--spacing) * .5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:var(--aspect-video)}.h-0{height:calc(var(--spacing) * 0)}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-32{height:calc(var(--spacing) * 32)}.h-\\[1px\\]{height:1px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\\[60vh\\]{max-height:60vh}.max-h-\\[90vh\\]{max-height:90vh}.max-h-\\[400px\\]{max-height:400px}.min-h-\\[56px\\]{min-height:56px}.min-h-\\[300px\\]{min-height:300px}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing) * 1)}.w-1\\.5{width:calc(var(--spacing) * 1.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[1px\\]{width:1px}.w-\\[480px\\]{width:480px}.w-\\[500px\\]{width:500px}.w-\\[600px\\]{width:600px}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\\[90vw\\]{max-width:90vw}.max-w-\\[300px\\]{max-width:300px}.max-w-\\[400px\\]{max-width:400px}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\\[64px\\]{min-width:64px}.min-w-\\[68px\\]{min-width:68px}.min-w-fit{min-width:fit-content}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-center{transform-origin:center}.origin-top-left{transform-origin:0 0}.-translate-x-1{--tw-translate-x: calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1{--tw-translate-y: calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-105{--tw-scale-x: 105%;--tw-scale-y: 105%;--tw-scale-z: 105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-110{--tw-scale-x: 110%;--tw-scale-y: 110%;--tw-scale-z: 110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.appearance-none{appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-stretch{justify-content:stretch}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.space-y-2{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-4{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-6{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}}.self-start{align-self:flex-start}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[2\\.5rem\\]{border-radius:2.5rem}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style: dashed;border-style:dashed}.border-none{--tw-border-style: none;border-style:none}.border-solid{--tw-border-style: solid;border-style:solid}.border-emerald-100{border-color:var(--color-emerald-100)}.border-emerald-100\\/50{border-color:color-mix(in srgb,oklch(95% .052 163.051) 50%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-emerald-100) 50%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-200\\/60{border-color:color-mix(in srgb,oklch(92.9% .013 255.508) 60%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-slate-200) 60%,transparent)}}.border-transparent{border-color:transparent}.border-white{border-color:var(--color-white)}.border-white\\/10{border-color:color-mix(in srgb,#fff 10%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-\\[\\#0A0A0A\\]{background-color:#0a0a0a}.bg-black{background-color:var(--color-black)}.bg-black\\/40{background-color:color-mix(in srgb,#000 40%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\\/60{background-color:color-mix(in srgb,#000 60%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-50\\/50{background-color:color-mix(in srgb,oklch(97.9% .021 166.113) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-emerald-50) 50%,transparent)}}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-50\\/50{background-color:color-mix(in srgb,oklch(98.4% .003 247.858) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-50) 50%,transparent)}}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\\/50{background-color:color-mix(in srgb,oklch(96.8% .007 247.896) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-100) 50%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-200\\/50{background-color:color-mix(in srgb,oklch(92.9% .013 255.508) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-200) 50%,transparent)}}.bg-slate-800{background-color:var(--color-slate-800)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-900\\/40{background-color:color-mix(in srgb,oklch(20.8% .042 265.755) 40%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-900) 40%,transparent)}}.bg-transparent{background-color:transparent}.bg-white{background-color:var(--color-white)}.bg-white\\/10{background-color:color-mix(in srgb,#fff 10%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\\/50{background-color:color-mix(in srgb,#fff 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-white\\/80{background-color:color-mix(in srgb,#fff 80%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.bg-gradient-to-b{--tw-gradient-position: to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black{--tw-gradient-from: var(--color-black);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-black\\/60{--tw-gradient-from: color-mix(in srgb, #000 60%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-gradient-from: color-mix(in oklab, var(--color-black) 60%, transparent)}--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to: transparent;--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-slate-700{fill:var(--color-slate-700)}.p-0{padding:calc(var(--spacing) * 0)}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-0\\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-10{padding-inline:calc(var(--spacing) * 10)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-11{padding-left:calc(var(--spacing) * 11)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading, var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading, var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading, var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.text-\\[7px\\]{font-size:7px}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.leading-relaxed{--tw-leading: var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading: var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight: var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight: var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\[0\\.2em\\]{--tw-tracking: .2em;letter-spacing:.2em}.tracking-\\[0\\.15em\\]{--tw-tracking: .15em;letter-spacing:.15em}.tracking-tight{--tw-tracking: var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking: var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wider{--tw-tracking: var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking: var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-500{color:var(--color-amber-500)}.text-black{color:var(--color-black)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-600\\/70{color:color-mix(in srgb,oklch(59.6% .145 163.225) 70%,transparent);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-emerald-600) 70%,transparent)}}.text-emerald-700{color:var(--color-emerald-700)}.text-purple-500{color:var(--color-purple-500)}.text-purple-600{color:var(--color-purple-600)}.text-red-400{color:var(--color-red-400)}.text-red-400\\/80{color:color-mix(in srgb,oklch(70.4% .191 22.216) 80%,transparent);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-red-400) 80%,transparent)}}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.text-white\\/50{color:color-mix(in srgb,#fff 50%,transparent);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.text-white\\/80{color:color-mix(in srgb,#fff 80%,transparent);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0%}.opacity-25{opacity:25%}.opacity-40{opacity:40%}.opacity-75{opacity:75%}.opacity-100{opacity:100%}.shadow-2xl{--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-black{--tw-shadow-color: #000;@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, var(--color-black) var(--tw-shadow-alpha), transparent)}}.shadow-black\\/80{--tw-shadow-color: color-mix(in srgb, #000 80%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-black) 80%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-blue-500{--tw-shadow-color: oklch(62.3% .214 259.815);@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, var(--color-blue-500) var(--tw-shadow-alpha), transparent)}}.shadow-blue-500\\/20{--tw-shadow-color: color-mix(in srgb, oklch(62.3% .214 259.815) 20%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-blue-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-emerald-500{--tw-shadow-color: oklch(69.6% .17 162.48);@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, var(--color-emerald-500) var(--tw-shadow-alpha), transparent)}}.shadow-emerald-500\\/20{--tw-shadow-color: color-mix(in srgb, oklch(69.6% .17 162.48) 20%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-emerald-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black{--tw-ring-color: var(--color-black)}.ring-black\\/5{--tw-ring-color: color-mix(in srgb, #000 5%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--color-black) 5%, transparent)}}.ring-white{--tw-ring-color: var(--color-white)}.backdrop-blur-\\[1px\\]{--tw-backdrop-blur: blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur: blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur: blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.duration-150{--tw-duration: .15s;transition-duration:.15s}.duration-200{--tw-duration: .2s;transition-duration:.2s}.duration-300{--tw-duration: .3s;transition-duration:.3s}.duration-500{--tw-duration: .5s;transition-duration:.5s}.ease-out{--tw-ease: var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style: none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\\:text-slate-600{&:is(:where(.group):focus-within *){color:var(--color-slate-600)}}.group-hover\\:scale-105{&:is(:where(.group):hover *){@media(hover:hover){--tw-scale-x: 105%;--tw-scale-y: 105%;--tw-scale-z: 105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.group-hover\\:scale-110{&:is(:where(.group):hover *){@media(hover:hover){--tw-scale-x: 110%;--tw-scale-y: 110%;--tw-scale-z: 110%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.group-hover\\:bg-blue-50{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-blue-50)}}}.group-hover\\:bg-blue-100{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-blue-100)}}}.group-hover\\:bg-blue-600{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-blue-600)}}}.group-hover\\:bg-emerald-50{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-emerald-50)}}}.group-hover\\:bg-emerald-600{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-emerald-600)}}}.group-hover\\:bg-purple-600{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-purple-600)}}}.group-hover\\:bg-red-500{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-red-500)}}}.group-hover\\:bg-slate-200{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-slate-200)}}}.group-hover\\:fill-slate-900{&:is(:where(.group):hover *){@media(hover:hover){fill:var(--color-slate-900)}}}.group-hover\\:text-blue-600{&:is(:where(.group):hover *){@media(hover:hover){color:var(--color-blue-600)}}}.group-hover\\:text-slate-700{&:is(:where(.group):hover *){@media(hover:hover){color:var(--color-slate-700)}}}.group-hover\\:text-slate-900{&:is(:where(.group):hover *){@media(hover:hover){color:var(--color-slate-900)}}}.group-hover\\:text-white{&:is(:where(.group):hover *){@media(hover:hover){color:var(--color-white)}}}.group-hover\\:opacity-100{&:is(:where(.group):hover *){@media(hover:hover){opacity:100%}}}.group-hover\\:shadow-sm{&:is(:where(.group):hover *){@media(hover:hover){--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.placeholder\\:text-slate-400{&::placeholder{color:var(--color-slate-400)}}.hover\\:border-blue-400{&:hover{@media(hover:hover){border-color:var(--color-blue-400)}}}.hover\\:border-slate-100{&:hover{@media(hover:hover){border-color:var(--color-slate-100)}}}.hover\\:border-slate-200{&:hover{@media(hover:hover){border-color:var(--color-slate-200)}}}.hover\\:border-slate-300{&:hover{@media(hover:hover){border-color:var(--color-slate-300)}}}.hover\\:bg-black{&:hover{@media(hover:hover){background-color:var(--color-black)}}}.hover\\:bg-blue-50{&:hover{@media(hover:hover){background-color:var(--color-blue-50)}}}.hover\\:bg-blue-50\\/50{&:hover{@media(hover:hover){background-color:color-mix(in srgb,oklch(97% .014 254.604) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-blue-50) 50%,transparent)}}}}.hover\\:bg-blue-700{&:hover{@media(hover:hover){background-color:var(--color-blue-700)}}}.hover\\:bg-emerald-700{&:hover{@media(hover:hover){background-color:var(--color-emerald-700)}}}.hover\\:bg-red-50{&:hover{@media(hover:hover){background-color:var(--color-red-50)}}}.hover\\:bg-red-100{&:hover{@media(hover:hover){background-color:var(--color-red-100)}}}.hover\\:bg-slate-50{&:hover{@media(hover:hover){background-color:var(--color-slate-50)}}}.hover\\:bg-slate-100{&:hover{@media(hover:hover){background-color:var(--color-slate-100)}}}.hover\\:bg-white{&:hover{@media(hover:hover){background-color:var(--color-white)}}}.hover\\:bg-white\\/20{&:hover{@media(hover:hover){background-color:color-mix(in srgb,#fff 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}}}.hover\\:text-blue-500{&:hover{@media(hover:hover){color:var(--color-blue-500)}}}.hover\\:text-red-500{&:hover{@media(hover:hover){color:var(--color-red-500)}}}.hover\\:text-slate-500{&:hover{@media(hover:hover){color:var(--color-slate-500)}}}.hover\\:text-slate-600{&:hover{@media(hover:hover){color:var(--color-slate-600)}}}.hover\\:text-slate-700{&:hover{@media(hover:hover){color:var(--color-slate-700)}}}.hover\\:text-white{&:hover{@media(hover:hover){color:var(--color-white)}}}.hover\\:opacity-90{&:hover{@media(hover:hover){opacity:90%}}}.hover\\:opacity-100{&:hover{@media(hover:hover){opacity:100%}}}.hover\\:shadow-md{&:hover{@media(hover:hover){--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.focus\\:border-blue-500{&:focus{border-color:var(--color-blue-500)}}.focus\\:border-slate-400{&:focus{border-color:var(--color-slate-400)}}.focus\\:ring-2{&:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\\:ring-4{&:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\\:ring-blue-500\\/10{&:focus{--tw-ring-color: color-mix(in srgb, oklch(62.3% .214 259.815) 10%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}}.focus\\:ring-blue-500\\/20{&:focus{--tw-ring-color: color-mix(in srgb, oklch(62.3% .214 259.815) 20%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}}.focus\\:ring-slate-400\\/5{&:focus{--tw-ring-color: color-mix(in srgb, oklch(70.4% .04 256.788) 5%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--color-slate-400) 5%, transparent)}}}.focus\\:outline-none{&:focus{--tw-outline-style: none;outline-style:none}}.active\\:scale-95{&:active{--tw-scale-x: 95%;--tw-scale-y: 95%;--tw-scale-z: 95%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.active\\:scale-\\[0\\.98\\]{&:active{scale:.98}}.active\\:cursor-grabbing{&:active{cursor:grabbing}}.disabled\\:bg-slate-100{&:disabled{background-color:var(--color-slate-100)}}.disabled\\:bg-slate-300{&:disabled{background-color:var(--color-slate-300)}}.disabled\\:text-slate-400{&:disabled{color:var(--color-slate-400)}}.disabled\\:opacity-20{&:disabled{opacity:20%}}.disabled\\:opacity-30{&:disabled{opacity:30%}}.disabled\\:opacity-50{&:disabled{opacity:50%}}.disabled\\:active\\:scale-100{&:disabled{&:active{--tw-scale-x: 100%;--tw-scale-y: 100%;--tw-scale-z: 100%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.md\\:space-y-8{@media(width>=48rem){:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}}}.md\\:p-12{@media(width>=48rem){padding:calc(var(--spacing) * 12)}}}@keyframes blob{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}to{transform:translate(0) scale(1)}}.animate-blob{animation:blob 7s infinite}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-scale-x{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-scale-y{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-scale-z{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-rotate-x{syntax: "*"; inherits: false;}@property --tw-rotate-y{syntax: "*"; inherits: false;}@property --tw-rotate-z{syntax: "*"; inherits: false;}@property --tw-skew-x{syntax: "*"; inherits: false;}@property --tw-skew-y{syntax: "*"; inherits: false;}@property --tw-space-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-gradient-position{syntax: "*"; inherits: false;}@property --tw-gradient-from{syntax: "<color>"; inherits: false; initial-value: #0000;}@property --tw-gradient-via{syntax: "<color>"; inherits: false; initial-value: #0000;}@property --tw-gradient-to{syntax: "<color>"; inherits: false; initial-value: #0000;}@property --tw-gradient-stops{syntax: "*"; inherits: false;}@property --tw-gradient-via-stops{syntax: "*"; inherits: false;}@property --tw-gradient-from-position{syntax: "<length-percentage>"; inherits: false; initial-value: 0%;}@property --tw-gradient-via-position{syntax: "<length-percentage>"; inherits: false; initial-value: 50%;}@property --tw-gradient-to-position{syntax: "<length-percentage>"; inherits: false; initial-value: 100%;}@property --tw-leading{syntax: "*"; inherits: false;}@property --tw-font-weight{syntax: "*"; inherits: false;}@property --tw-tracking{syntax: "*"; inherits: false;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-backdrop-blur{syntax: "*"; inherits: false;}@property --tw-backdrop-brightness{syntax: "*"; inherits: false;}@property --tw-backdrop-contrast{syntax: "*"; inherits: false;}@property --tw-backdrop-grayscale{syntax: "*"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: "*"; inherits: false;}@property --tw-backdrop-invert{syntax: "*"; inherits: false;}@property --tw-backdrop-opacity{syntax: "*"; inherits: false;}@property --tw-backdrop-saturate{syntax: "*"; inherits: false;}@property --tw-backdrop-sepia{syntax: "*"; inherits: false;}@property --tw-duration{syntax: "*"; inherits: false;}@property --tw-ease{syntax: "*"; inherits: false;}@keyframes spin{to{transform:rotate(360deg)}}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-scale-z: 1;--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-space-y-reverse: 0;--tw-border-style: solid;--tw-gradient-position: initial;--tw-gradient-from: #0000;--tw-gradient-via: #0000;--tw-gradient-to: #0000;--tw-gradient-stops: initial;--tw-gradient-via-stops: initial;--tw-gradient-from-position: 0%;--tw-gradient-via-position: 50%;--tw-gradient-to-position: 100%;--tw-leading: initial;--tw-font-weight: initial;--tw-tracking: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial;--tw-duration: initial;--tw-ease: initial}}}
3
- `);var A=require("react");var le=Se(require("react")),L=require("lucide-react");var lt=require("clsx"),ct=require("tailwind-merge");function O(...h){return(0,ct.twMerge)((0,lt.clsx)(h))}var e=require("react/jsx-runtime"),jt=["Inter","Lato","Open Sans","Poppins","Roboto","Roboto Slab","Georgia","Playfair Display","Merriweather","Nunito Sans","Montserrat","Oswald","Raleway","Ubuntu","Lora","PT Sans","PT Serif","Play","Arvo","Kanit","Times New Roman","Arial"],Zt=[12,14,16,18,20,24,28,32,36,48,64,72,96],Et=[{name:"Basic Shapes",shapes:["rect","circle","triangle","rightTriangle","rhombus","parallelogram","trapezoid","pentagon","hexagon","heptagon","octagon","heart","smiley","sun","moon"]},{name:"Arrows",shapes:["arrowRight","arrowLeft","arrowUp","arrowDown","arrowLeftRight","arrowUpDown"]},{name:"Stars & Symbols",shapes:["star4","star5","star6","star8","cloud","lightning"]},{name:"Equation Shapes",shapes:["plus","minus","multiply","divide","equal"]}],$t=({type:h,className:t})=>{switch(h){case"rect":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",fill:"currentColor"})});case"circle":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("circle",{cx:"12",cy:"12",r:"9",fill:"currentColor"})});case"triangle":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 4L20 18H4L12 4Z",fill:"currentColor"})});case"rightTriangle":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M4 4V20H20L4 4Z",fill:"currentColor"})});case"rhombus":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 4L20 12L12 20L4 12L12 4Z",fill:"currentColor"})});case"parallelogram":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M7 4H21L17 20H3L7 4Z",fill:"currentColor"})});case"trapezoid":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M6 4H18L21 20H3L6 4Z",fill:"currentColor"})});case"pentagon":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 3L21 9V19H3V9L12 3Z",fill:"currentColor"})});case"hexagon":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 3L20 7.5V16.5L12 21L4 16.5V7.5L12 3Z",fill:"currentColor"})});case"heptagon":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 3L18.5 6L21 13L16 20H8L3 13L5.5 6L12 3Z",fill:"currentColor"})});case"octagon":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M8.5 3H15.5L21 8.5V15.5L15.5 21H8.5L3 15.5V8.5L8.5 3Z",fill:"currentColor"})});case"heart":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z",fill:"currentColor"})});case"smiley":return(0,e.jsxs)("svg",{viewBox:"0 0 24 24",className:t,children:[(0,e.jsx)("circle",{cx:"12",cy:"12",r:"9",fill:"currentColor",fillOpacity:"0.2",stroke:"currentColor",strokeWidth:"2"}),(0,e.jsx)("circle",{cx:"9",cy:"9",r:"1.5",fill:"currentColor"}),(0,e.jsx)("circle",{cx:"15",cy:"9",r:"1.5",fill:"currentColor"}),(0,e.jsx)("path",{d:"M8 15C8 15 9.5 17 12 17C14.5 17 16 15 16 15",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]});case"sun":return(0,e.jsxs)("svg",{viewBox:"0 0 24 24",className:t,children:[(0,e.jsx)("circle",{cx:"12",cy:"12",r:"5",fill:"currentColor"}),(0,e.jsx)("path",{d:"M12 2V4M12 20V22M4 12H2M22 12H20M19.07 4.93L17.66 6.34M6.34 17.66L4.93 19.07M4.93 4.93L6.34 6.34M17.66 17.66L19.07 19.07",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]});case"moon":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 3a9 9 0 1 0 9 9 7 7 0 0 1-9-9",fill:"currentColor"})});case"arrowRight":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M4 11h11.5l-3.5-3.5 1.5-1.5 6 6-6 6-1.5-1.5 3.5-3.5H4z",fill:"currentColor"})});case"arrowLeft":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M20 11H8.5l3.5-3.5L10.5 6l-6 6 6 6 1.5-1.5-3.5-3.5H20z",fill:"currentColor"})});case"arrowUp":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M13 20V8.5l3.5 3.5 1.5-1.5-6-6-6 6 1.5 1.5 3.5-3.5V20z",fill:"currentColor"})});case"arrowDown":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M11 4v11.5l-3.5-3.5-1.5 1.5 6 6 6-6-1.5-1.5-3.5 3.5V4z",fill:"currentColor"})});case"arrowLeftRight":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M4 12l4-4v3h8V8l4 4-4 4v-3H8v3l-4-4z",fill:"currentColor"})});case"arrowUpDown":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 4l-4 4h3v8H8l4 4 4-4h-3V8h3l-4-4z",fill:"currentColor"})});case"star4":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 2l2 8 8 2-8 2-2 8-2-8-8-2 8-2 2-8z",fill:"currentColor"})});case"star5":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 2l2.5 7.5H22l-6 4.5 2.5 7.5-6.5-4.5-6.5 4.5 2.5-7.5-6-4.5h7.5L12 2z",fill:"currentColor"})});case"star6":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 2l3 5 6-1-4 4.5 2 6.5-7-3-7 3 2-6.5-4-4.5 6 1 3-5z",fill:"currentColor"})});case"star8":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 2l2 4 4-2-2 4 4 2-4 2 2 4-4-2-2 4-2-4-4 2 2-4-4-2 4-2-2-4 4 2 2-4z",fill:"currentColor"})});case"cloud":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M17.5 19c-3 0-5.5-2.5-5.5-5.5 0-.2 0-.4.1-.6-2-.8-3.6-2.5-4.1-4.7C6.5 7.4 5 6 3 6c-1.7 0-3 1.3-3 3s1.3 3 3 3c.4 0 .8-.1 1.2-.2C4.1 13 5 14.5 6.5 15.5c.3 1.8 1.4 3.4 3 4.3.4.2.8.3 1.2.4 1.2.4 2.5.6 3.8.6 4.4 0 8-3.6 8-8s-3.6-8-8-8c-.4 0-.8 0-1.2.1-1.2.2-2.3.7-3.2 1.5C11 4.2 12.4 3.5 14 3.5c4.1 0 7.5 3.4 7.5 7.5s-1.8 7.5-4 8z",fill:"currentColor",transform:"scale(0.8) translate(3,3)"})});case"lightning":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M13 2L3 14h9v8l10-12h-9l3-8z",fill:"currentColor"})});case"plus":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z",fill:"currentColor"})});case"minus":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M19 13H5v-2h14v2z",fill:"currentColor"})});case"multiply":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z",fill:"currentColor"})});case"divide":return(0,e.jsxs)("svg",{viewBox:"0 0 24 24",className:t,children:[(0,e.jsx)("circle",{cx:"12",cy:"7",r:"2",fill:"currentColor"}),(0,e.jsx)("circle",{cx:"12",cy:"17",r:"2",fill:"currentColor"}),(0,e.jsx)("rect",{x:"5",y:"11",width:"14",height:"2",fill:"currentColor"})]});case"equal":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M19 10H5V8h14v2zm0 6H5v-2h14v2z",fill:"currentColor"})});default:return(0,e.jsx)("div",{className:"w-6 h-6 bg-slate-200 rounded-sm"})}},Ut=({onAddShape:h,uiScale:t})=>{let[s,p]=(0,le.useState)(!1);return le.default.useEffect(()=>(window._toggleShapesMenu=()=>p(!s),()=>{window._toggleShapesMenu=void 0}),[s]),s?(0,e.jsx)("div",{className:"absolute top-full left-0 mt-2 bg-white border border-slate-200 rounded-2xl shadow-2xl p-4 overflow-y-auto z-[100] animate-in fade-in zoom-in-95 duration-200",style:{width:`${320*t}px`,maxHeight:`${480*t}px`},children:(0,e.jsx)("div",{className:"flex flex-col gap-6",children:Et.map(x=>(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsx)("span",{className:"text-[10px] font-black uppercase tracking-widest text-slate-400 px-1",style:{fontSize:`${10*t}px`},children:x.name}),(0,e.jsx)("div",{className:"grid grid-cols-5 gap-1",children:x.shapes.map(k=>(0,e.jsx)("button",{onClick:()=>{h(k),p(!1)},className:"aspect-square hover:bg-slate-50 rounded-lg flex items-center justify-center border border-transparent hover:border-slate-100 transition-all group p-1",title:k,children:(0,e.jsx)("div",{className:"w-full h-full bg-slate-100 rounded-sm group-hover:bg-blue-100 group-hover:scale-110 transition-all flex items-center justify-center overflow-hidden p-1.5",children:(0,e.jsx)($t,{type:k,className:"w-full h-full text-slate-400 group-hover:text-blue-600 transition-colors"})})},k))})]},x.name))})}):null},dt=({onAddText:h,onAddImage:t,onAddShape:s,onAddSlide:p,onExport:x,onFormatText:k,onDeleteElement:S,onApplyLayout:z,onPlay:H,selectedElement:i,appName:b,onAiAction:n,onAiResponseAction:w,aiResponse:c,isAiLoading:v,onNewPresentation:N,onLoadPresentation:d,appBgColor:B="#B7472A",uiScale:M,source:y,onGenerateImageClick:R,onUploadImageClick:u})=>{let G=le.default.useRef(null),[q,Q]=(0,le.useState)("Home"),[$,r]=(0,le.useState)(!1),[f,m]=(0,le.useState)(!1),[F,j]=(0,le.useState)(!1),[ne,W]=(0,le.useState)(!1),[te,ce]=(0,le.useState)("file"),[ae,se]=(0,le.useState)(""),X=(i==null?void 0:i.type)==="text",ge=(i==null?void 0:i.type)==="shape",fe=(i==null?void 0:i.type)==="image",be="#B7472A";return(0,e.jsxs)("div",{className:"flex flex-col border-b border-slate-200 bg-white z-50 select-none",style:{fontSize:`${12*M}px`},children:[(0,e.jsxs)("div",{className:"bg-white flex items-center justify-stretch border-b border-slate-200/60 transition-all duration-300 relative z-[1000]",style:{height:`${120*M}px`,overflow:"visible"},children:[(0,e.jsxs)("div",{className:O("flex-1 flex flex-col items-center border-r border-slate-100 px-3 gap-1 h-full py-2",M<.84?"min-w-0":"min-w-fit"),children:[(0,e.jsxs)("div",{className:"flex items-center justify-center gap-1 my-auto",children:[(0,e.jsxs)("button",{onClick:p,className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg group transition-all min-w-[64px]",children:[(0,e.jsx)("div",{className:"bg-orange-50 p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(L.Plus,{size:20,style:{color:B}})}),(0,e.jsx)("span",{className:"text-[10px] font-bold text-slate-700",children:"New Slide"})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("div",{className:"relative",children:[(0,e.jsxs)("button",{onClick:()=>r(!$),className:O("flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg transition-all min-w-[64px]",$&&"bg-slate-100"),children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg",children:(0,e.jsx)(L.Layout,{size:20,className:"text-slate-500"})}),(0,e.jsx)("span",{className:"text-[10px] font-medium text-slate-500",children:"Layout"})]}),$&&(0,e.jsxs)("div",{className:"absolute top-full left-0 mt-2 bg-white border border-slate-200 rounded-2xl shadow-3xl p-2 w-60 flex flex-col gap-1 z-[100] animate-in fade-in zoom-in-95 duration-200 ring-4 ring-black/5",children:[(0,e.jsxs)("button",{onClick:()=>{z("title"),r(!1)},className:"flex items-center gap-3 px-4 py-3 hover:bg-slate-50 rounded-xl text-[13px] font-bold text-slate-700 transition-all border border-transparent hover:border-slate-100 group",children:[(0,e.jsx)("div",{className:"p-2 bg-blue-50 text-blue-600 rounded-lg group-hover:bg-blue-600 group-hover:text-white transition-colors",children:(0,e.jsx)(L.FileText,{size:18})}),"Title Slide"]}),(0,e.jsxs)("button",{onClick:()=>{z("content"),r(!1)},className:"flex items-center gap-3 px-4 py-3 hover:bg-slate-50 rounded-xl text-[13px] font-bold text-slate-700 transition-all border border-transparent hover:border-slate-100 group",children:[(0,e.jsx)("div",{className:"p-2 bg-emerald-50 text-emerald-600 rounded-lg group-hover:bg-emerald-600 group-hover:text-white transition-colors",children:(0,e.jsx)(L.List,{size:18})}),"Title & Content"]}),(0,e.jsxs)("button",{onClick:()=>{z("split"),r(!1)},className:"flex items-center gap-3 px-4 py-3 hover:bg-slate-50 rounded-xl text-[13px] font-bold text-slate-700 transition-all border border-transparent hover:border-slate-100 group",children:[(0,e.jsx)("div",{className:"p-2 bg-purple-50 text-purple-600 rounded-lg group-hover:bg-purple-600 group-hover:text-white transition-colors",children:(0,e.jsx)(L.Columns,{size:18})}),"Two Columns"]})]})]})]}),M>=.85&&(0,e.jsx)("span",{className:"text-[9px] uppercase tracking-[0.2em] font-black text-slate-300 mt-auto",children:"Slides"})]}),(0,e.jsxs)("div",{className:O("flex-1 flex flex-col items-center border-r border-slate-100 px-3 gap-1 h-full py-2",M<.85?"px-2":"px-4"),children:[(0,e.jsxs)("div",{className:"flex items-center justify-center gap-1.5 w-full mt-1",children:[(0,e.jsx)("select",{disabled:!X,value:(i==null?void 0:i.fontFamily)||"Arial",onChange:P=>k({fontFamily:P.target.value}),className:O("h-7 px-2 text-[11px] text-slate-900 border border-slate-200 rounded-lg font-semibold bg-white hover:border-slate-300 outline-none disabled:opacity-50 transition-colors appearance-none cursor-pointer",M<.85?"flex-1":"w-44"),children:jt.map(P=>(0,e.jsx)("option",{value:P,children:P},P))}),(0,e.jsx)("select",{disabled:!X,value:(i==null?void 0:i.fontSize)||24,onChange:P=>k({fontSize:parseInt(P.target.value)}),className:"h-7 px-1.5 text-[11px] text-slate-900 border border-slate-200 rounded-lg font-semibold bg-white hover:border-slate-300 outline-none w-14 disabled:opacity-50 transition-colors appearance-none cursor-pointer text-center",children:Zt.map(P=>(0,e.jsx)("option",{value:P,children:P},P))})]}),(0,e.jsxs)("div",{className:"flex items-center justify-between w-full mt-auto mb-1",children:[(0,e.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,e.jsx)("button",{disabled:!X,onClick:()=>k({isBold:!i.isBold}),className:O("p-1.5 rounded-lg transition-all disabled:opacity-30",i!=null&&i.isBold?"bg-slate-100 text-slate-900":"text-slate-500 hover:bg-slate-50"),children:(0,e.jsx)(L.Bold,{size:14,strokeWidth:3})}),(0,e.jsx)("button",{disabled:!X,onClick:()=>k({isItalic:!i.isItalic}),className:O("p-1.5 rounded-lg transition-all disabled:opacity-30",i!=null&&i.isItalic?"bg-slate-100 text-slate-900":"text-slate-500 hover:bg-slate-50"),children:(0,e.jsx)(L.Italic,{size:14})}),(0,e.jsx)("button",{disabled:!X,onClick:()=>k({isBulleted:!i.isBulleted}),className:O("p-1.5 rounded-lg transition-all disabled:opacity-30",i!=null&&i.isBulleted?"bg-slate-100 text-slate-900":"text-slate-500 hover:bg-slate-50"),children:(0,e.jsx)(L.List,{size:14})}),(0,e.jsxs)("div",{className:"relative group p-1 hover:bg-slate-50 rounded-lg transition-colors cursor-pointer ml-0.5",children:[(0,e.jsx)("input",{type:"color",disabled:!i,value:X?i.color||"#000000":(i==null?void 0:i.fill)||"#3b82f6",onChange:P=>k(X?{color:P.target.value}:{fill:P.target.value}),className:"w-6 h-4 p-0 border-0 bg-transparent cursor-pointer disabled:opacity-50",title:"Font/Fill Color"}),(0,e.jsx)("div",{className:"absolute bottom-1 left-1 right-1 h-0.5 rounded-full",style:{backgroundColor:X?i.color||"#000000":(i==null?void 0:i.fill)||"#3b82f6"}})]})]}),(0,e.jsx)("div",{className:"h-4 w-[1px] bg-slate-200 mx-1.5"}),(0,e.jsxs)("div",{className:"flex items-center gap-0.5 bg-slate-50/50 p-0.5 rounded-lg",children:[(0,e.jsx)("button",{disabled:!X,onClick:()=>k({textAlign:"left"}),className:O("p-1 rounded-md transition-all disabled:opacity-30",(i==null?void 0:i.textAlign)==="left"?"bg-white shadow-sm scale-105":"text-slate-400"),style:{color:(i==null?void 0:i.textAlign)==="left"?B:void 0},children:(0,e.jsx)(L.AlignLeft,{size:13})}),(0,e.jsx)("button",{disabled:!X,onClick:()=>k({textAlign:"center"}),className:O("p-1 rounded-md transition-all disabled:opacity-30",(i==null?void 0:i.textAlign)==="center"?"bg-white shadow-sm scale-105":"text-slate-400"),style:{color:(i==null?void 0:i.textAlign)==="center"?B:void 0},children:(0,e.jsx)(L.AlignCenter,{size:13})}),(0,e.jsx)("button",{disabled:!X,onClick:()=>k({textAlign:"right"}),className:O("p-1 rounded-md transition-all disabled:opacity-30",(i==null?void 0:i.textAlign)==="right"?"bg-white shadow-sm scale-105":"text-slate-400"),style:{color:(i==null?void 0:i.textAlign)==="right"?B:void 0},children:(0,e.jsx)(L.AlignRight,{size:13})})]})]}),M>=.85&&(0,e.jsx)("span",{className:"text-[9px] uppercase tracking-[0.2em] font-black text-slate-300 mt-auto",children:"Font"})]}),(0,e.jsxs)("div",{className:"flex-1 flex flex-col items-center border-r border-slate-100 px-3 gap-1 h-full py-2 shrink-0",children:[(0,e.jsxs)("div",{className:"flex items-center justify-center gap-2 my-auto",children:[(0,e.jsxs)("div",{className:"relative group/shapes flex justify-center",children:[(0,e.jsxs)("button",{className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg group transition-all min-w-[64px]",onClick:()=>{var P;return(P=window._toggleShapesMenu)==null?void 0:P.call(window)},children:[(0,e.jsx)("div",{className:"bg-blue-50 p-1.5 rounded-lg group-hover:scale-105 transition-transform",children:(0,e.jsx)(L.Square,{size:20,className:"text-blue-600"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold text-slate-700",children:"Shapes"})]}),(0,e.jsx)(Ut,{onAddShape:P=>{s(P)},uiScale:M})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{onClick:h,className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-600 transition-colors min-w-[64px]",title:"Text Box",children:[(0,e.jsx)("div",{className:"p-1.5",children:(0,e.jsx)(L.Type,{size:20})}),(0,e.jsx)("span",{className:"text-[10px] font-medium text-slate-500",children:"Text Box"})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{onClick:()=>{var P;return(P=G.current)==null?void 0:P.click()},className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-600 transition-colors min-w-[64px]",title:"Image",children:[(0,e.jsx)("div",{className:"p-1.5",children:(0,e.jsx)(L.Image,{size:20})}),(0,e.jsx)("span",{className:"text-[10px] font-medium text-slate-500",children:"Image"}),(0,e.jsx)("input",{type:"file",ref:G,className:"hidden",accept:"image/*",onChange:P=>{var me;return((me=P.target.files)==null?void 0:me[0])&&t(P.target.files[0])}})]})]}),M>=.85&&(0,e.jsx)("span",{className:"text-[9px] uppercase tracking-[0.2em] font-black text-slate-300 mt-auto",children:"Drawing"})]}),(0,e.jsxs)("div",{className:"flex-1 flex flex-col items-center border-r border-slate-100 px-3 gap-1 h-full py-2 relative",children:[(0,e.jsxs)("div",{className:"flex items-center justify-center gap-1 my-auto h-full",children:[(0,e.jsxs)("button",{disabled:!X||v,onClick:()=>n(i.id,"shorten"),className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-600 disabled:opacity-20 transition-all min-w-[64px]",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(L.Sparkles,{size:20,className:"text-purple-500"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold",children:"Shorten"})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{disabled:!X||v,onClick:()=>n(i.id,"reframe"),className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-600 disabled:opacity-20 transition-all min-w-[64px]",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(L.Sparkles,{size:20,className:"text-blue-500"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold",children:"Reframe"})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{disabled:!X||v,onClick:()=>n(i.id,"lengthen"),className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-600 disabled:opacity-20 transition-all min-w-[68px]",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(L.Sparkles,{size:20,className:"text-emerald-500"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold text-center leading-tight",children:"Lengthen"})]})]}),v&&(0,e.jsx)("div",{className:"absolute inset-x-0 top-2 bottom-8 bg-white/80 flex items-center justify-center rounded-lg z-10 backdrop-blur-[1px]",children:(0,e.jsx)(L.RefreshCw,{size:16,className:"text-blue-600 animate-spin"})}),M>=.85&&(0,e.jsx)("span",{className:"text-[9px] uppercase tracking-[0.2em] font-black text-slate-300 mt-auto",children:"AI Text"})]}),(0,e.jsxs)("div",{className:"flex-1 flex flex-col items-center pl-4 pr-3 gap-1 h-full py-2 relative",children:[(0,e.jsxs)("div",{className:"flex items-center justify-center gap-1 my-auto h-full",children:[(0,e.jsxs)("button",{onClick:H,className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-700 transition-all min-w-[64px] group",title:"Present",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(L.Play,{size:20,className:"fill-slate-700 group-hover:fill-slate-900"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold",children:"Present"})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{onClick:x,className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-700 transition-all min-w-[64px] group",title:"Export",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(L.Download,{size:20,className:"text-emerald-600"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold",children:"Export"})]}),i&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{onClick:S,className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-red-50 rounded-lg text-red-600 transition-all min-w-[64px] group",title:"Delete",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(L.Trash2,{size:20})}),(0,e.jsx)("span",{className:"text-[10px] font-bold",children:"Delete"})]})]})]}),(0,e.jsxs)("div",{className:"absolute bottom-2 right-3 flex items-center gap-1 px-1.5 py-0.5 bg-emerald-50/50 rounded-md border border-emerald-100/50",children:[(0,e.jsx)(L.Check,{size:9,className:"text-emerald-500"}),(0,e.jsx)("span",{className:"text-[7px] font-black text-emerald-600/70 tracking-tighter uppercase",children:"Saved"})]}),M>=.85&&(0,e.jsx)("span",{className:"text-[9px] uppercase tracking-[0.2em] font-black text-slate-300 mt-auto",children:"Actions"})]})]}),ne&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"fixed inset-0 bg-slate-900/40 backdrop-blur-sm z-[2000]",onClick:()=>W(!1)}),(0,e.jsxs)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[480px] bg-white rounded-3xl shadow-2xl z-[2001] border border-slate-200 p-8 animate-in fade-in zoom-in-95 duration-200",children:[(0,e.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,e.jsxs)("h3",{className:"text-lg font-black text-slate-800 tracking-tight flex items-center gap-3",children:[(0,e.jsx)("div",{className:"p-2 bg-blue-50 text-blue-600 rounded-xl",children:(0,e.jsx)(L.Download,{size:20})}),"Upload Presentation"]}),(0,e.jsx)("button",{onClick:()=>W(!1),className:"text-slate-400 hover:text-slate-600 transition-colors",children:(0,e.jsx)(L.RefreshCw,{size:20,className:"rotate-45"})})]}),(0,e.jsxs)("div",{className:"flex gap-2 p-1 bg-slate-50 rounded-2xl mb-8",children:[(0,e.jsx)("button",{onClick:()=>ce("file"),className:O("flex-1 py-3 text-xs font-black rounded-xl transition-all",te==="file"?"bg-white text-blue-600 shadow-sm":"text-slate-500 hover:text-slate-700"),children:"FILE UPLOAD"}),(0,e.jsx)("button",{onClick:()=>ce("link"),className:O("flex-1 py-3 text-xs font-black rounded-xl transition-all",te==="link"?"bg-white text-blue-600 shadow-sm":"text-slate-500 hover:text-slate-700"),children:"LINK UPLOAD"})]}),te==="file"?(0,e.jsxs)("label",{className:"flex flex-col items-center justify-center gap-4 py-12 border-2 border-dashed border-slate-200 rounded-3xl hover:border-blue-400 hover:bg-blue-50/50 transition-all cursor-pointer group",children:[(0,e.jsx)("div",{className:"p-4 bg-white rounded-2xl shadow-sm border border-slate-100 group-hover:scale-110 transition-transform",children:(0,e.jsx)(L.Plus,{size:24,className:"text-blue-500"})}),(0,e.jsxs)("div",{className:"text-center",children:[(0,e.jsx)("p",{className:"text-sm font-bold text-slate-700",children:"Choose a PPTX file"}),(0,e.jsx)("p",{className:"text-xs text-slate-400 mt-1",children:"Maximum file size: 50MB"})]}),(0,e.jsx)("input",{type:"file",accept:".pptx",className:"hidden",onChange:P=>{var re;let me=(re=P.target.files)==null?void 0:re[0];me&&(d(me),W(!1))}})]}):(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsx)("div",{className:"relative",children:(0,e.jsx)("input",{type:"text",placeholder:"Paste S3 or public URL",value:ae,onChange:P=>se(P.target.value),className:"w-full bg-slate-50 border border-slate-200 rounded-2xl px-5 py-4 focus:outline-none focus:ring-4 focus:ring-blue-500/10 focus:border-blue-500 text-sm placeholder:text-slate-400 text-black"})}),(0,e.jsx)("button",{onClick:()=>{ae.trim()&&(d(ae.trim()),W(!1))},disabled:!ae.trim(),className:"w-full bg-blue-600 hover:bg-blue-700 disabled:bg-slate-300 text-white font-black py-4 rounded-2xl transition-all shadow-lg shadow-blue-500/20",children:"LOAD PRESENTATION"}),(0,e.jsx)("p",{className:"text-[10px] text-slate-400 text-center uppercase tracking-widest font-black",children:"Supports S3, Dropbox, and public URLS"})]})]})]})]})};var we=require("lucide-react"),ie=require("@dnd-kit/core"),ve=require("@dnd-kit/sortable"),gt=require("@dnd-kit/utilities");var Z=require("react/jsx-runtime"),pt={triangle:"M 12,4 L 20,18 H 4 L 12,4 Z",rightTriangle:"M 4,4 V 20 H 20 L 4,4 Z",rhombus:"M 12,4 L 20,12 L 12,20 L 4,12 L 12,4 Z",parallelogram:"M 7,4 H 21 L 17,20 H 3 L 7,4 Z",trapezoid:"M 6,4 H 18 L 21,20 H 3 L 6,4 Z",pentagon:"M 12,3 L 21,9 V 19 H 3 V 9 L 12,3 Z",hexagon:"M 12,3 L 20,7.5 V 16.5 L 12,21 L 4,16.5 V 7.5 L 12,3 Z",heptagon:"M 12,3 L 18.5,6 L 21,13 L 16,20 H 8 L 3,13 L 5.5,6 L 12,3 Z",octagon:"M 8.5,3 H 15.5 L 21,8.5 V 15.5 L 15.5,21 H 8.5 L 3,15.5 V 8.5 L 8.5,3 Z",heart:"M 12,21.35 L 10.55,20.03 C 5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3 C 9.24,3 10.91,3.81 12,5.09 C 13.09,3.81 14.76,3 16.5,3 C 19.58,3 22,5.42 22,8.5 C 22,12.28 18.6,15.36 13.45,20.04 L 12,21.35 Z",smiley:"M 12,3 A 9,9 0 1,0 12,21 A 9,9 0 1,0 12,3 M 9,9 A 1.5,1.5 0 1,1 9,10.5 A 1.5,1.5 0 1,1 9,9 M 15,9 A 1.5,1.5 0 1,1 15,10.5 A 1.5,1.5 0 1,1 15,9 M 8,15 C 8,15 9.5,17 12,17 C 14.5,17 16,15 16,15",sun:"M 12,7 A 5,5 0 1,1 12,17 A 5,5 0 1,1 12,7 M 12,2 V 4 M 12,20 V 22 M 4,12 H 2 M 22,12 H 20 M 19.07,4.93 L 17.66,6.34 M 6.34,17.66 L 4.93,19.07 M 4.93,4.93 L 6.34,6.34 M 17.66,17.66 L 19.07,19.07",moon:"M 12,3 A 9,9 0 1,0 12,21 A 7,7 0 0,1 12,3 Z",circle:"M 12,3 A 9,9 0 1,1 12,21 A 9,9 0 1,1 12,3 Z",arrowRight:"M 4,11 H 15.5 L 12,7.5 L 13.5,6 L 19.5,12 L 13.5,18 L 12,16.5 L 15.5,13 H 4 Z",arrowLeft:"M 20,11 H 8.5 L 12,7.5 L 10.5,6 L 4.5,12 L 10.5,18 L 12,16.5 L 8.5,13 H 20 Z",arrowUp:"M 13,20 V 8.5 L 16.5,12 L 18,10.5 L 12,4.5 L 6,10.5 L 7.5,12 L 11,8.5 V 20 Z",arrowDown:"M 11,4 V 15.5 L 7.5,12 L 6,13.5 L 12,19.5 L 18,13.5 L 16.5,12 L 13,15.5 V 4 Z",arrowLeftRight:"M 4,12 L 8,8 V 11 H 16 V 8 L 20,12 L 16,16 V 13 H 8 V 16 L 4,12 Z",arrowUpDown:"M 12,4 L 8,8 H 11 V 16 H 8 L 12,20 L 16,16 H 13 V 8 H 16 L 12,4 Z",star4:"M 12,2 L 14,10 L 22,12 L 14,14 L 12,22 L 10,14 L 2,12 L 10,10 L 12,2 Z",star5:"M 12,2 L 14.5,9.5 H 22 L 16,14 L 18.5,21.5 L 12,17 L 5.5,21.5 L 8,14 L 2,9.5 H 9.5 L 12,2 Z",star6:"M 12,2 L 15,7 L 21,6 L 17,10.5 L 19,17 L 12,14 L 5,17 L 7,10.5 L 3,6 L 9,7 L 12,2 Z",star8:"M 12,2 L 14,6 L 18,4 L 16,8 L 20,10 L 16,12 L 18,16 L 14,14 L 12,18 L 10,14 L 6,16 L 8,12 L 4,10 L 8,8 L 6,4 L 10,6 L 12,2 Z",cloud:"M 17,19 C 14.8,19 13.1,17.7 12.3,15.8 C 11.4,16 10.5,16.2 9.6,16.2 C 7,16.2 4.7,14.6 3.7,12.3 C 1.5,11.8 0,9.9 0,7.6 C 0,5 2.1,2.9 4.7,2.9 C 5.3,2.9 5.8,3 6.3,3.1 C 7.6,1.4 9.6,0.3 11.9,0.3 C 12.5,0.3 13.1,0.4 13.7,0.5 C 15,1.9 15.9,3.7 16,5.7 C 18.2,6.1 20,8.1 20,10.5 C 20,13.2 17.8,15.4 15.1,15.4 C 14.8,15.4 14.5,15.4 14.2,15.3 C 14.2,15.4 14.2,15.4 14.2,15.5 C 14.2,17.4 15.5,19 17,19 Z",lightning:"M 13,2 L 3,14 H 12 V 22 L 22,10 H 13 L 16,2 Z",plus:"M 19,13 H 13 V 19 H 11 V 13 H 5 V 11 H 11 V 5 H 13 V 11 H 19 V 13 Z",minus:"M 19,13 H 5 V 11 H 19 V 13 Z",multiply:"M 19,6.41 L 17.59,5 L 12,10.59 L 6.41,5 L 5,6.41 L 10.59,12 L 5,17.59 L 6.41,19 L 12,13.41 L 17.59,19 L 19,17.59 L 13.41,12 L 19,6.41 Z",divide:"M 12,7 A 2,2 0 1,1 12,11 A 2,2 0 1,1 12,7 M 12,17 A 2,2 0 1,1 12,21 A 2,2 0 1,1 12,17 M 5,11 H 19 V 13 H 5 V 11 Z",equal:"M 19,10 H 5 V 8 H 19 V 10 M 19,16 H 5 V 14 H 19 V 16 Z"},Ot=({slide:h,index:t,isActive:s,onSelect:p,onDelete:x,onDuplicate:k,showDelete:S,uiScale:z,appBgColor:H})=>{let{attributes:i,listeners:b,setNodeRef:n,transform:w,transition:c,isDragging:v}=(0,ve.useSortable)({id:h.id}),N={transform:gt.CSS.Transform.toString(w),transition:c,zIndex:v?2:1,opacity:v?.5:1};return(0,Z.jsxs)("div",{ref:n,onClick:p,className:O("cursor-pointer border-[1.5px] border-solid p-2 transition-all duration-300 group relative select-none",s?"bg-white":"border-transparent hover:border-slate-200 bg-white/50 hover:bg-white"),style:I(C({},N),{borderColor:s?H:void 0}),children:[(0,Z.jsxs)("div",{className:O("text-[10px] font-bold mb-1 flex items-center justify-between transition-colors",!s&&"text-slate-400"),style:{color:s?H:void 0},children:[(0,Z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,Z.jsx)("div",I(C(C({},i),b),{className:"cursor-grab active:cursor-grabbing p-0.5 hover:bg-slate-100 text-slate-300 hover:text-slate-500",children:(0,Z.jsx)(we.GripVertical,{size:10})})),(0,Z.jsxs)("span",{children:["SLIDE ",t+1]})]}),(0,Z.jsxs)("div",{className:"flex items-center gap-1",children:[s&&(0,Z.jsx)("span",{className:"h-1.5 w-1.5",style:{backgroundColor:H}}),(0,Z.jsxs)("div",{className:"flex items-center opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,Z.jsx)("button",{onClick:d=>{d.stopPropagation(),k()},className:"p-1 hover:bg-blue-50 text-slate-400 hover:text-blue-500 transition-all",title:"Duplicate Slide",children:(0,Z.jsx)(we.Copy,{size:12})}),S&&(0,Z.jsx)("button",{onClick:d=>{d.stopPropagation(),x()},className:"p-1 hover:bg-red-50 text-red-400 hover:text-red-500 transition-all",title:"Delete Slide",children:(0,Z.jsx)(we.Trash2,{size:12})})]})]})]}),(0,Z.jsx)("div",{className:"aspect-video bg-white flex items-center justify-center border border-slate-200 overflow-hidden relative group-hover:shadow-sm transition-shadow",children:(0,Z.jsx)("div",{className:"origin-center pointer-events-none select-none shrink-0",style:{width:"1200px",height:"675px",transform:`scale(${180*z/1200})`,backgroundColor:"#ffffff"},children:h.elements.sort((d,B)=>(d.zIndex||0)-(B.zIndex||0)).map(d=>{var M;let B={position:"absolute",left:d.x,top:d.y,width:d.width,height:d.height,opacity:(M=d.opacity)!=null?M:1};if(d.type==="text")return(0,Z.jsx)("div",{style:I(C({},B),{fontSize:d.fontSize,fontFamily:d.fontFamily,color:d.color,textAlign:d.textAlign||"left",fontWeight:d.isBold?"bold":"normal",fontStyle:d.isItalic?"italic":"normal",lineHeight:1.2,overflow:"hidden",wordBreak:"break-word",whiteSpace:"pre-wrap"}),children:d.content},d.id);if(d.type==="shape"){let y=pt[d.shapeType]||(d.shapeType==="ellipse"?pt.circle:null);return y?(0,Z.jsx)("svg",{viewBox:"0 0 24 24",style:I(C({},B),{fill:d.fill}),preserveAspectRatio:"none",children:(0,Z.jsx)("path",{d:y})},d.id):(0,Z.jsx)("div",{style:I(C({},B),{backgroundColor:d.fill,borderRadius:d.shapeType==="ellipse"?"50%":"0"})},d.id)}else if(d.type==="image")return(0,Z.jsx)("img",{src:d.src,alt:"",style:I(C({},B),{objectFit:"contain"})},d.id);return null})})})]})},ht=({slides:h,currentSlideIndex:t,onSelectSlide:s,onDeleteSlide:p,onDuplicateSlide:x,onReorderSlides:k,uiScale:S,appBgColor:z="#B7472A"})=>{let H=(0,ie.useSensors)((0,ie.useSensor)(ie.PointerSensor,{activationConstraint:{distance:5}}),(0,ie.useSensor)(ie.KeyboardSensor,{coordinateGetter:ve.sortableKeyboardCoordinates})),i=b=>{let{active:n,over:w}=b;if(n.id!==(w==null?void 0:w.id)){let c=h.findIndex(N=>N.id===n.id),v=h.findIndex(N=>N.id===(w==null?void 0:w.id));k(c,v)}};return(0,Z.jsx)("div",{className:"bg-white border-r border-slate-100 overflow-y-auto p-4 flex flex-col gap-4",style:{width:`${256*S}px`},children:(0,Z.jsx)(ie.DndContext,{sensors:H,collisionDetection:ie.closestCenter,onDragEnd:i,children:(0,Z.jsx)(ve.SortableContext,{items:h.map(b=>b.id),strategy:ve.verticalListSortingStrategy,children:h.map((b,n)=>(0,Z.jsx)(Ot,{slide:b,index:n,isActive:n===t,onSelect:()=>s(n),onDelete:()=>p(n),onDuplicate:()=>x(n),showDelete:h.length>1,uiScale:S,appBgColor:z},b.id))})})})};var K=require("react"),Y=Se(require("fabric")),xe=require("lucide-react");var V=require("react/jsx-runtime"),Gt={triangle:"M 12,4 L 20,18 H 4 L 12,4 Z",rightTriangle:"M 4,4 V 20 H 20 L 4,4 Z",rhombus:"M 12,4 L 20,12 L 12,20 L 4,12 L 12,4 Z",parallelogram:"M 7,4 H 21 L 17,20 H 3 L 7,4 Z",trapezoid:"M 6,4 H 18 L 21,20 H 3 L 6,4 Z",pentagon:"M 12,3 L 21,9 V 19 H 3 V 9 L 12,3 Z",hexagon:"M 12,3 L 20,7.5 V 16.5 L 12,21 L 4,16.5 V 7.5 L 12,3 Z",heptagon:"M 12,3 L 18.5,6 L 21,13 L 16,20 H 8 L 3,13 L 5.5,6 L 12,3 Z",octagon:"M 8.5,3 H 15.5 L 21,8.5 V 15.5 L 15.5,21 H 8.5 L 3,15.5 V 8.5 L 8.5,3 Z",heart:"M 12,21.35 L 10.55,20.03 C 5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3 C 9.24,3 10.91,3.81 12,5.09 C 13.09,3.81 14.76,3 16.5,3 C 19.58,3 22,5.42 22,8.5 C 22,12.28 18.6,15.36 13.45,20.04 L 12,21.35 Z",smiley:"M 12,3 A 9,9 0 1,0 12,21 A 9,9 0 1,0 12,3 M 9,9 A 1.5,1.5 0 1,1 9,10.5 A 1.5,1.5 0 1,1 9,9 M 15,9 A 1.5,1.5 0 1,1 15,10.5 A 1.5,1.5 0 1,1 15,9 M 8,15 C 8,15 9.5,17 12,17 C 14.5,17 16,15 16,15",sun:"M 12,7 A 5,5 0 1,1 12,17 A 5,5 0 1,1 12,7 M 12,2 V 4 M 12,20 V 22 M 4,12 H 2 M 22,12 H 20 M 19.07,4.93 L 17.66,6.34 M 6.34,17.66 L 4.93,19.07 M 4.93,4.93 L 6.34,6.34 M 17.66,17.66 L 19.07,19.07",moon:"M 12,3 A 9,9 0 1,0 12,21 A 7,7 0 0,1 12,3 Z",circle:"M 12,3 A 9,9 0 1,1 12,21 A 9,9 0 1,1 12,3 Z",arrowRight:"M 4,11 H 15.5 L 12,7.5 L 13.5,6 L 19.5,12 L 13.5,18 L 12,16.5 L 15.5,13 H 4 Z",arrowLeft:"M 20,11 H 8.5 L 12,7.5 L 10.5,6 L 4.5,12 L 10.5,18 L 12,16.5 L 8.5,13 H 20 Z",arrowUp:"M 13,20 V 8.5 L 16.5,12 L 18,10.5 L 12,4.5 L 6,10.5 L 7.5,12 L 11,8.5 V 20 Z",arrowDown:"M 11,4 V 15.5 L 7.5,12 L 6,13.5 L 12,19.5 L 18,13.5 L 16.5,12 L 13,15.5 V 4 Z",arrowLeftRight:"M 4,12 L 8,8 V 11 H 16 V 8 L 20,12 L 16,16 V 13 H 8 V 16 L 4,12 Z",arrowUpDown:"M 12,4 L 8,8 H 11 V 16 H 8 L 12,20 L 16,16 H 13 V 8 H 16 L 12,4 Z",star4:"M 12,2 L 14,10 L 22,12 L 14,14 L 12,22 L 10,14 L 2,12 L 10,10 L 12,2 Z",star5:"M 12,2 L 14.5,9.5 H 22 L 16,14 L 18.5,21.5 L 12,17 L 5.5,21.5 L 8,14 L 2,9.5 H 9.5 L 12,2 Z",star6:"M 12,2 L 15,7 L 21,6 L 17,10.5 L 19,17 L 12,14 L 5,17 L 7,10.5 L 3,6 L 9,7 L 12,2 Z",star8:"M 12,2 L 14,6 L 18,4 L 16,8 L 20,10 L 16,12 L 18,16 L 14,14 L 12,18 L 10,14 L 6,16 L 8,12 L 4,10 L 8,8 L 6,4 L 10,6 L 12,2 Z",cloud:"M 17,19 C 14.8,19 13.1,17.7 12.3,15.8 C 11.4,16 10.5,16.2 9.6,16.2 C 7,16.2 4.7,14.6 3.7,12.3 C 1.5,11.8 0,9.9 0,7.6 C 0,5 2.1,2.9 4.7,2.9 C 5.3,2.9 5.8,3 6.3,3.1 C 7.6,1.4 9.6,0.3 11.9,0.3 C 12.5,0.3 13.1,0.4 13.7,0.5 C 15,1.9 15.9,3.7 16,5.7 C 18.2,6.1 20,8.1 20,10.5 C 20,13.2 17.8,15.4 15.1,15.4 C 14.8,15.4 14.5,15.4 14.2,15.3 C 14.2,15.4 14.2,15.4 14.2,15.5 C 14.2,17.4 15.5,19 17,19 Z",lightning:"M 13,2 L 3,14 H 12 V 22 L 22,10 H 13 L 16,2 Z",plus:"M 19,13 H 13 V 19 H 11 V 13 H 5 V 11 H 11 V 5 H 13 V 11 H 19 V 13 Z",minus:"M 19,13 H 5 V 11 H 19 V 13 Z",multiply:"M 19,6.41 L 17.59,5 L 12,10.59 L 6.41,5 L 5,6.41 L 10.59,12 L 5,17.59 L 6.41,19 L 12,13.41 L 17.59,19 L 19,17.59 L 13.41,12 L 19,6.41 Z",divide:"M 12,7 A 2,2 0 1,1 12,11 A 2,2 0 1,1 12,7 M 12,17 A 2,2 0 1,1 12,21 A 2,2 0 1,1 12,17 M 5,11 H 19 V 13 H 5 V 11 Z",equal:"M 19,10 H 5 V 8 H 19 V 10 M 19,16 H 5 V 14 H 19 V 16 Z"},Re=({slide:h,onElementUpdate:t,onSelect:s,uiScale:p,onSlashCommand:x,selectedElementId:k,onAiGenerateClick:S,onUploadImageClick:z,onDeleteElement:H})=>{let i=(0,K.useRef)(null),b=(0,K.useRef)(null),n=(0,K.useRef)(!1),w=(0,K.useRef)(t),c=(0,K.useRef)(s),v=(0,K.useRef)(null),[N,d]=(0,K.useState)(1),[B,M]=(0,K.useState)(!1),y=(0,K.useRef)({x:0,y:0});(0,K.useEffect)(()=>{if(!v.current)return;let u=new ResizeObserver(G=>{let q=G[0];if(q){let{width:Q,height:$}=q.contentRect,r=Q/1200,f=$/675,m=Math.min(r,f)*.95;d(m)}});return u.observe(v.current),()=>u.disconnect()},[]),(0,K.useEffect)(()=>{w.current=t,c.current=s},[t,s]),(0,K.useEffect)(()=>{if(i.current&&!b.current){let u=new Y.Canvas(i.current,{width:1200,height:675,backgroundColor:"white",selection:!0,preserveObjectStacking:!0});b.current=u,M(!0);let G=r=>{r.left<0&&r.set("left",0),r.top<0&&r.set("top",0);let f=r.getBoundingRect();f.left+f.width>(u.width||1200)&&r.set("left",(u.width||1200)-f.width),f.top+f.height>(u.height||675)&&r.set("top",(u.height||675)-f.height)};u.on("object:moving",r=>G(r.target)),u.on("object:scaling",r=>G(r.target));let q=r=>{var F;if(n.current)return;let f=r.target,m=(F=f.get("data"))==null?void 0:F.id;f&&m&&w.current(m,C({x:f.left,y:f.top,width:f.getScaledWidth(),height:f.getScaledHeight()},f.isType("textbox")?{content:f.text,textAlign:f.textAlign,fontSize:f.fontSize,fontFamily:f.fontFamily,color:f.fill}:{fill:f.fill}))};u.on("object:modified",q),u.on("text:changed",q);let Q=r=>{var m,F;let f=((m=r.selected)==null?void 0:m[0])||r.target;if(f){let j=(F=f.get("data"))==null?void 0:F.id;c.current(j)}};u.on("selection:created",Q),u.on("selection:updated",Q),u.on("selection:cleared",()=>c.current(null)),u.on("mouse:move",r=>{r.pointer&&(y.current={x:r.pointer.x,y:r.pointer.y})});let $=r=>{var ne;let f=b.current;if(!f)return;let m=f.getActiveObject();if(r.key==="/"){r.preventDefault();let W=0,te=0,ce=(ne=i.current)==null?void 0:ne.getBoundingClientRect();if(m&&m.isType("textbox")&&m.isEditing&&ce){let ae=m,se=ae.get2DCursorLocation(),X=ae.getCursorCoords(se);if(X){let ge=Y.util.transformPoint(new Y.Point(X.left,X.top),ae.calcTransformMatrix()),fe=f.viewportTransform||[1,0,0,1,0,0],be=Y.util.transformPoint(ge,fe);W=ce.left+be.x*N,te=ce.top+be.y*N}}else if(ce){let ae=f.viewportTransform||[1,0,0,1,0,0],se=Y.util.transformPoint(new Y.Point(y.current.x,y.current.y),ae);W=ce.left+se.x*N,te=ce.top+se.y*N}W&&te&&x({x:W,y:te+20});return}if(m&&m.isType("textbox")&&m.isEditing||!m)return;let F=r.shiftKey?10:1,j=!1;switch(r.key){case"ArrowLeft":m.set("left",m.left-F),j=!0;break;case"ArrowRight":m.set("left",m.left+F),j=!0;break;case"ArrowUp":m.set("top",m.top-F),j=!0;break;case"ArrowDown":m.set("top",m.top+F),j=!0;break}j&&(G(m),f.requestRenderAll(),q({target:m}))};window.addEventListener("keydown",$),u._keyboardListener=$}return()=>{if(b.current){let u=b.current._keyboardListener;u&&window.removeEventListener("keydown",u),b.current.dispose(),b.current=null}}},[]),(0,K.useEffect)(()=>{if(!b.current)return;let u=b.current;(async()=>{n.current=!0;let q=u.getObjects(),Q=new Set(h.elements.map(r=>r.id));q.forEach(r=>{var m;let f=(m=r.get("data"))==null?void 0:m.id;f&&!Q.has(f)&&u.remove(r)});let $=[...h.elements].sort((r,f)=>(r.zIndex||0)-(f.zIndex||0));for(let r of $){let f=q.find(m=>{var F;return((F=m.get("data"))==null?void 0:F.id)===r.id});if(f){if(f===u.getActiveObject()&&f.isType("textbox")&&f.isEditing)continue;let m={left:r.x,top:r.y,opacity:r.opacity!==void 0?r.opacity:1,zIndex:r.zIndex};r.type==="text"&&f.isType("textbox")?(m.text=r.content||" ",m.fontSize=r.fontSize||22,m.fill=r.color||"#000000",m.textAlign=r.textAlign||"left",m.fontWeight=r.isBold?"bold":"normal",m.fontStyle=r.isItalic?"italic":"normal",m.fontFamily=r.fontFamily||"Arial",m.width=Math.max(r.width||50,10)):r.type==="shape"?(m.fill=r.fill||"#cccccc",m.scaleX=(r.width||50)/(f.width||1),m.scaleY=(r.height||50)/(f.height||1)):r.type==="image"&&(m.scaleX=(r.width||100)/(f.width||1),m.scaleY=(r.height||100)/(f.height||1)),f.set(m)}else{let m=null,F={left:r.x,top:r.y,data:{id:r.id},originX:"left",originY:"top",opacity:r.opacity!==void 0?r.opacity:1};if(r.type==="text")m=new Y.Textbox(r.content||" ",I(C({},F),{width:Math.max(r.width||200,10),fontSize:r.fontSize||22,fill:r.color||"#000000",fontFamily:r.fontFamily||"Inter, Arial, sans-serif",textAlign:r.textAlign||"left",fontWeight:r.isBold?"bold":"normal",fontStyle:r.isItalic?"italic":"normal",splitByGrapheme:!1}));else if(r.type==="shape"){let j=r.fill||"#3b82f6";if(r.shapeType==="ellipse")m=new Y.Circle(I(C({},F),{radius:(r.width||100)/2,scaleY:(r.height||100)/(r.width||100),fill:j}));else if(r.shapeType==="rect")m=new Y.Rect(I(C({},F),{width:r.width||100,height:r.height||100,fill:j}));else{let ne=Gt[r.shapeType];if(ne){m=new Y.Path(ne,I(C({},F),{fill:j}));let W=m;W.set({scaleX:(r.width||100)/(W.width||1),scaleY:(r.height||100)/(W.height||1)})}else m=new Y.Rect(I(C({},F),{width:r.width||100,height:r.height||100,fill:j}))}}else if(r.type==="image")try{let j=await Y.FabricImage.fromURL(r.src);j.set(I(C({},F),{scaleX:(r.width||100)/(j.width||1),scaleY:(r.height||100)/(j.height||1)})),m=j}catch(j){console.error(j)}m&&u.add(m)}}u.renderAll(),n.current=!1})()},[h,B]);let R=h.elements.find(u=>u.id===k);return(0,V.jsx)("div",{ref:v,className:"w-full h-full flex items-center justify-center overflow-hidden relative",children:(0,V.jsxs)("div",{className:"border border-slate-200 overflow-hidden bg-white shadow-xl transition-all duration-300 ease-out shrink-0 relative",style:{transform:`scale(${N})`,transformOrigin:"center center"},children:[(0,V.jsx)("canvas",{ref:i}),R&&R.type==="image"&&(0,V.jsxs)("div",{className:"absolute z-[5000] flex flex-col w-64 bg-white border border-slate-200 shadow-2xl rounded-xl overflow-hidden animate-in fade-in zoom-in duration-200",style:{left:R.x+R.width/2>600?`${R.x-12}px`:`${R.x+R.width+12}px`,top:`${R.y+R.height/2}px`,transform:R.x+R.width/2>600?"translate(-100%, -50%)":"translate(0, -50%)"},children:[(0,V.jsx)("div",{className:"px-3 py-2 text-[10px] uppercase tracking-wider font-bold text-slate-400 bg-slate-50/50 border-b border-slate-100",children:"Image Actions"}),(0,V.jsxs)("div",{className:"p-1.5 flex flex-col gap-0.5",children:[(0,V.jsxs)("button",{onClick:u=>{u.stopPropagation(),S()},className:"w-full flex items-center gap-3 px-3 py-2 text-left transition-all duration-150 rounded-lg hover:bg-slate-50 group",children:[(0,V.jsx)("div",{className:"p-1.5 rounded-md bg-blue-50 text-blue-600 group-hover:bg-blue-600 group-hover:text-white transition-colors",children:(0,V.jsx)(xe.Sparkles,{size:16})}),(0,V.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,V.jsx)("span",{className:"text-sm font-semibold text-slate-900",children:"AI Generate Image"}),(0,V.jsx)("span",{className:"text-[11px] text-slate-400 truncate leading-tight",children:"Create an image with AI prompt"})]})]}),(0,V.jsxs)("button",{onClick:u=>{u.stopPropagation(),z()},className:"w-full flex items-center gap-3 px-3 py-2 text-left transition-all duration-150 rounded-lg hover:bg-slate-50 group",children:[(0,V.jsx)("div",{className:"p-1.5 rounded-md bg-slate-100 text-slate-500 group-hover:bg-slate-200 group-hover:text-slate-700 transition-colors",children:(0,V.jsx)(xe.Image,{size:16})}),(0,V.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,V.jsx)("span",{className:"text-sm font-semibold text-slate-700",children:"Change Image"}),(0,V.jsx)("span",{className:"text-[11px] text-slate-400 truncate leading-tight",children:"Replace with local file"})]})]}),(0,V.jsx)("div",{className:"h-[1px] bg-slate-100 my-1 mx-2"}),(0,V.jsxs)("button",{onClick:u=>{u.stopPropagation(),H()},className:"w-full flex items-center gap-3 px-3 py-2 text-left transition-all duration-150 rounded-lg hover:bg-red-50 group",children:[(0,V.jsx)("div",{className:"p-1.5 rounded-md bg-red-50 text-red-500 group-hover:bg-red-500 group-hover:text-white transition-colors",children:(0,V.jsx)(xe.Trash2,{size:16})}),(0,V.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,V.jsx)("span",{className:"text-sm font-semibold text-red-600",children:"Delete Element"}),(0,V.jsx)("span",{className:"text-[11px] text-red-400/80 truncate leading-tight",children:"Remove from slide"})]})]})]})]})]})})};var mt=Se(require("pptxgenjs"));var ze=class{async export(t){var i,b;let s=new mt.default,p=((i=t.layout)==null?void 0:i.width)||12192e3,x=((b=t.layout)==null?void 0:b.height)||6858e3,k=1200,S=675,z=n=>n/k*(p/914400),H=n=>n/S*(x/914400);t.slides.forEach(n=>{let w=s.addSlide();[...n.elements].sort((v,N)=>v.zIndex-N.zIndex).forEach(v=>{var B,M;let N=v.opacity!==void 0?(1-v.opacity)*100:0,d={x:z(v.x),y:H(v.y),w:z(v.width),h:H(v.height)};if(v.type==="text")w.addText(v.content,I(C({},d),{fontSize:(v.fontSize||18)/2,color:((B=v.color)==null?void 0:B.replace("#",""))||"000000",fontFace:v.fontFamily||"Arial"}));else if(v.type==="image")w.addImage(I(C({},d),{path:v.src,transparency:N}));else if(v.type==="shape"){let y=v.shapeType==="ellipse"?s.ShapeType.ellipse:s.ShapeType.rect;w.addShape(y,I(C({},d),{fill:{color:((M=v.fill)==null?void 0:M.replace("#",""))||"CCCCCC",transparency:N>0?Math.min(N+10,100):0}}))}})}),await s.writeFile({fileName:"presentation.pptx"})}};var ut=Se(require("jszip")),Ae=class{constructor(){this.slideWidth=12192e3;this.slideHeight=6858e3;this.CANVAS_WIDTH=1200;this.CANVAS_HEIGHT=675}async parse(t){var b,n;let s=t;if(typeof t=="string"){let w=await fetch(t);if(!w.ok){let c=w.status,v=w.statusText,N="";try{let d=await w.json();N=d.details||d.error||""}catch(d){}throw new Error(`Failed to fetch PPTX from ${t}: ${c} ${v} ${N?`(${N})`:""}`)}s=await w.arrayBuffer()}let p=await ut.default.loadAsync(s),x=await((b=p.file("ppt/presentation.xml"))==null?void 0:b.async("string"));if(!x)throw new Error("Invalid PPTX");let S=new DOMParser().parseFromString(x,"text/xml"),z=this.findFirstByLocalName(S,"sldSz");z&&(this.slideWidth=parseInt(this.getAttr(z,"cx")||"12192000"),this.slideHeight=parseInt(this.getAttr(z,"cy")||"6858000"));let H=Array.from(S.getElementsByTagNameNS("*","sldId")),i=[];for(let w=0;w<H.length;w++){let c=w+1,v=`ppt/slides/slide${c}.xml`,N=await((n=p.file(v))==null?void 0:n.async("string"));if(N){let d=await this.parseSlide(N,c,p);i.push(d)}}return{slides:i,layout:{width:this.slideWidth,height:this.slideHeight}}}getAttr(t,s){return t.getAttribute(s)||t.getAttribute(`a:${s}`)||t.getAttribute(`p:${s}`)||t.getAttribute(`r:${s}`)}findFirstByLocalName(t,s){let p=t.getElementsByTagNameNS("*",s);return p.length>0?p[0]:null}findAllByLocalName(t,s){return Array.from(t.getElementsByTagNameNS("*",s))}scaleX(t){return t/this.slideWidth*this.CANVAS_WIDTH}scaleY(t){return t/this.slideHeight*this.CANVAS_HEIGHT}parseColor(t){let s=this.findFirstByLocalName(t,"srgbClr");if(s){let x=`#${this.getAttr(s,"val")}`,k=this.findFirstByLocalName(s,"alpha"),S=k?parseInt(this.getAttr(k,"val")||"100000")/1e5:1;return{color:x,opacity:S}}let p=this.findFirstByLocalName(t,"schemeClr");if(p){let x=this.findFirstByLocalName(p,"alpha");return{color:"#000000",opacity:x?parseInt(this.getAttr(x,"val")||"100000")/1e5:1}}return{color:"#000000",opacity:1}}async resolveImage(t,s,p){var i,b;let x=await((i=p.file(`ppt/slides/_rels/slide${s}.xml.rels`))==null?void 0:i.async("string"));if(!x)return null;let S=new DOMParser().parseFromString(x,"text/xml"),z=Array.from(S.getElementsByTagName("Relationship")).find(n=>n.getAttribute("Id")===t),H=z==null?void 0:z.getAttribute("Target");if(H){let n=(H.startsWith("../")?`ppt/${H.substring(3)}`:`ppt/slides/${H}`).replace("ppt/slides/../","ppt/");return await((b=p.file(n))==null?void 0:b.async("blob"))||null}return null}async parseSlide(t,s,p){let k=new DOMParser().parseFromString(t,"text/xml"),S=[],z=0,H=this.findFirstByLocalName(k,"bg");if(H){let n=this.findFirstByLocalName(H,"blip"),w=(n==null?void 0:n.getAttributeNS("http://schemas.openxmlformats.org/officeDocument/2006/relationships","embed"))||(n==null?void 0:n.getAttribute("r:embed"));if(w){let c=await this.resolveImage(w,s,p);c&&S.push({id:`bg-${s}`,type:"image",src:URL.createObjectURL(c),x:0,y:0,width:this.CANVAS_WIDTH,height:this.CANVAS_HEIGHT,zIndex:z++,opacity:1})}}let i=this.findFirstByLocalName(k,"spTree");if(!i)return{id:`slide-${s}`,elements:S};let b=Array.from(i.children);for(let n of b){let w=n.localName;if(w==="sp"){let c=this.findFirstByLocalName(n,"txBody"),v=this.findFirstByLocalName(n,"xfrm"),N=v?this.findFirstByLocalName(v,"off"):null,d=v?this.findFirstByLocalName(v,"ext"):null;if(c&&N&&d){let M=this.findAllByLocalName(c,"p"),y="",R=18,u="#000000",G=1,q=!1;for(let Q of M){let $=this.findFirstByLocalName(Q,"pPr"),r=$?this.findFirstByLocalName($,"buNone"):null;$&&!r&&(this.findFirstByLocalName($,"buChar")||this.findFirstByLocalName($,"buAutoNum"))&&(q=!0,y+="\u2022 ");let f=this.findAllByLocalName(Q,"r");for(let m of f){let F=this.findFirstByLocalName(m,"t");F&&(y+=F.textContent);let j=this.findFirstByLocalName(m,"rPr");if(j){let ne=this.getAttr(j,"sz");ne&&(R=parseInt(ne)/100*2);let W=this.parseColor(j);u=W.color,G=W.opacity}}y+=`
4
- `}if(y.trim()){S.push({id:`el-${s}-${Date.now()}-${z}`,type:"text",content:y.trim(),x:this.scaleX(parseInt(this.getAttr(N,"x")||"0")),y:this.scaleY(parseInt(this.getAttr(N,"y")||"0")),width:this.scaleX(parseInt(this.getAttr(d,"cx")||"0")),height:this.scaleY(parseInt(this.getAttr(d,"cy")||"0")),fontSize:R,color:u,fontFamily:"Arial",zIndex:z++,isBulleted:q,opacity:G});continue}}let B=this.findFirstByLocalName(n,"prstGeom");if(B&&N&&d){let M=this.getAttr(B,"prst")||"rect",y=this.findFirstByLocalName(n,"spPr"),R=y?this.parseColor(y):{color:"#cccccc",opacity:1},u={rect:"rect",roundRect:"rect",ellipse:"ellipse",circle:"ellipse",triangle:"triangle",rtTriangle:"rightTriangle",diamond:"rhombus",parallelogram:"parallelogram",trapezoid:"trapezoid",pentagon:"pentagon",hexagon:"hexagon",heptagon:"heptagon",octagon:"octagon",heart:"heart",smileyFace:"smiley",sun:"sun",moon:"moon",rightArrow:"arrowRight",leftArrow:"arrowLeft",upArrow:"arrowUp",downArrow:"arrowDown",leftRightArrow:"arrowLeftRight",upDownArrow:"arrowUpDown",star4:"star4",star5:"star5",star6:"star6",star8:"star8",cloud:"cloud",lightningBolt:"lightning",plus:"plus",minus:"minus",multiply:"multiply",divide:"divide",equal:"equal"};S.push({id:`el-${s}-${Date.now()}-${z}`,type:"shape",shapeType:u[M]||"rect",fill:R.color,opacity:R.opacity,x:this.scaleX(parseInt(this.getAttr(N,"x")||"0")),y:this.scaleY(parseInt(this.getAttr(N,"y")||"0")),width:this.scaleX(parseInt(this.getAttr(d,"cx")||"0")),height:this.scaleY(parseInt(this.getAttr(d,"cy")||"0")),zIndex:z++})}}if(w==="pic"){let c=this.findFirstByLocalName(n,"blip"),v=(c==null?void 0:c.getAttributeNS("http://schemas.openxmlformats.org/officeDocument/2006/relationships","embed"))||(c==null?void 0:c.getAttribute("r:embed")),N=this.findFirstByLocalName(n,"xfrm"),d=N?this.findFirstByLocalName(N,"off"):null,B=N?this.findFirstByLocalName(N,"ext"):null;if(v&&d&&B){let M=await this.resolveImage(v,s,p);M&&S.push({id:`el-${s}-${Date.now()}-${z}`,type:"image",src:URL.createObjectURL(M),x:this.scaleX(parseInt(this.getAttr(d,"x")||"0")),y:this.scaleY(parseInt(this.getAttr(d,"y")||"0")),width:this.scaleX(parseInt(this.getAttr(B,"cx")||"0")),height:this.scaleY(parseInt(this.getAttr(B,"cy")||"0")),zIndex:z++,opacity:1})}}}return{id:`slide-${s}`,elements:S}}};var ye=require("react"),ke=require("lucide-react");var J=require("react/jsx-runtime"),Xe=({presentation:h,initialSlideIndex:t,onClose:s})=>{let[p,x]=(0,ye.useState)(t),k=h.slides[p],S=()=>{p>0&&x(p-1)},z=()=>{p<h.slides.length-1&&x(p+1)};(0,ye.useEffect)(()=>{let b=n=>{n.key==="ArrowRight"||n.key===" "||n.key==="PageDown"?z():n.key==="ArrowLeft"||n.key==="Backspace"||n.key==="PageUp"?S():n.key==="Escape"&&s()};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[p]);let[H,i]=(0,ye.useState)(1);return(0,ye.useEffect)(()=>{let b=()=>{let w=window.innerWidth-40,c=window.innerHeight-40,v=1200,N=675,d=w/v,B=c/N,M=Math.min(d,B);i(M)};return b(),window.addEventListener("resize",b),()=>window.removeEventListener("resize",b)},[]),(0,J.jsxs)("div",{className:"fixed inset-0 z-[99999] bg-[#0A0A0A] flex flex-col items-center justify-center overflow-hidden",children:[(0,J.jsxs)("div",{className:"absolute top-0 left-0 right-0 p-6 flex justify-between items-center opacity-0 hover:opacity-100 transition-opacity bg-gradient-to-b from-black/60 to-transparent z-[100] pointer-events-none",children:[(0,J.jsxs)("div",{className:"text-white/80 font-bold ml-4 pointer-events-auto",children:["Slide ",p+1," of ",h.slides.length]}),(0,J.jsx)("button",{onClick:s,className:"p-3 bg-white/10 hover:bg-white/20 text-white rounded-full transition-all pointer-events-auto",children:(0,J.jsx)(ke.X,{size:24})})]}),(0,J.jsx)("div",{className:"w-full h-full flex items-center justify-center",children:(0,J.jsx)("div",{className:"relative shadow-2xl shadow-black/80 bg-white",style:{width:"1200px",height:"675px",transform:`scale(${H})`,transformOrigin:"center center"},children:(0,J.jsx)(Re,{slide:k,onElementUpdate:()=>{},onSelect:()=>{},uiScale:.75,onSlashCommand:()=>{},selectedElementId:null,onAiGenerateClick:()=>{},onUploadImageClick:()=>{},onDeleteElement:()=>{}})})}),(0,J.jsxs)("div",{className:"absolute bottom-10 left-1/2 -translate-x-1/2 flex items-center gap-6 opacity-0 hover:opacity-100 transition-opacity bg-black/40 backdrop-blur-md px-6 py-3 rounded-full border border-white/10 pointer-events-auto",children:[(0,J.jsx)("button",{disabled:p===0,onClick:S,className:"p-2 text-white/50 hover:text-white disabled:opacity-20 transition-colors",children:(0,J.jsx)(ke.ChevronLeft,{size:32})}),(0,J.jsx)("div",{className:"h-6 w-[1px] bg-white/10"}),(0,J.jsx)("button",{disabled:p===h.slides.length-1,onClick:z,className:"p-2 text-white/50 hover:text-white disabled:opacity-20 transition-colors",children:(0,J.jsx)(ke.ChevronRight,{size:32})})]})]})};var ft=require("@google/generative-ai");var ee=Se(require("react")),E=require("lucide-react");var D=require("react/jsx-runtime"),vt=({onClose:h,onAction:t,position:s,canUseAi:p})=>{let[x,k]=(0,ee.useState)(""),[S,z]=(0,ee.useState)(0),H=(0,ee.useRef)(null),i=(0,ee.useMemo)(()=>{let n=[{id:"generate-image",label:"AI Generate Image",icon:E.Sparkles,category:"AI",description:"Create an image with AI prompt",action:()=>t("generate-image")},{id:"text",label:"Text Box",icon:E.Type,category:"Basic",description:"Insert a new text element",action:()=>t("add-text")},{id:"image",label:"Image",icon:E.Image,category:"Basic",description:"Upload and insert an image",action:()=>t("add-image")},{id:"new-slide",label:"New Slide",icon:E.PlusCircle,category:"Canvas",description:"Add a fresh slide to deck",action:()=>t("new-slide")},{id:"rect",label:"Rectangle",icon:E.Square,category:"Shapes",action:()=>t("add-shape","rect")},{id:"circle",label:"Circle",icon:E.Circle,category:"Shapes",action:()=>t("add-shape","circle")},{id:"triangle",label:"Triangle",icon:E.Triangle,category:"Shapes",action:()=>t("add-shape","triangle")},{id:"star5",label:"Star",icon:E.Star,category:"Shapes",action:()=>t("add-shape","star5")},{id:"arrowRight",label:"Arrow",icon:E.ArrowRight,category:"Shapes",action:()=>t("add-shape","arrowRight")}];return p&&n.unshift({id:"ai-reframe",label:"AI Reframe",icon:E.Sparkles,category:"AI",description:"Reword selected text",action:()=>t("ai-action","reframe")},{id:"ai-shorten",label:"AI Shorten",icon:E.Sparkles,category:"AI",description:"Summarize selected text",action:()=>t("ai-action","shorten")},{id:"ai-lengthen",label:"AI Lengthen",icon:E.Sparkles,category:"AI",description:"Expand selected text",action:()=>t("ai-action","lengthen")}),n},[t,p]),b=(0,ee.useMemo)(()=>i.filter(n=>n.label.toLowerCase().includes(x.toLowerCase())||n.category.toLowerCase().includes(x.toLowerCase())),[i,x]);return(0,ee.useEffect)(()=>{z(0)},[x]),(0,ee.useEffect)(()=>{let n=w=>{w.key==="ArrowDown"?(w.preventDefault(),z(c=>(c+1)%b.length)):w.key==="ArrowUp"?(w.preventDefault(),z(c=>(c-1+b.length)%b.length)):w.key==="Enter"?(w.preventDefault(),b[S]&&b[S].action()):w.key==="Escape"&&(w.preventDefault(),h())};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[b,S,h]),(0,ee.useEffect)(()=>{if(H.current){let n=H.current.children[S];n&&n.scrollIntoView({block:"nearest"})}},[S]),b.length===0&&x===""?null:(0,D.jsxs)("div",{className:"fixed z-[9999] w-72 bg-white rounded-xl shadow-2xl border border-slate-200 overflow-hidden flex flex-col animate-in fade-in zoom-in duration-200",style:{left:`${s.x}px`,top:`${s.y}px`,maxHeight:"400px"},onClick:n=>n.stopPropagation(),children:[(0,D.jsxs)("div",{className:"p-3 border-b border-slate-100 flex items-center gap-2 bg-slate-50/50",children:[(0,D.jsx)(E.Search,{size:14,className:"text-slate-400"}),(0,D.jsx)("input",{autoFocus:!0,type:"text",placeholder:"Type a command...",className:"bg-transparent border-none outline-none text-sm w-full font-medium text-slate-700 placeholder:text-slate-400",value:x,onChange:n=>k(n.target.value)})]}),(0,D.jsx)("div",{ref:H,className:"overflow-y-auto py-2 px-1 custom-scrollbar",children:b.length>0?b.map((n,w)=>{let c=w===S,v=w===0||b[w-1].category!==n.category;return(0,D.jsxs)(ee.default.Fragment,{children:[v&&(0,D.jsx)("div",{className:"px-3 py-1.5 text-[10px] uppercase tracking-wider font-bold text-slate-400",children:n.category}),(0,D.jsxs)("button",{className:O("w-full flex items-center gap-3 px-3 py-2 text-left transition-all duration-150 rounded-lg group",c?"bg-slate-100":"hover:bg-slate-50"),onClick:()=>n.action(),onMouseEnter:()=>z(w),children:[(0,D.jsx)("div",{className:O("p-1.5 rounded-md transition-colors",c?"bg-white shadow-sm text-blue-600":"bg-slate-100 text-slate-500 group-hover:text-slate-700"),children:(0,D.jsx)(n.icon,{size:16})}),(0,D.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,D.jsx)("span",{className:O("text-sm font-semibold truncate",c?"text-slate-900":"text-slate-700"),children:n.label}),n.description&&(0,D.jsx)("span",{className:"text-[11px] text-slate-400 truncate leading-tight",children:n.description})]}),c&&(0,D.jsx)("div",{className:"ml-auto text-[10px] font-mono font-bold text-slate-400 flex items-center gap-1 border border-slate-200 rounded px-1 px-0.5 bg-white",children:(0,D.jsx)("span",{children:"\u21B5"})})]})]},n.id)}):(0,D.jsxs)("div",{className:"px-3 py-8 text-center flex flex-col items-center gap-2",children:[(0,D.jsx)("div",{className:"p-3 bg-slate-50 rounded-full",children:(0,D.jsx)(E.Search,{size:20,className:"text-slate-300"})}),(0,D.jsxs)("span",{className:"text-sm text-slate-400 font-medium whitespace-nowrap",children:['No commands found for "',x,'"']})]})}),(0,D.jsxs)("div",{className:"px-3 py-2 border-t border-slate-100 bg-slate-50/50 flex items-center justify-between",children:[(0,D.jsxs)("div",{className:"flex items-center gap-1 text-[10px] font-medium text-slate-400",children:[(0,D.jsx)("span",{className:"border border-slate-200 rounded px-1 bg-white",children:"\u2191\u2193"}),(0,D.jsx)("span",{children:"to navigate"})]}),(0,D.jsxs)("div",{className:"flex items-center gap-1 text-[10px] font-medium text-slate-400",children:[(0,D.jsx)("span",{className:"border border-slate-200 rounded px-1 bg-white",children:"Esc"}),(0,D.jsx)("span",{children:"to close"})]})]})]})};var _=require("lucide-react");var o=require("react/jsx-runtime"),Wt=({initialPresentation:h,url:t,appName:s="SlideCanvas",onChange:p,geminiApiKey:x,width:k,height:S,appBgColor:z="#B7472A",showHomeOnEmpty:H=!1,initialSource:i,onSourceChange:b,proxyUrl:n,onGenerateImage:w})=>{var rt;let[c,v]=(0,A.useState)(h||{slides:[{id:"slide-1",elements:[]}],layout:{width:12192e3,height:6858e3}}),[N,d]=(0,A.useState)([]),[B,M]=(0,A.useState)([]),[y,R]=(0,A.useState)(0),[u,G]=(0,A.useState)(null),[q,Q]=(0,A.useState)(!1),[$,r]=(0,A.useState)(null),[f,m]=(0,A.useState)(!1),[F,j]=(0,A.useState)(i||(t?"url":null)),[ne,W]=(0,A.useState)(H&&!h&&!t&&!i),[te,ce]=(0,A.useState)(""),[ae,se]=(0,A.useState)({visible:!1,position:{x:0,y:0}}),[X,ge]=(0,A.useState)(!1),[fe,be]=(0,A.useState)(""),[P,me]=(0,A.useState)(!1),[re,Ie]=(0,A.useState)(null),[De,Ye]=(0,A.useState)(!1),[_e,Ve]=(0,A.useState)(!1);(0,A.useEffect)(()=>{re&&(Ye(!1),Ve(!0))},[re]),(0,A.useEffect)(()=>{t&&Be(t)},[t]);let[bt,Fe]=(0,A.useState)(!1),[Le,qe]=(0,A.useState)(null),Me=(0,A.useMemo)(()=>{let a=typeof k=="number"?k:parseInt(String(k));return isNaN(a)?1:Math.min(Math.max(a/1600,.7),1)},[k]),de=c.slides[y],wt=(0,A.useMemo)(()=>de.elements.find(a=>a.id===u)||null,[de,u]),Ne=(0,A.useCallback)(a=>{d(l=>[...l.slice(-19),c]),M([]),v(a),p==null||p(a)},[p,c]),Ke=()=>{if(N.length===0)return;let a=N[N.length-1];M(l=>[...l,c]),d(l=>l.slice(0,-1)),v(a)},je=()=>{if(B.length===0)return;let a=B[B.length-1];d(l=>[...l,c]),M(l=>l.slice(0,-1)),v(a)},ue=(0,A.useCallback)(a=>{v(l=>{let g=[...l.slides];g[y]=C(C({},g[y]),a);let T=I(C({},l),{slides:g});return d(U=>[...U.slice(-19),l]),M([]),p==null||p(T),T})},[y,p]),Pe=(0,A.useCallback)((a,l)=>{v(g=>{let T=g.slides[y],U=T.elements.map(pe=>pe.id===a?C(C({},pe),l):pe),oe=[...g.slides];oe[y]=I(C({},T),{elements:U});let he=I(C({},g),{slides:oe});return p==null||p(he),he})},[y,p]),xt=a=>{if(!u)return;if(de.elements.find(g=>g.id===u)){Pe(u,a);let g=c.slides[y],T=g.elements.map(oe=>oe.id===u?C(C({},oe),a):oe),U=[...c.slides];U[y]=I(C({},g),{elements:T}),Ne(I(C({},c),{slides:U}))}},He=(0,A.useCallback)(()=>{if(!u)return;let l=c.slides[y].elements.filter(g=>g.id!==u);ue({elements:l}),G(null)},[u,y,c,ue]),Je=()=>{let a={id:`text-${Date.now()}`,type:"text",content:"New Text",x:100,y:100,width:400,height:100,fontSize:48,fontFamily:"Arial",color:"#000000",zIndex:de.elements.length};ue({elements:[...de.elements,a]})},Ze=(0,A.useCallback)(async a=>{let l="";typeof a=="string"?l=a:l=await new Promise(U=>{let oe=new FileReader;oe.onload=he=>{var pe;return U((pe=he.target)==null?void 0:pe.result)},oe.readAsDataURL(a)});let g=`img-${Date.now()}`,T={id:g,type:"image",src:l,x:100,y:100,width:400,height:250,zIndex:de.elements.length};ue({elements:[...de.elements,T]}),G(g)},[de.elements,ue,G]),Qe=a=>{let l={id:`shape-${Date.now()}`,type:"shape",shapeType:a,fill:"#3b82f6",x:200,y:200,width:200,height:200,zIndex:de.elements.length};ue({elements:[...de.elements,l]})},et=()=>{let a={id:`slide-${Date.now()}`,elements:[]};Ne(I(C({},c),{slides:[...c.slides,a]})),R(c.slides.length)},yt=a=>{if(c.slides.length<=1)return;let l=c.slides.filter((g,T)=>T!==a);Ne(I(C({},c),{slides:l})),a<=y&&R(Math.max(0,y-1))},kt=a=>{let l=c.slides[a],g=I(C({},l),{id:`slide-${Date.now()}`,elements:l.elements.map(U=>I(C({},U),{id:`${U.type}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}))}),T=[...c.slides];T.splice(a+1,0,g),Ne(I(C({},c),{slides:T})),R(a+1)},Lt=(a,l)=>{if(a===l)return;let g=[...c.slides],[T]=g.splice(a,1);g.splice(l,0,T),Ne(I(C({},c),{slides:g})),y===a?R(l):y>a&&y<=l?R(y-1):y<a&&y>=l&&R(y+1)},Nt=a=>{let l=[],g=Date.now();a==="title"?l=[{id:`text-title-${g}`,type:"text",content:"Presentation Title",x:100,y:200,width:1e3,height:150,fontSize:80,fontFamily:"Inter",color:"#000000",textAlign:"center",isBold:!0,zIndex:0},{id:`text-sub-${g}`,type:"text",content:"Subtitle goes here",x:200,y:380,width:800,height:80,fontSize:36,fontFamily:"Inter",color:"#64748b",textAlign:"center",zIndex:1}]:a==="content"?l=[{id:`text-title-${g}`,type:"text",content:"Slide Title",x:60,y:40,width:800,height:80,fontSize:48,fontFamily:"Inter",color:"#000000",isBold:!0,zIndex:0},{id:`text-body-${g}`,type:"text",content:`\u2022 Add your points here
2
+ "use strict";var Ht=Object.create;var Ce=Object.defineProperty,Tt=Object.defineProperties,Bt=Object.getOwnPropertyDescriptor,Rt=Object.getOwnPropertyDescriptors,Dt=Object.getOwnPropertyNames,it=Object.getOwnPropertySymbols,Vt=Object.getPrototypeOf,st=Object.prototype.hasOwnProperty,Ft=Object.prototype.propertyIsEnumerable;var nt=(g,t,n)=>t in g?Ce(g,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):g[t]=n,L=(g,t)=>{for(var n in t||(t={}))st.call(t,n)&&nt(g,n,t[n]);if(it)for(var n of it(t))Ft.call(t,n)&&nt(g,n,t[n]);return g},A=(g,t)=>Tt(g,Rt(t));var jt=(g,t)=>{for(var n in t)Ce(g,n,{get:t[n],enumerable:!0})},lt=(g,t,n,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let y of Dt(t))!st.call(g,y)&&y!==n&&Ce(g,y,{get:()=>t[y],enumerable:!(p=Bt(t,y))||p.enumerable});return g};var xe=(g,t,n)=>(n=g!=null?Ht(Vt(g)):{},lt(t||!g||!g.__esModule?Ce(n,"default",{value:g,enumerable:!0}):n,g)),Zt=g=>lt(Ce({},"__esModule",{value:!0}),g);var Kt={};jt(Kt,{PptEditor:()=>Yt,PptxBlobExporter:()=>Ye,PptxExporter:()=>ze,PptxParser:()=>Ae});module.exports=Zt(Kt);function We(g,{insertAt:t}={}){if(!g||typeof document=="undefined")return;let n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css",t==="top"&&n.firstChild?n.insertBefore(p,n.firstChild):n.appendChild(p),p.styleSheet?p.styleSheet.cssText=g:p.appendChild(document.createTextNode(g))}We(`@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Lato:wght@400;700&family=Open+Sans:wght@400;600;700&family=Poppins:wght@400;500;600;700&family=Roboto:wght@400;500;700&family=Roboto+Slab:wght@400;700&family=Playfair+Display:wght@400;700&family=Merriweather:wght@400;700&family=Nunito+Sans:wght@400;600;700&family=Montserrat:wght@400;600;700&family=Oswald:wght@400;500&family=Raleway:wght@400;600;700&family=Ubuntu:wght@400;500;700&family=Lora:wght@400;700&family=PT+Sans:wght@400;700&family=PT+Serif:wght@400;700&family=Play:wght@400;700&family=Arvo:wght@400;700&family=Kanit:wght@400;500;600&display=swap";/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50: oklch(97.1% .013 17.38);--color-red-100: oklch(93.6% .032 17.717);--color-red-200: oklch(88.5% .062 18.334);--color-red-400: oklch(70.4% .191 22.216);--color-red-500: oklch(63.7% .237 25.331);--color-red-600: oklch(57.7% .245 27.325);--color-orange-50: oklch(98% .016 73.684);--color-amber-500: oklch(76.9% .188 70.08);--color-emerald-50: oklch(97.9% .021 166.113);--color-emerald-100: oklch(95% .052 163.051);--color-emerald-500: oklch(69.6% .17 162.48);--color-emerald-600: oklch(59.6% .145 163.225);--color-emerald-700: oklch(50.8% .118 165.612);--color-blue-50: oklch(97% .014 254.604);--color-blue-100: oklch(93.2% .032 255.585);--color-blue-400: oklch(70.7% .165 254.624);--color-blue-500: oklch(62.3% .214 259.815);--color-blue-600: oklch(54.6% .245 262.881);--color-blue-700: oklch(48.8% .243 264.376);--color-purple-50: oklch(97.7% .014 308.299);--color-purple-500: oklch(62.7% .265 303.9);--color-purple-600: oklch(55.8% .288 302.321);--color-slate-50: oklch(98.4% .003 247.858);--color-slate-100: oklch(96.8% .007 247.896);--color-slate-200: oklch(92.9% .013 255.508);--color-slate-300: oklch(86.9% .022 252.894);--color-slate-400: oklch(70.4% .04 256.788);--color-slate-500: oklch(55.4% .046 257.417);--color-slate-600: oklch(44.6% .043 257.281);--color-slate-700: oklch(37.2% .044 257.287);--color-slate-800: oklch(27.9% .041 260.031);--color-slate-900: oklch(20.8% .042 265.755);--color-black: #000;--color-white: #fff;--spacing: .25rem;--container-2xl: 42rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-base--line-height: 1.5 ;--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-2xl: 1.5rem;--text-2xl--line-height: calc(2 / 1.5);--text-4xl: 2.25rem;--text-4xl--line-height: calc(2.5 / 2.25);--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-black: 900;--tracking-tighter: -.05em;--tracking-tight: -.025em;--tracking-wider: .05em;--tracking-widest: .1em;--leading-tight: 1.25;--leading-relaxed: 1.625;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--ease-out: cubic-bezier(0, 0, .2, 1);--animate-spin: spin 1s linear infinite;--blur-sm: 8px;--blur-md: 12px;--aspect-video: 16 / 9;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono)}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor;@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-10{top:calc(var(--spacing) * 10)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1{bottom:calc(var(--spacing) * 1)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-10{bottom:calc(var(--spacing) * 10)}.left-0{left:calc(var(--spacing) * 0)}.left-1{left:calc(var(--spacing) * 1)}.left-1\\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-50{z-index:50}.z-\\[100\\]{z-index:100}.z-\\[1000\\]{z-index:1000}.z-\\[2000\\]{z-index:2000}.z-\\[2001\\]{z-index:2001}.z-\\[5000\\]{z-index:5000}.z-\\[9998\\]{z-index:9998}.z-\\[9999\\]{z-index:9999}.z-\\[10000\\]{z-index:10000}.z-\\[10001\\]{z-index:10001}.z-\\[99999\\]{z-index:99999}.container{width:100%;@media(width>=40rem){max-width:40rem}@media(width>=48rem){max-width:48rem}@media(width>=64rem){max-width:64rem}@media(width>=80rem){max-width:80rem}@media(width>=96rem){max-width:96rem}}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-1\\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-auto{margin-block:auto}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-0{margin-left:calc(var(--spacing) * 0)}.ml-0\\.5{margin-left:calc(var(--spacing) * .5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:var(--aspect-video)}.h-0{height:calc(var(--spacing) * 0)}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-32{height:calc(var(--spacing) * 32)}.h-\\[1px\\]{height:1px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\\[60vh\\]{max-height:60vh}.max-h-\\[90vh\\]{max-height:90vh}.max-h-\\[400px\\]{max-height:400px}.min-h-\\[56px\\]{min-height:56px}.min-h-\\[300px\\]{min-height:300px}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing) * 1)}.w-1\\.5{width:calc(var(--spacing) * 1.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\\[1px\\]{width:1px}.w-\\[480px\\]{width:480px}.w-\\[500px\\]{width:500px}.w-\\[600px\\]{width:600px}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\\[90vw\\]{max-width:90vw}.max-w-\\[300px\\]{max-width:300px}.max-w-\\[400px\\]{max-width:400px}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\\[64px\\]{min-width:64px}.min-w-\\[68px\\]{min-width:68px}.min-w-fit{min-width:fit-content}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-center{transform-origin:center}.origin-top-left{transform-origin:0 0}.-translate-x-1{--tw-translate-x: calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1{--tw-translate-y: calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-105{--tw-scale-x: 105%;--tw-scale-y: 105%;--tw-scale-z: 105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-110{--tw-scale-x: 110%;--tw-scale-y: 110%;--tw-scale-z: 110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.appearance-none{appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-stretch{justify-content:stretch}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.space-y-2{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-4{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-6{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}}.self-start{align-self:flex-start}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[2\\.5rem\\]{border-radius:2.5rem}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style: dashed;border-style:dashed}.border-none{--tw-border-style: none;border-style:none}.border-solid{--tw-border-style: solid;border-style:solid}.border-emerald-100{border-color:var(--color-emerald-100)}.border-emerald-100\\/50{border-color:color-mix(in srgb,oklch(95% .052 163.051) 50%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-emerald-100) 50%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-100\\/50{border-color:color-mix(in srgb,oklch(96.8% .007 247.896) 50%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-slate-100) 50%,transparent)}}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-200\\/60{border-color:color-mix(in srgb,oklch(92.9% .013 255.508) 60%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-slate-200) 60%,transparent)}}.border-transparent{border-color:transparent}.border-white{border-color:var(--color-white)}.border-white\\/10{border-color:color-mix(in srgb,#fff 10%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-\\[\\#0A0A0A\\]{background-color:#0a0a0a}.bg-black{background-color:var(--color-black)}.bg-black\\/40{background-color:color-mix(in srgb,#000 40%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\\/60{background-color:color-mix(in srgb,#000 60%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-50\\/50{background-color:color-mix(in srgb,oklch(97.9% .021 166.113) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-emerald-50) 50%,transparent)}}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-50\\/50{background-color:color-mix(in srgb,oklch(98.4% .003 247.858) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-50) 50%,transparent)}}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\\/50{background-color:color-mix(in srgb,oklch(96.8% .007 247.896) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-100) 50%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-200\\/50{background-color:color-mix(in srgb,oklch(92.9% .013 255.508) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-200) 50%,transparent)}}.bg-slate-800{background-color:var(--color-slate-800)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-900\\/40{background-color:color-mix(in srgb,oklch(20.8% .042 265.755) 40%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-slate-900) 40%,transparent)}}.bg-transparent{background-color:transparent}.bg-white{background-color:var(--color-white)}.bg-white\\/10{background-color:color-mix(in srgb,#fff 10%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\\/50{background-color:color-mix(in srgb,#fff 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-white\\/80{background-color:color-mix(in srgb,#fff 80%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.bg-gradient-to-b{--tw-gradient-position: to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black{--tw-gradient-from: var(--color-black);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-black\\/60{--tw-gradient-from: color-mix(in srgb, #000 60%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-gradient-from: color-mix(in oklab, var(--color-black) 60%, transparent)}--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to: transparent;--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-slate-700{fill:var(--color-slate-700)}.p-0{padding:calc(var(--spacing) * 0)}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-0\\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-10{padding-inline:calc(var(--spacing) * 10)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-11{padding-left:calc(var(--spacing) * 11)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading, var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading, var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading, var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading, var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.text-\\[7px\\]{font-size:7px}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.leading-relaxed{--tw-leading: var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading: var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight: var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight: var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\[0\\.2em\\]{--tw-tracking: .2em;letter-spacing:.2em}.tracking-\\[0\\.15em\\]{--tw-tracking: .15em;letter-spacing:.15em}.tracking-tight{--tw-tracking: var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking: var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wider{--tw-tracking: var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking: var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-500{color:var(--color-amber-500)}.text-black{color:var(--color-black)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-600\\/70{color:color-mix(in srgb,oklch(59.6% .145 163.225) 70%,transparent);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-emerald-600) 70%,transparent)}}.text-emerald-700{color:var(--color-emerald-700)}.text-purple-500{color:var(--color-purple-500)}.text-purple-600{color:var(--color-purple-600)}.text-red-400{color:var(--color-red-400)}.text-red-400\\/80{color:color-mix(in srgb,oklch(70.4% .191 22.216) 80%,transparent);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-red-400) 80%,transparent)}}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.text-white\\/50{color:color-mix(in srgb,#fff 50%,transparent);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.text-white\\/80{color:color-mix(in srgb,#fff 80%,transparent);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0%}.opacity-25{opacity:25%}.opacity-40{opacity:40%}.opacity-50{opacity:50%}.opacity-75{opacity:75%}.opacity-100{opacity:100%}.shadow-2xl{--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-black{--tw-shadow-color: #000;@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, var(--color-black) var(--tw-shadow-alpha), transparent)}}.shadow-black\\/80{--tw-shadow-color: color-mix(in srgb, #000 80%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-black) 80%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-blue-500{--tw-shadow-color: oklch(62.3% .214 259.815);@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, var(--color-blue-500) var(--tw-shadow-alpha), transparent)}}.shadow-blue-500\\/20{--tw-shadow-color: color-mix(in srgb, oklch(62.3% .214 259.815) 20%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-blue-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-emerald-500{--tw-shadow-color: oklch(69.6% .17 162.48);@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, var(--color-emerald-500) var(--tw-shadow-alpha), transparent)}}.shadow-emerald-500\\/20{--tw-shadow-color: color-mix(in srgb, oklch(69.6% .17 162.48) 20%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-emerald-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-black{--tw-ring-color: var(--color-black)}.ring-black\\/5{--tw-ring-color: color-mix(in srgb, #000 5%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--color-black) 5%, transparent)}}.ring-white{--tw-ring-color: var(--color-white)}.backdrop-blur-\\[1px\\]{--tw-backdrop-blur: blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur: blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur: blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.duration-150{--tw-duration: .15s;transition-duration:.15s}.duration-200{--tw-duration: .2s;transition-duration:.2s}.duration-300{--tw-duration: .3s;transition-duration:.3s}.duration-500{--tw-duration: .5s;transition-duration:.5s}.duration-700{--tw-duration: .7s;transition-duration:.7s}.ease-out{--tw-ease: var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style: none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\\:text-slate-600{&:is(:where(.group):focus-within *){color:var(--color-slate-600)}}.group-hover\\:scale-105{&:is(:where(.group):hover *){@media(hover:hover){--tw-scale-x: 105%;--tw-scale-y: 105%;--tw-scale-z: 105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.group-hover\\:scale-110{&:is(:where(.group):hover *){@media(hover:hover){--tw-scale-x: 110%;--tw-scale-y: 110%;--tw-scale-z: 110%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.group-hover\\:bg-blue-50{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-blue-50)}}}.group-hover\\:bg-blue-100{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-blue-100)}}}.group-hover\\:bg-blue-600{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-blue-600)}}}.group-hover\\:bg-emerald-50{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-emerald-50)}}}.group-hover\\:bg-emerald-600{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-emerald-600)}}}.group-hover\\:bg-purple-600{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-purple-600)}}}.group-hover\\:bg-red-500{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-red-500)}}}.group-hover\\:bg-slate-200{&:is(:where(.group):hover *){@media(hover:hover){background-color:var(--color-slate-200)}}}.group-hover\\:fill-slate-900{&:is(:where(.group):hover *){@media(hover:hover){fill:var(--color-slate-900)}}}.group-hover\\:text-blue-600{&:is(:where(.group):hover *){@media(hover:hover){color:var(--color-blue-600)}}}.group-hover\\:text-slate-700{&:is(:where(.group):hover *){@media(hover:hover){color:var(--color-slate-700)}}}.group-hover\\:text-slate-900{&:is(:where(.group):hover *){@media(hover:hover){color:var(--color-slate-900)}}}.group-hover\\:text-white{&:is(:where(.group):hover *){@media(hover:hover){color:var(--color-white)}}}.group-hover\\:opacity-100{&:is(:where(.group):hover *){@media(hover:hover){opacity:100%}}}.group-hover\\:shadow-sm{&:is(:where(.group):hover *){@media(hover:hover){--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.placeholder\\:text-slate-400{&::placeholder{color:var(--color-slate-400)}}.hover\\:border-blue-400{&:hover{@media(hover:hover){border-color:var(--color-blue-400)}}}.hover\\:border-slate-100{&:hover{@media(hover:hover){border-color:var(--color-slate-100)}}}.hover\\:border-slate-200{&:hover{@media(hover:hover){border-color:var(--color-slate-200)}}}.hover\\:border-slate-300{&:hover{@media(hover:hover){border-color:var(--color-slate-300)}}}.hover\\:bg-black{&:hover{@media(hover:hover){background-color:var(--color-black)}}}.hover\\:bg-blue-50{&:hover{@media(hover:hover){background-color:var(--color-blue-50)}}}.hover\\:bg-blue-50\\/50{&:hover{@media(hover:hover){background-color:color-mix(in srgb,oklch(97% .014 254.604) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-blue-50) 50%,transparent)}}}}.hover\\:bg-blue-700{&:hover{@media(hover:hover){background-color:var(--color-blue-700)}}}.hover\\:bg-emerald-700{&:hover{@media(hover:hover){background-color:var(--color-emerald-700)}}}.hover\\:bg-red-50{&:hover{@media(hover:hover){background-color:var(--color-red-50)}}}.hover\\:bg-red-100{&:hover{@media(hover:hover){background-color:var(--color-red-100)}}}.hover\\:bg-slate-50{&:hover{@media(hover:hover){background-color:var(--color-slate-50)}}}.hover\\:bg-slate-100{&:hover{@media(hover:hover){background-color:var(--color-slate-100)}}}.hover\\:bg-white{&:hover{@media(hover:hover){background-color:var(--color-white)}}}.hover\\:bg-white\\/20{&:hover{@media(hover:hover){background-color:color-mix(in srgb,#fff 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}}}.hover\\:text-blue-500{&:hover{@media(hover:hover){color:var(--color-blue-500)}}}.hover\\:text-red-500{&:hover{@media(hover:hover){color:var(--color-red-500)}}}.hover\\:text-slate-500{&:hover{@media(hover:hover){color:var(--color-slate-500)}}}.hover\\:text-slate-600{&:hover{@media(hover:hover){color:var(--color-slate-600)}}}.hover\\:text-slate-700{&:hover{@media(hover:hover){color:var(--color-slate-700)}}}.hover\\:text-white{&:hover{@media(hover:hover){color:var(--color-white)}}}.hover\\:opacity-90{&:hover{@media(hover:hover){opacity:90%}}}.hover\\:opacity-100{&:hover{@media(hover:hover){opacity:100%}}}.hover\\:shadow-md{&:hover{@media(hover:hover){--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.focus\\:border-blue-500{&:focus{border-color:var(--color-blue-500)}}.focus\\:border-slate-400{&:focus{border-color:var(--color-slate-400)}}.focus\\:ring-2{&:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\\:ring-4{&:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\\:ring-blue-500\\/10{&:focus{--tw-ring-color: color-mix(in srgb, oklch(62.3% .214 259.815) 10%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}}.focus\\:ring-blue-500\\/20{&:focus{--tw-ring-color: color-mix(in srgb, oklch(62.3% .214 259.815) 20%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}}.focus\\:ring-slate-400\\/5{&:focus{--tw-ring-color: color-mix(in srgb, oklch(70.4% .04 256.788) 5%, transparent);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--color-slate-400) 5%, transparent)}}}.focus\\:outline-none{&:focus{--tw-outline-style: none;outline-style:none}}.active\\:scale-95{&:active{--tw-scale-x: 95%;--tw-scale-y: 95%;--tw-scale-z: 95%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.active\\:scale-\\[0\\.98\\]{&:active{scale:.98}}.active\\:cursor-grabbing{&:active{cursor:grabbing}}.disabled\\:bg-slate-100{&:disabled{background-color:var(--color-slate-100)}}.disabled\\:bg-slate-300{&:disabled{background-color:var(--color-slate-300)}}.disabled\\:text-slate-400{&:disabled{color:var(--color-slate-400)}}.disabled\\:opacity-20{&:disabled{opacity:20%}}.disabled\\:opacity-30{&:disabled{opacity:30%}}.disabled\\:opacity-50{&:disabled{opacity:50%}}.disabled\\:active\\:scale-100{&:disabled{&:active{--tw-scale-x: 100%;--tw-scale-y: 100%;--tw-scale-z: 100%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.md\\:space-y-8{@media(width>=48rem){:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}}}.md\\:p-12{@media(width>=48rem){padding:calc(var(--spacing) * 12)}}}@keyframes blob{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}to{transform:translate(0) scale(1)}}.animate-blob{animation:blob 7s infinite}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-scale-x{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-scale-y{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-scale-z{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-rotate-x{syntax: "*"; inherits: false;}@property --tw-rotate-y{syntax: "*"; inherits: false;}@property --tw-rotate-z{syntax: "*"; inherits: false;}@property --tw-skew-x{syntax: "*"; inherits: false;}@property --tw-skew-y{syntax: "*"; inherits: false;}@property --tw-space-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-gradient-position{syntax: "*"; inherits: false;}@property --tw-gradient-from{syntax: "<color>"; inherits: false; initial-value: #0000;}@property --tw-gradient-via{syntax: "<color>"; inherits: false; initial-value: #0000;}@property --tw-gradient-to{syntax: "<color>"; inherits: false; initial-value: #0000;}@property --tw-gradient-stops{syntax: "*"; inherits: false;}@property --tw-gradient-via-stops{syntax: "*"; inherits: false;}@property --tw-gradient-from-position{syntax: "<length-percentage>"; inherits: false; initial-value: 0%;}@property --tw-gradient-via-position{syntax: "<length-percentage>"; inherits: false; initial-value: 50%;}@property --tw-gradient-to-position{syntax: "<length-percentage>"; inherits: false; initial-value: 100%;}@property --tw-leading{syntax: "*"; inherits: false;}@property --tw-font-weight{syntax: "*"; inherits: false;}@property --tw-tracking{syntax: "*"; inherits: false;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-backdrop-blur{syntax: "*"; inherits: false;}@property --tw-backdrop-brightness{syntax: "*"; inherits: false;}@property --tw-backdrop-contrast{syntax: "*"; inherits: false;}@property --tw-backdrop-grayscale{syntax: "*"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: "*"; inherits: false;}@property --tw-backdrop-invert{syntax: "*"; inherits: false;}@property --tw-backdrop-opacity{syntax: "*"; inherits: false;}@property --tw-backdrop-saturate{syntax: "*"; inherits: false;}@property --tw-backdrop-sepia{syntax: "*"; inherits: false;}@property --tw-duration{syntax: "*"; inherits: false;}@property --tw-ease{syntax: "*"; inherits: false;}@keyframes spin{to{transform:rotate(360deg)}}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-scale-z: 1;--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-space-y-reverse: 0;--tw-border-style: solid;--tw-gradient-position: initial;--tw-gradient-from: #0000;--tw-gradient-via: #0000;--tw-gradient-to: #0000;--tw-gradient-stops: initial;--tw-gradient-via-stops: initial;--tw-gradient-from-position: 0%;--tw-gradient-via-position: 50%;--tw-gradient-to-position: 100%;--tw-leading: initial;--tw-font-weight: initial;--tw-tracking: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial;--tw-duration: initial;--tw-ease: initial}}}
3
+ `);var M=require("react");var le=xe(require("react")),S=require("lucide-react");var ct=require("clsx"),dt=require("tailwind-merge");function O(...g){return(0,dt.twMerge)((0,ct.clsx)(g))}var e=require("react/jsx-runtime"),Et=["Inter","Lato","Open Sans","Poppins","Roboto","Roboto Slab","Georgia","Playfair Display","Merriweather","Nunito Sans","Montserrat","Oswald","Raleway","Ubuntu","Lora","PT Sans","PT Serif","Play","Arvo","Kanit","Times New Roman","Arial"],$t=[12,14,16,18,20,24,28,32,36,48,64,72,96],Ut=[{name:"Basic Shapes",shapes:["rect","circle","triangle","rightTriangle","rhombus","parallelogram","trapezoid","pentagon","hexagon","heptagon","octagon","heart","smiley","sun","moon"]},{name:"Arrows",shapes:["arrowRight","arrowLeft","arrowUp","arrowDown","arrowLeftRight","arrowUpDown"]},{name:"Stars & Symbols",shapes:["star4","star5","star6","star8","cloud","lightning"]},{name:"Equation Shapes",shapes:["plus","minus","multiply","divide","equal"]}],Ot=({type:g,className:t})=>{switch(g){case"rect":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",fill:"currentColor"})});case"circle":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("circle",{cx:"12",cy:"12",r:"9",fill:"currentColor"})});case"triangle":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 4L20 18H4L12 4Z",fill:"currentColor"})});case"rightTriangle":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M4 4V20H20L4 4Z",fill:"currentColor"})});case"rhombus":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 4L20 12L12 20L4 12L12 4Z",fill:"currentColor"})});case"parallelogram":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M7 4H21L17 20H3L7 4Z",fill:"currentColor"})});case"trapezoid":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M6 4H18L21 20H3L6 4Z",fill:"currentColor"})});case"pentagon":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 3L21 9V19H3V9L12 3Z",fill:"currentColor"})});case"hexagon":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 3L20 7.5V16.5L12 21L4 16.5V7.5L12 3Z",fill:"currentColor"})});case"heptagon":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 3L18.5 6L21 13L16 20H8L3 13L5.5 6L12 3Z",fill:"currentColor"})});case"octagon":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M8.5 3H15.5L21 8.5V15.5L15.5 21H8.5L3 15.5V8.5L8.5 3Z",fill:"currentColor"})});case"heart":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z",fill:"currentColor"})});case"smiley":return(0,e.jsxs)("svg",{viewBox:"0 0 24 24",className:t,children:[(0,e.jsx)("circle",{cx:"12",cy:"12",r:"9",fill:"currentColor",fillOpacity:"0.2",stroke:"currentColor",strokeWidth:"2"}),(0,e.jsx)("circle",{cx:"9",cy:"9",r:"1.5",fill:"currentColor"}),(0,e.jsx)("circle",{cx:"15",cy:"9",r:"1.5",fill:"currentColor"}),(0,e.jsx)("path",{d:"M8 15C8 15 9.5 17 12 17C14.5 17 16 15 16 15",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]});case"sun":return(0,e.jsxs)("svg",{viewBox:"0 0 24 24",className:t,children:[(0,e.jsx)("circle",{cx:"12",cy:"12",r:"5",fill:"currentColor"}),(0,e.jsx)("path",{d:"M12 2V4M12 20V22M4 12H2M22 12H20M19.07 4.93L17.66 6.34M6.34 17.66L4.93 19.07M4.93 4.93L6.34 6.34M17.66 17.66L19.07 19.07",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]});case"moon":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 3a9 9 0 1 0 9 9 7 7 0 0 1-9-9",fill:"currentColor"})});case"arrowRight":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M4 11h11.5l-3.5-3.5 1.5-1.5 6 6-6 6-1.5-1.5 3.5-3.5H4z",fill:"currentColor"})});case"arrowLeft":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M20 11H8.5l3.5-3.5L10.5 6l-6 6 6 6 1.5-1.5-3.5-3.5H20z",fill:"currentColor"})});case"arrowUp":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M13 20V8.5l3.5 3.5 1.5-1.5-6-6-6 6 1.5 1.5 3.5-3.5V20z",fill:"currentColor"})});case"arrowDown":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M11 4v11.5l-3.5-3.5-1.5 1.5 6 6 6-6-1.5-1.5-3.5 3.5V4z",fill:"currentColor"})});case"arrowLeftRight":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M4 12l4-4v3h8V8l4 4-4 4v-3H8v3l-4-4z",fill:"currentColor"})});case"arrowUpDown":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 4l-4 4h3v8H8l4 4 4-4h-3V8h3l-4-4z",fill:"currentColor"})});case"star4":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 2l2 8 8 2-8 2-2 8-2-8-8-2 8-2 2-8z",fill:"currentColor"})});case"star5":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 2l2.5 7.5H22l-6 4.5 2.5 7.5-6.5-4.5-6.5 4.5 2.5-7.5-6-4.5h7.5L12 2z",fill:"currentColor"})});case"star6":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 2l3 5 6-1-4 4.5 2 6.5-7-3-7 3 2-6.5-4-4.5 6 1 3-5z",fill:"currentColor"})});case"star8":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M12 2l2 4 4-2-2 4 4 2-4 2 2 4-4-2-2 4-2-4-4 2 2-4-4-2 4-2-2-4 4 2 2-4z",fill:"currentColor"})});case"cloud":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M17.5 19c-3 0-5.5-2.5-5.5-5.5 0-.2 0-.4.1-.6-2-.8-3.6-2.5-4.1-4.7C6.5 7.4 5 6 3 6c-1.7 0-3 1.3-3 3s1.3 3 3 3c.4 0 .8-.1 1.2-.2C4.1 13 5 14.5 6.5 15.5c.3 1.8 1.4 3.4 3 4.3.4.2.8.3 1.2.4 1.2.4 2.5.6 3.8.6 4.4 0 8-3.6 8-8s-3.6-8-8-8c-.4 0-.8 0-1.2.1-1.2.2-2.3.7-3.2 1.5C11 4.2 12.4 3.5 14 3.5c4.1 0 7.5 3.4 7.5 7.5s-1.8 7.5-4 8z",fill:"currentColor",transform:"scale(0.8) translate(3,3)"})});case"lightning":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M13 2L3 14h9v8l10-12h-9l3-8z",fill:"currentColor"})});case"plus":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z",fill:"currentColor"})});case"minus":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M19 13H5v-2h14v2z",fill:"currentColor"})});case"multiply":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z",fill:"currentColor"})});case"divide":return(0,e.jsxs)("svg",{viewBox:"0 0 24 24",className:t,children:[(0,e.jsx)("circle",{cx:"12",cy:"7",r:"2",fill:"currentColor"}),(0,e.jsx)("circle",{cx:"12",cy:"17",r:"2",fill:"currentColor"}),(0,e.jsx)("rect",{x:"5",y:"11",width:"14",height:"2",fill:"currentColor"})]});case"equal":return(0,e.jsx)("svg",{viewBox:"0 0 24 24",className:t,children:(0,e.jsx)("path",{d:"M19 10H5V8h14v2zm0 6H5v-2h14v2z",fill:"currentColor"})});default:return(0,e.jsx)("div",{className:"w-6 h-6 bg-slate-200 rounded-sm"})}},Gt=({onAddShape:g,uiScale:t})=>{let[n,p]=(0,le.useState)(!1);return le.default.useEffect(()=>(window._toggleShapesMenu=()=>p(!n),()=>{window._toggleShapesMenu=void 0}),[n]),n?(0,e.jsx)("div",{className:"absolute top-full left-0 mt-2 bg-white border border-slate-200 rounded-2xl shadow-2xl p-4 overflow-y-auto z-[100] animate-in fade-in zoom-in-95 duration-200",style:{width:`${320*t}px`,maxHeight:`${480*t}px`},children:(0,e.jsx)("div",{className:"flex flex-col gap-6",children:Ut.map(y=>(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsx)("span",{className:"text-[10px] font-black uppercase tracking-widest text-slate-400 px-1",style:{fontSize:`${10*t}px`},children:y.name}),(0,e.jsx)("div",{className:"grid grid-cols-5 gap-1",children:y.shapes.map(N=>(0,e.jsx)("button",{onClick:()=>{g(N),p(!1)},className:"aspect-square hover:bg-slate-50 rounded-lg flex items-center justify-center border border-transparent hover:border-slate-100 transition-all group p-1",title:N,children:(0,e.jsx)("div",{className:"w-full h-full bg-slate-100 rounded-sm group-hover:bg-blue-100 group-hover:scale-110 transition-all flex items-center justify-center overflow-hidden p-1.5",children:(0,e.jsx)(Ot,{type:N,className:"w-full h-full text-slate-400 group-hover:text-blue-600 transition-colors"})})},N))})]},y.name))})}):null},pt=({onAddText:g,onAddImage:t,onAddShape:n,onAddSlide:p,onExport:y,onFormatText:N,onDeleteElement:z,onApplyLayout:C,onPlay:P,selectedElement:s,appName:x,onAiAction:i,onAiResponseAction:v,aiResponse:c,isAiLoading:f,onNewPresentation:u,onLoadPresentation:d,appBgColor:H="#B7472A",uiScale:I,source:k,onGenerateImageClick:R,onUploadImageClick:b})=>{let G=le.default.useRef(null),[_,Q]=(0,le.useState)("Home"),[$,r]=(0,le.useState)(!1),[w,m]=(0,le.useState)(!1),[F,j]=(0,le.useState)(!1),[ne,W]=(0,le.useState)(!1),[te,ce]=(0,le.useState)("file"),[ae,se]=(0,le.useState)(""),X=(s==null?void 0:s.type)==="text",ge=(s==null?void 0:s.type)==="shape",fe=(s==null?void 0:s.type)==="image",be="#B7472A";return(0,e.jsxs)("div",{className:"flex flex-col border-b border-slate-200 bg-white z-50 select-none",style:{fontSize:`${12*I}px`},children:[(0,e.jsxs)("div",{className:"bg-white flex items-center justify-stretch border-b border-slate-200/60 transition-all duration-300 relative z-[1000]",style:{height:`${120*I}px`,overflow:"visible"},children:[(0,e.jsxs)("div",{className:O("flex-1 flex flex-col items-center border-r border-slate-100 px-3 gap-1 h-full py-2",I<.84?"min-w-0":"min-w-fit"),children:[(0,e.jsxs)("div",{className:"flex items-center justify-center gap-1 my-auto",children:[(0,e.jsxs)("button",{onClick:p,className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg group transition-all min-w-[64px]",children:[(0,e.jsx)("div",{className:"bg-orange-50 p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(S.Plus,{size:20,style:{color:H}})}),(0,e.jsx)("span",{className:"text-[10px] font-bold text-slate-700",children:"New Slide"})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("div",{className:"relative",children:[(0,e.jsxs)("button",{onClick:()=>r(!$),className:O("flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg transition-all min-w-[64px]",$&&"bg-slate-100"),children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg",children:(0,e.jsx)(S.Layout,{size:20,className:"text-slate-500"})}),(0,e.jsx)("span",{className:"text-[10px] font-medium text-slate-500",children:"Layout"})]}),$&&(0,e.jsxs)("div",{className:"absolute top-full left-0 mt-2 bg-white border border-slate-200 rounded-2xl shadow-3xl p-2 w-60 flex flex-col gap-1 z-[100] animate-in fade-in zoom-in-95 duration-200 ring-4 ring-black/5",children:[(0,e.jsxs)("button",{onClick:()=>{C("title"),r(!1)},className:"flex items-center gap-3 px-4 py-3 hover:bg-slate-50 rounded-xl text-[13px] font-bold text-slate-700 transition-all border border-transparent hover:border-slate-100 group",children:[(0,e.jsx)("div",{className:"p-2 bg-blue-50 text-blue-600 rounded-lg group-hover:bg-blue-600 group-hover:text-white transition-colors",children:(0,e.jsx)(S.FileText,{size:18})}),"Title Slide"]}),(0,e.jsxs)("button",{onClick:()=>{C("content"),r(!1)},className:"flex items-center gap-3 px-4 py-3 hover:bg-slate-50 rounded-xl text-[13px] font-bold text-slate-700 transition-all border border-transparent hover:border-slate-100 group",children:[(0,e.jsx)("div",{className:"p-2 bg-emerald-50 text-emerald-600 rounded-lg group-hover:bg-emerald-600 group-hover:text-white transition-colors",children:(0,e.jsx)(S.List,{size:18})}),"Title & Content"]}),(0,e.jsxs)("button",{onClick:()=>{C("split"),r(!1)},className:"flex items-center gap-3 px-4 py-3 hover:bg-slate-50 rounded-xl text-[13px] font-bold text-slate-700 transition-all border border-transparent hover:border-slate-100 group",children:[(0,e.jsx)("div",{className:"p-2 bg-purple-50 text-purple-600 rounded-lg group-hover:bg-purple-600 group-hover:text-white transition-colors",children:(0,e.jsx)(S.Columns,{size:18})}),"Two Columns"]})]})]})]}),I>=.85&&(0,e.jsx)("span",{className:"text-[9px] uppercase tracking-[0.2em] font-black text-slate-300 mt-auto",children:"Slides"})]}),(0,e.jsxs)("div",{className:O("flex-1 flex flex-col items-center border-r border-slate-100 px-3 gap-1 h-full py-2",I<.85?"px-2":"px-4"),children:[(0,e.jsxs)("div",{className:"flex items-center justify-center gap-1.5 w-full mt-1",children:[(0,e.jsx)("select",{disabled:!X,value:(s==null?void 0:s.fontFamily)||"Arial",onChange:T=>N({fontFamily:T.target.value}),className:O("h-7 px-2 text-[11px] text-slate-900 border border-slate-200 rounded-lg font-semibold bg-white hover:border-slate-300 outline-none disabled:opacity-50 transition-colors appearance-none cursor-pointer",I<.85?"flex-1":"w-44"),children:Et.map(T=>(0,e.jsx)("option",{value:T,children:T},T))}),(0,e.jsx)("select",{disabled:!X,value:(s==null?void 0:s.fontSize)||24,onChange:T=>N({fontSize:parseInt(T.target.value)}),className:"h-7 px-1.5 text-[11px] text-slate-900 border border-slate-200 rounded-lg font-semibold bg-white hover:border-slate-300 outline-none w-14 disabled:opacity-50 transition-colors appearance-none cursor-pointer text-center",children:$t.map(T=>(0,e.jsx)("option",{value:T,children:T},T))})]}),(0,e.jsxs)("div",{className:"flex items-center justify-between w-full mt-auto mb-1",children:[(0,e.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,e.jsx)("button",{disabled:!X,onClick:()=>N({isBold:!s.isBold}),className:O("p-1.5 rounded-lg transition-all disabled:opacity-30",s!=null&&s.isBold?"bg-slate-100 text-slate-900":"text-slate-500 hover:bg-slate-50"),children:(0,e.jsx)(S.Bold,{size:14,strokeWidth:3})}),(0,e.jsx)("button",{disabled:!X,onClick:()=>N({isItalic:!s.isItalic}),className:O("p-1.5 rounded-lg transition-all disabled:opacity-30",s!=null&&s.isItalic?"bg-slate-100 text-slate-900":"text-slate-500 hover:bg-slate-50"),children:(0,e.jsx)(S.Italic,{size:14})}),(0,e.jsx)("button",{disabled:!X,onClick:()=>N({isBulleted:!s.isBulleted}),className:O("p-1.5 rounded-lg transition-all disabled:opacity-30",s!=null&&s.isBulleted?"bg-slate-100 text-slate-900":"text-slate-500 hover:bg-slate-50"),children:(0,e.jsx)(S.List,{size:14})}),(0,e.jsxs)("div",{className:"relative group p-1 hover:bg-slate-50 rounded-lg transition-colors cursor-pointer ml-0.5",children:[(0,e.jsx)("input",{type:"color",disabled:!s,value:X?s.color||"#000000":(s==null?void 0:s.fill)||"#3b82f6",onChange:T=>N(X?{color:T.target.value}:{fill:T.target.value}),className:"w-6 h-4 p-0 border-0 bg-transparent cursor-pointer disabled:opacity-50",title:"Font/Fill Color"}),(0,e.jsx)("div",{className:"absolute bottom-1 left-1 right-1 h-0.5 rounded-full",style:{backgroundColor:X?s.color||"#000000":(s==null?void 0:s.fill)||"#3b82f6"}})]})]}),(0,e.jsx)("div",{className:"h-4 w-[1px] bg-slate-200 mx-1.5"}),(0,e.jsxs)("div",{className:"flex items-center gap-0.5 bg-slate-50/50 p-0.5 rounded-lg",children:[(0,e.jsx)("button",{disabled:!X,onClick:()=>N({textAlign:"left"}),className:O("p-1 rounded-md transition-all disabled:opacity-30",(s==null?void 0:s.textAlign)==="left"?"bg-white shadow-sm scale-105":"text-slate-400"),style:{color:(s==null?void 0:s.textAlign)==="left"?H:void 0},children:(0,e.jsx)(S.AlignLeft,{size:13})}),(0,e.jsx)("button",{disabled:!X,onClick:()=>N({textAlign:"center"}),className:O("p-1 rounded-md transition-all disabled:opacity-30",(s==null?void 0:s.textAlign)==="center"?"bg-white shadow-sm scale-105":"text-slate-400"),style:{color:(s==null?void 0:s.textAlign)==="center"?H:void 0},children:(0,e.jsx)(S.AlignCenter,{size:13})}),(0,e.jsx)("button",{disabled:!X,onClick:()=>N({textAlign:"right"}),className:O("p-1 rounded-md transition-all disabled:opacity-30",(s==null?void 0:s.textAlign)==="right"?"bg-white shadow-sm scale-105":"text-slate-400"),style:{color:(s==null?void 0:s.textAlign)==="right"?H:void 0},children:(0,e.jsx)(S.AlignRight,{size:13})})]})]}),I>=.85&&(0,e.jsx)("span",{className:"text-[9px] uppercase tracking-[0.2em] font-black text-slate-300 mt-auto",children:"Font"})]}),(0,e.jsxs)("div",{className:"flex-1 flex flex-col items-center border-r border-slate-100 px-3 gap-1 h-full py-2 shrink-0",children:[(0,e.jsxs)("div",{className:"flex items-center justify-center gap-2 my-auto",children:[(0,e.jsxs)("div",{className:"relative group/shapes flex justify-center",children:[(0,e.jsxs)("button",{className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg group transition-all min-w-[64px]",onClick:()=>{var T;return(T=window._toggleShapesMenu)==null?void 0:T.call(window)},children:[(0,e.jsx)("div",{className:"bg-blue-50 p-1.5 rounded-lg group-hover:scale-105 transition-transform",children:(0,e.jsx)(S.Square,{size:20,className:"text-blue-600"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold text-slate-700",children:"Shapes"})]}),(0,e.jsx)(Gt,{onAddShape:T=>{n(T)},uiScale:I})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{onClick:g,className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-600 transition-colors min-w-[64px]",title:"Text Box",children:[(0,e.jsx)("div",{className:"p-1.5",children:(0,e.jsx)(S.Type,{size:20})}),(0,e.jsx)("span",{className:"text-[10px] font-medium text-slate-500",children:"Text Box"})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{onClick:()=>{var T;return(T=G.current)==null?void 0:T.click()},className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-600 transition-colors min-w-[64px]",title:"Image",children:[(0,e.jsx)("div",{className:"p-1.5",children:(0,e.jsx)(S.Image,{size:20})}),(0,e.jsx)("span",{className:"text-[10px] font-medium text-slate-500",children:"Image"}),(0,e.jsx)("input",{type:"file",ref:G,className:"hidden",accept:"image/*",onChange:T=>{var me;return((me=T.target.files)==null?void 0:me[0])&&t(T.target.files[0])}})]})]}),I>=.85&&(0,e.jsx)("span",{className:"text-[9px] uppercase tracking-[0.2em] font-black text-slate-300 mt-auto",children:"Drawing"})]}),(0,e.jsxs)("div",{className:"flex-1 flex flex-col items-center border-r border-slate-100 px-3 gap-1 h-full py-2 relative",children:[(0,e.jsxs)("div",{className:"flex items-center justify-center gap-1 my-auto h-full",children:[(0,e.jsxs)("button",{disabled:!X||f,onClick:()=>i(s.id,"shorten"),className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-600 disabled:opacity-20 transition-all min-w-[64px]",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(S.Sparkles,{size:20,className:"text-purple-500"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold",children:"Shorten"})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{disabled:!X||f,onClick:()=>i(s.id,"reframe"),className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-600 disabled:opacity-20 transition-all min-w-[64px]",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(S.Sparkles,{size:20,className:"text-blue-500"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold",children:"Reframe"})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{disabled:!X||f,onClick:()=>i(s.id,"lengthen"),className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-600 disabled:opacity-20 transition-all min-w-[68px]",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(S.Sparkles,{size:20,className:"text-emerald-500"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold text-center leading-tight",children:"Lengthen"})]})]}),f&&(0,e.jsx)("div",{className:"absolute inset-x-0 top-2 bottom-8 bg-white/80 flex items-center justify-center rounded-lg z-10 backdrop-blur-[1px]",children:(0,e.jsx)(S.RefreshCw,{size:16,className:"text-blue-600 animate-spin"})}),I>=.85&&(0,e.jsx)("span",{className:"text-[9px] uppercase tracking-[0.2em] font-black text-slate-300 mt-auto",children:"AI Text"})]}),(0,e.jsxs)("div",{className:"flex-1 flex flex-col items-center pl-4 pr-3 gap-1 h-full py-2 relative",children:[(0,e.jsxs)("div",{className:"flex items-center justify-center gap-1 my-auto h-full",children:[(0,e.jsxs)("button",{onClick:P,className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-700 transition-all min-w-[64px] group",title:"Present",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(S.Play,{size:20,className:"fill-slate-700 group-hover:fill-slate-900"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold",children:"Present"})]}),(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{onClick:y,className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-slate-50 rounded-lg text-slate-700 transition-all min-w-[64px] group",title:"Export",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(S.Download,{size:20,className:"text-emerald-600"})}),(0,e.jsx)("span",{className:"text-[10px] font-bold",children:"Export"})]}),s&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"w-[1px] h-10 bg-slate-100 mx-1"}),(0,e.jsxs)("button",{onClick:z,className:"flex flex-col items-center justify-center gap-1.5 px-3 py-1.5 hover:bg-red-50 rounded-lg text-red-600 transition-all min-w-[64px] group",title:"Delete",children:[(0,e.jsx)("div",{className:"p-1.5 rounded-lg group-hover:scale-110 transition-transform",children:(0,e.jsx)(S.Trash2,{size:20})}),(0,e.jsx)("span",{className:"text-[10px] font-bold",children:"Delete"})]})]})]}),(0,e.jsxs)("div",{className:"absolute bottom-2 right-3 flex items-center gap-1 px-1.5 py-0.5 bg-emerald-50/50 rounded-md border border-emerald-100/50",children:[(0,e.jsx)(S.Check,{size:9,className:"text-emerald-500"}),(0,e.jsx)("span",{className:"text-[7px] font-black text-emerald-600/70 tracking-tighter uppercase",children:"Saved"})]}),I>=.85&&(0,e.jsx)("span",{className:"text-[9px] uppercase tracking-[0.2em] font-black text-slate-300 mt-auto",children:"Actions"})]})]}),ne&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"fixed inset-0 bg-slate-900/40 backdrop-blur-sm z-[2000]",onClick:()=>W(!1)}),(0,e.jsxs)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[480px] bg-white rounded-3xl shadow-2xl z-[2001] border border-slate-200 p-8 animate-in fade-in zoom-in-95 duration-200",children:[(0,e.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,e.jsxs)("h3",{className:"text-lg font-black text-slate-800 tracking-tight flex items-center gap-3",children:[(0,e.jsx)("div",{className:"p-2 bg-blue-50 text-blue-600 rounded-xl",children:(0,e.jsx)(S.Download,{size:20})}),"Upload Presentation"]}),(0,e.jsx)("button",{onClick:()=>W(!1),className:"text-slate-400 hover:text-slate-600 transition-colors",children:(0,e.jsx)(S.RefreshCw,{size:20,className:"rotate-45"})})]}),(0,e.jsxs)("div",{className:"flex gap-2 p-1 bg-slate-50 rounded-2xl mb-8",children:[(0,e.jsx)("button",{onClick:()=>ce("file"),className:O("flex-1 py-3 text-xs font-black rounded-xl transition-all",te==="file"?"bg-white text-blue-600 shadow-sm":"text-slate-500 hover:text-slate-700"),children:"FILE UPLOAD"}),(0,e.jsx)("button",{onClick:()=>ce("link"),className:O("flex-1 py-3 text-xs font-black rounded-xl transition-all",te==="link"?"bg-white text-blue-600 shadow-sm":"text-slate-500 hover:text-slate-700"),children:"LINK UPLOAD"})]}),te==="file"?(0,e.jsxs)("label",{className:"flex flex-col items-center justify-center gap-4 py-12 border-2 border-dashed border-slate-200 rounded-3xl hover:border-blue-400 hover:bg-blue-50/50 transition-all cursor-pointer group",children:[(0,e.jsx)("div",{className:"p-4 bg-white rounded-2xl shadow-sm border border-slate-100 group-hover:scale-110 transition-transform",children:(0,e.jsx)(S.Plus,{size:24,className:"text-blue-500"})}),(0,e.jsxs)("div",{className:"text-center",children:[(0,e.jsx)("p",{className:"text-sm font-bold text-slate-700",children:"Choose a PPTX file"}),(0,e.jsx)("p",{className:"text-xs text-slate-400 mt-1",children:"Maximum file size: 50MB"})]}),(0,e.jsx)("input",{type:"file",accept:".pptx",className:"hidden",onChange:T=>{var re;let me=(re=T.target.files)==null?void 0:re[0];me&&(d(me),W(!1))}})]}):(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsx)("div",{className:"relative",children:(0,e.jsx)("input",{type:"text",placeholder:"Paste S3 or public URL",value:ae,onChange:T=>se(T.target.value),className:"w-full bg-slate-50 border border-slate-200 rounded-2xl px-5 py-4 focus:outline-none focus:ring-4 focus:ring-blue-500/10 focus:border-blue-500 text-sm placeholder:text-slate-400 text-black"})}),(0,e.jsx)("button",{onClick:()=>{ae.trim()&&(d(ae.trim()),W(!1))},disabled:!ae.trim(),className:"w-full bg-blue-600 hover:bg-blue-700 disabled:bg-slate-300 text-white font-black py-4 rounded-2xl transition-all shadow-lg shadow-blue-500/20",children:"LOAD PRESENTATION"}),(0,e.jsx)("p",{className:"text-[10px] text-slate-400 text-center uppercase tracking-widest font-black",children:"Supports S3, Dropbox, and public URLS"})]})]})]})]})};var we=require("lucide-react"),ie=require("@dnd-kit/core"),ve=require("@dnd-kit/sortable"),ht=require("@dnd-kit/utilities");var Z=require("react/jsx-runtime"),gt={triangle:"M 12,4 L 20,18 H 4 L 12,4 Z",rightTriangle:"M 4,4 V 20 H 20 L 4,4 Z",rhombus:"M 12,4 L 20,12 L 12,20 L 4,12 L 12,4 Z",parallelogram:"M 7,4 H 21 L 17,20 H 3 L 7,4 Z",trapezoid:"M 6,4 H 18 L 21,20 H 3 L 6,4 Z",pentagon:"M 12,3 L 21,9 V 19 H 3 V 9 L 12,3 Z",hexagon:"M 12,3 L 20,7.5 V 16.5 L 12,21 L 4,16.5 V 7.5 L 12,3 Z",heptagon:"M 12,3 L 18.5,6 L 21,13 L 16,20 H 8 L 3,13 L 5.5,6 L 12,3 Z",octagon:"M 8.5,3 H 15.5 L 21,8.5 V 15.5 L 15.5,21 H 8.5 L 3,15.5 V 8.5 L 8.5,3 Z",heart:"M 12,21.35 L 10.55,20.03 C 5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3 C 9.24,3 10.91,3.81 12,5.09 C 13.09,3.81 14.76,3 16.5,3 C 19.58,3 22,5.42 22,8.5 C 22,12.28 18.6,15.36 13.45,20.04 L 12,21.35 Z",smiley:"M 12,3 A 9,9 0 1,0 12,21 A 9,9 0 1,0 12,3 M 9,9 A 1.5,1.5 0 1,1 9,10.5 A 1.5,1.5 0 1,1 9,9 M 15,9 A 1.5,1.5 0 1,1 15,10.5 A 1.5,1.5 0 1,1 15,9 M 8,15 C 8,15 9.5,17 12,17 C 14.5,17 16,15 16,15",sun:"M 12,7 A 5,5 0 1,1 12,17 A 5,5 0 1,1 12,7 M 12,2 V 4 M 12,20 V 22 M 4,12 H 2 M 22,12 H 20 M 19.07,4.93 L 17.66,6.34 M 6.34,17.66 L 4.93,19.07 M 4.93,4.93 L 6.34,6.34 M 17.66,17.66 L 19.07,19.07",moon:"M 12,3 A 9,9 0 1,0 12,21 A 7,7 0 0,1 12,3 Z",circle:"M 12,3 A 9,9 0 1,1 12,21 A 9,9 0 1,1 12,3 Z",arrowRight:"M 4,11 H 15.5 L 12,7.5 L 13.5,6 L 19.5,12 L 13.5,18 L 12,16.5 L 15.5,13 H 4 Z",arrowLeft:"M 20,11 H 8.5 L 12,7.5 L 10.5,6 L 4.5,12 L 10.5,18 L 12,16.5 L 8.5,13 H 20 Z",arrowUp:"M 13,20 V 8.5 L 16.5,12 L 18,10.5 L 12,4.5 L 6,10.5 L 7.5,12 L 11,8.5 V 20 Z",arrowDown:"M 11,4 V 15.5 L 7.5,12 L 6,13.5 L 12,19.5 L 18,13.5 L 16.5,12 L 13,15.5 V 4 Z",arrowLeftRight:"M 4,12 L 8,8 V 11 H 16 V 8 L 20,12 L 16,16 V 13 H 8 V 16 L 4,12 Z",arrowUpDown:"M 12,4 L 8,8 H 11 V 16 H 8 L 12,20 L 16,16 H 13 V 8 H 16 L 12,4 Z",star4:"M 12,2 L 14,10 L 22,12 L 14,14 L 12,22 L 10,14 L 2,12 L 10,10 L 12,2 Z",star5:"M 12,2 L 14.5,9.5 H 22 L 16,14 L 18.5,21.5 L 12,17 L 5.5,21.5 L 8,14 L 2,9.5 H 9.5 L 12,2 Z",star6:"M 12,2 L 15,7 L 21,6 L 17,10.5 L 19,17 L 12,14 L 5,17 L 7,10.5 L 3,6 L 9,7 L 12,2 Z",star8:"M 12,2 L 14,6 L 18,4 L 16,8 L 20,10 L 16,12 L 18,16 L 14,14 L 12,18 L 10,14 L 6,16 L 8,12 L 4,10 L 8,8 L 6,4 L 10,6 L 12,2 Z",cloud:"M 17,19 C 14.8,19 13.1,17.7 12.3,15.8 C 11.4,16 10.5,16.2 9.6,16.2 C 7,16.2 4.7,14.6 3.7,12.3 C 1.5,11.8 0,9.9 0,7.6 C 0,5 2.1,2.9 4.7,2.9 C 5.3,2.9 5.8,3 6.3,3.1 C 7.6,1.4 9.6,0.3 11.9,0.3 C 12.5,0.3 13.1,0.4 13.7,0.5 C 15,1.9 15.9,3.7 16,5.7 C 18.2,6.1 20,8.1 20,10.5 C 20,13.2 17.8,15.4 15.1,15.4 C 14.8,15.4 14.5,15.4 14.2,15.3 C 14.2,15.4 14.2,15.4 14.2,15.5 C 14.2,17.4 15.5,19 17,19 Z",lightning:"M 13,2 L 3,14 H 12 V 22 L 22,10 H 13 L 16,2 Z",plus:"M 19,13 H 13 V 19 H 11 V 13 H 5 V 11 H 11 V 5 H 13 V 11 H 19 V 13 Z",minus:"M 19,13 H 5 V 11 H 19 V 13 Z",multiply:"M 19,6.41 L 17.59,5 L 12,10.59 L 6.41,5 L 5,6.41 L 10.59,12 L 5,17.59 L 6.41,19 L 12,13.41 L 17.59,19 L 19,17.59 L 13.41,12 L 19,6.41 Z",divide:"M 12,7 A 2,2 0 1,1 12,11 A 2,2 0 1,1 12,7 M 12,17 A 2,2 0 1,1 12,21 A 2,2 0 1,1 12,17 M 5,11 H 19 V 13 H 5 V 11 Z",equal:"M 19,10 H 5 V 8 H 19 V 10 M 19,16 H 5 V 14 H 19 V 16 Z"},Wt=({slide:g,index:t,isActive:n,onSelect:p,onDelete:y,onDuplicate:N,showDelete:z,uiScale:C,appBgColor:P})=>{let{attributes:s,listeners:x,setNodeRef:i,transform:v,transition:c,isDragging:f}=(0,ve.useSortable)({id:g.id}),u={transform:ht.CSS.Transform.toString(v),transition:c,zIndex:f?2:1,opacity:f?.5:1};return(0,Z.jsxs)("div",{ref:i,onClick:p,className:O("cursor-pointer border-[1.5px] border-solid p-2 transition-all duration-300 group relative select-none",n?"bg-white":"border-transparent hover:border-slate-200 bg-white/50 hover:bg-white"),style:A(L({},u),{borderColor:n?P:void 0}),children:[(0,Z.jsxs)("div",{className:O("text-[10px] font-bold mb-1 flex items-center justify-between transition-colors",!n&&"text-slate-400"),style:{color:n?P:void 0},children:[(0,Z.jsxs)("div",{className:"flex items-center gap-1",children:[(0,Z.jsx)("div",A(L(L({},s),x),{className:"cursor-grab active:cursor-grabbing p-0.5 hover:bg-slate-100 text-slate-300 hover:text-slate-500",children:(0,Z.jsx)(we.GripVertical,{size:10})})),(0,Z.jsxs)("span",{children:["SLIDE ",t+1]})]}),(0,Z.jsxs)("div",{className:"flex items-center gap-1",children:[n&&(0,Z.jsx)("span",{className:"h-1.5 w-1.5",style:{backgroundColor:P}}),(0,Z.jsxs)("div",{className:"flex items-center opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,Z.jsx)("button",{onClick:d=>{d.stopPropagation(),N()},className:"p-1 hover:bg-blue-50 text-slate-400 hover:text-blue-500 transition-all",title:"Duplicate Slide",children:(0,Z.jsx)(we.Copy,{size:12})}),z&&(0,Z.jsx)("button",{onClick:d=>{d.stopPropagation(),y()},className:"p-1 hover:bg-red-50 text-red-400 hover:text-red-500 transition-all",title:"Delete Slide",children:(0,Z.jsx)(we.Trash2,{size:12})})]})]})]}),(0,Z.jsx)("div",{className:"aspect-video bg-white flex items-center justify-center border border-slate-200 overflow-hidden relative group-hover:shadow-sm transition-shadow",children:(0,Z.jsx)("div",{className:"origin-center pointer-events-none select-none shrink-0",style:{width:"1200px",height:"675px",transform:`scale(${180*C/1200})`,backgroundColor:"#ffffff"},children:g.elements.sort((d,H)=>(d.zIndex||0)-(H.zIndex||0)).map(d=>{var I;let H={position:"absolute",left:d.x,top:d.y,width:d.width,height:d.height,opacity:(I=d.opacity)!=null?I:1};if(d.type==="text")return(0,Z.jsx)("div",{style:A(L({},H),{fontSize:d.fontSize,fontFamily:d.fontFamily,color:d.color,textAlign:d.textAlign||"left",fontWeight:d.isBold?"bold":"normal",fontStyle:d.isItalic?"italic":"normal",lineHeight:1.2,overflow:"hidden",wordBreak:"break-word",whiteSpace:"pre-wrap"}),children:d.content},d.id);if(d.type==="shape"){let k=gt[d.shapeType]||(d.shapeType==="ellipse"?gt.circle:null);return k?(0,Z.jsx)("svg",{viewBox:"0 0 24 24",style:A(L({},H),{fill:d.fill}),preserveAspectRatio:"none",children:(0,Z.jsx)("path",{d:k})},d.id):(0,Z.jsx)("div",{style:A(L({},H),{backgroundColor:d.fill,borderRadius:d.shapeType==="ellipse"?"50%":"0"})},d.id)}else if(d.type==="image")return(0,Z.jsx)("img",{src:d.src,alt:"",style:A(L({},H),{objectFit:"contain"})},d.id);return null})})})]})},mt=({slides:g,currentSlideIndex:t,onSelectSlide:n,onDeleteSlide:p,onDuplicateSlide:y,onReorderSlides:N,uiScale:z,appBgColor:C="#B7472A"})=>{let P=(0,ie.useSensors)((0,ie.useSensor)(ie.PointerSensor,{activationConstraint:{distance:5}}),(0,ie.useSensor)(ie.KeyboardSensor,{coordinateGetter:ve.sortableKeyboardCoordinates})),s=x=>{let{active:i,over:v}=x;if(i.id!==(v==null?void 0:v.id)){let c=g.findIndex(u=>u.id===i.id),f=g.findIndex(u=>u.id===(v==null?void 0:v.id));N(c,f)}};return(0,Z.jsx)("div",{className:"bg-white border-r border-slate-100 overflow-y-auto p-4 flex flex-col gap-4",style:{width:`${256*z}px`},children:(0,Z.jsx)(ie.DndContext,{sensors:P,collisionDetection:ie.closestCenter,onDragEnd:s,children:(0,Z.jsx)(ve.SortableContext,{items:g.map(x=>x.id),strategy:ve.verticalListSortingStrategy,children:g.map((x,i)=>(0,Z.jsx)(Wt,{slide:x,index:i,isActive:i===t,onSelect:()=>n(i),onDelete:()=>p(i),onDuplicate:()=>y(i),showDelete:g.length>1,uiScale:z,appBgColor:C},x.id))})})})};var q=require("react"),Y=xe(require("fabric")),ye=require("lucide-react");var B=require("react/jsx-runtime"),Xt={triangle:"M 12,4 L 20,18 H 4 L 12,4 Z",rightTriangle:"M 4,4 V 20 H 20 L 4,4 Z",rhombus:"M 12,4 L 20,12 L 12,20 L 4,12 L 12,4 Z",parallelogram:"M 7,4 H 21 L 17,20 H 3 L 7,4 Z",trapezoid:"M 6,4 H 18 L 21,20 H 3 L 6,4 Z",pentagon:"M 12,3 L 21,9 V 19 H 3 V 9 L 12,3 Z",hexagon:"M 12,3 L 20,7.5 V 16.5 L 12,21 L 4,16.5 V 7.5 L 12,3 Z",heptagon:"M 12,3 L 18.5,6 L 21,13 L 16,20 H 8 L 3,13 L 5.5,6 L 12,3 Z",octagon:"M 8.5,3 H 15.5 L 21,8.5 V 15.5 L 15.5,21 H 8.5 L 3,15.5 V 8.5 L 8.5,3 Z",heart:"M 12,21.35 L 10.55,20.03 C 5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3 C 9.24,3 10.91,3.81 12,5.09 C 13.09,3.81 14.76,3 16.5,3 C 19.58,3 22,5.42 22,8.5 C 22,12.28 18.6,15.36 13.45,20.04 L 12,21.35 Z",smiley:"M 12,3 A 9,9 0 1,0 12,21 A 9,9 0 1,0 12,3 M 9,9 A 1.5,1.5 0 1,1 9,10.5 A 1.5,1.5 0 1,1 9,9 M 15,9 A 1.5,1.5 0 1,1 15,10.5 A 1.5,1.5 0 1,1 15,9 M 8,15 C 8,15 9.5,17 12,17 C 14.5,17 16,15 16,15",sun:"M 12,7 A 5,5 0 1,1 12,17 A 5,5 0 1,1 12,7 M 12,2 V 4 M 12,20 V 22 M 4,12 H 2 M 22,12 H 20 M 19.07,4.93 L 17.66,6.34 M 6.34,17.66 L 4.93,19.07 M 4.93,4.93 L 6.34,6.34 M 17.66,17.66 L 19.07,19.07",moon:"M 12,3 A 9,9 0 1,0 12,21 A 7,7 0 0,1 12,3 Z",circle:"M 12,3 A 9,9 0 1,1 12,21 A 9,9 0 1,1 12,3 Z",arrowRight:"M 4,11 H 15.5 L 12,7.5 L 13.5,6 L 19.5,12 L 13.5,18 L 12,16.5 L 15.5,13 H 4 Z",arrowLeft:"M 20,11 H 8.5 L 12,7.5 L 10.5,6 L 4.5,12 L 10.5,18 L 12,16.5 L 8.5,13 H 20 Z",arrowUp:"M 13,20 V 8.5 L 16.5,12 L 18,10.5 L 12,4.5 L 6,10.5 L 7.5,12 L 11,8.5 V 20 Z",arrowDown:"M 11,4 V 15.5 L 7.5,12 L 6,13.5 L 12,19.5 L 18,13.5 L 16.5,12 L 13,15.5 V 4 Z",arrowLeftRight:"M 4,12 L 8,8 V 11 H 16 V 8 L 20,12 L 16,16 V 13 H 8 V 16 L 4,12 Z",arrowUpDown:"M 12,4 L 8,8 H 11 V 16 H 8 L 12,20 L 16,16 H 13 V 8 H 16 L 12,4 Z",star4:"M 12,2 L 14,10 L 22,12 L 14,14 L 12,22 L 10,14 L 2,12 L 10,10 L 12,2 Z",star5:"M 12,2 L 14.5,9.5 H 22 L 16,14 L 18.5,21.5 L 12,17 L 5.5,21.5 L 8,14 L 2,9.5 H 9.5 L 12,2 Z",star6:"M 12,2 L 15,7 L 21,6 L 17,10.5 L 19,17 L 12,14 L 5,17 L 7,10.5 L 3,6 L 9,7 L 12,2 Z",star8:"M 12,2 L 14,6 L 18,4 L 16,8 L 20,10 L 16,12 L 18,16 L 14,14 L 12,18 L 10,14 L 6,16 L 8,12 L 4,10 L 8,8 L 6,4 L 10,6 L 12,2 Z",cloud:"M 17,19 C 14.8,19 13.1,17.7 12.3,15.8 C 11.4,16 10.5,16.2 9.6,16.2 C 7,16.2 4.7,14.6 3.7,12.3 C 1.5,11.8 0,9.9 0,7.6 C 0,5 2.1,2.9 4.7,2.9 C 5.3,2.9 5.8,3 6.3,3.1 C 7.6,1.4 9.6,0.3 11.9,0.3 C 12.5,0.3 13.1,0.4 13.7,0.5 C 15,1.9 15.9,3.7 16,5.7 C 18.2,6.1 20,8.1 20,10.5 C 20,13.2 17.8,15.4 15.1,15.4 C 14.8,15.4 14.5,15.4 14.2,15.3 C 14.2,15.4 14.2,15.4 14.2,15.5 C 14.2,17.4 15.5,19 17,19 Z",lightning:"M 13,2 L 3,14 H 12 V 22 L 22,10 H 13 L 16,2 Z",plus:"M 19,13 H 13 V 19 H 11 V 13 H 5 V 11 H 11 V 5 H 13 V 11 H 19 V 13 Z",minus:"M 19,13 H 5 V 11 H 19 V 13 Z",multiply:"M 19,6.41 L 17.59,5 L 12,10.59 L 6.41,5 L 5,6.41 L 10.59,12 L 5,17.59 L 6.41,19 L 12,13.41 L 17.59,19 L 19,17.59 L 13.41,12 L 19,6.41 Z",divide:"M 12,7 A 2,2 0 1,1 12,11 A 2,2 0 1,1 12,7 M 12,17 A 2,2 0 1,1 12,21 A 2,2 0 1,1 12,17 M 5,11 H 19 V 13 H 5 V 11 Z",equal:"M 19,10 H 5 V 8 H 19 V 10 M 19,16 H 5 V 14 H 19 V 16 Z"},Re=({slide:g,onElementUpdate:t,onSelect:n,uiScale:p,onSlashCommand:y,selectedElementId:N,onAiGenerateClick:z,onUploadImageClick:C,onDeleteElement:P})=>{let s=(0,q.useRef)(null),x=(0,q.useRef)(null),i=(0,q.useRef)(!1),v=(0,q.useRef)(t),c=(0,q.useRef)(n),f=(0,q.useRef)(null),[u,d]=(0,q.useState)(1),[H,I]=(0,q.useState)(!1),k=(0,q.useRef)({x:0,y:0});(0,q.useEffect)(()=>{if(!f.current)return;let b=new ResizeObserver(G=>{let _=G[0];if(_){let{width:Q,height:$}=_.contentRect,r=Q/1200,w=$/675,m=Math.min(r,w)*.95;d(m)}});return b.observe(f.current),()=>b.disconnect()},[]),(0,q.useEffect)(()=>{v.current=t,c.current=n},[t,n]),(0,q.useEffect)(()=>{if(s.current&&!x.current){let b=new Y.Canvas(s.current,{width:1200,height:675,backgroundColor:"white",selection:!0,preserveObjectStacking:!0});x.current=b,I(!0);let G=r=>{r.left<0&&r.set("left",0),r.top<0&&r.set("top",0);let w=r.getBoundingRect();w.left+w.width>(b.width||1200)&&r.set("left",(b.width||1200)-w.width),w.top+w.height>(b.height||675)&&r.set("top",(b.height||675)-w.height)};b.on("object:moving",r=>G(r.target)),b.on("object:scaling",r=>G(r.target));let _=r=>{var F;if(i.current)return;let w=r.target,m=(F=w.get("data"))==null?void 0:F.id;w&&m&&v.current(m,L({x:w.left,y:w.top,width:w.getScaledWidth(),height:w.getScaledHeight()},w.isType("textbox")?{content:w.text,textAlign:w.textAlign,fontSize:w.fontSize,fontFamily:w.fontFamily,color:w.fill}:{fill:w.fill}))};b.on("object:modified",_),b.on("text:changed",_);let Q=r=>{var m,F;let w=((m=r.selected)==null?void 0:m[0])||r.target;if(w){let j=(F=w.get("data"))==null?void 0:F.id;c.current(j)}};b.on("selection:created",Q),b.on("selection:updated",Q),b.on("selection:cleared",()=>c.current(null)),b.on("mouse:move",r=>{r.pointer&&(k.current={x:r.pointer.x,y:r.pointer.y})});let $=r=>{var ne;let w=x.current;if(!w)return;let m=w.getActiveObject();if(r.key==="/"){r.preventDefault();let W=0,te=0,ce=(ne=s.current)==null?void 0:ne.getBoundingClientRect();if(m&&m.isType("textbox")&&m.isEditing&&ce){let ae=m,se=ae.get2DCursorLocation(),X=ae.getCursorCoords(se);if(X){let ge=Y.util.transformPoint(new Y.Point(X.left,X.top),ae.calcTransformMatrix()),fe=w.viewportTransform||[1,0,0,1,0,0],be=Y.util.transformPoint(ge,fe);W=ce.left+be.x*u,te=ce.top+be.y*u}}else if(ce){let ae=w.viewportTransform||[1,0,0,1,0,0],se=Y.util.transformPoint(new Y.Point(k.current.x,k.current.y),ae);W=ce.left+se.x*u,te=ce.top+se.y*u}W&&te&&y({x:W,y:te+20});return}if(m&&m.isType("textbox")&&m.isEditing||!m)return;let F=r.shiftKey?10:1,j=!1;switch(r.key){case"ArrowLeft":m.set("left",m.left-F),j=!0;break;case"ArrowRight":m.set("left",m.left+F),j=!0;break;case"ArrowUp":m.set("top",m.top-F),j=!0;break;case"ArrowDown":m.set("top",m.top+F),j=!0;break}j&&(G(m),w.requestRenderAll(),_({target:m}))};window.addEventListener("keydown",$),b._keyboardListener=$}return()=>{if(x.current){let b=x.current._keyboardListener;b&&window.removeEventListener("keydown",b),x.current.dispose(),x.current=null}}},[]),(0,q.useEffect)(()=>{if(!x.current)return;let b=x.current;(async()=>{i.current=!0;let _=b.getObjects(),Q=new Set(g.elements.map(r=>r.id));_.forEach(r=>{var m;let w=(m=r.get("data"))==null?void 0:m.id;w&&!Q.has(w)&&b.remove(r)});let $=[...g.elements].sort((r,w)=>(r.zIndex||0)-(w.zIndex||0));for(let r of $){let w=_.find(m=>{var F;return((F=m.get("data"))==null?void 0:F.id)===r.id});if(w){if(w===b.getActiveObject()&&w.isType("textbox")&&w.isEditing)continue;let m={left:r.x,top:r.y,opacity:r.opacity!==void 0?r.opacity:1,zIndex:r.zIndex};r.type==="text"&&w.isType("textbox")?(m.text=r.content||" ",m.fontSize=r.fontSize||22,m.fill=r.color||"#000000",m.textAlign=r.textAlign||"left",m.fontWeight=r.isBold?"bold":"normal",m.fontStyle=r.isItalic?"italic":"normal",m.fontFamily=r.fontFamily||"Arial",m.width=Math.max(r.width||50,10)):r.type==="shape"?(m.fill=r.fill||"#cccccc",m.scaleX=(r.width||50)/(w.width||1),m.scaleY=(r.height||50)/(w.height||1)):r.type==="image"&&(m.scaleX=(r.width||100)/(w.width||1),m.scaleY=(r.height||100)/(w.height||1)),w.set(m)}else{let m=null,F={left:r.x,top:r.y,data:{id:r.id},originX:"left",originY:"top",opacity:r.opacity!==void 0?r.opacity:1};if(r.type==="text")m=new Y.Textbox(r.content||" ",A(L({},F),{width:Math.max(r.width||200,10),fontSize:r.fontSize||22,fill:r.color||"#000000",fontFamily:r.fontFamily||"Inter, Arial, sans-serif",textAlign:r.textAlign||"left",fontWeight:r.isBold?"bold":"normal",fontStyle:r.isItalic?"italic":"normal",splitByGrapheme:!1}));else if(r.type==="shape"){let j=r.fill||"#3b82f6";if(r.shapeType==="ellipse")m=new Y.Circle(A(L({},F),{radius:(r.width||100)/2,scaleY:(r.height||100)/(r.width||100),fill:j}));else if(r.shapeType==="rect")m=new Y.Rect(A(L({},F),{width:r.width||100,height:r.height||100,fill:j}));else{let ne=Xt[r.shapeType];if(ne){m=new Y.Path(ne,A(L({},F),{fill:j}));let W=m;W.set({scaleX:(r.width||100)/(W.width||1),scaleY:(r.height||100)/(W.height||1)})}else m=new Y.Rect(A(L({},F),{width:r.width||100,height:r.height||100,fill:j}))}}else if(r.type==="image")try{let j=await Y.FabricImage.fromURL(r.src);j.set(A(L({},F),{scaleX:(r.width||100)/(j.width||1),scaleY:(r.height||100)/(j.height||1)})),m=j}catch(j){console.error(j)}m&&b.add(m)}}b.renderAll(),i.current=!1})()},[g,H]);let R=g.elements.find(b=>b.id===N);return(0,B.jsx)("div",{ref:f,className:"w-full h-full flex items-center justify-center overflow-hidden relative",children:(0,B.jsxs)("div",{className:"border border-slate-200 overflow-hidden bg-white shadow-xl transition-all duration-300 ease-out shrink-0 relative",style:{transform:`scale(${u})`,transformOrigin:"center center"},children:[(0,B.jsx)("canvas",{ref:s}),g.elements.length===0&&(0,B.jsx)("div",{className:"absolute inset-0 flex flex-col items-center justify-center pointer-events-none select-none animate-in fade-in duration-700",children:(0,B.jsx)("div",{className:"flex flex-col items-center gap-4 text-slate-300",children:(0,B.jsx)("div",{className:"flex flex-col items-center gap-1 text-center",children:(0,B.jsxs)("h1",{className:"text-2xl font-medium text-slate-400",children:["Click ",(0,B.jsx)("span",{className:"px-2 py-0.5 bg-slate-100 rounded-md text-slate-500 font-bold",children:"/"})," for options"]})})})}),R&&R.type==="image"&&(0,B.jsxs)("div",{className:"absolute z-[5000] flex flex-col w-64 bg-white border border-slate-200 shadow-2xl rounded-xl overflow-hidden animate-in fade-in zoom-in duration-200",style:{left:R.x+R.width/2>600?`${R.x-12}px`:`${R.x+R.width+12}px`,top:`${R.y+R.height/2}px`,transform:R.x+R.width/2>600?"translate(-100%, -50%)":"translate(0, -50%)"},children:[(0,B.jsx)("div",{className:"px-3 py-2 text-[10px] uppercase tracking-wider font-bold text-slate-400 bg-slate-50/50 border-b border-slate-100",children:"Image Actions"}),(0,B.jsxs)("div",{className:"p-1.5 flex flex-col gap-0.5",children:[(0,B.jsxs)("button",{onClick:b=>{b.stopPropagation(),z()},className:"w-full flex items-center gap-3 px-3 py-2 text-left transition-all duration-150 rounded-lg hover:bg-slate-50 group",children:[(0,B.jsx)("div",{className:"p-1.5 rounded-md bg-blue-50 text-blue-600 group-hover:bg-blue-600 group-hover:text-white transition-colors",children:(0,B.jsx)(ye.Sparkles,{size:16})}),(0,B.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,B.jsx)("span",{className:"text-sm font-semibold text-slate-900",children:"AI Generate Image"}),(0,B.jsx)("span",{className:"text-[11px] text-slate-400 truncate leading-tight",children:"Create an image with AI prompt"})]})]}),(0,B.jsxs)("button",{onClick:b=>{b.stopPropagation(),C()},className:"w-full flex items-center gap-3 px-3 py-2 text-left transition-all duration-150 rounded-lg hover:bg-slate-50 group",children:[(0,B.jsx)("div",{className:"p-1.5 rounded-md bg-slate-100 text-slate-500 group-hover:bg-slate-200 group-hover:text-slate-700 transition-colors",children:(0,B.jsx)(ye.Image,{size:16})}),(0,B.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,B.jsx)("span",{className:"text-sm font-semibold text-slate-700",children:"Change Image"}),(0,B.jsx)("span",{className:"text-[11px] text-slate-400 truncate leading-tight",children:"Replace with local file"})]})]}),(0,B.jsx)("div",{className:"h-[1px] bg-slate-100 my-1 mx-2"}),(0,B.jsxs)("button",{onClick:b=>{b.stopPropagation(),P()},className:"w-full flex items-center gap-3 px-3 py-2 text-left transition-all duration-150 rounded-lg hover:bg-red-50 group",children:[(0,B.jsx)("div",{className:"p-1.5 rounded-md bg-red-50 text-red-500 group-hover:bg-red-500 group-hover:text-white transition-colors",children:(0,B.jsx)(ye.Trash2,{size:16})}),(0,B.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,B.jsx)("span",{className:"text-sm font-semibold text-red-600",children:"Delete Element"}),(0,B.jsx)("span",{className:"text-[11px] text-red-400/80 truncate leading-tight",children:"Remove from slide"})]})]})]})]})]})})};var ut=xe(require("pptxgenjs"));var ze=class{async export(t){var s,x;let n=new ut.default,p=((s=t.layout)==null?void 0:s.width)||12192e3,y=((x=t.layout)==null?void 0:x.height)||6858e3,N=1200,z=675,C=i=>i/N*(p/914400),P=i=>i/z*(y/914400);t.slides.forEach(i=>{let v=n.addSlide();[...i.elements].sort((f,u)=>f.zIndex-u.zIndex).forEach(f=>{var H,I;let u=f.opacity!==void 0?(1-f.opacity)*100:0,d={x:C(f.x),y:P(f.y),w:C(f.width),h:P(f.height)};if(f.type==="text")v.addText(f.content,A(L({},d),{fontSize:(f.fontSize||18)/2,color:((H=f.color)==null?void 0:H.replace("#",""))||"000000",fontFace:f.fontFamily||"Arial"}));else if(f.type==="image")v.addImage(A(L({},d),{path:f.src,transparency:u}));else if(f.type==="shape"){let k=f.shapeType==="ellipse"?n.ShapeType.ellipse:n.ShapeType.rect;v.addShape(k,A(L({},d),{fill:{color:((I=f.fill)==null?void 0:I.replace("#",""))||"CCCCCC",transparency:u>0?Math.min(u+10,100):0}}))}})}),await n.writeFile({fileName:"presentation.pptx"})}};var vt=xe(require("jszip")),Ae=class{constructor(){this.slideWidth=12192e3;this.slideHeight=6858e3;this.CANVAS_WIDTH=1200;this.CANVAS_HEIGHT=675}async parse(t){var x,i;let n=t;if(typeof t=="string"){let v=await fetch(t);if(!v.ok){let c=v.status,f=v.statusText,u="";try{let d=await v.json();u=d.details||d.error||""}catch(d){}throw new Error(`Failed to fetch PPTX from ${t}: ${c} ${f} ${u?`(${u})`:""}`)}n=await v.arrayBuffer()}let p=await vt.default.loadAsync(n),y=await((x=p.file("ppt/presentation.xml"))==null?void 0:x.async("string"));if(!y)throw new Error("Invalid PPTX");let z=new DOMParser().parseFromString(y,"text/xml"),C=this.findFirstByLocalName(z,"sldSz");C&&(this.slideWidth=parseInt(this.getAttr(C,"cx")||"12192000"),this.slideHeight=parseInt(this.getAttr(C,"cy")||"6858000"));let P=Array.from(z.getElementsByTagNameNS("*","sldId")),s=[];for(let v=0;v<P.length;v++){let c=v+1,f=`ppt/slides/slide${c}.xml`,u=await((i=p.file(f))==null?void 0:i.async("string"));if(u){let d=await this.parseSlide(u,c,p);s.push(d)}}return{slides:s,layout:{width:this.slideWidth,height:this.slideHeight}}}getAttr(t,n){return t.getAttribute(n)||t.getAttribute(`a:${n}`)||t.getAttribute(`p:${n}`)||t.getAttribute(`r:${n}`)}findFirstByLocalName(t,n){let p=t.getElementsByTagNameNS("*",n);return p.length>0?p[0]:null}findAllByLocalName(t,n){return Array.from(t.getElementsByTagNameNS("*",n))}scaleX(t){return t/this.slideWidth*this.CANVAS_WIDTH}scaleY(t){return t/this.slideHeight*this.CANVAS_HEIGHT}parseColor(t){let n=this.findFirstByLocalName(t,"srgbClr");if(n){let y=`#${this.getAttr(n,"val")}`,N=this.findFirstByLocalName(n,"alpha"),z=N?parseInt(this.getAttr(N,"val")||"100000")/1e5:1;return{color:y,opacity:z}}let p=this.findFirstByLocalName(t,"schemeClr");if(p){let y=this.findFirstByLocalName(p,"alpha");return{color:"#000000",opacity:y?parseInt(this.getAttr(y,"val")||"100000")/1e5:1}}return{color:"#000000",opacity:1}}async resolveImage(t,n,p){var s,x;let y=await((s=p.file(`ppt/slides/_rels/slide${n}.xml.rels`))==null?void 0:s.async("string"));if(!y)return null;let z=new DOMParser().parseFromString(y,"text/xml"),C=Array.from(z.getElementsByTagName("Relationship")).find(i=>i.getAttribute("Id")===t),P=C==null?void 0:C.getAttribute("Target");if(P){let i=(P.startsWith("../")?`ppt/${P.substring(3)}`:`ppt/slides/${P}`).replace("ppt/slides/../","ppt/");return await((x=p.file(i))==null?void 0:x.async("blob"))||null}return null}async parseSlide(t,n,p){let N=new DOMParser().parseFromString(t,"text/xml"),z=[],C=0,P=this.findFirstByLocalName(N,"bg");if(P){let i=this.findFirstByLocalName(P,"blip"),v=(i==null?void 0:i.getAttributeNS("http://schemas.openxmlformats.org/officeDocument/2006/relationships","embed"))||(i==null?void 0:i.getAttribute("r:embed"));if(v){let c=await this.resolveImage(v,n,p);c&&z.push({id:`bg-${n}`,type:"image",src:URL.createObjectURL(c),x:0,y:0,width:this.CANVAS_WIDTH,height:this.CANVAS_HEIGHT,zIndex:C++,opacity:1})}}let s=this.findFirstByLocalName(N,"spTree");if(!s)return{id:`slide-${n}`,elements:z};let x=Array.from(s.children);for(let i of x){let v=i.localName;if(v==="sp"){let c=this.findFirstByLocalName(i,"txBody"),f=this.findFirstByLocalName(i,"xfrm"),u=f?this.findFirstByLocalName(f,"off"):null,d=f?this.findFirstByLocalName(f,"ext"):null;if(c&&u&&d){let I=this.findAllByLocalName(c,"p"),k="",R=18,b="#000000",G=1,_=!1;for(let Q of I){let $=this.findFirstByLocalName(Q,"pPr"),r=$?this.findFirstByLocalName($,"buNone"):null;$&&!r&&(this.findFirstByLocalName($,"buChar")||this.findFirstByLocalName($,"buAutoNum"))&&(_=!0,k+="\u2022 ");let w=this.findAllByLocalName(Q,"r");for(let m of w){let F=this.findFirstByLocalName(m,"t");F&&(k+=F.textContent);let j=this.findFirstByLocalName(m,"rPr");if(j){let ne=this.getAttr(j,"sz");ne&&(R=parseInt(ne)/100*2);let W=this.parseColor(j);b=W.color,G=W.opacity}}k+=`
4
+ `}if(k.trim()){z.push({id:`el-${n}-${Date.now()}-${C}`,type:"text",content:k.trim(),x:this.scaleX(parseInt(this.getAttr(u,"x")||"0")),y:this.scaleY(parseInt(this.getAttr(u,"y")||"0")),width:this.scaleX(parseInt(this.getAttr(d,"cx")||"0")),height:this.scaleY(parseInt(this.getAttr(d,"cy")||"0")),fontSize:R,color:b,fontFamily:"Arial",zIndex:C++,isBulleted:_,opacity:G});continue}}let H=this.findFirstByLocalName(i,"prstGeom");if(H&&u&&d){let I=this.getAttr(H,"prst")||"rect",k=this.findFirstByLocalName(i,"spPr"),R=k?this.parseColor(k):{color:"#cccccc",opacity:1},b={rect:"rect",roundRect:"rect",ellipse:"ellipse",circle:"ellipse",triangle:"triangle",rtTriangle:"rightTriangle",diamond:"rhombus",parallelogram:"parallelogram",trapezoid:"trapezoid",pentagon:"pentagon",hexagon:"hexagon",heptagon:"heptagon",octagon:"octagon",heart:"heart",smileyFace:"smiley",sun:"sun",moon:"moon",rightArrow:"arrowRight",leftArrow:"arrowLeft",upArrow:"arrowUp",downArrow:"arrowDown",leftRightArrow:"arrowLeftRight",upDownArrow:"arrowUpDown",star4:"star4",star5:"star5",star6:"star6",star8:"star8",cloud:"cloud",lightningBolt:"lightning",plus:"plus",minus:"minus",multiply:"multiply",divide:"divide",equal:"equal"};z.push({id:`el-${n}-${Date.now()}-${C}`,type:"shape",shapeType:b[I]||"rect",fill:R.color,opacity:R.opacity,x:this.scaleX(parseInt(this.getAttr(u,"x")||"0")),y:this.scaleY(parseInt(this.getAttr(u,"y")||"0")),width:this.scaleX(parseInt(this.getAttr(d,"cx")||"0")),height:this.scaleY(parseInt(this.getAttr(d,"cy")||"0")),zIndex:C++})}}if(v==="pic"){let c=this.findFirstByLocalName(i,"blip"),f=(c==null?void 0:c.getAttributeNS("http://schemas.openxmlformats.org/officeDocument/2006/relationships","embed"))||(c==null?void 0:c.getAttribute("r:embed")),u=this.findFirstByLocalName(i,"xfrm"),d=u?this.findFirstByLocalName(u,"off"):null,H=u?this.findFirstByLocalName(u,"ext"):null;if(f&&d&&H){let I=await this.resolveImage(f,n,p);I&&z.push({id:`el-${n}-${Date.now()}-${C}`,type:"image",src:URL.createObjectURL(I),x:this.scaleX(parseInt(this.getAttr(d,"x")||"0")),y:this.scaleY(parseInt(this.getAttr(d,"y")||"0")),width:this.scaleX(parseInt(this.getAttr(H,"cx")||"0")),height:this.scaleY(parseInt(this.getAttr(H,"cy")||"0")),zIndex:C++,opacity:1})}}}return{id:`slide-${n}`,elements:z}}};var ke=require("react"),Le=require("lucide-react");var J=require("react/jsx-runtime"),Xe=({presentation:g,initialSlideIndex:t,onClose:n})=>{let[p,y]=(0,ke.useState)(t),N=g.slides[p],z=()=>{p>0&&y(p-1)},C=()=>{p<g.slides.length-1&&y(p+1)};(0,ke.useEffect)(()=>{let x=i=>{i.key==="ArrowRight"||i.key===" "||i.key==="PageDown"?C():i.key==="ArrowLeft"||i.key==="Backspace"||i.key==="PageUp"?z():i.key==="Escape"&&n()};return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[p]);let[P,s]=(0,ke.useState)(1);return(0,ke.useEffect)(()=>{let x=()=>{let v=window.innerWidth-40,c=window.innerHeight-40,f=1200,u=675,d=v/f,H=c/u,I=Math.min(d,H);s(I)};return x(),window.addEventListener("resize",x),()=>window.removeEventListener("resize",x)},[]),(0,J.jsxs)("div",{className:"fixed inset-0 z-[99999] bg-[#0A0A0A] flex flex-col items-center justify-center overflow-hidden",children:[(0,J.jsxs)("div",{className:"absolute top-0 left-0 right-0 p-6 flex justify-between items-center opacity-0 hover:opacity-100 transition-opacity bg-gradient-to-b from-black/60 to-transparent z-[100] pointer-events-none",children:[(0,J.jsxs)("div",{className:"text-white/80 font-bold ml-4 pointer-events-auto",children:["Slide ",p+1," of ",g.slides.length]}),(0,J.jsx)("button",{onClick:n,className:"p-3 bg-white/10 hover:bg-white/20 text-white rounded-full transition-all pointer-events-auto",children:(0,J.jsx)(Le.X,{size:24})})]}),(0,J.jsx)("div",{className:"w-full h-full flex items-center justify-center",children:(0,J.jsx)("div",{className:"relative shadow-2xl shadow-black/80 bg-white",style:{width:"1200px",height:"675px",transform:`scale(${P})`,transformOrigin:"center center"},children:(0,J.jsx)(Re,{slide:N,onElementUpdate:()=>{},onSelect:()=>{},uiScale:.75,onSlashCommand:()=>{},selectedElementId:null,onAiGenerateClick:()=>{},onUploadImageClick:()=>{},onDeleteElement:()=>{}})})}),(0,J.jsxs)("div",{className:"absolute bottom-10 left-1/2 -translate-x-1/2 flex items-center gap-6 opacity-0 hover:opacity-100 transition-opacity bg-black/40 backdrop-blur-md px-6 py-3 rounded-full border border-white/10 pointer-events-auto",children:[(0,J.jsx)("button",{disabled:p===0,onClick:z,className:"p-2 text-white/50 hover:text-white disabled:opacity-20 transition-colors",children:(0,J.jsx)(Le.ChevronLeft,{size:32})}),(0,J.jsx)("div",{className:"h-6 w-[1px] bg-white/10"}),(0,J.jsx)("button",{disabled:p===g.slides.length-1,onClick:C,className:"p-2 text-white/50 hover:text-white disabled:opacity-20 transition-colors",children:(0,J.jsx)(Le.ChevronRight,{size:32})})]})]})};var bt=require("@google/generative-ai");var ee=xe(require("react")),E=require("lucide-react");var V=require("react/jsx-runtime"),ft=({onClose:g,onAction:t,position:n,canUseAi:p})=>{let[y,N]=(0,ee.useState)(""),[z,C]=(0,ee.useState)(0),P=(0,ee.useRef)(null),s=(0,ee.useMemo)(()=>{let i=[{id:"generate-image",label:"AI Generate Image",icon:E.Sparkles,category:"AI",description:"Create an image with AI prompt",action:()=>t("generate-image")},{id:"text",label:"Text Box",icon:E.Type,category:"Basic",description:"Insert a new text element",action:()=>t("add-text")},{id:"image",label:"Image",icon:E.Image,category:"Basic",description:"Upload and insert an image",action:()=>t("add-image")},{id:"new-slide",label:"New Slide",icon:E.PlusCircle,category:"Canvas",description:"Add a fresh slide to deck",action:()=>t("new-slide")},{id:"rect",label:"Rectangle",icon:E.Square,category:"Shapes",action:()=>t("add-shape","rect")},{id:"circle",label:"Circle",icon:E.Circle,category:"Shapes",action:()=>t("add-shape","circle")},{id:"triangle",label:"Triangle",icon:E.Triangle,category:"Shapes",action:()=>t("add-shape","triangle")},{id:"star5",label:"Star",icon:E.Star,category:"Shapes",action:()=>t("add-shape","star5")},{id:"arrowRight",label:"Arrow",icon:E.ArrowRight,category:"Shapes",action:()=>t("add-shape","arrowRight")}];return p&&i.unshift({id:"ai-reframe",label:"AI Reframe",icon:E.Sparkles,category:"AI",description:"Reword selected text",action:()=>t("ai-action","reframe")},{id:"ai-shorten",label:"AI Shorten",icon:E.Sparkles,category:"AI",description:"Summarize selected text",action:()=>t("ai-action","shorten")},{id:"ai-lengthen",label:"AI Lengthen",icon:E.Sparkles,category:"AI",description:"Expand selected text",action:()=>t("ai-action","lengthen")}),i},[t,p]),x=(0,ee.useMemo)(()=>s.filter(i=>i.label.toLowerCase().includes(y.toLowerCase())||i.category.toLowerCase().includes(y.toLowerCase())),[s,y]);return(0,ee.useEffect)(()=>{C(0)},[y]),(0,ee.useEffect)(()=>{let i=v=>{v.key==="ArrowDown"?(v.preventDefault(),C(c=>(c+1)%x.length)):v.key==="ArrowUp"?(v.preventDefault(),C(c=>(c-1+x.length)%x.length)):v.key==="Enter"?(v.preventDefault(),x[z]&&x[z].action()):v.key==="Escape"&&(v.preventDefault(),g())};return window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i)},[x,z,g]),(0,ee.useEffect)(()=>{if(P.current){let i=P.current.children[z];i&&i.scrollIntoView({block:"nearest"})}},[z]),x.length===0&&y===""?null:(0,V.jsxs)("div",{className:"fixed z-[9999] w-72 bg-white rounded-xl shadow-2xl border border-slate-200 overflow-hidden flex flex-col animate-in fade-in zoom-in duration-200",style:{left:`${n.x}px`,top:`${n.y}px`,maxHeight:"400px"},onClick:i=>i.stopPropagation(),children:[(0,V.jsxs)("div",{className:"p-3 border-b border-slate-100 flex items-center gap-2 bg-slate-50/50",children:[(0,V.jsx)(E.Search,{size:14,className:"text-slate-400"}),(0,V.jsx)("input",{autoFocus:!0,type:"text",placeholder:"Type a command...",className:"bg-transparent border-none outline-none text-sm w-full font-medium text-slate-700 placeholder:text-slate-400",value:y,onChange:i=>N(i.target.value)})]}),(0,V.jsx)("div",{ref:P,className:"overflow-y-auto py-2 px-1 custom-scrollbar",children:x.length>0?x.map((i,v)=>{let c=v===z,f=v===0||x[v-1].category!==i.category;return(0,V.jsxs)(ee.default.Fragment,{children:[f&&(0,V.jsx)("div",{className:"px-3 py-1.5 text-[10px] uppercase tracking-wider font-bold text-slate-400",children:i.category}),(0,V.jsxs)("button",{className:O("w-full flex items-center gap-3 px-3 py-2 text-left transition-all duration-150 rounded-lg group",c?"bg-slate-100":"hover:bg-slate-50"),onClick:()=>i.action(),onMouseEnter:()=>C(v),children:[(0,V.jsx)("div",{className:O("p-1.5 rounded-md transition-colors",c?"bg-white shadow-sm text-blue-600":"bg-slate-100 text-slate-500 group-hover:text-slate-700"),children:(0,V.jsx)(i.icon,{size:16})}),(0,V.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,V.jsx)("span",{className:O("text-sm font-semibold truncate",c?"text-slate-900":"text-slate-700"),children:i.label}),i.description&&(0,V.jsx)("span",{className:"text-[11px] text-slate-400 truncate leading-tight",children:i.description})]}),c&&(0,V.jsx)("div",{className:"ml-auto text-[10px] font-mono font-bold text-slate-400 flex items-center gap-1 border border-slate-200 rounded px-1 px-0.5 bg-white",children:(0,V.jsx)("span",{children:"\u21B5"})})]})]},i.id)}):(0,V.jsxs)("div",{className:"px-3 py-8 text-center flex flex-col items-center gap-2",children:[(0,V.jsx)("div",{className:"p-3 bg-slate-50 rounded-full",children:(0,V.jsx)(E.Search,{size:20,className:"text-slate-300"})}),(0,V.jsxs)("span",{className:"text-sm text-slate-400 font-medium whitespace-nowrap",children:['No commands found for "',y,'"']})]})}),(0,V.jsxs)("div",{className:"px-3 py-2 border-t border-slate-100 bg-slate-50/50 flex items-center justify-between",children:[(0,V.jsxs)("div",{className:"flex items-center gap-1 text-[10px] font-medium text-slate-400",children:[(0,V.jsx)("span",{className:"border border-slate-200 rounded px-1 bg-white",children:"\u2191\u2193"}),(0,V.jsx)("span",{children:"to navigate"})]}),(0,V.jsxs)("div",{className:"flex items-center gap-1 text-[10px] font-medium text-slate-400",children:[(0,V.jsx)("span",{className:"border border-slate-200 rounded px-1 bg-white",children:"Esc"}),(0,V.jsx)("span",{children:"to close"})]})]})]})};var K=require("lucide-react");var o=require("react/jsx-runtime"),Yt=({initialPresentation:g,url:t,appName:n="SlideCanvas",onChange:p,geminiApiKey:y="AIzaSyAcBfseKzoFZJMfuRzhRJjygQ-u2UKFxOw",width:N,height:z,appBgColor:C="#B7472A",showHomeOnEmpty:P=!1,initialSource:s,onSourceChange:x,proxyUrl:i,onGenerateImage:v})=>{var ot;let[c,f]=(0,M.useState)(g||{slides:[{id:"slide-1",elements:[]}],layout:{width:12192e3,height:6858e3}}),[u,d]=(0,M.useState)([]),[H,I]=(0,M.useState)([]),[k,R]=(0,M.useState)(0),[b,G]=(0,M.useState)(null),[_,Q]=(0,M.useState)(!1),[$,r]=(0,M.useState)(null),[w,m]=(0,M.useState)(!1),[F,j]=(0,M.useState)(s||(t?"url":null)),[ne,W]=(0,M.useState)(P&&!g&&!t&&!s),[te,ce]=(0,M.useState)(""),[ae,se]=(0,M.useState)({visible:!1,position:{x:0,y:0}}),[X,ge]=(0,M.useState)(!1),[fe,be]=(0,M.useState)(""),[T,me]=(0,M.useState)(!1),[re,Ie]=(0,M.useState)(null),[De,Ke]=(0,M.useState)(!1),[_e,Ve]=(0,M.useState)(!1);(0,M.useEffect)(()=>{re&&(Ke(!1),Ve(!0))},[re]),(0,M.useEffect)(()=>{t&&Be(t)},[t]);let[wt,Fe]=(0,M.useState)(!1),[Ne,qe]=(0,M.useState)(null),Me=(0,M.useMemo)(()=>{let a=typeof N=="number"?N:parseInt(String(N));return isNaN(a)?1:Math.min(Math.max(a/1600,.7),1)},[N]),de=c.slides[k],yt=(0,M.useMemo)(()=>de.elements.find(a=>a.id===b)||null,[de,b]),Se=(0,M.useCallback)(a=>{d(l=>[...l.slice(-19),c]),I([]),f(a),p==null||p(a)},[p,c]),Je=()=>{if(u.length===0)return;let a=u[u.length-1];I(l=>[...l,c]),d(l=>l.slice(0,-1)),f(a)},je=()=>{if(H.length===0)return;let a=H[H.length-1];d(l=>[...l,c]),I(l=>l.slice(0,-1)),f(a)},ue=(0,M.useCallback)(a=>{f(l=>{let h=[...l.slides];h[k]=L(L({},h[k]),a);let D=A(L({},l),{slides:h});return d(U=>[...U.slice(-19),l]),I([]),p==null||p(D),D})},[k,p]),Pe=(0,M.useCallback)((a,l)=>{f(h=>{let D=h.slides[k],U=D.elements.map(pe=>pe.id===a?L(L({},pe),l):pe),oe=[...h.slides];oe[k]=A(L({},D),{elements:U});let he=A(L({},h),{slides:oe});return p==null||p(he),he})},[k,p]),kt=a=>{if(!b)return;if(de.elements.find(h=>h.id===b)){Pe(b,a);let h=c.slides[k],D=h.elements.map(oe=>oe.id===b?L(L({},oe),a):oe),U=[...c.slides];U[k]=A(L({},h),{elements:D}),Se(A(L({},c),{slides:U}))}},He=(0,M.useCallback)(()=>{if(!b)return;let l=c.slides[k].elements.filter(h=>h.id!==b);ue({elements:l}),G(null)},[b,k,c,ue]),Qe=()=>{let a={id:`text-${Date.now()}`,type:"text",content:"New Text",x:100,y:100,width:400,height:100,fontSize:48,fontFamily:"Arial",color:"#000000",zIndex:de.elements.length};ue({elements:[...de.elements,a]})},Ze=(0,M.useCallback)(async a=>{let l="";typeof a=="string"?l=a:l=await new Promise(U=>{let oe=new FileReader;oe.onload=he=>{var pe;return U((pe=he.target)==null?void 0:pe.result)},oe.readAsDataURL(a)});let h=`img-${Date.now()}`,D={id:h,type:"image",src:l,x:100,y:100,width:400,height:250,zIndex:de.elements.length};ue({elements:[...de.elements,D]}),G(h)},[de.elements,ue,G]),et=a=>{let l={id:`shape-${Date.now()}`,type:"shape",shapeType:a,fill:"#3b82f6",x:200,y:200,width:200,height:200,zIndex:de.elements.length};ue({elements:[...de.elements,l]})},tt=()=>{let a={id:`slide-${Date.now()}`,elements:[]};Se(A(L({},c),{slides:[...c.slides,a]})),R(c.slides.length)},Lt=a=>{if(c.slides.length<=1)return;let l=c.slides.filter((h,D)=>D!==a);Se(A(L({},c),{slides:l})),a<=k&&R(Math.max(0,k-1))},Nt=a=>{let l=c.slides[a],h=A(L({},l),{id:`slide-${Date.now()}`,elements:l.elements.map(U=>A(L({},U),{id:`${U.type}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}))}),D=[...c.slides];D.splice(a+1,0,h),Se(A(L({},c),{slides:D})),R(a+1)},St=(a,l)=>{if(a===l)return;let h=[...c.slides],[D]=h.splice(a,1);h.splice(l,0,D),Se(A(L({},c),{slides:h})),k===a?R(l):k>a&&k<=l?R(k-1):k<a&&k>=l&&R(k+1)},Ct=a=>{let l=[],h=Date.now();a==="title"?l=[{id:`text-title-${h}`,type:"text",content:"Presentation Title",x:100,y:200,width:1e3,height:150,fontSize:80,fontFamily:"Inter",color:"#000000",textAlign:"center",isBold:!0,zIndex:0},{id:`text-sub-${h}`,type:"text",content:"Subtitle goes here",x:200,y:380,width:800,height:80,fontSize:36,fontFamily:"Inter",color:"#64748b",textAlign:"center",zIndex:1}]:a==="content"?l=[{id:`text-title-${h}`,type:"text",content:"Slide Title",x:60,y:40,width:800,height:80,fontSize:48,fontFamily:"Inter",color:"#000000",isBold:!0,zIndex:0},{id:`text-body-${h}`,type:"text",content:`\u2022 Add your points here
5
5
  \u2022 Press Enter for new line
6
- \u2022 Use the toolbar to format`,x:60,y:150,width:1080,height:480,fontSize:28,fontFamily:"Inter",color:"#334155",zIndex:1,isBulleted:!0}]:a==="split"&&(l=[{id:`text-title-${g}`,type:"text",content:"Comparison Layout",x:60,y:40,width:1080,height:80,fontSize:48,fontFamily:"Inter",color:"#000000",isBold:!0,textAlign:"center",zIndex:0},{id:`text-left-${g}`,type:"text",content:"Left column content goes here.",x:60,y:180,width:520,height:400,fontSize:24,fontFamily:"Inter",color:"#334155",zIndex:1},{id:`text-right-${g}`,type:"text",content:"Right column content goes here.",x:620,y:180,width:520,height:400,fontSize:24,fontFamily:"Inter",color:"#334155",zIndex:2}]),ue({elements:l})},Ee=async(a,l)=>{let T=c.slides[y].elements.find(U=>U.id===a);if(!(!T||T.type!=="text")){Fe(!0),r(null),qe({id:a,action:l});try{if(!x){r("Gemini API key is missing. Please provide it via the 'geminiApiKey' prop."),Fe(!1);return}let oe=new ft.GoogleGenerativeAI(x).getGenerativeModel({model:"gemini-flash-latest",systemInstruction:`You are a professional presentation assistant. Your task is to transform slide text according to specific user requests (shorten, reframe, or lengthen).
6
+ \u2022 Use the toolbar to format`,x:60,y:150,width:1080,height:480,fontSize:28,fontFamily:"Inter",color:"#334155",zIndex:1,isBulleted:!0}]:a==="split"&&(l=[{id:`text-title-${h}`,type:"text",content:"Comparison Layout",x:60,y:40,width:1080,height:80,fontSize:48,fontFamily:"Inter",color:"#000000",isBold:!0,textAlign:"center",zIndex:0},{id:`text-left-${h}`,type:"text",content:"Left column content goes here.",x:60,y:180,width:520,height:400,fontSize:24,fontFamily:"Inter",color:"#334155",zIndex:1},{id:`text-right-${h}`,type:"text",content:"Right column content goes here.",x:620,y:180,width:520,height:400,fontSize:24,fontFamily:"Inter",color:"#334155",zIndex:2}]),ue({elements:l})},Ee=async(a,l)=>{let D=c.slides[k].elements.find(U=>U.id===a);if(!(!D||D.type!=="text")){Fe(!0),r(null),qe({id:a,action:l});try{if(!y){r("Gemini API key is missing. Please provide it via the 'geminiApiKey' prop."),Fe(!1);return}let oe=new bt.GoogleGenerativeAI(y).getGenerativeModel({model:"gemini-flash-latest",systemInstruction:`You are a professional presentation assistant. Your task is to transform slide text according to specific user requests (shorten, reframe, or lengthen).
7
7
 
8
8
  CRITICAL RULES:
9
9
  1. Return ONLY the transformed text.
@@ -11,9 +11,9 @@ CRITICAL RULES:
11
11
  3. Do NOT use markdown formatting (like bolding or headers) unless specifically needed for bullet points.
12
12
  4. If the input text is a title/headline, the output should be a professional title/headline.
13
13
  5. If the input text is a bulleted list, the output MUST be a bulleted list using the same bullet style (e.g., '\u2022').
14
- 6. Maintain the professional tone of the original presentation.`}),he=T.fontSize>32?"Title/Headline":"Body Text/List",pe=`Action: ${l.toUpperCase()}
14
+ 6. Maintain the professional tone of the original presentation.`}),he=D.fontSize>32?"Title/Headline":"Body Text/List",pe=`Action: ${l.toUpperCase()}
15
15
  Text Role: ${he}
16
- Original Text: "${T.content}"
16
+ Original Text: "${D.content}"
17
17
 
18
- Transformed Text:`,It=await(await oe.generateContent(pe)).response;r(It.text().trim())}catch(U){console.error("Gemini AI Error:",U),r("Error generating response. Please check your API key or connection.")}finally{Fe(!1)}}},Te=a=>{if(!$||!Le)return;if(a==="regenerate"){Ee(Le.id,Le.action);return}let l=c.slides[y],g=l.elements.find(T=>T.id===Le.id);if(!(!g||g.type!=="text")){if(a==="replace")Pe(Le.id,{content:$});else if(a==="addBelow"){let T=I(C({},g),{id:`text-ai-${Date.now()}`,content:$,y:g.y+g.height+20,zIndex:l.elements.length});ue({elements:[...l.elements,T]})}r(null),qe(null)}},Ct=async()=>{await new ze().export(c)},Yt=()=>{Q(!0);let a=document.documentElement;a.requestFullscreen&&a.requestFullscreen()},tt=()=>{Q(!1),document.fullscreenElement&&document.exitFullscreen()};(0,A.useEffect)(()=>{let a=()=>{document.fullscreenElement||Q(!1)};return document.addEventListener("fullscreenchange",a),()=>document.removeEventListener("fullscreenchange",a)},[]),(0,A.useEffect)(()=>{let a=l=>{if(l.key==="Delete"||l.key==="Backspace"){let g=document.activeElement;if((g==null?void 0:g.tagName)==="INPUT"||(g==null?void 0:g.tagName)==="TEXTAREA"||g!=null&&g.isContentEditable)return;He()}l.key==="Escape"&&(G(null),se(g=>I(C({},g),{visible:!1}))),(l.ctrlKey||l.metaKey)&&(l.key==="z"&&(l.preventDefault(),l.shiftKey?je():Ke()),l.key==="y"&&(l.preventDefault(),je()))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[He,Ke,je]);let $e=(a,l)=>{j(a),b==null||b(a,l)},at=()=>{v({slides:[{id:`slide-${Date.now()}`,elements:[]}],layout:{width:12192e3,height:6858e3}}),R(0),G(null),$e("scratch")},Be=async a=>{m(!0);try{let l=new Ae,g=a;if(typeof a=="string"){let U=a.trim();g=n?`${n}${n.includes("?")?"&":"?"}url=${encodeURIComponent(U)}`:U,$e("url",U)}else $e("uploaded");let T=await l.parse(g);v(T),d([]),M([]),R(0),G(null)}catch(l){console.error("Failed to load PPTX",l),alert("Failed to load presentation. Please ensure it is a valid .pptx.")}finally{m(!1)}},St=(a,l)=>{switch(se(g=>I(C({},g),{visible:!1})),a){case"add-text":Je();break;case"add-image":Oe();break;case"add-shape":Qe(l);break;case"new-slide":et();break;case"ai-action":Ee(u||"",l);break;case"generate-image":ge(!0);break}},zt=async()=>{if(fe.trim()){me(!0);try{let a="";if(w)a=await w(fe);else throw x?new Error("Internal image generation requires onGenerateImage prop or specific endpoint configuration."):new Error("No image generation function or Gemini API key provided.");Ie(a),ge(!1),be("")}catch(a){console.error("Image generation failed:",a),alert("Image generation failed: "+(a instanceof Error?a.message:"Unknown error"))}finally{me(!1)}}},Ue=a=>{if(a==="insert"&&re)Ze(re);else if(a==="replace"&&re&&u){let l=c.slides[y].elements.find(g=>g.id===u);l&&l.type==="image"?Pe(u,{src:re}):Ze(re)}Ie(null)},Oe=()=>{let a=document.createElement("input");a.type="file",a.accept="image/*",a.onchange=async l=>{var T;let g=(T=l.target.files)==null?void 0:T[0];if(g){let U=await new Promise(oe=>{let he=new FileReader;he.onload=pe=>{var Ge;return oe((Ge=pe.target)==null?void 0:Ge.result)},he.readAsDataURL(g)});Ie(U)}},a.click()},At=(0,A.useCallback)(a=>!n||!a||a.startsWith("data:")||a.includes("localhost")||a.includes("127.0.0.1")?a:`${n}?url=${encodeURIComponent(a)}`,[n]);return!k||!S?(0,o.jsx)("div",{className:"flex items-center justify-center bg-red-50 text-red-600 p-8 rounded-xl border-2 border-red-200 font-bold",children:"Error: width and height props are compulsory for PptEditor."}):(0,o.jsxs)("div",{className:"flex flex-col bg-white relative",style:{width:typeof k=="number"?`${k}px`:k,height:typeof S=="number"?`${S}px`:S,fontSize:`${16*Me}px`},children:[ne&&(0,o.jsx)("div",{className:"absolute inset-0 z-[2000] bg-white flex flex-col items-center justify-center p-6 md:p-12 overflow-y-auto",children:(0,o.jsxs)("div",{className:"max-w-2xl w-full text-center space-y-6 md:space-y-8 animate-in fade-in zoom-in-95 duration-500 my-auto",children:[(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)("h2",{className:"text-4xl font-black tracking-tight text-slate-800",children:s}),(0,o.jsx)("p",{className:"text-slate-500 font-medium",children:"Create stunning presentations in seconds."})]}),(0,o.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,o.jsxs)("button",{onClick:()=>{at(),W(!1)},className:"flex flex-col items-center justify-center gap-4 p-10 border-2 border-slate-100 rounded-[2.5rem] hover:border-slate-300 hover:bg-slate-50 transition-all group shadow-sm hover:shadow-md active:scale-[0.98]",children:[(0,o.jsx)("div",{className:"p-5 bg-slate-100 rounded-2xl group-hover:bg-blue-50 transition-colors",children:(0,o.jsx)("svg",{className:"w-10 h-10 text-blue-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,o.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M12 4v16m8-8H4"})})}),(0,o.jsx)("span",{className:"text-sm font-black uppercase tracking-[0.15em] text-slate-600 group-hover:text-slate-900 transition-colors",children:"Start New Deck"})]}),(0,o.jsxs)("label",{className:"flex flex-col items-center justify-center gap-4 p-10 border-2 border-slate-100 rounded-[2.5rem] hover:border-slate-300 hover:bg-slate-50 transition-all group shadow-sm hover:shadow-md active:scale-[0.98] cursor-pointer",children:[(0,o.jsx)("div",{className:"p-5 bg-slate-100 rounded-2xl group-hover:bg-emerald-50 transition-colors",children:(0,o.jsx)("svg",{className:"w-10 h-10 text-emerald-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,o.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M4 16v1a2 2 0 002 2h12a2 2 0 002-2v-1m-4-8l-4-4m0 0L8 8m4-4v12"})})}),(0,o.jsx)("span",{className:"text-sm font-black uppercase tracking-[0.15em] text-slate-600 group-hover:text-slate-900 transition-colors",children:"Upload PPTX"}),(0,o.jsx)("input",{type:"file",accept:".pptx",className:"hidden",onChange:a=>{var g;let l=(g=a.target.files)==null?void 0:g[0];l&&(Be(l),W(!1))}})]})]}),(0,o.jsxs)("div",{className:"space-y-4 pt-8 border-t border-slate-100",children:[(0,o.jsxs)("div",{className:"flex gap-3 items-stretch",children:[(0,o.jsx)("div",{className:"flex-1 relative group",children:(0,o.jsx)("input",{type:"text",placeholder:"Paste presentation URL...",value:te,onChange:a=>ce(a.target.value),className:"text-black w-full bg-slate-50 border border-slate-200 rounded-2xl pl-12 pr-5 py-4 focus:outline-none focus:border-slate-400 focus:ring-4 focus:ring-slate-400/5 text-base transition-all h-full"})}),(0,o.jsx)("button",{onClick:()=>{te.trim()&&(Be(te.trim()),W(!1))},disabled:!te.trim()||f,style:{cursor:"pointer"},className:"bg-slate-900 hover:bg-black disabled:bg-slate-100 disabled:text-slate-400 text-white font-black px-10 rounded-2xl transition-all shadow-sm text-sm shrink-0 whitespace-nowrap h-full min-h-[56px] flex items-center justify-center uppercase tracking-widest",children:f?(0,o.jsxs)("svg",{className:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,o.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,o.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}):"Load"})]}),(0,o.jsx)("p",{className:"text-[10px] text-slate-400 font-bold uppercase tracking-[0.2em]",children:"Supports S3, public links, and versioned assets"})]})]})}),q&&(0,o.jsx)(Xe,{presentation:c,initialSlideIndex:y,onClose:tt}),(0,o.jsx)(dt,{onAddText:Je,onAddImage:Ze,onAddShape:Qe,onAddSlide:et,onExport:Ct,onFormatText:xt,onDeleteElement:He,onGenerateImageClick:()=>ge(!0),onUploadImageClick:Oe,onApplyLayout:Nt,onPlay:()=>Q(!0),onAiAction:Ee,onAiResponseAction:Te,onNewPresentation:at,onLoadPresentation:Be,aiResponse:$,isAiLoading:bt,selectedElement:wt,appName:s,appBgColor:z,uiScale:Me,source:F}),(0,o.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[(0,o.jsx)(ht,{slides:c.slides,currentSlideIndex:y,onSelectSlide:R,onDeleteSlide:yt,onDuplicateSlide:kt,onReorderSlides:Lt,uiScale:Me,appBgColor:z}),(0,o.jsx)("div",{className:"flex-1 flex items-center justify-center p-12 overflow-auto bg-white",children:(0,o.jsx)(Re,{slide:de,onElementUpdate:Pe,onSelect:G,uiScale:Me,onSlashCommand:a=>se({visible:!0,position:a}),selectedElementId:u,onAiGenerateClick:()=>ge(!0),onUploadImageClick:Oe,onDeleteElement:He})})]}),ae.visible&&(0,o.jsx)("div",{className:"fixed inset-0 z-[9998]",onClick:()=>se(a=>I(C({},a),{visible:!1})),children:(0,o.jsx)(vt,{position:ae.position,onClose:()=>se(a=>I(C({},a),{visible:!1})),onAction:St,canUseAi:!!x})}),X&&(0,o.jsx)("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/40 backdrop-blur-sm animate-in fade-in duration-200",children:(0,o.jsxs)("div",{className:"bg-white rounded-2xl shadow-2xl w-[500px] p-6 flex flex-col gap-4 animate-in zoom-in-95 duration-200",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsxs)("h3",{className:"text-xl font-bold text-slate-800 flex items-center gap-2",children:[(0,o.jsx)(_.Sparkles,{className:"text-blue-600",size:20}),"Generate Image"]}),(0,o.jsx)("button",{onClick:()=>ge(!1),className:"text-slate-400 hover:text-slate-600",children:(0,o.jsx)(_.Plus,{className:"rotate-45",size:24})})]}),(0,o.jsx)("p",{className:"text-sm text-slate-500",children:"Describe the image you want to create for this slide."}),(0,o.jsx)("textarea",{autoFocus:!0,placeholder:"A futuristic city in the style of cyberpunk with neon lights...",className:"text-black w-full h-32 p-4 bg-slate-50 border border-slate-200 rounded-xl outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 text-sm font-medium resize-none",value:fe,onChange:a=>be(a.target.value)}),(0,o.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,o.jsx)("button",{onClick:()=>ge(!1),className:"px-5 py-2.5 text-sm font-bold text-slate-600 hover:bg-slate-100 rounded-lg transition-colors",children:"Cancel"}),(0,o.jsx)("button",{onClick:zt,disabled:P||!fe.trim(),className:"px-6 py-2.5 text-sm font-bold text-white bg-blue-600 hover:bg-blue-700 rounded-lg shadow-lg shadow-blue-500/20 transition-all active:scale-95 disabled:opacity-50 disabled:active:scale-100 flex items-center gap-2",children:P?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(_.RefreshCw,{className:"animate-spin",size:16}),"Generating..."]}):"Generate"})]})]})}),re&&(0,o.jsx)("div",{className:"fixed inset-0 z-[10000] flex items-center justify-center bg-black/60 backdrop-blur-md animate-in fade-in duration-300",children:(0,o.jsxs)("div",{className:"bg-white rounded-2xl shadow-3xl max-w-[90vw] max-h-[90vh] overflow-hidden flex flex-col animate-in zoom-in-95 duration-300 border border-slate-200",children:[(0,o.jsxs)("div",{className:"p-4 border-b border-slate-100 flex items-center justify-between bg-white",children:[(0,o.jsx)("h3",{className:"text-lg font-bold text-slate-800",children:"Preview Image"}),(0,o.jsx)("button",{onClick:()=>Ie(null),className:"p-2 hover:bg-slate-100 rounded-full text-slate-400 transition-colors",children:(0,o.jsx)(_.Plus,{className:"rotate-45",size:20})})]}),(0,o.jsxs)("div",{className:"p-8 bg-slate-100 flex items-center justify-center overflow-auto min-h-[300px] relative",children:[_e&&!De&&(0,o.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-slate-100/50 z-10",children:(0,o.jsx)(_.RefreshCw,{className:"animate-spin text-slate-400",size:32})}),(0,o.jsx)("img",{src:At(re),alt:"Generated",className:O("max-w-full max-h-[60vh] rounded-lg shadow-2xl ring-4 ring-white transition-opacity duration-300",De||_e?"opacity-0":"opacity-100"),onLoad:()=>Ve(!1),onError:()=>{Ye(!0),Ve(!1)}}),De&&(0,o.jsxs)("div",{className:"flex flex-col items-center gap-4 text-slate-400 p-12 text-center animate-in fade-in duration-500",children:[(0,o.jsx)("div",{className:"p-4 bg-slate-200/50 rounded-full",children:(0,o.jsx)(_.Image,{size:48,className:"opacity-40"})}),(0,o.jsxs)("div",{children:[(0,o.jsx)("p",{className:"font-bold text-slate-600",children:"Failed to load preview"}),(0,o.jsx)("p",{className:"text-xs max-w-[300px] mt-1",children:"The URL might be invalid or restricted. Ensure it's a valid image format."})]}),(0,o.jsx)("code",{className:"text-[10px] bg-slate-200/50 px-2 py-1 rounded break-all max-w-[400px]",children:re})]})]}),(0,o.jsxs)("div",{className:"p-6 bg-white border-t border-slate-100 flex flex-col gap-4",children:[(0,o.jsxs)("div",{className:"flex gap-3 justify-center",children:[(0,o.jsxs)("button",{onClick:()=>Ue("insert"),className:"flex-1 px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white rounded-xl font-bold shadow-lg shadow-blue-500/20 transition-all flex items-center justify-center gap-2",children:[(0,o.jsx)(_.Check,{size:18}),"Insert image"]}),u&&((rt=c.slides[y].elements.find(a=>a.id===u))==null?void 0:rt.type)==="image"&&(0,o.jsxs)("button",{onClick:()=>Ue("replace"),className:"flex-1 px-6 py-3 bg-emerald-600 hover:bg-emerald-700 text-white rounded-xl font-bold shadow-lg shadow-emerald-500/20 transition-all flex items-center justify-center gap-2",children:[(0,o.jsx)(_.RefreshCw,{size:18}),"Replace existing"]})]}),(0,o.jsxs)("button",{onClick:()=>Ue("discard"),className:"w-full px-6 py-3 bg-red-50 hover:bg-red-100 text-red-600 rounded-xl font-bold transition-all flex items-center justify-center gap-2",children:[(0,o.jsx)(_.Trash2,{size:18}),"Discard"]})]})]})}),$&&(0,o.jsx)("div",{className:"fixed inset-0 z-[10001] flex items-center justify-center bg-black/40 backdrop-blur-sm animate-in fade-in duration-200",children:(0,o.jsxs)("div",{className:"bg-white rounded-2xl shadow-2xl w-[600px] border border-slate-200 overflow-hidden animate-in zoom-in-95 duration-200",children:[(0,o.jsxs)("div",{className:"p-4 border-b border-slate-100 bg-slate-50 flex items-center justify-between",children:[(0,o.jsxs)("h3",{className:"text-sm font-black text-slate-800 uppercase tracking-widest flex items-center gap-2",children:[(0,o.jsx)(_.Sparkles,{className:"text-purple-600",size:16}),"AI Suggestion"]}),(0,o.jsx)("button",{onClick:()=>r(null),className:"p-1 hover:bg-white rounded-lg text-slate-400 transition-colors",children:(0,o.jsx)(_.Plus,{className:"rotate-45",size:20})})]}),(0,o.jsx)("div",{className:"p-8 bg-white overflow-y-auto max-h-[400px]",children:(0,o.jsx)("div",{className:"text-lg font-medium text-slate-800 leading-relaxed whitespace-pre-wrap",children:$})}),(0,o.jsxs)("div",{className:"p-6 bg-slate-50 border-t border-slate-100 flex items-center gap-3",children:[(0,o.jsx)("button",{onClick:()=>Te("replace"),style:{backgroundColor:"#0f172a",color:"#ffffff"},className:"flex-1 hover:opacity-90 font-black py-4 rounded-xl transition-all shadow-lg active:scale-95 text-xs uppercase tracking-widest",children:"Replace Original"}),(0,o.jsx)("button",{onClick:()=>Te("addBelow"),style:{backgroundColor:"#ffffff",color:"#0f172a",border:"1px solid #e2e8f0"},className:"flex-1 hover:bg-slate-50 font-black py-4 rounded-xl transition-all shadow-sm active:scale-95 text-xs uppercase tracking-widest",children:"Add Below"}),(0,o.jsx)("button",{onClick:()=>Te("regenerate"),style:{backgroundColor:"#ffffff",color:"#94a3b8",border:"1px solid #e2e8f0"},className:"px-6 hover:bg-slate-50 font-black py-4 rounded-xl transition-all shadow-sm active:scale-95 flex items-center justify-center",title:"Regenerate",children:(0,o.jsx)(_.RefreshCw,{size:18})})]})]})}),q&&(0,o.jsx)(Xe,{presentation:c,initialSlideIndex:y,onClose:tt})]})};0&&(module.exports={PptEditor,PptxExporter,PptxParser});
18
+ Transformed Text:`,Pt=await(await oe.generateContent(pe)).response;r(Pt.text().trim())}catch(U){console.error("Gemini AI Error:",U),r("Error generating response. Please check your API key or connection.")}finally{Fe(!1)}}},Te=a=>{if(!$||!Ne)return;if(a==="regenerate"){Ee(Ne.id,Ne.action);return}let l=c.slides[k],h=l.elements.find(D=>D.id===Ne.id);if(!(!h||h.type!=="text")){if(a==="replace")Pe(Ne.id,{content:$});else if(a==="addBelow"){let D=A(L({},h),{id:`text-ai-${Date.now()}`,content:$,y:h.y+h.height+20,zIndex:l.elements.length});ue({elements:[...l.elements,D]})}r(null),qe(null)}},zt=async()=>{await new ze().export(c)},_t=()=>{Q(!0);let a=document.documentElement;a.requestFullscreen&&a.requestFullscreen()},at=()=>{Q(!1),document.fullscreenElement&&document.exitFullscreen()};(0,M.useEffect)(()=>{let a=()=>{document.fullscreenElement||Q(!1)};return document.addEventListener("fullscreenchange",a),()=>document.removeEventListener("fullscreenchange",a)},[]),(0,M.useEffect)(()=>{let a=l=>{if(l.key==="Delete"||l.key==="Backspace"){let h=document.activeElement;if((h==null?void 0:h.tagName)==="INPUT"||(h==null?void 0:h.tagName)==="TEXTAREA"||h!=null&&h.isContentEditable)return;He()}l.key==="Escape"&&(G(null),se(h=>A(L({},h),{visible:!1}))),(l.ctrlKey||l.metaKey)&&(l.key==="z"&&(l.preventDefault(),l.shiftKey?je():Je()),l.key==="y"&&(l.preventDefault(),je()))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[He,Je,je]);let $e=(a,l)=>{j(a),x==null||x(a,l)},rt=()=>{f({slides:[{id:`slide-${Date.now()}`,elements:[]}],layout:{width:12192e3,height:6858e3}}),R(0),G(null),$e("scratch")},Be=async a=>{m(!0);try{let l=new Ae,h=a;if(typeof a=="string"){let U=a.trim();h=i?`${i}${i.includes("?")?"&":"?"}url=${encodeURIComponent(U)}`:U,$e("url",U)}else $e("uploaded");let D=await l.parse(h);f(D),d([]),I([]),R(0),G(null)}catch(l){console.error("Failed to load PPTX",l),alert("Failed to load presentation. Please ensure it is a valid .pptx.")}finally{m(!1)}},At=(a,l)=>{switch(se(h=>A(L({},h),{visible:!1})),a){case"add-text":Qe();break;case"add-image":Oe();break;case"add-shape":et(l);break;case"new-slide":tt();break;case"ai-action":Ee(b||"",l);break;case"generate-image":ge(!0);break}},It=async()=>{if(fe.trim()){me(!0);try{let a="";if(v)a=await v(fe);else throw y?new Error("Internal image generation requires onGenerateImage prop or specific endpoint configuration."):new Error("No image generation function or Gemini API key provided.");Ie(a),ge(!1),be("")}catch(a){console.error("Image generation failed:",a),alert("Image generation failed: "+(a instanceof Error?a.message:"Unknown error"))}finally{me(!1)}}},Ue=a=>{if(a==="insert"&&re)Ze(re);else if(a==="replace"&&re&&b){let l=c.slides[k].elements.find(h=>h.id===b);l&&l.type==="image"?Pe(b,{src:re}):Ze(re)}Ie(null)},Oe=()=>{let a=document.createElement("input");a.type="file",a.accept="image/*",a.onchange=async l=>{var D;let h=(D=l.target.files)==null?void 0:D[0];if(h){let U=await new Promise(oe=>{let he=new FileReader;he.onload=pe=>{var Ge;return oe((Ge=pe.target)==null?void 0:Ge.result)},he.readAsDataURL(h)});Ie(U)}},a.click()},Mt=(0,M.useCallback)(a=>!i||!a||a.startsWith("data:")||a.includes("localhost")||a.includes("127.0.0.1")?a:`${i}?url=${encodeURIComponent(a)}`,[i]);return!N||!z?(0,o.jsx)("div",{className:"flex items-center justify-center bg-red-50 text-red-600 p-8 rounded-xl border-2 border-red-200 font-bold",children:"Error: width and height props are compulsory for PptEditor."}):(0,o.jsxs)("div",{className:"flex flex-col bg-white relative",style:{width:typeof N=="number"?`${N}px`:N,height:typeof z=="number"?`${z}px`:z,fontSize:`${16*Me}px`},children:[ne&&(0,o.jsx)("div",{className:"absolute inset-0 z-[2000] bg-white flex flex-col items-center justify-center p-6 md:p-12 overflow-y-auto",children:(0,o.jsxs)("div",{className:"max-w-2xl w-full text-center space-y-6 md:space-y-8 animate-in fade-in zoom-in-95 duration-500 my-auto",children:[(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)("h2",{className:"text-4xl font-black tracking-tight text-slate-800",children:n}),(0,o.jsx)("p",{className:"text-slate-500 font-medium",children:"Create stunning presentations in seconds."})]}),(0,o.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,o.jsxs)("button",{onClick:()=>{rt(),W(!1)},className:"flex flex-col items-center justify-center gap-4 p-10 border-2 border-slate-100 rounded-[2.5rem] hover:border-slate-300 hover:bg-slate-50 transition-all group shadow-sm hover:shadow-md active:scale-[0.98]",children:[(0,o.jsx)("div",{className:"p-5 bg-slate-100 rounded-2xl group-hover:bg-blue-50 transition-colors",children:(0,o.jsx)("svg",{className:"w-10 h-10 text-blue-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,o.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M12 4v16m8-8H4"})})}),(0,o.jsx)("span",{className:"text-sm font-black uppercase tracking-[0.15em] text-slate-600 group-hover:text-slate-900 transition-colors",children:"Start New Deck"})]}),(0,o.jsxs)("label",{className:"flex flex-col items-center justify-center gap-4 p-10 border-2 border-slate-100 rounded-[2.5rem] hover:border-slate-300 hover:bg-slate-50 transition-all group shadow-sm hover:shadow-md active:scale-[0.98] cursor-pointer",children:[(0,o.jsx)("div",{className:"p-5 bg-slate-100 rounded-2xl group-hover:bg-emerald-50 transition-colors",children:(0,o.jsx)("svg",{className:"w-10 h-10 text-emerald-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,o.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M4 16v1a2 2 0 002 2h12a2 2 0 002-2v-1m-4-8l-4-4m0 0L8 8m4-4v12"})})}),(0,o.jsx)("span",{className:"text-sm font-black uppercase tracking-[0.15em] text-slate-600 group-hover:text-slate-900 transition-colors",children:"Upload PPTX"}),(0,o.jsx)("input",{type:"file",accept:".pptx",className:"hidden",onChange:a=>{var h;let l=(h=a.target.files)==null?void 0:h[0];l&&(Be(l),W(!1))}})]})]}),(0,o.jsxs)("div",{className:"space-y-4 pt-8 border-t border-slate-100",children:[(0,o.jsxs)("div",{className:"flex gap-3 items-stretch",children:[(0,o.jsx)("div",{className:"flex-1 relative group",children:(0,o.jsx)("input",{type:"text",placeholder:"Paste presentation URL...",value:te,onChange:a=>ce(a.target.value),className:"text-black w-full bg-slate-50 border border-slate-200 rounded-2xl pl-12 pr-5 py-4 focus:outline-none focus:border-slate-400 focus:ring-4 focus:ring-slate-400/5 text-base transition-all h-full"})}),(0,o.jsx)("button",{onClick:()=>{te.trim()&&(Be(te.trim()),W(!1))},disabled:!te.trim()||w,style:{cursor:"pointer"},className:"bg-slate-900 hover:bg-black disabled:bg-slate-100 disabled:text-slate-400 text-white font-black px-10 rounded-2xl transition-all shadow-sm text-sm shrink-0 whitespace-nowrap h-full min-h-[56px] flex items-center justify-center uppercase tracking-widest",children:w?(0,o.jsxs)("svg",{className:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,o.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,o.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}):"Load"})]}),(0,o.jsx)("p",{className:"text-[10px] text-slate-400 font-bold uppercase tracking-[0.2em]",children:"Supports S3, public links, and versioned assets"})]})]})}),_&&(0,o.jsx)(Xe,{presentation:c,initialSlideIndex:k,onClose:at}),(0,o.jsx)(pt,{onAddText:Qe,onAddImage:Ze,onAddShape:et,onAddSlide:tt,onExport:zt,onFormatText:kt,onDeleteElement:He,onGenerateImageClick:()=>ge(!0),onUploadImageClick:Oe,onApplyLayout:Ct,onPlay:()=>Q(!0),onAiAction:Ee,onAiResponseAction:Te,onNewPresentation:rt,onLoadPresentation:Be,aiResponse:$,isAiLoading:wt,selectedElement:yt,appName:n,appBgColor:C,uiScale:Me,source:F}),(0,o.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[(0,o.jsx)(mt,{slides:c.slides,currentSlideIndex:k,onSelectSlide:R,onDeleteSlide:Lt,onDuplicateSlide:Nt,onReorderSlides:St,uiScale:Me,appBgColor:C}),(0,o.jsx)("div",{className:"flex-1 flex items-center justify-center p-12 overflow-auto bg-white",children:(0,o.jsx)(Re,{slide:de,onElementUpdate:Pe,onSelect:G,uiScale:Me,onSlashCommand:a=>se({visible:!0,position:a}),selectedElementId:b,onAiGenerateClick:()=>ge(!0),onUploadImageClick:Oe,onDeleteElement:He})})]}),ae.visible&&(0,o.jsx)("div",{className:"fixed inset-0 z-[9998]",onClick:()=>se(a=>A(L({},a),{visible:!1})),children:(0,o.jsx)(ft,{position:ae.position,onClose:()=>se(a=>A(L({},a),{visible:!1})),onAction:At,canUseAi:!!y})}),X&&(0,o.jsx)("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/40 backdrop-blur-sm animate-in fade-in duration-200",children:(0,o.jsxs)("div",{className:"bg-white rounded-2xl shadow-2xl w-[500px] p-6 flex flex-col gap-4 animate-in zoom-in-95 duration-200",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsxs)("h3",{className:"text-xl font-bold text-slate-800 flex items-center gap-2",children:[(0,o.jsx)(K.Sparkles,{className:"text-blue-600",size:20}),"Generate Image"]}),(0,o.jsx)("button",{onClick:()=>ge(!1),className:"text-slate-400 hover:text-slate-600",children:(0,o.jsx)(K.Plus,{className:"rotate-45",size:24})})]}),(0,o.jsx)("p",{className:"text-sm text-slate-500",children:"Describe the image you want to create for this slide."}),(0,o.jsx)("textarea",{autoFocus:!0,placeholder:"A futuristic city in the style of cyberpunk with neon lights...",className:"text-black w-full h-32 p-4 bg-slate-50 border border-slate-200 rounded-xl outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 text-sm font-medium resize-none",value:fe,onChange:a=>be(a.target.value)}),(0,o.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,o.jsx)("button",{onClick:()=>ge(!1),className:"px-5 py-3 cursor-pointer text-sm font-bold text-slate-600 hover:bg-slate-100 rounded-lg transition-colors",children:"Cancel"}),(0,o.jsx)("button",{onClick:It,disabled:T||!fe.trim(),className:"px-6 py-3 cursor-pointer text-sm font-bold text-white bg-blue-600 hover:bg-blue-700 rounded-lg shadow-lg shadow-blue-500/20 transition-all active:scale-95 disabled:opacity-50 disabled:active:scale-100 flex items-center gap-2",children:T?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(K.RefreshCw,{className:"animate-spin",size:16}),"Generating..."]}):"Generate"})]})]})}),re&&(0,o.jsx)("div",{className:"fixed inset-0 z-[10000] flex items-center justify-center bg-black/60 backdrop-blur-md animate-in fade-in duration-300",children:(0,o.jsxs)("div",{className:"bg-white rounded-2xl shadow-3xl max-w-[90vw] max-h-[90vh] overflow-hidden flex flex-col animate-in zoom-in-95 duration-300 border border-slate-200",children:[(0,o.jsxs)("div",{className:"p-4 border-b border-slate-100 flex items-center justify-between bg-white",children:[(0,o.jsx)("h3",{className:"text-lg font-bold text-slate-800",children:"Preview Image"}),(0,o.jsx)("button",{onClick:()=>Ie(null),className:"p-2 hover:bg-slate-100 rounded-full text-slate-400 transition-colors",children:(0,o.jsx)(K.Plus,{className:"rotate-45",size:20})})]}),(0,o.jsxs)("div",{className:"p-8 bg-slate-100 flex items-center justify-center overflow-auto min-h-[300px] relative",children:[_e&&!De&&(0,o.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-slate-100/50 z-10",children:(0,o.jsx)(K.RefreshCw,{className:"animate-spin text-slate-400",size:32})}),(0,o.jsx)("img",{src:Mt(re),alt:"Generated",className:O("max-w-full max-h-[60vh] rounded-lg shadow-2xl ring-4 ring-white transition-opacity duration-300",De||_e?"opacity-0":"opacity-100"),onLoad:()=>Ve(!1),onError:()=>{Ke(!0),Ve(!1)}}),De&&(0,o.jsxs)("div",{className:"flex flex-col items-center gap-4 text-slate-400 p-12 text-center animate-in fade-in duration-500",children:[(0,o.jsx)("div",{className:"p-4 bg-slate-200/50 rounded-full",children:(0,o.jsx)(K.Image,{size:48,className:"opacity-40"})}),(0,o.jsxs)("div",{children:[(0,o.jsx)("p",{className:"font-bold text-slate-600",children:"Failed to load preview"}),(0,o.jsx)("p",{className:"text-xs max-w-[300px] mt-1",children:"The URL might be invalid or restricted. Ensure it's a valid image format."})]}),(0,o.jsx)("code",{className:"text-[10px] bg-slate-200/50 px-2 py-1 rounded break-all max-w-[400px]",children:re})]})]}),(0,o.jsxs)("div",{className:"p-6 bg-white border-t border-slate-100 flex flex-col gap-4",children:[(0,o.jsxs)("div",{className:"flex gap-3 justify-center",children:[(0,o.jsxs)("button",{onClick:()=>Ue("insert"),className:"flex-1 px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white rounded-xl font-bold shadow-lg shadow-blue-500/20 transition-all flex items-center justify-center gap-2",children:[(0,o.jsx)(K.Check,{size:18}),"Insert image"]}),b&&((ot=c.slides[k].elements.find(a=>a.id===b))==null?void 0:ot.type)==="image"&&(0,o.jsxs)("button",{onClick:()=>Ue("replace"),className:"flex-1 px-6 py-3 bg-emerald-600 hover:bg-emerald-700 text-black rounded-xl font-bold shadow-lg shadow-emerald-500/20 transition-all flex items-center justify-center gap-2",children:[(0,o.jsx)(K.RefreshCw,{size:18}),"Replace existing"]})]}),(0,o.jsxs)("button",{onClick:()=>Ue("discard"),className:"w-full px-6 py-3 bg-red-50 hover:bg-red-100 text-red-600 rounded-xl font-bold transition-all flex items-center justify-center gap-2",children:[(0,o.jsx)(K.Trash2,{size:18}),"Discard"]})]})]})}),$&&(0,o.jsx)("div",{className:"fixed inset-0 z-[10001] flex items-center justify-center bg-black/40 backdrop-blur-sm animate-in fade-in duration-200",children:(0,o.jsxs)("div",{className:"bg-white rounded-2xl shadow-2xl w-[600px] border border-slate-200 overflow-hidden animate-in zoom-in-95 duration-200",children:[(0,o.jsxs)("div",{className:"p-4 border-b border-slate-100 bg-slate-50 flex items-center justify-between",children:[(0,o.jsxs)("h3",{className:"text-sm font-black text-slate-800 uppercase tracking-widest flex items-center gap-2",children:[(0,o.jsx)(K.Sparkles,{className:"text-purple-600",size:16}),"AI Suggestion"]}),(0,o.jsx)("button",{onClick:()=>r(null),className:"p-1 hover:bg-white rounded-lg text-slate-400 transition-colors",children:(0,o.jsx)(K.Plus,{className:"rotate-45",size:20})})]}),(0,o.jsx)("div",{className:"p-8 bg-white overflow-y-auto max-h-[400px]",children:(0,o.jsx)("div",{className:"text-lg font-medium text-slate-800 leading-relaxed whitespace-pre-wrap",children:$})}),(0,o.jsxs)("div",{className:"p-6 bg-slate-50 border-t border-slate-100 flex items-center gap-3",children:[(0,o.jsx)("button",{onClick:()=>Te("replace"),style:{backgroundColor:"#0f172a",color:"#ffffff"},className:"flex-1 px-3 cursor-pointer hover:opacity-90 font-black py-5 rounded-xl transition-all shadow-lg active:scale-95 text-xs uppercase tracking-widest",children:"Replace Original"}),(0,o.jsx)("button",{onClick:()=>Te("addBelow"),style:{backgroundColor:"#ffffff",color:"#0f172a",border:"1px solid #e2e8f0"},className:"flex-1 cursor-pointer hover:bg-slate-50 font-black py-5 px-3 rounded-xl transition-all shadow-sm active:scale-95 text-xs uppercase tracking-widest",children:"Add Below"}),(0,o.jsx)("button",{onClick:()=>Te("regenerate"),style:{backgroundColor:"#ffffff",color:"#94a3b8",border:"1px solid #e2e8f0"},className:"px-6 cursor-pointer hover:bg-slate-50 font-black py-5 px-3 rounded-xl transition-all shadow-sm active:scale-95 flex items-center justify-center",title:"Regenerate",children:(0,o.jsx)(K.RefreshCw,{size:18})})]})]})}),_&&(0,o.jsx)(Xe,{presentation:c,initialSlideIndex:k,onClose:at})]})};var xt=xe(require("pptxgenjs"));var Ye=class{async exportToBlob(t){var x,i;let n=new xt.default,p=((x=t.layout)==null?void 0:x.width)||12192e3,y=((i=t.layout)==null?void 0:i.height)||6858e3,N=1200,z=675,C=v=>v/N*(p/914400),P=v=>v/z*(y/914400);return t.slides.forEach(v=>{let c=n.addSlide();[...v.elements].sort((u,d)=>u.zIndex-d.zIndex).forEach(u=>{var I,k;let d=u.opacity!==void 0?(1-u.opacity)*100:0,H={x:C(u.x),y:P(u.y),w:C(u.width),h:P(u.height)};if(u.type==="text")c.addText(u.content,A(L({},H),{fontSize:(u.fontSize||18)/2,color:((I=u.color)==null?void 0:I.replace("#",""))||"000000",fontFace:u.fontFamily||"Arial"}));else if(u.type==="image")c.addImage(A(L({},H),{path:u.src,transparency:d}));else if(u.type==="shape"){let R=u.shapeType==="ellipse"?n.ShapeType.ellipse:n.ShapeType.rect;c.addShape(R,A(L({},H),{fill:{color:((k=u.fill)==null?void 0:k.replace("#",""))||"CCCCCC",transparency:d>0?Math.min(d+10,100):0}}))}})}),await n.write({outputType:"blob"})}};0&&(module.exports={PptEditor,PptxBlobExporter,PptxExporter,PptxParser});
19
19
  //# sourceMappingURL=index.js.map