@stackable-labs/embeddables 1.100.0 → 2.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.
@@ -1,4 +1,4 @@
1
- (function(u,be){typeof exports=="object"&&typeof module<"u"?be(require("react/jsx-runtime"),require("react-dom/client"),require("react"),require("react-dom")):typeof define=="function"&&define.amd?define(["react/jsx-runtime","react-dom/client","react","react-dom"],be):(u=typeof globalThis<"u"?globalThis:u||self,be(u.jsxRuntime,u.ReactDOM,u.React,u.ReactDOM))})(this,(function(u,be,C,Kn){"use strict";var Qb=Object.defineProperty;var ew=(u,be,C)=>be in u?Qb(u,be,{enumerable:!0,configurable:!0,writable:!0,value:C}):u[be]=C;var Bo=(u,be,C)=>ew(u,typeof be!="symbol"?be+"":be,C);function Fo(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const p=Fo(C),Zt=Fo(Kn),Wc='/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@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-divide-y-reverse:0;--tw-border-style:solid;--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-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-red-100:oklch(93.6% .032 17.717);--color-red-800:oklch(44.4% .177 26.899);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-800:oklch(47.3% .137 46.201);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-800:oklch(42.4% .199 265.638);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-800:oklch(43.8% .218 303.724);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-800:oklch(45.9% .187 3.815);--color-gray-800:oklch(27.8% .033 256.848);--spacing:.25rem;--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);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans,ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);--default-mono-font-family:var(--font-geist-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;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{vertical-align:baseline;font-size:75%;line-height:0;position:relative}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{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}: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)){::placeholder{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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:rotateX(0);--tw-rotate-y:rotateY(0);--tw-rotate-z:rotateZ(0);--tw-skew-x:skewX(0);--tw-skew-y:skewY(0);--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-colored:0 0 #0000;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*,:before,:after{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}:host{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.right-8{right:calc(var(--spacing) * 8)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-24{bottom:calc(var(--spacing) * 24)}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-1000{z-index:1000}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.-mt-2\\.5{margin-top:calc(var(--spacing) * -2.5)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-4{margin-right:calc(var(--spacing) * 4)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-2\\.5{margin-left:calc(var(--spacing) * -2.5)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-\\[700px\\]{height:700px}.h-auto{height:auto}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.w-0\\.5{width:calc(var(--spacing) * .5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-48{width:calc(var(--spacing) * 48)}.w-\\[900px\\]{width:900px}.w-full{width:100%}.max-w-\\[200px\\]{max-width:200px}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.origin-bottom-right{transform-origin:100% 100%}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-115{--tw-scale-x:115%;--tw-scale-y:115%;--tw-scale-z:115%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-180{rotate:180deg}.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-col-resize{cursor:col-resize}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.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-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-border{border-color:var(--border)}.border-transparent{border-color:#0000}.border-zinc-200{border-color:#e4e4e4}.bg-amber-100{background-color:var(--color-amber-100)}.bg-background{background-color:var(--background)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-foreground\\/35{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/35{background-color:color-mix(in oklab,var(--foreground) 35%,transparent)}}.bg-foreground\\/70{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/70{background-color:color-mix(in oklab,var(--foreground) 70%,transparent)}}.bg-gray-100{background-color:#f3f4f6}.bg-muted{background-color:var(--muted)}.bg-pink-100{background-color:var(--color-pink-100)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-100{background-color:var(--color-red-100)}.bg-transparent{background-color:#0000}.bg-white{background-color:#fff}.p-0{padding:calc(var(--spacing) * 0)}.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-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.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-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.\\!text-muted-foreground{color:var(--muted-foreground)!important}.text-amber-800{color:var(--color-amber-800)}.text-blue-800{color:var(--color-blue-800)}.text-destructive{color:var(--destructive)}.text-emerald-800{color:var(--color-emerald-800)}.text-foreground,.text-foreground\\/70{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\\/70{color:color-mix(in oklab,var(--foreground) 70%,transparent)}}.text-foreground\\/75{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\\/75{color:color-mix(in oklab,var(--foreground) 75%,transparent)}}.text-gray-800{color:var(--color-gray-800)}.text-muted-foreground{color:var(--muted-foreground)}.text-pink-800{color:var(--color-pink-800)}.text-purple-800{color:var(--color-purple-800)}.text-red-800{color:var(--color-red-800)}.text-zinc-300{color:#d4d4d4}.text-zinc-500{color:#727272}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(255\\,255\\,255\\,0\\.16\\)\\,0_0_0_1px_rgba\\(0\\,0\\,0\\,0\\.22\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#ffffff29), 0 0 0 1px var(--tw-shadow-color,#00000038);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;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,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);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,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.ring-2{--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)}.ring-background{--tw-ring-color:var(--background)}.ring-zinc-200{--tw-ring-color:oklch(92% 0 0)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.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-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-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.running{animation-play-state:running}@media(hover:hover){.group-hover\\/resize\\:bg-foreground\\/55:is(:where(.group\\/resize):hover *){background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.group-hover\\/resize\\:bg-foreground\\/55:is(:where(.group\\/resize):hover *){background-color:color-mix(in oklab,var(--foreground) 55%,transparent)}}.group-hover\\/resize\\:opacity-100:is(:where(.group\\/resize):hover *){opacity:1}.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:cursor-pointer:hover{cursor:pointer}.hover\\:bg-accent\\/70:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-accent\\/70:hover{background-color:color-mix(in oklab,var(--accent) 70%,transparent)}}.hover\\:text-foreground:hover{color:var(--foreground)}.hover\\:text-zinc-900:hover{color:#181818}.hover\\:opacity-100:hover{opacity:1}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:ring-2:focus-visible{--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-visible\\:ring-ring\\/40:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\\:ring-ring\\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 40%, transparent)}}.dark\\:border-zinc-300:is(.dark *){border-color:#d4d4d4}.dark\\:bg-background:is(.dark *){background-color:var(--background)}.dark\\:bg-white:is(.dark *){background-color:#fff}.dark\\:ring-zinc-300:is(.dark *){--tw-ring-color:oklch(87.1% 0 0)}@media(hover:hover){.dark\\:group-hover\\/resize\\:bg-white:is(.dark *):is(:where(.group\\/resize):hover *){background-color:#fff}}.\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-90[data-state=open]>svg{rotate:90deg}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:host{--radius:.625rem;--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08)}:host([theme=dark]),:host(.dark){--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439)}@keyframes sparkle-swipe-in{0%{opacity:0;color:#facc15;filter:drop-shadow(-8px 8px #a855f700)}28%{opacity:1;color:#d8b4fe;filter:drop-shadow(-2px 2px 8px #a855f7cc)}55%{color:#a855f7;filter:drop-shadow(3px -3px 10px #a855f7f2)}to{opacity:1;color:#facc15;filter:drop-shadow(0 0 #a855f700)}}@keyframes sparkle-twinkle{0%,to{opacity:.82;filter:drop-shadow(0 0 #facc1500)}50%{opacity:1;filter:drop-shadow(0 0 7px #facc1580)}}.sparkle-icon{color:#facc15;vertical-align:middle;transform-origin:50%;will-change:transform,filter,color,opacity;line-height:1;animation:1.15s cubic-bezier(.22,1,.36,1) sparkle-swipe-in,2.1s ease-in-out 1.15s infinite sparkle-twinkle;display:inline-block;transform:rotate(10deg)}@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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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:0}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}',qc=()=>{try{return"cb6635aa-885a-4001-b971-bbaf9183589f"}catch{return"dev"}},ot=new Map,Gc=async(e,t)=>{const n=ot.get(e.id);if(n)return n;if(!e.bundleUrl)return console.warn(`[SandboxManager] Extension ${e.id} is missing bundleUrl — skipping sandbox creation`),null;const r=document.createElement("iframe");r.setAttribute("sandbox","allow-scripts allow-same-origin"),r.style.display="none",r.style.width="0",r.style.height="0",r.style.border="none";const o=e.bundleUrl.startsWith("http")&&!e.bundleUrl.endsWith(".js"),a=o?new URL(e.bundleUrl).origin:"null";if(o){const l=new URL(e.bundleUrl);l.searchParams.set("__extensionId",e.id),r.src=l.toString(),console.warn(`[SandboxManager] Creating dev sandbox for ${e.id}, injecting __extensionId via query param, url: ${l.toString()}`)}else{let l="";try{const f=qc();l=await(await fetch(`${e.bundleUrl}?_b=${f}`)).text()}catch(f){console.error(`[SandboxManager] Failed to fetch bundle for ${e.id}:`,f)}const d=`<!DOCTYPE html>
1
+ (function(u,be){typeof exports=="object"&&typeof module<"u"?be(require("react/jsx-runtime"),require("react-dom/client"),require("react"),require("react-dom")):typeof define=="function"&&define.amd?define(["react/jsx-runtime","react-dom/client","react","react-dom"],be):(u=typeof globalThis<"u"?globalThis:u||self,be(u.jsxRuntime,u.ReactDOM,u.React,u.ReactDOM))})(this,(function(u,be,C,Kn){"use strict";var Qb=Object.defineProperty;var ew=(u,be,C)=>be in u?Qb(u,be,{enumerable:!0,configurable:!0,writable:!0,value:C}):u[be]=C;var Bo=(u,be,C)=>ew(u,typeof be!="symbol"?be+"":be,C);function Fo(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const p=Fo(C),Zt=Fo(Kn),Wc='/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@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-divide-y-reverse:0;--tw-border-style:solid;--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-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-red-100:oklch(93.6% .032 17.717);--color-red-800:oklch(44.4% .177 26.899);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-800:oklch(47.3% .137 46.201);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-800:oklch(42.4% .199 265.638);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-800:oklch(43.8% .218 303.724);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-800:oklch(45.9% .187 3.815);--color-gray-800:oklch(27.8% .033 256.848);--spacing:.25rem;--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);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans,ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);--default-mono-font-family:var(--font-geist-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;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{vertical-align:baseline;font-size:75%;line-height:0;position:relative}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{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}: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)){::placeholder{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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:rotateX(0);--tw-rotate-y:rotateY(0);--tw-rotate-z:rotateZ(0);--tw-skew-x:skewX(0);--tw-skew-y:skewY(0);--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-colored:0 0 #0000;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*,:before,:after{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}:host{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.right-8{right:calc(var(--spacing) * 8)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-24{bottom:calc(var(--spacing) * 24)}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-1000{z-index:1000}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.-mt-2\\.5{margin-top:calc(var(--spacing) * -2.5)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-4{margin-right:calc(var(--spacing) * 4)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-2\\.5{margin-left:calc(var(--spacing) * -2.5)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-\\[700px\\]{height:700px}.h-auto{height:auto}.h-full{height:100%}.max-h-\\[calc\\(100dvh-7rem\\)\\]{max-height:calc(100dvh - 7rem)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-96{min-height:calc(var(--spacing) * 96)}.w-0\\.5{width:calc(var(--spacing) * .5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-48{width:calc(var(--spacing) * 48)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\\[200px\\]{max-width:200px}.max-w-dvw{max-width:100dvw}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.origin-bottom-right{transform-origin:100% 100%}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-115{--tw-scale-x:115%;--tw-scale-y:115%;--tw-scale-z:115%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-180{rotate:180deg}.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-col-resize{cursor:col-resize}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.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-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-border{border-color:var(--border)}.border-transparent{border-color:#0000}.border-zinc-200{border-color:#e4e4e4}.bg-amber-100{background-color:var(--color-amber-100)}.bg-background{background-color:var(--background)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-foreground\\/35{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/35{background-color:color-mix(in oklab,var(--foreground) 35%,transparent)}}.bg-foreground\\/70{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\\/70{background-color:color-mix(in oklab,var(--foreground) 70%,transparent)}}.bg-gray-100{background-color:#f3f4f6}.bg-muted{background-color:var(--muted)}.bg-pink-100{background-color:var(--color-pink-100)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-100{background-color:var(--color-red-100)}.bg-transparent{background-color:#0000}.bg-white{background-color:#fff}.p-0{padding:calc(var(--spacing) * 0)}.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-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.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-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.\\!text-muted-foreground{color:var(--muted-foreground)!important}.text-amber-800{color:var(--color-amber-800)}.text-blue-800{color:var(--color-blue-800)}.text-destructive{color:var(--destructive)}.text-emerald-800{color:var(--color-emerald-800)}.text-foreground,.text-foreground\\/70{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\\/70{color:color-mix(in oklab,var(--foreground) 70%,transparent)}}.text-foreground\\/75{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\\/75{color:color-mix(in oklab,var(--foreground) 75%,transparent)}}.text-gray-800{color:var(--color-gray-800)}.text-muted-foreground{color:var(--muted-foreground)}.text-pink-800{color:var(--color-pink-800)}.text-purple-800{color:var(--color-purple-800)}.text-red-800{color:var(--color-red-800)}.text-zinc-300{color:#d4d4d4}.text-zinc-500{color:#727272}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(255\\,255\\,255\\,0\\.16\\)\\,0_0_0_1px_rgba\\(0\\,0\\,0\\,0\\.22\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#ffffff29), 0 0 0 1px var(--tw-shadow-color,#00000038);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;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,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);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,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.ring-2{--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)}.ring-background{--tw-ring-color:var(--background)}.ring-zinc-200{--tw-ring-color:oklch(92% 0 0)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.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-\\[width\\]{transition-property:width;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-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-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.running{animation-play-state:running}@media(hover:hover){.group-hover\\/resize\\:bg-foreground\\/55:is(:where(.group\\/resize):hover *){background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.group-hover\\/resize\\:bg-foreground\\/55:is(:where(.group\\/resize):hover *){background-color:color-mix(in oklab,var(--foreground) 55%,transparent)}}.group-hover\\/resize\\:opacity-100:is(:where(.group\\/resize):hover *){opacity:1}.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\\:cursor-pointer:hover{cursor:pointer}.hover\\:bg-accent\\/70:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-accent\\/70:hover{background-color:color-mix(in oklab,var(--accent) 70%,transparent)}}.hover\\:text-foreground:hover{color:var(--foreground)}.hover\\:text-zinc-900:hover{color:#181818}.hover\\:opacity-100:hover{opacity:1}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:ring-2:focus-visible{--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-visible\\:ring-ring\\/40:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\\:ring-ring\\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 40%, transparent)}}.dark\\:border-zinc-300:is(.dark *){border-color:#d4d4d4}.dark\\:bg-background:is(.dark *){background-color:var(--background)}.dark\\:bg-white:is(.dark *){background-color:#fff}.dark\\:ring-zinc-300:is(.dark *){--tw-ring-color:oklch(87.1% 0 0)}@media(hover:hover){.dark\\:group-hover\\/resize\\:bg-white:is(.dark *):is(:where(.group\\/resize):hover *){background-color:#fff}}.\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-90[data-state=open]>svg{rotate:90deg}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:host{--radius:.625rem;--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08)}:host([theme=dark]),:host(.dark){--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439)}@keyframes sparkle-swipe-in{0%{opacity:0;color:#facc15;filter:drop-shadow(-8px 8px #a855f700)}28%{opacity:1;color:#d8b4fe;filter:drop-shadow(-2px 2px 8px #a855f7cc)}55%{color:#a855f7;filter:drop-shadow(3px -3px 10px #a855f7f2)}to{opacity:1;color:#facc15;filter:drop-shadow(0 0 #a855f700)}}@keyframes sparkle-twinkle{0%,to{opacity:.82;filter:drop-shadow(0 0 #facc1500)}50%{opacity:1;filter:drop-shadow(0 0 7px #facc1580)}}.sparkle-icon{color:#facc15;vertical-align:middle;transform-origin:50%;will-change:transform,filter,color,opacity;line-height:1;animation:1.15s cubic-bezier(.22,1,.36,1) sparkle-swipe-in,2.1s ease-in-out 1.15s infinite sparkle-twinkle;display:inline-block;transform:rotate(10deg)}@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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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:0}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}',qc=()=>{try{return"80a76733-9171-4056-a548-7db550c00025"}catch{return"dev"}},ot=new Map,Gc=async(e,t)=>{const n=ot.get(e.id);if(n)return n;if(!e.bundleUrl)return console.warn(`[SandboxManager] Extension ${e.id} is missing bundleUrl — skipping sandbox creation`),null;const r=document.createElement("iframe");r.setAttribute("sandbox","allow-scripts allow-same-origin"),r.style.display="none",r.style.width="0",r.style.height="0",r.style.border="none";const o=e.bundleUrl.startsWith("http")&&!e.bundleUrl.endsWith(".js"),a=o?new URL(e.bundleUrl).origin:"null";if(o){const l=new URL(e.bundleUrl);l.searchParams.set("__extensionId",e.id),r.src=l.toString(),console.warn(`[SandboxManager] Creating dev sandbox for ${e.id}, injecting __extensionId via query param, url: ${l.toString()}`)}else{let l="";try{const f=qc();l=await(await fetch(`${e.bundleUrl}?_b=${f}`)).text()}catch(f){console.error(`[SandboxManager] Failed to fetch bundle for ${e.id}:`,f)}const d=`<!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8">
@@ -9,7 +9,7 @@
9
9
  <script>var __STACKABLE_EXTENSION_ID__ = ${JSON.stringify(e.id)}; var process = { env: { NODE_ENV: "production" } };<\/script>
10
10
  <script type="module">${l}<\/script>
11
11
  </body>
12
- </html>`;r.srcdoc=d,console.warn(`[SandboxManager] Creating srcdoc sandbox for ${e.id}, srcdoc starts with: ${d.substring(0,300)}`)}t.appendChild(r);const s={manifest:e.manifest,extensionId:e.id,iframe:r,ready:!1,expectedOrigin:a,messageHandlers:new Set},i=l=>{if(l.origin!==s.expectedOrigin)return;const d=l.data;!d||typeof d!="object"||!("type"in d)||("extensionId"in d?d.extensionId:void 0)!==e.id||(d.type==="extension-ready"&&(s.ready=!0),s.messageHandlers.forEach(c=>c(d)))};return window.addEventListener("message",i),ot.set(e.id,s),s},Me=(e,t)=>{const n=ot.get(e);if(!(n!=null&&n.iframe.contentWindow)){console.warn(`Sandbox not found for extension: ${e}`);return}const r=n.expectedOrigin==="null"?"*":n.expectedOrigin;n.iframe.contentWindow.postMessage(t,r)},vt=e=>ot.get(e),Yc=e=>{const t=ot.get(e);t&&(t.iframe.remove(),t.messageHandlers.clear(),ot.delete(e))},bt=()=>ot,Xn=e=>e,Kc={SUPER_ADMIN:"super_admin"};new Set(Object.values(Kc));const $o={"ui-card":{description:"Card container for grouping related content",icon:"square",category:"layout",attributes:["className","onClick"],children:["ui-card-header","ui-card-content"]},"ui-card-content":{description:"Content area within a Card",icon:"square",category:"layout",attributes:["className"],childOnly:!0},"ui-card-header":{description:"Header area within a Card",icon:"square",category:"layout",attributes:["className"],childOnly:!0},"ui-button":{description:"Interactive button with variant and size options",icon:"mouse-pointer-click",category:"input",attributes:["variant","size","disabled","onClick","type","className","title"],attributeValues:{variant:["default","destructive","outline","secondary","ghost","link"],size:["default","xs","sm","lg","icon"]}},"ui-text":{description:"Paragraph text",icon:"type",category:"text",attributes:["className","tone"],attributeValues:{tone:["default","muted","destructive"]}},"ui-heading":{description:"Heading element (h1–h6)",icon:"heading",category:"text",attributes:["level","className"],attributeValues:{level:["1","2","3","4","5","6"]}},"ui-badge":{description:"Small label for status, category, or count",icon:"tag",category:"text",attributes:["variant","hue","tone","className"],attributeValues:{variant:["default","secondary","destructive","outline","ghost","link"],hue:["amber","blue","emerald","red","purple","pink","gray"],tone:["default","muted","destructive"]}},"ui-input":{description:"Single-line text input field",icon:"text-cursor-input",category:"input",attributes:["type","placeholder","value","onChange","disabled","className","id"],selfClosing:!0},"ui-textarea":{description:"Multi-line text input field",icon:"text",category:"input",attributes:["placeholder","value","onChange","disabled","rows","className","id"],selfClosing:!0},"ui-select":{description:"Dropdown select with options",icon:"chevrons-up-down",category:"input",attributes:["value","defaultValue","onChange","placeholder","disabled","className"],children:["ui-select-option"]},"ui-select-option":{description:"Option within a Select dropdown",icon:"chevrons-up-down",category:"input",attributes:["value","disabled","className"],childOnly:!0},"ui-checkbox":{description:"Checkbox toggle for boolean values",icon:"square-check",category:"input",attributes:["checked","onChange","disabled","className","id"],selfClosing:!0},"ui-switch":{description:"Toggle switch for on/off states",icon:"toggle-left",category:"input",attributes:["checked","onChange","disabled","size","className","id"],attributeValues:{size:["sm","default"]},selfClosing:!0},"ui-label":{description:"Form label associated with an input",icon:"tag",category:"input",attributes:["htmlFor","className"]},"ui-radio-group":{description:"Group of radio buttons for single selection",icon:"circle-dot",category:"input",attributes:["value","defaultValue","onChange","className"],children:["ui-radio-group-item","ui-label","ui-inline"]},"ui-radio-group-item":{description:"Individual radio button within a RadioGroup",icon:"circle-dot",category:"input",attributes:["value","disabled","className","id"],childOnly:!0},"ui-stack":{description:"Vertical or horizontal flex container with gap",icon:"rows-3",category:"layout",attributes:["gap","direction","className"],attributeValues:{direction:["row","column"],gap:["0","1","2","3","4","5","6","8","10","12"]}},"ui-inline":{description:"Horizontal flex container with centered items",icon:"columns-3",category:"layout",attributes:["gap","className"],attributeValues:{gap:["0","1","2","3","4","5","6","8","10","12"]}},"ui-separator":{description:"Horizontal divider line",icon:"minus",category:"layout",attributes:["className"],selfClosing:!0},"ui-tabs":{description:"Tabbed content container",icon:"panel-top",category:"navigation",attributes:["defaultValue","className"],children:["ui-tabs-list","ui-tabs-content"]},"ui-tabs-list":{description:"Container for tab triggers",icon:"panel-top",category:"navigation",attributes:["className"],children:["ui-tabs-trigger"],childOnly:!0},"ui-tabs-trigger":{description:"Clickable tab label within TabsList",icon:"panel-top",category:"navigation",attributes:["value","className"],childOnly:!0},"ui-tabs-content":{description:"Content panel shown when its tab is active",icon:"panel-top",category:"navigation",attributes:["value","className"],childOnly:!0},"ui-scroll-area":{description:"Scrollable content container",icon:"scroll",category:"layout",attributes:["className"]},"ui-avatar":{description:"User avatar with image and initials fallback",icon:"circle-user",category:"composite",attributes:["src","alt","className"],selfClosing:!0},"ui-icon":{description:"Icon from the allowed icon set",icon:"sparkles",category:"composite",attributes:["name","size","className"],attributeValues:{size:["sm","md","lg"]},selfClosing:!0},"ui-qr-code":{description:"QR code rendered from a string payload",icon:"qr-code",category:"composite",attributes:["value","size","variant","level","alt","className"],attributeValues:{size:["md","sm","lg"],variant:["default","inverted"],level:["medium","low","quartile","high"]},selfClosing:!0},"ui-link":{description:"Hyperlink element",icon:"link",category:"navigation",attributes:["href","target","rel","className"]},"ui-menu":{description:"Card-based menu with clickable items",icon:"menu",category:"navigation",attributes:["title","className"],children:["ui-menu-item"]},"ui-menu-item":{description:"Clickable item within a Menu",icon:"menu",category:"navigation",attributes:["icon","label","description","onClick","className"],childOnly:!0},"ui-skeleton":{description:"Loading placeholder with shimmer effect",icon:"loader",category:"feedback",attributes:["width","height","className"],selfClosing:!0},"ui-tooltip":{description:"Hover tooltip with text content",icon:"message-square",category:"feedback",attributes:["content","className"]},"ui-progress":{description:"Progress bar with percentage value",icon:"bar-chart",category:"feedback",attributes:["value","className"],selfClosing:!0},"ui-alert":{description:"Alert banner with icon and optional title",icon:"alert-circle",category:"feedback",attributes:["variant","title","className"],attributeValues:{variant:["default","destructive"]}},"ui-collapsible":{description:"Expandable/collapsible content section",icon:"chevrons-down-up",category:"composite",attributes:["defaultOpen","className"],children:["ui-collapsible-trigger","ui-collapsible-content"]},"ui-collapsible-trigger":{description:"Clickable trigger to toggle Collapsible",icon:"chevrons-down-up",category:"composite",attributes:["className"],childOnly:!0},"ui-collapsible-content":{description:"Content revealed when Collapsible is open",icon:"chevrons-down-up",category:"composite",attributes:["className"],childOnly:!0}},We=$o,at=Object.keys($o),Xc=Object.fromEntries(at.map(e=>[e,We[e].attributes]));Object.fromEntries(at.filter(e=>We[e].attributeValues).map(e=>[e,We[e].attributeValues]));const Ho=Object.fromEntries(at.filter(e=>We[e].children).map(e=>[e,We[e].children]));({...Ho},new Set(at.filter(e=>We[e].selfClosing===!0))),new Set(at.filter(e=>We[e].childOnly===!0)),Object.fromEntries(at.map(e=>[e,We[e].category]));const wt={NEW_CONVERSATION:"newConversation",SET_CONVERSATION_TAGS:"setConversationTags",SET_CONVERSATION_FIELDS:"setConversationFields"},Zc=["identity","messaging","settings"],Jc={"context.read":"context:read","data.query":"data:query","data.fetch":"data:fetch","actions.toast":"actions:toast","actions.invoke":"actions:invoke","extend.identity":"extend:identity"},Qc=e=>{const t=async n=>{const r=n.data;if((r==null?void 0:r.type)!=="capability-request")return;const o=r;console.warn("[CapabilityRPC] raw message data:",JSON.stringify(n.data));const a=o.extensionId;if(!a||!vt(a)){const l=[...bt().keys()];console.warn(`Received capability request from unknown source (extensionId: "${a??"undefined"}", registered: [${l.join(", ")}], capability: ${o.capability})`);return}const s=vt(a);if(!s)return;const i=Jc[o.capability];if(i&&!s.manifest.permissions.includes(i)){const l={type:"capability-response",id:o.id,success:!1,error:`Permission denied: '${i}' not granted for extension '${a}'`};Me(a,l);return}try{let l;switch(o.capability){case"data.query":l=await e["data.query"](o.payload);break;case"data.fetch":l=await e["data.fetch"](a,o.payload);break;case"actions.toast":l=await e["actions.toast"](a,o.payload);break;case"actions.invoke":l=await e["actions.invoke"](o.payload);break;case"context.read":l=await e["context.read"](a);break;case"extend.identity":l=e["extend.identity"]?await e["extend.identity"](a,o.payload):null;break;default:throw new Error(`Unknown capability: ${o.capability}`)}const d={type:"capability-response",id:o.id,success:!0,data:l};Me(a,d)}catch(l){const d={type:"capability-response",id:o.id,success:!1,error:l instanceof Error?l.message:"Unknown error"};Me(a,d)}};return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}},Vo=C.createContext({extensions:[],components:{},ready:!1}),ed=({extensions:e,capabilityHandlers:t,components:n={},children:r})=>{const[o,a]=C.useState(!1),s=C.useRef(null),i=C.useRef(null),l=C.useRef(t);return l.current=t,C.useEffect(()=>{if(!s.current)return;let d=!1;return(async()=>{const c=s.current;if(!c)return;console.log("[ExtensionProvider] Initializing with",e.length,"extensions");const h=new Proxy({},{get:(g,v)=>l.current[v]});i.current=Qc(h);for(const g of e)g.enabled&&!d&&(console.log("[ExtensionProvider] Creating sandbox for",g.id,"bundleUrl:",g.bundleUrl),await Gc(g,c),console.log("[ExtensionProvider] Sandbox created for",g.id));d||(console.log("[ExtensionProvider] Ready"),a(!0))})(),()=>{var c;d=!0;for(const h of e)Yc(h.id);(c=i.current)==null||c.call(i)}},[e]),u.jsxs(Vo.Provider,{value:{extensions:e,components:n,ready:o},children:[u.jsx("div",{ref:s,style:{display:"none"}}),r]})},Uo=()=>C.useContext(Vo),td=e=>at.includes(e),nd=(e,t={})=>{const{surfaceId:n,logPrefix:r="[NodeRenderer]"}=t,o=(a,s,i=0)=>{var g,v,m;if(a.type==="text")return a.text||null;if(!a.tag)return null;if(a.tag==="__fragment")return u.jsx(C.Fragment,{children:(g=a.children)==null?void 0:g.map((b,w)=>o(b,s,w))},i);if(!td(a.tag))return console.warn(`${r} Unknown UI tag rejected: <${a.tag}>`),null;const l=e[a.tag];if(!l)return a.tag.startsWith("ui-")?(console.warn(`${r} Unregistered UI tag: <${a.tag}>`),null):u.jsx(C.Fragment,{children:(v=a.children)==null?void 0:v.map((b,w)=>o(b,s,w))},i);const{filtered:d,stripped:f}=rd(a.tag,a.attrs);f.length>0&&console.warn(`${r} Attributes not allowed on <${a.tag}>, stripped: ${f.join(", ")}`);const c=od(a.tag,a.children);if(c.length>0&&console.warn(`${r} Invalid children in <${a.tag}>: ${c.join(", ")}`),a.actionId){const b=a.actionId;d.onClick=()=>{const w=s;w==null||w.postMessage({type:"action-invoke",surfaceId:n,actionId:b},"*")}}if(d["data-onchange-id"]){const b=d["data-onchange-id"];delete d["data-onchange-id"],d.onChange=w=>{const y=s;y==null||y.postMessage({type:"action-invoke",surfaceId:n,actionId:b,value:w.target.value},"*")}}const h=(m=a.children)==null?void 0:m.map((b,w)=>o(b,s,w));return C.createElement(l,{...d,key:i},h&&h.length>0?h:void 0)};return o},rd=(e,t)=>{const n={},r=[];if(!t)return{filtered:n,stripped:r};const o=Xc[e];for(const[a,s]of Object.entries(t)){if(a==="data-onchange-id"){n[a]=s;continue}o!=null&&o.includes(a)?n[a]=s:r.push(a)}return{filtered:n,stripped:r}},od=(e,t)=>{const n=Ho[e];if(!n||!t)return[];const r=[];for(const o of t)o.type!=="text"&&(!o.tag||o.tag==="__fragment"||n.includes(o.tag)||r.push(o.tag));return r},ad=e=>{const t={...e};for(const n of Zc)delete t[n];return t},Jt=({target:e,context:t,className:n,separator:r,fallback:o=null,render:a})=>{const{extensions:s,components:i,ready:l}=Uo(),[d,f]=C.useState({}),c=C.useRef(""),h=C.useMemo(()=>s.filter(b=>b.enabled&&b.manifest.targets.includes(e)),[s.map(b=>b.id).join(","),e]),g=C.useMemo(()=>nd(i,{surfaceId:e,logPrefix:"[ExtensionSlot]"}),[e,i]);if(C.useEffect(()=>{const b=h.map(y=>y.id).join(",");if(c.current!==b&&(c.current=b,f({})),!l||h.length===0)return;const w=y=>{const x=y.data;if(!(!x||typeof x!="object"||!h.some(P=>{const E=vt(P.id);return E&&y.source===E.iframe.contentWindow}))){if(x.type==="surface-update"&&x.surfaceId===e){const P=h.find(N=>{const S=vt(N.id);return S&&y.source===S.iframe.contentWindow});if(!P)return;const E=g(x.tree,y.source??null);f(N=>({...N,[P.id]:E}))}if(x.type==="surface-ready"&&x.surfaceId===e&&t){const P=ad(t);h.forEach(E=>{var S;const N=vt(E.id);(S=N==null?void 0:N.iframe.contentWindow)==null||S.postMessage({type:"context-update",surfaceId:e,context:P},"*")})}}};return window.addEventListener("message",w),h.forEach(y=>{var k;const x=vt(y.id);(k=x==null?void 0:x.iframe.contentWindow)==null||k.postMessage({type:"surface-render",surfaceId:e,context:t},"*")}),()=>{window.removeEventListener("message",w)}},[l,h,e,t,g]),!l)return null;if(h.length===0)return o?u.jsx("div",{"data-extension-slot":e,title:e,className:n,children:o}):null;const v=h.map(b=>({id:b.id,children:d[b.id]})).filter(b=>!!b.children),m=v.length>0?v.flatMap((b,w,y)=>{const x=a?a({extensionId:b.id,children:b.children,index:w,total:y.length}):u.jsx(C.Fragment,{children:b.children},b.id),k=u.jsx(C.Fragment,{children:x},`extension:${b.id}`);if(w===0||!r)return[k];const P=y[w-1],E=typeof r=="function"?r({index:w,total:y.length,previousExtensionId:P.id,extensionId:b.id}):r;return[u.jsx(C.Fragment,{children:E},`separator:${P.id}:${b.id}:${w}`),k]}):o;return u.jsx("div",{"data-extension-slot":e,title:e,className:n,children:m})};function sd(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}const id=e=>{switch(e){case"success":return dd;case"info":return fd;case"warning":return ud;case"error":return pd;default:return null}},ld=Array(12).fill(0),cd=({visible:e,className:t})=>C.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},C.createElement("div",{className:"sonner-spinner"},ld.map((n,r)=>C.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),dd=C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},C.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),ud=C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},C.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),fd=C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},C.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),pd=C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},C.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),hd=C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},C.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),C.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),gd=()=>{const[e,t]=C.useState(document.hidden);return C.useEffect(()=>{const n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e};let Zn=1;class md{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)}),this.publish=t=>{this.subscribers.forEach(n=>n(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var n;const{message:r,...o}=t,a=typeof(t==null?void 0:t.id)=="number"||((n=t.id)==null?void 0:n.length)>0?t.id:Zn++,s=this.toasts.find(l=>l.id===a),i=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(a)&&this.dismissedToasts.delete(a),s?this.toasts=this.toasts.map(l=>l.id===a?(this.publish({...l,...t,id:a,title:r}),{...l,...t,id:a,dismissible:i,title:r}):l):this.addToast({title:r,...o,dismissible:i,id:a}),a},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(n=>n({id:t,dismiss:!0})))):this.toasts.forEach(n=>{this.subscribers.forEach(r=>r({id:n.id,dismiss:!0}))}),t),this.message=(t,n)=>this.create({...n,message:t}),this.error=(t,n)=>this.create({...n,message:t,type:"error"}),this.success=(t,n)=>this.create({...n,type:"success",message:t}),this.info=(t,n)=>this.create({...n,type:"info",message:t}),this.warning=(t,n)=>this.create({...n,type:"warning",message:t}),this.loading=(t,n)=>this.create({...n,type:"loading",message:t}),this.promise=(t,n)=>{if(!n)return;let r;n.loading!==void 0&&(r=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const o=Promise.resolve(t instanceof Function?t():t);let a=r!==void 0,s;const i=o.then(async d=>{if(s=["resolve",d],C.isValidElement(d))a=!1,this.create({id:r,type:"default",message:d});else if(bd(d)&&!d.ok){a=!1;const c=typeof n.error=="function"?await n.error(`HTTP error! status: ${d.status}`):n.error,h=typeof n.description=="function"?await n.description(`HTTP error! status: ${d.status}`):n.description,v=typeof c=="object"&&!C.isValidElement(c)?c:{message:c};this.create({id:r,type:"error",description:h,...v})}else if(d instanceof Error){a=!1;const c=typeof n.error=="function"?await n.error(d):n.error,h=typeof n.description=="function"?await n.description(d):n.description,v=typeof c=="object"&&!C.isValidElement(c)?c:{message:c};this.create({id:r,type:"error",description:h,...v})}else if(n.success!==void 0){a=!1;const c=typeof n.success=="function"?await n.success(d):n.success,h=typeof n.description=="function"?await n.description(d):n.description,v=typeof c=="object"&&!C.isValidElement(c)?c:{message:c};this.create({id:r,type:"success",description:h,...v})}}).catch(async d=>{if(s=["reject",d],n.error!==void 0){a=!1;const f=typeof n.error=="function"?await n.error(d):n.error,c=typeof n.description=="function"?await n.description(d):n.description,g=typeof f=="object"&&!C.isValidElement(f)?f:{message:f};this.create({id:r,type:"error",description:c,...g})}}).finally(()=>{a&&(this.dismiss(r),r=void 0),n.finally==null||n.finally.call(n)}),l=()=>new Promise((d,f)=>i.then(()=>s[0]==="reject"?f(s[1]):d(s[1])).catch(f));return typeof r!="string"&&typeof r!="number"?{unwrap:l}:Object.assign(r,{unwrap:l})},this.custom=(t,n)=>{const r=(n==null?void 0:n.id)||Zn++;return this.create({jsx:t(r),id:r,...n}),r},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const ge=new md,vd=(e,t)=>{const n=(t==null?void 0:t.id)||Zn++;return ge.addToast({title:e,...t,id:n}),n},bd=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",wd=vd,yd=()=>ge.toasts,xd=()=>ge.getActiveToasts(),yt=Object.assign(wd,{success:ge.success,info:ge.info,warning:ge.warning,error:ge.error,custom:ge.custom,message:ge.message,promise:ge.promise,dismiss:ge.dismiss,loading:ge.loading},{getHistory:yd,getToasts:xd});sd("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Qt(e){return e.label!==void 0}const Cd=3,kd="24px",Sd="16px",Ro=4e3,Ed=356,Nd=14,Td=45,_d=200;function Le(...e){return e.filter(Boolean).join(" ")}function Ad(e){const[t,n]=e.split("-"),r=[];return t&&r.push(t),n&&r.push(n),r}const Pd=e=>{var t,n,r,o,a,s,i,l,d;const{invert:f,toast:c,unstyled:h,interacting:g,setHeights:v,visibleToasts:m,heights:b,index:w,toasts:y,expanded:x,removeToast:k,defaultRichColors:P,closeButton:E,style:N,cancelButtonStyle:S,actionButtonStyle:A,className:z="",descriptionClassName:_="",duration:M,position:O,gap:I,expandByDefault:W,classNames:D,icons:$,closeButtonAriaLabel:q="Close toast"}=e,[L,T]=C.useState(null),[F,H]=C.useState(null),[B,V]=C.useState(!1),[U,X]=C.useState(!1),[R,j]=C.useState(!1),[Z,ee]=C.useState(!1),[ae,ne]=C.useState(!1),[ce,de]=C.useState(0),[gt,nt]=C.useState(0),Ae=C.useRef(c.duration||M||Ro),Wn=C.useRef(null),ve=C.useRef(null),Rb=w===0,jb=w+1<=m,xe=c.type,zt=c.dismissible!==!1,Wb=c.className||"",qb=c.descriptionClassName||"",qn=C.useMemo(()=>b.findIndex(te=>te.toastId===c.id)||0,[b,c.id]),Gb=C.useMemo(()=>{var te;return(te=c.closeButton)!=null?te:E},[c.closeButton,E]),Fc=C.useMemo(()=>c.duration||M||Ro,[c.duration,M]),zo=C.useRef(0),Dt=C.useRef(0),$c=C.useRef(0),Bt=C.useRef(null),[Yb,Kb]=O.split("-"),Hc=C.useMemo(()=>b.reduce((te,ue,he)=>he>=qn?te:te+ue.height,0),[b,qn]),Vc=gd(),Xb=c.invert||f,Do=xe==="loading";Dt.current=C.useMemo(()=>qn*I+Hc,[qn,Hc]),C.useEffect(()=>{Ae.current=Fc},[Fc]),C.useEffect(()=>{V(!0)},[]),C.useEffect(()=>{const te=ve.current;if(te){const ue=te.getBoundingClientRect().height;return nt(ue),v(he=>[{toastId:c.id,height:ue,position:c.position},...he]),()=>v(he=>he.filter(Ce=>Ce.toastId!==c.id))}},[v,c.id]),C.useLayoutEffect(()=>{if(!B)return;const te=ve.current,ue=te.style.height;te.style.height="auto";const he=te.getBoundingClientRect().height;te.style.height=ue,nt(he),v(Ce=>Ce.find(fe=>fe.toastId===c.id)?Ce.map(fe=>fe.toastId===c.id?{...fe,height:he}:fe):[{toastId:c.id,height:he,position:c.position},...Ce])},[B,c.title,c.description,v,c.id,c.jsx,c.action,c.cancel]);const rt=C.useCallback(()=>{X(!0),de(Dt.current),v(te=>te.filter(ue=>ue.toastId!==c.id)),setTimeout(()=>{k(c)},_d)},[c,k,v,Dt]);C.useEffect(()=>{if(c.promise&&xe==="loading"||c.duration===1/0||c.type==="loading")return;let te;return x||g||Vc?(()=>{if($c.current<zo.current){const Ce=new Date().getTime()-zo.current;Ae.current=Ae.current-Ce}$c.current=new Date().getTime()})():(()=>{Ae.current!==1/0&&(zo.current=new Date().getTime(),te=setTimeout(()=>{c.onAutoClose==null||c.onAutoClose.call(c,c),rt()},Ae.current))})(),()=>clearTimeout(te)},[x,g,c,xe,Vc,rt]),C.useEffect(()=>{c.delete&&(rt(),c.onDismiss==null||c.onDismiss.call(c,c))},[rt,c.delete]);function Zb(){var te;if($!=null&&$.loading){var ue;return C.createElement("div",{className:Le(D==null?void 0:D.loader,c==null||(ue=c.classNames)==null?void 0:ue.loader,"sonner-loader"),"data-visible":xe==="loading"},$.loading)}return C.createElement(cd,{className:Le(D==null?void 0:D.loader,c==null||(te=c.classNames)==null?void 0:te.loader),visible:xe==="loading"})}const Jb=c.icon||($==null?void 0:$[xe])||id(xe);var Uc,Rc;return C.createElement("li",{tabIndex:0,ref:ve,className:Le(z,Wb,D==null?void 0:D.toast,c==null||(t=c.classNames)==null?void 0:t.toast,D==null?void 0:D.default,D==null?void 0:D[xe],c==null||(n=c.classNames)==null?void 0:n[xe]),"data-sonner-toast":"","data-rich-colors":(Uc=c.richColors)!=null?Uc:P,"data-styled":!(c.jsx||c.unstyled||h),"data-mounted":B,"data-promise":!!c.promise,"data-swiped":ae,"data-removed":U,"data-visible":jb,"data-y-position":Yb,"data-x-position":Kb,"data-index":w,"data-front":Rb,"data-swiping":R,"data-dismissible":zt,"data-type":xe,"data-invert":Xb,"data-swipe-out":Z,"data-swipe-direction":F,"data-expanded":!!(x||W&&B),"data-testid":c.testId,style:{"--index":w,"--toasts-before":w,"--z-index":y.length-w,"--offset":`${U?ce:Dt.current}px`,"--initial-height":W?"auto":`${gt}px`,...N,...c.style},onDragEnd:()=>{j(!1),T(null),Bt.current=null},onPointerDown:te=>{te.button!==2&&(Do||!zt||(Wn.current=new Date,de(Dt.current),te.target.setPointerCapture(te.pointerId),te.target.tagName!=="BUTTON"&&(j(!0),Bt.current={x:te.clientX,y:te.clientY})))},onPointerUp:()=>{var te,ue,he;if(Z||!zt)return;Bt.current=null;const Ce=Number(((te=ve.current)==null?void 0:te.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Gn=Number(((ue=ve.current)==null?void 0:ue.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),fe=new Date().getTime()-((he=Wn.current)==null?void 0:he.getTime()),Se=L==="x"?Ce:Gn,Yn=Math.abs(Se)/fe;if(Math.abs(Se)>=Td||Yn>.11){de(Dt.current),c.onDismiss==null||c.onDismiss.call(c,c),H(L==="x"?Ce>0?"right":"left":Gn>0?"down":"up"),rt(),ee(!0);return}else{var Pe,Ie;(Pe=ve.current)==null||Pe.style.setProperty("--swipe-amount-x","0px"),(Ie=ve.current)==null||Ie.style.setProperty("--swipe-amount-y","0px")}ne(!1),j(!1),T(null)},onPointerMove:te=>{var ue,he,Ce;if(!Bt.current||!zt||((ue=window.getSelection())==null?void 0:ue.toString().length)>0)return;const fe=te.clientY-Bt.current.y,Se=te.clientX-Bt.current.x;var Yn;const Pe=(Yn=e.swipeDirections)!=null?Yn:Ad(O);!L&&(Math.abs(Se)>1||Math.abs(fe)>1)&&T(Math.abs(Se)>Math.abs(fe)?"x":"y");let Ie={x:0,y:0};const jc=mt=>1/(1.5+Math.abs(mt)/20);if(L==="y"){if(Pe.includes("top")||Pe.includes("bottom"))if(Pe.includes("top")&&fe<0||Pe.includes("bottom")&&fe>0)Ie.y=fe;else{const mt=fe*jc(fe);Ie.y=Math.abs(mt)<Math.abs(fe)?mt:fe}}else if(L==="x"&&(Pe.includes("left")||Pe.includes("right")))if(Pe.includes("left")&&Se<0||Pe.includes("right")&&Se>0)Ie.x=Se;else{const mt=Se*jc(Se);Ie.x=Math.abs(mt)<Math.abs(Se)?mt:Se}(Math.abs(Ie.x)>0||Math.abs(Ie.y)>0)&&ne(!0),(he=ve.current)==null||he.style.setProperty("--swipe-amount-x",`${Ie.x}px`),(Ce=ve.current)==null||Ce.style.setProperty("--swipe-amount-y",`${Ie.y}px`)}},Gb&&!c.jsx&&xe!=="loading"?C.createElement("button",{"aria-label":q,"data-disabled":Do,"data-close-button":!0,onClick:Do||!zt?()=>{}:()=>{rt(),c.onDismiss==null||c.onDismiss.call(c,c)},className:Le(D==null?void 0:D.closeButton,c==null||(r=c.classNames)==null?void 0:r.closeButton)},(Rc=$==null?void 0:$.close)!=null?Rc:hd):null,(xe||c.icon||c.promise)&&c.icon!==null&&(($==null?void 0:$[xe])!==null||c.icon)?C.createElement("div",{"data-icon":"",className:Le(D==null?void 0:D.icon,c==null||(o=c.classNames)==null?void 0:o.icon)},c.promise||c.type==="loading"&&!c.icon?c.icon||Zb():null,c.type!=="loading"?Jb:null):null,C.createElement("div",{"data-content":"",className:Le(D==null?void 0:D.content,c==null||(a=c.classNames)==null?void 0:a.content)},C.createElement("div",{"data-title":"",className:Le(D==null?void 0:D.title,c==null||(s=c.classNames)==null?void 0:s.title)},c.jsx?c.jsx:typeof c.title=="function"?c.title():c.title),c.description?C.createElement("div",{"data-description":"",className:Le(_,qb,D==null?void 0:D.description,c==null||(i=c.classNames)==null?void 0:i.description)},typeof c.description=="function"?c.description():c.description):null),C.isValidElement(c.cancel)?c.cancel:c.cancel&&Qt(c.cancel)?C.createElement("button",{"data-button":!0,"data-cancel":!0,style:c.cancelButtonStyle||S,onClick:te=>{Qt(c.cancel)&&zt&&(c.cancel.onClick==null||c.cancel.onClick.call(c.cancel,te),rt())},className:Le(D==null?void 0:D.cancelButton,c==null||(l=c.classNames)==null?void 0:l.cancelButton)},c.cancel.label):null,C.isValidElement(c.action)?c.action:c.action&&Qt(c.action)?C.createElement("button",{"data-button":!0,"data-action":!0,style:c.actionButtonStyle||A,onClick:te=>{Qt(c.action)&&(c.action.onClick==null||c.action.onClick.call(c.action,te),!te.defaultPrevented&&rt())},className:Le(D==null?void 0:D.actionButton,c==null||(d=c.classNames)==null?void 0:d.actionButton)},c.action.label):null)};function jo(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Id(e,t){const n={};return[e,t].forEach((r,o)=>{const a=o===1,s=a?"--mobile-offset":"--offset",i=a?Sd:kd;function l(d){["top","right","bottom","left"].forEach(f=>{n[`${s}-${f}`]=typeof d=="number"?`${d}px`:d})}typeof r=="number"||typeof r=="string"?l(r):typeof r=="object"?["top","right","bottom","left"].forEach(d=>{r[d]===void 0?n[`${s}-${d}`]=i:n[`${s}-${d}`]=typeof r[d]=="number"?`${r[d]}px`:r[d]}):l(i)}),n}const Md=C.forwardRef(function(t,n){const{id:r,invert:o,position:a="bottom-right",hotkey:s=["altKey","KeyT"],expand:i,closeButton:l,className:d,offset:f,mobileOffset:c,theme:h="light",richColors:g,duration:v,style:m,visibleToasts:b=Cd,toastOptions:w,dir:y=jo(),gap:x=Nd,icons:k,containerAriaLabel:P="Notifications"}=t,[E,N]=C.useState([]),S=C.useMemo(()=>r?E.filter(B=>B.toasterId===r):E.filter(B=>!B.toasterId),[E,r]),A=C.useMemo(()=>Array.from(new Set([a].concat(S.filter(B=>B.position).map(B=>B.position)))),[S,a]),[z,_]=C.useState([]),[M,O]=C.useState(!1),[I,W]=C.useState(!1),[D,$]=C.useState(h!=="system"?h:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),q=C.useRef(null),L=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),T=C.useRef(null),F=C.useRef(!1),H=C.useCallback(B=>{N(V=>{var U;return(U=V.find(X=>X.id===B.id))!=null&&U.delete||ge.dismiss(B.id),V.filter(({id:X})=>X!==B.id)})},[]);return C.useEffect(()=>ge.subscribe(B=>{if(B.dismiss){requestAnimationFrame(()=>{N(V=>V.map(U=>U.id===B.id?{...U,delete:!0}:U))});return}setTimeout(()=>{Kn.flushSync(()=>{N(V=>{const U=V.findIndex(X=>X.id===B.id);return U!==-1?[...V.slice(0,U),{...V[U],...B},...V.slice(U+1)]:[B,...V]})})})}),[E]),C.useEffect(()=>{if(h!=="system"){$(h);return}if(h==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?$("dark"):$("light")),typeof window>"u")return;const B=window.matchMedia("(prefers-color-scheme: dark)");try{B.addEventListener("change",({matches:V})=>{$(V?"dark":"light")})}catch{B.addListener(({matches:U})=>{try{$(U?"dark":"light")}catch(X){console.error(X)}})}},[h]),C.useEffect(()=>{E.length<=1&&O(!1)},[E]),C.useEffect(()=>{const B=V=>{var U;if(s.every(j=>V[j]||V.code===j)){var R;O(!0),(R=q.current)==null||R.focus()}V.code==="Escape"&&(document.activeElement===q.current||(U=q.current)!=null&&U.contains(document.activeElement))&&O(!1)};return document.addEventListener("keydown",B),()=>document.removeEventListener("keydown",B)},[s]),C.useEffect(()=>{if(q.current)return()=>{T.current&&(T.current.focus({preventScroll:!0}),T.current=null,F.current=!1)}},[q.current]),C.createElement("section",{ref:n,"aria-label":`${P} ${L}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},A.map((B,V)=>{var U;const[X,R]=B.split("-");return S.length?C.createElement("ol",{key:B,dir:y==="auto"?jo():y,tabIndex:-1,ref:q,className:d,"data-sonner-toaster":!0,"data-sonner-theme":D,"data-y-position":X,"data-x-position":R,style:{"--front-toast-height":`${((U=z[0])==null?void 0:U.height)||0}px`,"--width":`${Ed}px`,"--gap":`${x}px`,...m,...Id(f,c)},onBlur:j=>{F.current&&!j.currentTarget.contains(j.relatedTarget)&&(F.current=!1,T.current&&(T.current.focus({preventScroll:!0}),T.current=null))},onFocus:j=>{j.target instanceof HTMLElement&&j.target.dataset.dismissible==="false"||F.current||(F.current=!0,T.current=j.relatedTarget)},onMouseEnter:()=>O(!0),onMouseMove:()=>O(!0),onMouseLeave:()=>{I||O(!1)},onDragEnd:()=>O(!1),onPointerDown:j=>{j.target instanceof HTMLElement&&j.target.dataset.dismissible==="false"||W(!0)},onPointerUp:()=>W(!1)},S.filter(j=>!j.position&&V===0||j.position===B).map((j,Z)=>{var ee,ae;return C.createElement(Pd,{key:j.id,icons:k,index:Z,toast:j,defaultRichColors:g,duration:(ee=w==null?void 0:w.duration)!=null?ee:v,className:w==null?void 0:w.className,descriptionClassName:w==null?void 0:w.descriptionClassName,invert:o,visibleToasts:b,closeButton:(ae=w==null?void 0:w.closeButton)!=null?ae:l,interacting:I,position:B,style:w==null?void 0:w.style,unstyled:w==null?void 0:w.unstyled,classNames:w==null?void 0:w.classNames,cancelButtonStyle:w==null?void 0:w.cancelButtonStyle,actionButtonStyle:w==null?void 0:w.actionButtonStyle,closeButtonAriaLabel:w==null?void 0:w.closeButtonAriaLabel,removeToast:H,toasts:S.filter(ne=>ne.position==j.position),heights:z.filter(ne=>ne.position==j.position),setHeights:_,expandByDefault:i,gap:x,expanded:M,swipeDirections:t.swipeDirections})})):null}))}),Ld=e=>e.startsWith("http")&&!e.endsWith(".js"),Wo=e=>{try{const{hostname:t}=new URL(e);return t==="localhost"||t==="127.0.0.1"||t.endsWith(".trycloudflare.com")||t.endsWith(".ngrok-free.app")}catch{return!1}},Od=e=>{const t=e.replace(/-/g,"+").replace(/_/g,"/"),n=t+"=".repeat((4-t.length%4)%4);return atob(n)},zd=(e,t)=>{const n=e.indexOf(":");if(n===-1)return;const r=e.slice(0,n),o=e.slice(n+1);if(!(!r||!o)){if(!o.startsWith("http")){try{const a=JSON.parse(Od(o));if(a.url&&Wo(a.url))return{extensionId:r,bundleUrl:a.url,mode:t,token:a.token}}catch{}return}if(Wo(o))return{extensionId:r,bundleUrl:o,mode:t}}},qo=(e,t,n)=>{const r=e.getAll(t);if(r.length===0)return[];const o=[];for(const a of r){const s=a.split(",");for(const i of s){const l=zd(i,n);l&&o.push(l)}}return o},Go=e=>{const t=new URLSearchParams(e);try{const n=qo(t,"_stackable_dev","dev"),r=qo(t,"_stackable_staging","staging"),o=new Map;for(const a of n)o.set(a.extensionId,a);for(const a of r)o.set(a.extensionId,a);return Array.from(o.values())}catch{return[]}},Dd=async(e,t)=>t.length===0?e:Promise.all(e.map(async n=>{const r=t.find(o=>o.extensionId===n.id);if(!r)return n;console.log(`[Stackable] Dev override active for ${n.id} → ${r.bundleUrl}`);try{const o=await fetch(`${r.bundleUrl}/manifest.json`);if(o.ok){const a=await o.json();return console.log(`[Stackable] Dev manifest loaded for ${n.id}`,a.permissions),{...n,bundleUrl:r.bundleUrl,manifest:a}}}catch{console.warn(`[Stackable] Could not fetch dev manifest for ${n.id}, using registry manifest`)}return{...n,bundleUrl:r.bundleUrl}}));/**
12
+ </html>`;r.srcdoc=d,console.warn(`[SandboxManager] Creating srcdoc sandbox for ${e.id}, srcdoc starts with: ${d.substring(0,300)}`)}t.appendChild(r);const s={manifest:e.manifest,extensionId:e.id,iframe:r,ready:!1,expectedOrigin:a,messageHandlers:new Set},i=l=>{if(l.origin!==s.expectedOrigin)return;const d=l.data;!d||typeof d!="object"||!("type"in d)||("extensionId"in d?d.extensionId:void 0)!==e.id||(d.type==="extension-ready"&&(s.ready=!0),s.messageHandlers.forEach(c=>c(d)))};return window.addEventListener("message",i),ot.set(e.id,s),s},Me=(e,t)=>{const n=ot.get(e);if(!(n!=null&&n.iframe.contentWindow)){console.warn(`Sandbox not found for extension: ${e}`);return}const r=n.expectedOrigin==="null"?"*":n.expectedOrigin;n.iframe.contentWindow.postMessage(t,r)},vt=e=>ot.get(e),Yc=e=>{const t=ot.get(e);t&&(t.iframe.remove(),t.messageHandlers.clear(),ot.delete(e))},bt=()=>ot,Xn=e=>e,Kc={SUPER_ADMIN:"super_admin"};new Set(Object.values(Kc));const $o={"ui-card":{description:"Card container for grouping related content",icon:"square",category:"layout",attributes:["className","onClick"],children:["ui-card-header","ui-card-content"]},"ui-card-content":{description:"Content area within a Card",icon:"square",category:"layout",attributes:["className"],childOnly:!0},"ui-card-header":{description:"Header area within a Card",icon:"square",category:"layout",attributes:["className"],childOnly:!0},"ui-button":{description:"Interactive button with variant and size options",icon:"mouse-pointer-click",category:"input",attributes:["variant","size","disabled","onClick","type","className","title"],attributeValues:{variant:["default","destructive","outline","secondary","ghost","link"],size:["default","xs","sm","lg","icon"]}},"ui-text":{description:"Paragraph text",icon:"type",category:"text",attributes:["className","tone"],attributeValues:{tone:["default","muted","destructive"]}},"ui-heading":{description:"Heading element (h1–h6)",icon:"heading",category:"text",attributes:["level","className"],attributeValues:{level:["1","2","3","4","5","6"]}},"ui-badge":{description:"Small label for status, category, or count",icon:"tag",category:"text",attributes:["variant","hue","tone","className"],attributeValues:{variant:["default","secondary","destructive","outline","ghost","link"],hue:["amber","blue","emerald","red","purple","pink","gray"],tone:["default","muted","destructive"]}},"ui-input":{description:"Single-line text input field",icon:"text-cursor-input",category:"input",attributes:["type","placeholder","value","onChange","disabled","className","id"],selfClosing:!0},"ui-textarea":{description:"Multi-line text input field",icon:"text",category:"input",attributes:["placeholder","value","onChange","disabled","rows","className","id"],selfClosing:!0},"ui-select":{description:"Dropdown select with options",icon:"chevrons-up-down",category:"input",attributes:["value","defaultValue","onChange","placeholder","disabled","className"],children:["ui-select-option"]},"ui-select-option":{description:"Option within a Select dropdown",icon:"chevrons-up-down",category:"input",attributes:["value","disabled","className"],childOnly:!0},"ui-checkbox":{description:"Checkbox toggle for boolean values",icon:"square-check",category:"input",attributes:["checked","onChange","disabled","className","id"],selfClosing:!0},"ui-switch":{description:"Toggle switch for on/off states",icon:"toggle-left",category:"input",attributes:["checked","onChange","disabled","size","className","id"],attributeValues:{size:["sm","default"]},selfClosing:!0},"ui-label":{description:"Form label associated with an input",icon:"tag",category:"input",attributes:["htmlFor","className"]},"ui-radio-group":{description:"Group of radio buttons for single selection",icon:"circle-dot",category:"input",attributes:["value","defaultValue","onChange","className"],children:["ui-radio-group-item","ui-label","ui-inline"]},"ui-radio-group-item":{description:"Individual radio button within a RadioGroup",icon:"circle-dot",category:"input",attributes:["value","disabled","className","id"],childOnly:!0},"ui-stack":{description:"Vertical or horizontal flex container with gap",icon:"rows-3",category:"layout",attributes:["gap","direction","className"],attributeValues:{direction:["row","column"],gap:["0","1","2","3","4","5","6","8","10","12"]}},"ui-inline":{description:"Horizontal flex container with centered items",icon:"columns-3",category:"layout",attributes:["gap","className"],attributeValues:{gap:["0","1","2","3","4","5","6","8","10","12"]}},"ui-separator":{description:"Horizontal divider line",icon:"minus",category:"layout",attributes:["className"],selfClosing:!0},"ui-tabs":{description:"Tabbed content container",icon:"panel-top",category:"navigation",attributes:["defaultValue","className"],children:["ui-tabs-list","ui-tabs-content"]},"ui-tabs-list":{description:"Container for tab triggers",icon:"panel-top",category:"navigation",attributes:["className"],children:["ui-tabs-trigger"],childOnly:!0},"ui-tabs-trigger":{description:"Clickable tab label within TabsList",icon:"panel-top",category:"navigation",attributes:["value","className"],childOnly:!0},"ui-tabs-content":{description:"Content panel shown when its tab is active",icon:"panel-top",category:"navigation",attributes:["value","className"],childOnly:!0},"ui-scroll-area":{description:"Scrollable content container",icon:"scroll",category:"layout",attributes:["className"]},"ui-avatar":{description:"User avatar with image and initials fallback",icon:"circle-user",category:"composite",attributes:["src","alt","className"],selfClosing:!0},"ui-icon":{description:"Icon from the allowed icon set",icon:"sparkles",category:"composite",attributes:["name","size","className"],attributeValues:{size:["sm","md","lg"]},selfClosing:!0},"ui-qr-code":{description:"QR code rendered from a string payload",icon:"qr-code",category:"composite",attributes:["value","size","variant","level","alt","className"],attributeValues:{size:["md","sm","lg"],variant:["default","inverted"],level:["medium","low","quartile","high"]},selfClosing:!0},"ui-link":{description:"Hyperlink element",icon:"link",category:"navigation",attributes:["href","target","rel","className"]},"ui-menu":{description:"Card-based menu with clickable items",icon:"menu",category:"navigation",attributes:["title","className"],children:["ui-menu-item"]},"ui-menu-item":{description:"Clickable item within a Menu",icon:"menu",category:"navigation",attributes:["icon","label","description","onClick","className"],childOnly:!0},"ui-skeleton":{description:"Loading placeholder with shimmer effect",icon:"loader",category:"feedback",attributes:["width","height","className"],selfClosing:!0},"ui-tooltip":{description:"Hover tooltip with text content",icon:"message-square",category:"feedback",attributes:["content","className"]},"ui-progress":{description:"Progress bar with percentage value",icon:"bar-chart",category:"feedback",attributes:["value","className"],selfClosing:!0},"ui-alert":{description:"Alert banner with icon and optional title",icon:"alert-circle",category:"feedback",attributes:["variant","title","className"],attributeValues:{variant:["default","destructive"]}},"ui-collapsible":{description:"Expandable/collapsible content section",icon:"chevrons-down-up",category:"composite",attributes:["defaultOpen","className"],children:["ui-collapsible-trigger","ui-collapsible-content"]},"ui-collapsible-trigger":{description:"Clickable trigger to toggle Collapsible",icon:"chevrons-down-up",category:"composite",attributes:["className"],childOnly:!0},"ui-collapsible-content":{description:"Content revealed when Collapsible is open",icon:"chevrons-down-up",category:"composite",attributes:["className"],childOnly:!0}},We=$o,at=Object.keys($o),Xc=Object.fromEntries(at.map(e=>[e,We[e].attributes]));Object.fromEntries(at.filter(e=>We[e].attributeValues).map(e=>[e,We[e].attributeValues]));const Ho=Object.fromEntries(at.filter(e=>We[e].children).map(e=>[e,We[e].children]));({...Ho},new Set(at.filter(e=>We[e].selfClosing===!0))),new Set(at.filter(e=>We[e].childOnly===!0)),Object.fromEntries(at.map(e=>[e,We[e].category]));const wt={NEW_CONVERSATION:"newConversation",SET_CONVERSATION_TAGS:"setConversationTags",SET_CONVERSATION_FIELDS:"setConversationFields"},Zc=["identity","messaging","settings"],Jc={"context.read":"context:read","data.query":"data:query","data.fetch":"data:fetch","actions.toast":"actions:toast","actions.invoke":"actions:invoke","extend.identity":"extend:identity"},Qc=e=>{const t=async n=>{const r=n.data;if((r==null?void 0:r.type)!=="capability-request")return;const o=r;console.warn("[CapabilityRPC] raw message data:",JSON.stringify(n.data));const a=o.extensionId;if(!a||!vt(a)){const l=[...bt().keys()];console.warn(`Received capability request from unknown source (extensionId: "${a??"undefined"}", registered: [${l.join(", ")}], capability: ${o.capability})`);return}const s=vt(a);if(!s)return;const i=Jc[o.capability];if(i&&!s.manifest.permissions.includes(i)){const l={type:"capability-response",id:o.id,success:!1,error:`Permission denied: '${i}' not granted for extension '${a}'`};Me(a,l);return}try{let l;switch(o.capability){case"data.query":l=await e["data.query"](o.payload);break;case"data.fetch":l=await e["data.fetch"](a,o.payload);break;case"actions.toast":l=await e["actions.toast"](a,o.payload);break;case"actions.invoke":l=await e["actions.invoke"](o.payload);break;case"context.read":l=await e["context.read"](a);break;case"extend.identity":l=e["extend.identity"]?await e["extend.identity"](a,o.payload):null;break;default:throw new Error(`Unknown capability: ${o.capability}`)}const d={type:"capability-response",id:o.id,success:!0,data:l};Me(a,d)}catch(l){const d={type:"capability-response",id:o.id,success:!1,error:l instanceof Error?l.message:"Unknown error"};Me(a,d)}};return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}},Vo=C.createContext({extensions:[],components:{},ready:!1}),ed=({children:e,extensions:t,capabilityHandlers:n,components:r={}})=>{const[o,a]=C.useState(!1),s=C.useRef(null),i=C.useRef(null),l=C.useRef(n);return l.current=n,C.useEffect(()=>{if(!s.current)return;let d=!1;return(async()=>{const c=s.current;if(!c)return;console.log("[ExtensionProvider] Initializing with",t.length,"extensions");const h=new Proxy({},{get:(g,v)=>l.current[v]});i.current=Qc(h);for(const g of t)g.enabled&&!d&&(console.log("[ExtensionProvider] Creating sandbox for",g.id,"bundleUrl:",g.bundleUrl),await Gc(g,c),console.log("[ExtensionProvider] Sandbox created for",g.id));d||(console.log("[ExtensionProvider] Ready"),a(!0))})(),()=>{var c;d=!0;for(const h of t)Yc(h.id);(c=i.current)==null||c.call(i)}},[t]),u.jsxs(Vo.Provider,{value:{extensions:t,components:r,ready:o},children:[u.jsx("div",{ref:s,style:{display:"none"}}),e]})},Uo=()=>C.useContext(Vo),td=e=>at.includes(e),nd=(e,t={})=>{const{surfaceId:n,logPrefix:r="[NodeRenderer]"}=t,o=(a,s,i=0)=>{var g,v,m;if(a.type==="text")return a.text||null;if(!a.tag)return null;if(a.tag==="__fragment")return u.jsx(C.Fragment,{children:(g=a.children)==null?void 0:g.map((b,w)=>o(b,s,w))},i);if(!td(a.tag))return console.warn(`${r} Unknown UI tag rejected: <${a.tag}>`),null;const l=e[a.tag];if(!l)return a.tag.startsWith("ui-")?(console.warn(`${r} Unregistered UI tag: <${a.tag}>`),null):u.jsx(C.Fragment,{children:(v=a.children)==null?void 0:v.map((b,w)=>o(b,s,w))},i);const{filtered:d,stripped:f}=rd(a.tag,a.attrs);f.length>0&&console.warn(`${r} Attributes not allowed on <${a.tag}>, stripped: ${f.join(", ")}`);const c=od(a.tag,a.children);if(c.length>0&&console.warn(`${r} Invalid children in <${a.tag}>: ${c.join(", ")}`),a.actionId){const b=a.actionId;d.onClick=()=>{const w=s;w==null||w.postMessage({type:"action-invoke",surfaceId:n,actionId:b},"*")}}if(d["data-onchange-id"]){const b=d["data-onchange-id"];delete d["data-onchange-id"],d.onChange=w=>{const y=s;y==null||y.postMessage({type:"action-invoke",surfaceId:n,actionId:b,value:w.target.value},"*")}}const h=(m=a.children)==null?void 0:m.map((b,w)=>o(b,s,w));return C.createElement(l,{...d,key:i},h&&h.length>0?h:void 0)};return o},rd=(e,t)=>{const n={},r=[];if(!t)return{filtered:n,stripped:r};const o=Xc[e];for(const[a,s]of Object.entries(t)){if(a==="data-onchange-id"){n[a]=s;continue}o!=null&&o.includes(a)?n[a]=s:r.push(a)}return{filtered:n,stripped:r}},od=(e,t)=>{const n=Ho[e];if(!n||!t)return[];const r=[];for(const o of t)o.type!=="text"&&(!o.tag||o.tag==="__fragment"||n.includes(o.tag)||r.push(o.tag));return r},ad=e=>{const t={...e};for(const n of Zc)delete t[n];return t},Jt=({target:e,context:t,className:n,separator:r,fallback:o=null,render:a})=>{const{extensions:s,components:i,ready:l}=Uo(),[d,f]=C.useState({}),c=C.useRef(""),h=C.useMemo(()=>s.filter(b=>b.enabled&&b.manifest.targets.includes(e)),[s.map(b=>b.id).join(","),e]),g=C.useMemo(()=>nd(i,{surfaceId:e,logPrefix:"[ExtensionSlot]"}),[e,i]);if(C.useEffect(()=>{const b=h.map(y=>y.id).join(",");if(c.current!==b&&(c.current=b,f({})),!l||h.length===0)return;const w=y=>{const x=y.data;if(!(!x||typeof x!="object"||!h.some(P=>{const E=vt(P.id);return E&&y.source===E.iframe.contentWindow}))){if(x.type==="surface-update"&&x.surfaceId===e){const P=h.find(N=>{const S=vt(N.id);return S&&y.source===S.iframe.contentWindow});if(!P)return;const E=g(x.tree,y.source??null);f(N=>({...N,[P.id]:E}))}if(x.type==="surface-ready"&&x.surfaceId===e&&t){const P=ad(t);h.forEach(E=>{var S;const N=vt(E.id);(S=N==null?void 0:N.iframe.contentWindow)==null||S.postMessage({type:"context-update",surfaceId:e,context:P},"*")})}}};return window.addEventListener("message",w),h.forEach(y=>{var k;const x=vt(y.id);(k=x==null?void 0:x.iframe.contentWindow)==null||k.postMessage({type:"surface-render",surfaceId:e,context:t},"*")}),()=>{window.removeEventListener("message",w)}},[l,h,e,t,g]),!l)return null;if(h.length===0)return o?u.jsx("div",{"data-extension-slot":e,title:e,className:n,children:o}):null;const v=h.map(b=>({id:b.id,children:d[b.id]})).filter(b=>!!b.children),m=v.length>0?v.flatMap((b,w,y)=>{const x=a?a({extensionId:b.id,children:b.children,index:w,total:y.length}):u.jsx(C.Fragment,{children:b.children},b.id),k=u.jsx(C.Fragment,{children:x},`extension:${b.id}`);if(w===0||!r)return[k];const P=y[w-1],E=typeof r=="function"?r({index:w,total:y.length,previousExtensionId:P.id,extensionId:b.id}):r;return[u.jsx(C.Fragment,{children:E},`separator:${P.id}:${b.id}:${w}`),k]}):o;return u.jsx("div",{"data-extension-slot":e,title:e,className:n,children:m})};function sd(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}const id=e=>{switch(e){case"success":return dd;case"info":return fd;case"warning":return ud;case"error":return pd;default:return null}},ld=Array(12).fill(0),cd=({visible:e,className:t})=>C.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},C.createElement("div",{className:"sonner-spinner"},ld.map((n,r)=>C.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),dd=C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},C.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),ud=C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},C.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),fd=C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},C.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),pd=C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},C.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),hd=C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},C.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),C.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),gd=()=>{const[e,t]=C.useState(document.hidden);return C.useEffect(()=>{const n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e};let Zn=1;class md{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)}),this.publish=t=>{this.subscribers.forEach(n=>n(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var n;const{message:r,...o}=t,a=typeof(t==null?void 0:t.id)=="number"||((n=t.id)==null?void 0:n.length)>0?t.id:Zn++,s=this.toasts.find(l=>l.id===a),i=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(a)&&this.dismissedToasts.delete(a),s?this.toasts=this.toasts.map(l=>l.id===a?(this.publish({...l,...t,id:a,title:r}),{...l,...t,id:a,dismissible:i,title:r}):l):this.addToast({title:r,...o,dismissible:i,id:a}),a},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(n=>n({id:t,dismiss:!0})))):this.toasts.forEach(n=>{this.subscribers.forEach(r=>r({id:n.id,dismiss:!0}))}),t),this.message=(t,n)=>this.create({...n,message:t}),this.error=(t,n)=>this.create({...n,message:t,type:"error"}),this.success=(t,n)=>this.create({...n,type:"success",message:t}),this.info=(t,n)=>this.create({...n,type:"info",message:t}),this.warning=(t,n)=>this.create({...n,type:"warning",message:t}),this.loading=(t,n)=>this.create({...n,type:"loading",message:t}),this.promise=(t,n)=>{if(!n)return;let r;n.loading!==void 0&&(r=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const o=Promise.resolve(t instanceof Function?t():t);let a=r!==void 0,s;const i=o.then(async d=>{if(s=["resolve",d],C.isValidElement(d))a=!1,this.create({id:r,type:"default",message:d});else if(bd(d)&&!d.ok){a=!1;const c=typeof n.error=="function"?await n.error(`HTTP error! status: ${d.status}`):n.error,h=typeof n.description=="function"?await n.description(`HTTP error! status: ${d.status}`):n.description,v=typeof c=="object"&&!C.isValidElement(c)?c:{message:c};this.create({id:r,type:"error",description:h,...v})}else if(d instanceof Error){a=!1;const c=typeof n.error=="function"?await n.error(d):n.error,h=typeof n.description=="function"?await n.description(d):n.description,v=typeof c=="object"&&!C.isValidElement(c)?c:{message:c};this.create({id:r,type:"error",description:h,...v})}else if(n.success!==void 0){a=!1;const c=typeof n.success=="function"?await n.success(d):n.success,h=typeof n.description=="function"?await n.description(d):n.description,v=typeof c=="object"&&!C.isValidElement(c)?c:{message:c};this.create({id:r,type:"success",description:h,...v})}}).catch(async d=>{if(s=["reject",d],n.error!==void 0){a=!1;const f=typeof n.error=="function"?await n.error(d):n.error,c=typeof n.description=="function"?await n.description(d):n.description,g=typeof f=="object"&&!C.isValidElement(f)?f:{message:f};this.create({id:r,type:"error",description:c,...g})}}).finally(()=>{a&&(this.dismiss(r),r=void 0),n.finally==null||n.finally.call(n)}),l=()=>new Promise((d,f)=>i.then(()=>s[0]==="reject"?f(s[1]):d(s[1])).catch(f));return typeof r!="string"&&typeof r!="number"?{unwrap:l}:Object.assign(r,{unwrap:l})},this.custom=(t,n)=>{const r=(n==null?void 0:n.id)||Zn++;return this.create({jsx:t(r),id:r,...n}),r},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const ge=new md,vd=(e,t)=>{const n=(t==null?void 0:t.id)||Zn++;return ge.addToast({title:e,...t,id:n}),n},bd=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",wd=vd,yd=()=>ge.toasts,xd=()=>ge.getActiveToasts(),yt=Object.assign(wd,{success:ge.success,info:ge.info,warning:ge.warning,error:ge.error,custom:ge.custom,message:ge.message,promise:ge.promise,dismiss:ge.dismiss,loading:ge.loading},{getHistory:yd,getToasts:xd});sd("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Qt(e){return e.label!==void 0}const Cd=3,kd="24px",Sd="16px",Ro=4e3,Ed=356,Nd=14,Td=45,_d=200;function Le(...e){return e.filter(Boolean).join(" ")}function Ad(e){const[t,n]=e.split("-"),r=[];return t&&r.push(t),n&&r.push(n),r}const Pd=e=>{var t,n,r,o,a,s,i,l,d;const{invert:f,toast:c,unstyled:h,interacting:g,setHeights:v,visibleToasts:m,heights:b,index:w,toasts:y,expanded:x,removeToast:k,defaultRichColors:P,closeButton:E,style:N,cancelButtonStyle:S,actionButtonStyle:A,className:z="",descriptionClassName:_="",duration:M,position:O,gap:I,expandByDefault:W,classNames:D,icons:$,closeButtonAriaLabel:q="Close toast"}=e,[L,T]=C.useState(null),[F,H]=C.useState(null),[B,V]=C.useState(!1),[U,X]=C.useState(!1),[R,j]=C.useState(!1),[Z,ee]=C.useState(!1),[ae,ne]=C.useState(!1),[ce,de]=C.useState(0),[gt,nt]=C.useState(0),Ae=C.useRef(c.duration||M||Ro),Wn=C.useRef(null),ve=C.useRef(null),Rb=w===0,jb=w+1<=m,xe=c.type,zt=c.dismissible!==!1,Wb=c.className||"",qb=c.descriptionClassName||"",qn=C.useMemo(()=>b.findIndex(te=>te.toastId===c.id)||0,[b,c.id]),Gb=C.useMemo(()=>{var te;return(te=c.closeButton)!=null?te:E},[c.closeButton,E]),Fc=C.useMemo(()=>c.duration||M||Ro,[c.duration,M]),zo=C.useRef(0),Dt=C.useRef(0),$c=C.useRef(0),Bt=C.useRef(null),[Yb,Kb]=O.split("-"),Hc=C.useMemo(()=>b.reduce((te,ue,he)=>he>=qn?te:te+ue.height,0),[b,qn]),Vc=gd(),Xb=c.invert||f,Do=xe==="loading";Dt.current=C.useMemo(()=>qn*I+Hc,[qn,Hc]),C.useEffect(()=>{Ae.current=Fc},[Fc]),C.useEffect(()=>{V(!0)},[]),C.useEffect(()=>{const te=ve.current;if(te){const ue=te.getBoundingClientRect().height;return nt(ue),v(he=>[{toastId:c.id,height:ue,position:c.position},...he]),()=>v(he=>he.filter(Ce=>Ce.toastId!==c.id))}},[v,c.id]),C.useLayoutEffect(()=>{if(!B)return;const te=ve.current,ue=te.style.height;te.style.height="auto";const he=te.getBoundingClientRect().height;te.style.height=ue,nt(he),v(Ce=>Ce.find(fe=>fe.toastId===c.id)?Ce.map(fe=>fe.toastId===c.id?{...fe,height:he}:fe):[{toastId:c.id,height:he,position:c.position},...Ce])},[B,c.title,c.description,v,c.id,c.jsx,c.action,c.cancel]);const rt=C.useCallback(()=>{X(!0),de(Dt.current),v(te=>te.filter(ue=>ue.toastId!==c.id)),setTimeout(()=>{k(c)},_d)},[c,k,v,Dt]);C.useEffect(()=>{if(c.promise&&xe==="loading"||c.duration===1/0||c.type==="loading")return;let te;return x||g||Vc?(()=>{if($c.current<zo.current){const Ce=new Date().getTime()-zo.current;Ae.current=Ae.current-Ce}$c.current=new Date().getTime()})():(()=>{Ae.current!==1/0&&(zo.current=new Date().getTime(),te=setTimeout(()=>{c.onAutoClose==null||c.onAutoClose.call(c,c),rt()},Ae.current))})(),()=>clearTimeout(te)},[x,g,c,xe,Vc,rt]),C.useEffect(()=>{c.delete&&(rt(),c.onDismiss==null||c.onDismiss.call(c,c))},[rt,c.delete]);function Zb(){var te;if($!=null&&$.loading){var ue;return C.createElement("div",{className:Le(D==null?void 0:D.loader,c==null||(ue=c.classNames)==null?void 0:ue.loader,"sonner-loader"),"data-visible":xe==="loading"},$.loading)}return C.createElement(cd,{className:Le(D==null?void 0:D.loader,c==null||(te=c.classNames)==null?void 0:te.loader),visible:xe==="loading"})}const Jb=c.icon||($==null?void 0:$[xe])||id(xe);var Uc,Rc;return C.createElement("li",{tabIndex:0,ref:ve,className:Le(z,Wb,D==null?void 0:D.toast,c==null||(t=c.classNames)==null?void 0:t.toast,D==null?void 0:D.default,D==null?void 0:D[xe],c==null||(n=c.classNames)==null?void 0:n[xe]),"data-sonner-toast":"","data-rich-colors":(Uc=c.richColors)!=null?Uc:P,"data-styled":!(c.jsx||c.unstyled||h),"data-mounted":B,"data-promise":!!c.promise,"data-swiped":ae,"data-removed":U,"data-visible":jb,"data-y-position":Yb,"data-x-position":Kb,"data-index":w,"data-front":Rb,"data-swiping":R,"data-dismissible":zt,"data-type":xe,"data-invert":Xb,"data-swipe-out":Z,"data-swipe-direction":F,"data-expanded":!!(x||W&&B),"data-testid":c.testId,style:{"--index":w,"--toasts-before":w,"--z-index":y.length-w,"--offset":`${U?ce:Dt.current}px`,"--initial-height":W?"auto":`${gt}px`,...N,...c.style},onDragEnd:()=>{j(!1),T(null),Bt.current=null},onPointerDown:te=>{te.button!==2&&(Do||!zt||(Wn.current=new Date,de(Dt.current),te.target.setPointerCapture(te.pointerId),te.target.tagName!=="BUTTON"&&(j(!0),Bt.current={x:te.clientX,y:te.clientY})))},onPointerUp:()=>{var te,ue,he;if(Z||!zt)return;Bt.current=null;const Ce=Number(((te=ve.current)==null?void 0:te.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Gn=Number(((ue=ve.current)==null?void 0:ue.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),fe=new Date().getTime()-((he=Wn.current)==null?void 0:he.getTime()),Se=L==="x"?Ce:Gn,Yn=Math.abs(Se)/fe;if(Math.abs(Se)>=Td||Yn>.11){de(Dt.current),c.onDismiss==null||c.onDismiss.call(c,c),H(L==="x"?Ce>0?"right":"left":Gn>0?"down":"up"),rt(),ee(!0);return}else{var Pe,Ie;(Pe=ve.current)==null||Pe.style.setProperty("--swipe-amount-x","0px"),(Ie=ve.current)==null||Ie.style.setProperty("--swipe-amount-y","0px")}ne(!1),j(!1),T(null)},onPointerMove:te=>{var ue,he,Ce;if(!Bt.current||!zt||((ue=window.getSelection())==null?void 0:ue.toString().length)>0)return;const fe=te.clientY-Bt.current.y,Se=te.clientX-Bt.current.x;var Yn;const Pe=(Yn=e.swipeDirections)!=null?Yn:Ad(O);!L&&(Math.abs(Se)>1||Math.abs(fe)>1)&&T(Math.abs(Se)>Math.abs(fe)?"x":"y");let Ie={x:0,y:0};const jc=mt=>1/(1.5+Math.abs(mt)/20);if(L==="y"){if(Pe.includes("top")||Pe.includes("bottom"))if(Pe.includes("top")&&fe<0||Pe.includes("bottom")&&fe>0)Ie.y=fe;else{const mt=fe*jc(fe);Ie.y=Math.abs(mt)<Math.abs(fe)?mt:fe}}else if(L==="x"&&(Pe.includes("left")||Pe.includes("right")))if(Pe.includes("left")&&Se<0||Pe.includes("right")&&Se>0)Ie.x=Se;else{const mt=Se*jc(Se);Ie.x=Math.abs(mt)<Math.abs(Se)?mt:Se}(Math.abs(Ie.x)>0||Math.abs(Ie.y)>0)&&ne(!0),(he=ve.current)==null||he.style.setProperty("--swipe-amount-x",`${Ie.x}px`),(Ce=ve.current)==null||Ce.style.setProperty("--swipe-amount-y",`${Ie.y}px`)}},Gb&&!c.jsx&&xe!=="loading"?C.createElement("button",{"aria-label":q,"data-disabled":Do,"data-close-button":!0,onClick:Do||!zt?()=>{}:()=>{rt(),c.onDismiss==null||c.onDismiss.call(c,c)},className:Le(D==null?void 0:D.closeButton,c==null||(r=c.classNames)==null?void 0:r.closeButton)},(Rc=$==null?void 0:$.close)!=null?Rc:hd):null,(xe||c.icon||c.promise)&&c.icon!==null&&(($==null?void 0:$[xe])!==null||c.icon)?C.createElement("div",{"data-icon":"",className:Le(D==null?void 0:D.icon,c==null||(o=c.classNames)==null?void 0:o.icon)},c.promise||c.type==="loading"&&!c.icon?c.icon||Zb():null,c.type!=="loading"?Jb:null):null,C.createElement("div",{"data-content":"",className:Le(D==null?void 0:D.content,c==null||(a=c.classNames)==null?void 0:a.content)},C.createElement("div",{"data-title":"",className:Le(D==null?void 0:D.title,c==null||(s=c.classNames)==null?void 0:s.title)},c.jsx?c.jsx:typeof c.title=="function"?c.title():c.title),c.description?C.createElement("div",{"data-description":"",className:Le(_,qb,D==null?void 0:D.description,c==null||(i=c.classNames)==null?void 0:i.description)},typeof c.description=="function"?c.description():c.description):null),C.isValidElement(c.cancel)?c.cancel:c.cancel&&Qt(c.cancel)?C.createElement("button",{"data-button":!0,"data-cancel":!0,style:c.cancelButtonStyle||S,onClick:te=>{Qt(c.cancel)&&zt&&(c.cancel.onClick==null||c.cancel.onClick.call(c.cancel,te),rt())},className:Le(D==null?void 0:D.cancelButton,c==null||(l=c.classNames)==null?void 0:l.cancelButton)},c.cancel.label):null,C.isValidElement(c.action)?c.action:c.action&&Qt(c.action)?C.createElement("button",{"data-button":!0,"data-action":!0,style:c.actionButtonStyle||A,onClick:te=>{Qt(c.action)&&(c.action.onClick==null||c.action.onClick.call(c.action,te),!te.defaultPrevented&&rt())},className:Le(D==null?void 0:D.actionButton,c==null||(d=c.classNames)==null?void 0:d.actionButton)},c.action.label):null)};function jo(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Id(e,t){const n={};return[e,t].forEach((r,o)=>{const a=o===1,s=a?"--mobile-offset":"--offset",i=a?Sd:kd;function l(d){["top","right","bottom","left"].forEach(f=>{n[`${s}-${f}`]=typeof d=="number"?`${d}px`:d})}typeof r=="number"||typeof r=="string"?l(r):typeof r=="object"?["top","right","bottom","left"].forEach(d=>{r[d]===void 0?n[`${s}-${d}`]=i:n[`${s}-${d}`]=typeof r[d]=="number"?`${r[d]}px`:r[d]}):l(i)}),n}const Md=C.forwardRef(function(t,n){const{id:r,invert:o,position:a="bottom-right",hotkey:s=["altKey","KeyT"],expand:i,closeButton:l,className:d,offset:f,mobileOffset:c,theme:h="light",richColors:g,duration:v,style:m,visibleToasts:b=Cd,toastOptions:w,dir:y=jo(),gap:x=Nd,icons:k,containerAriaLabel:P="Notifications"}=t,[E,N]=C.useState([]),S=C.useMemo(()=>r?E.filter(B=>B.toasterId===r):E.filter(B=>!B.toasterId),[E,r]),A=C.useMemo(()=>Array.from(new Set([a].concat(S.filter(B=>B.position).map(B=>B.position)))),[S,a]),[z,_]=C.useState([]),[M,O]=C.useState(!1),[I,W]=C.useState(!1),[D,$]=C.useState(h!=="system"?h:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),q=C.useRef(null),L=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),T=C.useRef(null),F=C.useRef(!1),H=C.useCallback(B=>{N(V=>{var U;return(U=V.find(X=>X.id===B.id))!=null&&U.delete||ge.dismiss(B.id),V.filter(({id:X})=>X!==B.id)})},[]);return C.useEffect(()=>ge.subscribe(B=>{if(B.dismiss){requestAnimationFrame(()=>{N(V=>V.map(U=>U.id===B.id?{...U,delete:!0}:U))});return}setTimeout(()=>{Kn.flushSync(()=>{N(V=>{const U=V.findIndex(X=>X.id===B.id);return U!==-1?[...V.slice(0,U),{...V[U],...B},...V.slice(U+1)]:[B,...V]})})})}),[E]),C.useEffect(()=>{if(h!=="system"){$(h);return}if(h==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?$("dark"):$("light")),typeof window>"u")return;const B=window.matchMedia("(prefers-color-scheme: dark)");try{B.addEventListener("change",({matches:V})=>{$(V?"dark":"light")})}catch{B.addListener(({matches:U})=>{try{$(U?"dark":"light")}catch(X){console.error(X)}})}},[h]),C.useEffect(()=>{E.length<=1&&O(!1)},[E]),C.useEffect(()=>{const B=V=>{var U;if(s.every(j=>V[j]||V.code===j)){var R;O(!0),(R=q.current)==null||R.focus()}V.code==="Escape"&&(document.activeElement===q.current||(U=q.current)!=null&&U.contains(document.activeElement))&&O(!1)};return document.addEventListener("keydown",B),()=>document.removeEventListener("keydown",B)},[s]),C.useEffect(()=>{if(q.current)return()=>{T.current&&(T.current.focus({preventScroll:!0}),T.current=null,F.current=!1)}},[q.current]),C.createElement("section",{ref:n,"aria-label":`${P} ${L}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},A.map((B,V)=>{var U;const[X,R]=B.split("-");return S.length?C.createElement("ol",{key:B,dir:y==="auto"?jo():y,tabIndex:-1,ref:q,className:d,"data-sonner-toaster":!0,"data-sonner-theme":D,"data-y-position":X,"data-x-position":R,style:{"--front-toast-height":`${((U=z[0])==null?void 0:U.height)||0}px`,"--width":`${Ed}px`,"--gap":`${x}px`,...m,...Id(f,c)},onBlur:j=>{F.current&&!j.currentTarget.contains(j.relatedTarget)&&(F.current=!1,T.current&&(T.current.focus({preventScroll:!0}),T.current=null))},onFocus:j=>{j.target instanceof HTMLElement&&j.target.dataset.dismissible==="false"||F.current||(F.current=!0,T.current=j.relatedTarget)},onMouseEnter:()=>O(!0),onMouseMove:()=>O(!0),onMouseLeave:()=>{I||O(!1)},onDragEnd:()=>O(!1),onPointerDown:j=>{j.target instanceof HTMLElement&&j.target.dataset.dismissible==="false"||W(!0)},onPointerUp:()=>W(!1)},S.filter(j=>!j.position&&V===0||j.position===B).map((j,Z)=>{var ee,ae;return C.createElement(Pd,{key:j.id,icons:k,index:Z,toast:j,defaultRichColors:g,duration:(ee=w==null?void 0:w.duration)!=null?ee:v,className:w==null?void 0:w.className,descriptionClassName:w==null?void 0:w.descriptionClassName,invert:o,visibleToasts:b,closeButton:(ae=w==null?void 0:w.closeButton)!=null?ae:l,interacting:I,position:B,style:w==null?void 0:w.style,unstyled:w==null?void 0:w.unstyled,classNames:w==null?void 0:w.classNames,cancelButtonStyle:w==null?void 0:w.cancelButtonStyle,actionButtonStyle:w==null?void 0:w.actionButtonStyle,closeButtonAriaLabel:w==null?void 0:w.closeButtonAriaLabel,removeToast:H,toasts:S.filter(ne=>ne.position==j.position),heights:z.filter(ne=>ne.position==j.position),setHeights:_,expandByDefault:i,gap:x,expanded:M,swipeDirections:t.swipeDirections})})):null}))}),Ld=e=>e.startsWith("http")&&!e.endsWith(".js"),Wo=e=>{try{const{hostname:t}=new URL(e);return t==="localhost"||t==="127.0.0.1"||t.endsWith(".trycloudflare.com")||t.endsWith(".ngrok-free.app")}catch{return!1}},Od=e=>{const t=e.replace(/-/g,"+").replace(/_/g,"/"),n=t+"=".repeat((4-t.length%4)%4);return atob(n)},zd=(e,t)=>{const n=e.indexOf(":");if(n===-1)return;const r=e.slice(0,n),o=e.slice(n+1);if(!(!r||!o)){if(!o.startsWith("http")){try{const a=JSON.parse(Od(o));if(a.url&&Wo(a.url))return{extensionId:r,bundleUrl:a.url,mode:t,token:a.token}}catch{}return}if(Wo(o))return{extensionId:r,bundleUrl:o,mode:t}}},qo=(e,t,n)=>{const r=e.getAll(t);if(r.length===0)return[];const o=[];for(const a of r){const s=a.split(",");for(const i of s){const l=zd(i,n);l&&o.push(l)}}return o},Go=e=>{const t=new URLSearchParams(e);try{const n=qo(t,"_stackable_dev","dev"),r=qo(t,"_stackable_staging","staging"),o=new Map;for(const a of n)o.set(a.extensionId,a);for(const a of r)o.set(a.extensionId,a);return Array.from(o.values())}catch{return[]}},Dd=async(e,t)=>t.length===0?e:Promise.all(e.map(async n=>{const r=t.find(o=>o.extensionId===n.id);if(!r)return n;console.log(`[Stackable] Dev override active for ${n.id} → ${r.bundleUrl}`);try{const o=await fetch(`${r.bundleUrl}/manifest.json`);if(o.ok){const a=await o.json();return console.log(`[Stackable] Dev manifest loaded for ${n.id}`,a.permissions),{...n,bundleUrl:r.bundleUrl,manifest:a}}}catch{console.warn(`[Stackable] Could not fetch dev manifest for ${n.id}, using registry manifest`)}return{...n,bundleUrl:r.bundleUrl}}));/**
13
13
  * @license lucide-react v0.577.0 - ISC
14
14
  *
15
15
  * This source code is licensed under the ISC license.
@@ -311,4 +311,4 @@ Minimum version required to store current data is: `+_+`.
311
311
  85% { transform: rotate(175deg); }
312
312
  100% { transform: rotate(180deg); }
313
313
  }
314
- `,document.head.appendChild(e)},fb=e=>{const t=e.some(r=>r.mode==="staging"),n=e.some(r=>r.mode==="dev");return t&&n?"Dev + Staging":t?"Staging Mode":"Dev Mode"},pb=e=>e.mode==="staging"?"STAGING":"DEV",hb=({className:e="",extensions:t=[],tokenErrors:n=new Map})=>{const[r,o]=C.useState([]),[a,s]=C.useState(!1),[i,l]=C.useState(!1),[d,f]=C.useState(!1),c=C.useRef(null),h=n.size>0;if(C.useEffect(()=>{ub()},[]),C.useEffect(()=>{if(!h)return;const v=()=>{f(!0),setTimeout(()=>f(!1),600)};v();const m=setInterval(v,4e3);return()=>clearInterval(m)},[h]),C.useEffect(()=>{if(typeof window>"u")return;const v=()=>{const b=Go(window.location.search);o(b)};v();const m=()=>v();return window.addEventListener("popstate",m),()=>window.removeEventListener("popstate",m)},[]),r.length===0)return null;const g=v=>{if(v.stopPropagation(),typeof window>"u")return;const m=new URL(window.location.href);m.searchParams.delete("_stackable_dev"),m.searchParams.delete("_stackable_staging"),window.location.href=m.toString()};return u.jsxs("div",{className:e,style:{position:"fixed",bottom:"16px",left:"50%",transform:i||d?"translate(-50%, -2px)":"translate(-50%, 0)",zIndex:2147483647,fontFamily:"system-ui, -apple-system, sans-serif",transition:"transform 0.15s ease",display:"flex",flexDirection:"column",alignItems:"center"},onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:[a&&u.jsx("div",{style:{backgroundColor:"#fff",border:"1px solid #e5e7eb",borderBottom:`1px solid ${h?"#dc2626":"#eab308"}`,borderRadius:"8px 8px 0 0",boxShadow:"0 -4px 16px -4px rgba(0,0,0,0.12), 0 -2px 6px -4px rgba(0,0,0,0.08)",padding:"8px 0",width:"420px",maxWidth:"90vw"},children:r.map((v,m)=>{var b;return u.jsxs("div",{style:{padding:"8px 12px",borderBottom:m<r.length-1?"1px solid #f3f4f6":"none"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[u.jsx("span",{style:{fontSize:"10px",fontWeight:700,color:v.mode==="staging"?"#7c3aed":"#b45309",backgroundColor:v.mode==="staging"?"#ede9fe":"#fef3c7",padding:"1px 5px",borderRadius:"3px",letterSpacing:"0.05em",fontFamily:"ui-monospace, SFMono-Regular, monospace"},children:pb(v)}),u.jsx("span",{style:{fontSize:"12px",fontWeight:600,color:"#111",fontFamily:"ui-monospace, SFMono-Regular, monospace",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:((b=t.find(w=>w.id===v.extensionId))==null?void 0:b.manifest.name)||v.extensionId})]}),u.jsxs("div",{style:{fontSize:"11px",color:"#6b7280",fontFamily:"ui-monospace, SFMono-Regular, monospace",marginTop:"2px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:v.bundleUrl,children:["→ ",v.bundleUrl]}),n.get(v.extensionId)&&u.jsxs("div",{style:{fontSize:"11px",color:"#dc2626",fontFamily:"ui-monospace, SFMono-Regular, monospace",marginTop:"3px"},children:["⚠ ",n.get(v.extensionId)]})]},v.extensionId)})}),u.jsxs("div",{onClick:()=>s(!a),style:{display:"flex",alignItems:"center",gap:"8px",backgroundColor:h?"#dc2626":"#eab308",color:h?"#fff":"#000",padding:"8px 12px",borderRadius:a?"0 0 8px 8px":"8px",boxShadow:i?"0 12px 24px -4px rgba(0,0,0,0.18), 0 6px 10px -4px rgba(0,0,0,0.12)":"0 8px 16px -4px rgba(0,0,0,0.12), 0 4px 6px -4px rgba(0,0,0,0.08)",fontSize:"14px",fontWeight:500,cursor:"pointer",userSelect:"none",transition:"box-shadow 0.15s ease, border-radius 0.1s ease"},children:[u.jsx("span",{ref:c,style:{display:"inline-flex",animation:i&&!a||d?"stackable-icon-wiggle 0.55s cubic-bezier(0.36, 0.07, 0.19, 0.97) both":"none"},children:u.jsx(db,{className:"w-6 h-6"})}),u.jsx("span",{children:fb(r)}),u.jsxs("span",{style:{fontSize:"12px",opacity:.75},children:["(",r.length," extension",r.length>1?"s":"",")"]}),u.jsx("button",{onClick:g,style:{marginLeft:"4px",backgroundColor:"rgba(0, 0, 0, 0.15)",border:"none",borderRadius:"4px",cursor:"pointer",padding:"2px 8px",fontSize:"12px",fontWeight:500,color:"inherit",fontFamily:"inherit",transition:"background-color 0.1s ease"},onMouseOver:v=>{v.currentTarget.style.backgroundColor="rgba(0, 0, 0, 0.25)"},onMouseOut:v=>{v.currentTarget.style.backgroundColor="rgba(0, 0, 0, 0.15)"},children:"Clear"})]})]})},gb=800,Xt=(e,t)=>e?`${e.replace(/\/$/,"")}${t}`:t,mb=async(e,t,n,r,o)=>{const a=new Map,s=new Map;return await Promise.all(e.filter(i=>{var l;return i.manifest.permissions.includes("data:fetch")||(((l=i.manifest.settingsSchema)==null?void 0:l.length)??0)>0}).map(async i=>{const l=o.find(g=>g.extensionId===i.id),d=l==null?void 0:l.token,f=l==null?void 0:l.mode,c=Xt(t,"/proxy-token"),h=await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({appId:n,instanceId:r,extensionId:i.id,...f&&{mode:f},...d&&{devSessionToken:d}})});if(h.ok){const{token:g,encryptionKey:v,settings:m}=await h.json();a.set(i.id,{token:g,encryptionKey:v,settings:m})}else{let g=`Proxy token failed (${h.status})`;f&&!d?g="Session token missing — re-run CLI":f&&(g="Session expired or invalid — re-run CLI"),s.set(i.id,g),console.warn(`[embeddables] Failed to obtain proxy token for extension ${i.id} (${h.status}) — ${g}`)}})),{tokens:a,errors:s}},vb=e=>typeof e=="object"&&e!==null&&e.encrypted===!0&&Array.isArray(e.data),bb=({instanceId:e,queryApiBase:t,apiBase:n,appId:r,children:o,customerId:a,customerEmail:s,customerName:i})=>{const[l,d]=C.useState([]),[f,c]=C.useState([]),[h,g]=C.useState(new Map),[v,m]=C.useState(new Map),[b,w]=C.useState(!1),[y,x]=C.useState({authenticated:!1,user:null}),[k,P]=C.useState(void 0);C.useEffect(()=>{window.stackable||(window.stackable={emit:(L,T={})=>{const[F,...H]=L.split(":"),B=H.join(":");window.dispatchEvent(new CustomEvent(`stackable:${F}`,{detail:{eventName:B,data:T}}))}})},[]);const E=C.useRef(null),N=C.useRef(new Set),S=C.useMemo(()=>l.filter(L=>L.manifest.permissions.includes("extend:identity")).map(L=>L.id),[l]);C.useEffect(()=>{(async()=>{const T=e;try{if(!T){console.warn("[ExtensionSetup] No instanceId provided; loading no extensions"),d([]),w(!0);return}if(!n||!r){console.warn("[ExtensionSetup] apiBase and appId are required to load extensions"),d([]),w(!0);return}const F=await fetch(Xt(n,`/instances/${r}/${T}`));if(!F.ok){console.warn(`[ExtensionSetup] Instance not found or failed to load: ${T}`),d([]),w(!0);return}const H=await F.json(),B=Go(typeof window<"u"?window.location.search:""),V=await Dd(H,B),{tokens:U,errors:X}=await mb(V,n,r,T,B);d(V),c(B),g(new Map(U)),m(X)}catch(F){console.error("Failed to load extensions:",F)}finally{w(!0)}})()},[e,r,n]),C.useEffect(()=>{if(!n||!r||l.length===0)return;const T=setInterval(async()=>{const F=[];await Promise.all(l.filter(H=>{var B;return H.manifest.permissions.includes("data:fetch")||(((B=H.manifest.settingsSchema)==null?void 0:B.length)??0)>0}).map(async H=>{const B=f.find(j=>j.extensionId===H.id),V=B==null?void 0:B.token,U=B==null?void 0:B.mode,X=Xt(n,"/proxy-token"),R=await fetch(X,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({appId:r,instanceId:e,extensionId:H.id,...U&&{mode:U},...V&&{devSessionToken:V}})});if(R.ok){const{token:j,encryptionKey:Z,settings:ee}=await R.json();F.push([H.id,{token:j,encryptionKey:Z,settings:ee}])}else console.warn(`[embeddables] Proxy token refresh failed for extension ${H.id} (${R.status}) — using stale token`)})),F.length>0&&g(H=>{const B=new Map(H);for(const[V,U]of F)B.set(V,U);return B})},3300*1e3);return()=>clearInterval(T)},[l,f,n,r,e]),C.useEffect(()=>{if(h.size===0)return;const L=T=>{const F=T.data;if((F==null?void 0:F.type)!=="extension-ready")return;const H=F.extensionId,B=l.find(X=>X.id===H);if(!(B!=null&&B.bundleUrl))return;const V=f.find(X=>X.extensionId===H);if(Ld(B.bundleUrl)&&(V==null?void 0:V.mode)!=="staging")return;const U=h.get(H);U&&Me(H,{type:"extension-encryption-key",encryptionKey:U.encryptionKey})};return window.addEventListener("message",L),()=>window.removeEventListener("message",L)},[l,f,h]);const A=C.useCallback((L,T)=>{const F=bt();for(const[H,B]of F){if(!B.manifest.permissions.includes("events:identity"))continue;const V=B.manifest.events??[];!V.includes("identity")&&!V.includes(`identity:${L}`)||Me(H,{type:"extension-event",eventType:"identity",payload:{eventName:L,data:{state:T,timestamp:Xn(new Date().toISOString())}}})}},[]),z=C.useCallback(L=>{const T=bt();for(const[F,H]of T){if(!H.manifest.permissions.includes("events:messaging"))continue;const B=H.manifest.events??[];!B.includes("messaging")&&!B.includes("messaging:postback")&&!B.includes(`messaging:postback:${L.data.actionName}`)||Me(F,{type:"extension-event",eventType:"messaging",payload:L})}},[]),_=C.useCallback(L=>{const T=bt();for(const[F,H]of T){if(!H.manifest.permissions.includes("events:activity"))continue;const B=H.manifest.events??[];!B.includes("activity")&&!B.includes(`activity:${L.eventName}`)||Me(F,{type:"extension-event",eventType:"activity",payload:L})}},[]),M=C.useCallback(async L=>{const T=bt(),F=[];for(const[B,V]of T){if(!V.manifest.permissions.includes("extend:identity"))continue;const U=new Promise(X=>{const R=`enrich_${B}_${Date.now()}`,j=Z=>{const ee=Z.data;(ee==null?void 0:ee.type)!=="extend-identity-response"||ee.id!==R||(window.removeEventListener("message",j),ee.additionalClaims?X(ee.additionalClaims):X({}))};window.addEventListener("message",j),setTimeout(()=>{window.removeEventListener("message",j),X({})},5e3),Me(B,{type:"extend-identity-request",id:R,claims:L})});F.push(U)}if(F.length===0)return{};const H=await Promise.all(F);return Object.assign({},...H)},[]),O=C.useCallback(async L=>{if(!n||!r||!e)return console.warn("[embeddables] signIdentity skipped — missing:",{apiBase:!!n,appId:!!r,instanceId:!!e}),null;const T=Xt(n,`/instances/${r}/${e}/identity`);console.log("[embeddables] Calling identity sign:",{url:T,claims:Object.keys(L)});try{const F=await fetch(T,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(L)});if(!F.ok)return console.warn(`[embeddables] Identity sign failed (${F.status})`),null;const{token:H}=await F.json();return H}catch(F){return console.warn("[embeddables] Identity sign request failed:",F),null}},[n,r,e]),I=C.useCallback(L=>{const T=window.zE;T&&T("messenger","loginUser",async F=>{F(L)})},[]),W=C.useCallback(()=>{const L=window.zE;L&&L("messenger","logoutUser")},[]),D=C.useCallback(L=>{console.log("[embeddables] Running sign lifecycle for user:",L.id);const{email:T,name:F}=L,H={external_id:String(L.id)};(async()=>{const B=await M({...H,email:T,name:F});console.log("[embeddables] Enriched claims:",B);const V=await O({...H,...B,email:T,name:F});console.log("[embeddables] Sign result:",{hasToken:!!V}),V&&I(V)})()},[M,O,I]),$=C.useCallback(L=>{if(S.length>0&&N.current.size<S.length){console.log(`[embeddables] Deferring sign lifecycle — waiting for extend:identity extensions: ${N.current.size}/${S.length} ready`),E.current=L;return}console.log("[embeddables] No extend:identity extensions (or all ready) — signing immediately"),D(L)},[S,D]);C.useEffect(()=>{if(!b){console.log("[embeddables] Identity effect skipped — extensions not loaded yet");return}if(console.log("[embeddables] Identity effect running",{initialized:b,customerId:!!a,extendExtensions:S.length}),a){console.log("[embeddables] Identity from props:",{customerId:a,customerEmail:s,customerName:i});const L={authenticated:!0,user:{id:String(a),email:s,name:i,provider:"shopify"}};x(T=>{var F,H;return T.authenticated&&((F=T.user)==null?void 0:F.id)===((H=L.user)==null?void 0:H.id)?T:(console.log("[embeddables] Identity state changed (props), starting sign lifecycle"),$(L.user),A("login",L),L)})}else{if(a===void 0)return;x(L=>L.authenticated?(console.log("[embeddables] Customer props cleared, logging out"),W(),A("logout",{authenticated:!1,user:null}),{authenticated:!1,user:null}):L)}},[b,a,s,i,S,$,A,W]),C.useEffect(()=>{if(!b||a!==void 0)return;const L=()=>{const F=document.getElementById("stackable-identity");if(F)try{const H=JSON.parse(F.textContent??"{}"),B={authenticated:!0,user:{id:String(H.customerId??""),email:H.customerEmail,name:H.customerName,provider:"shopify"}};x(V=>{var U,X;return V.authenticated&&((U=V.user)==null?void 0:U.id)===((X=B.user)==null?void 0:X.id)?V:(console.log("[embeddables] Identity state changed (DOM), starting sign lifecycle"),$(B.user),A("login",B),B)})}catch{console.warn("[embeddables] Failed to parse #stackable-identity JSON")}else x(H=>H.authenticated?(W(),A("logout",{authenticated:!1,user:null}),{authenticated:!1,user:null}):H)};L();const T=new MutationObserver(L);return T.observe(document.head,{childList:!0,subtree:!0}),T.observe(document.body,{childList:!0,subtree:!0}),()=>T.disconnect()},[b,a,$,A,W]),C.useEffect(()=>{if(!y.authenticated)return;const L=T=>{const F=T.data;if((F==null?void 0:F.type)!=="extension-ready")return;const H=F.extensionId,B=l.find(U=>U.id===H);if(!(B!=null&&B.manifest.permissions.includes("events:identity")))return;const V=B.manifest.events??[];!V.includes("identity")&&!V.includes("identity:login")||Me(H,{type:"extension-event",eventType:"identity",payload:{eventName:"login",data:{state:y,timestamp:Xn(new Date().toISOString())}}})};return window.addEventListener("message",L),()=>window.removeEventListener("message",L)},[y,l]),C.useEffect(()=>{if(S.length===0)return;const L=F=>{const H=F.data;if((H==null?void 0:H.type)!=="extension-ready")return;const B=H.extensionId;if(S.includes(B)&&(N.current.add(B),console.log(`[embeddables] extend:identity extension ready: ${B} (${N.current.size}/${S.length})`),N.current.size>=S.length&&E.current)){console.log("[embeddables] All extend:identity extensions ready, running deferred sign lifecycle");const V=E.current;E.current=null,D(V)}};window.addEventListener("message",L);const T=setTimeout(()=>{if(E.current){console.warn(`[embeddables] extend:identity timeout (5s) — signing with ${N.current.size}/${S.length} extensions ready`);const F=E.current;E.current=null,D(F)}},5e3);return()=>{window.removeEventListener("message",L),clearTimeout(T)}},[S,D]),C.useEffect(()=>{const L=T=>{const{detail:F}=T;F!=null&&F.eventName&&(F.eventName==="postback"?z({eventName:"postback",data:{actionName:F.data.actionName,conversationId:F.data.conversationId??"",timestamp:Xn(new Date().toISOString())}}):F.eventName==="context"&&P(H=>({...H,...F.data})))};return window.addEventListener("stackable:messaging",L),()=>window.removeEventListener("stackable:messaging",L)},[z]),C.useEffect(()=>{const L=T=>{const{detail:F}=T;F!=null&&F.eventName&&_({eventName:F.eventName,data:F.data??{}})};return window.addEventListener("stackable:activity",L),()=>window.removeEventListener("stackable:activity",L)},[_]),C.useEffect(()=>{var F;if(!b)return;const L={customerId:a??"",customerEmail:s??"",customerName:i??"",messaging:k,identity:y},T=bt();for(const[H,B]of T){if(!B.manifest.permissions.includes("context:read"))continue;const V=(F=h.get(H))==null?void 0:F.settings,U=V?{...L,settings:V}:L;Me(H,{type:"context-push",context:U})}},[b,a,s,i,y,k,h]);const q=C.useMemo(()=>({"data.query":async L=>Lc(L,t),"data.fetch":async(L,T)=>{const F=h.get(L);if(!F)return{status:0,ok:!1,data:{error:"data.fetch: proxy token unavailable — ensure the extension has data:fetch permission and allowedDomains configured"}};const H=vb(T)?T:{url:T.url,method:T.method??"GET",headers:T.headers??{},body:T.body??null},B=Xt(n,"/proxy"),V=await fetch(B,{method:"POST",headers:{"Content-Type":"application/json","X-Extension-Id":L,"X-Application-Id":r??"",Authorization:`Bearer ${F.token}`},body:JSON.stringify(H)}),U=await V.json();return{status:U.status??V.status,ok:U.ok??V.ok,data:U.data}},"actions.toast":async(L,T)=>{const F={...T.description&&{description:T.description},...T.duration&&{duration:T.duration},...T.position&&{position:T.position},...T.dismissible!=null&&{dismissible:T.dismissible},...T.closeButton!=null&&{closeButton:T.closeButton}};if(T.fetch){const H=V=>new Promise(U=>setTimeout(U,V)),B=Promise.all([q["data.fetch"](L,T.fetch),H(gb)]).then(([V])=>V);yt.promise(B,{loading:T.loading??T.message,success:T.success??T.message,error:T.error??"Something went wrong",...F});return}switch(T.type){case"success":{yt.success(T.message,F);break}case"error":{yt.error(T.message,F);break}case"warning":{yt.warning(T.message,F);break}case"info":{yt.info(T.message,F);break}default:yt(T.message,F)}},"actions.invoke":async L=>(window.dispatchEvent(new CustomEvent(`stackable:action:${L.action}`,{detail:L})),{success:!0}),"context.read":async L=>{var T;return{customerId:a??"",customerEmail:s??"",customerName:i??"",identity:y,messaging:k,...((T=h.get(L))==null?void 0:T.settings)&&{settings:h.get(L).settings}}}}),[n,r,t,a,s,i,h,y,k]);return b?u.jsxs(u.Fragment,{children:[u.jsx(ed,{extensions:l,capabilityHandlers:q,components:cb(),children:o}),u.jsx(hb,{extensions:l,tokenErrors:v})]}):null};var wb=(e,t,n,r,o,a,s,i)=>{let l=document.documentElement,d=["light","dark"];function f(g){(Array.isArray(e)?e:[e]).forEach(v=>{let m=v==="class",b=m&&a?o.map(w=>a[w]||w):o;m?(l.classList.remove(...b),l.classList.add(a&&a[g]?a[g]:g)):l.setAttribute(v,g)}),c(g)}function c(g){i&&d.includes(g)&&(l.style.colorScheme=g)}function h(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(r)f(r);else try{let g=localStorage.getItem(t)||n,v=s&&g==="system"?h():g;f(v)}catch{}},yb=p.createContext(void 0),xb={setTheme:e=>{},themes:[]},Cb=()=>{var e;return(e=p.useContext(yb))!=null?e:xb};p.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,enableColorScheme:o,defaultTheme:a,value:s,themes:i,nonce:l,scriptProps:d})=>{let f=JSON.stringify([n,t,a,e,i,s,r,o]).slice(1,-1);return p.createElement("script",{...d,suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(${wb.toString()})(${f})`}})});const kb=({...e})=>{const{theme:t="system"}=Cb();return u.jsx(Md,{theme:t,className:"toaster group",icons:{success:u.jsx(Qo,{className:"size-4"}),info:u.jsx(en,{className:"size-4"}),warning:u.jsx(du,{className:"size-4"}),error:u.jsx(ru,{className:"size-4"}),loading:u.jsx(Qn,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},...e})},Sb={dark:"dark",light:"widget-theme-light"},Eb={dark:"dark",light:"light"},Nb=({children:e,theme:t="inherit"})=>u.jsxs("div",{"data-id":"widget-body",className:Sb[t],style:{position:"relative",transform:"translateZ(0)"},children:[u.jsx("div",{className:"h-[700px] w-[900px] overflow-hidden rounded-md ring ring-zinc-200 dark:ring-zinc-300",children:u.jsx("div",{className:"flex h-full w-full flex-col overflow-hidden rounded-md bg-muted dark:bg-background text-foreground",children:e})}),u.jsx(kb,{position:"bottom-center",theme:Eb[t]??"system",toastOptions:{descriptionClassName:"!text-muted-foreground"}})]}),Tb={airplay:Ud,"message-circle":na,"message-square":tr,headphones:tu,"help-circle":ea,bot:Wd,sparkles:ra,zap:fu},_b=({className:e})=>u.jsx("svg",{className:K(e,"scale-125"),viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:u.jsx("path",{d:"M10,18 L6,22 L6,18 L10,18 Z M17,6 C19.7614237,6 22,8.23857625 22,11 C22,13.7614237 19.7614237,16 17,16 L7,16 C4.23857625,16 2,13.7614237 2,11 C2,8.23857625 4.23857625,6 7,6 Z",transform:"translate(12, 14) scale(-1, 1) translate(-12, -14)"})}),Ab=({className:e})=>u.jsxs("svg",{className:e,viewBox:"0 0 190 190",fill:"currentColor","aria-hidden":"true",children:[u.jsxs("g",{id:"sl-half-right",children:[u.jsx("g",{transform:"translate(-160.365,27.97)",children:u.jsx("path",{d:"M344.73,67.03C344.73,30.01 314.72,0 277.7,0C240.68,0 210.67,30.01 210.67,67.03L255.36,67.03C255.36,54.69 265.36,44.69 277.7,44.69C290.04,44.69 300.05,54.69 300.05,67.03L344.73,67.03Z"})}),u.jsx("g",{transform:"translate(-160.365,27.97)",children:u.jsx("path",{d:"M300.04,67.03C300.04,54.69 290.05,44.69 277.7,44.69C265.35,44.69 255.36,54.69 255.36,67.03L300.04,67.03Z",opacity:"0.3"})})]}),u.jsxs("g",{id:"sl-half-left",children:[u.jsx("g",{transform:"translate(-160.365,27.97)",children:u.jsx("path",{d:"M166,67.03C166,104.05 196.01,134.06 233.03,134.06C270.05,134.06 300.06,104.05 300.06,67.03L255.37,67.03C255.37,79.37 245.37,89.37 233.03,89.37C220.69,89.37 210.69,79.37 210.69,67.03L166,67.03Z"})}),u.jsx("g",{transform:"translate(-160.365,27.97)",children:u.jsx("path",{d:"M210.68,67.03C210.68,79.37 220.68,89.37 233.03,89.37C245.38,89.37 255.37,79.37 255.37,67.03L210.68,67.03Z",opacity:"0.3"})})]})]}),zc=400,Pb=zc*.35,Ib=({icon:e,isOpen:t,onClick:n})=>{const r=Tb[e]??_b,[o,a]=C.useState("idle"),s=C.useRef(t);C.useEffect(()=>{if(s.current===t)return;s.current=t,a("interstitial");const l=setTimeout(()=>a("idle"),Pb);return()=>clearTimeout(l)},[t]);const i=()=>o==="interstitial"?u.jsx(Ab,{}):t?u.jsx(Jd,{}):u.jsx(r,{});return u.jsx("div",{className:"fixed bottom-8 right-8 z-50",children:u.jsx(Yl,{size:"icon",className:K("h-12 w-12 rounded-full cursor-pointer transition-transform duration-300",t?"scale-115":"scale-100 hover:scale-105"),onClick:n,children:u.jsx("span",{className:K("flex items-center justify-center transition-transform",t&&"rotate-180"),style:{transitionDuration:`${zc}ms`},children:i()})})})},Mb=({children:e,icon:t,theme:n})=>{const[r,o]=C.useState(!1),[a,s]=C.useState(!0),[i,l]=C.useState(!1),d=C.useCallback(()=>{o(f=>!f)},[]);return C.useEffect(()=>{r&&!i&&l(!0)},[r,i]),C.useEffect(()=>{const f=()=>o(m=>!m),c=()=>o(!0),h=()=>o(!1),g=()=>s(!0),v=()=>{o(!1),s(!1)};return window.addEventListener("stackable:action:toggle",f),window.addEventListener("stackable:action:open",c),window.addEventListener("stackable:action:close",h),window.addEventListener("stackable:action:show",g),window.addEventListener("stackable:action:hide",v),()=>{window.removeEventListener("stackable:action:open",c),window.removeEventListener("stackable:action:close",h),window.removeEventListener("stackable:action:toggle",f),window.removeEventListener("stackable:action:show",g),window.removeEventListener("stackable:action:hide",v)}},[]),u.jsxs(u.Fragment,{children:[a&&u.jsx(Ib,{isOpen:r,icon:t,onClick:d}),i&&u.jsx("div",{"data-id":"widget-container",className:K("overflow-hidden fixed bottom-24 right-8 z-1000 rounded-md shadow-xl transition-all duration-200 ease-out origin-bottom-right",r?"opacity-100 scale-100 translate-y-0 pointer-events-auto":"opacity-0 scale-95 translate-y-2 pointer-events-none"),children:u.jsx(Nb,{theme:n,children:e})})]})},Lb=({href:e,children:t})=>u.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-zinc-500 opacity-80 transition-colors hover:text-zinc-900 hover:opacity-100",children:t}),Ob=(e,t)=>{const[n,r]=C.useState(null),[o,a]=C.useState(!1),[s,i]=C.useState(null);return C.useEffect(()=>{if(!e){r(null);return}(async()=>{a(!0),i(null);try{const d=await Lc({action:"getCustomer",customerId:e},t);r(d)}catch(d){i(d)}finally{a(!1)}})()},[e,t]),{customer:n,loading:o,error:s}},zb=({customerId:e,customerEmail:t,queryApiBase:n,children:r})=>{var l,d;const{customer:o,loading:a,error:s}=Ob(e,n);if(a)return u.jsx($t,{className:"border-none shadow-none bg-transparent",children:u.jsx(Ht,{className:"flex items-center justify-center p-6",children:u.jsx(Qn,{className:"h-6 w-6 animate-spin text-muted-foreground"})})});if(s||!o){const f=t?t.split("@")[0]:e?`Customer ${e.slice(-4)}`:"Customer",c=f.split(/[\s._-]+/).map(h=>h[0]).join("").slice(0,2).toUpperCase();return u.jsx($t,{className:"border-none px-0 py-0 mb-4 shadow-none bg-transparent",children:u.jsxs(Ht,{className:"p-4 pb-0 pt-2",children:[u.jsxs("div",{className:"flex flex-col items-center",children:[u.jsxs(oo,{className:"h-16 w-16 mb-2 ring-2 ring-background shadow-sm",children:[u.jsx(ao,{src:`https://ui-avatars.com/api/?name=${encodeURIComponent(f)}&background=7c3aed&color=fff&size=128`,alt:f}),u.jsx(so,{className:"text-lg",children:c})]}),u.jsxs("div",{className:"text-center w-full space-y-1",children:[u.jsxs("div",{children:[u.jsx("p",{className:"text-xs text-foreground/70 font-medium tracking-wide",children:"Welcome,"}),u.jsx("h2",{className:"text-lg font-bold text-foreground leading-tight",children:f})]}),t&&u.jsx("div",{className:"pt-2 flex flex-col items-center gap-1",children:u.jsxs("div",{className:"flex items-center justify-center gap-1.5 text-xs font-semibold text-foreground/75",children:[u.jsx(er,{className:"h-3 w-3","aria-hidden":"true"}),u.jsx("span",{className:"truncate max-w-[200px]",children:t})]})}),u.jsx("div",{className:"py-1 rounded-lg flex justify-center gap-1",children:r})]})]}),u.jsx("p",{className:"pt-2 text-center text-xs text-muted-foreground",children:"Using fallback profile (customer API returned no data)"})]})})}const i=`${((l=o.first_name)==null?void 0:l[0])||""}${((d=o.last_name)==null?void 0:d[0])||""}`;return u.jsx($t,{className:"border-none px-0 py-0 mb-4 shadow-none bg-transparent",children:u.jsx(Ht,{className:"p-4 pb-0 pt-2",children:u.jsxs("div",{className:"flex flex-col items-center",children:[u.jsxs(oo,{className:"h-16 w-16 mb-2 ring-2 ring-background shadow-sm",children:[u.jsx(ao,{src:`https://ui-avatars.com/api/?name=${encodeURIComponent(o.name)}&background=7c3aed&color=fff&size=128`,alt:o.name}),u.jsx(so,{className:"text-lg",children:i})]}),u.jsxs("div",{className:"text-center w-full space-y-1",children:[u.jsxs("div",{children:[u.jsx("p",{className:"text-xs text-foreground/70 font-medium tracking-wide",children:"Welcome,"}),u.jsx("h2",{className:"text-lg font-bold text-foreground leading-tight",children:o.name})]}),u.jsx("div",{className:"pt-2 flex flex-col items-center gap-1",children:u.jsxs("div",{className:"flex items-center justify-center gap-1.5 text-xs font-semibold text-foreground/75",children:[u.jsx(er,{className:"h-3 w-3","aria-hidden":"true"}),u.jsx("span",{className:"truncate max-w-[200px]",children:o.email})]})}),u.jsx("div",{className:"py-1 rounded-lg flex justify-center gap-1",children:r})]})]})})})},Dc=(e,t)=>{C.useEffect(()=>{const n=t.current;if(!n)return;let r=document.getElementById(e);r||(r=document.createElement("div"),r.id=e,r.style.cssText="position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;",document.body.appendChild(r));const o=new MutationObserver(()=>{for(;r.firstChild;)n.appendChild(document.adoptNode(r.firstChild))});return o.observe(r,{childList:!0,subtree:!0}),()=>{o.disconnect(),r==null||r.remove()}},[e,t])},Db=({customization:e})=>{const t=C.useRef(null);return Dc("widget_conversations",t),C.useEffect(()=>{!window.zE||!t.current||e&&window.zE("messenger:set","customization",{conversationList:e})},[e]),u.jsx("div",{ref:t,className:"h-full overflow-hidden"})},Bb=({customization:e})=>{const t=C.useRef(null);return Dc("widget_messages",t),C.useEffect(()=>{!window.zE||!t.current||e&&window.zE("messenger:set","customization",{messageLog:e})},[e]),u.jsx("div",{ref:t,className:"h-full overflow-hidden"})},Ot="stackable:action",Mo=e=>{window.dispatchEvent(new CustomEvent("stackable:messaging",{detail:{eventName:"context",data:e}}))},Lo=25,Oo=75,Fb=({header:e,buttons:t,queryApiBase:n,customerId:r="",customerEmail:o="",primaryPercent:a=50})=>{const s=Math.max(Lo,Math.min(Oo,a)),{extensions:i}=Uo(),l=C.useMemo(()=>i.some(_=>_.enabled&&(_.manifest.targets.includes("slot.header")||_.manifest.targets.includes("slot.content"))),[i]),[d,f]=C.useState(!1),[c,h]=C.useState(!1),[g,v]=C.useState("extensions"),[m,b]=C.useState(s),[w,y]=C.useState("loading"),x=C.useRef(null),k=C.useCallback(()=>!window.zE||!document.getElementById("widget_conversations")||!document.getElementById("widget_messages")?!1:(window.zE("messenger","render",{mode:"embedded",messageLog:{targetElement:"#widget_messages"},conversationList:{targetElement:"#widget_conversations"}}),window.zE("messenger:set","customization",{common:{hideHeader:!1},messageLog:{hideHeader:!0},conversationList:{hideHeader:!0,hideNewConversationButton:!0}}),!0),[]);C.useEffect(()=>{var W,D;const _=document.querySelector('script[src*="zdassets.com/ekr/snippet"]'),M=(D=(W=_==null?void 0:_.src)==null?void 0:W.match(/key=([a-f0-9-]+)/))==null?void 0:D[1];if(M&&fetch(`https://ekr.zdassets.com/compose/${M}`).then($=>$.text()).then($=>{var L;const q=(L=$.match(/appId['"]?\s*:\s*['"]([a-f0-9]+)['"]/))==null?void 0:L[1];q&&Mo({appId:q})}).catch(()=>{}),k()){y("ready");return}const O=setInterval(()=>{k()&&(y("ready"),clearInterval(O))},100),I=setTimeout(()=>{clearInterval(O),y($=>$==="ready"?$:(console.warn("Zendesk widget failed to load after 10 seconds"),"error"))},1e4);return()=>{clearInterval(O),clearTimeout(I)}},[k]);const P=C.useCallback(_=>{!window.zE||!_.length||(console.log("[ZendeskMessenger] setConversationTags",_,{zE:!!window.zE}),window.zE("messenger:set","conversationTags",_))},[]),E=C.useCallback(_=>{!window.zE||!_.length||(console.log("[ZendeskMessenger] setConversationFields",_,{zE:!!window.zE}),window.zE("messenger:set","conversationFields",_))},[]),N=C.useCallback(_=>{if(!window.zE)return;const{tags:M=[],fields:O=[],...I}=_??{};P(M),E(O),window.zE("messenger:ui","newConversation",Object.keys(I).length?I:void 0)},[P,E]),S=C.useCallback(_=>{const{detail:M}=_;M!=null&&M.payload&&N(M.payload)},[N]);C.useEffect(()=>(window.addEventListener(`${Ot}:${wt.NEW_CONVERSATION}`,S),()=>{window.removeEventListener(`${Ot}:${wt.NEW_CONVERSATION}`,S)}),[S]),C.useEffect(()=>{const _=O=>{const{detail:I}=O;I!=null&&I.payload&&P(I.payload)},M=O=>{const{detail:I}=O;I!=null&&I.payload&&E(I.payload)};return window.addEventListener(`${Ot}:${wt.SET_CONVERSATION_TAGS}`,_),window.addEventListener(`${Ot}:${wt.SET_CONVERSATION_FIELDS}`,M),()=>{window.removeEventListener(`${Ot}:${wt.SET_CONVERSATION_TAGS}`,_),window.removeEventListener(`${Ot}:${wt.SET_CONVERSATION_FIELDS}`,M)}},[P,E]),C.useEffect(()=>{if(w!=="ready"||!window.zE)return;const _=window.zE("messenger:on","conversationStarted",I=>{var D,$;const W=($=(D=I==null?void 0:I.payload)==null?void 0:D.conversation)==null?void 0:$.id;W&&Mo({conversationId:W})}),M=window.zE("messenger:on","messagesShown",I=>{var D,$;const W=($=(D=I==null?void 0:I.payload)==null?void 0:D.conversation)==null?void 0:$.id;W&&Mo({conversationId:W})}),O=window.zE("messenger:on","postbackButtonClicked",I=>{var D;const W=I==null?void 0:I.payload;W!=null&&W.actionName&&window.dispatchEvent(new CustomEvent("stackable:messaging",{detail:{eventName:"postback",data:{actionName:W.actionName,conversationId:((D=W.conversation)==null?void 0:D.id)??""}}}))});return()=>{typeof _=="function"&&_(),typeof M=="function"&&M(),typeof O=="function"&&O()}},[w]),C.useEffect(()=>{if(!d)return;const _=O=>{if(!x.current)return;const I=x.current.getBoundingClientRect();if((c?I.width:I.height)===0)return;const D=c?(O.clientX-I.left)/I.width*100:(O.clientY-I.top)/I.height*100,$=Math.max(Lo,Math.min(Oo,D));b($)},M=()=>{f(!1),document.body.style.cursor="",document.body.style.userSelect=""};return document.body.style.cursor=c?"col-resize":"row-resize",document.body.style.userSelect="none",window.addEventListener("mousemove",_),window.addEventListener("mouseup",M),window.addEventListener("blur",M),()=>{window.removeEventListener("mousemove",_),window.removeEventListener("mouseup",M),window.removeEventListener("blur",M),document.body.style.cursor="",document.body.style.userSelect=""}},[d,c]),C.useEffect(()=>{if(!x.current)return;const _=x.current,M=()=>{const I=getComputedStyle(_).flexDirection==="row";h(I)};M();const O=new ResizeObserver(M);return O.observe(_),()=>{O.disconnect()}},[]);const A=C.useCallback(_=>{if(_.detail===2){b(s);return}_.preventDefault(),f(!0)},[s]),z={customerId:r,customerEmail:o};return u.jsxs("div",{"data-component":"zendesk-wrapper",className:"flex-1 flex flex-col z-10 overflow-hidden",style:{containerType:"inline-size"},children:[u.jsx("style",{children:'@container (min-width: 42rem) { [data-component="zendesk-wrapper"] > [data-id="panel-layout"] { flex-direction: row; } }'}),u.jsxs("div",{ref:x,"data-id":"panel-layout",className:"relative flex-1 overflow-hidden flex flex-col",children:[l&&u.jsxs("div",{"data-id":"primary-panel",className:"min-h-0 min-w-0 flex-none overflow-hidden flex flex-col",style:{flexBasis:`${m}%`},children:[u.jsxs("div",{className:"flex items-center justify-between px-4 py-3",children:[u.jsx("h2",{className:"font-semibold text-sm text-foreground",children:g==="extensions"?"My Profile":"My Conversations"}),u.jsxs("div",{className:"flex items-center gap-1",children:[e&&u.jsx("div",{className:"flex gap-1",children:e}),u.jsxs("div",{className:"flex rounded-lg bg-muted p-1",children:[w==="ready"&&u.jsx("button",{onClick:()=>N({}),className:"rounded-md border border-transparent p-1.5 text-muted-foreground transition-colors hover:cursor-pointer hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",title:"New Conversation",children:u.jsx(su,{className:"h-4 w-4"})}),t,u.jsx("button",{onClick:()=>v("conversations"),className:K("rounded-md border border-transparent p-1.5 transition-colors hover:cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",g==="conversations"?"border-border bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),title:"Conversations",children:u.jsx(tr,{className:"h-4 w-4"})}),u.jsx("button",{onClick:()=>v("extensions"),className:K("rounded-md border border-transparent p-1.5 transition-colors hover:cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",g==="extensions"?"border-border bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),title:"My Profile",children:u.jsx(oa,{className:"h-4 w-4"})})]})]})]}),u.jsxs("div",{className:"flex-1 overflow-y-auto p-4 relative",children:[u.jsxs("div",{className:K("flex flex-col gap-2",g==="conversations"&&"hidden"),children:[u.jsx(zb,{customerId:r,customerEmail:o,queryApiBase:n,children:u.jsx(Jt,{target:"slot.header",context:z,className:"flex-none"})}),u.jsx(Jt,{target:"slot.content",context:z,className:"flex flex-col gap-2"})]}),u.jsx("div",{className:K("h-full rounded-xl border border-zinc-200 bg-white p-2 shadow-sm dark:border-zinc-300",g==="extensions"&&"hidden"),children:w==="error"?u.jsx("div",{className:"flex h-full items-center justify-center p-6 text-center text-sm text-muted-foreground",children:u.jsx("p",{children:"Error loading conversations."})}):u.jsx(Db,{})})]})]}),u.jsxs("div",{"data-id":"secondary-panel",className:"min-h-0 min-w-0 flex-none flex flex-col bg-white",style:{flexBasis:l?`${100-m}%`:"100%"},children:[u.jsx("div",{className:"flex-1 overflow-hidden",children:w==="error"?u.jsx("div",{className:"flex h-full items-center justify-center p-6 text-center text-sm text-muted-foreground",children:u.jsx("p",{children:"Zendesk Messenger could not be loaded. Check that a valid Snippet Key is configured."})}):u.jsx(Bb,{})}),u.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-1 py-1 mr-4 text-xs text-zinc-500",children:[u.jsx(Jt,{target:"slot.footer",context:z,className:"flex items-center gap-1",fallback:u.jsxs(u.Fragment,{children:[u.jsx("div",{children:"powered by"}),u.jsx(Lb,{href:"https://zendesk.com",children:"Zendesk"})]})}),u.jsx(Jt,{target:"slot.footer-links",context:z,className:"flex items-center gap-1",separator:u.jsx("span",{className:"text-zinc-300",children:"/"}),render:({children:_,index:M})=>u.jsxs(u.Fragment,{children:[M===0&&u.jsx("span",{className:"text-zinc-300",children:"+"}),_]})})]})]}),l&&u.jsxs(u.Fragment,{children:[u.jsx("div",{className:K("group/resize absolute z-20 flex items-center justify-center",c?"top-0 bottom-0 w-3 -ml-2.5 cursor-col-resize":"w-full h-3 -mt-2.5 cursor-row-resize"),style:c?{left:`${m}%`}:{top:`${m}%`},onMouseDown:A,role:"separator","aria-label":"Resize panels","aria-orientation":c?"vertical":"horizontal","aria-valuemin":Lo,"aria-valuemax":Oo,"aria-valuenow":Math.round(m),children:u.jsx("div",{className:K("rounded-full bg-foreground/35 dark:bg-white shadow-[0_0_0_1px_rgba(255,255,255,0.16),0_0_0_1px_rgba(0,0,0,0.22)] transition-all",c?"h-20 w-0.5":"h-0.5 w-20",d?"bg-foreground/70 dark:bg-white opacity-100":"opacity-70 group-hover/resize:bg-foreground/55 dark:group-hover/resize:bg-white group-hover/resize:opacity-100")})}),d&&u.jsx("div",{className:K("absolute inset-0 z-40",c?"cursor-col-resize":"cursor-row-resize"),onMouseUp:()=>f(!1)})]})]})]})},$b="ze-snippet",Bc=e=>`https://static.zdassets.com/ekr/snippet.js?key=${encodeURIComponent(e)}`,Hb=(e,t={})=>{if(typeof window>"u"||typeof document>"u"||!e)return Promise.resolve();const{autorender:n=!1,scriptId:r=$b}=t;window.zEMessenger={autorender:n};const o=document.getElementById(r);if(o){if(o.getAttribute("src")===Bc(e))return Promise.resolve();o.remove()}return new Promise((a,s)=>{const i=document.createElement("script");i.id=r,i.src=Bc(e),i.async=!0,i.onload=()=>a(),i.onerror=()=>s(new Error("Failed to load Zendesk snippet")),document.head.appendChild(i)})},Vb=({queryApiBase:e,apiBase:t,appId:n,theme:r,icon:o,instanceId:a,customerId:s,customerEmail:i,customerName:l,snippetKey:d})=>{const f=r==="dark"||r==="light"?r:"inherit";return C.useEffect(()=>{d&&Hb(d).catch(c=>{console.error("[StackableWidget] Failed to load Zendesk snippet:",c)})},[d]),u.jsx(bb,{instanceId:a,queryApiBase:e,apiBase:t,appId:n,customerId:s,customerEmail:i,customerName:l,children:u.jsx(Mb,{theme:f,icon:o,children:u.jsx(Fb,{queryApiBase:e,customerId:s,customerEmail:i,primaryPercent:40})})})};class Ub extends HTMLElement{constructor(){super();Bo(this,"mountNode");Bo(this,"root");const n=this.attachShadow({mode:"open"}),r=document.createElement("style");r.textContent=Wc,n.appendChild(r),this.mountNode=document.createElement("div"),n.appendChild(this.mountNode)}static get observedAttributes(){return["query-api-base","api-base","app-id","instance-id","theme","icon","customer-id","customer-email","customer-name","snippet-key"]}connectedCallback(){this.root=be.createRoot(this.mountNode),this.renderWidget()}disconnectedCallback(){var n;(n=this.root)==null||n.unmount(),this.root=void 0}attributeChangedCallback(){this.renderWidget()}renderWidget(){if(!this.root)return;const n=this.getAttribute("theme")??"";this.mountNode.classList.toggle("dark",n==="dark"),this.root.render(u.jsx(Vb,{theme:n,icon:this.getAttribute("icon")??void 0,queryApiBase:this.getAttribute("query-api-base")??"",apiBase:this.getAttribute("api-base")??void 0,appId:this.getAttribute("app-id")??"",instanceId:this.getAttribute("instance-id")??"",customerId:this.getAttribute("customer-id")??void 0,customerEmail:this.getAttribute("customer-email")??void 0,customerName:this.getAttribute("customer-name")??void 0,snippetKey:this.getAttribute("snippet-key")??""}))}}customElements.get("stackable-widget")||customElements.define("stackable-widget",Ub)}));
314
+ `,document.head.appendChild(e)},fb=e=>{const t=e.some(r=>r.mode==="staging"),n=e.some(r=>r.mode==="dev");return t&&n?"Dev + Staging":t?"Staging Mode":"Dev Mode"},pb=e=>e.mode==="staging"?"STAGING":"DEV",hb=({className:e="",extensions:t=[],tokenErrors:n=new Map})=>{const[r,o]=C.useState([]),[a,s]=C.useState(!1),[i,l]=C.useState(!1),[d,f]=C.useState(!1),c=C.useRef(null),h=n.size>0;if(C.useEffect(()=>{ub()},[]),C.useEffect(()=>{if(!h)return;const v=()=>{f(!0),setTimeout(()=>f(!1),600)};v();const m=setInterval(v,4e3);return()=>clearInterval(m)},[h]),C.useEffect(()=>{if(typeof window>"u")return;const v=()=>{const b=Go(window.location.search);o(b)};v();const m=()=>v();return window.addEventListener("popstate",m),()=>window.removeEventListener("popstate",m)},[]),r.length===0)return null;const g=v=>{if(v.stopPropagation(),typeof window>"u")return;const m=new URL(window.location.href);m.searchParams.delete("_stackable_dev"),m.searchParams.delete("_stackable_staging"),window.location.href=m.toString()};return u.jsxs("div",{className:e,style:{position:"fixed",bottom:"16px",left:"50%",transform:i||d?"translate(-50%, -2px)":"translate(-50%, 0)",zIndex:2147483647,fontFamily:"system-ui, -apple-system, sans-serif",transition:"transform 0.15s ease",display:"flex",flexDirection:"column",alignItems:"center"},onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:[a&&u.jsx("div",{style:{backgroundColor:"#fff",border:"1px solid #e5e7eb",borderBottom:`1px solid ${h?"#dc2626":"#eab308"}`,borderRadius:"8px 8px 0 0",boxShadow:"0 -4px 16px -4px rgba(0,0,0,0.12), 0 -2px 6px -4px rgba(0,0,0,0.08)",padding:"8px 0",width:"420px",maxWidth:"90vw"},children:r.map((v,m)=>{var b;return u.jsxs("div",{style:{padding:"8px 12px",borderBottom:m<r.length-1?"1px solid #f3f4f6":"none"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[u.jsx("span",{style:{fontSize:"10px",fontWeight:700,color:v.mode==="staging"?"#7c3aed":"#b45309",backgroundColor:v.mode==="staging"?"#ede9fe":"#fef3c7",padding:"1px 5px",borderRadius:"3px",letterSpacing:"0.05em",fontFamily:"ui-monospace, SFMono-Regular, monospace"},children:pb(v)}),u.jsx("span",{style:{fontSize:"12px",fontWeight:600,color:"#111",fontFamily:"ui-monospace, SFMono-Regular, monospace",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:((b=t.find(w=>w.id===v.extensionId))==null?void 0:b.manifest.name)||v.extensionId})]}),u.jsxs("div",{style:{fontSize:"11px",color:"#6b7280",fontFamily:"ui-monospace, SFMono-Regular, monospace",marginTop:"2px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:v.bundleUrl,children:["→ ",v.bundleUrl]}),n.get(v.extensionId)&&u.jsxs("div",{style:{fontSize:"11px",color:"#dc2626",fontFamily:"ui-monospace, SFMono-Regular, monospace",marginTop:"3px"},children:["⚠ ",n.get(v.extensionId)]})]},v.extensionId)})}),u.jsxs("div",{onClick:()=>s(!a),style:{display:"flex",alignItems:"center",gap:"8px",backgroundColor:h?"#dc2626":"#eab308",color:h?"#fff":"#000",padding:"8px 12px",borderRadius:a?"0 0 8px 8px":"8px",boxShadow:i?"0 12px 24px -4px rgba(0,0,0,0.18), 0 6px 10px -4px rgba(0,0,0,0.12)":"0 8px 16px -4px rgba(0,0,0,0.12), 0 4px 6px -4px rgba(0,0,0,0.08)",fontSize:"14px",fontWeight:500,cursor:"pointer",userSelect:"none",transition:"box-shadow 0.15s ease, border-radius 0.1s ease"},children:[u.jsx("span",{ref:c,style:{display:"inline-flex",animation:i&&!a||d?"stackable-icon-wiggle 0.55s cubic-bezier(0.36, 0.07, 0.19, 0.97) both":"none"},children:u.jsx(db,{className:"w-6 h-6"})}),u.jsx("span",{children:fb(r)}),u.jsxs("span",{style:{fontSize:"12px",opacity:.75},children:["(",r.length," extension",r.length>1?"s":"",")"]}),u.jsx("button",{onClick:g,style:{marginLeft:"4px",backgroundColor:"rgba(0, 0, 0, 0.15)",border:"none",borderRadius:"4px",cursor:"pointer",padding:"2px 8px",fontSize:"12px",fontWeight:500,color:"inherit",fontFamily:"inherit",transition:"background-color 0.1s ease"},onMouseOver:v=>{v.currentTarget.style.backgroundColor="rgba(0, 0, 0, 0.25)"},onMouseOut:v=>{v.currentTarget.style.backgroundColor="rgba(0, 0, 0, 0.15)"},children:"Clear"})]})]})},gb=800,Xt=(e,t)=>e?`${e.replace(/\/$/,"")}${t}`:t,mb=async(e,t,n,r,o)=>{const a=new Map,s=new Map;return await Promise.all(e.filter(i=>{var l;return i.manifest.permissions.includes("data:fetch")||(((l=i.manifest.settingsSchema)==null?void 0:l.length)??0)>0}).map(async i=>{const l=o.find(g=>g.extensionId===i.id),d=l==null?void 0:l.token,f=l==null?void 0:l.mode,c=Xt(t,"/proxy-token"),h=await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({appId:n,instanceId:r,extensionId:i.id,...f&&{mode:f},...d&&{devSessionToken:d}})});if(h.ok){const{token:g,encryptionKey:v,settings:m}=await h.json();a.set(i.id,{token:g,encryptionKey:v,settings:m})}else{let g=`Proxy token failed (${h.status})`;f&&!d?g="Session token missing — re-run CLI":f&&(g="Session expired or invalid — re-run CLI"),s.set(i.id,g),console.warn(`[embeddables] Failed to obtain proxy token for extension ${i.id} (${h.status}) — ${g}`)}})),{tokens:a,errors:s}},vb=e=>typeof e=="object"&&e!==null&&e.encrypted===!0&&Array.isArray(e.data),bb=({instanceId:e,queryApiBase:t,apiBase:n,appId:r,children:o,customerId:a,customerEmail:s,customerName:i})=>{const[l,d]=C.useState([]),[f,c]=C.useState([]),[h,g]=C.useState(new Map),[v,m]=C.useState(new Map),[b,w]=C.useState(!1),[y,x]=C.useState({authenticated:!1,user:null}),[k,P]=C.useState(void 0);C.useEffect(()=>{window.stackable||(window.stackable={emit:(L,T={})=>{const[F,...H]=L.split(":"),B=H.join(":");window.dispatchEvent(new CustomEvent(`stackable:${F}`,{detail:{eventName:B,data:T}}))}})},[]);const E=C.useRef(null),N=C.useRef(new Set),S=C.useMemo(()=>l.filter(L=>L.manifest.permissions.includes("extend:identity")).map(L=>L.id),[l]);C.useEffect(()=>{(async()=>{const T=e;try{if(!T){console.warn("[ExtensionSetup] No instanceId provided; loading no extensions"),d([]),w(!0);return}if(!n||!r){console.warn("[ExtensionSetup] apiBase and appId are required to load extensions"),d([]),w(!0);return}const F=await fetch(Xt(n,`/instances/${r}/${T}`));if(!F.ok){console.warn(`[ExtensionSetup] Instance not found or failed to load: ${T}`),d([]),w(!0);return}const H=await F.json(),B=Go(typeof window<"u"?window.location.search:""),V=await Dd(H,B),{tokens:U,errors:X}=await mb(V,n,r,T,B);d(V),c(B),g(new Map(U)),m(X)}catch(F){console.error("Failed to load extensions:",F)}finally{w(!0)}})()},[e,r,n]),C.useEffect(()=>{if(!n||!r||l.length===0)return;const T=setInterval(async()=>{const F=[];await Promise.all(l.filter(H=>{var B;return H.manifest.permissions.includes("data:fetch")||(((B=H.manifest.settingsSchema)==null?void 0:B.length)??0)>0}).map(async H=>{const B=f.find(j=>j.extensionId===H.id),V=B==null?void 0:B.token,U=B==null?void 0:B.mode,X=Xt(n,"/proxy-token"),R=await fetch(X,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({appId:r,instanceId:e,extensionId:H.id,...U&&{mode:U},...V&&{devSessionToken:V}})});if(R.ok){const{token:j,encryptionKey:Z,settings:ee}=await R.json();F.push([H.id,{token:j,encryptionKey:Z,settings:ee}])}else console.warn(`[embeddables] Proxy token refresh failed for extension ${H.id} (${R.status}) — using stale token`)})),F.length>0&&g(H=>{const B=new Map(H);for(const[V,U]of F)B.set(V,U);return B})},3300*1e3);return()=>clearInterval(T)},[l,f,n,r,e]),C.useEffect(()=>{if(h.size===0)return;const L=T=>{const F=T.data;if((F==null?void 0:F.type)!=="extension-ready")return;const H=F.extensionId,B=l.find(X=>X.id===H);if(!(B!=null&&B.bundleUrl))return;const V=f.find(X=>X.extensionId===H);if(Ld(B.bundleUrl)&&(V==null?void 0:V.mode)!=="staging")return;const U=h.get(H);U&&Me(H,{type:"extension-encryption-key",encryptionKey:U.encryptionKey})};return window.addEventListener("message",L),()=>window.removeEventListener("message",L)},[l,f,h]);const A=C.useCallback((L,T)=>{const F=bt();for(const[H,B]of F){if(!B.manifest.permissions.includes("events:identity"))continue;const V=B.manifest.events??[];!V.includes("identity")&&!V.includes(`identity:${L}`)||Me(H,{type:"extension-event",eventType:"identity",payload:{eventName:L,data:{state:T,timestamp:Xn(new Date().toISOString())}}})}},[]),z=C.useCallback(L=>{const T=bt();for(const[F,H]of T){if(!H.manifest.permissions.includes("events:messaging"))continue;const B=H.manifest.events??[];!B.includes("messaging")&&!B.includes("messaging:postback")&&!B.includes(`messaging:postback:${L.data.actionName}`)||Me(F,{type:"extension-event",eventType:"messaging",payload:L})}},[]),_=C.useCallback(L=>{const T=bt();for(const[F,H]of T){if(!H.manifest.permissions.includes("events:activity"))continue;const B=H.manifest.events??[];!B.includes("activity")&&!B.includes(`activity:${L.eventName}`)||Me(F,{type:"extension-event",eventType:"activity",payload:L})}},[]),M=C.useCallback(async L=>{const T=bt(),F=[];for(const[B,V]of T){if(!V.manifest.permissions.includes("extend:identity"))continue;const U=new Promise(X=>{const R=`enrich_${B}_${Date.now()}`,j=Z=>{const ee=Z.data;(ee==null?void 0:ee.type)!=="extend-identity-response"||ee.id!==R||(window.removeEventListener("message",j),ee.additionalClaims?X(ee.additionalClaims):X({}))};window.addEventListener("message",j),setTimeout(()=>{window.removeEventListener("message",j),X({})},5e3),Me(B,{type:"extend-identity-request",id:R,claims:L})});F.push(U)}if(F.length===0)return{};const H=await Promise.all(F);return Object.assign({},...H)},[]),O=C.useCallback(async L=>{if(!n||!r||!e)return console.warn("[embeddables] signIdentity skipped — missing:",{apiBase:!!n,appId:!!r,instanceId:!!e}),null;const T=Xt(n,`/instances/${r}/${e}/identity`);console.log("[embeddables] Calling identity sign:",{url:T,claims:Object.keys(L)});try{const F=await fetch(T,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(L)});if(!F.ok)return console.warn(`[embeddables] Identity sign failed (${F.status})`),null;const{token:H}=await F.json();return H}catch(F){return console.warn("[embeddables] Identity sign request failed:",F),null}},[n,r,e]),I=C.useCallback(L=>{const T=window.zE;T&&T("messenger","loginUser",async F=>{F(L)})},[]),W=C.useCallback(()=>{const L=window.zE;L&&L("messenger","logoutUser")},[]),D=C.useCallback(L=>{console.log("[embeddables] Running sign lifecycle for user:",L.id);const{email:T,name:F}=L,H={external_id:String(L.id)};(async()=>{const B=await M({...H,email:T,name:F});console.log("[embeddables] Enriched claims:",B);const V=await O({...H,...B,email:T,name:F});console.log("[embeddables] Sign result:",{hasToken:!!V}),V&&I(V)})()},[M,O,I]),$=C.useCallback(L=>{if(S.length>0&&N.current.size<S.length){console.log(`[embeddables] Deferring sign lifecycle — waiting for extend:identity extensions: ${N.current.size}/${S.length} ready`),E.current=L;return}console.log("[embeddables] No extend:identity extensions (or all ready) — signing immediately"),D(L)},[S,D]);C.useEffect(()=>{if(!b){console.log("[embeddables] Identity effect skipped — extensions not loaded yet");return}if(a){console.log("[embeddables] Identity from props success");const L={authenticated:!0,user:{id:String(a),email:s,name:i,provider:"shopify"}};x(T=>{var F,H;return T.authenticated&&((F=T.user)==null?void 0:F.id)===((H=L.user)==null?void 0:H.id)?T:(console.log("[embeddables] Identity state changed (props), starting sign lifecycle"),$(L.user),A("login",L),L)})}else{if(a===void 0)return;x(L=>L.authenticated?(console.log("[embeddables] Customer props cleared, logging out"),W(),A("logout",{authenticated:!1,user:null}),{authenticated:!1,user:null}):L)}},[b,a,s,i,S,$,A,W]),C.useEffect(()=>{if(!b||a!==void 0)return;const L=()=>{const F=document.getElementById("stackable-identity");if(F)try{const H=JSON.parse(F.textContent??"{}"),B={authenticated:!0,user:{id:String(H.customerId??""),email:H.customerEmail,name:H.customerName,provider:"shopify"}};x(V=>{var U,X;return V.authenticated&&((U=V.user)==null?void 0:U.id)===((X=B.user)==null?void 0:X.id)?V:(console.log("[embeddables] Identity state changed (DOM), starting sign lifecycle"),$(B.user),A("login",B),B)})}catch{console.warn("[embeddables] Failed to parse #stackable-identity JSON")}else x(H=>H.authenticated?(W(),A("logout",{authenticated:!1,user:null}),{authenticated:!1,user:null}):H)};L();const T=new MutationObserver(L);return T.observe(document.head,{childList:!0,subtree:!0}),T.observe(document.body,{childList:!0,subtree:!0}),()=>T.disconnect()},[b,a,$,A,W]),C.useEffect(()=>{if(!y.authenticated)return;const L=T=>{const F=T.data;if((F==null?void 0:F.type)!=="extension-ready")return;const H=F.extensionId,B=l.find(U=>U.id===H);if(!(B!=null&&B.manifest.permissions.includes("events:identity")))return;const V=B.manifest.events??[];!V.includes("identity")&&!V.includes("identity:login")||Me(H,{type:"extension-event",eventType:"identity",payload:{eventName:"login",data:{state:y,timestamp:Xn(new Date().toISOString())}}})};return window.addEventListener("message",L),()=>window.removeEventListener("message",L)},[y,l]),C.useEffect(()=>{if(S.length===0)return;const L=F=>{const H=F.data;if((H==null?void 0:H.type)!=="extension-ready")return;const B=H.extensionId;if(S.includes(B)&&(N.current.add(B),console.log(`[embeddables] extend:identity extension ready: ${B} (${N.current.size}/${S.length})`),N.current.size>=S.length&&E.current)){console.log("[embeddables] All extend:identity extensions ready, running deferred sign lifecycle");const V=E.current;E.current=null,D(V)}};window.addEventListener("message",L);const T=setTimeout(()=>{if(E.current){console.warn(`[embeddables] extend:identity timeout (5s) — signing with ${N.current.size}/${S.length} extensions ready`);const F=E.current;E.current=null,D(F)}},5e3);return()=>{window.removeEventListener("message",L),clearTimeout(T)}},[S,D]),C.useEffect(()=>{const L=T=>{const{detail:F}=T;F!=null&&F.eventName&&(F.eventName==="postback"?z({eventName:"postback",data:{actionName:F.data.actionName,conversationId:F.data.conversationId??"",timestamp:Xn(new Date().toISOString())}}):F.eventName==="context"&&P(H=>({...H,...F.data})))};return window.addEventListener("stackable:messaging",L),()=>window.removeEventListener("stackable:messaging",L)},[z]),C.useEffect(()=>{const L=T=>{const{detail:F}=T;F!=null&&F.eventName&&_({eventName:F.eventName,data:F.data??{}})};return window.addEventListener("stackable:activity",L),()=>window.removeEventListener("stackable:activity",L)},[_]),C.useEffect(()=>{var F;if(!b)return;const L={customerId:a??"",customerEmail:s??"",customerName:i??"",messaging:k,identity:y},T=bt();for(const[H,B]of T){if(!B.manifest.permissions.includes("context:read"))continue;const V=(F=h.get(H))==null?void 0:F.settings,U=V?{...L,settings:V}:L;Me(H,{type:"context-push",context:U})}},[b,a,s,i,y,k,h]);const q=C.useMemo(()=>({"data.query":async L=>Lc(L,t),"data.fetch":async(L,T)=>{const F=h.get(L);if(!F)return{status:0,ok:!1,data:{error:"data.fetch: proxy token unavailable — ensure the extension has data:fetch permission and allowedDomains configured"}};const H=vb(T)?T:{url:T.url,method:T.method??"GET",headers:T.headers??{},body:T.body??null},B=Xt(n,"/proxy"),V=await fetch(B,{method:"POST",headers:{"Content-Type":"application/json","X-Extension-Id":L,"X-Application-Id":r??"",Authorization:`Bearer ${F.token}`},body:JSON.stringify(H)}),U=await V.json();return{status:U.status??V.status,ok:U.ok??V.ok,data:U.data}},"actions.toast":async(L,T)=>{const F={...T.description&&{description:T.description},...T.duration&&{duration:T.duration},...T.position&&{position:T.position},...T.dismissible!=null&&{dismissible:T.dismissible},...T.closeButton!=null&&{closeButton:T.closeButton}};if(T.fetch){const H=V=>new Promise(U=>setTimeout(U,V)),B=Promise.all([q["data.fetch"](L,T.fetch),H(gb)]).then(([V])=>V);yt.promise(B,{loading:T.loading??T.message,success:T.success??T.message,error:T.error??"Something went wrong",...F});return}switch(T.type){case"success":{yt.success(T.message,F);break}case"error":{yt.error(T.message,F);break}case"warning":{yt.warning(T.message,F);break}case"info":{yt.info(T.message,F);break}default:yt(T.message,F)}},"actions.invoke":async L=>(window.dispatchEvent(new CustomEvent(`stackable:action:${L.action}`,{detail:L})),{success:!0}),"context.read":async L=>{var T;return{customerId:a??"",customerEmail:s??"",customerName:i??"",identity:y,messaging:k,...((T=h.get(L))==null?void 0:T.settings)&&{settings:h.get(L).settings}}}}),[n,r,t,a,s,i,h,y,k]);return b?u.jsxs(u.Fragment,{children:[u.jsx(ed,{extensions:l,capabilityHandlers:q,components:cb(),children:o}),u.jsx(hb,{extensions:l,tokenErrors:v})]}):null};var wb=(e,t,n,r,o,a,s,i)=>{let l=document.documentElement,d=["light","dark"];function f(g){(Array.isArray(e)?e:[e]).forEach(v=>{let m=v==="class",b=m&&a?o.map(w=>a[w]||w):o;m?(l.classList.remove(...b),l.classList.add(a&&a[g]?a[g]:g)):l.setAttribute(v,g)}),c(g)}function c(g){i&&d.includes(g)&&(l.style.colorScheme=g)}function h(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(r)f(r);else try{let g=localStorage.getItem(t)||n,v=s&&g==="system"?h():g;f(v)}catch{}},yb=p.createContext(void 0),xb={setTheme:e=>{},themes:[]},Cb=()=>{var e;return(e=p.useContext(yb))!=null?e:xb};p.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,enableColorScheme:o,defaultTheme:a,value:s,themes:i,nonce:l,scriptProps:d})=>{let f=JSON.stringify([n,t,a,e,i,s,r,o]).slice(1,-1);return p.createElement("script",{...d,suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(${wb.toString()})(${f})`}})});const kb=({...e})=>{const{theme:t="system"}=Cb();return u.jsx(Md,{theme:t,className:"toaster group",icons:{success:u.jsx(Qo,{className:"size-4"}),info:u.jsx(en,{className:"size-4"}),warning:u.jsx(du,{className:"size-4"}),error:u.jsx(ru,{className:"size-4"}),loading:u.jsx(Qn,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},...e})},Sb={dark:"dark",light:"widget-theme-light"},Eb={dark:"dark",light:"light"},Nb=({children:e,theme:t="inherit"})=>u.jsxs("div",{"data-id":"widget-body",className:Sb[t],style:{position:"relative",transform:"translateZ(0)"},children:[u.jsx("div",{className:"h-[700px] w-fit max-w-dvw min-h-96 max-h-[calc(100dvh-7rem)] overflow-hidden rounded-md ring ring-zinc-200 dark:ring-zinc-300 transition-[width] duration-200 ease-out",children:u.jsx("div",{className:"flex h-full w-full flex-col overflow-hidden rounded-md bg-muted dark:bg-background text-foreground",children:e})}),u.jsx(kb,{position:"bottom-center",theme:Eb[t]??"system",toastOptions:{descriptionClassName:"!text-muted-foreground"}})]}),Tb={airplay:Ud,"message-circle":na,"message-square":tr,headphones:tu,"help-circle":ea,bot:Wd,sparkles:ra,zap:fu},_b=({className:e})=>u.jsx("svg",{className:K(e,"scale-125"),viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:u.jsx("path",{d:"M10,18 L6,22 L6,18 L10,18 Z M17,6 C19.7614237,6 22,8.23857625 22,11 C22,13.7614237 19.7614237,16 17,16 L7,16 C4.23857625,16 2,13.7614237 2,11 C2,8.23857625 4.23857625,6 7,6 Z",transform:"translate(12, 14) scale(-1, 1) translate(-12, -14)"})}),Ab=({className:e})=>u.jsxs("svg",{className:e,viewBox:"0 0 190 190",fill:"currentColor","aria-hidden":"true",children:[u.jsxs("g",{id:"sl-half-right",children:[u.jsx("g",{transform:"translate(-160.365,27.97)",children:u.jsx("path",{d:"M344.73,67.03C344.73,30.01 314.72,0 277.7,0C240.68,0 210.67,30.01 210.67,67.03L255.36,67.03C255.36,54.69 265.36,44.69 277.7,44.69C290.04,44.69 300.05,54.69 300.05,67.03L344.73,67.03Z"})}),u.jsx("g",{transform:"translate(-160.365,27.97)",children:u.jsx("path",{d:"M300.04,67.03C300.04,54.69 290.05,44.69 277.7,44.69C265.35,44.69 255.36,54.69 255.36,67.03L300.04,67.03Z",opacity:"0.3"})})]}),u.jsxs("g",{id:"sl-half-left",children:[u.jsx("g",{transform:"translate(-160.365,27.97)",children:u.jsx("path",{d:"M166,67.03C166,104.05 196.01,134.06 233.03,134.06C270.05,134.06 300.06,104.05 300.06,67.03L255.37,67.03C255.37,79.37 245.37,89.37 233.03,89.37C220.69,89.37 210.69,79.37 210.69,67.03L166,67.03Z"})}),u.jsx("g",{transform:"translate(-160.365,27.97)",children:u.jsx("path",{d:"M210.68,67.03C210.68,79.37 220.68,89.37 233.03,89.37C245.38,89.37 255.37,79.37 255.37,67.03L210.68,67.03Z",opacity:"0.3"})})]})]}),zc=400,Pb=zc*.35,Ib=({icon:e,isOpen:t,onClick:n})=>{const r=Tb[e]??_b,[o,a]=C.useState("idle"),s=C.useRef(t);C.useEffect(()=>{if(s.current===t)return;s.current=t,a("interstitial");const l=setTimeout(()=>a("idle"),Pb);return()=>clearTimeout(l)},[t]);const i=()=>o==="interstitial"?u.jsx(Ab,{}):t?u.jsx(Jd,{}):u.jsx(r,{});return u.jsx("div",{className:"fixed bottom-8 right-8 z-50",children:u.jsx(Yl,{size:"icon",className:K("h-12 w-12 rounded-full cursor-pointer transition-transform duration-300",t?"scale-115":"scale-100 hover:scale-105"),onClick:n,children:u.jsx("span",{className:K("flex items-center justify-center transition-transform",t&&"rotate-180"),style:{transitionDuration:`${zc}ms`},children:i()})})})},Mb=({children:e,icon:t,theme:n})=>{const[r,o]=C.useState(!1),[a,s]=C.useState(!0),[i,l]=C.useState(!1),d=C.useCallback(()=>{o(f=>!f)},[]);return C.useEffect(()=>{r&&!i&&l(!0)},[r,i]),C.useEffect(()=>{const f=()=>o(m=>!m),c=()=>o(!0),h=()=>o(!1),g=()=>s(!0),v=()=>{o(!1),s(!1)};return window.addEventListener("stackable:action:toggle",f),window.addEventListener("stackable:action:open",c),window.addEventListener("stackable:action:close",h),window.addEventListener("stackable:action:show",g),window.addEventListener("stackable:action:hide",v),()=>{window.removeEventListener("stackable:action:open",c),window.removeEventListener("stackable:action:close",h),window.removeEventListener("stackable:action:toggle",f),window.removeEventListener("stackable:action:show",g),window.removeEventListener("stackable:action:hide",v)}},[]),u.jsxs(u.Fragment,{children:[a&&u.jsx(Ib,{icon:t,isOpen:r,onClick:d}),i&&u.jsx("div",{"data-id":"widget-container",className:K("overflow-hidden fixed bottom-24 right-8 z-1000 rounded-md shadow-xl transition-all duration-200 ease-out origin-bottom-right",r?"opacity-100 scale-100 translate-y-0 pointer-events-auto":"opacity-0 scale-95 translate-y-2 pointer-events-none"),children:u.jsx(Nb,{theme:n,children:e})})]})},Lb=({href:e,children:t})=>u.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-zinc-500 opacity-80 transition-colors hover:text-zinc-900 hover:opacity-100",children:t}),Ob=(e,t)=>{const[n,r]=C.useState(null),[o,a]=C.useState(!1),[s,i]=C.useState(null);return C.useEffect(()=>{if(!e){r(null);return}(async()=>{a(!0),i(null);try{const d=await Lc({action:"getCustomer",customerId:e},t);r(d)}catch(d){i(d)}finally{a(!1)}})()},[e,t]),{customer:n,loading:o,error:s}},zb=({customerId:e,customerEmail:t,queryApiBase:n,children:r})=>{var l,d;const{customer:o,loading:a,error:s}=Ob(e,n);if(a)return u.jsx($t,{className:"border-none shadow-none bg-transparent",children:u.jsx(Ht,{className:"flex items-center justify-center p-6",children:u.jsx(Qn,{className:"h-6 w-6 animate-spin text-muted-foreground"})})});if(s||!o){const f=t?t.split("@")[0]:e?`Customer ${e.slice(-4)}`:"Customer",c=f.split(/[\s._-]+/).map(h=>h[0]).join("").slice(0,2).toUpperCase();return u.jsx($t,{className:"border-none px-0 py-0 mb-4 shadow-none bg-transparent",children:u.jsxs(Ht,{className:"p-4 pb-0 pt-2",children:[u.jsxs("div",{className:"flex flex-col items-center",children:[u.jsxs(oo,{className:"h-16 w-16 mb-2 ring-2 ring-background shadow-sm",children:[u.jsx(ao,{src:`https://ui-avatars.com/api/?name=${encodeURIComponent(f)}&background=7c3aed&color=fff&size=128`,alt:f}),u.jsx(so,{className:"text-lg",children:c})]}),u.jsxs("div",{className:"text-center w-full space-y-1",children:[u.jsxs("div",{children:[u.jsx("p",{className:"text-xs text-foreground/70 font-medium tracking-wide",children:"Welcome,"}),u.jsx("h2",{className:"text-lg font-bold text-foreground leading-tight",children:f})]}),t&&u.jsx("div",{className:"pt-2 flex flex-col items-center gap-1",children:u.jsxs("div",{className:"flex items-center justify-center gap-1.5 text-xs font-semibold text-foreground/75",children:[u.jsx(er,{className:"h-3 w-3","aria-hidden":"true"}),u.jsx("span",{className:"truncate max-w-[200px]",children:t})]})}),u.jsx("div",{className:"py-1 rounded-lg flex justify-center gap-1",children:r})]})]}),u.jsx("p",{className:"pt-2 text-center text-xs text-muted-foreground",children:"Using fallback profile (customer API returned no data)"})]})})}const i=`${((l=o.first_name)==null?void 0:l[0])||""}${((d=o.last_name)==null?void 0:d[0])||""}`;return u.jsx($t,{className:"border-none px-0 py-0 mb-4 shadow-none bg-transparent",children:u.jsx(Ht,{className:"p-4 pb-0 pt-2",children:u.jsxs("div",{className:"flex flex-col items-center",children:[u.jsxs(oo,{className:"h-16 w-16 mb-2 ring-2 ring-background shadow-sm",children:[u.jsx(ao,{src:`https://ui-avatars.com/api/?name=${encodeURIComponent(o.name)}&background=7c3aed&color=fff&size=128`,alt:o.name}),u.jsx(so,{className:"text-lg",children:i})]}),u.jsxs("div",{className:"text-center w-full space-y-1",children:[u.jsxs("div",{children:[u.jsx("p",{className:"text-xs text-foreground/70 font-medium tracking-wide",children:"Welcome,"}),u.jsx("h2",{className:"text-lg font-bold text-foreground leading-tight",children:o.name})]}),u.jsx("div",{className:"pt-2 flex flex-col items-center gap-1",children:u.jsxs("div",{className:"flex items-center justify-center gap-1.5 text-xs font-semibold text-foreground/75",children:[u.jsx(er,{className:"h-3 w-3","aria-hidden":"true"}),u.jsx("span",{className:"truncate max-w-[200px]",children:o.email})]})}),u.jsx("div",{className:"py-1 rounded-lg flex justify-center gap-1",children:r})]})]})})})},Dc=(e,t)=>{C.useEffect(()=>{const n=t.current;if(!n)return;let r=document.getElementById(e);r||(r=document.createElement("div"),r.id=e,r.style.cssText="position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;",document.body.appendChild(r));const o=new MutationObserver(()=>{for(;r.firstChild;)n.appendChild(document.adoptNode(r.firstChild))});return o.observe(r,{childList:!0,subtree:!0}),()=>{o.disconnect(),r==null||r.remove()}},[e,t])},Db=({customization:e})=>{const t=C.useRef(null);return Dc("widget_conversations",t),C.useEffect(()=>{!window.zE||!t.current||e&&window.zE("messenger:set","customization",{conversationList:e})},[e]),u.jsx("div",{ref:t,className:"h-full overflow-hidden"})},Bb=({customization:e})=>{const t=C.useRef(null);return Dc("widget_messages",t),C.useEffect(()=>{!window.zE||!t.current||e&&window.zE("messenger:set","customization",{messageLog:e})},[e]),u.jsx("div",{ref:t,className:"h-full overflow-hidden"})},Ot="stackable:action",Mo=e=>{window.dispatchEvent(new CustomEvent("stackable:messaging",{detail:{eventName:"context",data:e}}))},Lo=25,Oo=75,Fb=({header:e,buttons:t,queryApiBase:n,customerId:r="",customerEmail:o="",primaryPercent:a=50})=>{const s=Math.max(Lo,Math.min(Oo,a)),{extensions:i}=Uo(),l=C.useMemo(()=>i.some(_=>_.enabled&&(_.manifest.targets.includes("slot.header")||_.manifest.targets.includes("slot.content"))),[i]),[d,f]=C.useState(!1),[c,h]=C.useState(!1),[g,v]=C.useState("extensions"),[m,b]=C.useState(s),[w,y]=C.useState("loading"),x=C.useRef(null),k=C.useCallback(()=>!window.zE||!document.getElementById("widget_conversations")||!document.getElementById("widget_messages")?!1:(window.zE("messenger","render",{mode:"embedded",messageLog:{targetElement:"#widget_messages"},conversationList:{targetElement:"#widget_conversations"}}),window.zE("messenger:set","customization",{common:{hideHeader:!1},messageLog:{hideHeader:!0},conversationList:{hideHeader:!0,hideNewConversationButton:!0}}),!0),[]);C.useEffect(()=>{var W,D;const _=document.querySelector('script[src*="zdassets.com/ekr/snippet"]'),M=(D=(W=_==null?void 0:_.src)==null?void 0:W.match(/key=([a-f0-9-]+)/))==null?void 0:D[1];if(M&&fetch(`https://ekr.zdassets.com/compose/${M}`).then($=>$.text()).then($=>{var L;const q=(L=$.match(/appId['"]?\s*:\s*['"]([a-f0-9]+)['"]/))==null?void 0:L[1];q&&Mo({appId:q})}).catch(()=>{}),k()){y("ready");return}const O=setInterval(()=>{k()&&(y("ready"),clearInterval(O))},100),I=setTimeout(()=>{clearInterval(O),y($=>$==="ready"?$:(console.warn("Zendesk widget failed to load after 10 seconds"),"error"))},1e4);return()=>{clearInterval(O),clearTimeout(I)}},[k]);const P=C.useCallback(_=>{!window.zE||!_.length||(console.log("[ZendeskMessenger] setConversationTags",_,{zE:!!window.zE}),window.zE("messenger:set","conversationTags",_))},[]),E=C.useCallback(_=>{!window.zE||!_.length||(console.log("[ZendeskMessenger] setConversationFields",_,{zE:!!window.zE}),window.zE("messenger:set","conversationFields",_))},[]),N=C.useCallback(_=>{if(!window.zE)return;const{tags:M=[],fields:O=[],...I}=_??{};P(M),E(O),window.zE("messenger:ui","newConversation",Object.keys(I).length?I:void 0)},[P,E]),S=C.useCallback(_=>{const{detail:M}=_;M!=null&&M.payload&&N(M.payload)},[N]);C.useEffect(()=>(window.addEventListener(`${Ot}:${wt.NEW_CONVERSATION}`,S),()=>{window.removeEventListener(`${Ot}:${wt.NEW_CONVERSATION}`,S)}),[S]),C.useEffect(()=>{const _=O=>{const{detail:I}=O;I!=null&&I.payload&&P(I.payload)},M=O=>{const{detail:I}=O;I!=null&&I.payload&&E(I.payload)};return window.addEventListener(`${Ot}:${wt.SET_CONVERSATION_TAGS}`,_),window.addEventListener(`${Ot}:${wt.SET_CONVERSATION_FIELDS}`,M),()=>{window.removeEventListener(`${Ot}:${wt.SET_CONVERSATION_TAGS}`,_),window.removeEventListener(`${Ot}:${wt.SET_CONVERSATION_FIELDS}`,M)}},[P,E]),C.useEffect(()=>{if(w!=="ready"||!window.zE)return;const _=window.zE("messenger:on","conversationStarted",I=>{var D,$;const W=($=(D=I==null?void 0:I.payload)==null?void 0:D.conversation)==null?void 0:$.id;W&&Mo({conversationId:W})}),M=window.zE("messenger:on","messagesShown",I=>{var D,$;const W=($=(D=I==null?void 0:I.payload)==null?void 0:D.conversation)==null?void 0:$.id;W&&Mo({conversationId:W})}),O=window.zE("messenger:on","postbackButtonClicked",I=>{var D;const W=I==null?void 0:I.payload;W!=null&&W.actionName&&window.dispatchEvent(new CustomEvent("stackable:messaging",{detail:{eventName:"postback",data:{actionName:W.actionName,conversationId:((D=W.conversation)==null?void 0:D.id)??""}}}))});return()=>{typeof _=="function"&&_(),typeof M=="function"&&M(),typeof O=="function"&&O()}},[w]),C.useEffect(()=>{if(!d)return;const _=O=>{if(!x.current)return;const I=x.current.getBoundingClientRect();if((c?I.width:I.height)===0)return;const D=c?(O.clientX-I.left)/I.width*100:(O.clientY-I.top)/I.height*100,$=Math.max(Lo,Math.min(Oo,D));b($)},M=()=>{f(!1),document.body.style.cursor="",document.body.style.userSelect=""};return document.body.style.cursor=c?"col-resize":"row-resize",document.body.style.userSelect="none",window.addEventListener("mousemove",_),window.addEventListener("mouseup",M),window.addEventListener("blur",M),()=>{window.removeEventListener("mousemove",_),window.removeEventListener("mouseup",M),window.removeEventListener("blur",M),document.body.style.cursor="",document.body.style.userSelect=""}},[d,c]),C.useEffect(()=>{if(!x.current)return;const _=x.current,M=()=>{const I=getComputedStyle(_).flexDirection==="row";h(I)};M();const O=new ResizeObserver(M);return O.observe(_),()=>{O.disconnect()}},[]);const A=C.useCallback(_=>{if(_.detail===2){b(s);return}_.preventDefault(),f(!0)},[s]),z={customerId:r,customerEmail:o};return u.jsxs("div",{"data-component":"zendesk-wrapper","data-no-extensions":!l,className:"flex-1 flex flex-col z-10 overflow-hidden",style:{containerType:"inline-size",width:l?"900px":"23.5rem"},children:[l&&u.jsx("style",{children:'@container (min-width: 42rem) { [data-component="zendesk-wrapper"] > [data-id="panel-layout"] { flex-direction: row; } }'}),u.jsxs("div",{ref:x,"data-id":"panel-layout",className:"relative flex-1 overflow-hidden flex flex-col",children:[l&&u.jsxs("div",{"data-id":"primary-panel",className:"min-h-0 min-w-0 flex-none overflow-hidden flex flex-col",style:{flexBasis:`${m}%`},children:[u.jsxs("div",{className:"flex items-center justify-between px-4 py-3",children:[u.jsx("h2",{className:"font-semibold text-sm text-foreground",children:g==="extensions"?"My Profile":"My Conversations"}),u.jsxs("div",{className:"flex items-center gap-1",children:[e&&u.jsx("div",{className:"flex gap-1",children:e}),u.jsxs("div",{className:"flex rounded-lg bg-muted p-1",children:[w==="ready"&&u.jsx("button",{onClick:()=>N({}),className:"rounded-md border border-transparent p-1.5 text-muted-foreground transition-colors hover:cursor-pointer hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",title:"New Conversation",children:u.jsx(su,{className:"h-4 w-4"})}),t,u.jsx("button",{onClick:()=>v("conversations"),className:K("rounded-md border border-transparent p-1.5 transition-colors hover:cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",g==="conversations"?"border-border bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),title:"Conversations",children:u.jsx(tr,{className:"h-4 w-4"})}),u.jsx("button",{onClick:()=>v("extensions"),className:K("rounded-md border border-transparent p-1.5 transition-colors hover:cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",g==="extensions"?"border-border bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),title:"My Profile",children:u.jsx(oa,{className:"h-4 w-4"})})]})]})]}),u.jsxs("div",{className:"flex-1 overflow-y-auto p-4 relative",children:[u.jsxs("div",{className:K("flex flex-col gap-2",g==="conversations"&&"hidden"),children:[u.jsx(zb,{customerId:r,customerEmail:o,queryApiBase:n,children:u.jsx(Jt,{target:"slot.header",context:z,className:"flex-none"})}),u.jsx(Jt,{target:"slot.content",context:z,className:"flex flex-col gap-2"})]}),u.jsx("div",{className:K("h-full rounded-xl border border-zinc-200 bg-white p-2 shadow-sm dark:border-zinc-300",g==="extensions"&&"hidden"),children:w==="error"?u.jsx("div",{className:"flex h-full items-center justify-center p-6 text-center text-sm text-muted-foreground",children:u.jsx("p",{children:"Error loading conversations."})}):u.jsx(Db,{})})]})]}),u.jsxs("div",{"data-id":"secondary-panel",className:"min-h-0 min-w-0 flex-none flex flex-col bg-white",style:{flexBasis:l?`${100-m}%`:"100%"},children:[u.jsx("div",{className:"flex-1 overflow-hidden",children:w==="error"?u.jsx("div",{className:"flex h-full items-center justify-center p-6 text-center text-sm text-muted-foreground",children:u.jsx("p",{children:"Zendesk Messenger could not be loaded. Check that a valid Snippet Key is configured."})}):u.jsx(Bb,{})}),u.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-1 py-1 mr-4 text-xs text-zinc-500",children:[u.jsx(Jt,{target:"slot.footer",context:z,className:"flex items-center gap-1",fallback:u.jsxs(u.Fragment,{children:[u.jsx("div",{children:"powered by"}),u.jsx(Lb,{href:"https://zendesk.com",children:"Zendesk"})]})}),u.jsx(Jt,{target:"slot.footer-links",context:z,className:"flex items-center gap-1",separator:u.jsx("span",{className:"text-zinc-300",children:"/"}),render:({children:_,index:M})=>u.jsxs(u.Fragment,{children:[M===0&&u.jsx("span",{className:"text-zinc-300",children:"+"}),_]})})]})]}),l&&u.jsxs(u.Fragment,{children:[u.jsx("div",{className:K("group/resize absolute z-20 flex items-center justify-center",c?"top-0 bottom-0 w-3 -ml-2.5 cursor-col-resize":"w-full h-3 -mt-2.5 cursor-row-resize"),style:c?{left:`${m}%`}:{top:`${m}%`},onMouseDown:A,role:"separator","aria-label":"Resize panels","aria-orientation":c?"vertical":"horizontal","aria-valuemin":Lo,"aria-valuemax":Oo,"aria-valuenow":Math.round(m),children:u.jsx("div",{className:K("rounded-full bg-foreground/35 dark:bg-white shadow-[0_0_0_1px_rgba(255,255,255,0.16),0_0_0_1px_rgba(0,0,0,0.22)] transition-all",c?"h-20 w-0.5":"h-0.5 w-20",d?"bg-foreground/70 dark:bg-white opacity-100":"opacity-70 group-hover/resize:bg-foreground/55 dark:group-hover/resize:bg-white group-hover/resize:opacity-100")})}),d&&u.jsx("div",{className:K("absolute inset-0 z-40",c?"cursor-col-resize":"cursor-row-resize"),onMouseUp:()=>f(!1)})]})]})]})},$b="ze-snippet",Bc=e=>`https://static.zdassets.com/ekr/snippet.js?key=${encodeURIComponent(e)}`,Hb=(e,t={})=>{if(typeof window>"u"||typeof document>"u"||!e)return Promise.resolve();const{autorender:n=!1,scriptId:r=$b}=t;window.zEMessenger={autorender:n};const o=document.getElementById(r);if(o){if(o.getAttribute("src")===Bc(e))return Promise.resolve();o.remove()}return new Promise((a,s)=>{const i=document.createElement("script");i.id=r,i.src=Bc(e),i.async=!0,i.onload=()=>a(),i.onerror=()=>s(new Error("Failed to load Zendesk snippet")),document.head.appendChild(i)})},Vb=({queryApiBase:e,apiBase:t,appId:n,theme:r,icon:o,instanceId:a,customerId:s,customerEmail:i,customerName:l,snippetKey:d})=>{const f=r==="dark"||r==="light"?r:"inherit";return C.useEffect(()=>{d&&Hb(d).catch(c=>{console.error("[StackableWidget] Failed to load Zendesk snippet:",c)})},[d]),u.jsx(bb,{instanceId:a,queryApiBase:e,apiBase:t,appId:n,customerId:s,customerName:l,customerEmail:i,children:u.jsx(Mb,{theme:f,icon:o,children:u.jsx(Fb,{queryApiBase:e,customerEmail:i,customerId:s,primaryPercent:40})})})};class Ub extends HTMLElement{constructor(){super();Bo(this,"mountNode");Bo(this,"root");const n=this.attachShadow({mode:"open"}),r=document.createElement("style");r.textContent=Wc,n.appendChild(r),this.mountNode=document.createElement("div"),n.appendChild(this.mountNode)}static get observedAttributes(){return["query-api-base","api-base","app-id","instance-id","theme","icon","customer-id","customer-email","customer-name","snippet-key"]}connectedCallback(){this.root=be.createRoot(this.mountNode),this.renderWidget()}disconnectedCallback(){var n;(n=this.root)==null||n.unmount(),this.root=void 0}attributeChangedCallback(){this.renderWidget()}renderWidget(){if(!this.root)return;const n=this.getAttribute("theme")??"";this.mountNode.classList.toggle("dark",n==="dark"),this.root.render(u.jsx(Vb,{theme:n,icon:this.getAttribute("icon")??void 0,queryApiBase:this.getAttribute("query-api-base")??"",apiBase:this.getAttribute("api-base")??void 0,appId:this.getAttribute("app-id")??"",instanceId:this.getAttribute("instance-id")??"",customerId:this.getAttribute("customer-id")??void 0,customerEmail:this.getAttribute("customer-email")??void 0,customerName:this.getAttribute("customer-name")??void 0,snippetKey:this.getAttribute("snippet-key")??""}))}}customElements.get("stackable-widget")||customElements.define("stackable-widget",Ub)}));